孫好春,張承瑞,胡天亮
(山東大學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
由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之間的數據交互。然后以數控繞線機控制系統的開發過程為例,對該組件的功能進行驗證。
開放式的軟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.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驅動繼續等待下一個周期從站數據的到來。
通過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工業實時以太網平臺的運動控制系統開發效率。
本文利用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。