通过罗克韦尔AB协议(AllenBradley)连接设备

慧程HiperMatrix系统支持对AllenBradley协议的PLC ,AB PLC的数据通信类,使用CIP协议实现,适用1756,1769等型号,支持使用标签的形式进行读写操作,支持标量数据,一维数组,二维数组,三维数组等等。

目前 HiperMATRIX 具有以下AB PLC 的驱动程序

  • 1756 ControlLogix
  • 1756 GuardLogix
  • 1769 CompactLogix
  • 1769 Compact GuardLogix
  • 1789 SoftLogix
  • 5069 CompactLogix
  • 5069 Compact GuardLogix
  • Studio 5000 Logix Emulate

1.关于 AB PLC 主要类型分类补充

PLC的应用现在已经趋于成熟化,能够适应各种工业控制及过程控制。对于AllenBradley PLC 主要分类包括:

  • 小型: MicroLogix 控制器(MicroLogix 有 2 个系列)

    MicroLogix 系列

    Micro800 系列

  • 中型: CompactLogix 控制器(CompactLogix 有 4 个系列)

    1768 CompactLogix 控制器

    1769 CompactLogix 5370 控制器

    5069 CompactLogix 5380 控制器

    5069 CompactLogix 5480 控制器

  • 大型: ControlLogix 控制器(ControlLogix 有 2 个系列)

    1756 ControlLogix 5570 控制器

    1756 ControlLogix 5580 控制器

2.创建AB PLC连接服务

(1)进入边缘连接服务-连接管理,点击新建连接;

(2)选择罗克韦尔PLC,选择对应的AB设备型号;

image-20210914161330023

(3)输入连接名称,如 test_ab,输入主机名(IP地址),如192.168.12.13, 默认端口为44818;

(4)可以选择显示高级属性,查看其他设置,设置 CPU slot number(默认是0);

(5)可以点击测试连接测试连接是否可以成功,如失败可以在连接日志中查看失败原因;

(6)点击提交。提交完成后将显示连接列表,连接状态应该为已连接,启用状态为启用。

3.相关属性说明

通用信息 内容
名称 设备连接的名称
描述 设备连接的描述
节点组 节点组指的是集群场景下该连接可以指定给某个边缘节点,属于该节点的设备均可使用此连接,不属于该节点的设备无法正常使用此连接
启用 连接是否处于活动状态。禁用此设置会终止与设备的通信。
连接性
主机名 设备的主机名或 IP 地址。如192.168.13.12
端口 连接到设备时使用的端口。默认值为 44818。
超时 请求超时时间,以毫秒为单位。默认值为 10,000。 (即为10秒钟)
高级
CPU插槽号 分配给 CPU 的插槽号。默认值为 2。
连接超时后重新连接 在连续几次超时后,设备连接将尝试重新连接到设备。此设置确定在重新连接之前必须发生多少次连续超时。

4.创建AB PLC 设备,添加对应属性

(1)在创建连接之后,可在连接列表中找到刚创建的对应。

image-20210914162942319

(2)点击设备状态后进入该连接对应下的设备管理界面,填写对应的设备标识,点击保存即可。

注意:连接一定要选择正确。否则匹配不到正确的连接。

image-20210914163152182

(3)添加完成之后可在设备管理中查看到刚才添加的设备,选择编辑并进行添加对应的属性即可。

image-20210914163454984

4.1手动指定每个地址

  • 进入设备管理,进入已创建好的设备(关联创建好的AB PLC的连接),点击添加属性;

  • 填写名称与标识符;

  • 选择对应的属性类别;

  • 设置数据类型,如 32位浮点数;

  • 设置数据地址,如 axle_bearing_temperature;

  • 设置对应的采集方式与扫描间隔;

  • 点击确定,那么在属性列表中将能看到对应的参数。

image-20210914164204944

5.地址合法性校验

AB的地址采用别名标签,因此无需死记硬背各种数据类型的地址。

给定设置好的别名,根据别名即可读取对应数据。

// ab 属性地址的合法校验
/**
 * 判断格式是否准确
 *
 * 只能由由字母或者下划线组成的字符串
 *
 */
private static final Pattern STANDARD_FORMAT = Pattern.compile("^[a-zA-Z_]+$");
2024-08-29
0