?。?.中國科學院光電技術研究所,四川 成都 610209;2.中國科學院大學,北京 100190;3.成都信息工程大學,四川 成都 610225)
摘要:實時工業以太網EtherCAT憑借著高性能、低成本、應用簡易等優點在現代控制領域得到了廣泛的應用和迅速的發展。為了將EtherCAT快速應用到電機驅動控制系統中,采用IntervalZero公司的KingStar Motion軟件,設計了一種基于EtherCAT實時通信的電機驅動控制方案,并搭建相應實驗平臺。系統采用經典的位置、速度、電流三閉環控制,分別對速度跟蹤、位置定點與正弦跟蹤進行了實驗測試與分析。實驗結果表明,該控制系統可靠性高,跟蹤精度良好。
關鍵詞:EtherCAT;KingStar Motion軟件;電機驅動控制
中圖分類號:TP29文獻標識碼:ADOI: 10.19358/j.issn.1674-7720.2017.10.001
引用格式:林夢云,馬文禮,熊皚,等.基于EtherCAT實時通信的電機驅動控制[J].微型機與應用,2017,36(10):1-4.
0引言
隨著工業自動化不斷發展,傳統的現場總線技術已經逐漸無法滿足控制領域的要求。工業以太網憑借其傳輸速度快、數據包容量大、傳輸距離長、性價比高等優點,成為當今工業現場總線技術的重要發展方向[1]。其中由德國BECKHOFF公司開發的實時工業以太網EtherCAT(Ethernet for Control Automation Technology),以高性能、低成本、應用簡易等優點在現代控制領域得到了廣泛的應用和迅速的發展。
國內外均有EtherCAT應用于高精度電機驅動控制的實例,市面上的伺服驅動器也大多已集成EtherCAT通信接口,可直接配置作為EtherCAT從站。要實現基于EtherCAT的電機驅動系統,可將重點放在EtherCAT主站設計上??紤]到由樣本代碼開發主站周期較長,故一般多采用商業主站軟件進行二次編程開發。其中IntervalZero公司的KingStar Motion軟件,以軟件形式取代昂貴的運動控制板,并包含相應EtherCAT主站代碼,用EtherCAT標準取代專用網絡協議和IO硬件,還支持在EtherCAT的基礎上使用CANopen,從而可以搭建更低成本的基于EtherCAT的伺服控制系統[2]。
本文結合EtherCAT總線技術、KingStar Motion軟件和商業驅動器,設計一種基于EtherCAT通信的電機驅動控制方案,實現對電機的實時驅動控制。
1EtherCAT通信原理
EtherCAT系統采用主從式結構,所有通信均由主站發起。利用以太網設備獨立處理雙向傳輸(Tx和Rx)的特性,運行在全雙工模式下,主站發出的報文可通過Rx線返回主站控制單元。這種通信機制使整個網絡中不會出現通信沖突,從而使網絡具有很好的確定性。
整個網絡通信結構如圖1所示。EtherCAT主站發出下行報文,報文包含各個從站所需數據,并經過所有從站。EtherCAT從站在報文經過時,分析尋址到本站數據,根據相應命令從數據幀中抽取或插入數據,然后更新相應的工作計數器(Working Counter, WKC),以標識出該數據幀被從站處理過,并將數據幀轉發到下一個相鄰的從站。該過程由從站硬件來完成,這使得EtherCAT數據幀經過每個從站的時間極小,延遲約為100~500 ns,保證了網絡的高度實時性。遍歷完所有從站后,經過從站處理后的數據幀作為上行報文,從最后一個從站返回主站。主站收到上行數據報文后,處理返回的數據,一次通信結束[3]。
2電機驅動控制系統設計
2.1系統整體方案設計
基于EtherCAT通信的電機驅動控制系統主要由工控機、EtherCAT總線、伺服驅動器、伺服電機和反饋編碼器五部分組成,系統結構如圖2所示。
工控機配置為基于PC的EtherCAT主站,周期性地接收從站上傳的位置、速度數據,并做相應的運算,然后下發相應參考電流或轉矩;伺服驅動器作為EtherCAT從站,接收編碼器所采集的電機參數,將相應數據由EtherCAT總線周期性地傳給主站,并接收主站下發數據和控制命令,驅動伺服電機。控制系統設計為典型的三閉環(位置環、速度環、電流環)模式,伺服驅動器只做電流閉環運算;速度、位置閉環運算在工控機上完成。
工控機與伺服驅動器構成EtherCAT主從站結構。其中由伺服驅動器作EtherCAT從站,選用寧波Phase公司AxN型驅動器,已集成相應的EtherCAT從站控制器ESC和微處理器芯片,支持CoE(CANopen over EtherCAT)應用層協議,相關配置較簡單,可同時實現與主站通信和驅動電機兩部分功能。故整個系統的重點和難點在于工控機實現EtherCAT主站和主從站通信軟件的設計。
2.2工控機作EtherCAT主站
基于PC的主站,硬件只需普通的網絡接口卡NIC(Network Interface Card)即可,主站功能完全由軟件來實現。選用Beckhoff公司的多核雙網口工控機C6640-0030。工控機實現EtherCAT主站功能主要包括以下幾個部分:搭建實時子系統(Real-Time SubSystem, RTSS);EtherCAT主站代碼的二次開發;編寫電機實時控制程序;人機交互界面設計。系統架構如圖3所示。
(1)搭建實時子系統RTSS。首先考慮到PC上為非實時的Windows操作系統,要保證控制系統中EtherCAT通信的實時性,需將其轉變為實時操作系統(Realtime Operating System, RTOS)。IntervalZero公司的KingStar Motion中已包含相應的RTX(RealTime Extension)軟件,它修改并擴展Windows的硬件抽象層HAL(Hardware Abstraction Layer),實現獨立的內核驅動模式,形成與Windows操作系統并列的實時子系統RTSS[4]。通過在Windows和RTX線程之間增加獨立的中斷間隔,提供獨立的RTSS調度器,從而保證系統的實時性。RTX提供了多種動態庫與靜態庫,用于實現相應的實時程序開發,而且支持友好的編程環境。
(2) EtherCAT主站代碼的二次開發。主站代碼采用KingStar Motion所包含的商業代碼來實現,以靜態和動態鏈接庫的形式提供相關應用程序接口(Application Programming Interface,API),包括主站參數配置、主從站數據通信等函數,易于二次編程開發;支持CoE應用層協議;提供十分友好的編程環境,程序代碼均可在Microsoft Visual Studio中編寫。EtherCAT主站運行在RTSS下以保證EtherCAT通信的實時性。
(3)編寫電機實時控制程序?;贓therCAT的實時控制程序主要是利用RTSS下的高精度定時器和高速的周期性EtherCAT通信來實現相應的閉環控制運算。程序通過運行在RTSS下的EtherCAT主站代碼與從站通信,實時接收處理從站反饋數據,并向從站發送相應控制命令。
(4)人機交互界面設計。為方便控制系統參數調試,可由MFC編寫相應的人機交互界面程序,通過進程間通信與電機實時控制程序進行數據交互,調試設定相關參數,周期性地顯示系統相應狀態,并保存實驗數據。上位機界面程序可運行在非實時的Windows系統下,由共享內存實現與RTSS實時程序之間的數據通信。
2.3主從站通信軟件設計
EtherCAT主從站通信采用CoE應用層協議,包括非周期郵箱通信和周期性過程通信。其中郵箱通信為主從站間的非周期通信,用于非實時應用場合,對應著KingStar Motion所提供的SDO函數ReadSdoObject和WriteSdoObject;過程數據通信為主從站間周期性通信,用于實時應用場合。
由于從站為伺服驅動器,要實現對電機的驅動控制,參考CANopen伺服和運動控制行規CiA402,選擇驅動器的運行模式為周期性同步扭矩控制模式(Cyclic Synchronous Torque,CST)。該運行模式結構如圖4所示。控制主站周期性地向驅動設備發送目標扭矩指令,驅動設備運行扭矩控制。驅動設備向控制主站提供實際位置值、實際速度值和實際扭矩值[1]。
主從站通信開始時,主站會依據網絡信息文件 (EtherCAT Network Information, ENI)初始化網絡。通過分析其ENI文件可以看到主站對應過程數據對象字典(Process Data Object, PDO)映射配置。其中RxPDO包含的對象字典6071h代表著電機目標轉矩值,TxPDO包含的對象字典6064h代表著電機當前位置值,結合CiA402協議可以實現對電機的驅動控制。
在CST模式下,控制主站向驅動器下發目標轉矩,伺服電機為永磁同步電機采用id=0矢量控制,q軸電流與轉矩成正比,驅動器實現電流閉環運算,并反饋當前位置值,在控制主站實現位置、速度閉環運算。下發目標轉矩和反饋當前位置分別對應著KingStar Motion所提供的函數SetServoTorque和GetServoPosition。
綜上所述,在Visual Studio 2013下編寫EtherCAT主從站通信程序,程序流程如圖5所示。實時任務運行在RTSS子系統下,負責實現EtherCAT主站配置、主從數據實時通信、高精度實時定時器與閉環運算;非實時任務是在Windows系統下設計的,主要完成人機交互界面的設計,包括參數設定和狀態顯示。
3實驗平臺搭建
本文根據設計的系統整體方案,搭建了基于EtherCAT實時通信的電機驅動控制實驗平臺。主站為Beckhoff公司的多核雙網口工控機,操作系統為Windows7,安裝IntervalZero公司的KingStar Motion軟件,進行相應配置;從站采用的是寧波Phase公司的AxN型驅動器,已集成相關芯片和EtherCAT通信接口,通過網線直接與工控機實時網口相連;所用電機參數,額定扭矩為35 Nm,最大轉速1150°/s;編碼器采用27位分辨率海德漢絕對式編碼器ECA4000,通信接口為Endat2.2,由接口定義配置相應轉接線,直接與伺服驅動器相連。
4實驗測試與分析
為進行相關實驗測試,首先配置好AxN型驅動器作EtherCAT從站,由于主站已適配支持該類型驅動器,無需配置從站信息文件,可直接由網線連接工控機。運行所編寫的人機界面程序和電機實時控制程序,進行相應閉環實驗測試,并保存實驗數據以便分析。由于實驗條件有限,本文僅對伺服電機在未接負載的情況下進行了測試。
4.1速度閉環測試
給定電機參考速度為1°/s,測得其速度跟蹤誤差曲線如圖6所示。橫坐標為時間,單位為秒(s),縱坐標為速度跟蹤誤差,單位為角秒(″/s)。分析數據可知,系統在1°/s時速度跟蹤均方根誤差(Root Mean Square, RMS)為8.602 1″/s,最大速度跟蹤誤差絕對值為30.510 4″/s??梢娫撓到y速度跟蹤誤差較小,滿足跟蹤性能要求。
4.2位置閉環測試
位置定點跟蹤:給定參考位置定點為1°,測得其位置定點跟蹤誤差曲線如圖7所示。分析數據可知,系統在1°位置定點跟蹤誤差RMS為0.076 5″,最大位置跟蹤誤差絕對值為0.272 5″??梢娤到y位置定點跟蹤性能良好。
位置正弦跟蹤:給點參考位置正弦為20°sin(0.1t),測得其位置正弦跟蹤誤差曲線如圖8所示。采集兩個周期的位置正弦跟蹤誤差數據,分析可知,系統位置正弦跟蹤誤差RMS為0.702 1″,最大位置跟蹤誤差絕對值為1.407 1″。可見該系統位置正弦跟蹤誤差很小,正弦跟蹤性能良好。
5結論
本文設計了一種基于EtherCAT實時通信的電機驅動控制系統。簡要介紹了EtherCAT的工作原理;采用KingStar Motion軟件將工控機配置為EtherCAT主站,編寫主從站實時通信程序和上位機界面程序;根據系統方案搭建相應實驗平臺,進行了閉環控制實驗。結果表明,該控制系統可靠性高,跟蹤精度良好,滿足相應性能要求。而且該系統結構簡單,拓撲靈活,在EtherCAT總線上增加多個伺服驅動器作從站,即可實現多電機的實時驅動控制;系統所有代碼均在Visual Studio 2013下編寫,維護方便,可以自定義編寫人機交互界面和復雜閉環算法。本文由于條件限制,沒有對系統在帶載或復雜工況下進行分析,也沒有研究轉到多電機驅動控制時的問題,這些都有待進一步研究。
參考文獻
?。?] 郇極,劉艷強. 工業以太網現場總線EtherCAT驅動程序設計及應用[M].北京:北京航空航天大學出版社,2010.
?。?] IntervalZero. KingStar product brief simple chinese[EB/OL].(2014-xx-xx)[2016-12-30]http://www.kingstar.com.
?。?] 任計羽. EtherCAT從站軟件的設計與實現[D].成都:中科院光電技術研究所,2014.
[4] 田昊,潘清. RTX實時效果測試及應用[J].計算機系統應用,2007,16(2):103106.