電機控制演示
簡介
EtherCAT CoE(CAN over EtherCAT)是 EtherCAT 協議中的一種通信協議,它將 CANopen 應用層協議集成到 EtherCAT 網絡中,用于分布式系統中的設備控制和數據交換。它結合了 CANopen 的易用性和 EtherCAT 的高性能優勢,廣泛用于工業自動化、運動控制和傳感器網絡等領域。
以下是 CoE 的主要特點和功能:
基于CANopen:
CoE 的應用層直接采用了 CANopen 的設備協議,包括對象字典(Object Dictionary)的結構和服務。
通過對象字典定義設備參數、通信對象和控制數據,確保了設備間的互操作性。
支持標準服務:
SDO(Service Data Object):用于點對點的配置和診斷通信,允許主站與從站交換大容量數據(如參數配置)。
PDO(Process Data Object):用于實時通信,傳輸小數據量的周期性過程數據,支持快速響應。
Emergency(EMCY)消息:用于報告設備異常情況。
NMT(Network Management):提供網絡管理功能,如啟動、停止和復位設備。
高效傳輸:
EtherCAT 的總線結構和高速幀處理能力,使 CoE 能以更低的延遲和更高的效率進行數據交換。
支持多種應用場景:
適用于工業設備配置、實時監控、參數診斷和系統集成等。
對象字典映射:
對象字典以層級結構組織設備的數據和功能。
EtherCAT 使用 CoE 協議訪問對象字典中的變量,以實現參數讀取、寫入和實時控制。
典型應用:
用于支持復雜控制邏輯的驅動器(如伺服驅動)。
用于監控、調試和配置設備的工程工具。
本節將演示如何使用Beckhoff TwinCAT3和EtherKit開發板實現EtherCAT COE主從站通信,該示例工程
已支持CSP及CSV兩種操作模式。
前期準備
軟件環境:
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
硬件環境:
EtherKit開發板
網線一根
Jlink調試器
CiA402伺服使用說明
首先來看下CiA402協議:CiA402協議(Communication Interface for Drive Systems)是由CiA (CAN in Automation) 組織定義的,用于工業自動化領域,特別是針對電機控制系統的標準化協議。CiA402是驅動器和運動控制器CANopen設置子協議,定義變頻器、伺服控制器以及步進的接口,它是國際標準IEC 61800-7系列的組成部分。CiA402協議基于CANopen通信協議,并在此基礎上擴展和優化了用于運動控制系統的功能。它主要用于伺服電機、步進電機以及其他類型的電動驅動系統的控制。
接下來看下FSA(有限狀態自動機)顯示驅動器的不同狀態以及如何執行它們之間的轉換。
下面是對應上圖各個狀態的詳細說明:
對于控制器來說,在通信的每個周期內,都需要主站向從站發送控制字(control word),并且接收從站的狀態字進行確認,比如說本工程中通過CiA402_StateMachine()實現CiA402的狀態切換:
與此同時,主站通過讀取從站的狀態字(status word, 0x6041)來了解從站當前正在運行的狀態,通過 status word可以了解關于從機當前狀態和可能發生的故障或警告的詳細信息:
而主站通過控制字(control word, 0x6040)向從站發送控制命令,以此來改變其操作狀態或觸發指定的動作:
CiA402對象字典定義
下面是有關CiA402對象字典在EtherKit CoE工程中支持的列表,其中已經支持了位置模式及速度模式,可通過主站去設置控制字來與從站的過程數據進行交互,基于CoE協議完成對控制器的讀寫:
TwinCAT3配置
在啟動TwinCAT3之前,我們還需要做一些配置操作:
安裝ESI文件
啟動TwinCAT之前,將發布文件夾中包含的ESI文件復制到TwinCAT目標位置:..\TwinCAT\3.x\Config\IO\EtherCAT
注意:當前版本的 ESI 文件位于:..\board\ports\ESI_File\Renesas EtherCAT RZN2 CoE CDP.xml
新建TwinCAT工程
打開TwinCAT軟件,點擊文件->新建->新建項目,選擇TwinCAT Projects,創建TwinCAT XAR Project(XML format)工程:
從站啟動CoEApp
將EtherKit開發板上電后,需要使用網線連接ETH0網口, ethercat會默認運行。
從站設備掃描
新建工程之后,在左側導航欄找到Devices,右鍵選擇掃描設備。正常來說如果掃描從站設備成功的話是會顯示:Device x[EtherCAT];而掃描失敗則顯示的是:Device x[EtherCAT Automation Protocol],此時就代表從站初始化失敗。
點擊Ok后會彈出一個窗口:Scan for boxes,點擊確認后,會再次彈出窗口:Activate Free Run,由于我們首次使用CoE還需要更新EEPROM固件,所以暫時先不激活。
更新EEPROM固件
回到TwinCAT,在左側導航欄中,由于我們已經成功掃描到從站設備,因此可以看到主從站的配置界
面:
我們雙擊Box 1,在中間界面的上方導航欄中單擊EtherCAT,并點擊Advanced Settings …:
這里按圖示點擊Download from List …:
我們寫入ESI固件到EEPROM中,這里由于我們配置的是雙網口,所以選擇Renesas EtherCAT RZ/N2 COE 2port,如果你配置的是三網口的話則選擇3port后綴的ESI文件進行下載。
下載完成之后,我們右鍵Device x(EtherCAT)移除設備后重新掃描并添加設備,并完成激活工作(參考上文)。
EtherCAT COE測試
首先我們需要確保程序已經正常下載至工程中,同時ESI文件已經成功燒錄,下面是開發板串口終端打印信息:
同時我們打開前面新建的ESC工程,并且掃描設備,此時會彈出EtherCATdrive(s) added,我們選擇NC
– configuration,點擊OK后并激活設備:
成功激活后, EtherCAT狀態機會依次經歷Init->Pre-Op->Safe-Op,最后到Op(Operational,可操作狀態), EtherKit CoE工程默認開啟csp (周期同步位置模式),并且支持csv(同步周期速度模式)。
當系統上電后,驅動器自動完成初始化,然后進入STATE_SWITCH_ON_DISABLED狀態,此時可以對驅動器的工作狀態模式進行設置,比如說設置為csp或csv模式等等;同時對應在開發板端能看到當前軸1對 應的CiA402狀態機信息在不斷打印:
csp位置模式控制
先來看下csp模式下的控制器:在位置模式下,我們可以將規劃好的目標位置通過寫入控制字0x607A設置目標位置,并且對應狀態字0x6064可以得到實際反饋的位置信息。
而如果想要在csp或csv模式下操作,必須先將其狀態修改為STATE_OPERATION_ENABLED (可操作模式)。
展開左側導航欄,依次點擊Box1(RenesasEtherCATRZ/N2 CoE2port)->Module1(csp- axis)-
>Outputs->Control Word,首先需要將狀態切換為伺服無故障模式,主站通過向控制字0x6040寫入值0x0080(dec:128),將伺服控制器轉變為無障礙狀態:
此時可以看到從站串口終端會停止State Transition2、State Transition7的打印,接著我們再次向控制字0x6040寫入值0x000F(dec:15):
此時伺服控制器由等待打開伺服使能切換到伺服運行的狀態,同時在從站串口中斷打印
StateTransition2、State Transition3、State Transition4,在經過狀態傳輸2 3 4后, CiA402狀態機進入STATE_OPERATION_ENABLED ,此時就可以對控制器進行控制了。
比如說當前是位置模式,通過向Index:0x607A寫入位置數值,我們寫入100000:
此時依次點擊Box 1(Renesas EtherCAT RZ/N2 CoE 2port)->Module 1(csp - axis)->Inputs->Actual Position,查看實際反饋的位置,會發現Index 0x6064對應的value會不斷自增,直到100000停止:
csv速度模式控制
首先需要將控制器模式由默認的csp切換為csv模式,點擊左側導航欄中的Box1(RenesasEtherCAT
RZ/N2 CoE 2port),接著在中間的頁面中找到上方的Slots選擇Axis 0,在右邊預設支持的module修改為 csv ,并點擊‘<’標志:
同時我們也可以觀察左側對應的模塊信息是否更新,并切換為csv模式:
切換好模式后,我們需要重新加載設備,點擊TwinCAT3上方導航欄的TwinCAT->Reload Devices:
然后需要使控制器進入STATE_OPERATION_ENABLED (可操作模式,參考上文),同樣是對控制字依次寫入0x0080(轉變為無障礙狀態)、 0x000F (由等待打開伺服使能切換到伺服運行狀態)。
此時我們查看輸入的狀態字0x6041,如果對應的value值為0x1237,那么就代表當前處于可操作模式(STATE_OPERATION_ENABLED);如果顯示的值為0x1208,那么代表當前status處于Fault,重新設置 control word為0x0080( dec:128),并且在重復上述操作即可。
此時我們便可對Target Velocity值進行寫入實際想要控制的速度值:
同時可在輸入中查看實際設置的速度信息是否一致:
-
通信協議
+關注
關注
28文章
911瀏覽量
40425 -
電機驅動
+關注
關注
60文章
1227瀏覽量
86913 -
ethercat
+關注
關注
18文章
732瀏覽量
38859
發布評論請先 登錄
相關推薦
評論