# Allen-Bradley DF1

DF1 是罗克韦尔自动化（Rockwell Automation）公司的一种专有通信协议，主要用于其 Allen-Bradley 系列 PLC（可编程逻辑控制器）和其他设备之间的数据交换。

Neuron Allen-Bradley DF1 插件支持点对点通信，通过串行通信线路进行数据传输。

## 添加插件

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

## 设备配置

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

| 参数                 | 说明                                                    |
| -------------------- | ------------------------------------------------------- |
| **接收超时时间** | 等待设备返回指令响应的时间。  |
| **指令发送间隔** | 发送每条读写指令之间的等待时间。某些串口设备在较短时间内接收到连续指令时，可能会丢弃某些指令。 |
| **串口设备** | 使用串口连接时，串口设备的路径，如 Linux 系统中 /dev/ttyS0。|
| **停止位** | 串口连接参数。 |
| **校验位** | 串口连接参数。 |
| **波特率** | 串口连接参数。 |
| **数据位** | 串口连接参数。 |

## 设置组和点位

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

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

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

### 数据类型

* INT16
* UINT16
* INT32
* UINT32
* FLOAT
* BIT
* STRING

### 地址格式

> FILE NUM:ELEM[.BIT][#ENDIAN]\[.LEN\[H]\[L]]
例如 N7:0

#### **FILE**

必填，指文件类型。
| 区域 |文件类型 |
| ---- | --------- |
| U    |  STATUS     |
| B    |  BIT        |
| T    |  TIMER      |
| C    |  COUNTER    |
| R    |  COUNTROL   |
| N    |  INTEGER    |
| F    |  FLOAT      |
| S    |  STRING     |
| A    |  ASCII      |

#### NUM

必填，指文件号。

#### ELEM

必填，指数据地址。

#### **.BIT**

选填，存储地址中的特定 bit，例如：
| 地址         | 数据类型 | 说明                                                |
| ----------- | ------- | --------------------------------------------------- |
| N7:0.0  | bit     | 指 INT 文件 7，地址为 0，第 0 位。     |
| N7:0.15 | bit     | 指 INT 文件 7，地址为 0，第 15 位。    |

#### **#ENDIAN**

选填，字节顺序，适用于 int16/uint16/int32/uint32/float 数据类型，详细说明见下表。
| 符号 | 字节顺序 | 支持的数据类型        | 备注 |
| --- | ------- | ------------------ | ----- |
| #B  | 2,1 or 8,7,6,5,4,3,2,1     | int16/uint16       |       |
| #L  | 1,2 or 1,2,3,4,5,6,7,8    | int16/uint16       | 不填，默认字节顺序 |
| #LL | 1,2,3,4 | int32/uint32/float | 不填，默认字节顺序 |
| #LB | 2,1,4,3 | int32/uint32/float | |
| #BB | 3,4,1,2 | int32/uint32/float | |
| #BL | 4,3,2,1 | int32/uint32/float | |

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

当数据类型为 STRING 类型时，**.LEN** 是必填项，表示字符串需要占用的字节长度，每个寄存器中包含 **H**，**L** 两种存储方式，如下列表格所示。
| 符号 | 说明                                  |
| --- | ------------------------------------- |
| H   | 一个寄存器存储两个字节，高字节在前低字节在后。 |
| L   | 一个寄存器存储两个字节，低字节在前高字节在后。 |

::: tip
对于 T C R 区域地址数据为六字节。
前两字节可使用 bit 或 int16，uint16 类型；
中间两字节数据需用 int16 或 uint16类型，地址后缀加 .PRE;
末尾两字节数据需用 int16 或 uint16类型，地址后缀加 .ACC。
例如 T2:1.ACC
:::


## 数据监控

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