Modbus TCP 协议在AC500 处理器模块中实现。Modbus 是一个主从(客户-服务器)协议。客户端向服务器发送请求并接收响应。如果需要,每个Ethernet 接口都可以作为Modbus 客户端和服务器接口并行工作。
Modbus Ethernet 接口的运行模式在Modbus 的 TCP/IP 协议⮫ “Modbus 关于 TCP/IP 协议” 中设置。
Modbus 客户
在这种运行模式下,与服务器之间的报文通信通过功能块 ModTcpMast 处理,该功能块可通过库管理器 ⮫ “库管理器 功能” 找到。该功能块通过设置接口向服务器发送Modbus 请求报文,并通过该接口从服务器接收Modbus 响应报文。
Modbus 客户端传输的功能块包含以下信息:
-
用于同步服务器和客户端信息的事务标识符(2 字节)
-
协议标识符(0 表示Modbus/TCP)(2 个字节)
-
长度字段(帧中的字节数)(2 字节)
-
单位标识符(1 个字节)
-
定义客户端请求的功能代码(1 个字节)
-
要交换的数据(n 字节)
Modbus 服务器
在这种运行模式下,Modbus 通信不需要任何功能块。发送和接收Modbus 电报都是自动进行的。
AC500 CPU 处理以下Modbus 操作码:
功能代码 |
说明 |
|
---|---|---|
DEC |
HEX |
|
01 或 02 |
01 或 02 |
读取 n 位 |
03 或 04 |
03 或 04 |
阅读 n 个单词 |
05 |
05 |
写入一个比特(用一个字编码) |
06 |
06 |
写一个字 |
15 |
0F |
写入 n 位(用一个字节编码) |
16 |
10 |
写 n 个字 |
22 |
16 |
掩码写入 |
23 |
17 |
在一个报文中读取/写入多个字 |
发送数据的长度有以下限制:
功能代码 |
最大长度 |
|
---|---|---|
DEC |
HEX |
|
01 或 02 |
01 或 02 |
2000 位 |
03 或 04 |
03 或 04 |
125 个单词/62 个复数单词 |
05 |
05 |
1 位 |
06 |
06 |
1 个字 |
15 |
0F |
2000 位 |
16 |
10 |
123 个单词/61 个复音词 |
22 |
16 |
写:1 个字 |
23 |
17 |
阅读:125 个单词/62 个复数单词 写:121 个单词/60 个复数单词 |