估计能搜索到这篇经验的,都了解串口通信了,串口是数据透传接口,一般使用串口调试软件的默认 8n11模式就可以,高能的来了:第一点:modbus就是一次用串口连续发多个字节!!!!!就这么简单!!!!

如果想在深入一些,那我再告诉你,第二点:连续发出的多个字节是按顺序排好的就可以了

如果想要完成一个双向通信,那你还要再了解一点就是第三点:发多少个字节?字节顺序如何排列?

本篇只讲主站读,子站发,看明白之后,再点击我的用户名,查看主站写,子站接的经验。

 

1、先说一下DTU RTU区别:modbus dtu是数字数据传输协议,gsm ,gps可以用,但是如果需要采集模拟量,比如我要询问gsm设备的电池电压,那就要用rtu,,他可以采集模拟量信息,其实对于自己做产品,你都用rtu也可以。也就是说就这点儿区别。

 

2、知道了dtu rtu的区别,可以尝试分析和编写通信协议了,不需要了解太多,你只需要知道上面提到的第三点就可以了!

先说第三点,从机应该发多少数据给主机?答案是:主机请求N个寄存器,从站就发2N个字节(特别注意,一个寄存器是16位的,而且这个数据长度是不算报文头,不算crc,不算功能码的,下面有图说明)下面看一下真实的通信情况此处主机请求一个寄存器,主机发出10 03 00 00 00 02 c7 4a 注意数据高位在前,crc是低位在前

 

 

3、这是一条完整的从机正常相应命令

返回一个寄存器的数据

 

4、好了,通信协议,就这样的,你可以使用modscan和usb转串口设备测试一下

modscan设置如下


 

 5、现在开始实测一下,先确定电脑至少有两个串口,一个串口作为modscan的发送,一个串口用串口调试助手发数据

波特率都一样就可以,其他默认

然后modscan 点击连接后,自动下发数据

串口调试软件,收到数据后,点一下发送就可以了,可以观看到modscan已经成功收到并显示数据了


 

 

posted on 2018-12-11 11:22  tubujia  阅读(653)  评论(0编辑  收藏  举报