尊重原创 勿抄袭

勿私放其他平台



写在前面

本文介绍了 AB PLC 和 B&R PLC 之间通过Ethernet/IP使用隐式消息创建通讯的过程。


硬件组成:

• B&R PLC 为 PP520,固件 V2.00 或更高版本。

• AB PLC为1756系列Controllogix,组态软件为Studio5000。

• B&R PLC 和 AB PLC 处于同一网段。


B&R PLC和AB PLC之间Ethernet/IP通讯_数据

图 1: 实验架构图


Ethernet/IP 是一种基于工业以太网的网络协议,它使用通用工业协议 (CIP) 作为其协议层通信。一个非常重要的概念是可通过Ethernet/IP 使用的两种主要类型的 CIP 消息传递之间的区别:显式和隐式。显式消息传递是一种异步请求/回复通信方法,它利用 TCP/IP(需要响应)来实现所谓的 CIP class 3。此方法主要用于较慢或高流量的网络根据需要传输更高级别的时间非关键数据,如客户端/服务器关系。显式消息传递要求工程师设置缓冲区和握手,以直接在何时何地读取和写入数据。此方法可以传输更多的数据,但需要更多的前期编程。隐式消息传递是一种同步通信方法,它使用


在此示例中,我们将使用隐式消息传递在


B&R PLC侧:


创建数据对象

B&R 使用其 AsEthIP 库通过Ethernet/IP 建立隐式消息传递。库需要包含连接配置数据的数据对象。要在 Automation Studio中创建数据对象,请转到逻辑视图,右键单击要存储数据对象的文件夹,然后选择"添加对象"。从工具箱对象目录中选择数据对象:

B&R PLC和AB PLC之间Ethernet/IP通讯_消息传递_02


图 2: Automation Studio新建数据对象


这将添加一个空白数据对象。将其重命名为


必须以非常特定的格式设置数据对象。示例的配置:

B&R PLC和AB PLC之间Ethernet/IP通讯_数据_03

 3:Ethernet/IP 配置数据对象语法


以下是配置参数及其说明:

  • #OWNIP B&R PLC 的 IP 地址。(必需)
  • #OWNINTERFACE B&R 端以太网端口的物理地址。(必需)

在这种情况下,使用

B&R PLC和AB PLC之间Ethernet/IP通讯_消息传递_04


  • #STATION AB PLC 的名称。(必需但任意)
  • #STATIONIP AB PLC 的 IP 地址。(必需)
  • #STATIONSTATUS AB PLC 的状态分配给 B&R 端的变量。该值是与发起者的活动Ethernet/IP 连接数。(可选)
  • #CONNAME 连接的名称。这将在
  • #CONDIR EIP连接的方向。可以是 O->T、T->O 或两者。发起者 (O) 是 AB PLC,目标 (T) 是 B&R PLC。(必需)
  •  #CONRPI 请求的数据包间隔(ms)(必需)
  •  #INPUTASSEMBLY 执行两件事:1. 在"O->T"或"BOTH"连接方向中,这将创建用于输入的 CIP class 0 程序集 (#101)。2. 使用自动生成工具时,这也是 AB 端用于输入的数据结构 (UDT)。
  • #OUTPUTASSEMBLY 与输入程序集一样,这可执行两项操作:1. 在 T->O 或两个连接方向中,这将创建用于输出 (#102) 的 CIP class 0 程序集。2. 使用自动生成工具时,这也是 AB 端用于输出的数据结构 (UDT)。


程序集下面是相应的变量声明。在

Task:TagName, TagType, TagDim


例如,如果有一个

TestArrayREALs, REAL, 10

为了简单演示,设置一个


在Automation Studio 中声明这些变量,并且这些变量必须存在于目标上的内存中,这意味着必须在代码的某处部署这些变量。使用 GenerateL5k 工具时,变量将是 AB 端 UDT 的成员。还值得注意的是,B&R 端的变量不应是数据结构的一部分。数据对象完成后,将其添加到软件配置中。

B&R PLC和AB PLC之间Ethernet/IP通讯_程序集_05


图 5: 软件配置中数据对象


在Automation Studio中

创建 AsEthIP 程序

在软件配置中配置和部署数据对象后,需要创建一个循环程序,以便使用 AsEthIP 函数库运行Ethernet/IP 驱动程序。从对象目录中添加新程序。选择使用Structured Text all-in-one:

B&R PLC和AB PLC之间Ethernet/IP通讯_程序集_06

  6:添加新的 ST 程序


命名新程序

B&R PLC和AB PLC之间Ethernet/IP通讯_程序集_07



下面是代码的结构:

B&R PLC和AB PLC之间Ethernet/IP通讯_程序集_08


一些注意事项:

  • EIPCommInit.pconfig 字符串应该是数据对象在软件配置中显示的确切名称。
  • 引用了数据对象中声明的所有程序集变量。使 AsEthIP 函数块实例和程序集变量本地到此程序,但实际上需要在项目的其他位置引用它们,所以需要创建全局
  • EIPCommExit 函数块实例不是必需的,但在开发时关闭套接字很有用。否则,EIPCommInit 功能块将打开另一个socket。
  • 变量 PAC01Status 是一个无符号双整数,其值对应于目标和发起者之间的 CIP 连接数。由于AB将此数字限制为每个 IP 地址最多一个连接,因此选择将变量转换为布尔,就可以知道是否已连接。


确保程序完成后,将部署在循环任务类中的软件配置中,该类的运行速度至少是数据对象中#CONRPI值的两倍。在这种情况下,将

B&R PLC和AB PLC之间Ethernet/IP通讯_数据_09



现在可以转移到B&R PLC。下面是在监视器模式下的程序的屏幕截图。请注意,没有配置错误,只是还没有连接:

B&R PLC和AB PLC之间Ethernet/IP通讯_消息传递_10


GenerateL5k 工具

B&R 有一个工具,可自动生成Ethernet/IP 设备以及一些可导入到 Studio 5000的代码。由于使用 AS4.2,因此此应用程序的路径:

C:\BrAutomation\AS42\Bin-en\BR.AS.GenerateL5k.exe


  • 启动 GenerateL5k 工具,然后通过"选项 -> 目标路径"选择目标路径...
  • 选择目录存储 .L5K文件 ,选择文件


浏览到Automation Studio项目目录中的文件夹,查找之前创建的数据对象。这通常位于以下目录中:

C:\projects\*name of project*\Logical\*name of EIP data object*

例如在这里:

B&R PLC和AB PLC之间Ethernet/IP通讯_程序集_11


图 10: B&R GenerateL5k 工具


在AB PLC侧:


一旦生成

单击"确定"将控制器类型更改为 Logix Designer的类型,它将使用通用以太网模块生成通用

B&R PLC和AB PLC之间Ethernet/IP通讯_消息传递_12


图 11:Studio 5000 Logix Designer 通用Ethernet/IP 模块


名称、IP 地址和连接参数都与 B&R 数据对象相对应。打开控制器标记以查看与数据对象对应的标记:

B&R PLC和AB PLC之间Ethernet/IP通讯_数据_13



GenerateL5k 实用程序还创建一个任务,该程序包含将输入数据从 B&R PLC 复制到 EIPCon_In UDT 并将数据从EIPCon_Out写入 B&R PLC 的例程。这些标记和 UDT 也来自 B&R 系统上的数据对象。

B&R PLC和AB PLC之间Ethernet/IP通讯_程序集_14



将以太网-模块从新项目复制并粘贴到现有的 AB 项目 PLC I/O 配置中,确保在存在多个Ethernet/IP 端口的情况下粘贴到正确的子网上的Ethernet/IP 卡下。然后复制 CpyTask 从新项目复制到现有项目。从新项目导出 CpyEIPCon 程序,然后导入到 CpyEIPCon task下的现有项目中。此时,如果对Ethernet/IP 配置进行任何更改,则必须首先修改 B&R 数据对象,然后可以再次使用 GenerateL5k 工具,也可以手动更改 ETHERNET-MODULE 属性中的程序集大小或属性。

B&R PLC和AB PLC之间Ethernet/IP通讯_程序集_15


下载到控制器。如果没有问题,状态将在以太网模块属性报告中显示"正在运行"。更改 EIPCon_Out UDT 成员的值,并检查该值是否出现在 B&R 端:

B&R PLC和AB PLC之间Ethernet/IP通讯_消息传递_16



然后更改 B&R 端的值,以查看AB端是否改变:

B&R PLC和AB PLC之间Ethernet/IP通讯_消息传递_17

 16:从 B&R 到 AB 的测试


测试完成,以上就是B&R PLC和 AB PLC,通过Ethernet/IP使用隐式消息传递进行通信。



总结:

通过此次测试可以看到B&R在与第三方的通讯上做足了功课,这样可以代替采用Modbus TCP的折中通讯方式和第三方设备通讯。同时也可以让AB用户侧省去类似于Prosoft和anybus等专业第三方的产品的费用。从市场定位上来看,B&R充分考虑和北美系列的通讯兼容性,开发了这个通讯库更是方便了自动化从业人员在协议层的研究和应用。估计也是ABB收购B&R后定位机械自动化品牌输出到北美市场做足了功课。


作 者 简 介


曹俊义


工业物联网资深构建专家

工厂智能化改造践行专家

资深工业网络通讯专家

工业自动化控制系统专家

ProSoft产品顶级技术专家

B&R PLC和AB PLC之间Ethernet/IP通讯_数据_18

工业通讯领域沉浸十数年,深喑各种工业通讯协议和工业网络架构以及国内外多种主流PLC应用和操作、熟知罗克韦尔、施耐德、西门子、GE等知名品牌的冗余系统,对工业无线通讯、工业物联网、工业IT与OT的融合,有着前瞻性的独到见解和务实的实践经验。

现任伟联科技董事长。努力为中国工业信息化、数字化、智能化的深入发展做出贡献。

-End-



more+

B&R PLC和AB PLC之间Ethernet/IP通讯_数据_19