EtherCAT是自動化控制最好的實(shí)時環(huán)形控制總線之一,本文以最簡單的方式帶你實(shí)際操作ZMC300E的EtherCAT總線,讓你的EtherCAT電機(jī)轉(zhuǎn)起來。
前言
當(dāng)一個鼠標(biāo)插入到電腦時,發(fā)生了什么?
然后,電腦會提示安裝驅(qū)動;
最后,就可以通過鼠標(biāo)來移動光標(biāo)、單擊、雙擊等操作了。
這有問題么?當(dāng)前沒有問題,但作為程序猿,有兩個地方值得深挖一下。1、電腦安裝的驅(qū)動,是什么驅(qū)動?當(dāng)然是鼠標(biāo)驅(qū)動,因為我們接入的是鼠標(biāo)。但電腦是如何知道呢?原來USB規(guī)范中,要求每個USB設(shè)備都要有自己的設(shè)備描述符,電腦通過分析該描述符,才知道接入的是什么設(shè)備。2、為什么能通過鼠標(biāo)來移動光標(biāo)?這是雙方共同合作的結(jié)果。首先鼠標(biāo)提供光標(biāo)位置的數(shù)據(jù),然后電腦收到鼠標(biāo)的數(shù)據(jù)后,將數(shù)據(jù)作用到光標(biāo)的位置上產(chǎn)生移動效果。這需要有個前提,即鼠標(biāo)數(shù)據(jù)的格式,電腦需要先知道其格式,才能解釋這份數(shù)據(jù)。這份數(shù)據(jù)格式的定義,在USB的接口描述符規(guī)范中進(jìn)行了定義。
說了這么多,這和EtherCAT有關(guān)系么?當(dāng)然有,對于EtherCAT或者任意一個總線來說,都需要知道接入設(shè)備的類型及數(shù)據(jù)格式,否則是無法解釋數(shù)據(jù)的,通常有兩種方式:
事先約定:通過事先約定的來確定工作如何進(jìn)行。這就像發(fā)個信息說“我們晚上8點(diǎn)一起看電影吧“一樣簡單,這是小編喜歡它的原因。但這個約定有時就像友誼的小船說翻就翻,對方招呼也不打,只剩你一個人還傻傻地站在的電影院門口;
協(xié)議規(guī)范:定義一套完整的規(guī)范,大家一起遵循它。規(guī)范通常都很多很雜,學(xué)習(xí)成本較高,按規(guī)范開發(fā)就像是你去做的基金定投,短期收益低,但穩(wěn)定可靠。
EhterCAT和USB一樣都采用了協(xié)議規(guī)范這種方式,這里簡單介紹一下EtherCAT的相關(guān)規(guī)范及用途:
ESI(EtherCAT Slave Information):這個是從站提供的標(biāo)準(zhǔn)描述規(guī)范文件,該文件描述了設(shè)備的類型、數(shù)據(jù)格式及一些“特殊癖好”,這就相當(dāng)于USB的設(shè)備描述符+接口描述符。
ENI(EtherCAT Network Information):這個是用于給主站啟動時,加載的標(biāo)準(zhǔn)配置規(guī)范文件,用于初始化所有的從站。這個文件描述了從站的數(shù)量、每個從站的類型及數(shù)據(jù)格式、DC等配置信息。
ESI還理解,為啥還多了個ENI呢?EtherCAT規(guī)范為了滿足工業(yè)控制的復(fù)雜性,ESI中提供了非常強(qiáng)大的可配置功能,相對的使用起來也變得困難了。因此EtherCAT采用靜態(tài)化配置,即由PC使用可視化工具進(jìn)行對應(yīng)的配置工作,配置完成后導(dǎo)出不可變的ENI配置,給到具體的主站設(shè)備來執(zhí)行。所謂靜態(tài)化配置,即EtherCAT網(wǎng)絡(luò)設(shè)備發(fā)生變化時,需要重新執(zhí)行配置工作,相比于USB的全自動配置,功能強(qiáng)大了,但使用也麻煩了。有得必有失,這是EtherCAT的選擇。簡單總結(jié)一下EtherCAT開發(fā),可分三步走:生成ENI,加載ENI,解釋輸入輸出數(shù)據(jù)。
準(zhǔn)備工作
開始EtherCAT測試前,需要準(zhǔn)備以下硬件:一臺電腦、一臺ZMC300E運(yùn)動控制器、一臺EtherCAT伺服驅(qū)動器、2根網(wǎng)線,然后使用網(wǎng)線將設(shè)備按如下示意圖進(jìn)行連接。
生成ENI文件
1. 啟動EtherCAT服務(wù)
打開putty.exe軟件,輸入運(yùn)動控制器NET1的默認(rèn)IP地址:192.168.1.136,賬號和密碼為root。
2.連接設(shè)備
啟動ZlgEtherCatStudio上位機(jī)配置軟件,輸入運(yùn)動控制器NET1的默認(rèn)IP地址:192.168.1.136,點(diǎn)擊回車。
3. 掃描網(wǎng)絡(luò)
通過掃描EtherCAT總線,來識別接入了多少個設(shè)備,并將其網(wǎng)絡(luò)拓?fù)涮砑拥奖镜刂髡緲涔?jié)點(diǎn)。
4.導(dǎo)入ESI
如果該從站無法正確識別,可手動導(dǎo)入從站ESI(EtherCAT Slave Information)文件。
5. 配置FMMU
一般應(yīng)用不需配置從站FMMU/SM,使用從站默認(rèn)配置即可。當(dāng)需要改變輸入輸出變量時,可通過本配置項配置。
6. 生成ENI文件
導(dǎo)出ENI,取名為text_eni。
加載ENI文件1.將上一步生成的test_eni.xml文件,通過WinSCP工具上傳到運(yùn)動控制器的目錄/opt中。
2. 使用控制器加載ENI配置/文件在putty.exe工具,先輸入ctrl+c結(jié)束當(dāng)前主站程序,輸入以下命令啟動主站并加載ENI配置文件:/opt/ecat_test/master /opt/test_eni.xml,看到輸出ethercat start success即代表成功。
解釋輸入輸出數(shù)據(jù)
在CiA402規(guī)范中,定義了伺服類設(shè)備的數(shù)據(jù)格式,這里給大家介紹一下最常用的位置控制模式的數(shù)據(jù)格式。
1.輸出數(shù)據(jù)
Controlword:控制字,16Bit,主要用于控制電機(jī)上下電,抱閘等;
Target Position:目標(biāo)位置,32Bit,用于控制電機(jī)轉(zhuǎn)到指定的位置。
2.輸入數(shù)據(jù)(相對于設(shè)備)
Statusword:控制字,16Bit,主要用于控制電機(jī)上電、下電、抱閘等操作;
Position Actual Value:實(shí)際位置,用于反饋電機(jī)當(dāng)前所在位置。我們要做的就是周期性解釋以上4個數(shù)據(jù),然后執(zhí)行對應(yīng)的操作即可,可參考如下代碼:
電機(jī)測試
在putty.exe工具中,可使用以下命令,對電機(jī)進(jìn)行簡易測試,這些命令是基于CiA402規(guī)范進(jìn)行實(shí)現(xiàn)的。
1. move_test命令
angle表示電機(jī)轉(zhuǎn)動角度,輸入該命令后,電機(jī)會一直重復(fù)執(zhí)行輸出:先正轉(zhuǎn)angle度,然后反轉(zhuǎn)angle度。
輸入move_test 90,仔細(xì)觀察電機(jī)的轉(zhuǎn)動,如果發(fā)現(xiàn)轉(zhuǎn)動的角度比90度小,則說明脈沖當(dāng)量偏小,應(yīng)適當(dāng)增加。推薦10倍住上遞增進(jìn)行測試,該值默認(rèn)為1。
2、units命令unit表示脈沖當(dāng)量,units 1000命令用于將軸0的脈沖當(dāng)量設(shè)置成1000。使用units?查看所有軸的脈沖當(dāng)量。
其它補(bǔ)充
1. 關(guān)于脈沖當(dāng)量
在實(shí)際應(yīng)用中,脈沖當(dāng)量的準(zhǔn)備值,是如何計算出來的?這個應(yīng)根據(jù)實(shí)際的場景及所需要單位來確定,這里給出一個常見的,以角度為單位的脈沖當(dāng)量計算公式。
編碼器的分辨率,可以從伺服驅(qū)動器的手冊得到。
2. 關(guān)于EtherCAT主站
ZMC300E提供的EtherCAT主站,采用的是KPA master主站,商業(yè)授權(quán),其主要特點(diǎn)是高效、穩(wěn)定、支持通過硬件來消除幀抖動(ZMC300E可做到±15us的抖動),我司已購買其版權(quán),用戶可免費(fèi)自由使用。
-
電機(jī)
+關(guān)注
關(guān)注
142文章
9028瀏覽量
145664
發(fā)布評論請先 登錄
相關(guān)推薦
評論