Modbus协议简介
modbus协议简介
modbus是美国modicon公司开发的消息传输协议,1979年成为施耐德公司的一部分。Modbus协议在工业控制中得到了广泛的应用,已经成为一种通用的工业标准。该协议支持rs-232、rs-422、rs-485和以太网设备。不同厂家生产的控制设备可以通过modbus协议接入通信网络进行集中监控。Modbus协议广泛应用于许多工业控制产品中,如plc、变频器、人机界面、dcs和自动化仪表等。

根据不同的传输网络类型分为串行链路上的modbus和基于tcp/ip协议的modbus。
modbus串行链路协议是一种主从协议。主站发送带有从站地址的请求消息,带有该地址的从站收到后发送应答消息进行应答。
modbus协议位于osi模型的第二层。串行总线中只有一个主站,可以有1 ~ 247个从站。Modbus通信只能由主站发起。当从站没有从主站接收到请求时,它们将不会发送数据,并且从站将不会相互通信。
2。modbus消息传输模式
串行链路上的modbus协议有两种消息传输模式:ascii和rtu(远程终端单元)。同一Modbus网络上的所有站必须选择相同的传输模式和串行端口参数。
(1)ascii模式
当控制器被设置为在modbus网络上以ascii(美国标准信息交换码)模式通信时,消息帧中的每个8位字节被转换为两个ascii字符进行传输。以下是ascii模式下的消息格式:
:地址功能代码数据字节数数据1...数据n lrc高字节lrc低字节回车换行
。消息中的每个ascii字符由十六进制字符组成,每个传输的字符包含一个起始位、7个数据位、一个奇偶校验位和一个停止位。如果没有奇偶校验位,则有两个停止位。Modbus协议需要验证数据。在串行协议中,除奇偶校验外,ascii模式采用纵向冗余校验(lrc),计算lrc时不包括首冒号、lrc本身和回车换行符。

(2)Modbus网络上的rtu模式
rtu模式消息以字节为单位传输,一个字节由两个十六进制数组成。在相同的波特率下,传输效率高于ascii模式。
每个传输字节包含一个起始位、8个数据位(首先发送最低有效位)、奇偶校验位和停止位,与ascii模式下的相同,最长消息为256字节。
Modbus的rtu模式消息的最后两个字节是循环冗余校验码(crc)。验证方法是将整个消息的所有字节(不包括最后两个字节)以指定的方式移位,并进行异或运算。当接收到字符串时,接收器以相同的方式进行计算,并将结果与接收到的循环冗余校验码进行比较。如果是一致的,通信被认为是正确的;如果不一致,则认为通信不正确,从站将发送crc错误响应。modbus中的Rtu采用crc-16冗余校验方法。

下图显示了modbus rtu通信帧的基本结构。从站地址为0 ~ 247,与功能码一起占用一个字节。命令帧中plc地址区的起始地址和crc各占用一个字。数据以字或字节为单位(与功能代码相关)。换句话说,高字节在前,低字节在后。但是crc的低位字节排在第一位,高位字节排在最后。

地址功能代码数据1...数据n crc高字节crc低字节
modbus包括许多功能,每个功能都有相应的功能代码。最基本的功能主要包括ai/ao和di/do数据的传输。
modbus不仅定义了通信功能代码,还定义了错误代码,有助于通信主站找出通信错误的内容和原因,并采取相应的措施,从而保证通信的可靠性。
Modbus定义的错误信息是:指定地址错误、指定数据量错误、从站自身错误、从站无法应答请求或执行所需指令、从站没有时间处理主站发送的通信请求指令。错误信息对应于错误代码。主站收到错误代码后,根据错误原因采取相应措施。例如,改变数据地址、增加传输间隔和重传等。
上一篇:慧聚古都西安丨智物联助力锅炉企
下一篇:邀请函
标题:Modbus协议简介 地址:http://www.zgshouguang.cn/article/8626.html
