1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Modbus RTU ASCII

Modbus RTU ASCII

时间:2020-05-15 09:51:12

相关推荐

Modbus RTU  ASCII

二、两种传输方式

控制器能设置为两种传输模式(ASCII或RTU)中的任何一种在标准的Modbus网络通信。用户选择想要的模式,包括串口通信参数(波特率、校验方式等),在配置每个控制器的时候,在一个Modbus网络上的所有设备都必须选择相同的传输模式和串口参数。

ASCII模式

: 地址 功能代码 数据数量 数据1 ... 数据n LRC高字节 LRC低字节 回车 换行

RTU模式

地址 功能代码 数据数量 数据1 ... 数据n CRC低字节 CRC高字节

所选的ASCII或RTU方式仅适用于标准的Modbus网络,它定义了在这些网络上连续传输的消息段的每一位,以及决定怎样将信息打包成消息域和如何解码。

在其它网络上(象MAP和Modbus Plus)Modbus消息被转成与串行传输无关的帧。

1、ASCII模式

当控制器设为在Modbus网络上以ASCII(美国标准信息交换代码)模式通信,在消息中的每个8Bit字节都作为两个ASCII字符发送。这种方式的主要优点是字符发送的时间间隔可达到1秒而不产生错误。

代码系统

• 十六进制,ASCII字符0...9,A...F

• 消息中的每个ASCII字符都是一个十六进制字符组成

每个字节的位

• 1个起始位

• 7个数据位,最小的有效位先发送

• 1个奇偶校验位,无校验则无

• 1个停止位(有校验时),2个Bit(无校验时)

错误检测域

• LRC(纵向冗长检测)

2、RTU模式

当控制器设为在Modbus网络上以RTU(远程终端单元)模式通信,在消息中的每个8Bit字节包含两个4Bit的十六进制字符。这种方式的主要优点是:在同样的波特率下,可比ASCII方式传送更多的数据。

代码系统

• 8位二进制,十六进制数0...9,A...F

• 消息中的每个8位域都是一个两个十六进制字符组成

• 每个字节的位

• 1个起始位

• 8个数据位,最小的有效位先发送

• 1个奇偶校验位,无校验则无

• 1个停止位(有校验时),2个Bit(无校验时)

错误检测域

• CRC(循环冗长检测)

下表是MODBUS ASCII协议和RTU协议的比较:

从上表的比较我们可以看到,MODBUS的ASCII协议和RTU协议相比,MODBUS ASCII协议拥有开始和结束标记,而MODBUS RTU却没有,所以ASCII协议的程序中对数据包的处理能更加方便。MODBUS ASCII协议的DATA域传输的都是可见的ASCII字符,因此在调试阶段就显得更加直观,另外它的LRC校验程序也比较容易编写,这些都是MODBUS ASCII的优点。MODBUS ASCII的主要缺点是传输效率低,因为它传输的都是可见的ASCII字符,原来用RTU传输的数据每一个字节,用ASCII的话都要把这个字节拆分两个字节,比如RTU传输一个十六进制数0xF9,ASCII就需要传输字符'F'和字符'9',对应的ASCII码0x46和0x39两个字节,这样它的传输的效率肯定就比RTU低。所以一般来说,如果所需要传输的数据量较小可以考虑使用ASCII协议,如果所需传输的数据量比较大,最好能使用RTU协议。

另外,由于ASCII协议有开始标志和结束标志,所以一个数据包之间的各字节间的传输间隔时间可以大于1秒,而MODBUSRTU方式下,由于没有规定开始和结束标记,所以协议规定每两个字节之间发送或者接收的时间间隔不能超过3.5倍字符传输时间。如果两个字符时间间隔超过了3.5倍的字符传输时间,就认为一帧数据已经接收,新的一帧数据传输开始,所以RTU方式下两个字节间传输间隔有时间要求。MODBUS 的ASCII和RTU两种协议的这一区别可能决定某些应用场合只能选用其中一种协议。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。