主题
AB PLC 接入
支持以下 PLC 通讯协议:
- EtherNet/IP (CIP) 协议
- DF1 协议
CIP 协议
EtherNet/IP (CIP) 协议, 适用于 Allen-Bradley 5000 系列 PLC 设备,包括ControlLogix 55xx系列,以及CompactLogix 53xx系列等。
通道设置
参数说明:
名称 | 必填 | 说明 |
---|---|---|
IP | 是 | PLC 的IP地址。 |
端口 | 是 | PLC 的通讯端口,默认为 44818。 |
槽号 | 否 | CPU 槽号,默认为 1 |
读超时时间 | 是 | 单位秒 |
恢复采集间隔 | 是 | 单位秒,如果设备离线,则经过该间隔时间后再次尝试读取数据 |
帧间隔 | 是 | 单位毫秒,每次接收到数据到下次发出请求之间的最小时间间隔 |
点位寻址
点表中的【设备地址】为空,【点位地址】对应 PLC 点位的 Tag Name。
DF1 协议
DF1 是罗克韦尔自动化(Rockwell Automation)公司的一种专有通信协议,主要用于其 Allen-Bradley 系列 PLC(可编程逻辑控制器)和其他设备之间的数据交换。
IMPORTANT
需要升级到 TopStack V5.6.7 及以上版本
通道设置
参数说明:
名称 | 必填 | 说明 |
---|---|---|
通讯链路 | - | 网口/串口/DTU。 |
IP | 是 | PLC 网络 IP地址。 |
端口 | 是 | PLC 网络端口。 |
链接协议 | 是 | 半双工或全双工。 |
校验方式 | 是 | BCC或CRC,根据设备设置要求进行选择。 |
站号 | 是 | 工作站编号,最大范围 0-255。 |
连接超时时间 | 是 | 网络连接请求的超时时间,单位:秒 |
读超时 | 是 | 如果在指定时间内未收到子站数据,则判断为超时。单位毫秒。 |
连续超时次数 | 是 | 如果连续超时次数超过该值,则认为设备离线。 |
恢复采集间隔 | 是 | 单位秒,如果设备离线,则经过该间隔时间后再次尝试读取数据。 |
通讯链路超时 | 是 | 单位秒,如果长时间收到不到数据,超时该时间后认为通讯链路断开。 |
帧间隔 | 是 | 单位毫秒,每次接收到数据到下次发出请求之间的最小时间间隔。 |
链接协议
- 全双工:用于点对点链接,可实现对等方之间的高性能双向通信。
- 半双工:亦称为轮询模式,是具有一个主站和一个或多个从站的多点协议。
站号
站号(工作站编号)的设置基于正在进行通讯的设备,分为如下几种情况:
- 如果目标设备在 DH + 或 DH 485 网络上,通信必须通过 Serial-to-DH+/DH-485 转换器 (即 KF2/KF3 模块) 进行。在这种情况下,进行通信的设备是转换器,而非目标设备本身(即 Micrologix、 Micro800、 SLC500 或 PLC5)。此时工作站编号应设置为转换器的节点地址。
- 如果目标设备不在 DH+ 或 DH-485 网络上,则进行通信的设备为 Micrologix、 Micro800、 SLC500 或 PLC-5 PLC。此配置的工作站编号可以设置为任意的唯一地址。
- 如果目标设备处于 DH+ 或 DH-485 转换器配置中,则工作站编号 = 转换器的节点地址 (例如 KF2/KF3 节点地址)。
- 如果目标设备处于标准串行配置中,则工作站 ID 可以是本地 PC 网络的任意唯一地址。DH-485 的范围是 1 到 63。在其他情况下,其范围为 0 到 255。
设备地址
设备地址用于表示 PLC 的 Allen-Bradley DF1 网络地址,默认为 0。
对于 DH-485 或 DH+ 网络上的 PLC,范围为 1-63。在其他情况下,范围为 0-255。
点位地址
点表中的【点位地址】格式如下:FILE NUM:ELEM[.BIT][.LEN[H][L]][.FIELD]
。
示例:
地址 | 数据类型 | 说明 |
---|---|---|
B3:0.0 | bit | 二进制文件 3,地址 0 的第 0 位 |
N7:1 | uint16 | 整形文件 7,地址 1 起始的字。 |
FILE
文件类型
区域 | 文件类型 |
---|---|
S | 状况文件 |
B | 二进制文件 |
T | 定时器文件 |
C | 计数器文件 |
R | 控制文件 |
N | 整形文件 |
F | 浮点型文件 |
O | 输出谁的 |
I | 输入文件 |
ST | 字符串文件 |
A | ASCII 文件 |
D | BCD 文件 |
NUM
必填,指文件号。
ELEM
必填,指数据地址。
.BIT
选填,存储地址中的特定 bit,例如:
地址 | 数据类型 | 说明 |
---|---|---|
N7:0.0 | bit | INT 文件 7,地址为 0,第 0 位。 |
N7:0.15 | bit | INT 文件 7,地址为 0,第 15 位。 |
.LEN[H][L]
当文件类型为 A 或 ST 时,.LEN 是必填项,表示字符串需要占用的字节长度,每个寄存器中包含 H,L 两种存储方式,如下列表格所示。
符号 | 说明 |
---|---|
H | 一个寄存器存储两个字节,高字节在前,低字节在后。 |
L | 默认顺序,一个寄存器存储两个字节,低字节在前,高字节在后。 |
示例:
地址 | 数据类型 | 说明 |
---|---|---|
A27:10.8 | char | 从字符 10 开始的 8 个字符,低字在前,高字在后。 |
A27:10.8H | char | 从字符 10 开始的 8 个字符,高字在前,低字在后。 |
.FIELD
当文件区域为 T C R 时,.FIELD 是选填项,用于表示字段名称。
T C R 数据项占用 3 个字(六字节)。
前两字节可使用 bit 或 int16,uint16 类型,字段名省略;
中间两字节数据需用 int16 或 uint16类型,字段名称为 .PRE(计数器、计时器的预设字段) 或 .POS(控制器的位置字段);
末尾两字节数据需用 int16 或 uint16类型,字段名称为 .ACC (计数器、计时器的累加器)或 .LEN(控制器的长度字段)。
示例:
地址 | 数据类型 | 说明 |
---|---|---|
R6:0.LEN | uint16 | 控制 0 文件 6 的长度字段。 |
R15:18.POS | uint16 | 控制 18 文件 15 的位置字段。 |
R6:0.0 | bit | 控制 0 文件 10 的第 0 位。 |
T4:0.ACC | uint16 | 计时器 0 文件 4 的累加器。 |
T15:0.PRE | uint16 | 计时器 0 文件 15 的预设。 |
C5:0.ACC | uint16 | 计数器 0 文件 5 的累加器。 |
C15:0.PRE | uint16 | 计数器 0 文件 15 的预设。 |
字节顺序
对于浮点型数据(float32)或整形数据(int32、uint32、bcd32)需要注意传输字节问题。
默认情况下 DF1 驱动采用的是小端的字节顺序,低字在前,高字在后:
- 小写字大写字
- 字节 0 字节 1 字节 2 字节 3
需要注意的是 Allen-Bradley PLC-5 设备按照以下顺序在串行链路上传输二进制浮点数据:
- 大写字小写字
- 字节 2 字节 3 字节 0 字节 1
这意味着对于 PLC-5 设备来说,上位机首先接收高位字,然后接收低位字,此时我们就要对字的顺序进行调整,否则会解析出来错误的数据。
IMPORTANT
调整字节顺序的方式很简单,我们只需在点位地址后加一个X
的后缀,即可实现高低字的位置交换。