今天想和大家分享,如何從無到有寫一個Modbus TCP client端,在網路上找的資料也是少之又少,多半都會找到NModbus使用教學,但如果你想要自己寫一個Modbus不想使用別人寫好的可以參考一下我的
code, 筆者的code只是純粹分享,如有不完整的地方請多多包涵。不過大致上我都測試過了,應該是沒問題的。
我習慣的寫法會將libaray與主程式分開,所以我會先建立一個類別庫將需要叫用的類別都寫在此處。
那...開始吧!!
第一個我們先建立一個連線需要用的class
於此類別的建構子中加入以下

使用Timer來當作測試連線的心跳

此方法為TCP接收訊息處

這樣就會連線囉,但是透過此通訊方式只是完成TCP的部分,傳送訊息時要有Modbus的格式來傳送才會是ModbusTCP
Modbus protocol總共有4總資料型態

注意到只有要有input 都是指說其形態是唯獨,沒有的就是可以讀也可以寫。
以下為Modbus開頭MBAP

以下為我製作MBAP的方式(我知道圖片中藍色的藍打錯 懶得改圖就將就囉~)

再來就是將command與header結合起來組成一個byte陣列再發送至TCP write stream (以下是我自己組合的方式)

這樣基本上大致上的功能就完成了...
下一篇我會再接續講解如何建立常用的方法,將其方法作為command
請先 登入 以發表留言。