一、寫在前面
MODBUS RTU目前在水處理自動化領域主要用於儀表的數據採集及MODBUS RTU擴展IO模塊的通訊。前者的儀表採集傳統的方式是採用儀表自帶的4-20mA接口通過屏蔽線傳輸到PLC的模擬量輸入模塊(AI),然後程序通過數據轉換得到實際的工程值,但是因為幹擾或者模擬量模塊及儀表輸出誤差造成得到的儀表數據波動或者不準確,故而採用通訊方式得到比較與儀表一樣的數據。 在水處理領域尤其是流量計,一般要求採集累計流量,累計流量可以通過脈衝方式累加獲得,但是也存在誤差,採用通訊方式可以將瞬時流量和累計流量一起採集。
二、案例實現
項目背景:本項目採用的S7-1200的擴展modbus卡,作為MODBUS RTU的接口,採集電磁流量計的瞬時流量和累計流量。
2.1 硬體接線
2.2 博途組態
設置MODBUS 協議的參數
2.3 通訊程序設計
(1)SB模塊Modbus主站初始化
在指令--通信,調用
埠(PORT)在組態中是273,波特率為9600,響應時間設置為1000ms。
MB_DB參數:
(2)通信流程控制初始化(設計一個上電脈衝信號)
(3)讀瞬時流量
該流量計設置modbus 地址為004,瞬時流量寄存器地址為4113,長度為2個字,瞬時流量存儲值為DB57.DBD0。
(4)輪詢觸發程序,通訊完成下一步
(5)讀累計流量
(6)整個系統的通訊輪詢完成後返回到第一步
(7)實際結果
三、結論
在進行modbus rtu通訊時,我們需要做以下步驟:
(1)硬體接線,採用屏蔽電纜或者RS485專用電纜,接線時主要模塊端的接線要求及儀表端的接線埠,一般來說A+對於儀表的A,B-對於儀表的B,但是在很多時候,需要交換,這需要根據現場的情況而定。
(2)設置儀表的MODBUS RTU通訊參數,波特率、ID、校驗位等。
(3)程序設計,主要包含通訊控制程序、消息程序。
(4)程序設計時,一定要對應所採集數據的modbus寄存器的地址,以及數據格式,有時候需要將高低字(字節)做交換。
(5)做程序前,可以用串口調試助手先進行數據採集,檢查線路和儀表的通訊是否正常。