電機控制演示
簡介
EtherCAT CoE(CAN over EtherCAT)是 EtherCAT 協(xié)議中的一種通信協(xié)議,它將 CANopen 應(yīng)用層協(xié)議集成到 EtherCAT 網(wǎng)絡(luò)中,用于分布式系統(tǒng)中的設(shè)備控制和數(shù)據(jù)交換。它結(jié)合了 CANopen 的易用性和 EtherCAT 的高性能優(yōu)勢,廣泛用于工業(yè)自動化、運動控制和傳感器網(wǎng)絡(luò)等領(lǐng)域。
以下是 CoE 的主要特點和功能:
基于CANopen:
CoE 的應(yīng)用層直接采用了 CANopen 的設(shè)備協(xié)議,包括對象字典(Object Dictionary)的結(jié)構(gòu)和服務(wù)。
通過對象字典定義設(shè)備參數(shù)、通信對象和控制數(shù)據(jù),確保了設(shè)備間的互操作性。
支持標(biāo)準(zhǔn)服務(wù):
SDO(Service Data Object):用于點對點的配置和診斷通信,允許主站與從站交換大容量數(shù)據(jù)(如參數(shù)配置)。
PDO(Process Data Object):用于實時通信,傳輸小數(shù)據(jù)量的周期性過程數(shù)據(jù),支持快速響應(yīng)。
Emergency(EMCY)消息:用于報告設(shè)備異常情況。
NMT(Network Management):提供網(wǎng)絡(luò)管理功能,如啟動、停止和復(fù)位設(shè)備。
高效傳輸:
EtherCAT 的總線結(jié)構(gòu)和高速幀處理能力,使 CoE 能以更低的延遲和更高的效率進(jìn)行數(shù)據(jù)交換。
支持多種應(yīng)用場景:
適用于工業(yè)設(shè)備配置、實時監(jiān)控、參數(shù)診斷和系統(tǒng)集成等。
對象字典映射:
對象字典以層級結(jié)構(gòu)組織設(shè)備的數(shù)據(jù)和功能。
EtherCAT 使用 CoE 協(xié)議訪問對象字典中的變量,以實現(xiàn)參數(shù)讀取、寫入和實時控制。
典型應(yīng)用:
用于支持復(fù)雜控制邏輯的驅(qū)動器(如伺服驅(qū)動)。
用于監(jiān)控、調(diào)試和配置設(shè)備的工程工具。
本節(jié)將演示如何使用Beckhoff TwinCAT3和EtherKit開發(fā)板實現(xiàn)EtherCAT COE主從站通信,該示例工程
已支持CSP及CSV兩種操作模式。
前期準(zhǔn)備
軟件環(huán)境:
RT-Thread Studio
https://download-redirect.rt-thread.org/download/studio/RT-Thread Studio_2.2.8-setup-x86_64_202405200930.exe
RZN-FSP v2.0.0
https://github.com/renesas/rzn-fsp/releases/download/v2.0.0/setup_rznfsp_v2_0_0_rzsc_v2024-01.1.exe
Beckhoff Automation TwinCAT3
https://www.beckhoff.com/en-us/support/download-finder/search-result/?c-1=26782567
硬件環(huán)境:
EtherKit開發(fā)板
網(wǎng)線一根
Jlink調(diào)試器
CiA402伺服使用說明
首先來看下CiA402協(xié)議:CiA402協(xié)議(Communication Interface for Drive Systems)是由CiA (CAN in Automation) 組織定義的,用于工業(yè)自動化領(lǐng)域,特別是針對電機控制系統(tǒng)的標(biāo)準(zhǔn)化協(xié)議。CiA402是驅(qū)動器和運動控制器CANopen設(shè)置子協(xié)議,定義變頻器、伺服控制器以及步進(jìn)的接口,它是國際標(biāo)準(zhǔn)IEC 61800-7系列的組成部分。CiA402協(xié)議基于CANopen通信協(xié)議,并在此基礎(chǔ)上擴(kuò)展和優(yōu)化了用于運動控制系統(tǒng)的功能。它主要用于伺服電機、步進(jìn)電機以及其他類型的電動驅(qū)動系統(tǒng)的控制。
接下來看下FSA(有限狀態(tài)自動機)顯示驅(qū)動器的不同狀態(tài)以及如何執(zhí)行它們之間的轉(zhuǎn)換。

下面是對應(yīng)上圖各個狀態(tài)的詳細(xì)說明:
對于控制器來說,在通信的每個周期內(nèi),都需要主站向從站發(fā)送控制字(control word),并且接收從站的狀態(tài)字進(jìn)行確認(rèn),比如說本工程中通過CiA402_StateMachine()實現(xiàn)CiA402的狀態(tài)切換:

與此同時,主站通過讀取從站的狀態(tài)字(status word, 0x6041)來了解從站當(dāng)前正在運行的狀態(tài),通過 status word可以了解關(guān)于從機當(dāng)前狀態(tài)和可能發(fā)生的故障或警告的詳細(xì)信息:
而主站通過控制字(control word, 0x6040)向從站發(fā)送控制命令,以此來改變其操作狀態(tài)或觸發(fā)指定的動作:
CiA402對象字典定義
下面是有關(guān)CiA402對象字典在EtherKit CoE工程中支持的列表,其中已經(jīng)支持了位置模式及速度模式,可通過主站去設(shè)置控制字來與從站的過程數(shù)據(jù)進(jìn)行交互,基于CoE協(xié)議完成對控制器的讀寫:
TwinCAT3配置
在啟動TwinCAT3之前,我們還需要做一些配置操作:
安裝ESI文件
啟動TwinCAT之前,將發(fā)布文件夾中包含的ESI文件復(fù)制到TwinCAT目標(biāo)位置:..\TwinCAT\3.x\Config\IO\EtherCAT
注意:當(dāng)前版本的 ESI 文件位于:..\board\ports\ESI_File\Renesas EtherCAT RZN2 CoE CDP.xml
新建TwinCAT工程
打開TwinCAT軟件,點擊文件->新建->新建項目,選擇TwinCAT Projects,創(chuàng)建TwinCAT XAR Project(XML format)工程:
從站啟動CoEApp
將EtherKit開發(fā)板上電后,需要使用網(wǎng)線連接ETH0網(wǎng)口, ethercat會默認(rèn)運行。
從站設(shè)備掃描
新建工程之后,在左側(cè)導(dǎo)航欄找到Devices,右鍵選擇掃描設(shè)備。正常來說如果掃描從站設(shè)備成功的話是會顯示:Device x[EtherCAT];而掃描失敗則顯示的是:Device x[EtherCAT Automation Protocol],此時就代表從站初始化失敗。
點擊Ok后會彈出一個窗口:Scan for boxes,點擊確認(rèn)后,會再次彈出窗口:Activate Free Run,由于我們首次使用CoE還需要更新EEPROM固件,所以暫時先不激活。
更新EEPROM固件
回到TwinCAT,在左側(cè)導(dǎo)航欄中,由于我們已經(jīng)成功掃描到從站設(shè)備,因此可以看到主從站的配置界
面:
我們雙擊Box 1,在中間界面的上方導(dǎo)航欄中單擊EtherCAT,并點擊Advanced Settings …:
這里按圖示點擊Download from List …:
我們寫入ESI固件到EEPROM中,這里由于我們配置的是雙網(wǎng)口,所以選擇Renesas EtherCAT RZ/N2 COE 2port,如果你配置的是三網(wǎng)口的話則選擇3port后綴的ESI文件進(jìn)行下載。
下載完成之后,我們右鍵Device x(EtherCAT)移除設(shè)備后重新掃描并添加設(shè)備,并完成激活工作(參考上文)。
EtherCAT COE測試
首先我們需要確保程序已經(jīng)正常下載至工程中,同時ESI文件已經(jīng)成功燒錄,下面是開發(fā)板串口終端打印信息:
同時我們打開前面新建的ESC工程,并且掃描設(shè)備,此時會彈出EtherCATdrive(s) added,我們選擇NC
– configuration,點擊OK后并激活設(shè)備:
成功激活后, EtherCAT狀態(tài)機會依次經(jīng)歷Init->Pre-Op->Safe-Op,最后到Op(Operational,可操作狀態(tài)), EtherKit CoE工程默認(rèn)開啟csp (周期同步位置模式),并且支持csv(同步周期速度模式)。
當(dāng)系統(tǒng)上電后,驅(qū)動器自動完成初始化,然后進(jìn)入STATE_SWITCH_ON_DISABLED狀態(tài),此時可以對驅(qū)動器的工作狀態(tài)模式進(jìn)行設(shè)置,比如說設(shè)置為csp或csv模式等等;同時對應(yīng)在開發(fā)板端能看到當(dāng)前軸1對 應(yīng)的CiA402狀態(tài)機信息在不斷打印:
csp位置模式控制
先來看下csp模式下的控制器:在位置模式下,我們可以將規(guī)劃好的目標(biāo)位置通過寫入控制字0x607A設(shè)置目標(biāo)位置,并且對應(yīng)狀態(tài)字0x6064可以得到實際反饋的位置信息。
而如果想要在csp或csv模式下操作,必須先將其狀態(tài)修改為STATE_OPERATION_ENABLED (可操作模式)。
展開左側(cè)導(dǎo)航欄,依次點擊Box1(RenesasEtherCATRZ/N2 CoE2port)->Module1(csp- axis)-
>Outputs->Control Word,首先需要將狀態(tài)切換為伺服無故障模式,主站通過向控制字0x6040寫入值0x0080(dec:128),將伺服控制器轉(zhuǎn)變?yōu)闊o障礙狀態(tài):
此時可以看到從站串口終端會停止State Transition2、State Transition7的打印,接著我們再次向控制字0x6040寫入值0x000F(dec:15):
此時伺服控制器由等待打開伺服使能切換到伺服運行的狀態(tài),同時在從站串口中斷打印
StateTransition2、State Transition3、State Transition4,在經(jīng)過狀態(tài)傳輸2 3 4后, CiA402狀態(tài)機進(jìn)入STATE_OPERATION_ENABLED ,此時就可以對控制器進(jìn)行控制了。
比如說當(dāng)前是位置模式,通過向Index:0x607A寫入位置數(shù)值,我們寫入100000:
此時依次點擊Box 1(Renesas EtherCAT RZ/N2 CoE 2port)->Module 1(csp - axis)->Inputs->Actual Position,查看實際反饋的位置,會發(fā)現(xiàn)Index 0x6064對應(yīng)的value會不斷自增,直到100000停止:
csv速度模式控制
首先需要將控制器模式由默認(rèn)的csp切換為csv模式,點擊左側(cè)導(dǎo)航欄中的Box1(RenesasEtherCAT
RZ/N2 CoE 2port),接著在中間的頁面中找到上方的Slots選擇Axis 0,在右邊預(yù)設(shè)支持的module修改為 csv ,并點擊‘<’標(biāo)志:
同時我們也可以觀察左側(cè)對應(yīng)的模塊信息是否更新,并切換為csv模式:
切換好模式后,我們需要重新加載設(shè)備,點擊TwinCAT3上方導(dǎo)航欄的TwinCAT->Reload Devices:
然后需要使控制器進(jìn)入STATE_OPERATION_ENABLED (可操作模式,參考上文),同樣是對控制字依次寫入0x0080(轉(zhuǎn)變?yōu)闊o障礙狀態(tài))、 0x000F (由等待打開伺服使能切換到伺服運行狀態(tài))。
此時我們查看輸入的狀態(tài)字0x6041,如果對應(yīng)的value值為0x1237,那么就代表當(dāng)前處于可操作模式(STATE_OPERATION_ENABLED);如果顯示的值為0x1208,那么代表當(dāng)前status處于Fault,重新設(shè)置 control word為0x0080( dec:128),并且在重復(fù)上述操作即可。
此時我們便可對Target Velocity值進(jìn)行寫入實際想要控制的速度值:
同時可在輸入中查看實際設(shè)置的速度信息是否一致:
-
通信協(xié)議
+關(guān)注
關(guān)注
28文章
978瀏覽量
40875 -
電機驅(qū)動
+關(guān)注
關(guān)注
60文章
1286瀏覽量
87433 -
ethercat
+關(guān)注
關(guān)注
19文章
921瀏覽量
39519
發(fā)布評論請先 登錄
TMC8670 – 集成EtherCAT通訊和FOC伺服運動控制芯片適用2/3相永磁同步電機
labview通過Ethercat控制伺服電機
基于TMC8462和TMCC160的EtherCAT直流伺服快速開發(fā)指導(dǎo)
如何快速更改.coe文件?
labview如何使用ethercat協(xié)議
資料下載:在CODESYS中通過EtherCAT總線驅(qū)動單個電機
在CODESYS中怎樣通過EtherCAT總線去驅(qū)動單個電機呢
開源!ZYNQ IgH EtherCAT主站方案分享
labview下的ethercat模塊如何與驅(qū)動器通訊
EtherCAT網(wǎng)絡(luò)支持CiA402規(guī)格所有的CoE模式?
如何生成ROM的coe文件?

基于最新5.4電機庫的STM32電機控制應(yīng)用實戰(zhàn)分享
STM32電機控制應(yīng)用實戰(zhàn)分享

如何同步運行?--基于EtherCAT的柔性電機驅(qū)動系統(tǒng)

評論