導(dǎo)語(yǔ):
Linux系統(tǒng)是一款完全免費(fèi)開源、基于POSIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng),可以簡(jiǎn)化開發(fā)過(guò)程,使系統(tǒng)具有較強(qiáng)的移植性。
今天我們將結(jié)合輔料貼裝的工藝,講解雷賽控制EMC系列運(yùn)動(dòng)控制器在Linux系統(tǒng)下的編程使用。本次是在ubuntu 18.04系統(tǒng),內(nèi)核版本為2.6.0-5.14.11下,以EMC-E5064總線控制器作為主控,用Qt進(jìn)行開發(fā)講解。
控制器介紹
EMC系列總線控制器作為雷賽開發(fā)的具有自主知識(shí)產(chǎn)權(quán)的獨(dú)立式總線運(yùn)動(dòng)控制器,提供各種主流系統(tǒng)下的軟件開發(fā)包,其中包括Windows/Linux/macOS等多種系統(tǒng)。
EMC系列總線控制器基于主流的EtherCAT擴(kuò)展總線進(jìn)行設(shè)計(jì),最多支持64軸的運(yùn)動(dòng)控制。該系列不僅具備強(qiáng)大的運(yùn)動(dòng)控制功能,支持T型、S型、S plus等多種點(diǎn)位運(yùn)動(dòng)規(guī)劃模式,還具備軌跡前瞻等常見運(yùn)動(dòng)規(guī)劃功能。此外,EMC系列還集成了多種行業(yè)控制算法,如指令緩存、PSO間距比較、二維螺距補(bǔ)償?shù)?,能高度貼合3C、半導(dǎo)體、激光、點(diǎn)膠等行業(yè)常見的工藝需求。
EMC系列總線控制器自帶接口豐富,下圖為EMC系列總線控制器的接口簡(jiǎn)介:
下面將在Linux系統(tǒng)下,進(jìn)行具體的開發(fā)講解。
工程構(gòu)建
新建項(xiàng)目
(1)打開“Qt”軟件,點(diǎn)擊菜單中的“文件”①;點(diǎn)擊“新建文件或項(xiàng)目”②;如下圖所示:
(2)彈出新建項(xiàng)目彈窗,在“項(xiàng)目”中選擇“Application(Qt)”①;選擇支持桌面平臺(tái)的所有圖形用戶的應(yīng)用程序“Qt Widgets Application”②;點(diǎn)擊“choose”③;如下圖所示:
此后按照提示進(jìn)行選擇設(shè)置完成項(xiàng)目新建,新建好的項(xiàng)目如下圖:
添加頭文件
(1)進(jìn)入Qt程序編輯界面中,鼠標(biāo)右鍵單擊“DMC-Demo”項(xiàng)目文件夾下的“Headers”①;點(diǎn)擊“添加現(xiàn)有文件”②,如下圖所示:
(2)等待加載完成后,在“項(xiàng)目”的“Headers”下可以看到添加的“LTDMC.h”頭文件;雙擊進(jìn)入后可以看到控制器定義的函數(shù),如下圖所示:
添加函數(shù)庫(kù)
下面以添加64位函數(shù)庫(kù)為例詳細(xì)介紹如何添加函數(shù)庫(kù):
(1)進(jìn)入Qt程序編輯界面中,鼠標(biāo)右鍵單擊“項(xiàng)目”下的“DMC-Demo”①;點(diǎn)擊“添加庫(kù)”②,如下圖所示:
(2)彈出“添加庫(kù)”彈窗,進(jìn)入“Type”庫(kù)類型中①;勾選“外部庫(kù)”②;點(diǎn)擊“下一步”③,如下圖所示:
(3)進(jìn)入“匯總”中,確認(rèn)信息無(wú)誤①;點(diǎn)擊“完成”②;最后點(diǎn)擊編譯按鍵進(jìn)行程序的編譯,如下圖所示。至此工程構(gòu)建就已經(jīng)完成了。
輔料貼裝主要工藝流程介紹
輔料貼裝多以多軸點(diǎn)到點(diǎn)運(yùn)動(dòng)進(jìn)行位置控制,通過(guò)EtherCAT總線操作對(duì)貼合的壓力進(jìn)行控制和回讀,從而保證相應(yīng)的貼裝效果;下面將在Linux下,以Qt編程語(yǔ)言對(duì)輔料貼裝工藝涉及到的點(diǎn)位運(yùn)動(dòng)、EtherCAT總線操作等主要功能進(jìn)行編程使用講解。
EMC控制器在Linux下的編程詳解
01、添加控制器命名空間
打開Qt程序,雙擊“DMC-Demo”項(xiàng)目文件夾下的“Headers”下的“mainwindow.h”進(jìn)入Qt程序編輯界面;在代碼文件開頭處添加代碼“#include "LTDMC.h" ;如下圖所示:
02、EMC控制器初始化模塊
初始化函數(shù)介紹及具體初始化代碼如下:
short dmc_board_init_eth(WORD CardNo,char* ipaddr)
功 能:控制器初始化函數(shù),分配系統(tǒng)資源
參 數(shù):CardNo 控制器鏈接號(hào)
Ipaddr 鏈接字符串,對(duì)應(yīng)控制器的IP地址
返回值:錯(cuò)誤代碼
備注:返回0表示正常初始化,非零表示初始化存在異常;
初始化實(shí)現(xiàn)代碼如下:
03、定長(zhǎng)及連續(xù)運(yùn)動(dòng)模塊
選擇“DMC-Demo”項(xiàng)目文件夾下的“Forms”,雙擊“mainwindow.ui”,進(jìn)入U(xiǎn)I編輯界面;在左側(cè)工具欄中選擇控件進(jìn)行UI編輯,如下圖所示:
最后效果及主要代碼如下圖所示:
04、總線操作模塊
總線操作主要支持SDO和擴(kuò)展PDO兩種方式,如下圖:
SDO讀取、寫入實(shí)現(xiàn)代碼如下:
擴(kuò)展PDO讀取、寫入實(shí)現(xiàn)代碼如下:
05、獲取狀態(tài)模塊
(1)首先要構(gòu)造一個(gè)定時(shí)器,并且聲明定時(shí)器的槽函數(shù);寫入“#include”包含QTimer的頭文件”①;寫入“QTimer *timer;”②;寫入“void slot_TimeEvent();”③;如下圖所示:
(2)雙擊“DMC-Demo”項(xiàng)目文件夾下的“Sources”下的“mainwindow.cpp”進(jìn)入Qt程序編輯界面①;在程序初始化中創(chuàng)建定時(shí)器;設(shè)置定時(shí)周期;當(dāng)達(dá)到超時(shí)時(shí)間,則發(fā)射信號(hào),執(zhí)行定時(shí)器槽函數(shù);開啟定時(shí)器,1ms觸發(fā)定時(shí)器②,如下圖所示:
(3)寫入定義定時(shí)器槽函數(shù)①;在定時(shí)器槽函數(shù)中讀取信息;如下圖所示:
06、綜合例程展示
輔料貼裝設(shè)備圖:
EMC-E3000/5000系列總線控制器都已支持Linux系統(tǒng)開發(fā),除了輔料貼裝的場(chǎng)景,EMC系列總線控制器還廣泛應(yīng)用于3C、半導(dǎo)體、光伏等各大行業(yè),若有需要相關(guān)資料可聯(lián)系我們!
-END-