馬夢(mèng)意,徐建明
(浙江工業(yè)大學(xué) 信息工程學(xué)院,杭州 310023)
現(xiàn)代智能工業(yè)[1]自動(dòng)化技術(shù)是信息社會(huì)中的關(guān)鍵和核心技術(shù)之一,自動(dòng)化技術(shù)促進(jìn)了人類(lèi)文明的發(fā)展。目前,隨著對(duì)伺服系統(tǒng)[2]的信息化管理需求加劇,將現(xiàn)場(chǎng)總線、實(shí)時(shí)工業(yè)以太網(wǎng)等技術(shù)應(yīng)用于伺服系統(tǒng)中引起了人們的廣泛關(guān)注,現(xiàn)代交流伺服系統(tǒng)已呈現(xiàn)開(kāi)放性、網(wǎng)絡(luò)化、小型數(shù)字化和智能化等發(fā)展趨勢(shì)。因此,開(kāi)展實(shí)時(shí)工業(yè)以太網(wǎng)通訊的伺服系統(tǒng)的研究具有重大的實(shí)際意義。
工業(yè)以太網(wǎng)技術(shù)快速發(fā)展,采用全雙工通信方式能同時(shí)收發(fā)數(shù)據(jù),工業(yè)以太網(wǎng)的實(shí)時(shí)性也逐步提高。傳統(tǒng)的伺服驅(qū)動(dòng)器使用模擬接口和I/O的控制方式難以實(shí)現(xiàn)分布式。智能化具有統(tǒng)一標(biāo)準(zhǔn)協(xié)議的伺服控制系統(tǒng)的組建使得實(shí)時(shí)通信更加智能。目前許多國(guó)際組織正努力建立工業(yè)以太網(wǎng)統(tǒng)一標(biāo)準(zhǔn)協(xié)議,使工業(yè)以太網(wǎng)國(guó)際標(biāo)準(zhǔn)化,故實(shí)時(shí)工業(yè)以太網(wǎng)已成為伺服驅(qū)動(dòng)接口的主流。當(dāng)前主流實(shí)時(shí)以太網(wǎng)主要有 EtherCAT[3]、Profinet、Ethernet、Powerlink、CC-Link IE等。2003年,德國(guó)自動(dòng)化公司BECKHOFF(倍福)提出了一種實(shí)時(shí)工業(yè)太網(wǎng)技術(shù)EtherCAT,協(xié)議中對(duì)傳統(tǒng)的以太網(wǎng)協(xié)議進(jìn)行修改,EtherCAT網(wǎng)絡(luò)完全符合以太網(wǎng)標(biāo)準(zhǔn)并具有較好兼容性,支持多種拓?fù)浣Y(jié)構(gòu)[4],適用性廣泛、效率高、刷新周期短、同步[5]性能好。
目前主流的EtherCAT總線伺服控制系統(tǒng)[6]方案有STM32/DSP加LAN9252,STM32/DSP加ET1100從站芯片等。Beckhoff公司2009年左右推出的EtherCAT從站控制器[7](EtherCAT slave control,ESC)ET1100,芯片總線接口可以擴(kuò)展為4個(gè),有8個(gè)現(xiàn)場(chǎng)總線內(nèi)存管理單元和同步管理器,支持E-BUS;需要外置PHY芯片,成本較高,對(duì)性能和接口數(shù)量有要求,可以選用此方案。2015年美國(guó)Microchip公司推出的LAN9252芯片是集成了兩路以太網(wǎng)PHY的2/3端口ESC芯片,最多有3個(gè)接口,最多支持3個(gè)Fieldbus存儲(chǔ)管理單元[8]和接口。以上兩種ESC芯片方案需要外部的處理器MCU通過(guò)串行SPI(Serial Peripheral Interface,串行外設(shè)接口)或者并行FSMC(Flexible Static Memory Controller,可變靜態(tài)存儲(chǔ)控制器)等與其進(jìn)行數(shù)據(jù)交互,需要編寫(xiě)MCU與ESC芯片的底層驅(qū)動(dòng)代碼[9],多芯片協(xié)同工作方案成本較高、調(diào)試難度較大、開(kāi)發(fā)周期長(zhǎng),且在layout布局時(shí)占用PCB空間大,MCU與ESC芯片交互的高速信號(hào)容易受到干擾。
2015年英飛凌公司推出的XMC4800微處理器內(nèi)置一個(gè)ESC和ARM Cortex M4內(nèi)核。內(nèi)部的EtherCAT處理單元(EPU)接收、分析和處理EtherCAT數(shù)據(jù),啟用和協(xié)調(diào)對(duì)ESC的內(nèi)部寄存器和內(nèi)存空間的訪問(wèn)。MCU支持最高2MB的嵌入式閃存、352Kb的內(nèi)存,是業(yè)內(nèi)唯一支持125℃的M4產(chǎn)品,可靠性高,且成本較低。配合Dave強(qiáng)大的IDE(Integrated Development Environment,集成開(kāi)發(fā)環(huán)境),更方便地進(jìn)行基于EtherCAT從站設(shè)備的開(kāi)發(fā)。
本文以EtherCAT總線技術(shù)和矢量控制[10]為理論基礎(chǔ),選用英飛凌公司的XMC4800為主控芯片,設(shè)計(jì)一種EtherCAT總線的從站伺服驅(qū)動(dòng)系統(tǒng)。設(shè)計(jì)了EtherCAT網(wǎng)絡(luò)通訊電路、電機(jī)驅(qū)動(dòng)電路、電流與電壓檢測(cè)電路[11]、編碼器檢測(cè)電路等。利用倍福SSC_Tool軟件配置生成從站協(xié)議代碼和設(shè)備描述XML文件,按照CIA402運(yùn)動(dòng)控制協(xié)議添加適用于本系統(tǒng)的對(duì)象字典[12];在英飛凌的編程軟件Dave上配置ECAT_SSC和SVPWM控制的APP,生成底層代碼;編寫(xiě)了伺服驅(qū)動(dòng)的位置環(huán)、速度環(huán)、力矩環(huán)和電流環(huán)控制算法程序。最后搭建了一個(gè)單軸伺服實(shí)驗(yàn)裝置,利用TwinCAT軟件驗(yàn)證了所設(shè)計(jì)的EtherCAT從站伺服驅(qū)動(dòng)系統(tǒng)的可行性。
EtherCAT 是一種將工業(yè)以太網(wǎng)和現(xiàn)場(chǎng)總線技術(shù)相結(jié)合的工業(yè)總線,符合以太網(wǎng)標(biāo)準(zhǔn),具有帶寬利用率高、實(shí)時(shí)性能強(qiáng)、拓?fù)浣Y(jié)構(gòu)靈活、配置簡(jiǎn)潔、傳輸速度高、成本低等優(yōu)勢(shì)。本課題結(jié)合總線技術(shù),利用倍福主站TwinCAT3軟件和自主設(shè)計(jì)的伺服驅(qū)動(dòng)器,搭建電機(jī)驅(qū)動(dòng)控制系統(tǒng)?;赬MC4800的EtherCAT總線伺服控制系統(tǒng)總體結(jié)構(gòu)如圖1所示;該系統(tǒng)的整體結(jié)構(gòu)包括:工控機(jī)TwinCAT3主站、EtherCAT從站伺服驅(qū)動(dòng)器、編碼器、伺服電機(jī)。主站TwinCAT3掃描從站,配置從站參數(shù)后開(kāi)始進(jìn)行運(yùn)動(dòng)軌跡位置和速度的規(guī)劃,然后在每個(gè)DC(Distribute Clock)周期將位置和速度等控制命令下發(fā)給從站驅(qū)動(dòng)器,并且實(shí)時(shí)獲取電流、速度、位置等電機(jī)反饋的參數(shù)信息,形成閉環(huán)控制。
圖1 系統(tǒng)總體結(jié)構(gòu)圖
基于XMC4800的EtherCAT總線伺服控制系統(tǒng)的硬件包括兩部分:EtherCAT總線從站網(wǎng)絡(luò)通訊和伺服電機(jī)驅(qū)動(dòng)。在設(shè)計(jì)原理圖的時(shí)候采用英飛凌的引腳分配工具Infineon_ XMC_Pinout_Tool選擇MCU設(shè)備和封裝,勾選需要的外設(shè),對(duì)引腳進(jìn)行分配。設(shè)計(jì)的伺服驅(qū)動(dòng)器網(wǎng)絡(luò)控制和伺服驅(qū)動(dòng)部分都集成在一個(gè)PCB板子上,采用兩層板的設(shè)計(jì)結(jié)構(gòu)。
伺服系統(tǒng)DC48V供電,LM2596-12和LM2596-5作為開(kāi)關(guān)電源降壓芯片,分別降壓到12V和5V給MOS驅(qū)動(dòng)芯片和運(yùn)放芯片供電。MCU等芯片所需要的3.3 V電壓由AMS1117-3.3轉(zhuǎn)換得到。NCP1117ST18T3G把3.3 V轉(zhuǎn)換為1.8 V給PHY芯片的模擬電壓供電。
采用32位主頻144 MHz的XMC4800主控MCU,16位旋轉(zhuǎn)撥碼開(kāi)關(guān)用于設(shè)置多軸伺服從站網(wǎng)絡(luò)地址,EEPROM存儲(chǔ)電路用于驅(qū)動(dòng)器掉電數(shù)據(jù)保存,USB電路方便和上位機(jī)進(jìn)行圖形化界面調(diào)試和電機(jī)參數(shù)配置。
XMC4800內(nèi)部集成ESC,只需要一個(gè)12 M的石英晶振,ESC通過(guò)PHY芯片BCM5241交互數(shù)據(jù),由隔離變壓器H1102NL連接到RJ45外部接口。帶有兩個(gè)EtherCAT接口,一進(jìn)一出。可進(jìn)行多種拓?fù)浣Y(jié)構(gòu)的系統(tǒng)組網(wǎng)。
兩個(gè)霍爾電流傳感器ACS711采集U、V兩相電流,經(jīng)過(guò)搭建TLV2374的運(yùn)放電路把采集到的模擬量給到單片機(jī)。傳感器靈敏度110 mV/A,最大量程12.5 A,滿足系統(tǒng)要求。
MOS驅(qū)動(dòng)芯片IRS2003供電電壓12 V,驅(qū)動(dòng)N溝道場(chǎng)效應(yīng)管SW350R06VT,耐壓60 V最大負(fù)載電流24 A,滿足系統(tǒng)48 V供電電壓,驅(qū)動(dòng)100 W電機(jī)的要求。
帶有絕對(duì)值式編碼器伺服電機(jī),編碼器位置獲取電路用ADM485芯片搭建RS485通訊電路,芯片通訊速度2.5 Mbps,芯片供電電壓5 V。
5路數(shù)字輸入采用光耦EL3H4-G隔離包括左、中、右限位和兩個(gè)普通數(shù)字輸入。3路數(shù)字輸出采用EL357光耦隔離包括到位信號(hào)、抱閘信號(hào)和報(bào)警信號(hào),負(fù)載1.5 A電流。
基于XMC4800的EtherCAT總線伺服控制系統(tǒng)總體硬件原理如圖2所示。
圖2 基于XMC4800的EtherCAT總線伺服控制系統(tǒng)總體硬件原理框圖
英飛凌XMC系列微處理器寓意跨市場(chǎng)單片機(jī),Dave軟件可視化界面方便配置使得開(kāi)發(fā)難度降低。官方推出的固件庫(kù)把MCU中的寄存器底層驅(qū)動(dòng)都封裝起來(lái),軟件的配置在模塊APP的對(duì)話框內(nèi)編輯,然后生成底層代碼,開(kāi)發(fā)者直接調(diào)用API函數(shù)即可。系統(tǒng)主程序里面有對(duì)系統(tǒng)文件的初始化配置、外設(shè)的頭文件的定義、EtherCAT初始化、系統(tǒng)初始化狀態(tài)的判斷和處理、EtherCAT網(wǎng)絡(luò)的主循環(huán)。系統(tǒng)主程序流程如圖3所示。
圖3 系統(tǒng)主程序流程圖
ESC的軟件系統(tǒng)搭建包括EtherCAT從站協(xié)議棧代碼和設(shè)備描述文件的生成以及對(duì)MCU的軟件編程配置。EtherCAT從站協(xié)議棧代碼和設(shè)備描述文件生成的流程框圖如圖4所示。首先編輯xlsx文件,里面包括PDO和SDO對(duì)象字典索引的編輯,然后用倍福的從站代碼生成工具Slave Stack Code Tool把英飛凌提供的Infineon_XMC_ECAT_SSC_Config.XML文件和編輯好的xlsx文件導(dǎo)入進(jìn)去,設(shè)置廠商LOGO圖片、公司名字、產(chǎn)品代碼、設(shè)備名稱、版本號(hào)等基本信息和EtherCAT的硬件配置、EtherCAT狀態(tài)機(jī)的配置、同步性配置還有過(guò)程數(shù)據(jù)和郵箱的配置。最后生成EtherCAT協(xié)議棧代碼SSC文件夾,SSC文件夾里面有支持CIA402運(yùn)動(dòng)控制的Src文件夾代碼還有設(shè)備描述文件。
圖4 EtherCAT從站協(xié)議棧代碼和設(shè)備描述文件生成的流程框圖
使用DAVE-IDE-4.4.2-64Bit軟件前需安裝3個(gè)固件庫(kù):DAVE Project Library Mansger、DAVE APPs Library Manager、Contributed DAVE APPs Library Manager。建立一個(gè)工程項(xiàng)目選擇芯片型號(hào),添加相應(yīng)的APP來(lái)進(jìn)行配置,因?yàn)橐罱‥therCAT從站系統(tǒng),所以需要添加1個(gè)ECAT_SSC模塊APP,2個(gè)EVENT_ DETECTOR、EVENT_ GENETOR、INTERRUPT模塊APP。根據(jù)原理圖引腳分配對(duì)軟件相對(duì)應(yīng)的端口設(shè)置,并配置APP的功能,生成底層驅(qū)動(dòng)代碼。ECAT_SSC的APP單元的主從結(jié)構(gòu)如圖5所示。
圖5 ECAT_SSC的APP單元的主從結(jié)構(gòu)
EtherCAT應(yīng)用層使用CoE協(xié)議(CANopen over EtherCAT)實(shí)現(xiàn)伺服控制的周期性任務(wù)。從站的過(guò)程數(shù)據(jù) (process data objects, PDO)的對(duì)象字典配置列表如表1所示。
表1 從站的過(guò)程數(shù)據(jù)的對(duì)象字典配置列表
從站設(shè)備的名稱為XMC_ESC,主站接收數(shù)據(jù)對(duì)象包括:狀態(tài)字、錯(cuò)誤代碼、實(shí)際位置、實(shí)際速度、實(shí)際力矩、跟隨誤、數(shù)字輸入、電子探針狀態(tài)、電子探針上升沿1、電子探針下降沿1、電子探針上升沿2、電子探針下降沿2、工作模式顯示,主站下發(fā)數(shù)據(jù)對(duì)象包括:控制字、目標(biāo)位置、目標(biāo)速度、目標(biāo)力矩、數(shù)字輸出、電子探針功能、回零方法、回零加速度、回零高速、回零低速、工作模式設(shè)置。EtherCAT通訊模塊包括EtherCAT處理單元(EPU)、內(nèi)存、現(xiàn)場(chǎng)總線存儲(chǔ)單元、同步管理器,具有自動(dòng)轉(zhuǎn)發(fā)、回傳和PDI數(shù)據(jù)交互的功能。EtherCAT處理單元(EPU)接收、分析和處理EtherCAT數(shù)據(jù)流。EtherCAT模塊程序的初始化流程如圖6所示。模塊首先配置PLL系統(tǒng)時(shí)鐘,失能時(shí)鐘然后判斷內(nèi)存校驗(yàn)初始化是否完成,如果完成則開(kāi)啟中斷加載EEPROM,寫(xiě)進(jìn)用戶進(jìn)程。如果內(nèi)存檢驗(yàn)初始化失敗則初始化輸入輸出引腳,設(shè)置ECAT中斷,解除復(fù)位,啟動(dòng)從站協(xié)議。
EtherCAT處理單元啟用和協(xié)調(diào)ESC的內(nèi)部寄存器和內(nèi)存空間的訪問(wèn),通過(guò)PDI接口函數(shù)實(shí)現(xiàn)EtherCAT主站和從站數(shù)據(jù)交互。EtherCAT從控制器的地址空間64 K。第一個(gè)4K字節(jié)塊(0x0000到0x0FFF)用于寄存器和用戶內(nèi)存。地址0x1000以后的內(nèi)存空間用作進(jìn)程內(nèi)存。XMC4800支持進(jìn)程數(shù)據(jù)RAM的8K字節(jié)。主從站數(shù)據(jù)交換與進(jìn)程內(nèi)存相比,具有特殊的功能,如SyncManager(同步管理器)和FMMU(現(xiàn)場(chǎng)總線內(nèi)存管理單元)?,F(xiàn)場(chǎng)總線存儲(chǔ)器管理單元將邏輯地址逐位映射到ESC的物理地址。同步管理器負(fù)責(zé)EtherCAT主站和從站之間的數(shù)據(jù)交換和郵箱通信,可以為每個(gè)PDO和SDO數(shù)據(jù)配置通信方向,根據(jù)SyncManager狀態(tài)將地址映射到不同的緩沖區(qū)供模塊訪問(wèn)。
XMC4800伺服驅(qū)動(dòng)器的軟件主要包括兩個(gè)部分:初始化程序和中斷服務(wù)子程序。初始化程序包括各個(gè)模塊和變量的初始化,ADC轉(zhuǎn)換結(jié)束中斷服務(wù)子程序運(yùn)行伺服驅(qū)動(dòng)控制算法,串口中斷服務(wù)子程序?qū)崿F(xiàn)絕對(duì)值編碼器實(shí)時(shí)位置采集和速度計(jì)算。XMC4800中的CCU8單元產(chǎn)生3對(duì)互補(bǔ)的帶死區(qū)的PWM波,控制三相半橋驅(qū)動(dòng)工作。通過(guò)CCU8單元計(jì)數(shù)更新事件觸發(fā)ADC同步采樣。本次設(shè)計(jì)中設(shè)置PWM頻率15 K,死區(qū)上升沿時(shí)間900 ns,死區(qū)下降沿時(shí)間900 ns,MOS開(kāi)關(guān)延時(shí)50 ns。伺服驅(qū)動(dòng)各模塊單元的主從結(jié)構(gòu)如圖7所示。
圖7 伺服驅(qū)動(dòng)各模塊單元的主從結(jié)構(gòu)圖
當(dāng)系統(tǒng)上電微控制器完成初始化后,絕對(duì)值編碼器串口通訊工作,讀出轉(zhuǎn)子當(dāng)前絕對(duì)位置。霍爾電流傳感器ACS711組成的電流檢測(cè)電路對(duì)相電流和母線電流進(jìn)行采集,輸出信號(hào)進(jìn)入片內(nèi)ADC。MCU讀取電機(jī)編碼器的位置速度信號(hào),設(shè)計(jì)位置、速度、力矩和電流控制環(huán)。相電流通過(guò)Clark變換、Park 變換,經(jīng)電流調(diào)節(jié)器輸出給定相電壓,再利用Park逆變換得到給定電壓空間量,經(jīng)SVPWM算法和CCU8輸出6路SVPWM信號(hào)。ADC轉(zhuǎn)換結(jié)束中斷服務(wù)子程序流程如圖8所示。
圖8 ADC轉(zhuǎn)換結(jié)束中斷服務(wù)子程序流程圖
CSP模式下的控制結(jié)構(gòu)如圖9所示,該模式下運(yùn)動(dòng)控制的對(duì)象字典分別為控制字(0x6040)、狀態(tài)字(0x6041)、主站下發(fā)給驅(qū)動(dòng)器的目標(biāo)位置速度(0x607A)、電機(jī)轉(zhuǎn)子的實(shí)時(shí)位置信息(0x6064)和電機(jī)轉(zhuǎn)子的實(shí)際速度(0x606C)。EtherCAT從站程序完成初始化后,等待主站狀態(tài)請(qǐng)求信號(hào)的響應(yīng)。主站通過(guò)控制字(0x6040)控制驅(qū)動(dòng)器狀態(tài)的改變,從站驅(qū)動(dòng)器的狀態(tài)通過(guò)狀態(tài)字(0x6041)反饋給主站。當(dāng)主從站成功切換進(jìn)入OP(Operation)工作狀態(tài)后,主站規(guī)劃運(yùn)動(dòng)控制軌跡下發(fā)位置信號(hào),從站在協(xié)議棧電機(jī)控制的函數(shù)里面把目標(biāo)位置賦值給FOC的入口參數(shù),隨后在中斷服務(wù)程序里面經(jīng)過(guò)矢量控制算法驅(qū)動(dòng)電機(jī)旋轉(zhuǎn)。伺服從站把電機(jī)的實(shí)際位置、實(shí)際速度和實(shí)際力矩反饋給主站,形成閉環(huán)控制。
圖9 CSP模式下的控制結(jié)構(gòu)圖
本課題測(cè)試EtherCAT總線的伺服驅(qū)動(dòng)器的主站采用倍福Twincat3,設(shè)置并安裝網(wǎng)關(guān)驅(qū)動(dòng),把設(shè)備描述XML文件放在主站電腦硬盤(pán)C:TwinCAT3.1ConfigIoEtherCAT路徑的文件夾內(nèi),掃描從站設(shè)備,進(jìn)行EEPROM燒寫(xiě)工作,待燒寫(xiě)完成后再次掃描從站,即可看到設(shè)備和對(duì)象字典的列表。本實(shí)驗(yàn)采用周期性同步位置模式(CSP模式),主站設(shè)置500us的分布時(shí)鐘周期,在DC模式下,給伺服電機(jī)軸上使能,然后在對(duì)象字典工作模式中寫(xiě)入十進(jìn)制數(shù)8選定CSP模式。OP狀態(tài)下TwinCAT主站掃描到從站設(shè)備和對(duì)象字典圖如圖10所示。
圖10 OP狀態(tài)下TwinCAT主站掃描到從站設(shè)備和對(duì)象字典圖
驅(qū)動(dòng)器采用DC48V開(kāi)關(guān)電源供電,電機(jī)選用100 W、48 V的永磁同步電機(jī),配套絕對(duì)值編碼器,在精密滾珠絲桿模組(型號(hào):KK4001C,導(dǎo)程:1 mm,導(dǎo)軌長(zhǎng)度:150 mm)上面實(shí)驗(yàn)。電機(jī)起始位置為0,10轉(zhuǎn)/s的速度開(kāi)始運(yùn)動(dòng),加減速為1500 mm/s2。上位機(jī)設(shè)置電機(jī)10轉(zhuǎn)工作行程,對(duì)應(yīng)滾珠絲桿模組10 mm前進(jìn)距離,實(shí)際位置通過(guò)Twincat3軟件的示波器插件顯示出來(lái)。橫坐標(biāo)時(shí)間單位:s,縱坐標(biāo)行程單位:mm,在第2秒到第3秒時(shí)間段內(nèi)絲桿滑塊勻速?gòu)? mm運(yùn)動(dòng)到10 mm,速度為10 mm/s。滑塊運(yùn)行的實(shí)際位置波形如圖11所示。
圖11 電機(jī)實(shí)際位置的波形圖
本文研究了一種基于英飛凌XMC4800的EtherCAT總線伺服驅(qū)動(dòng)器,系統(tǒng)由XMC4800作為主控芯片,由MOSFET搭建的半橋驅(qū)動(dòng)作為系統(tǒng)的功率驅(qū)動(dòng),設(shè)計(jì)了EtherCAT從站電路、系統(tǒng)電源電路、電流采樣電路、編碼器位置采集電路和數(shù)字輸入輸出電路。本次系統(tǒng)硬件設(shè)計(jì)完成了EtherCAT從站和伺服驅(qū)動(dòng)器的硬件開(kāi)發(fā)工作、EtherCAT總線通訊和電機(jī)驅(qū)動(dòng)的程序設(shè)計(jì)。利用安裝Twincat3主站軟件的PC機(jī)對(duì)從站進(jìn)行調(diào)試,主站通過(guò)EtherCAT總線對(duì)伺服驅(qū)動(dòng)進(jìn)行運(yùn)動(dòng)控制的軌跡規(guī)劃,可以驅(qū)動(dòng)100 W帶有絕對(duì)值編碼器的永磁同步電機(jī)正常運(yùn)轉(zhuǎn)。本次實(shí)驗(yàn)驗(yàn)證了系統(tǒng)的正確性和可行性,達(dá)到了預(yù)期的功能效果。