# Omron FINS TCP

欧姆龙 FINS （Factory Interface Network Service）是一种用于工业自动化领域的通信协议，是欧姆龙公司开发的一种专有协议，此协议提供了一种高效、可靠的通信方式，用于在欧姆龙 PLC、传感器等设备之间进行数据交换。FINS 协议支持多种通信方式，包括串口、TCP、UDP 等。

Neuron 支持 FINS TCP 协议，可以通过 FINS TCP 协议与欧姆龙 PLC 进行通信。

## 添加插件

在 **配置 -> 南向设备**，点击**添加设备**来创建设备节点，输入插件名称，插件类型选择 **Omron FINS TCP**。

## 设备配置

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

| 字段               | 说明                            |
| ------------------ | ------------------------------- |
| **设备型号**       | PLC 设备型号                    |
| **PLC IP 地址**    | 目标 PLC IPv4 地址              |
| **PLC 端口**       | 目标 PLC 端口，默认为 9600      |
| **包最大字节长度** | 查询数据包最大字节数，默认为 64 |

## 设置组和点位

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

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

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

### 数据类型

* UINT8
* INT8
* INT16
* UINT16
* INT32
* UINT32
* FLOAT
* INT64
* UINT64
* DOUBLE
* BIT
* STRING

### 地址格式

> AREA ADDRESS\[.BIT]\[.LEN\[H]\[L]]

#### AREA ADDRESS

| 区域 | 数据类型                                    | 属性  | 备注       |
| ---- | ------------------------------------------- | ----- | ---------- |
| CIO  | 除 uint8/int8 外的所有类型                  | 读/写 | CIO 区     |
| A    | 除 uint8/int8 外的所有类型                  | 读    | 辅助区     |
| W    | 除 uint8/int8 外的所有类型                  | 读/写 | 工作区     |
| H    | 除 uint8/int8 外的所有类型                  | 读/写 | 保持区     |
| D    | 除 uint8/int8 外的所有类型                  | 读/写 | 数据存储区 |
| P    | 除 uint8/int8 外的所有类型，但 bit 只支持读 | 读/写 | PVs        |
| F    | int8/uint8                                  | 读    | 标志区域   |
| EM   | 除 uint8/int8 外的所有类型                  | 读/写 | 扩展内存   |

#### .BIT

选填，指某一地址的某一位。

#### .LEN\[H]\[L]

当数据类型是 string 类型时，是必填项，**.LEN** 表示字符串长度，包含 **H** 和 **L** 两种字节顺序，不填默认是 **H** 字节顺序。

### 地址示例

| 地址        | 数据类型 | 说明                                                       |
| ----------- | -------- | ---------------------------------------------------------- |
| F0          | uint8    | F 区域，地址为 0                                           |
| F1          | int8     | F 区域，地址为 1                                           |
| CIO1        | int16    | CIO 区域，地址为 1                                         |
| CIO2        | uint16   | CIO 区域，地址为 2                                         |
| A2          | int32    | A 区域，地址为 2                                           |
| A4          | uint32   | A 区域，地址为 4                                           |
| W5          | float    | W 区域，地址为 5                                           |
| W10         | float    | W 区域，地址为 10                                          |
| H20         | double   | H 区域，地址为 20                                          |
| H30         | uint32   | H 区域，地址为 30                                          |
| D10         | int32    | D 区域，地址为 10                                          |
| D20         | float    | D 区域，地址为 20                                          |
| EM10W100    | float    | EM10 区域，地址为 100                                      |
| CIO0.0      | bit      | CIO 区域，地址为 0，第 0 位                                |
| CIO1.2      | bit      | CIO 区域，地址为 1，第 2 位                                |
| A2.1        | bit      | A 区域，地址为 2，第 1 位                                  |
| A2.3        | bit      | A 区域，地址为 2，第 3 位                                  |
| W3.4        | bit      | W 区域，地址为 3，第 4 位                                  |
| W3.0        | bit      | W 区域，地址为 3，第 0 位                                  |
| H4.15       | bit      | H 区域，地址为 4，第 15 位                                 |
| H4.10       | bit      | H 区域，地址为 4，第 10 位                                 |
| D5.2        | bit      | D 区域，地址为 5，第 2 位                                  |
| D5.3        | bit      | D 区域，地址为 5，第 3 位                                  |
| EM10W100.0  | bit      | EM10 区域，地址为 100，第 0 位                             |
| CIO0.20     | string   | CIO 区域，地址为 0，字符串长度 20 个字节，字节顺序为 L     |
| CIO1.20H    | string   | CIO 区域，地址为 1，字符串长度 20 个字节，字节顺序为 H     |
| A2.10L      | string   | A 区域，地址为 2，字符串长度 10 个字节，字节顺序为 L       |
| A2.30       | string   | A 区域，地址为 2，字符串长度 30 个字节，字节顺序为 L       |
| W3.40H      | string   | W 区域，地址为 3，字符串长度 40 个字节，字节顺序为 H       |
| W3.10       | string   | W 区域，地址为 3，字符串长度 10 个字节，字节顺序为 L       |
| H4.15L      | string   | H 区域，地址为 4，字符串长度 15 个字节，字节顺序为 L       |
| H4.10       | string   | H 区域，地址为 4，字符串长度 10 个字节，字节顺序为 L       |
| D5.20H      | string   | D 区域，地址为 5，字符串长度 20 个字节，字节顺序为 H       |
| D5.30       | string   | D 区域，地址为 5，字符串长度 30 个字节，字节顺序为 L       |
| EM10W200.10 | string   | EM 10 区域，地址为 200，字符串长度 10 个字节，字节顺序为 L |

## 应用场景

本文将使用 Omron FINS TCP 插件连接欧姆龙 CP2E PLC，实现读写 PLC 中的点位值，具体步骤，见 [CP2E 连接示例](./example/cp2e/cp2e)。

## 数据监控

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