技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 【正運動】EtherCAT運動控制卡和LabVIEW構(gòu)建智能裝備(三)

【正運動】EtherCAT運動控制卡和LabVIEW構(gòu)建智能裝備(三)

時間:2021-08-11 10:52:47來源:深圳市正運動技術(shù)有限公司

導(dǎo)語:?今天,正運動小助手給大家分享一下EtherCAT運動控制卡之ECI2828的軸參數(shù)說明以及如何使用LabVIEW進(jìn)行EtherCAT總線初始化。

  今天,正運動小助手給大家分享一下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系列運動控制卡支持多達(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系列運動控制卡支持多達(dá)16 軸直線插補、任意圓弧插補、空間圓弧、螺旋插補、電子凸輪、電子齒輪、同步跟隨、虛擬軸和機(jī)械手指令等;采用優(yōu)化的網(wǎng)絡(luò)通訊協(xié)議可以實現(xiàn)實時的運動控制。    ECI2828系列運動運動控制卡支持以太網(wǎng),232 通訊接口和電腦相連,接收電腦的指令運行,可以通過EtherCAT總線和CAN總線去連接各個擴(kuò)展模塊,從而擴(kuò)展輸入輸出點數(shù)或運動軸。

  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)載請注明文章來源。


標(biāo)簽: EtherCAT運動控制控制器

點贊

分享到:

上一篇:英國的物聯(lián)網(wǎng)安全監(jiān)管法規(guī)也...

下一篇:X-NAND技術(shù)有望為QLC閃存帶來...

中國傳動網(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é)任。

網(wǎng)站簡介|會員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號