孫好春,張承瑞,胡天亮
(山東大學a.機械工程學院;b.高效與潔凈機械制造教育部重點實驗室,濟南 250061)
軟PLC開發(fā)平臺與EtherMAC接口技術研究*
孫好春a,b,張承瑞a,b,胡天亮a,b
(山東大學a.機械工程學院;b.高效與潔凈機械制造教育部重點實驗室,濟南 250061)
為提升基于EtherMAC工業(yè)實時以太網(wǎng)平臺的運動控制系統(tǒng)開發(fā)效率,提出了一種可使用IEC 61131-3編程語言在該平臺下開發(fā)運動控制系統(tǒng)的方法。通過研究開放式軟PLC開發(fā)平臺CoDeSys在Windows CE 6操作系統(tǒng)下的二次開發(fā)技術,結(jié)合EtherMAC的從站首節(jié)點定時觸發(fā)機制,設計一種以外部事件機制和內(nèi)核對象事件機制實現(xiàn)程序同步的EtherMAC組件。并以開發(fā)數(shù)控繞線機的控制系統(tǒng)為例,對該組件的可行性和性能進行驗證,結(jié)果表明其能夠滿足控制系統(tǒng)的功能要求,并有效地提高開發(fā)效率。
軟PLC;EtherMAC;工業(yè)以太網(wǎng);運動控制;CoDeSys;IEC 61131
由PLCopen組織推行的IEC 61131-3編程語言以其功能標準化,開發(fā)效率高等特點成為工業(yè)控制系統(tǒng)開發(fā)領域的事實標準語言[1]。相比于傳統(tǒng)的PLC編程語言,IEC 61131-3提高了程序復用性并拓寬了編程語言的應用范圍,可滿足運動控制等領域的功能需求[2]。軟PLC是用純軟件實現(xiàn)PLC的功能,不限于特定的硬件平臺,因此具有良好的拓展性,以IEC 61131-3作為編程語言[3-4]。EtherMAC(Ethernet for Manufacture Automation Control)是山東大學數(shù)控技術研究中心針對運動控制應用,自主研發(fā)的工業(yè)實時以太網(wǎng)[5-6]。為能夠使用IEC 61131-3語言開發(fā)采用EtherMAC作為運動控制總線的運動控制系統(tǒng),通過研究軟PLC開發(fā)平臺CoDeSys在Windows CE 6下的二次開發(fā)技術,設計了EtherMAC組件實現(xiàn)CoDeSys與EtherMAC之間的數(shù)據(jù)交互。然后以數(shù)控繞線機控制系統(tǒng)的開發(fā)過程為例,對該組件的功能進行驗證。
開放式的軟PLC開發(fā)平臺,由Runtime和用于PLC程序開發(fā)的IDE(Integrated Development Environment,集成開發(fā)環(huán)境)和兩部分組成。Runtime為可運行在多種實時系統(tǒng)上的軟件模塊,通過執(zhí)行IDE生成的PLC任務文件實現(xiàn)控制功能。
1.1 CoDeSys簡介
CoDeSys是德國3S公司的開放式軟PLC開發(fā)平臺,支持IEC61131-3的五種編程語言:順序功能圖(SFC)、功能塊圖(FBD)、梯形圖(LD)、結(jié)構化文本(ST)和指令表(IL)[4]。此外CoDeSys還內(nèi)置有符合PLCopen標準規(guī)范的運動控制功能塊庫。
CoDeSys的IDE名稱也為CoDeSys,它和運行于目標機的Runtime組成一個完整的開放式PLC開發(fā)平臺。Windows CE下的Runtime本質(zhì)為一個應用程序,可通過底層驅(qū)動程序訪問底層硬件和外部總線,運行原理如圖1所示。將CoDeSys生成的界面文件和任務文件下載到目標機之后,Runtime即可通過解析這些文件實現(xiàn)控制功能。
1.2 CoDeSys的OEM組件二次開發(fā)
CoDeSys的OEM組件是一種面向設備制造商的二次開發(fā)模塊,其開發(fā)過程如圖2所示。首先使用CoDeSys的IDE定制新的OEM組件接口生成Library文件和M4文件。CoDeSys的IDE可通過加載Library文件使用該OEM組件。M4解析器將M4文件解析生成文件名分別以DEF和ITF結(jié)尾的C語言頭文件,其中包含該組件的待實現(xiàn)函數(shù)接口及其之間的依賴關系,然后可使用Visual Studio編程實現(xiàn)接口的具體功能并生成相應的程序模塊。在Windows CE下這種程序模塊以DLL(Dynamic Link Library,動態(tài)鏈接庫)的形式存在。這樣Runtime在解析由CoDeSys調(diào)用新組件的Library生成的任務文件時,會調(diào)用相應的DLL程序模塊實現(xiàn)相應的具體功能。
圖2 CoDeSys的OEM組件二次開發(fā)流程圖
2.1 EtherMAC簡介
EtherMAC工業(yè)以太網(wǎng)的定時和同步機制均由從站實現(xiàn),這種機制不要求主站具有高精度實時定時器。主站只需在下一個總線同步周期到來之前向從站下發(fā)新的通信數(shù)據(jù),即可保證通信的實時性和準確性[7-8]。
2.2 組件的接口設計
一般現(xiàn)場總線的通信周期和同步機制由主站即控制器進行控制,因此在CoDeSys上開發(fā)這類總線的組件,通常使用高精度周期性任務控制總線數(shù)據(jù)的周期性收發(fā)。而對于EtherMAC,如果主站也采用高精度周期性任務控制數(shù)據(jù)收發(fā),那么這種不關聯(lián)的主從站雙定時機制會帶來增大數(shù)據(jù)處理延遲的問題。具體分析如圖3所示。
圖3 雙定時機制產(chǎn)生的延遲時間分析圖
假設主站和從站之間以時間T進行周期性數(shù)據(jù)交互,那么兩者的定時周期也都為T,相鄰兩個定時周期開始時間為t1和t2,從站首節(jié)點向主站發(fā)送數(shù)據(jù)之后,主站并不是立即處理數(shù)據(jù),而是延遲一段時間Δt之后,在主站新的定時周期開始時才從硬件緩存中讀取數(shù)據(jù)包進行處理。
圖4 EtherMAC組件的程序同步機制順序圖
Δt的大小由公式1確定。其中tu是微小的網(wǎng)絡數(shù)據(jù)傳輸時間,在數(shù)據(jù)傳輸速率、數(shù)據(jù)量和網(wǎng)線長度一定時該值為固定值。因此Δt時間主要取決于t1和t2之間的時間差值,最大值可接近定時周期T。主站在Δt時間內(nèi)并沒有進行有效的工作,而t1和t2為不確定的隨機時間,因此Δt的大小也具有隨機性的。
用事件觸發(fā)機制代替主站定時機制可消除Δt,即主站在接收到從站反饋數(shù)據(jù)之后,立刻觸發(fā)CoDeSys的Runtime中的任務進行數(shù)據(jù)處理。EtherMAC組件正是基于該原理設計的,其利用CoDeSys的OEM組件二次開發(fā)技術實現(xiàn),具體的同步原理如圖4所示。
EtherMAC驅(qū)動是一個運行在NDIS(Network Driver Interface Specification)中間層和協(xié)議層的驅(qū)動。中間層部分可以直接操作以太網(wǎng)卡的數(shù)據(jù)收發(fā),保證數(shù)據(jù)收發(fā)的實時性和可靠性。協(xié)議層向外部提供操作接口,并按照EtherMAC協(xié)議實現(xiàn)對網(wǎng)絡數(shù)據(jù)封裝和解析。Ether-MAC組件內(nèi)運行EtherMAC主站線程,而Runtime內(nèi)運行普通任務和外部事件任務。運行之前需要注冊一個CoDeSys外部事件EVENT_EtherMAC和一個Windows CE內(nèi)核對象事件EVENT_TASK_FINISH。
Runtime啟動時,首先對EtherMAC組件和驅(qū)動進行初始化。之后從站進入運行狀態(tài),并周期性地向主站發(fā)送數(shù)據(jù)。EtherMAC主站線程被反饋數(shù)據(jù)激活后,根據(jù)接收到的數(shù)據(jù)更新各個子模塊的接收數(shù)據(jù)區(qū)并觸發(fā)EVENT_EtherMAC。由于外部事件任務優(yōu)先級被設置為最高,此時Runtime將切換到外部事件任務中執(zhí)行。在外部事件任務中可以加入開發(fā)者設計的子程序,實現(xiàn)運動控制、邏輯控制等功能。外部事件完成任務之后更新EtherMAC組件內(nèi)各子模塊的發(fā)送數(shù)據(jù)區(qū),并觸發(fā)事件EVENT_TASK_FINISH通知EtherMAC主站線程繼續(xù)執(zhí)行,此時Runtime切換到普通任務中運行。然后EtherMAC主站線程采集各個子模塊中的發(fā)送數(shù)據(jù)區(qū)的數(shù)據(jù),通過EtherMAC驅(qū)動向從站發(fā)送控制數(shù)據(jù)。至此一個通信周期完成,EthermMAC驅(qū)動繼續(xù)等待下一個周期從站數(shù)據(jù)的到來。
通過EtherMAC組件,即可在CoDeSys上使用IEC 61131-3語言開發(fā)基于EtherMAC的控制系統(tǒng),本文以數(shù)控繞線機的開發(fā)為例驗證該組件帶來的優(yōu)勢。數(shù)控繞線機是一種用于電機線圈繞線的自動化設備,由繞線系統(tǒng)和機械手兩部分組成。繞線系統(tǒng)通過控制3個交流伺服電機實現(xiàn)繞線功能;機械手通過I/O開關量控制氣缸、剪切裝置和離合器,實現(xiàn)送線、剪線和更換模具等功能。如基于EtherMAC開發(fā)該控制系統(tǒng),則從站系統(tǒng)可由3個用于電機控制的Elink從站模塊和6個具有8個開關量輸入點和8個開關量輸出點的IO8從站模塊組成,主站控制器采用支持觸控的Windows CE 6工控機,其上運行CoDeSys的Runtime和EtherMAC組件,結(jié)構如圖5所示。
圖5 繞線機控制系統(tǒng)結(jié)構圖
原有控制系統(tǒng)由觸摸屏與PLC或獨立運動控制器兩部分組成,兩者之間通過串口實現(xiàn)數(shù)據(jù)交互,開發(fā)者需要根據(jù)串口通信約定在不同的軟件開發(fā)環(huán)境下實現(xiàn)人機交互功能和電機繞線功能。對于基于Ether-MAC工業(yè)實時以太網(wǎng)平臺的運動控制系統(tǒng)開發(fā),在沒有EtherMAC組件時,只能使用C/C++等高級語言完成開發(fā)該系統(tǒng),這樣就不能復用原有的PLC程序代碼,因此全部代碼需要重新編寫。而使用EtherMAC組件之后,機械手控制部分可以復用已有的功能成熟的PLC部分代碼,而繞線系統(tǒng)的控制部分可使用CoD-eSys內(nèi)部的符合PLCopen標準規(guī)范的運動控制功能塊庫完成開發(fā),同時人機交互功能也可在同一個開發(fā)環(huán)境CoDeSys中實現(xiàn),免去了串口通信。由此可見,EtherMAC組件可提高程序代碼的復用率,簡化開發(fā)過程并有效提升基于EtherMAC工業(yè)實時以太網(wǎng)平臺的運動控制系統(tǒng)開發(fā)效率。
本文利用CoDeSys的OEM組件提供的二次開發(fā)技術,設計了針對EtherMAC工業(yè)實時以太網(wǎng)的Ether-MAC組件。在該組件的幫助下,開發(fā)者可以使用IEC 61131-3語言開發(fā)基于EtherMAC的運動控制系統(tǒng)。由于IEC 61131-3語言與傳統(tǒng)的PLC編程語言具有較大的兼容性,因此可以復用已有的PLC程序代碼,也使原來PLC開發(fā)工程師也有能力開發(fā)基于EtherMAC的運動控制系統(tǒng)。經(jīng)過實例測試驗證,該組件的性能滿足控制系統(tǒng)的應用,并顯著提高運動控制系統(tǒng)的開發(fā)效率。
[1]黃延延,林躍,于海斌.軟PLC技術研究及實現(xiàn)[J].計算機工程,2004(1):165-167.
[2]周峰,王新華,李劍峰,等.軟PLC技術的發(fā)展現(xiàn)狀及應用前景[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系統(tǒng)的設計與實現(xiàn)[J].現(xiàn)代制造工程,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].農(nóng)業(yè)機械學報,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開發(fā)者參考[M].北京:機械工業(yè)出版社,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。