当前位置: 代码迷 >> 单片机 >> 关于modbus协议下用串口调试助手调试下位机发送指令没接收的有关问题
  详细解决方案

关于modbus协议下用串口调试助手调试下位机发送指令没接收的有关问题

热度:49   发布时间:2016-04-28 15:25:58.0
关于modbus协议下用串口调试助手调试下位机发送指令没接收的问题!
看了一些资料,对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协议没有特殊处理的部分 可以通过串口模拟监控传输的数据
  相关解决方案