李文虎,李葉松,王江城
(華中科技大學(xué) 控制科學(xué)與工程系,湖北 武漢 430074)
隨著伺服系統(tǒng)對(duì)動(dòng)態(tài)響應(yīng)和控制精度的要求不斷提高,實(shí)際系統(tǒng)間傳遞信息的規(guī)模和復(fù)雜度也在不斷增加,這給運(yùn)動(dòng)控制系統(tǒng)提出了更高的要求,將工業(yè)以太網(wǎng)技術(shù)運(yùn)用于伺服驅(qū)動(dòng)系統(tǒng)中,使系統(tǒng)實(shí)現(xiàn)高速度、高精度、同步協(xié)調(diào)控制成為可能。
EtherCAT作為一種工業(yè)以太網(wǎng)協(xié)議,采用標(biāo)準(zhǔn)以太網(wǎng)幀格式和集總幀結(jié)構(gòu),利用特殊的邏輯地址映射功能有效地提高網(wǎng)絡(luò)帶寬的利用率,從站設(shè)備在報(bào)文經(jīng)過(guò)時(shí)進(jìn)行數(shù)據(jù)交換且整個(gè)過(guò)程都由硬件完成,具備良好的實(shí)時(shí)能力,適應(yīng)小數(shù)據(jù)量通訊,在性能、靈活性和操控性等方面都有良好的表現(xiàn)。
本文分析研究了在伺服驅(qū)動(dòng)器中將Ether-CAT協(xié)議與CANopen DSP402驅(qū)動(dòng)與運(yùn)動(dòng)控制行規(guī)相結(jié)合的方法,設(shè)計(jì)了伺服驅(qū)動(dòng)系統(tǒng)的工業(yè)以太網(wǎng)通訊接口,實(shí)現(xiàn)了多種運(yùn)動(dòng)控制模式。
伺服驅(qū)動(dòng)系統(tǒng)以太網(wǎng)通訊接口整體框架的分層結(jié)構(gòu)如圖1所示,總體構(gòu)成了CANopen over EtherCAT(CoE)的結(jié)構(gòu)。伺服驅(qū)動(dòng)器在Ether-CAT網(wǎng)絡(luò)中扮演從站的角色,其物理層和數(shù)據(jù)鏈路層的功能完全由硬件實(shí)現(xiàn),軟件設(shè)計(jì)集中于應(yīng)用層和應(yīng)用的功能實(shí)現(xiàn)。
EtherCAT采用普通以太網(wǎng)物理層結(jié)構(gòu),由RJ45接口、網(wǎng)絡(luò)變壓器和網(wǎng)絡(luò)收發(fā)器構(gòu)成。數(shù)據(jù)鏈路層的功能由專用控制芯片EtherCAT從站控制器(ESC)ET1100實(shí)現(xiàn),其主要工作是解析報(bào)文、負(fù)責(zé)數(shù)據(jù)交換、進(jìn)行幀校驗(yàn)等,為數(shù)據(jù)的實(shí)時(shí)通訊提供基本的保障,主站和從站經(jīng)由ESC中的雙口RAM交換數(shù)據(jù)。數(shù)據(jù)鏈路層和物理層通過(guò)MII接口通訊。應(yīng)用層以及運(yùn)動(dòng)控制相關(guān)具體應(yīng)用的功能使用DSP實(shí)現(xiàn)。DSP通過(guò)外部接口(XINTF)與EtherCAT從站控制器通訊,ESC的外部設(shè)備接口(PDI)配置為16位異步微控制器類型,同時(shí)相關(guān)控制信號(hào)的有效電平也需和DSP匹配,這些配置由一塊與ESC相連的EEPROM來(lái)管理。
圖1 分層參考模型Fig.1 Multilayer reference model
按照以太網(wǎng)參考模型進(jìn)行軟件設(shè)計(jì),使得軟件功能可以很清晰的分層實(shí)現(xiàn),同時(shí)將每一層服務(wù)劃分為相對(duì)獨(dú)立的功能模塊,這樣整個(gè)軟件結(jié)構(gòu)是高內(nèi)聚、低耦合的,能夠簡(jiǎn)化實(shí)現(xiàn)過(guò)程,同時(shí)也便于功能的擴(kuò)充和改善。
2.3.1 應(yīng)用層設(shè)計(jì)
應(yīng)用層主要完成與通訊相關(guān)的功能,以CANopen應(yīng)用和通訊子協(xié)議DS301為基礎(chǔ),其主要功能模塊如圖2所示。其中狀態(tài)機(jī)維護(hù)、郵箱服務(wù)以及SDO服務(wù)等對(duì)實(shí)時(shí)性要求不高的功能在程序的背景循環(huán)中輪詢執(zhí)行即可,對(duì)要求實(shí)時(shí)響應(yīng)的PDO服務(wù)則采用中斷處理。以下分別介紹實(shí)現(xiàn)應(yīng)用層各個(gè)功能模塊的設(shè)計(jì)要點(diǎn)和主要流程。
圖2 應(yīng)用層結(jié)構(gòu)框圖Fig.2 Structure of the application layer
1)EtherCAT網(wǎng)絡(luò)通訊狀態(tài)機(jī)。EtherCAT從站需要維護(hù)一個(gè)通訊狀態(tài)機(jī),用于主站和從站進(jìn)行握手,決定各自當(dāng)前能夠進(jìn)行的操作和提供的服務(wù),其結(jié)構(gòu)[1]如圖3所示。狀態(tài)轉(zhuǎn)換請(qǐng)求一般由主站發(fā)起,從站響應(yīng)。軟件設(shè)計(jì)的關(guān)鍵在于決定狀態(tài)切換時(shí)從站應(yīng)執(zhí)行哪些任務(wù),對(duì)此表1給出了具體的描述。
圖3 EtherCAT網(wǎng)絡(luò)通訊狀態(tài)機(jī)Fig.3 Communication state machine of EtherCAT network
表1 EtherCAT通訊狀態(tài)機(jī)狀態(tài)切換動(dòng)作Tab.1 Actions according to EtherCAT communication state machine
程序不斷查詢ESC中斷標(biāo)志寄存器,在發(fā)現(xiàn)主站有狀態(tài)轉(zhuǎn)換請(qǐng)求時(shí)讀取狀態(tài)請(qǐng)求寄存器,結(jié)合當(dāng)前狀態(tài),按照上述表格描述過(guò)程執(zhí)行通訊服務(wù)狀態(tài)機(jī)切換。
2)郵箱服務(wù)。EtherCAT定義了郵箱服務(wù)協(xié)議,為具體應(yīng)用層協(xié)議提供一個(gè)統(tǒng)一接口,用于非實(shí)時(shí)數(shù)據(jù)通信,CANopen中的SDO服務(wù)就以此為基礎(chǔ)實(shí)現(xiàn)。實(shí)現(xiàn)此功能關(guān)鍵是理解EtherCAT非周期性數(shù)據(jù)的處理方式。ESC中的同步管理器用于管理主站和從站之間的數(shù)據(jù)交換,它可以工作于郵箱模式,此時(shí)管理的 RAM空間需要主從雙方握手訪問(wèn),保證一方發(fā)送的消息另一方一定能夠接收到,同時(shí)同步管理器能夠以中斷或標(biāo)志的方式通知雙方數(shù)據(jù)的變化。
實(shí)際實(shí)現(xiàn)中,將兩個(gè)同步管理器與郵箱服務(wù)綁定,一般為同步管理器0和1,分別用于主站請(qǐng)求郵箱服務(wù)和從站回復(fù)。軟件實(shí)現(xiàn)的流程為:查詢ESC中斷標(biāo)志寄存器,如果有同步管理器0事件,則說(shuō)明有郵箱服務(wù)請(qǐng)求,讀取此同步管理器所管理地址空間中的數(shù)據(jù),按照郵箱協(xié)議格式進(jìn)行解析,得到實(shí)際的高層服務(wù)如SDO下載請(qǐng)求,并交由對(duì)應(yīng)功能模塊處理。服務(wù)處理完成后按照郵箱服務(wù)協(xié)議封裝數(shù)據(jù)寫入同步管理器1,作為郵箱服務(wù)回復(fù)等待主站讀取。
3)SDO服務(wù)。SDO服務(wù)用于主站訪問(wèn)從站對(duì)象字典。CoE中SDO服務(wù)報(bào)文幀格式完全與CANopen協(xié)議相兼容,且突破了CANopen對(duì)報(bào)文8字節(jié)長(zhǎng)度的限制。軟件實(shí)現(xiàn)上主要有兩方面的考慮:①根據(jù)實(shí)際應(yīng)用需求進(jìn)行服務(wù)類型選擇,CoE中一般只需提供基本形式的上傳和下載服務(wù)即能滿足應(yīng)用要求;②進(jìn)行必要的條件檢驗(yàn)。SDO服務(wù)需要讀寫對(duì)象字典,對(duì)服務(wù)的索引和子索引項(xiàng)、數(shù)據(jù)的長(zhǎng)度和大小、訪問(wèn)權(quán)限等都應(yīng)該有一個(gè)相對(duì)嚴(yán)格的檢驗(yàn)。軟件實(shí)現(xiàn)的流程:判斷服務(wù)類型,訪問(wèn)對(duì)象字典,給出回復(fù)。
4)PDO服務(wù)。PDO服務(wù)一般用于實(shí)時(shí)的周期性數(shù)據(jù)通訊。在CoE中此部分功能與CANopen實(shí)現(xiàn)過(guò)程數(shù)據(jù)交換的機(jī)制有所不同。在CANopen中首先設(shè)定對(duì)象字典中PDO映射和PDO通訊參數(shù)等相關(guān)項(xiàng)的內(nèi)容,從站接收到PDO報(bào)文時(shí)根據(jù)報(bào)文類型確定PDO對(duì)象,再根據(jù)對(duì)應(yīng)PDO映射裝載有效數(shù)據(jù)到對(duì)象字典。在CoE中,PDO映射方式?jīng)]變,但以PDO同步管理器分配項(xiàng)取代PDO通訊參數(shù)項(xiàng)。該索引項(xiàng)直接將PDO映射與同步管理器相關(guān)聯(lián),這樣從站能直接將相應(yīng)同步管理器所管理RAM空間中的數(shù)據(jù)映射到對(duì)象字典中去,實(shí)現(xiàn)過(guò)程數(shù)據(jù)交換。
與郵箱服務(wù)相似,實(shí)際軟件實(shí)現(xiàn)時(shí),將兩個(gè)同步管理器與PDO服務(wù)綁定,一般為同步管理器2和3,分別用于RxPDO和TxPDO傳輸。此時(shí)同步管理器配置為緩沖模式,這樣能保證接收方總是能夠得到當(dāng)前最新的數(shù)據(jù)。
2.3.2 應(yīng)用設(shè)計(jì)
為實(shí)現(xiàn)伺服驅(qū)動(dòng)器相關(guān)運(yùn)動(dòng)控制功能,本文引入CANopen DSP402行規(guī)作為設(shè)計(jì)標(biāo)準(zhǔn)。它是針對(duì)驅(qū)動(dòng)和運(yùn)動(dòng)控制的 CANopen設(shè)備子協(xié)議,其主要的功能模塊如圖4所示。
圖4 應(yīng)用結(jié)構(gòu)框圖Fig.4 Structure of the application
1)DSP402設(shè)備控制狀態(tài)機(jī)實(shí)現(xiàn)。DSP402狀態(tài)機(jī)定義了從站設(shè)備的控制時(shí)序,每一個(gè)狀態(tài)都限制了設(shè)備能夠接受的指令和執(zhí)行的動(dòng)作。狀態(tài)機(jī)切換流程[2]如圖5所示,主站寫控制字請(qǐng)求狀態(tài)轉(zhuǎn)換,從站查詢控制字發(fā)現(xiàn)有狀態(tài)切換請(qǐng)求時(shí)執(zhí)行相應(yīng)動(dòng)作,并將實(shí)際狀態(tài)寫入狀態(tài)字作為回復(fù),在檢測(cè)到內(nèi)部錯(cuò)誤時(shí)從站主動(dòng)進(jìn)入錯(cuò)誤狀態(tài)。從站狀態(tài)切換過(guò)程中需執(zhí)行操作如表2所示。
圖5 CANopen DSP402狀態(tài)機(jī)Fig.5 State machine of CANopen DSP402
表2 伺服驅(qū)動(dòng)器設(shè)備控制狀態(tài)機(jī)切換動(dòng)作Tab.2 Actions according to the device control state machine of the servo driver
設(shè)計(jì)上需要注意:①DSP402狀態(tài)機(jī)在EtherCAT通訊狀態(tài)機(jī)進(jìn)入運(yùn)行狀態(tài)之后才允許進(jìn)行操作,這也就意味著EtherCAT通訊狀態(tài)機(jī)退出運(yùn)行狀態(tài)前也應(yīng)該將DSP402狀態(tài)機(jī)退回到起始狀態(tài);②在從站響應(yīng)狀態(tài)轉(zhuǎn)換時(shí)要在所需動(dòng)作成功完成之后才能進(jìn)入所請(qǐng)求的狀態(tài),否則應(yīng)保持原狀態(tài)不變。
2)伺服控制協(xié)議實(shí)現(xiàn)。DSP402協(xié)議定義了多種運(yùn)行模式來(lái)實(shí)現(xiàn)如位置、速度等運(yùn)動(dòng)控制功能。對(duì)每一種運(yùn)行模式,協(xié)議都規(guī)定了其實(shí)現(xiàn)的基本框架,定義了對(duì)象字典中必要的索引項(xiàng)。本系統(tǒng)實(shí)現(xiàn)的運(yùn)行模式有用于位置控制的軌跡位置模式和周期同步位置模式與用于速度控制的軌跡速度模式和周期同步速度模式。這些模式的功能都是以PDO服務(wù)為基礎(chǔ),應(yīng)嵌入到PDO的中斷服務(wù)例程中去實(shí)現(xiàn)。運(yùn)行模式之間的切換由主站通過(guò)對(duì)象字典中的運(yùn)行模式和運(yùn)行模式顯示2個(gè)索引項(xiàng)來(lái)控制。下面以用于插補(bǔ)控制的周期同步位置控制模式的協(xié)議實(shí)現(xiàn)加以說(shuō)明。
周期同步位置模式總體控制框圖如圖6所示,圖6中給出了TxPDO和RxPDO的內(nèi)容。與軌跡位置模式的不同之處在于此模式下軌跡規(guī)劃的功能由主站完成,主站在每個(gè)通訊周期都需要發(fā)送有效的目標(biāo)位置值,從站只需根據(jù)插補(bǔ)周期和自身位置環(huán)采樣周期進(jìn)行位置插補(bǔ),得到實(shí)時(shí)位置指令值用于位置控制。此模式充分利用了EtherCAT高速的通訊能力,簡(jiǎn)化了從站的任務(wù),能夠方便地用于對(duì)多軸聯(lián)動(dòng)的控制。
圖6 周期同步位置控制結(jié)構(gòu)框圖Fig.6 Control structure of the cy clic sy nchronous position mode
實(shí)際控制中,該模式相關(guān)參數(shù)如運(yùn)行模式、PDO映射分配、插補(bǔ)周期等由主站在EtherCAT通信狀態(tài)機(jī)由PREOP狀態(tài)進(jìn)入SAFEOP狀態(tài)前通過(guò)SDO服務(wù)配置,對(duì)應(yīng)數(shù)據(jù)幀格式[1,3]如圖7所示。以設(shè)置插補(bǔ)周期參數(shù)為例,ESC根據(jù)子報(bào)文中指令、地址和長(zhǎng)度信息獲取報(bào)文數(shù)據(jù)同時(shí)產(chǎn)生同步管理器事件,從站檢測(cè)到此事件進(jìn)入郵箱服務(wù)響應(yīng)程序,按照?qǐng)D7中郵箱服務(wù)報(bào)文格式解析子報(bào)文中數(shù)據(jù),若郵箱服務(wù)類型為CoE,則按圖7中CoE服務(wù)報(bào)文格式解析郵箱服務(wù)中的數(shù)據(jù)并進(jìn)入CoE服務(wù)響應(yīng)程序,如果CoE服務(wù)類型為SDO請(qǐng)求,則按照?qǐng)D7中SDO服務(wù)格式解析CoE服務(wù)中數(shù)據(jù)并進(jìn)入SDO服務(wù)程序,檢測(cè)報(bào)文中索引、子索引和長(zhǎng)度項(xiàng),最終將數(shù)據(jù)寫入對(duì)象字典的插補(bǔ)周期中。實(shí)時(shí)過(guò)程數(shù)據(jù)則通過(guò)PDO服務(wù)傳輸,PDO服務(wù)無(wú)報(bào)文頭,子報(bào)文中數(shù)據(jù)即為有效數(shù)據(jù),如圖7中PDO服務(wù)所示,ESC獲取數(shù)據(jù)并產(chǎn)生同步管理器事件,程序在PDO中斷服務(wù)例程中按照PDO映射解析數(shù)據(jù)獲得2字節(jié)控制字和4字節(jié)目標(biāo)位置指令,同時(shí)反饋狀態(tài)字和實(shí)際位置值。
圖7 數(shù)據(jù)通訊幀格式Fig.7 Frame structure for communication
以普通PC機(jī)作為主站,在windows?環(huán)境下,以倍福(Beckhoff?)公司的 TwinCAT?軟件作為系統(tǒng)的上位機(jī)控制軟件,從站為自行設(shè)計(jì)帶EtherCAT接口的伺服驅(qū)動(dòng)器。
測(cè)試系統(tǒng)實(shí)際參數(shù)如下:通訊周期為3 ms,設(shè)定電機(jī)1 r對(duì)應(yīng)40 mm,最大速度限定為1 200 mm/s,加速度設(shè)定為1 200 mm/s2,加速度變化設(shè)定為2 400 mm/s3,軌跡規(guī)劃采用7段S型加減速模式。永磁同步電機(jī)的額定轉(zhuǎn)速1 200 r/min,最大轉(zhuǎn)速2 000 r/min,反饋編碼器分辨率為19位。伺服驅(qū)動(dòng)器位置環(huán)采樣周期300 μ s。
圖8為周期同步位置模式下不同目標(biāo)位置和目標(biāo)速度下的運(yùn)行結(jié)果,主站每個(gè)通訊周期更新其規(guī)劃出的位置指令值,從站實(shí)時(shí)接收該指令用于位置控制。
圖8 周期同步位置運(yùn)行結(jié)果Fig.8 Experimental results of the cyclic synchronous position mode
圖9為周期同步速度模式下運(yùn)行結(jié)果,在此模式下系統(tǒng)的軌跡規(guī)劃和位置控制由主站處理,主站利用當(dāng)前規(guī)劃出的位置值與從站反饋的位置實(shí)際值進(jìn)行調(diào)節(jié)得到速度指令值,從站直接使用主站發(fā)送的速度指令實(shí)現(xiàn)速度控制。
圖9 周期同步速度運(yùn)行結(jié)果Fig.9 Experimental results of the cyclic synchronous velocity mode
上述結(jié)果中,TwinCAT根據(jù)反饋的實(shí)際位置計(jì)算反饋速度。在實(shí)際運(yùn)行中,受Windows操作系統(tǒng)和主站硬件的影響,通過(guò)上位機(jī)的以太網(wǎng)幀捕獲工具發(fā)現(xiàn)主站系統(tǒng)會(huì)接近周期性的丟失TwinCAT的數(shù)據(jù)發(fā)送任務(wù),導(dǎo)致從站丟失位置指令,主站丟失位置反饋信息的情況,因此實(shí)際速度結(jié)果存在明顯跳變。
圖10為軌跡位置模式下,分別以不同的軌跡速度、加速度和目標(biāo)位置進(jìn)行軌跡規(guī)劃的運(yùn)行結(jié)果,采用S型加減速模式,可以看出位置響應(yīng)非常平滑。
圖11為軌跡速度模式下,分別以不同的目標(biāo)速度和軌跡加速度進(jìn)行規(guī)劃的運(yùn)行結(jié)果,系統(tǒng)能很好地實(shí)現(xiàn)速度的跟蹤控制。
圖10 軌跡位置模式運(yùn)行結(jié)果Fig.10 Experimental results of the profile position mode
圖11 軌跡速度模式運(yùn)行結(jié)果Fig.11 Experimental results of the profile velocity mode
本文研究了在伺服驅(qū)動(dòng)器上基于EtherCAT協(xié)議的通訊接口設(shè)計(jì)方法,結(jié)合CANopen行規(guī)實(shí)現(xiàn)了針對(duì)伺服運(yùn)動(dòng)控制的應(yīng)用層軟件設(shè)計(jì)。將EtherCAT與CANopen相結(jié)合,能夠充分發(fā)揮各自的優(yōu)勢(shì),并且有利于任務(wù)的分解,便于軟件的模塊化設(shè)計(jì)。實(shí)際控制結(jié)果表明EtherCAT能夠很好地運(yùn)用于對(duì)總線實(shí)時(shí)性、可靠性要求較高的運(yùn)動(dòng)控制領(lǐng)域。
[1]國(guó)際電工委員會(huì).工業(yè)通訊網(wǎng)絡(luò).數(shù)據(jù)總線規(guī)范.第6-12部分:應(yīng)用層協(xié)議規(guī)范.12型元件[S].IEC 61158-6-12 2007.
[2]國(guó)際電工委員會(huì).可調(diào)速電力傳動(dòng)系統(tǒng).第7-201部分:電力傳動(dòng)系統(tǒng)用剖面圖的使用和通用接口.1型剖面圖的規(guī)范[S].IEC 61800-7-201 2007.
[3]國(guó)際電工委員會(huì).工業(yè)通訊網(wǎng)絡(luò).數(shù)據(jù)總線規(guī)范.第4-12部分:數(shù)據(jù)聯(lián)絡(luò)層協(xié)議規(guī)范.12型元件[S].IEC 61158-4-12 2007.