java实现modbus rtu协议与 modscan等工具
modbus協議rtu版,使用串口,當對接數碼人,使用rs485
第二篇:https://blog.csdn.net/weixin_42240941/article/details/121674377
======================
1 串口
? ? ? ? 主機的物理連接口,類似于USB等,不一定每個主機都有,查看設備管理器。
? ? ? ? 注意:如果此時有物理口com1,之后創建的成對虛擬口會是com2與com3.不要混淆。
2 工具
?2.1 創建虛擬端口
?建議使用vspd6.9
使用vspd9.0時,界面信息簡略。創建的虛擬端口能在設備管理器查看(但我沒能測試通)
使用vsod6.9,界面如上,創建虛擬口com2 com3.但是設備管理器不能看到虛擬端口,如圖1(modcsan能通)
2.2 modscan與modsim
創建端口后,下載這兩個模擬軟件(注意,我下載modsim時,兩個軟件在一個包,且modscan在外層,所以錯誤的啟動了modscan。對后面的模擬造成了困擾,不用混淆)
這要說modbus協議,modbus是主從協議,主設備會向從設備發信息。
modscan為模擬主設備,會不停發心跳消息,所以有人會看到 modscan 報消息沒有返回,或者消息超時的錯。
modsim為模擬從設備,?
啟動兩模擬軟件,設置如下,注意,所有的測試中,主設備端口都是com2,從設備com3
如果測試成功,modscan的信息次數記錄 會上漲,且發出與返回一致。
且vspd的端口 send 與recieve會不停上漲。
2.3 串口調試助手
現在想知道modscan發出的心跳是什么,先關閉modsim的連接。
以調試助手,連接com3端口,當modscan發送信息,會接收到
[17:08:13.655] 01 03 00 63 00 18 B5 DE
想知道modsim回了什么心跳,關閉modscan,切換調試助手到com2端口。
打開modsim(com3)
然后在下框發送 01 03 00 63 00 18 B5 DE
?接收到[17:08:13.748] 01 03 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C0 BC
=================
如此,工具,體驗與測試就連通了。
java代碼預計參考
??????????????使用java的modbus4j的Rtu方式獲取監測數據_玩火的稻草人的博客-CSDN博客
==================
注意:使用以上連接的java代碼與模擬數據 程序報錯。
錯誤碼2
百度02是非法數據地址,看到代碼寫的起始地址為9,讀取長度24.但是modsim內的起始地址是100.所以是的時候,地址是有錯的。
總結
以上是生活随笔為你收集整理的java实现modbus rtu协议与 modscan等工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 警惕Oracle DB操作高压线
- 下一篇: cesium billboard 设置距