組態王是北京亞(ya) 控科技的一款SCADA產(chan) 品,是一款國內(nei) 知名度很不錯的產(chan) 品。這裏不談產(chan) 品本身,而是談談在組態王中,通過modbus的方式與(yu) PLC或者第三方設備通訊時,如果浮點數需要對其存儲(chu) 器進行字或者字節交換的問題。
做過PLC項目或者是DCS項目,也或者是搞係統維護等的自動化工控人都知道,PLC係統與(yu) 現場設備或者是第三方PLC係統通過modbus進行數據交換,在進行數據交換時,特別是浮點數可能數據不能直接對上,需要對地址進行字節或者是字進行交換,兩(liang) 個(ge) 數據才能完全吻合。下麵我來講講組態王是如何實現的。
一、實驗工具
SCADA:組態王6.55版本
PLC或者第三方:用modsim來模擬
二、實現步驟
1、啟動modsin模擬器,通過modbus tcp的方式連接,IP地址:127.0.0.1,端口號:502,設備地址:1,寄存器地址:40001,40002,40003,40004,40005,40006,如下圖所示:
圖1 modsim仿真頁麵
2、啟動組態王管理器,並打開測試的項目,如圖所示
圖2 組態工程瀏覽器窗口
3、配置設備通訊接口,本文采用莫迪康的MODBUS TCP方式。在工程瀏覽器窗口左側(ce) 的設備---板卡---雙擊新建---PLC---莫迪康----modbus TCP---下一步。如下圖所示
圖3 通訊接口配置1
在上圖中下一步之後,填上邏輯名稱,然後下一步,然後接著選擇連接的串口號,這裏的串口,必須選擇一個(ge) 沒有使用的串口號,如COM15,然後下一步進入下一個(ge) 配置窗口,如圖所示
圖4 通訊接口配置2
在上圖點擊下一步後,進入設備地址填寫(xie) 界麵,地址為(wei) :127.0.0.1:502 1/10,地址組成為(wei) :設備IP地址+:+端口號+空格+設備地址+/+超時時間。如圖所示
圖5 通訊接口配置3
上圖單擊下一步,直至完成。這樣新建的設備就創建完成,如圖所示
圖6 通訊接口配置4
4、組態王中,浮點數需要寄存器做字或者字節交換以及寄存器說明,如圖所示
圖6 浮點數交換的官方說明1
圖7 浮點數交換的官方說明2
圖8 浮點數交換的官方說明3
5、建點三個(ge) I/O實型點,每個(ge) 點占用2個(ge) 字的modbus地址,如圖所示
圖9 變量建立說明1
圖10 新建的三個(ge) 變量
6、本步驟比較重要,要充分理解組態王地址交換,這裏需要建一個(ge) I/O整型的變量,寄存器選擇:連接設備:選擇組態王連接的設備,寄存器選擇:SwapF0,記住這裏是SwapF0,不是SwapF,數據類型選擇:BYTE,讀寫(xie) 屬性選擇:讀寫(xie) ,如圖
圖11 新建的SWAPF測試變量窗口
說明:如果在通訊時從(cong) 1地址讀取的四個(ge) 十六進製值為(wei) HV1,HV2, HV3, HV4則:
當SWAP測試變量 = 0時,轉換後浮點數對應的內(nei) 存值為(wei) : HV4 HV3 HV2 HV1。
當SWAP測試變量 = 1時,轉換後浮點數對應的內(nei) 存值為(wei) : HV3 HV4 HV1 HV2。
當SWAP測試變量 = 2時,轉換後浮點數對應的內(nei) 存值為(wei) : HV1 HV2 HV3 HV4。
當SWAP測試變量 = 3時,轉換後浮點數對應的內(nei) 存值為(wei) : HV2 HV1 HV4 HV3。
7、新建一個(ge) 測試畫麵,並在畫麵中建立三個(ge) 變量的顯示,如圖所示
圖12 畫麵動態連接圖
8、新建一個(ge) SWAP測試變量的動態顯示以及值得切換按鈕,如圖所示
圖13 SWPF測試變量的動態連接
9、運行畫麵,並通過切換SWAPF測試變量的值,查看變量的數據變化。如下圖所示:
圖14 Modsim寄存器的當前值
圖15 SWAP測試變量值不同,組態王動態顯示值對比圖