時間:2021-08-11 10:52:47來源:深圳市正運動技術(shù)有限公司
今天,正運動小助手給大家分享一下EtherCAT運動控制卡之ECI2828的軸參數(shù)說明以及如何使用LabVIEW進(jìn)行EtherCAT總線初始化。
一ECI2828硬件介紹
ECI2828系列運動控制卡支持多達(dá)16 軸直線插補、任意圓弧插補、空間圓弧、螺旋插補、電子凸輪、電子齒輪、同步跟隨、虛擬軸和機(jī)械手指令等;采用優(yōu)化的網(wǎng)絡(luò)通訊協(xié)議可以實現(xiàn)實時的運動控制。
ECI2828系列運動運動控制卡支持以太網(wǎng),232 通訊接口和電腦相連,接收電腦的指令運行,可以通過EtherCAT總線和CAN總線去連接各個擴(kuò)展模塊,從而擴(kuò)展輸入輸出點數(shù)或運動軸。
ECI2828系列運動控制卡的應(yīng)用程序可以使用 VC、VB、VS、C++以及C#等軟件來開發(fā),程序運行時需要動態(tài)庫 zmotion.dll。調(diào)試時可以把ZDevelop軟件同時連接到控制器,從而方便調(diào)試,方便觀察。
ECI2828系列典型連接配置圖
二、LabVIEW基本軸參數(shù)介紹
ATYPE:軸功能類型設(shè)置,只能設(shè)置為軸具備的特性(軸特性可查詢硬件手冊或使 用 ZDevelop 軟件連接上控制器以后查看控制器狀態(tài))。
UNITS:脈沖當(dāng)量,指定每單位發(fā)送的脈沖數(shù),支持 5 位小數(shù)精度。
ACCEL:軸加速度,單位為 units/s/s。當(dāng)多軸運動時,插補運動的加速度為主軸加速度。建議運動前設(shè)置好加速度和減速度,運動中不要修改,運動中調(diào)整會導(dǎo)致速度曲線變化。
DECEL:軸減速度,單位為 units/s/s。當(dāng)多軸運動時,作為插補運動的減速度。當(dāng)設(shè)置為0 時,自動等于加速度ACCEL值,進(jìn)行對稱的加減速。建議運動前設(shè)置好加速度和減速度,運動中不要修改,運動中調(diào)整會導(dǎo)致速度曲線變化。
SPEED:軸速度,單位為 units/s。當(dāng)多軸運動時,作為插補運動的速度。SPEED 修改后,立刻生效,可以實現(xiàn)動態(tài)變速,但是改變瞬間會抖。希望平滑變速請使用 SPEED_RATIO 指令。
以上是控制軸運動的基本參數(shù),在硬件連接沒問題的情況下,只要設(shè)置好這5個參數(shù),就可以控制伺服或步進(jìn)電機(jī)運動。
三、總線初始化文件準(zhǔn)備
總線初始化文件一般可以使用正運動的開發(fā)環(huán)境ZDevelop來編輯。
我們可以直接打開“.zpj”項目,該項目中就包含了“ECAT初始化.bas”文件。或者直接打開“ECAT初始化.bas”文件來修改初始化程序。
以下是初始化文件的具體內(nèi)容:
'*******************************************************ECAT總線初始化'''''''''global CONST BUS_TYPE = 0 '總線類型。用于上位機(jī)區(qū)分當(dāng)前模式global CONST MAX_AXISNUM = 16 '最大軸數(shù)global CONST Bus_Slot = 0 '槽位號0global CONST Bus_AxisStart = 0 '總線軸起始軸號global Bus_InitStatus '總線初始化完成狀態(tài)Bus_InitStatus = -1global Bus_TotalAxisnum '檢查掃描的總軸數(shù)delay(3000) '延時3S等待驅(qū)動器上電'**********************初始化ECAT總線 Ecat_Init()end
global sub Ecat_Init() local temp_axis for i=0 to MAX_AXISNUM - 1 '初始化還原軸類型 AXIS_ENABLE(i) = 0 atype(i)=0 next Bus_InitStatus = -1 Bus_TotalAxisnum = 0 SLOT_STOP(Bus_Slot) delay(200) slot_scan(Bus_Slot) '開始掃描 if return then ?"總線掃描成功","連接設(shè)備數(shù):"NODE_COUNT(Bus_Slot) ?"開始映射軸號" for i=0 to NODE_COUNT(Bus_Slot)-1 '遍歷總線下所有從站節(jié)點 if NODE_AXIS_COUNT(Bus_Slot,i) <>0 then '判斷當(dāng)前節(jié)點是否有電機(jī) for j=0 to NODE_AXIS_COUNT(Bus_Slot,i)-1 temp_axis = Bus_AxisStart +Bus_TotalAxisnum base(temp_axis) AXIS_ADDRESS=Bus_TotalAxisnum+1 '映射軸號 ATYPE=65 '設(shè)置控制模式 65-位置 66-速度 67-轉(zhuǎn)矩 DRIVE_PROFILE= 0 '設(shè)置PROFILE功能 disable_group(temp_axis) '每軸單獨分組 ' DRIVE_IO = 128 + (temp_axis)*16 '映射驅(qū)動器上的IO狀態(tài) ' REV_IN = 128 + (temp_axis)*16 ' FWD_IN = 129 + (temp_axis)*16 ' DATUM_IN = 130 + (temp_axis)*16 ' INVERT_IN(128 + (temp_axis)*16,ON) ' INVERT_IN(129 + (temp_axis)*16,ON) ' INVERT_IN(130 + (temp_axis)*16,ON) Bus_TotalAxisnum=Bus_TotalAxisnum+1 '總軸數(shù)+1 next endif next ?"軸號映射完成","連接總軸數(shù):"Bus_TotalAxisnum wa 2000 SLOT_START(Bus_Slot) '啟動總線 if return then ?"總線開啟成功" ?"開始清除驅(qū)動器錯誤(根據(jù)驅(qū)動器數(shù)據(jù)字典設(shè)置)" for i= Bus_AxisStart to Bus_AxisStart + Bus_TotalAxisnum - 1 DRIVE_CONTROLWORD(i)=128 '根據(jù)驅(qū)動器數(shù)據(jù)字典 wa 100 DRIVE_CONTROLWORD(i)=6 wa 100 DRIVE_CONTROLWORD(i)=15 wa 100 next ?"驅(qū)動器錯誤清除完成" wa 100 ?"清除控制器錯誤" datum(0) DRIVE_CLEAR(0) ?"控制器錯誤清除完成" wa 100 ?"軸使能準(zhǔn)備" for i= Bus_AxisStart to Bus_AxisStart + Bus_TotalAxisnum - 1 base(i) AXIS_ENABLE=1 next wdog=1 '使能總開關(guān) Bus_InitStatus = 1 ?"軸使能完成" else ?"總線開啟失敗" Bus_InitStatus = 0 endif else ?"總線掃描失敗" Bus_InitStatus = 0 endifend sub
四、LabVIEW編程介紹
在進(jìn)入具體程序介紹前,我們先來大概了解一下LabVIEW究竟是怎么編程的。
1.LabVIEW編程結(jié)構(gòu) -- while循環(huán)結(jié)構(gòu)
While循環(huán)結(jié)構(gòu)顧名思義,就是類似于C語言中的while,或是正運動開發(fā)環(huán)境ZDevelop中使用的while循環(huán)一般,來對程序進(jìn)行循環(huán)掃描。我們可以通過BOOL類型輸入來控制while循環(huán)是否結(jié)束,以及將 !接入顯示控件來顯示while循環(huán)次數(shù)。
2.LabVIEW編程結(jié)構(gòu)--事件結(jié)構(gòu)
事件結(jié)構(gòu)是我們進(jìn)行人機(jī)交互的主要結(jié)構(gòu),在事件結(jié)構(gòu)中,我們可以自由添加外部控件的觸發(fā)事件。
例如:在前面板處,我們添加了一個“以太網(wǎng)連接”的控件,當(dāng)我們想在這個控件按下時,執(zhí)行對應(yīng)的程序,我們就可以在事件結(jié)構(gòu)中添加這個控件的事件,以此來達(dá)到我們的目的。
第一步控制器連接
第二步添加事件分支
第三步編輯事件
第四步添加以太網(wǎng)連接控件
第五步按下“以太網(wǎng)連接”控件
此時當(dāng)我們按下“以太網(wǎng)連接”控件后,可以發(fā)現(xiàn)彈出一個消息框,消息框顯示“鼠標(biāo)按下”,這個正是我們所要顯示的字符常量。
3. LabVIEW編程結(jié)構(gòu) -- 條件結(jié)構(gòu)。
此結(jié)構(gòu)類似于C語言中的if語句,當(dāng) 條件結(jié)構(gòu)中的?輸入為真時,執(zhí)行“真”內(nèi)程序,當(dāng)條件結(jié)構(gòu)的?輸入為假時,執(zhí)行“假”內(nèi)程序。
4. LabVIEW編程結(jié)構(gòu) -- 程序運行順序。
在LabVIEW中一般是最后添加的函數(shù)先執(zhí)行。
所以,為了進(jìn)行先后順序執(zhí)行,我們可以使用順序結(jié)構(gòu)來進(jìn)行分類。
第一步
第二步
第三步
五LabVIEW初始化EtherCAT總線
1.下載初始化文件函數(shù)。
現(xiàn)在我們來介紹一下,下載“Bas文件”到控制器里所用到的函數(shù)。
2.LabVIEW中函數(shù)使用實例。
下面我們以例程8-總線控制運動例程來講解一下ZAux_BasDown函數(shù)使用方式。
(1)首先,我們在事件結(jié)構(gòu)中添加了“【下載Bas文件】值改變”鼠標(biāo)按下事件。
也就是當(dāng)我們控件界面的“下載Bas文件”按鍵按下時觸發(fā)該事件。
(2)接下來是滿足“條件結(jié)構(gòu)”中的條件,即句柄不為0時,執(zhí)行條件結(jié)構(gòu)中“真”程序。
在“條件結(jié)構(gòu)”中我們看到還有一個“文件對話框”的控件,該控件可以為我們打開一個用于選擇下載文件的對話框。剩下的就是選擇我們需要初始化的總線文件即可。
(3)初始化完成后,我們可以看見軸狀態(tài)為65,這代表我們使用的是csp位置模式。
3.LabVIEW中軸狀態(tài)顯示。
(1)軸狀態(tài)欄因為是實時更新的,所以需要我們循環(huán)地訪問控制器里的軸參數(shù)。這里我們可以在“事件結(jié)構(gòu)”中的“超時”處寫入我們的讀取軸參數(shù)程序?!俺瑫r”事件是在其他事件未觸發(fā)時,“事件結(jié)構(gòu)”中默認(rèn)執(zhí)行的事件。
這里我們可以看到,此處“超時”事件中有兩個“條件結(jié)構(gòu)”一個是軸參數(shù)讀取“條件結(jié)構(gòu)”。在軸參數(shù)讀取的條件結(jié)構(gòu)中,當(dāng)連接句柄不為0時,軸參數(shù)讀取的“條件結(jié)構(gòu)”便處于執(zhí)行狀態(tài),也就是只要我們一旦連接上了控制器,軸參數(shù)便一直處于實時讀取狀態(tài)。
另一個“條件結(jié)構(gòu)”是總線初始化顯示程序,當(dāng)“文件下載標(biāo)志”、“初始化狀態(tài)”、“連接句柄”三個變量有一個不滿足要求時,便重新讀取一下總線節(jié)點、初始化文件里的“Bus_InitStatus”初始化完成標(biāo)志、“Bus_TotalAxisnum”總線總軸數(shù)。
4.LabVIEW中EtherCAT交互。
要了解EtherCAT總線的SDO通訊的程序?qū)崿F(xiàn),我們可以在“事件結(jié)構(gòu)”中看一下“設(shè)置”和“讀取”兩個按鍵里的程序。
(1)“設(shè)置”事件程序。
我們可以看見“設(shè)置”事件中僅調(diào)用了一個“ZAux_BusCmd_SDOWrite”函數(shù)就可以實現(xiàn)。
(2)“讀取”事件程序。
讀取也只需要調(diào)用“ZAux_BusCmd_SDORead”函數(shù)即可實現(xiàn)。
六調(diào)試與監(jiān)控
1.因為,ECI2828是通過TCP/IP與PC建立連接的,這意味著我們可以建立多條連接。因此,在使用啟動LabVIEW程序時,我們還可以使用正運動開發(fā)環(huán)境ZDevelop來監(jiān)控當(dāng)前控制器運行狀態(tài)。
通過打印信息,我們可以看見總線初始化已成功。
2.示波器使用。
連接“ZDevelop”軟件通過軟件右側(cè)的軸參數(shù)進(jìn)行控制器狀態(tài)監(jiān)控,也可以點擊“視圖”→“示波器”打開示波器對軸運動情況進(jìn)行監(jiān)控。
示波器可以實現(xiàn)實時監(jiān)控當(dāng)前的命令位置和反饋位置。
3.調(diào)試視頻。
本次,正運動技術(shù)EtherCAT運動控制卡和LabVIEW構(gòu)建智能裝備(三),就分享到這里。
更多精彩內(nèi)容請關(guān)注“正運動小助手”公眾號,需要相關(guān)開發(fā)環(huán)境與例程代碼,請咨詢正運動技術(shù)銷售工程師:400-089-8936。
本文由正運動技術(shù)原創(chuàng),歡迎大家轉(zhuǎn)載,共同學(xué)習(xí),一起提高中國智能制造水平。文章版權(quán)歸正運動技術(shù)所有,如有轉(zhuǎn)載請注明文章來源。
中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.treenowplaneincome.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>2024-09-13
2024-09-09
2024-09-06
英偉達(dá)Blackwell可支持10萬億參數(shù)模型AI...
2024-09-05
2024-08-23
2024-08-22
推薦專題
更多>