什么是EtherCAT?使用软件PLC的测量控制

供稿:CONTEC康泰克(上海)信息科技有限公司

  • 关键词:EtherCAT,PAC,PLC
  • 摘要:EtherCAT(Ethernet for Control Automation Technology)在2016年被丰田汽车公司全面采用后备受关注,它是由倍福自动化有限公司开发的具有实时功能的开放式现场网络(Open Field Network)。目前,功能要求和认证程序是由2003年成立的EtherCAT Technology Group(EtherCAT技术协会)进行规定和管理。

1.png


目录

》什么是EtherCAT?

》EtherCAT产品的兼容性问题

》什么是PLC

》什么是CODESYS®

》使用CONPROSYS PAC系列的EtherCAT通信控制

    *CODESYS编程教程

    *与CONPROSYS HMI的联动


什么是EtherCAT?

EtherCAT(Ethernet for Control Automation Technology)在2016年被丰田汽车公司全面采用后备受关注,它是由倍福自动化有限公司开发的具有实时功能的开放式现场网络(Open Field Network)。目前,功能要求和认证程序是由2003年成立的EtherCAT Technology Group(EtherCAT技术协会)进行规定和管理。


什么是现场网络

现场网络是用来在工厂内的控制设备和传感器等测量设备之间进行通信的网络。该现场网络中使用以太网的网络称为工业用以太网。工业用以太网包括Profinet、Ethernet/IP、CC-Link/IE Field、Modbus/TCP等,EtherCAT也是一种工业用以太网。


EtherCAT的通信示意图

EtherCAT分为主站和从站,一个主站上连接了一个或多个从站控制器。可使用菊花链型和星型进行连接。


2.jpg


通信方法是将所有从站的数据汇总成一个数据包发送出去。上述示例中,数据包的内容如下。


3.png


设备数据的大小和功能等在EtherCAT Slave Information文件中进行描述,EtherCAT主站事先使用这些信息来创建上述数据包。


数据依次从离主站最近的从站控制器进行传输。蓝色箭头(1)至(6)为EtherCAT数据包的传输顺序。在上述连接的情况下,该设备的数据依次从(1)到(3)进行更新。对于输入数据,将数据更新为数据包,对于输出数据,将设备更新为数据的值。在到达终端从站③后,数据沿着(4)至(6)的箭头方向折返,最后在主站接收后更新输入数据。


4.jpg


EtherCAT的冗余化

EtherCAT如果在主站上有多个LAN端口,可通过环形连接实现双重冗余。如果将2个LAN端口分配给EtherCAT,CPS-PC341EC-1-9201将无法进行LAN通信,下方示例为通过配备了软件PLC且配备2个以上LAN端口的PC进行连接的情况。


5.jpg


此时,蓝色和绿色两个方向各自进行通信。蓝色箭头(1)至(4)为LAN端口1的传输顺序,绿色箭头(1)至(4)为LAN端口2的传输顺序。


双重冗余时,即使线路发生断线,通信也能继续而不会中断。而且,断线位置也能清楚显示。下方为从站②与从站③之间发生断线时的示意图。由于从站②无法进行通信,绿色箭头的LAN端口2的通信到达从站③之后返回到主站,如绿色箭头(1)至(2)所示仅从站③进行通信。由于从站③无法进行通信,蓝色箭头的LAN端口1的通信传输到从站②之后返回主站。蓝色箭头(1)至(4)为LAN端口1的通信。


6.jpg


EtherCAT产品的兼容性问题

EtherCAT产品包括各种主站和从站产品。并非所有的功能都能在引入了EtherCAT主站软件的PC、主站产品和EtherCAT从站产品上正常工作。EtherCAT技术协会将对EtherCAT主站及从站开发厂商进行每年一次的连接测试,以尽可能地消除兼容性问题。


康泰克的CONPROSYS PAC系列推出了EtherCAT主站/从站产品,已确认PAC系列的组合可正常工作,可放心使用。另外,希望在康泰克以外的主站上使用康泰克的从站产品,或者不清楚康泰克以外的从站和康泰克的主站产品能否正常工作,希望在购买前确认动作时,选择使用康泰克提供的测试机租借服务。


什么是PLC

如果想在EtherCAT主站进行编程,例如通过EtherCAT通信获取控制和传感器状态等,您可将其引入使用了PLC和软件的系统中。PLC是可编程逻辑控制器(Programmable Logic Controller)的首字母缩写,也称为定序器。它是可按照逻辑控制传感器和LED等控制设备的控制器。以微型计算机为主体,专门进行逻辑处理的专用设备称为硬件PLC,在工业用计算机等安装了PLC功能,进行多种处理的设备称为软件PLC。康泰克的PAC系列采用软件PLC CODESYS。


什么是CODESYS®

CODESYS®是指根据CODESYS.GmbH开发出的符合国际标准IEC 61131-3的软件PLC。支持IEC 61131-3中定义的5种语言。已安装了CODESYS的产品可用作EtherCAT主站。CODESYS软件由LINX公司提供,有可通过此处免费下载 (日文)。(CODESYS和LINX都需要用户注册)


关于PC编程和CODESYS的PLC编程的差异

在PC上进行Python等编程时,感觉是从起点出发朝着规定的终点迈进,而在CODESYS编程中,则感觉是按照规定的循环时间绕着跑道一圈圈地进行处理。


【PC上进行编程的基本示意图】

7.jpg


【CODESYS编程的基本示意图】

8.jpg


在PC编程中,有一种线程称作定时器线程,该线程在规定的时间内运行,虽可加以使用,但当单位为毫秒到微秒时就会出现时间波动,很难保持线程在1毫秒内运行,经常出现线程偏离10毫秒的情况。对于CODESYS,根据设备的不同,可设置毫秒单位或数百微秒。但是,进行PLC编程时需要加以注意。例如,在PC上进行编程时,可使用 “等待”(如睡眠),但CODESYS编程要求在规定的循环时间内持续运行,所以编程方式必须是 “在下一个循环处理 ”而非“等待”。


CODESYS®的编程语言

IEC 61131-3定义的PLC编程语言为梯形图(LD)、指令表(IL)、功能模块图(FBD)、顺序功能流程图(SFC)及结构化文本(ST)这5种语言。CODESYS可使用IEC 61131-3中定义的PLC编程语言进行编写。


使用CONPROSYS PAC系列的EtherCAT通信控制

选择产品

作为拥有软件PLC功能的设备,康泰克具有配备了CODESYS的CONPROSYS PAC系列。CONPROSYS PAC控制器作为人机界面配备了CONPROSYS HMI,可将CODESYS收集的EhterCAT从站设备数据可视化。


9.jpg


包括EtherCAT主站产品“CPS-PC341EC-1-9201”或“CPS-PCS341EC-DS1-1201”、作为EtherCAT从站产品可扩展最多16台模块的EtherCAT从站耦合器“CPS-ECS341-1-011”、可连接最多8台IO-Link传感器的IO-Link网关“CPSL-08P1EN”。下方为产品分类图。


【产品分类图】

10.jpg


使用CODESYS编程的示例

本次在下列构建中安装了CODESYS开发环境后,通过HMI监控进行EtherCAT通信的模拟电流,当电流值下降到阈值时打开数字量输出。


11.jpg


CODESYS编程教程

要点!如果在最初设置好构建信息和连接信息,编程变得简单!


1.安装PAC控制器、EtherCAT构建信息

首先安装PAC控制器CPS-PC341EC-1-9201的程序库。CPS-PC341EC-1-9201的程序库可通过此处下载。通过数据包管理器进行安装。


12.jpg


下面安装EtherCAT构建信息ESI文件(Ethercat Slave Information File)。CPS-ECS341-1-011的ESI文件可通过此处下载。通过设备资源库进行安装。


13.jpg


2.项目创建/编程语言选择

下面进行项目创建。

选择类似于C语言等可编程语言“结构化文本(ST)”继续创建。


14.jpg


3.EtherCAT的连接设置

在控制器上添加EtherCAT主站。添加EtherCAT主站后,设置CPS-ECS341-1-011的设备。本次连接了数字量输出和模拟输入设备,注册这两台设备。设置后,注册使用的模拟输入端子(AnalogInput0)和数字量输出端子(DigitalOutput0、DigitalEchoOutput0)。


15.jpg


至此准备工作完成。


4.程序

将程序画面写入PLC_PRG。存在指令声明部分和程序部分,使用已声明的变量和3.进行注册的端子进行编程。


变量声明部分

VAR

 // 在HMI上注册的变量

 threshold :LREAL:= 0.0;// 阈值(mA)

 value : LREAL := 0.0;//当前值(mA)

 lump0 : BOOL := FALSE; // 数字量输出的确认值(Echoback Input的值)


 // CPS-AI-1608ALI的设备

 max_current : LREAL := 20.0; // 最大值(mA)

 resolution : LREAL := 65536.0; // 分辨率 16bit -> 2的16次方

END_VAR


程序部

value := (AnalogInput0*max_current) / (resolution – 1.0); // 转换为mA


if (value < threshold ) then

 DigitalOutput0 := TRUE;

else

 DigitalOutput0 := FALSE;

end_if

lump0 := DigitalEchoOutput0;


在PC上对EtherCAT库进行编程时,必须对ESI文件的读取、EtherCAT通信交互以及称为对象字典的参数的消息通信交互进行编程。如果使用CODESYS,则会执行CODESYS库,EtherCAT的通信部分的编程将省略,从而可直接轻松地操作模拟输入设备和数字量输出设备。


5.为了在CONPROSYS HMI中使用,注册value和threshold,lump0的变量。

因此,添加符号配置。


16.jpg


添加后,勾选要使用的变量,然后再次按下构建按钮以完成。


17.jpg


在这种状态下关闭CPS-PC341EC-1-9201的电源后,本程序会消失,因此通过Web浏览器访问本机并保存程序。


18.jpg


与CONPROSYS HMI的联动

要点!创建监控画面,配置部件后联动CODESYS注册的变量即可!


1.编辑监控。

电流值和阈值采用趋势图,数字量输出的确认采用指示灯。为了在标签上显示电流值,在文本框上显示阈值,对部件进行布局。下方为创建画面。


19.jpg


本次,指示灯的设置仅使用最上层。此外,趋势图的Y轴刻度已固定为最大值20/最小值0。


20.jpg


2.关联CODESYS中注册的变量(value、threshold、 lump0)。


21.jpg


之后保存即可完成。如果电流值低于阈值,数字量输出开启后,指示灯亮红灯。将12mA设置为阈值时的CONPROSYS HMI如下所示。


22.jpg

23.jpg


怎么样?如此可轻松执行使用EtherCAT通信的控制程序。此处仅介绍了控制EtherCAT,其他还有各种功能如PAC控制器的文件保存功能和云传输功能,可实现联动。要创建该类程序时,准备了参考指南(软件)和示例程序作为详细资料。


发布时间:2022年6月7日 10:02  人气:   审核编辑(王静 )
相关链接

我有需求