新闻资讯

返回

Modbus通讯协议

点击次数:1777    更新时间:2018-06-03

在ModBus系统中有2种传输模式可选择。这2种传输模式与从机PC通信的能力是同等的。选择时应视所用ModBus主机而定,每个ModBus系统只能使用一种模式,不允许2种模式混用。一种模式是ASCII(美国信息交换码),另一种模式是RTU(远程终端设备)。
用户选择想要的模式,包括串口通信参数(波特率、校验方式等),在配置每个控制器的时候,在一个Modbus网络上的所有设备都必须选择相同的传输模式和串口参数。所选的ASCII或RTU方式仅适用于标准的Modbus网络,它定义了在这些网络上连续传输的消息段的每一位,以及决定怎样将信息打包成消息域和如何解码。在其它网络上(像MAP和Modbus Plus)Modbus消息被转成与串行传输无关的帧。传输模式特性

ASCII可打印字符便于故障检测,而且对于用语言(如Fortran)编程的主计算机及主PC很适宜。RTU则适用于机器语言编程的计算机和PC主机。
用RTU模式传输的数据是8位二进制字符。如欲转换为ASCII模式,则每个RTU字符首先应分为高位和低位两部分,这两部分各含4位,然后转换成十六进制等量值。用以构成报文的ASCII字符都是十六进制字符。ASCII模式使用的字符虽是RTU模式的两倍,但ASCII数据的译码和处理更为容易一些,此外,用RTU模式时报文字符必须以连续数据流的形式传送,用ASCII模式,字符之间可产生长达1s的间隔,以适应速度较慢的机器。
控制器能设置为两种传输模式(ASCII或RTU)中的任何一种在标准的Modbus网络通信。

ASCII模式

控制器设为在Modbus网络上以ASCII(美国标准信息交换代码)模式通信,在消息中的每个8Bit字节都作为一个ASCII码(两个十六进制字符)发送。这种方式的主要优点是字符发送的时间间隔可达到1秒而不产生错误。
代码系统
· 十六进制,ASCII字符0...9,A...F
· 消息中的每个ASCII字符都是一个十六进制字符组成
每个字节的位
· 1个起始位
· 7个数据位,小的有效位先发送
· 1个奇偶校验位,无校验则无
1个停止位(有校验时),2个Bit(无校验时)
错误检测域
· LRC(纵向冗长检测)

RTU模式

当控制器设为在Modbus网络上以RTU(远程终端单元)模式通信,在消息中的每个8Bit字节包含两个4Bit的 十六进制字符。这种方式的主要优点是:在同样的波特率下,可比ASCII方式传送更多的数据。
代码系统
8位二进制,十六进制数0...9,A...F
消息中的每个8位域都是一或两个十六进制字符组成
每个字节的位
1个起始位
8个数据位,小的有效位先发送
1个奇偶校验位,无校验则无
1个停止位(有校验时),2个Bit(无校验时)
 

数据校验方式/ModBus 编辑

?