分布式远程IO系统耦合器BL200 Modbus现场总线通信
分布式远程IO系统耦合器BL200 Modbus现场总线通信
Modbus现场总线通信
Modbus 是一种独立于制造商的开放式现场总线标准协议,适用于制造和过程自动化中的各种应用。
MODBUS 是一种应用层消息传递协议,位于 OSI 模型的第 7 层,可以在不同类型的总线或网络上连接的设备之间进行客户端/服务器通信。
几种常用的网络如下:
TCP/IP over Ethernet。
多种媒体异步串行传输(有线:EIA/TIA-232-E、EIA-422、EIA/TIA-485-A;光纤、无线电等)。
MODBUS PLUS,高速令牌。
MODBUS 是一种请求/应答协议,提供由功能代码指定的服务。
MODBUS 协议允许在所有类型的网络架构内轻松通信。
图 1:Modbus 网络架构
MODBUS 协议定义了一个独立于底层通信层的简单协议数据单元 (PDU)。 MODBUS 协议在特定总线或网络上的映射可以在应用数据单元(ADU)上引入一些附加字段。
图 2:Modbus数据帧
更多关于 Modbus 开放协议规范的细节可以在网站www.modbus.org查看。
Modbus TCP
Modbus TCP协议是Modbus协议的一种变体,该协议经过优化,可通过TCP/IP连接进行通信。该协议设计用于现场级的数据交换(即用于过程映像中的 I/O 数据交换)。在服务端,所有数据包都通过端口号为 502 的 TCP 连接发送。
一般 Modbus TCP 报文如下:
字节 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 - n |
定义 | 事务标识符 | 协议标识符 (始终为00) | 字段长度 | 从机地址 | Modbus 功能码 | 数据 |
Modbus数据编码
MODBUS对地址和数据项使用“大端”表示。这意味着当传输大于单个字节的数字量时,首先发送最高有效字节。
Modbus数据类型
modbus协议基于以下基础数据类型:
数据类型 | 对象类型 | 访问类型 | 描述 |
数字输入 | 1 bit | 只读 | 数字输入 |
线圈 | 1 bit | 读/写 | 数字输出 |
输入寄存器 | 16 bit (word) | 只读 | 模拟输入 |
保持寄存器 | 16 bit (word) | 读/写 | 模拟输出 |
表 2:Modbus基础数据类型
对于每个基础数据类型,都定义了一个或多个功能码。这些功能码允许数字或模拟的输入和输出数据,以及内部变量被设置或直接从现场总线节点中读取。