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