Modbus RTU 协议在AC500 处理器模块中实现。Modbus 是一种主从(客户端-服务器)协议。客户端向服务器发送请求并接收响应。
串行接口的Modbus 运行模式在 PLC 配置⮫ “在串行接口上配置Modbus RTU” 中设置。
要将 PLC 用作Modbus RTU 客户端,可以使用两种可能的编程方法:
-
ModRtuMast
-
带有读/写功能块的 ModRtuToken
ModRtuMast
通过这种方法,Modbus 客户端功能块 ModRtuMast 可用于按顺序对所有读取和/或写入任务进行编程。如果使用了一个以上的 ModRtuMast 功能块,例如用于多个断开连接,则序列必须确保每次只有一个 ModRtuMast 功能块处于活动状态。
应用示例⮫ Modbus RTU 和功能块 ModRtuMast中概述了Modbus RTU 与AC500 PLC 通信所支持的功能代码。
带有读/写功能块的 ModRtuToken
在这种方法中,功能块ModRtuToken
与ModRtuRead
和/或ModRtuWrite
和/或ModRtuReadWrite23
一起使用。
为了确保Modbus RTU 的序列功能,必须通过功能块之间的结构变量进行简单连接,而不是进行序列编程。
应用示例⮫ Modbus RTU 和功能块 ModRtuMast提供了Modbus 客户端和服务器的示例项目,以实现Modbus RTU 与AC500 PLC 的通信。
要在AC500-eCo PLC 上使用 Modbus RTU 协议,处理器模块必须配备 COMx 串行通信选件板 TA5141-RS232I、TA5142-RS485 或 TA5142-RS485I 选件板。必须根据所需的物理串行接口类型来选择选件板适配器的类型。
根据 CPU 类型,最多可使用 3 个 COMx 串行通信选件板⮫ “安装用于 COMx 串行通信的选件板” 。
Modbus RTU 可用于AC500-eCo PLC 和控制面板之间的通信。下面以 CP604 控制面板为例介绍连接原理:⮫ 通过 Modbus RTU 连接 CP604.
Modbus 客户
在这种运行模式下,通过功能块ModRtuMast 处理与服务器之间的报文传送。
该功能块通过设置接口向服务器发送Modbus 请求报文,并通过该接口从服务器接收Modbus 响应报文。
服务器传输的Modbus 数据块包含以下信息:
-
Modbus 被询问服务器的地址(1 个字节)
-
定义客户端请求的功能代码(1 个字节)
-
要交换的数据(n 字节)
-
CRC16 控制代码(2 个字节)
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 个复数单词 |