软PLC开发平台与EtherMAC接口技术研究*
2015-11-02孙好春张承瑞胡天亮
孙好春,张承瑞,胡天亮
(山东大学a.机械工程学院;b.高效与洁净机械制造教育部重点实验室,济南 250061)
软PLC开发平台与EtherMAC接口技术研究*
孙好春a,b,张承瑞a,b,胡天亮a,b
(山东大学a.机械工程学院;b.高效与洁净机械制造教育部重点实验室,济南 250061)
为提升基于EtherMAC工业实时以太网平台的运动控制系统开发效率,提出了一种可使用IEC 61131-3编程语言在该平台下开发运动控制系统的方法。通过研究开放式软PLC开发平台CoDeSys在Windows CE 6操作系统下的二次开发技术,结合EtherMAC的从站首节点定时触发机制,设计一种以外部事件机制和内核对象事件机制实现程序同步的EtherMAC组件。并以开发数控绕线机的控制系统为例,对该组件的可行性和性能进行验证,结果表明其能够满足控制系统的功能要求,并有效地提高开发效率。
软PLC;EtherMAC;工业以太网;运动控制;CoDeSys;IEC 61131
0 引言
由PLCopen组织推行的IEC 61131-3编程语言以其功能标准化,开发效率高等特点成为工业控制系统开发领域的事实标准语言[1]。相比于传统的PLC编程语言,IEC 61131-3提高了程序复用性并拓宽了编程语言的应用范围,可满足运动控制等领域的功能需求[2]。软PLC是用纯软件实现PLC的功能,不限于特定的硬件平台,因此具有良好的拓展性,以IEC 61131-3作为编程语言[3-4]。EtherMAC(Ethernet for Manufacture Automation Control)是山东大学数控技术研究中心针对运动控制应用,自主研发的工业实时以太网[5-6]。为能够使用IEC 61131-3语言开发采用EtherMAC作为运动控制总线的运动控制系统,通过研究软PLC开发平台CoDeSys在Windows CE 6下的二次开发技术,设计了EtherMAC组件实现CoDeSys与EtherMAC之间的数据交互。然后以数控绕线机控制系统的开发过程为例,对该组件的功能进行验证。
1 软PLC开发平台
开放式的软PLC开发平台,由Runtime和用于PLC程序开发的IDE(Integrated Development Environment,集成开发环境)和两部分组成。Runtime为可运行在多种实时系统上的软件模块,通过执行IDE生成的PLC任务文件实现控制功能。
1.1 CoDeSys简介
CoDeSys是德国3S公司的开放式软PLC开发平台,支持IEC61131-3的五种编程语言:顺序功能图(SFC)、功能块图(FBD)、梯形图(LD)、结构化文本(ST)和指令表(IL)[4]。此外CoDeSys还内置有符合PLCopen标准规范的运动控制功能块库。
CoDeSys的IDE名称也为CoDeSys,它和运行于目标机的Runtime组成一个完整的开放式PLC开发平台。Windows CE下的Runtime本质为一个应用程序,可通过底层驱动程序访问底层硬件和外部总线,运行原理如图1所示。将CoDeSys生成的界面文件和任务文件下载到目标机之后,Runtime即可通过解析这些文件实现控制功能。
1.2 CoDeSys的OEM组件二次开发
CoDeSys的OEM组件是一种面向设备制造商的二次开发模块,其开发过程如图2所示。首先使用CoDeSys的IDE定制新的OEM组件接口生成Library文件和M4文件。CoDeSys的IDE可通过加载Library文件使用该OEM组件。M4解析器将M4文件解析生成文件名分别以DEF和ITF结尾的C语言头文件,其中包含该组件的待实现函数接口及其之间的依赖关系,然后可使用Visual Studio编程实现接口的具体功能并生成相应的程序模块。在Windows CE下这种程序模块以DLL(Dynamic Link Library,动态链接库)的形式存在。这样Runtime在解析由CoDeSys调用新组件的Library生成的任务文件时,会调用相应的DLL程序模块实现相应的具体功能。
图2 CoDeSys的OEM组件二次开发流程图
2 EtherMAC组件设计
2.1 EtherMAC简介
EtherMAC工业以太网的定时和同步机制均由从站实现,这种机制不要求主站具有高精度实时定时器。主站只需在下一个总线同步周期到来之前向从站下发新的通信数据,即可保证通信的实时性和准确性[7-8]。
2.2 组件的接口设计
一般现场总线的通信周期和同步机制由主站即控制器进行控制,因此在CoDeSys上开发这类总线的组件,通常使用高精度周期性任务控制总线数据的周期性收发。而对于EtherMAC,如果主站也采用高精度周期性任务控制数据收发,那么这种不关联的主从站双定时机制会带来增大数据处理延迟的问题。具体分析如图3所示。
图3 双定时机制产生的延迟时间分析图
假设主站和从站之间以时间T进行周期性数据交互,那么两者的定时周期也都为T,相邻两个定时周期开始时间为t1和t2,从站首节点向主站发送数据之后,主站并不是立即处理数据,而是延迟一段时间Δt之后,在主站新的定时周期开始时才从硬件缓存中读取数据包进行处理。
图4 EtherMAC组件的程序同步机制顺序图
Δt的大小由公式1确定。其中tu是微小的网络数据传输时间,在数据传输速率、数据量和网线长度一定时该值为固定值。因此Δt时间主要取决于t1和t2之间的时间差值,最大值可接近定时周期T。主站在Δt时间内并没有进行有效的工作,而t1和t2为不确定的随机时间,因此Δt的大小也具有随机性的。
用事件触发机制代替主站定时机制可消除Δt,即主站在接收到从站反馈数据之后,立刻触发CoDeSys的Runtime中的任务进行数据处理。EtherMAC组件正是基于该原理设计的,其利用CoDeSys的OEM组件二次开发技术实现,具体的同步原理如图4所示。
EtherMAC驱动是一个运行在NDIS(Network Driver Interface Specification)中间层和协议层的驱动。中间层部分可以直接操作以太网卡的数据收发,保证数据收发的实时性和可靠性。协议层向外部提供操作接口,并按照EtherMAC协议实现对网络数据封装和解析。Ether-MAC组件内运行EtherMAC主站线程,而Runtime内运行普通任务和外部事件任务。运行之前需要注册一个CoDeSys外部事件EVENT_EtherMAC和一个Windows CE内核对象事件EVENT_TASK_FINISH。
Runtime启动时,首先对EtherMAC组件和驱动进行初始化。之后从站进入运行状态,并周期性地向主站发送数据。EtherMAC主站线程被反馈数据激活后,根据接收到的数据更新各个子模块的接收数据区并触发EVENT_EtherMAC。由于外部事件任务优先级被设置为最高,此时Runtime将切换到外部事件任务中执行。在外部事件任务中可以加入开发者设计的子程序,实现运动控制、逻辑控制等功能。外部事件完成任务之后更新EtherMAC组件内各子模块的发送数据区,并触发事件EVENT_TASK_FINISH通知EtherMAC主站线程继续执行,此时Runtime切换到普通任务中运行。然后EtherMAC主站线程采集各个子模块中的发送数据区的数据,通过EtherMAC驱动向从站发送控制数据。至此一个通信周期完成,EthermMAC驱动继续等待下一个周期从站数据的到来。
3 实例验证
通过EtherMAC组件,即可在CoDeSys上使用IEC 61131-3语言开发基于EtherMAC的控制系统,本文以数控绕线机的开发为例验证该组件带来的优势。数控绕线机是一种用于电机线圈绕线的自动化设备,由绕线系统和机械手两部分组成。绕线系统通过控制3个交流伺服电机实现绕线功能;机械手通过I/O开关量控制气缸、剪切装置和离合器,实现送线、剪线和更换模具等功能。如基于EtherMAC开发该控制系统,则从站系统可由3个用于电机控制的Elink从站模块和6个具有8个开关量输入点和8个开关量输出点的IO8从站模块组成,主站控制器采用支持触控的Windows CE 6工控机,其上运行CoDeSys的Runtime和EtherMAC组件,结构如图5所示。
图5 绕线机控制系统结构图
原有控制系统由触摸屏与PLC或独立运动控制器两部分组成,两者之间通过串口实现数据交互,开发者需要根据串口通信约定在不同的软件开发环境下实现人机交互功能和电机绕线功能。对于基于Ether-MAC工业实时以太网平台的运动控制系统开发,在没有EtherMAC组件时,只能使用C/C++等高级语言完成开发该系统,这样就不能复用原有的PLC程序代码,因此全部代码需要重新编写。而使用EtherMAC组件之后,机械手控制部分可以复用已有的功能成熟的PLC部分代码,而绕线系统的控制部分可使用CoD-eSys内部的符合PLCopen标准规范的运动控制功能块库完成开发,同时人机交互功能也可在同一个开发环境CoDeSys中实现,免去了串口通信。由此可见,EtherMAC组件可提高程序代码的复用率,简化开发过程并有效提升基于EtherMAC工业实时以太网平台的运动控制系统开发效率。
4 结论
本文利用CoDeSys的OEM组件提供的二次开发技术,设计了针对EtherMAC工业实时以太网的Ether-MAC组件。在该组件的帮助下,开发者可以使用IEC 61131-3语言开发基于EtherMAC的运动控制系统。由于IEC 61131-3语言与传统的PLC编程语言具有较大的兼容性,因此可以复用已有的PLC程序代码,也使原来PLC开发工程师也有能力开发基于EtherMAC的运动控制系统。经过实例测试验证,该组件的性能满足控制系统的应用,并显著提高运动控制系统的开发效率。
[1]黄延延,林跃,于海斌.软PLC技术研究及实现[J].计算机工程,2004(1):165-167.
[2]周峰,王新华,李剑峰,等.软PLC技术的发展现状及应用前景[J].计算机工程与应用,2004(24):57-60.
[3]Yan Yi,Hangping Zhang.Compiling Ladder Diagram into Instruction List to comply with IEC 61131-3[J].Computers in Industry,2010,61(5):448-462.
[4]王丽丽,康存锋,马春敏,等.基于CoDeSys的嵌入式软PLC系统的设计与实现[J].现代制造工程,2007(3):54-56.
[5]KeWang,Chengrui Zhang,Xinzhong Dingetal.A new realtime Ethernet for numeric control[J].2010 8th World Congress on Intelligent Control and Automation,2010:4137-4141.
[6]Felser M.Real-time ethernet-industry prospective[J].Proceedings of the IEEE,2005,93(6):1118-1129.
[7]孙好春,张承瑞,胡天亮.基于SMP的总线式软运动控制引擎设计[J].农业机械学报,2014(3):288-292.
[8]Hu Tianliangetal.Design and application of a real-time industrial Ethernet protocol under Linux using RTAI[J].International Journal of Computer Integrated Manufacturing,2013,26(5):429-439.
[9]Boling.D.Windows CE6.0开发者参考[M].北京:机械工业出版社,2009.
[10]Iustinus Tim Avery.CoDeSys[M].Saarland:Cel Publishing,2012.
(编辑 李秀敏)
Research about Interface between Soft PLC Development Platform and EtherMAC
SUN Hao-chuna,b,ZHANG Cheng-ruia,b,HU Tian-lianga,b
(a.School of Mechanical Engineering;b.Key Laboratory of High Efficiency and Clean Mechanical Manufacturing,Shandong University,Jinan 250061,China)
In order to advance the efficiency of developing motion control system,which is based on motion controller using the EtherMAC industrial ethernet,a method is designed to realise using IEC 61131-3 programming languages to develop motion control system using this motion controller.The secondary development technique of open development platform for soft PLC CoDeSys in Windows CE 6 is researched,combined with the timing trigger mechanism decided by the first slave node in EtherMAC,a method about program synchronization is designed to establish the component for EtherMAC,whose mechanism is based on an external event and a kernel object event.Take the development of the control system of numerical control winding machine for example,to verify the feasibility and performance with this component.The result is showed that the functional requirement of the control system can be met,and development efficiency is improved much.
soft PLC;EtherMAC;industry ethernet;motion control;CoDeSys;IEC 61131
TH165;TG65
A
1001-2265(2015)03-0083-03 DOI:10.13462/j.cnki.mmtamt.2015.03.022
2014-06-17;
2014-07-22
国家重大科技专项资助项目(2012ZX04010-021-002-005)
孙好春(1986—),男,山东平度人,山东大学博士研究生,研究方向为运动控制技术,(E-mail)sunvhao@163.com。