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