組態王通過modbus與第三方設備通訊,如何實現字節或字的交換?

組態王是北京亞控科技的一款SCADA產品,是一款國內知名度很不錯的產品。這裡我不談產品本身,而是談談在組態王中,通過modbus的方式與PLC或者第三方設備通訊時,如果浮點數需要對其存儲器進行字或者字節交換的問題。

首先,做過PLC項目或者是DCS項目,也或者是搞系統維護等的自動化工控人都知道,PLC系統與現場設備或者是第三方PLC系統通過modbus進行數據交換,在進行數據交換時,特別是浮點數可能數據不能直接對上,需要對地址進行字節或者是字進行交換,兩個數據才能完全吻合。下面我來講講組態王是如何實現的。

一、實驗工具

SCADA:組態王6.55版本

PLC或者第三方:用modsim來模擬

二、實現步驟

1、啟動modsin模擬器,通過modbus tcp的方式連接,IP地址:127.0.0.1,端口號:502,設備地址:1,寄存器地址:40001,40002,40003,40004,40005,40006,如下圖所示:

組態王通過modbus與第三方設備通訊,如何實現字節或字的交換?

圖1 modsim仿真頁面

2、啟動組態王管理器,並打開測試的項目,如圖所示

組態王通過modbus與第三方設備通訊,如何實現字節或字的交換?

圖2 組態工程瀏覽器窗口

3、配置設備通訊接口,本文采用莫迪康的MODBUS TCP方式。在工程瀏覽器窗口左側的設備---板卡---雙擊新建---PLC---莫迪康----modbus TCP---下一步。如下圖所示

組態王通過modbus與第三方設備通訊,如何實現字節或字的交換?

圖3 通訊接口配置1

在上圖中下一步之後,填上邏輯名稱,然後下一步,然後接著選擇連接的串口號,這裡的串口,必須選擇一個沒有使用的串口號,如COM15,然後下一步進入下一個配置窗口,如圖所示

組態王通過modbus與第三方設備通訊,如何實現字節或字的交換?

圖4 通訊接口配置2

在上圖點擊下一步後,進入設備地址填寫界面,地址為:127.0.0.1:502 1/10,地址組成為:設備IP地址+:+端口號+空格+設備地址+/+超時時間。如圖所示

組態王通過modbus與第三方設備通訊,如何實現字節或字的交換?

圖5 通訊接口配置3

上圖單擊下一步,直至完成。這樣新建的設備就創建完成,如圖所示

組態王通過modbus與第三方設備通訊,如何實現字節或字的交換?

圖6 通訊接口配置4

4、組態王中,浮點數需要寄存器做字或者字節交換以及寄存器說明,如圖所示

組態王通過modbus與第三方設備通訊,如何實現字節或字的交換?

圖6 浮點數交換的官方說明1

組態王通過modbus與第三方設備通訊,如何實現字節或字的交換?

圖7 浮點數交換的官方說明2

組態王通過modbus與第三方設備通訊,如何實現字節或字的交換?

圖8 浮點數交換的官方說明3

不知道各位讀者看到官方說明,是否已經理解了,應該如何實現,說實話,我是看了很久都是沒有明白具體如何在組態王中如何建點,如何填寫各項,最後通過不斷的實驗才獲得正確的實現方法,不信我們往下看。

5、建點三個I/O實型點,每個點佔用2個字的modbus地址,如圖所示

組態王通過modbus與第三方設備通訊,如何實現字節或字的交換?

圖9 變量建立說明1

組態王通過modbus與第三方設備通訊,如何實現字節或字的交換?

圖10 新建的三個變量

6、本步驟比較重要,要充分理解組態王地址交換,這裡需要建一個I/O整型的變量,寄存器選擇:連接設備:選擇組態王連接的設備,寄存器選擇:SwapF0,記住這裡是SwapF0,不是SwapF,數據類型選擇:BYTE,讀寫屬性選擇:讀寫,如圖

組態王通過modbus與第三方設備通訊,如何實現字節或字的交換?

圖11 新建的SWAPF測試變量窗口

說明:如果在通訊時從1地址讀取的四個十六進制值為 HV1,HV2, HV3, HV4則:

當SWAP測試變量 = 0時,轉換後浮點數對應的內存值為: HV4 HV3 HV2 HV1。

當SWAP測試變量 = 1時,轉換後浮點數對應的內存值為: HV3 HV4 HV1 HV2。

當SWAP測試變量 = 2時,轉換後浮點數對應的內存值為: HV1 HV2 HV3 HV4。

當SWAP測試變量 = 3時,轉換後浮點數對應的內存值為: HV2 HV1 HV4 HV3。

7、新建一個測試畫面,並在畫面中建立三個變量的顯示,如圖所示

組態王通過modbus與第三方設備通訊,如何實現字節或字的交換?

圖12 畫面動態連接圖

8、新建一個SWAP測試變量的動態顯示以及值得切換按鈕,如圖所示

組態王通過modbus與第三方設備通訊,如何實現字節或字的交換?

圖13 SWPF測試變量的動態連接

9、運行畫面,並通過切換SWAPF測試變量的值,查看變量的數據變化。如下圖所示:

組態王通過modbus與第三方設備通訊,如何實現字節或字的交換?

圖14 Modsim寄存器的當前值

組態王通過modbus與第三方設備通訊,如何實現字節或字的交換?

圖15 SWAP測試變量值不同,組態王動態顯示值對比圖

本文就寫到這裡了,希望讀者們喜歡,不足之處還希望讀者們多多指正。

知識分享是一種精神,不需要打上什麼特殊的標籤,歡迎讀者們來閱讀!


分享到:


相關文章: