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