# IEC60870-5-101

IEC 60870-5-101是一个国际标准，定义了电力变电站控制和监控系统之间的通信协议。它是IEC 60870-5系列的一部分，该系列包括电力系统自动化领域常用的各种协议。

具体而言，IEC 60870-5-101适用于通过串行接口进行点对点通信，通常使用EIA-232或EIA-485标准。它允许主站（如控制中心）与位于变电站的远程终端单元（RTU）之间进行实时数据和命令交换。这些RTU负责监测和控制变电站内的设备和过程。

## 添加设备

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

## 设备配置

在 **南向设备** 页，点击设备卡片进入设备配置页，配置设备参数。


| 参数          | 说明                  |
| ------------ | --------------------- |
| **串口设备** | 串口模式下，串口设备的路径，如 Linux 系统中 /dev/ttyS0。 |
| **停止位** | 串口模式下，串口连接参数。 |
| **校验位** | 串口模式下，串口连接参数。 |
| **波特率** | 串口模式下，串口连接参数。 |
| **数据位** | 串口模式下，串口连接参数。 |
| **设备 IP 地址** | 设备的 IPv4 地址                |
| **设备端口**     | 设备端口号，默认为 2404  |
| **公共地址**       |  公共地址，唯一标识数据对象               |
| **总召唤间隔** | 发送总招唤指令的间隔         |

## 设置组和点位

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

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

点位属性配置为`Read`，则代表该点位不仅会根据配置的`总召唤间隔`，定期上报101 Server发出的数据点的值，同时还会根据组的`采集间隔`，定期上报数据。

点位属性配置为`Subscribe`，则代表该点位不仅会根据配置的`总召唤间隔`，定期上报101 Server发出的数据点的值，同时当数据点位变化后，Neuron也会收到变化的数据点，并通过北向应用配置将数据点北向上报。

::: tip 提示
由于101协议的实时性要求，配置为`Subscribe`的点位，Neuron会在收到数据点位变化后，立即将变化的数据点位上报到北向应用，并且不受采集组的`采集间隔`限制。
::: 

::: tip 提示
当采集组的数据点位都配置为`Subscribe`类型，即使数据点位没有任何变化，总召唤上报仍会触发。
::: 

点位属性配置为`Write`，则代表该点位支持Neuron主动写入数据到101 Server，注意，101协议的读地址与写地址是分离的，一个点位地址位要么是读点位要么是写点位，不存在同时可读可写的点位，具体信息可查阅101协议相关文档。

点位属性`Subscribe`、`Read`、`Write`只可单独配置。

::: tip 提示
建议在同一个采集组中，只配置一种点位属性，例如，一个采集组中，只配置`Subscribe`属性的点位，或者只配置`Read`属性的点位，或者只配置`Write`属性的点位。
::: 

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

### 数据类型

* UINT8
* INT8
* UINT16
* INT16
* UINT32
* INT32
* FLOAT
* BIT

### 地址格式

> IOA

#### IOA
在 IEC60870-5-101 协议中，IOA (Information Object Address) 指的是信息对象地址，是用于唯一标识一个数据对象的地址，用于指定一个信息对象（遥信、遥测、遥控等）的地址。

| IEC 60870-5-101  类型 ID         | 数据类型  |
| :------------------------------ | :------------ |
| M_ME_NA_1、M_ME_TD_1、M_ME_ND_1、M_ME_NB_1、M_ME_TE_1            | uint16/int16 |
| M_IT_NA_1 | int32/uint32|
| M_ME_NC_1、M_ME_TF_1            | float        |
| M_SP_NA_1、M_SP_TB_1            | bit/int8/uint8          |

::: tip
IEC60870-5-101 协议中，一个 IOA 标识的地址只属于一种类型，且能读的点位如遥测等与控制点位如遥控等的 IOA 并不相同，例如，遥测点位 IOA 为 100，这个点位对应的遥控点位 IOA 并不是 100，而是映射到其他的 IOA。
::: 

### 数据订阅
IEC60870-5-101 在协议层面支持点位发生改变时，设备主动上报点位值。在 Neuron 侧需要给点位配置 Subscribe 属性，当设备向 Neuron 发送变化数据时，Neuron 才会及时把此变化消息发送到对应的北向应用中。


### 地址示例

| IOA         | 类型  | 说明 |
| :-------- | :------------ | :---- |
| 100 | M_SP_NA_1 | 读取 IOA 为 100 的一位开关量（单点信息） |
| 1000| C_SC_NA_1 | 单点遥控，对 IOA 为 1000 的信息对象进行一位开关量进行控制写入 ｜
| 400 | M_ME_NA_1 | 读取 IOA 为 400 的测量值 ｜ 
| 4000|C_SE_NA_1 | 单点控制，对 IOA 为 4000 的信息对象进行控制写入 ｜

如上表中 100 与 1000 存在映射关系，则对 1000 进行控制写入后，能从 100 中读到写入的值；或是 400 与 4000 存在映射关系，则对 4000 进行控制写入后，能从 400 中读到写入的值。

::: tip
支持点位时间以及点位质量的数据点，在北向发送数据时，将会可选的增加对应点位的质量以及时间。
::: 

## 数据监控

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

