Modbus 管理器用于主站或从站模式下的 Modbus RTU 或 ASCII 协议。
建议使用重新定位表来优化控制器和其他设备之间的通讯。
注意: Modbus 管理器自动添加到设备树的“串行线路 2”节点。
要将 Modbus 管理器添加到控制器中,请在硬件目录中选择 Modbus 管理器,将其拖到设备树,然后将其放到一个突出显示的节点上。
要配置控制器的 Modbus_Manager,请执行以下步骤:
步骤 |
操作 |
---|---|
1 |
在设备树中,双击 Modbus_Manager。 结果:如果已在此串行线路端口上配置了 Modbus_Manager,则会显示 Modbus_Manager 配置窗口。 ![]()
|
如下表所述设置参数:
元素 |
描述 |
---|---|
传输模式 |
指定要使用的传输模式: oRTU:使用二进制编码和 CRC 错误校验(8 个数据位)。 oASCII:消息采用 ASCII 格式和 LRC 错误校验(7 个数据位)。 对于链路上的每个 Modbus 设备,此参数必须相同。 |
寻址 |
指定 M218 设备是主站还是从站。 |
地址 |
设备的 Modbus 地址。 |
帧间时间(毫秒) |
避免总线冲突的时间。 对于链路上的每个 Modbus 设备,此参数必须相同。 |
串行线路设置 |
串行线路配置菜单的[物理设置]中指定的参数。 |
当将控制器配置为 Modbus 主站时,PLCCommunication 库支持以下功能块:
oADDM
oREAD_VAR
oSEND_RECV_MSG
oSINGLE_WRITE
oWRITE_READ_VAR
oWRITE_VAR
有关详细信息,请参阅PLCCommunication库的功能块描述。
当控制器配置为 Modbus 从站时,支持以下 Modbus 请求:
类型 |
功能 |
功能代码 代码/子代码 |
|
---|---|---|---|
数据访问(1 位) |
物理离散量输入和输出 |
读取数字量输出 (%Q) |
01 |
读取数字量输入 (%I) |
02 |
||
写入多个数字量输出 (%Q) |
15 |
||
数据访问(16 位) |
物理输入寄存器 |
读取保持寄存器 (%MV) |
03 |
写入单个寄存器(%MV) |
06 |
||
写入多个寄存器 (%MV) |
16 |
||
读取/写入多个寄存器 (%MV) |
231 |
||
诊断 |
诊断 |
08 |
|
读取设备标识 |
43/14 |
||
1 当从站以返回代码 ILLEGAL FUNCTION 应答功能代码 23 时,主站将发送功能代码 03 和 16。 |
注意: 通过 Modbus 只能访问控制器应用程序的定位变量。
下表包含诊断 Modbus 请求 08 支持的子功能代码:
子功能代码 |
功能 |
|
---|---|---|
十进制 |
十六进制 |
|
10 |
0 A |
清除计数器和诊断寄存器 |
11 |
0B |
返回总线信息计数 |
12 |
0C |
返回总线通讯错误计数 |
13 |
0D |
返回总线异常错误计数 |
14 |
0E |
返回从站信息计数 |
15 |
0F |
返回从站无响应计数 |
16 |
10 |
返回从站 NAK 计数 |
17 |
11 |
返回从站忙计数 |
18 |
12 |
返回总线字符溢出计数 |
下表列出了可以通过读取设备标识请求(基本标识级别)读取的对象:
对象 ID |
对象名称 |
类型 |
值 |
---|---|---|---|
00(十六进制) |
供应商代码 |
ASCII 字符串 |
Schneider Electric |
01(十六进制) |
产品代码 |
ASCII 字符串 |
控制器参考号 例如 TM218LDA24DRN |
02(十六进制) |
主/次修订号 |
ASCII 字符串 |
aa.bb.cc.dd(与设备描述符相同) |
下节描述控制器 Modbus 存储器映射与 HMI Modbus 映射之间的差异。如果您未将应用程序编程为可识别这些映射差异,则控制器与 HMI 将不能正确通讯,并且可能将不正确的值写入负责输出操作的存储器区域。
|
意外的设备操作 |
请将应用程序编程为可在控制器使用的 Modbus 存储器映射与附加 HMI 设备使用的 Modbus 存储器映射之间进行转换。 |
不遵循上述说明可能导致人员伤亡或设备损坏。 |
当控制器和 HMI 通过 Modbus 进行连接时(HMI 是 Modbus 请求的主站),数据交换使用简单字请求。
使用双字时,HMI 存储器的简单字上存在重叠,但是控制器存储器中不存在这种重叠(请参见下图)。为了使 HMI 存储器区域与控制器存储器区域相匹配,HMI 存储器的双字与控制器存储器的双字之比必须为 2。
下面提供了存储器双字匹配的示例:
oHMI 的 %MD2 存储器区域对应于控制器的 %MD1 存储器区域,因为 modbus 请求使用相同的简单字。
oHMI 的 %MD20 存储器区域对应于控制器的 %MD10 存储器区域,因为 modbus 请求使用相同的简单字。
下面提供了存储器位匹配的示例:
oHMI 的 %MW0:X9 存储器区域对应于控制器的 %MX1.1 存储器区域,因为控制器存储器中的简单字分为 2 个不同的字节。
注意: 如果将 %MD 用于 PLC 和 HMI 之间的数据交换,则 PLC 和 HMI 两者的字顺序应保持一致。对于 Modicon M218 Logic Controller,双字变量的顺序是低字在前。