多语言展示
当前在线:1158今日阅读:112今日分享:19

10分钟掌握modbus485通讯协议一招区分dtu rtu

modbus是很常见的现场总线,但是纵观其他modbus的介绍,即使是入门教程,也是又臭又长的,既然是入门,最好不要讲数据位,校验位停止位adu pdu等词汇,说这些没意思,除了给自己营造高级感外,对读者没有任何帮助下面来说什么是modbus 协议,modbus和串口有什么区别
工具/原料
1

modscan32

2

usb转串口 两只

方法/步骤
1

估计能搜索到这篇经验的,都了解串口通信了,串口是数据透传接口,一般使用串口调试软件的默认 8n11模式就可以,高能的来了:第一点:modbus就是一次用串口连续发多个字节!!!!!就这么简单!!!!如果想在深入一些,那我再告诉你,第二点:连续发出的多个字节是按顺序排好的就可以了如果想要完成一个双向通信,那你还要再了解一点就是第三点:发多少个字节?字节顺序如何排列?本篇只讲主站读,子站发,看明白之后,再点击我的用户名,查看主站写,子站接的经验

2

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

3

知道了dtu rtu的区别,可以尝试分析和编写通信协议了,不需要了解太多,你只需要知道上面提到的第三点就可以了!先说第三点,从机应该发多少数据给主机?答案是:主机请求N个寄存器,从站就发2N个字节(特别注意,一个寄存器是16位的,而且这个数据长度是不算报文头,不算crc,不算功能码的,下面有图说明)下面看一下真实的通信情况此处主机请求一个寄存器,主机发出10 03 00 00 00 02 c7 4a 注意数据高位在前,crc是低位在前

4

这是一条完整的从机正常相应命令返回一个寄存器的数据

5

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

6

现在开始实测一下,先确定电脑至少有两个串口,一个串口作为modscan的发送,一个串口用串口调试助手发数据波特率都一样就可以,其他默认然后modscan 点击连接后,自动下发数据串口调试软件,收到数据后,点一下发送就可以了,可以观看到modscan已经成功收到并显示数据了

推荐信息