回覆列表
-
1 # 工控程式設計
-
2 # 工控人
人機介面上的資料LW如何與plc上的資料暫存器D進行通訊
我們知道觸控式螢幕與plc進行上位機通訊一般是對plc上的資料D進行讀取和寫入操作,那我們人機介面HMI上的資料LW如何實現與plc的互動呢,可以用以下兩種方式實現,1使用元件“資料傳輸”,2是採用宏指令程式設計完成。
1資料傳輸,這個元件有視窗和背景兩種模式,視窗模式就是在觸控式螢幕介面上有一個類似按鈕的元件,可以用手動觸發就是點一下按鈕傳輸資料,還可以透過條件進行觸發比如X1閉合;而背景式則自動進行資料傳輸,我們可以設定時間間隔比如0.5s進行一次資料傳送等,來源地址我們選擇為plc的資料暫存器,目標地址我們選擇為觸控式螢幕的LW暫存器。
2宏指令,宏指令的功能很是強大資料傳輸只是其中的一小部分,我們使用兩個指令函式就是能完成,首先定義的一個整型資料a,使用“GetData”函式把資料從三菱plc上的D0讀取出來儲存到a中,然後再使用“SetData”函式透過a傳輸到人機介面上的LW0地址上。這裡我們選擇週期執行時間間隔選擇為100ms,如果資料傳送要求較高間隔就小一點。編輯完後儲存和編譯就完成了。
下面我們用兩種方法演示下人機介面上的資料LW如何與plc上的資料暫存器D進行通訊,分別就資料傳輸(視窗)、資料傳輸(背景)和宏指令來操作,影片如下:
這個問題很簡單哦。
可以分兩步操作。
我們這裡拿威綸LW0暫存器與永宏PLC的D0暫存器作演示。
一步步演示如何實現。
實現後的效果我們可以提前看下
介面上有顯示LW0和顯示D0的數值元件。
下面是實現的過程。
1.在人機介面上新增PLC硬體。
如下圖,開啟新版觸控式螢幕程式設計軟體。
在介面上,選單->常用->系統引數,彈出系統引數設定對應框。
2.透過宏指令實現資料交換。
今天還在更新宏教程,所以就用宏指令來實現。
首先是準備兩個數值顯示元件,用來顯示或設定屏的LW0和PLC的D0。
然後是準備一個宏,用來獲取與設定LW0和D0,程式碼如下。
bool bSwitch=false
macro_command main()
int nValue=0,nValue1=0
if(bSwitch==true) then
GetData(nValue, "FATEK FB/FBs/B1/B1z Series", D, 0, 1)
GetData(nValue1, "Local HMI", LW, 0, 1)
SetData(nValue1, "FATEK FB/FBs/B1/B1z Series", D, 0, 1)
SetData(nValue, "Local HMI", LW, 0, 1)
else
GetData(nValue, "FATEK FB/FBs/B1/B1z Series", D, 0, 1)
GetData(nValue1, "Local HMI", LW, 0, 1)
SetData(nValue1, "FATEK FB/FBs/B1/B1z Series", D, 0, 1)
SetData(nValue, "Local HMI", LW, 0, 1)
end if
end macro_command
最後是新增一個位狀態設定元件,來呼叫宏,
實現觸控式螢幕的LW0的PLC的D0之間進行資料交換,進行通訊。
執行程式,效果如下。