PLC Structured Text Object Oriented Programming
PLC結構化文字(ST)——變數型別和變數屬性
變數型別
變數型別關鍵字 | 說明 | 外部讀寫 | 內部讀寫 |
---|---|---|---|
VAR | 內部變數,程式組織單元內部的變數 | 不允許 | 讀/寫 |
VAR_INPUT | 輸入變數,由外部提供,在程式組織單元內部不能修改 | 讀/寫 | 讀 |
VAR_OUTPUT | 輸出變數,由程式組織單元提供給外部實體使用 | 寫 | 讀/寫 |
VAR_IN_OUT | 輸入-輸出變數,由外部實體提供,能在程式組織單元內部修改 | 讀/寫 | 讀/寫 |
VAR_EXTERNAL | 外部變數,能在程式組織單元內部修改,由全域性變數組態VAR_GLOBAL提供 | 讀/寫 | 讀/寫 |
VAR_GLOBAL | 全域性變數,能在對應的配置、資源內使用 | 讀/寫 | 讀/寫 |
VAR_ACCESS | 存取變數,用於與外部裝置的不同程式見變數的傳遞 | 讀/寫 | 讀/寫 |
VAR_TEMP | 暫存變數,在程式或功能塊中暫時儲存的變數 | 讀/寫 | 讀/寫 |
VAR_CONFIG | 配置變數,例項規定的初始化和地址分配 | 不允許 | 讀 |
Tips : VAR_IN_OUT宣告的變數,線上監控可以看出它的實際型別,本質上是引用型別(REFERENCE TO)。
變數屬性
變數屬性關鍵字 | 說明 |
---|---|
RETAIN | 保持型變數,用於掉電保持。熱復位後值還儲存,冷復位就被清除。 |
PERSISTENT | 持久型變數,熱復位後被清空 |
VAR PETAIN PERSISTENT | 與下面一樣 |
VAR PERSISTENT PETAIN | 兩者功能一樣,皆為保持型變數,用於掉電保持 |
CONSTANT | 常量 |
Tips : 熱復位相當於重啟PLC,軟復位相當於重新下載程式。
TwinCAT2中Retain與Persistent區別
- 在TwinCAT停止時,
Retain
變數儲存到一個二進位制檔案中(TwinCAT\Boot\TCPLC_R_x.wbp,x=1..4 runtime number)
- 優點:啟動時間短,可以迅速把資料恢復到記憶體中。
- 缺點:如果這個檔案被破壞,TwinCAT也不會啟動。
- 建議:由於這個缺點的存在,所以不建議大家使用RETAIN型別變數。
- 在TwinCAT停止時,
Persistent
變數儲存到一個二進位制檔案中(TwinCAT\Boot\TCPLC_T_x.wbp,x=1..4 runtime number)
.變數的名字、路徑、資料長度、數值都會儲存到一個二進位制檔案中。- 優點:如果啟動時檔案被破壞了,變數就會變為初始值。程式還是可以啟動的。
- 缺點:資料恢復到記憶體的時間比較長,如果使用FB來儲存資料的話會需要更多的時間。
Persistent
儲存的二進位制檔案尺寸比Retain
大。
Tips : 如果某個Persistent變數只是FB中的一個資料,那麼整個FB的資料都會進行儲存。以上內容均出自---倍福虛擬學院
總結
瞭解每種型別的特點,一定要合理使用。