问一问RTU通讯协议

[复制链接]
2046|9
 楼主| tarsus 发表于 2014-7-30 18:27 | 显示全部楼层 |阅读模式
RS485接口下,RTU通信协议,每一帧数据包含:

    帧头START                          3.5个字符时间
    从机地址ADR                       通讯地址:1~247
    命令码CMD                          03:读从机参数;06:写从机参数
    数据内容DATA(N-1)        功能码参数地址,功能码参数个数,功能码参数值
    ------------------(N-2)
    ------------------
    数据内容DATA0
    CRC
    END                                     3.5字符时间

但是RS485是以8个数据位为单位的,所以我的理解是:在一帧中,所有数据分割为若干个8bit,每一个都是按照485接口8bit为单位传输,每个8bit还应有485的起始位和停止位,不知道这样理解对不对,或者说是只有一个起始位和停止位,中间一堆数据
ningling_21 发表于 2014-7-30 18:33 | 显示全部楼层
485和232之间只是电平不同,数据都一样,8位数据为一字节不变,起始位和停止位在8位数据的前面和后面,每个字节都有起始和停止位...
 楼主| tarsus 发表于 2014-7-30 21:34 | 显示全部楼层
ningling_21 发表于 2014-7-30 18:33
485和232之间只是电平不同,数据都一样,8位数据为一字节不变,起始位和停止位在8位数据的前面和后面,每个 ...

这个我知道,就是不清楚对于RTU通信协议下是不是还是保持这种约束不变
ningling_21 发表于 2014-7-30 22:57 | 显示全部楼层
tarsus 发表于 2014-7-30 21:34
这个我知道,就是不清楚对于RTU通信协议下是不是还是保持这种约束不变

基本的东西肯定不会变,只不过有些要求在8位的后面附加一个奇偶校验位...
要看具体要求...
NWPU_CHEN 发表于 2014-7-31 16:32 | 显示全部楼层
MODBUS RTU发送数据保持这一规则,1位起始位8位数据位,一位停止位,可以加奇偶校验或者不加,没啥特别的
 楼主| tarsus 发表于 2014-8-2 00:51 来自手机 | 显示全部楼层
ningling_21 发表于 2014-7-30 22:57
基本的东西肯定不会变,只不过有些要求在8位的后面附加一个奇偶校验位...
要看具体要求... ...

明白了,谢谢
 楼主| tarsus 发表于 2014-8-2 00:52 来自手机 | 显示全部楼层
NWPU_CHEN 发表于 2014-7-31 16:32
MODBUS RTU发送数据保持这一规则,1位起始位8位数据位,一位停止位,可以加奇偶校验或者不加,没啥特别的 ...

谢谢啦,明白了
gx_huang 发表于 2014-8-2 09:39 | 显示全部楼层
估计你还没有完全明白。
3.5bit的间隔,是为了防止帧同步丢失的。
也就是说,MODBUS的一个帧,有很多字节,要连续发送,帧和帧之间要有间隔。
coody 发表于 2014-8-2 15:28 | 显示全部楼层
LZ好好研究下MODBUS协议就明白了。
在工控,我一般是首选MODBUS-RTU协议。
liang5319 发表于 2014-8-2 16:21 | 显示全部楼层
应该是串口字节的格式。。然后再通过modbus的协议发出去。。232转485只是电平不同
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

14

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部