# HollySys Modbus RTU

Neuron HollySys Modbus RTU 插件使用 Modbus RTU 协议，用于采集和利时 PLC 标签的数据，支持 LK/LE 系列 PLC 型号。

## 添加插件

在 **配置 -> 南向设备**，点击**添加设备**来创建设备节点，输入插件名称，插件类型选择 **HollySys Modbus RTU** 启用插件。

## 设备配置

点击插件卡片或插件列，进入**设备配置**页。配置 Neuron 与设备建立连接所需的参数，下表为插件相关配置项。

| <div style="width:100pt">参数</div>               | 说明                                                    |
| -------------------- | ---------------------------------------------------------------------------------------------- |
| **物理链路**         | 选择使用 Serial （串口）或者是 Ethernet（以太网）通信介质。                                    |
| **连接超时时间**     | 等待设备返回指令响应的时间。                                                                   |
| **最大重试次数**     | 发送读取指令失败后最大重试次数。                                                               |
| **指令重新发送间隔** | 发送读取指令失败后重新发送读指令时间间隔，单位为毫秒。                                         |
| **指令发送间隔**     | 发送每条读写指令之间的等待时间。某些串口设备在较短时间内接收到连续指令时，可能会丢弃某些指令。 |
| **串口设备**         | 串口模式下，串口设备的路径，如 Linux 系统中 /dev/ttyS0。                                       |
| **停止位**           | 串口模式下，串口连接参数。                                                                     |
| **校验位**           | 串口模式下，串口连接参数。                                                                     |
| **波特率**           | 串口模式下，串口连接参数。                                                                     |
| **数据位**           | 串口模式下，串口连接参数。                                                                     |
| **连接模式**         | Ethernet 模式下，可以选择 Neuron 作为 TCP 的客户端或是服务端。                                 |
| **IP 地址**          | Ethernet 模式下，设备的 IP 地址（Neuron 作为客户端）；或是 Neuron 本机的 IP 地址（Neuron 作为服务端），默认可填 0.0.0.0。 |
| **端口**             | Ethernet 模式下，设备的端口号（Neuron 作为客户端）；或是 Neuron 本机的端口（Neuron 作为服务端）。|
| **最大重试次数**     | 发送读取指令失败后最大重试次数。                                                               |
| **指令重新发送间隔** | 发送读取指令失败后重新发送读指令时间间隔，单位为毫秒。                                         |

HollySys Modbus RTU 插件的配置与 [Modbus RTU驱动模块](../modbus-rtu/modbus-rtu.md)相似。

## 设置组和点位

完成插件的添加和配置后，要建立设备与 Neuron 之间的通信，首先为南向驱动程序添加组和点位。

完成设备配置后，在**南向设备**页，点击设备卡片/设备列进入**组列表**页。点击**创建**来创建组，设定组名称以及采集间隔。完成组的创建后，点击组名称进入**点位列表**页，添加需要采集的设备点位，包括点位地址，点位属性，数据类型等。

公共配置项部分可参考[连接南向设备](../south-devices.md)，本页将介绍支持的数据类型和地址格式部分。

### 数据类型

* BIT
* BOOL
* INT16
* UINT16
* WORD

### 地址格式

> SLAVE!ADDRESS[#ENDIAN]

#### **SLAVE**

必填，指从机地址或者是站点号。

#### **ADDRESS**

和利时 PLC 将数据单元映射到 Modbus 地址空间，以通过 Modbus RTU 协议进行访问。
Neuron HollySys Modbus RTU 插件将 PLC 数据单元名称指定为 **ADDRESS**，用户不需要关心地址映射的细节。

| 数据区                          | Modbus 地址范围                             | 属性       | 寄存器大小    | 数据类型  |
| ------------------------------- | ------------------------------------------- | ---------- | ------------- | --------- |
| IX (Input)                      | IX0.0 ... IX0.7, IX1.0 ... IX1.7 ...        | Read       | 1Bit          |  BOOL/BIT     |
| IW (Input Registers)            | IW0, IW1, ...                               | Read       | 16Bit,2Byte   |  INT16/UINT16 |
| QX (Coils)                      | QX0.0 ... QX0.7, QX1.0 ... QX1.7 ...        | Read/Write | 1Bit          |  BOOL/BIT     |
| QW (Hold Registers)             | QW0, QW1, ...                               | Read/Write | 16Bit,2Byte   |  INT16/UINT16 |
| MX (Coils)                      | MX0.0 ... MX0.7, MX1.0 ... MX1.7 ...        | Read/Write | 1Bit          |  BOOL/BIT     |
| MW (Hold Registers)             | MW0, MW1, ...                               | Read/Write | 16Bit,2Byte   |  INT16/UINT16 |

#### **#ENDIAN**

选填，字节顺序，适用于 int16/uint16 数据类型，详细说明见下表。

| 符号 | 字节顺序 | 支持的数据类型     | 备注               |
| ---- | -------- | ------------------ | ------------------ |
| #B   | 2,1      | int16/uint16       |                    |
| #L   | 1,2      | int16/uint16       | 不填，默认字节顺序 |

::: tip
字节顺序可能用 ABCD 表示，只需将 1234 对应 ABCD 即可。例如 ABCD 对应默认字节序 1234 (#LL)。
:::


### 地址示例

| 地址           | 数据类型  | 说明                                               |
| -------------- | --------- | -------------------------------------------------- |
| 1!IX1.0        | bit       | 指站号为 1，PLC 数据单元 IX1.0, 只读。             |
| 1!QW0          | int16     | 指站号为 1，PLC 数据单元 QW0, 支持读写。           |
| 2!MW1          | int16     | 指站号为 2，PLC 数据单元 MW1, 支持读写。           |


## 数据监控

完成点位的配置后，您可点击 **监控** -> **数据监控**查看设备信息以及反控设备，具体可参考[数据监控](../../../admin/monitoring.md)。
