# Profinet IO

PROFINET 是一个开放式的工业以太网通信协议，是由 PROFIBUS & PROFINET 国际协会所提出。PROFINET 应用 TCP/IP 相关标准，是实时的工业以太网。PROFINET 有模组化的结构，使用者可以依其需求选择层叠的技能。

PROFINET IO 系统包括几个部分：IO 控制器，IO 设备，IO 监控器。IO 控制器用于控制自动化的任务工作；IO 设备一般是现场设备，受 IO 控制器的控制及监控，一个 IO 设备可能包括数个模组和子模组；IO 监控器是一个 PC 软件，可以设定参数以及诊断个别模组的状态。

::: tip
因为 PROFINET IO 实时消息使用 PROFINET 中定义的以太网协议传输（实时消息基于以太网帧传输），因此要使用 PROFINET 驱动时，需要使用物理设备直接部署 Neuron，不能使用虚拟化的部署，如 Docker 镜像或是虚拟机。
:::

## 添加插件

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

## 设备配置

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

| 参数                 | 说明                                                    |
| -------------------- | ------------------------------------------------------- |
| **设备名称** | IO 设备名称 |
| **本地网口** | 需要绑定的本地网卡名  |
| **设备 IP 地址** | IO 设备的 IPv4 地址 |
| **设备端口** | IO 设备的端口号，默认 34964|
| **API 列表** | IO 设备模块 API |
| **槽号** | IO 设备模块槽号 |
| **子槽号** | IO 设备模块子槽号 |
| **标识** | IO 设备模块标识 |
| **子标识** | IO 设备模组标识，模组应用到模块中。 |
| **属性** | IO 设备模组属性 |
| **输入数据长度** | IO 设备模组输入数据长度 |
| **输出数据长度** | IO 设备模组输出数据长度 |

## 设置组和点位

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

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

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

### 数据类型

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

### 地址格式

> SLOT:SUB_SLOT:INDEX\[.BIT][#ENDIAN]

#### **SLOT**

必填，模组插入到模块的槽号。

#### **SUB_SLOT**

必填，模组插入到模块的子槽号。

#### **INDEX**

必填，模组中的数据索引（第几个字节，从 0 开始）。

### 地址示例

| 地址         | 数据类型 | 说明 |
| ----------- | ------- | --------- |
| 3:1:0   | int16    | 槽号 3，子槽号 1 对应模组的第 0,1 字节 |
| 3:1:1   | uint16    | 槽号 3，子槽号 1 对应模组的第 1,2 字节 |
| 3:2:3   | uint32    | 槽号 3，子槽号 2 对应模组的第 3,4,5,6 字节 |
| 3:2:10   | float    | 槽号 3，子槽号 2 对应模组的第 10,11,12,13 字节 |
| 3:2:2   | uint64    | 槽号 3，子槽号 2 对应模组的第 2,3,4,5,6,7,8,9 字节 |
| 3:2:2   | double    | 槽号 3，子槽号 2 对应模组的第 2,3,4,5,6,7,8,9 字节 |

## 数据监控

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