使用 OpenPLC 结合 IEC 61131-3 标准对EtherCAT®网络进行编程

EC-Master 功能包 OpenPLC(EC-Master Feature Pack OpenPLC)将 acontis 高性能的 EtherCAT 主站协议栈与开源的 OpenPLC 运行时(Runtime)及编辑器(Editor)融为一体——为工业级 EtherCAT 网络控制引入了图形化的 PLC 编程方式。

借助 IEC 61131-3 程序控制 EtherCAT I/O 所需的一切

该功能包实现了 EC-Master 协议栈与 OpenPLC 之间的深度整合——涵盖从自动过程数据映射到远程诊断的全套功能。

  • 自动过程数据映射:来自 EtherCAT 网络信息(ENI)文件中的过程数据变量会自动映射到 IEC 61131-3 的定位变量(located variables)中。输入(INPUT)由网络流向 PLC 缓冲区,输出(OUTPUT)由 PLC 流向网络——无需任何手动地址配置。
  • 一键式过程数据导出:EC-Engineer 能够以 OpenPLC 格式导出完整的过程数据布局。只需将变量声明直接粘贴到 OpenPLC 编辑器的代码视图中,即可开始使用网络中每个通道具备明确名称和数据类型的变量进行编程。
  • 双层诊断:支持同时从两侧进行调试。在 PLC 逻辑侧,OpenPLC 编辑器提供实时变量检查和强制赋值功能;在 EtherCAT 侧,通过 EC-Master RAS 服务器,允许 EC-Engineer 远程连接,在系统持续运行的同时监测并强制修改过程数据。
  • 独立的实时循环线程:EcMasterDemoOpenPlc 插件在其自身的高优先级线程中运行 EtherCAT 总线循环,与 OpenPLC 的扫描循环完全解耦。无论 PLC 程序的复杂度如何,这都能确保 EC-Master 协议栈具备亚毫秒级(sub-millisecond)的时序精度。
  • 自定义 C/C++ 功能块:可在 IEC 61131-3 程序内部直接访问完整的 EC-Master API。自带的 emGetMasterState 和 emGetSlaveState 示例可让您直接在功能块图(FBD)画布上监控网络健康状态。

架构 - 各组件如何协同工作

EcMasterDemoOpenPlc 插件通过循环过程数据同步,在 EC-Master 的实时 EtherCAT 循环与 OpenPLC 运行时的 IEC 61131-3 执行引擎之间架起桥梁。ENI XML 文件流入 XML 解析器(XML Parser),随后流向过程数据映射(Process Data Mappings)和 EC-Master 核心。EC-Master 通过 EtherCAT 实时以太网驱动程序与物理网络进行通信。过程数据与运行 IEC 61131-3 程序的 OpenPLC 运行时缓冲区进行循环同步。该插件运行其独立的循环线程以处理实时 EtherCAT 通信,同时与 OpenPLC 运行时缓冲区同步过程数据。

为什么这种整合至关重要

将经过商业验证的 EtherCAT 协议栈与开源的 IEC 61131-3 环境相结合,创造了诸多优势:

  • 针对 EtherCAT 的图形化编程:习惯于功能块图(FBD)或梯形图(LD)逻辑思考的工程师现在可以直观地对 EtherCAT I/O 进行编程,而无需编写 C/C++ 应用程序代码。变量块表现为直接连接到实际 EtherCAT I/O 的拖放式元素。
  • 工业级性能,开源工具链:EC-Master 负责处理高要求的实时通信——分布式时钟(DC)、热插拔(Hot Connect)、电缆冗余(Cable Redundancy)——而 OpenPLC 则提供了一个任何自动化工程师都能轻松上手的标准编程环境。
  • 全面覆盖 IEC 61131-3 数据类型:布尔型(Boolean)、8位、16位、32位和 64位数据类型(有符号和无符号)均可从 ENI 文件中自动映射。变量寻址遵循任何 PLC 程序员都熟悉的标准 %I/%Q 定位方案。
  • 可通过原生 EC-Master API 进行扩展:当标准过程数据访问无法满足需求时,C/C++ 功能块允许在 PLC 程序内部直接访问整个 EC-Master API——可在 FBD 画布上直接查询从站状态、触发状态切换、读取诊断信息。
  • 通过 RAS 进行远程调试:内置的远程访问服务(RAS)服务器允许 EC-Engineer 通过 TCP 连接到正在运行的 EtherCAT 网络。无需停止系统或亲临现场,即可查看实时过程数据、强制输出并监控性能。

实际收益

从最初的原型设计到现场部署,该功能包加速了项目生命周期的每一个阶段。

  • 从 ENI 文件到运行 PLC 仅需数分钟:从 EC-Engineer 导出过程数据布局,将其粘贴到 OpenPLC 编辑器中,连接逻辑块,编译并部署。只需一个课时/单次操作,即可让一个用于实际 EtherCAT 硬件的控制程序运转起来。
  • 降低自动化工程师的准入门槛:熟悉 IEC 61131-3 的团队无需具备深厚的 C/C++ 技能即可使用 EtherCAT 网络。开源的 OpenPLC 编辑器消除了编程工具的单用户授权(Per-seat license)成本。
  • 生产级别的网络性能:底层的 EC-Master 协议栈已在全球数以千计的工业应用中部署。支持具有直接访问以太网 MAC 权限的优化实时以太网驱动程序,确保在严苛的循环时间下实现确定性通信。
  • 契合 acontis 生态系统:与用于网络配置、ENI 文件生成以及通过 RAS 协议进行远程诊断的 EC-Engineer 无缝配合。兼容任何 EC-Master 实时以太网驱动程序,具备极高的部署灵活性。

概要

  • 操作系统:Microsoft Windows, Linux
  • OpenPLC 兼容性:OpenPLC Runtime v4, OpenPLC Editor(支持全部五种 IEC 61131-3 语言)
  • 插件架构:由 OpenPLC Runtime 通过 plugins.conf 加载的原生共享库(.so / .dll)
  • 过程数据类型:BOOL, SINT/USINT, INT/UINT, DINT/UDINT, LINT/ULINT —— 从 ENI 文件自动映射
  • 数据同步:输入(INPUTs):EC-Master → OpenPLC 缓冲区;输出(OUTPUTs):OpenPLC 缓冲区 → EC-Master。每种数据类型拥有独立缓冲区(符合 OpenPLC 标准)
  • 诊断:OpenPLC Editor 调试模式(实时变量检查与强制赋值)+ 用于远程 EC-Engineer 访问的 EC-Master RAS 服务器(默认端口 6000)
  • 自定义功能块:包含 C/C++ 示例。可通过带有 setup() / loop() 钩子的完整 EC-Master API 进行扩展
Free Evaluation Request