塊接口由形式參數(shù)和本地?cái)?shù)據(jù)兩部分組成:
參數(shù)解析:
輸入?yún)?shù):為調(diào)用模塊提供數(shù)據(jù),輸入給邏輯模塊
輸出參數(shù):從邏輯模塊輸出數(shù)據(jù)結(jié)果
輸入/輸出參數(shù):參數(shù)值既可以輸入,也可以輸出
變量解析:
臨時(shí)變量:存儲(chǔ)在L堆棧中,塊執(zhí)行結(jié)束后,變量消失;
靜態(tài)變量:存儲(chǔ)在背景數(shù)據(jù)塊中,塊調(diào)用結(jié)束后,變量被保留;
(1)函數(shù)(FC)簡(jiǎn)介
① 函數(shù)(FC)是用戶編寫的程序塊,是不帶存儲(chǔ)器的代碼塊。由于沒(méi)有可以存儲(chǔ)塊參數(shù)值的數(shù)據(jù)存儲(chǔ)器,因此,調(diào)用函數(shù)時(shí),必須給所有形參分配實(shí)參。
②FC 里有一個(gè)局域變量表和塊參數(shù)。局域變量表里有:Input(輸入?yún)?shù))、Output(輸出參數(shù))、InOut (輸入/輸出參數(shù))、Temp(臨時(shí)數(shù)據(jù))、Return(返回值 RET_VAL)。
Input(輸入?yún)?shù))將數(shù)據(jù)傳遞到被調(diào)用的塊中進(jìn)行處理。
Output(輸出參數(shù))是將結(jié)果傳遞到調(diào)用的塊中。
InOut(輸入/輸出參數(shù))將數(shù)據(jù)傳遞到被調(diào)用的塊中,在被調(diào)用的塊中處理數(shù)據(jù)后,再將被調(diào)用的塊中發(fā)送的結(jié)果存儲(chǔ)在相同的變量中。
Temp(臨時(shí)數(shù)據(jù))是塊的本地?cái)?shù)據(jù),并且在處理塊時(shí)將其存儲(chǔ)在本地?cái)?shù)據(jù)堆棧。關(guān)閉并完成處理后,臨時(shí)數(shù)據(jù)就變得不再可訪問(wèn)。Return 包含返回值 RET_VAL。
(2)函數(shù)塊(FB)的簡(jiǎn)介
函數(shù)塊(FB)屬于編程者自己編程的塊。函數(shù)塊是一種“帶內(nèi)存”的塊。分配數(shù)據(jù)塊作為其內(nèi)存(背景數(shù)據(jù)塊)。傳送到 FB 的參數(shù)和靜態(tài)變量保存在實(shí)例 DB 中。臨時(shí)變量則保存在本地?cái)?shù)據(jù)堆棧中。執(zhí)行完FB 時(shí),不會(huì)丟失DB 中保存的數(shù)據(jù)。但執(zhí)行完 FB 時(shí),會(huì)丟失保存在本地?cái)?shù)據(jù)堆棧中的數(shù)據(jù)。
(3)數(shù)據(jù)塊(DB)簡(jiǎn)介
①數(shù)據(jù)塊用于存儲(chǔ)用戶數(shù)據(jù)及程序中間變量。新建數(shù)據(jù)塊時(shí),默認(rèn)狀態(tài)是優(yōu)化的存儲(chǔ)方式,且數(shù)據(jù)塊中存儲(chǔ)的變量是非保持的。數(shù)據(jù)塊占用 CPU 的裝載存儲(chǔ)區(qū)和工作存儲(chǔ)區(qū),與標(biāo)識(shí)存儲(chǔ)器的功能類似,都是全局變量,不同的是,M 數(shù)據(jù)區(qū)的大小在 CPU 技術(shù)規(guī)范中已經(jīng)定義且不可擴(kuò)展,而數(shù)據(jù)塊存儲(chǔ)區(qū)由用戶定義,最大不能超過(guò)工作存儲(chǔ)區(qū)或裝載存儲(chǔ)區(qū)。SIMATIC S7-1500 PLC 的非優(yōu)化數(shù)據(jù)最大數(shù)據(jù)空間為 64KB。而優(yōu)化的數(shù)據(jù)塊的存儲(chǔ)空間要大得多,但其存儲(chǔ)空間與 CPU 的類型有關(guān)。
②按照功能分,數(shù)據(jù)塊 DB 可以分為:全局?jǐn)?shù)據(jù)塊、背景數(shù)據(jù)塊和基于數(shù)據(jù)類型(用戶定義數(shù)據(jù)類型、系統(tǒng)數(shù)據(jù)類型和數(shù)組類型)的數(shù)據(jù)塊。
S7-1200:優(yōu)化的塊結(jié)構(gòu)
備注:
1、對(duì)于優(yōu)化的數(shù)據(jù)塊,大的數(shù)據(jù)類型在塊的開(kāi)始,小的數(shù)據(jù)類型在塊的末端,因此在塊中不會(huì)形成數(shù)據(jù)塊間隙;
2、對(duì)于優(yōu)化的數(shù)據(jù)塊,只能采用符號(hào)訪問(wèn)的方式。
S7-1500 CPU中,標(biāo)準(zhǔn) DB 塊與優(yōu)化的 DB 塊在 PLC 中按照下圖方式存儲(chǔ):
在 S7-1500 CPU 中,相比于標(biāo)準(zhǔn)的 DB 塊,優(yōu)化的 DB 塊提供更快的訪問(wèn)速度,其根本原因與 CPU 的編碼方式有關(guān):
與標(biāo)準(zhǔn)的 DB 塊相比,優(yōu)化的 DB 塊有以下優(yōu)勢(shì):
1、提供更快的訪問(wèn)速度;
2、以符號(hào)尋址,編程者無(wú)需考慮 DB 塊中每個(gè)變量存儲(chǔ)的具體地址,每個(gè)變量在 CPU 中存儲(chǔ)的位置由 PLC 的系統(tǒng)自動(dòng)進(jìn)行分配;
3、CPU 與 HMI (如 Panel)連接時(shí),由于優(yōu)化的 DB 是靠符號(hào)尋址,所以當(dāng) PLC 變量連接到 HMI 后,PLC 側(cè)對(duì)變量做的修改,HMI 無(wú)需重新下載;
4、對(duì) DB 塊內(nèi)的任意位置對(duì)變量進(jìn)行添加及刪除,或?qū)ψ兞康念愋瓦M(jìn)行修改(如將Tag_1的屬性由 byte 修改為Word),不會(huì)引起該 DB 塊其它變量的使用;
S7-1200/S7-1500中如有以下應(yīng)用,必須使用標(biāo)準(zhǔn) DB 塊:
1、與其它 CPU 建立 S7 單邊通信時(shí)(PUT/GET),用于存儲(chǔ)發(fā)送區(qū)數(shù)據(jù)和接收區(qū)數(shù)據(jù)的 DB 塊;
2、與 Wincc V7.2 進(jìn)行 HMI 連接時(shí),Wincc V7.2 訪問(wèn)的 S7-1200/S7-1500 CPU 的 DB 塊只能是標(biāo)準(zhǔn)的 DB 塊;
3、使用Simatic Net V8.2 與S7-1200/S7-1500 PLC進(jìn)行 OPC 連接時(shí),OPC 服務(wù)器訪問(wèn) S7-1200/S7-1500 CPU 的 DB 塊只能是標(biāo)準(zhǔn)的 DB 塊。
審核編輯:湯梓紅
-
plc
+關(guān)注
關(guān)注
5010文章
13272瀏覽量
463072 -
cpu
+關(guān)注
關(guān)注
68文章
10854瀏覽量
211590 -
西門子
+關(guān)注
關(guān)注
94文章
3034瀏覽量
115788 -
S7-1200
+關(guān)注
關(guān)注
11文章
331瀏覽量
17957
原文標(biāo)題:西門子1200/1500PLC常用術(shù)語(yǔ)及FB、FC、DB各功能介紹
文章出處:【微信號(hào):中泰PLC自動(dòng)化教學(xué),微信公眾號(hào):中泰PLC自動(dòng)化教學(xué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論