zl程序教程

您现在的位置是:首页 >  Java

当前栏目

java实现modbus rtu协议与 modscan等工具

2023-03-20 14:59:49 时间

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.所以是的时候,地址是有错的。