工控網首頁
>

應用設計

>

巧妙利用網關串行自定義協議解決多臺儀表數據采集問題

巧妙利用網關串行自定義協議解決多臺儀表數據采集問題

客戶在使用Anybus網關時,遇到了一個很有意思的應用,在這里分享給大家。

客戶通過ABC3000網關,將串行儀表接入PROFIBUS DP網絡控制系統中,如下圖所示。

image.png

簡單介紹一下網關設備:

Anybus 網關ABC3000實現將任何RS-232/485串行設備接入到PROFIBUS控制系統。

使用基于 Web 的拖拽式配置界面,非常易于使用。

采用屢獲殊榮的 NP40 網絡處理器,實現數據即時傳輸,使您可以利用高速工業網絡。

客戶遇到的問題:

客戶的儀表是RS485接口,支持標準的ModbusRTU協議。儀表寄存器從40001開始到40020共20個寄存器,這20個寄存器必須連續讀取,不支持分開訪問。客戶只需要其中的40001,40002和40010,40011這4個寄存器的數值傳輸到PROFIBUS控制系統中。

一個寄存器的數值占2個字節,連續讀取20個寄存器對應的是40字節,客戶需要連接20臺儀表,總的數據量是800個字節,雖然網關的存儲區是1500字節,但是PROFIBUS DP協議傳輸的數據量最大是244字節,顯然受PROFIBUS協議限制,一臺網關無法實現,需要4臺才能滿足連接20臺儀表的需求,可是這樣明顯的增加了成本,并且里面有很多數據是不需要的。

可能有的人會提出,網關里為什么不增加一些數據處理功能,這樣不管采集了什么樣的數據,對數據過濾一下不就解決了。但是我們知道,只要增加了數據處理,就不僅僅是數據過濾,還需要包括客戶很多別的處理需求,這樣就會占用時間,而我們的網關為保證數據的即時傳輸,不對傳輸的數據做任何處理,只進行協議的轉換,這樣使得兩側網絡的延遲控制在1ms以內,數據的處理在PLC側完成即可。那么在無法對數據進行過濾的情況下,我們就需要想一些別的辦法來解決客戶當前的問題。

如何解決:

我們使用網關串行自定義協議來解決此問題,在指令的請求中依舊是請求連續讀取20個寄存器數值,但在指令的響應中只把需要的數據映射到PROFIBUS 側,不需要的數據不進行映射,間接的實現了過濾功能,這樣1臺網關就可以解決客戶的問題。

讓我們看看具體是如何實現的吧:

這是標準的03功能碼讀取40001到40020寄存器指令結構:

image.png

我們對指令的響應報文中,20個寄存器的數值區進行拆分,如下圖所示。

image.png

沒有修改指令前,在串行側和PROFIBUS側的數據映射關系中,讀取到的這40個字節數據都需要傳輸到PROFIBUS側。

image.png

經過修改后,在數據映射時,我們將需要的數據映射到PROFIBUS側共8個字節,不需要的數據不進行映射。這樣連接20臺儀表,共160個字節,沒有超過PROFIBUS側244字節的上限,一臺網關就可以搞定了!

image.png

審核編輯(
王靜
)
投訴建議

提交

查看更多評論
其他資訊

查看更多

技術干貨:數據協議轉換原理與應用

AB Atlas "PN and EIP" - w/100Mbit TAP , w/ L+S

AB Atlas "PN and EIP" - w/100Mbit TAP

AB Atlas "PN and EIP" - w/1Gbit TAP DIN , w/ L+S

Anybus Atlas2 Plus: EtherNet/IP 監控套件 100