发布网友 发布时间:2023-04-14 15:51
共1个回答
热心网友 时间:2023-10-12 09:40
ModBus 可分为两种传输模式: ASCII 模式和 RTU 模式。使用何种模式由用户自行选
择,包括串口通信参数(波特率、校验方式等)。在配置每个控制器的时候,同一个 Mod B
us 网络上的所有设备都必须选择相同的传输模式和串口参数。
1 ASCII 模式
当控制器设为在 ModBus 网络上以 ASCII 模式通信,在消息中的每个 8Bit 字节都作 为
两个 ASCII 字符发送。这种方式的主要优点是字符发送的时间间隔可达到 1 秒而不产生错
误。
表 1 ASCII 模式的消息帧
如表 1 所示,使用 ASCII 模式,消息以冒号(:)字符( ASCII 码 3AH )作为起始位 ,
以回车换行符( ASCII 码 0DH, 0AH )作为结束符。传输过程中,网络上的设备不断侦测 “ : ”
字符,当有一个冒号接收到时,每个设备就解码下个位的地址域,来判断是否发给自己的。
与地址域一致的设备继续接受其它域,直至接受到回车换行符。除起始位和结束符外,其 他
域可以使用的传输字符是十六进制的 0 … 9 , A … F ,当然也要用 ASCII 码表示字符。当选用 A
SCII 模式时,消息帧使用 LRC (纵向冗长检测)进行错误检测。
2RTU 模式
当控制器设为 RTU 模式时,消息帧中的每个 8Bit 字节包含两个 4Bit 的十六进制字符 。
表 2 RTU 模式的消息帧
该模式下消息发送至少要以 3.5 个字符时间的停顿间隔开始。传输过程中,网络设备 不
断侦测网络总线,包括停顿间隔时间内。当第一个域(地址域)接收到,相应的设备就对 接
下来的传输字符进行解码,一旦有至少 3. 5 个字符时间的停顿就表示该消息的结束。
在 RTU 模式中整个消息帧必须作为一连续的流转输,如果在帧完成之前有超过 1.5 个
字符时间的停顿时间,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址
域。同样地,如果一个新消息在小于 3. 5 个字符时间内接着前个消息开始,接收的设备将
认为它是前一消息的延续。如果在传输过程中有以上两种情况发生的话,必然会导致 CRC
校验产生一个错误消息,反馈给发送方设备。
当控制器设为 RTU (远程终端单元)模式通信时,消息中的每个 8Bit 字节包含两个 4 B
it 的十六进制字符。这种模式与 ASCII 模式相比在同样的波特率下,可比 ASCII 模式传送 更多的数据。
=========================================================
关键的两张图只能传上来一张,我看就用ASCII码模式,简单