Modbus协议简介
时间:2019-01-11 16:37:03 来源:鹭鸥新闻网 作者:匿名


Modbus协议简介

Modbus是由美国Modicon开发的消息传递协议。 1979年,该公司成为施耐德电气的一部分。 modbus协议已广泛应用于工业控制,已成为支持rs-232,rs-422,rs-485和以太网设备的通用行业标准。由不同制造商生产的控制设备可以通过modbus协议连接到通信网络以进行集中监控。许多工业产品,如plc,逆变器,人机界面,dcs和自动化仪器,广泛用于modbus协议。

根据传输网络的类型,它分为串行链路上的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)rtu模式

modbus网络上的rtu模式消息以字节为单位传输,一个字节由两个十六进制数组成。在相同的波特率下,传输效率高于ascii模式。

传输的每个字节包含一个起始位,8个数据位(首先发送最低有效位),奇偶校验位,停止位与ascii模式相同,消息长度为256字节。

modbus rtu模式消息的最后两个字节是循环冗余校验码(crc)。验证方法是以规定的方式移动整个消息的所有字节(不包括最后两个字节)并执行xor(异或)计算。接收器以相同的方式计算相同的方式,并将结果与??接收的循环冗余校验码进行比较。如果一致,则认为通信正确。如果不一致,则认为通信不正确。将发送crc错误响应。在modbus中,rtu使用crc-16的冗余校验模式。

下图显示了modbus rtu通信帧的基本结构。从机地址为0~247,它和功能码占用一个字节。命令帧中plc地址区的起始地址和crc各占一个字,数据为字或字节为单位(与功能码相关)。在字单元中,高字节优先,低字节优先。但是crc的低字节是第一个,而高字节是在之后。

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

Modbus包括各种功能,每个功能都有相应的功能代码。最基本的功能主要包括ai/ao和di/do数据的传输。

除了定义通信功能代码外,modbus还定义了错误代码,有助于通信主机查找错误内容和通信原因,并采取相应措施确保可靠通信。

modbus定义的错误信息是:指定的地址错误,指定的数据量错误,从属自身的错误,无法通知的请求或执行请求指令,从站对主站发送的通信请求命令的无害处理,以及类似。错误消息对应于错误代码。主站收到错误代码后,根据错误原因采取相应的措施。例如,更改数据地址,增加传输间隔和重新发送。

海词网