看了一些资料,对modbus还是没理解透彻,例如01 01 00 80 00 04 3c 21
其中01代表从设备地址,第二个01代表读线圈状态的命令,00 80代表起始地址,00 04代表要读的寄存器个数,也就是从0080开始读连续的四个,3c 21是CRC校验码
我上面的理解正确么?如果正确,直接使用串口调试助手,以16进制发送01 01 00 80 00 04 3c 21这种序列就可以了吗?为啥没返回信息呢,是我发错了么,理解错误了么?很纠结,请求帮助,万分感谢!! 波特率、停止位、校验位都设置为何下位机中相同的,求解决!!!!!!!!!!!!!!!!!!!!!!
------解决方案--------------------
下位机是你的么?
如果是,那先看看下位机有没有接收到
如果不是你的,那下位机应该有一份专门的协议文档,查那个更靠谱
MODBUS的标准,只规定了个大概,具体的各个不同的厂家实现起来都有自己不同的处理,不一定以这个发就能响应你
另外,你的发送方法应该没有问题
------解决方案--------------------
1、确认通讯线路是否正常;
2、确认设备地址是否正确;
3、确认01H指令是否能被执行;
4、确认CRC校验方式是否一致。
------解决方案--------------------
既然,能截获之前软件发送的数据
你那把同样的指令数据,用串口助手来发
这不就知道,软件背后有没有做手脚了...
不过,从你的截图上来看,感觉是没有的
------解决方案--------------------
MODEBUS协议没有特殊处理的部分 可以通过串口模拟监控传输的数据