设备定义
要更改设备的定义,在 Overview 视图中选择 Device definition。
当首次在项目中添加模块时,Device Definition 对话框仅显示 Overview 视图,通道 0 默认设为 Disabled。 根据为通道 0 所选的参数,还可以设置其他参数。
如果将 Channel 0 设置为 Modbus Master,则可查看 Channel 0 – Modbus Master 视图。 有关详细信息,请参见 Channel 0 – Modbus Master 视图。
如果在 Overview 视图中将 Channel 0 设置为 Modbus Slave,则可以看到 Channel 0 – Modbus Slave 视图。
有关详细信息,请参见 Channel 0 – Modbus Slave 视图。
Overview 视图
使用 Device Definition 对话框中的 Overview 视图定义设备或更改设备定义。
Device Definition 对话框 – Overview 视图

Overview 视图包括以下参数:
参数 | 定义 | 可用选项 |
|---|---|---|
Device Type | 显示设备目录号和类型。 | 取决于设备 |
Name | 输入符合 IEC 61131 的设备名称。 如果在该字段中输入无效字符,或者名称超过 40 个字符,软件将忽略该字符。 | 所有有效值 |
Description | 输入设备描述。 | 所有有效值 |
Slot | 指定设备所在的插槽编号。 根据平台的不同,只有 1 至最大 I/O 设备数量之间的插槽有效。 创建设备时,插槽编号默认为第一个可用插槽位置。 当控制器更换为支持更少最大 I/O 数的控制器时,当前插槽值可能不再有效。 | 1...32 |
Series | 指定设备的系列。 | 取决于设备 |
Revision | 指定设备的主要版本和次要版本。 次要版本的有效范围为 1...255。 | 取决于设备 |
Electronic Keying | 定义设备使用的电子匹配功能。 电子匹配功能能够对比项目中定义的设备与已安装的设备。 如果电子匹配失败,则会发生故障。 有关电子匹配功能的详细信息,请参见 Electronic Keying in Logix 5000 Control Systems Application Technique(出版号:LOGIX-AT001)。 |
注意:
使用 Disable Keying 功能时应尤其谨慎;如果使用不当,该选项会导致人员伤亡、财产损坏或经济损失。 我们强烈建议您不要使用 Disable Keying。 如果您使用 Disable Keying,则必须全权负责了解正在使用的设备是否能达到应用项目的功能要求。 |
Connection | 指定设备和控制器之间传输的数据类型。 | Data(默认值) |
Channel 0 | 指定通道用于向串行设备传输数据以及从串行设备接收数据的协议。 |
有关详细信息,请参见 表 2。 |
通信模式 | 定义 |
|---|---|
Disabled | 通道未使用,在控制器和串行模块之间未启用物理连接。 |
Generic ASCII | 串行通信的一种通用模式,在该模式下可以定义在通信中要发送或接收的任何用户数据。 |
Modbus Master | 设备向与其相连的从站设备发送 Modbus 查询或写入命令。 |
Modbus Slave | 设备用作外部主站的从站,等待来自主站的命令。 |
Channel 0 – Modbus Master 视图
Modbus Master 视图允许您定义 Modbus 主站设备。
Channel 0 – Modbus Master 视图示例

Modbus Master 视图包括以下参数:
参数 | 定义 | 可用选项 | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Command | 显示正在配置的命令的索引。 | 0...49 | ||||||||||||||||||
Communication Method | 指定命令的通信方法。
小贴士:
参数在禁用通信方法时不可用。
|
| ||||||||||||||||||
Data Type | 指定命令的数据类型。 |
| ||||||||||||||||||
Function Code | 指定命令的功能。 有关每种功能代码选择的说明,请参见 表 4。 | 指定命令的功能。 有效值取决于数据类型。 如果数据类型为 BOOL:
如果数据类型为 INT:
如果数据类型为 REAL:
| ||||||||||||||||||
Slave | 指定 Modbus 从站设备的节点地址。 | 特定 Modbus 从站设备的有效地址为 1...247。 对于广播命令,将从站设置为
0。广播命令只能是写入命令。 | ||||||||||||||||||
Register Start Address | 指定要读取或写入的寄存器的起始地址。 | 0...65,535 | ||||||||||||||||||
Data Count | 指定要读取或写入的数据类型的数据数。 如果使用 REAL,则每个数据使用 2 个寄存器。 连续的寄存器读取/写入次数如下:
由数据计数引起的结束地址不得超过最大地址 65,535。 结束地址的计算公式为(寄存器起始地址 + 寄存器数量 -
1)。 | 有效数据长度值取决于数据类型和功能代码。
| ||||||||||||||||||
Poll Interval | 指定当命令处于连续模式时,每次执行命令之间的秒数。 例如,如果轮询间隔设置为 10,则 Modbus 主站将等待 10 秒,然后再再次执行命令。当轮询间隔设为 0
时,Modbus 主站将尽可能快地重复发送命令。
小贴士:
当通信方式为 Conditional
时,此参数不可用。
| 0...32,767 | ||||||||||||||||||
Swap Mode | 指定从 Modbus 从站接收或向其发送的每 4 个字节数据的排列方式。 |
小贴士:
A、B、C 和 D
表示接收/发送数据中的四个相邻字节。
| ||||||||||||||||||
Fault Enable | 确定是否在读取命令失败时用故障值覆盖接收到的数据。 选择复选框,用故障值覆盖接收到的数据。
小贴士:
当功能代码为写入命令时,该参数不可用。
| – | ||||||||||||||||||
Fault Value | 指定在读取命令失败时替换所接收数据的值。 | – | ||||||||||||||||||
Connection 1/Connection 2 | 默认情况下,命令通信使用 Connection 1。 如果命令数据大小超过可用于 Connection 1 的剩余数据量,则命令改用 Connection 2。 | – | ||||||||||||||||||
Input | 显示该连接的剩余读取数据量。 | – | ||||||||||||||||||
Output | 显示该连接的剩余写入数据量。 | – |
Data Type | Function Code | Description |
|---|---|---|
BOOL | Read Coils(功能代码 01) | 读取从站设备中线圈 1...2000 的连续状态。 |
Read Discrete Inputs(功能代码 02) | 读取从站设备中离散量输入 1...2000 的连续状态。 | |
Write Single Coil(功能代码 05) | 将单个输出写入从站设备中的 ON 或 OFF。 | |
Write Multiple Coils(功能代码 15) | 将 1...1968 连续输出写入从站设备中的 ON 或 OFF。 | |
INT | Read Holding Registers(功能代码 03) | 读取从站设备中 INT 保持寄存器 1...125 的连续块。 |
Read Input Registers(功能代码 04) | 读取从站设备中 INT 输入寄存器 1...125 的连续块。 | |
Write Single Register(功能代码 06) | 在从站设备中写入单个保持寄存器。 | |
Write Multiple Registers(功能代码 16) | 写入从站设备中 INT 保持寄存器 1...123 的连续块。 | |
REAL | Read Holding Registers(功能代码 03) | 读取从站设备中 REAL 保持寄存器 1...62 的连续块。 |
Read Input Registers(功能代码 04) | 读取从站设备中 REAL 输入寄存器 1...62 的连续块。 | |
Write Multiple Registers(功能代码 16) | 写入从站设备中 REAL 保持寄存器 1...61 的连续块。 |
主站命令列表限制
主站命令列表限制为:
- 可创建多达 50 条命令。 命令数取决于可用的连接存储空间。
- 每个 Modbus 主站至多支持两个数据连接。
- Connection 1 最多支持 464 字节的读取数据和 476 字节的写入数据。
- Connection 2 最多支持 472 字节的读取数据和 488 字节的写入数据。
- 每条命令均使用:
- 两个字节的输入数据/保持寄存器或输入寄存器读操作。
- 一个字节的输入数据/1…8 个线圈或离散量输入的读操作。
- 两个字节的输出数据/保持寄存器的写操作。
- 一个字节的输出数据/1…8 个线圈的写操作。
- 超出连接存储空间时,会显示一条错误消息。
主站命令存储空间使用率
以下是主站命令内存使用率的示例:
- 寄存器的最大单一连接组态:
- 223 字 * 2 字节/字读操作 = 446 个输入字节
- 241 字 * 2 字节/字写操作 = 482 个输出字节

- 线圈的最大单一连接组态:
- 3576 位/8 位/字节读操作 = 447 个输入字节
- 写入 3856 位/8 位/字节 = 482 个输出字节

Channel 0 – Modbus Slave 视图
Modbus Slave 视图允许您定义 Modbus 从站设备。
Channel 0 – Modbus Slave 视图示例

Modbus Slave 视图包括以下参数:
参数 | 定义 | 可用选项 |
|---|---|---|
Register Mapping Number | 显示寄存器映射编号。 | 0...29 |
Register Type | 指定寄存器类型。
小贴士:
当寄存器类型被禁用时,参数不可用。
|
|
Data Type | 指定寄存器的数据类型。 | 可用的选项取决于您选择的寄存器类型。 对于线圈和离散量输入,可用选项为:
对于保持寄存器和输入寄存器,可用的选项为:
|
Register Start Address | 指定寄存器的起始地址。 | 0...65,535 |
Data Count | 指定数据类型的数据量。 | 有效值取决于数据类型:
连续的寄存器读取/写入次数如下:
对于具有相同寄存器类型的任意两个映射,其寄存器范围不得重叠。 每个映射的寄存器范围从寄存器起始地址到映射结束地址。
结束地址的计算公式为(寄存器起始地址 + 寄存器数量 - 1)。 每个映射的结束地址不得超过最大地址 65,535。 |
Buffer Index | 指定输入和/或输出标签中寄存器缓冲区的缓冲区索引。 这些标签为
HoldingRegister[y]、Cirpend[z]、InputRegist [y] 和
DiscreteInput[z],其中“y”和“z”为缓冲区索引。 |
该寄存器映射占用的连续缓冲区数量如下:
对于具有相同寄存器类型的任意两个寄存器映射,其缓冲区范围不得重叠。 缓冲区范围从缓冲区索引到数据计数引起的结束缓冲区索引。
结束缓冲区索引的计算公式为(缓冲区索引 + 缓冲区数量 - 1)。 每个映射的结束缓冲区索引不得超过上述定义的缓冲区索引的有效范围。 |
Buffer Index 错误示例

Modbus Slave 地址表限制
根据可用内存,模块从站地址表最多可创建 30 个数据点范围:
- 最大 200 字节保持寄存器(多达 100 个 INT 或 50 个 REAL)
- 最大 200 字节输入寄存器(多达 100 个 INT 或 50 个 REAL)
- 多达 128 个线圈(数据索引 0…15,基于 8 位边界)
- 多达 128 个离散量输入(数据索引 0…15,基于 8 位边界)
Modbus Slave 数据映射示例
Modbus Slave 数据映射示例

从模块标签中可以解读图 5
中表示的数据:
- v:2:O1.Slave.HoldingRegister[0…2] = 400003…400005
- v:2:O1.Slave.HoldingRegister[3…9] = 432000…432006
- v:2:O1.Slave.HoldingRegister[10…99] = 400999…410088
- v:2:O1.Slave.Coil[0].0…0.7 = 000000…000007
- v:2:O1.Slave.Coil[1].0 = 000010
- v:2:O1.Slave.Coil[2].0…[4].0 = 0320000…032016
- v:2:O1.Slave.Coil[5].0…[15].7 = 000999…001086

提供反馈