控制器用作 Modbus TCP 上的从站设备

概述

本节介绍用作 Modbus TCP 从站设备M241 Logic Controller 的配置。

Modbus 从站设备向控制器添加另一个 Modbus 服务器功能。此服务器由 Modbus 客户端应用程序通过指定 1...247 范围内的已配置单元 ID(Modbus 地址)来寻址。从站控制器的嵌入式 Modbus 服务器无需配置,可通过指定单元 ID 等于 255 来寻址。请参见 Modbus TCP 配置

要将 M241 Logic Controller 配置为 Modbus TCP 从站设备,必须向控制器添加 Modbus TCP 从站设备功能(参见后面的“添加 Modbus TCP 从站设备”部分)。此功能会在控制器上创建一个可通过 Modbus TCP 协议进行访问的特定 I/O 区域。每当外部主站需要访问控制器的 %IW%QW 对象时,会用到这个 I/O 区域。这个 Modbus TCP 从站设备功能让您能够为这个区域提供控制器 I/O 对象,而这些对象能够随后藉由单个 Modbus 读/写寄存器请求来访问。

可以从从站控制器看到输入/输出:输入由主站写入,输出由主站读取。

Modbus TCP 从站设备能够定义特权 Modbus 客户端应用程序,该应用程序的连接不会被强制关闭(嵌入式 Modbus 连接可能会在需要 8 个以上的连接时被关闭)。

与特权连接关联的警戒时钟可让您验证控制器是否正在受到特权主站的轮询。如果在超时持续时间内未收到任何 Modbus 请求,则诊断信息 i_byMasterIpLost 设为 1 (TRUE)。有关详细信息,请参阅以太网端口只读系统变量

有关 Modbus TCP 的详细信息,请参阅 www.odva.org 网站。

添加 Modbus TCP 从站设备

若要将 M241 Logic Controller 配置为 Modbus TCP 从站设备,您必须:

步骤

操作

1

在配置中添加 TM4ES4 扩展模块。为此,必须将 Industrial_Ethernet_manager 添加到您的逻辑控制器。

2

硬件目录中选择 Modbus TCP 从站设备

3

将其拖放到其中一个突出显示节点的设备树中。

有关将设备添加到项目的更多信息,请参阅:

• 使用硬件目录

• 使用上下文菜单或加号按钮

Modbus TCP 配置

若要配置 Modbus TCP 从站设备,请双击设备树中的 TM4ES4 Ethernet_1 > ModbusTCP_Slave_Device

将出现以下对话框:

元素

描述

IP 主站地址

Modbus 主站的 IP 地址

此地址上的连接不会关闭。

警戒时钟

警戒时钟按 500 毫秒递增

注: 警戒时钟适用于 IP 主站地址,但该地址为 0.0.0.0 时除外。

从站端口

Modbus 通讯端口 (502)

注: 可以使用 changeModbusPort 脚本命令修改端口号。

单元 ID

将请求发送到 Modbus TCP 从站设备 (1...247),而不是发送到嵌入式 Modbus 服务器 (255)。

保持寄存器 (%IW)

交换要使用的 %IW 寄存器数 (2...120)(每个寄存器为 2 字节)

输入寄存器 (%QW)

交换要使用的 %QW 寄存器数 (2...120)(每个寄存器为 2 字节)

Modbus TCP Slave Device I/O Mapping 选项卡

I/O 从主站视角映射到 Modbus 寄存器,如下所示:

  • %IW 从寄存器 0 映射到 n-1,且可读/写(n = 保持寄存器数量,每个 %IW 寄存器的大小为 2 个字节)。

  • %QW 从寄存器 n 映射到 n+m-1,且为只读(m = 输入寄存器数量,每个 %QW 寄存器的大小为 2 个字节)。

一旦配置了 Modbus TCP 从站设备,发送到其单元 ID(Modbus 地址)的 Modbus 命令的处理方式便与寻址到网络上任何其他 Modbus 设备的同一命令的处理方式不同。例如,当 Modbus 命令 3 (3 hex) 发送到标准 Modbus 设备时,该命令会读取并返回一个或多个寄存器的值。当此相同命令发送到 Modbus TCP 从站时,该命令会帮助外部 I/O 扫描器进行读操作。

在配置 Modbus TCP 从站设备后,发送到其单元 ID(Modbus 地址)的 Modbus 命令便会访问控制器的 %IW%QW 对象,而不是当单元 ID 为 255 时被访问的常规 Modbus 字。这有利于 Modbus TCP IOScanner 应用程序进行读/写操作。

Modbus TCP 从站设备响应 Modbus 命令的一个子集,其目的是与外部 I/O 扫描器交换数据。以下 Modbus 命令受 Modbus TCP 从站设备支持:

功能代码十进制(十六进制)

功能

注释

3 (3)

读取保持寄存器

允许主站读取设备的 %IW 和 %QW 对象

6 (6)

写入单个寄存器

允许主站写入设备的 %IW 对象

16 (10)

写入多个寄存器

允许主站写入设备的 %IW 对象

23 (17)

读取/写入多个寄存器

允许主站读取设备的 %IW 和 %QW 对象,并写入设备的 %IW 对象

其他

不支持

注: 尝试访问 n+m-1 以上的寄存器的 Modbus 请求通过“02 - 非法数据地址”例外代码进行应答。

要将 I/O 对象链接到变量,请选择 Modbus TCP 从站设备 I/O 映射选项卡:

通道

类型

描述

输入

IW0

WORD

保持寄存器 0

...

...

...

IWx

WORD

保持寄存器 x

输出

QW0

WORD

输入寄存器 0

...

...

...

QWy

WORD

输入寄存器 y

字数取决于 Modbus TCP 选项卡的保持寄存器 (%IW)输入寄存器 (%QW) 参数。

注: 输出表示来自起点控制器的 OUTPUT(= 控制器的 %IW)。输入表示来自起点控制器的 INPUT(= 控制器的 %QW)。
注: Modbus TCP 从站设备%IW%QW 寄存器当作单个时间一致单元来刷新,与 IEC 任务(默认为 MAST 任务)同步。相比之下,嵌入式 Modbus TCP 服务器仅确保 1 个字(2 字节)的时间一致性。如果应用程序需要多于 1 个字(2 个字节)的时间一致性,须使用 Modbus TCP 从站设备

参数总是更新变量设置为启用 1(如未用在任务中,则使用总线循环任务),并且无法编辑。

总线循环选项

Modbus TCP 从站设备 I/O 映射选项卡中,选择总线循环任务以使用:

  • 使用父总线循环设置(缺省),

  • MAST

  • 项目的现有任务:您可以选择某一已有任务,并将其与扫描器进行关联。关于应用程序任务的更多详细信息,请参阅 EcoStruxure Machine Expert 编程指南。

注: 在设备的 I/O 映射编辑器中有一个对应的总线循环任务,其中包含 Modbus TCP 从站设备。此参数定义负责刷新 %IW%QW 寄存器的任务。