天天看點

組态王能直接讀取儀表資料嗎_組态王通過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測試變量值不同,組态王動态顯示值對比圖