ZMC408CE 高性能總線型運(yùn)動(dòng)控制器
ZMC408CE是正運(yùn)動(dòng)推出的一款多軸高性能EtherCAT總線運(yùn)動(dòng)控制器,具有EtherCAT、EtherNET、RS232、CAN和U盤等通訊接口,ZMC系列運(yùn)動(dòng)控制器可應(yīng)用于各種需要脫機(jī)或聯(lián)機(jī)運(yùn)行的場(chǎng)合。
ZMC408CE支持PLC、Basic、HMI組態(tài)三種編程方式。PC上位機(jī)API編程支持C#、C++、LabVIEW、Matlab、Qt、Linux、VB.Net、Python等接口。
ZMC408CE硬件功能特性:
1.支持8軸運(yùn)動(dòng)控制(脈沖+EtherCAT總線),EtherCAT同步周期可快至125us;
2.24路通用輸入、16路通用輸出,模擬量AD/DA各兩路;
3.8路10MHz高速差分脈沖輸出,總線軸、脈沖軸可混合插補(bǔ);
4.高性能處理器,提升運(yùn)算速度、響應(yīng)時(shí)間和掃描周期等;
5.一維/二維/三維、多通道視覺飛拍,高速高精;
6.位置同步輸出PSO,連續(xù)軌跡加工中對(duì)精密點(diǎn)膠膠量控制和激光能量控制等;
7.多軸同步控制,多坐標(biāo)系獨(dú)立控制等;
8.直線插補(bǔ)、任意空間圓弧插補(bǔ)、螺旋插補(bǔ)、樣條插補(bǔ)等;
9.應(yīng)用靈活,可PC上位機(jī)開發(fā),也可脫機(jī)獨(dú)立運(yùn)行;
ZMC408CE視頻介紹,點(diǎn)擊→“高性能EtherCAT總線運(yùn)動(dòng)控制器,帶你玩轉(zhuǎn)“8通道獨(dú)立PSO”應(yīng)用場(chǎng)景”查看。
更多關(guān)于ZMC408CE的詳情介紹,點(diǎn)擊“推薦|8通道PSO的高性能EtherCAT總線運(yùn)動(dòng)控制器”查看。
PCIE464M PCIe EtherCAT總線運(yùn)動(dòng)控制卡
PCIE464M是一款基于PCIe的PCI Express的EtherCAT總線運(yùn)動(dòng)控制卡,具有多項(xiàng)實(shí)時(shí)和高精度運(yùn)動(dòng)控制控制功能。
PCIE464M運(yùn)動(dòng)控制卡上自帶16進(jìn)16出,第三方圖像處理工控機(jī)或PC無(wú)需額外配置IO數(shù)據(jù)采集卡和PLC,即可實(shí)現(xiàn)IPC形態(tài)的機(jī)器視覺運(yùn)動(dòng)控制一體機(jī),簡(jiǎn)化硬件架構(gòu),節(jié)省成本,軟硬件一體化。
PCIE464M硬件功能特性:
1.可選6-64軸運(yùn)動(dòng)控制,支持EtherCAT總線/脈沖/步進(jìn)伺服驅(qū)動(dòng)器;
2.聯(lián)動(dòng)軸數(shù)最高可達(dá)16軸,運(yùn)動(dòng)周期最小為100μs;
3.標(biāo)配16進(jìn)16出,其中4路高速鎖存輸入、4路高速PWM和12路高速硬件比較輸出PSO;
4.支持PWM輸出、1D/2D/3D PSO硬件位置比較輸出、視覺飛拍、連續(xù)軌跡插補(bǔ)等;
5.支持30+機(jī)械手模型正逆解模型算法,比如SCARA、Delta、UVW、4軸/5軸 RTCP...;
6.支持掉電存儲(chǔ)和掉電中斷,多重加密,提供程序更安全機(jī)制;
7.8路單端脈沖軸、4路單端編碼器軸;
8.具有一維、二維螺距補(bǔ)償控制,實(shí)現(xiàn)更高的加工精度;
PCIE464M視頻介紹,點(diǎn)擊→“超高速PCle EtherCAT控制卡PCIE464M,即刻提升高速高精智能裝備生產(chǎn)力!”查看。
更多關(guān)于PCIE464M的詳情介紹,點(diǎn)擊“PCIE464M-高速高精,超高速PCIe EthrtCAT實(shí)時(shí)運(yùn)動(dòng)控制卡”查看。
ECI2A18B 高性價(jià)比10軸運(yùn)動(dòng)控制卡
ECI2A18B是正運(yùn)動(dòng)推出的一款高性價(jià)比10軸脈沖型、模塊化的網(wǎng)絡(luò)型運(yùn)動(dòng)控制卡,采用優(yōu)化的網(wǎng)絡(luò)通訊協(xié)議可以實(shí)現(xiàn)實(shí)時(shí)的運(yùn)動(dòng)控制,同時(shí)支持多種通信協(xié)議,方便與其他工業(yè)控制設(shè)備連接和集成。安裝配置相對(duì)便捷,適合于模塊化和靈活性要求較高的控制系統(tǒng)。
ECI2A18B控制卡最大可擴(kuò)展至12脈沖軸,支持8路高速輸入和4路高速輸出,集成豐富的運(yùn)動(dòng)控制功能,包含多軸點(diǎn)位運(yùn)動(dòng)、電子凸輪,直線插補(bǔ),圓弧插補(bǔ),連續(xù)插補(bǔ)運(yùn)動(dòng)等,滿足多樣化的工業(yè)應(yīng)用需求。
ECI2A18B硬件功能特性:
1.支持6路差分脈沖軸+4路單端脈沖軸運(yùn)動(dòng)控制;
2.支持1路專用的手輪輸入接口;
3.差分脈沖軸最大輸出脈沖頻率10MHz;
4.標(biāo)配24+12進(jìn)16+6出,其中支持4路高速鎖存,4路高速PWM,2路高速硬件比較輸出PSO(可選支持HW2功能);
5.可支持RTSys+其他高級(jí)上位機(jī)編程語(yǔ)言的混合編程支持;
6.支持RTBasic多任務(wù)編程;
ECI2A18B視頻介紹,點(diǎn)擊→“【加量不加價(jià)】高性價(jià)比十軸脈沖運(yùn)動(dòng)控制卡ECI2A18B 讓您的設(shè)備在自動(dòng)化行業(yè)內(nèi)卷中脫穎而出!”查看。
更多關(guān)于ECI2A18B的詳情介紹,點(diǎn)擊“【加量不加價(jià)】正運(yùn)動(dòng)網(wǎng)絡(luò)型運(yùn)動(dòng)控制卡ECI2618B/ECI2A18B”查看。
一、RTSys示波器介紹
正運(yùn)動(dòng)RTSys軟件提供了示波器采集與分析工具,通過該工具可以把系統(tǒng)內(nèi)部的系統(tǒng)變量與數(shù)據(jù)轉(zhuǎn)換成圖形顯示,便于研究各種信號(hào)的變化趨勢(shì)與數(shù)據(jù)測(cè)量的過程。
示波器利用控制器內(nèi)部處理的數(shù)據(jù),把數(shù)據(jù)顯示成波形,利用示波器可以顯示各種不同的信號(hào)。
詳情點(diǎn)擊→運(yùn)動(dòng)控制看的更清楚細(xì)致!RTSys示波器功能簡(jiǎn)介。
二、QT程序開發(fā)流程
1.在Qt Creator菜單選擇“文件”→“新建文件或項(xiàng)目”,打開創(chuàng)建項(xiàng)目向?qū)?。選擇Application項(xiàng)目集,創(chuàng)建Qt Widgets Application項(xiàng)目,設(shè)置項(xiàng)目名稱和保存位置。
2.導(dǎo)入廠家提供的相關(guān)函數(shù)庫(kù)及頭文件。
(1)將zmotion.h和zauxdll2.h頭文件、zauxdll.dll和zmotion.dll以及zmotion.lib和zauxdll.lib庫(kù)復(fù)制到新建的項(xiàng)目文件夾中。
(2)在Qt Creator選擇新建的Qt項(xiàng)目右擊選擇“添加庫(kù)...”→“外部庫(kù)”點(diǎn)擊下一步,將剛才復(fù)制到項(xiàng)目文件夾上的zmotion.lib和zauxdll.lib庫(kù)文件導(dǎo)入到項(xiàng)目中。
3.在Qt Creator下右擊新建的Qt項(xiàng)目,選擇“添加現(xiàn)有文件...”,將之前復(fù)制到項(xiàng)目文件下的頭文件zmotion.h和zauxdll2.h添加到項(xiàng)目中。
三、相關(guān)指令介紹
1.相關(guān)BASIC指令介紹
(1)SCOPE-- 數(shù)據(jù)采樣
(2)SCOPE_POS -- 采樣點(diǎn)數(shù)
(3)TRIGGER -- 觸發(fā)示波器
使用說(shuō)明:
先使用SCOPE指令確定需要采集的數(shù)據(jù)、采集周期、數(shù)據(jù)存放位置及使能。(例如:SCOPE(ON,1,0,8000,MPOS(0),MSPEED(0),MPOS(1),MSPEED(1)),表示每間隔1個(gè)系統(tǒng)周期采集一次MPOS(0)、MSPEED(0)、MPOS(1)、MSPEED(1)的數(shù)據(jù)分別存儲(chǔ)至被平均分割的TABLE(0)至TABLE(7999)中,如MPOS(0) → TABLE(0-1999)、MSPEED(0)→TABLE(2000-3999)、MPOS(1)→TABLE(4000-5999)、MSPEED(1)→TABLE(6000-7999)中),后續(xù)需要使用TRIGGER開始數(shù)據(jù)的抓?。ㄈ绻枰褂眠B續(xù)采集需要帶參數(shù)1如TRIGGER(1));
根據(jù)SCOPE_POS返回的值確定當(dāng)前最新的數(shù)據(jù)保存至TABLE的何處(如SCOPE_POS的值為500表示最新的數(shù)據(jù)存放至TABLE(499)、TABLE(2499)、TABLE(4499)、TABLE(6499)中),根據(jù)上次與此次的最新數(shù)據(jù)存放位置即可確定此次需要加入至波形曲線中的內(nèi)容,最后使用SCOPE(OFF)關(guān)閉數(shù)據(jù)采集。
RTSys示波器波形展示:
QT例程示波器波形展示:
2.上位機(jī)在線命令接口的使用
由于我們的函數(shù)庫(kù)中暫時(shí)沒有對(duì)上述的BASIC指令進(jìn)行封裝,所以需要通過在線命令這個(gè)萬(wàn)能的API接口進(jìn)行上述BASIC指令的下發(fā),下面給大家介紹一下ZAux_DirectCommand和ZAux_Execute這兩個(gè)在線命令的API接口的使用。
通過在線命令下發(fā)BASIC指令的API接口有ZAux_DirectCommand(直接方式)和ZAux_Execute(緩沖方式)這兩種。
①直接方式:該方式由PC直接下發(fā)BASIC指令至控制器,下發(fā)即執(zhí)行,響應(yīng)速度塊,雖有部分BASIC指令不支持但仍然推薦使用。
②緩沖方式:該方式需要將BASIC指令放入緩沖列中等待執(zhí)行,響應(yīng)速度較慢但可以執(zhí)行所有命令,只推薦在BASIC指令無(wú)法通過直接方式下發(fā)時(shí)使用。
例如:設(shè)置軸速度函數(shù)ZAux_Direct_SetSpeed(ZMC_HANDLE handle, int iaxis, float fValue)的源碼如下:
/************************************************************* Description://設(shè)置軸速度,單位為units/s,當(dāng)多軸運(yùn)動(dòng)時(shí),作為插補(bǔ)運(yùn)動(dòng)的速度 Input://卡鏈接handle Output:// Return://錯(cuò)誤碼 *************************************************************/ int32__stdcallZAux_Direct_SetSpeed(ZMC_HANDLEhandle,intiaxis,floatfValue) { inti; int32iresult; charcmdbuff[2048]; charcmdbuffAck[2048]; if(iaxis>MAX_AXIS_AUX) { returnERR_AUX_PARAERR; } //生成命令 sprintf(cmdbuff,"SPEED(%d)=%f",iaxis,fValue); //調(diào)用命令執(zhí)行函數(shù) returnZAux_DirectCommand(handle,cmdbuff,cmdbuffAck,2048); }
四、例程原理及實(shí)現(xiàn)過程
1.連接控制器
代碼說(shuō)明:讀取用戶設(shè)置的IP地址并通過函數(shù)接口ZAux_OpenEth來(lái)連接控制器。
voidMainWindow::on_ip_link_btn_clicked() { intret; char*tmp_buff=newchar[20]; QStringstr; QStringstr_title; //獲取輸入的控制器IP地址 str=ui->ip_list->currentText(); QByteArrayba=str.toLatin1(); tmp_buff=ba.data(); //判斷控制器句柄是否為空,不為空則斷開連接并置句柄為空 if(nullptr!=g_handle) { //斷開控制器的連接 ZAux_Close(g_handle); g_handle=nullptr; setWindowTitle(QString::fromLocal8Bit("示波器")); } //連接控制器 ret=ZAux_OpenEth(tmp_buff,&g_handle); if(0!=ret) { QMessageBox::warning(this,QString::fromLocal8Bit("提示"),QString::fromLocal8Bit("連接失敗")); } else { QMessageBox::warning(this,QString::fromLocal8Bit("提示"),QString::fromLocal8Bit("連接成功")); str_title=windowTitle()+tmp_buff; setWindowTitle(str_title); } }
2.開啟示波器
代碼說(shuō)明:讀取用戶設(shè)置的示波器參數(shù),通過字符串拼接的方式設(shè)置scope指令的參數(shù),trigger(1)指令開啟連續(xù)采集,由于ZAux_DirectCommand暫時(shí)不支持這兩個(gè)指令的下發(fā),所以通過ZAux_Execute下發(fā)拼接好的basic指令。
voidMainWindow::on_start_scope_btn_clicked() { intret; QStringcmd; QStringtemp; chartmp_commandback_buff[20480]={0}; if(nullptr==g_handle) { QMessageBox::warning(this,QString::fromLocal8Bit("提示"),QString::fromLocal8Bit("請(qǐng)先連接控制器")); qDebug()channel_num->currentText().toUInt(); current_acqu_cycle=ui->acquisition_cycle->text().toUInt(); current_time_period=ui->time_period->currentText().toUInt(); /*拼接示波器所需的參數(shù)SCOPE(enable,period,table_start,table_stop,p0[,p1[,p2[,p3[,p4[,p5[,p6[,p7]]]]]]]) enable:使能與否 period:采集周期間隔 table_start:采樣數(shù)據(jù)存儲(chǔ)在TABLE的起始位置 table_stop:TABLE結(jié)束位置,減去起始位置為采樣個(gè)數(shù) p0~p7:采樣數(shù)據(jù)類型,等分存儲(chǔ)在TABLE范圍 拼接采集周期間隔及采樣的起始終止TABLE地址*/ cmd=QString("scope(1,%1,0,%2,").arg(current_time_period).arg(current_acqu_cycle*channel_num-1); //拼接需采集的數(shù)據(jù)類型 for(inti=0;i?channel_num;?i++) ????{ ????????QWidget?*widgetSex=ui-?>tableWidget->cellWidget(i,2); QComboBox*sex=(QComboBox*)widgetSex; cmd.append(sex->currentText()); cmd.append("("); cmd.append(ui->tableWidget->item(i,1)->text()); cmd.append(")"); cmd.append(","); } cmd.chop(1); cmd.append(")"); cmd.append("trigger(1)"); //清除波形圖中的數(shù)據(jù) for(inti=0;i?4;?i++) ????{ ????????ui-?>customPlot->graph(i)->data().data()->clear(); ui->customPlot->xAxis->setRange(0,5*customplot_x_scale); } //重繪波形圖 ui->customPlot->replot(); //通過ZAux_Execute函數(shù)接口下發(fā)上面拼接的BASIC指令 ret=ZAux_Execute(g_handle,QByteArray(cmd.toLatin1()).data(),tmp_commandback_buff,20480); if(ret==0) { //把波形圖參數(shù)信息傳遞給獲取table數(shù)據(jù)至波形圖的子線程中 emitemit_para_int(current_acqu_cycle,current_time_period,channel_num,customplot_x_scale); //如果示波器已開啟則先停止獲取table數(shù)據(jù)至波形圖的子線程再開啟線程 if(scope_status==1) { emitGetDataStop(); GetDataThread.wait(); GetDataThread.start(); } else { //開啟獲取table數(shù)據(jù)至波形圖的子線程 GetDataThread.start(); scope_status=1; } } else { qDebug()
3.讀取對(duì)應(yīng)table中的數(shù)據(jù)并顯示
代碼說(shuō)明:根據(jù)上次的TABLE數(shù)據(jù)更新位置與此次使用SCOPE_POS返回的最新數(shù)據(jù)存放的TABLE位置確定此次使用ZAux_Direct_GetTable獲取控制器中TABLE寄存器中的數(shù)據(jù)位置,將從TABLE寄存器中獲取到的數(shù)據(jù)加載進(jìn)顯示的曲線,最后重新繪制圖形。
voidGetData::SetData(intType,intNum) { intret; //Type為0則表示當(dāng)前采樣至的table位置比上次的要大,只需采集兩者之間的table數(shù)據(jù)即可 if(Type==0) { //獲取table中的數(shù)據(jù) ret=ZAux_Direct_GetTable(g_handle,start_pos+current_acqu_cycle*Num,total_pos,NewData); if(ret==0) { //向波形曲線中寫入從table中獲取的數(shù)據(jù) for(inti=0;i?total_pos;?i++) ????????????{ ????????????????CustomPlot-?>graph(Num)->addData(CustomPlot->graph(Num)->dataCount()*(current_time_period/1000.0),NewData[i]); } } else{ qDebug()"get?table?fail,?error?code?is?"?graph(Num)->addData(CustomPlot->graph(Num)->dataCount()*(current_time_period/1000.0),NewData[i]); } } else{ qDebug()"get?table?fail,?error?code?is?"?graph(Num)->addData(CustomPlot->graph(Num)->dataCount()*(current_time_period/1000.0),NewData[i]); } } else{ qDebug()"get?table?fail,?error?code?is?"?
4.例程使用與效果展示
(1)連接控制器,先通過下拉框選擇控制器IP地址或直接輸入IP地址,之后連接即可。
(2)設(shè)置參數(shù)開啟示波器,先設(shè)置示波器參數(shù)再開啟示波器。
(3)停止示波器,可通過滾動(dòng)條調(diào)整顯示位置,先停止示波器再通過滾動(dòng)條調(diào)整顯示位置,可修改波形參數(shù)使波形顯示效果更好。
5.教學(xué)視頻講解請(qǐng)點(diǎn)擊→“EtherCAT運(yùn)動(dòng)控制器實(shí)時(shí)數(shù)據(jù)的Qt示波器”查看。
完整代碼獲取地址
▼
本次,正運(yùn)動(dòng)技術(shù)EtherCAT運(yùn)動(dòng)控制器實(shí)時(shí)數(shù)據(jù)的Qt示波器,就分享到這里。
更多精彩內(nèi)容請(qǐng)關(guān)注“正運(yùn)動(dòng)小助手”公眾號(hào),需要相關(guān)開發(fā)環(huán)境與例程代碼,請(qǐng)咨詢正運(yùn)動(dòng)技術(shù)銷售工程師:400-089-8936。
本文由正運(yùn)動(dòng)技術(shù)原創(chuàng),歡迎大家轉(zhuǎn)載,共同學(xué)習(xí),一起提高中國(guó)智能制造水平。文章版權(quán)歸正運(yùn)動(dòng)技術(shù)所有,如有轉(zhuǎn)載請(qǐng)注明文章來(lái)源。
正運(yùn)動(dòng)技術(shù)專注于運(yùn)動(dòng)控制技術(shù)研究和通用運(yùn)動(dòng)控制軟硬件產(chǎn)品的研發(fā),是國(guó)家級(jí)高新技術(shù)企業(yè)。正運(yùn)動(dòng)技術(shù)匯集了來(lái)自華為、中興等公司的優(yōu)秀人才,在堅(jiān)持自主創(chuàng)新的同時(shí),積極聯(lián)合各大高校協(xié)同運(yùn)動(dòng)控制基礎(chǔ)技術(shù)的研究,是國(guó)內(nèi)工控領(lǐng)域發(fā)展最快的企業(yè)之一,也是國(guó)內(nèi)少有、完整掌握運(yùn)動(dòng)控制核心技術(shù)和實(shí)時(shí)工控軟件平臺(tái)技術(shù)的企業(yè)。主要業(yè)務(wù)有:運(yùn)動(dòng)控制卡_運(yùn)動(dòng)控制器_EtherCAT運(yùn)動(dòng)控制卡_EtherCAT控制器_運(yùn)動(dòng)控制系統(tǒng)_視覺控制器__運(yùn)動(dòng)控制PLC_運(yùn)動(dòng)控制_機(jī)器人控制器_視覺定位_XPCIe/XPCI系列運(yùn)動(dòng)控制卡等。
審核編輯 黃宇
-
運(yùn)動(dòng)控制器
+關(guān)注
關(guān)注
2文章
450瀏覽量
25282 -
ethercat
+關(guān)注
關(guān)注
19文章
1112瀏覽量
40007 -
正運(yùn)動(dòng)技術(shù)
+關(guān)注
關(guān)注
0文章
120瀏覽量
643
發(fā)布評(píng)論請(qǐng)先 登錄

激光振鏡運(yùn)動(dòng)控制器在玻璃激光鉆孔上的應(yīng)用#正運(yùn)動(dòng)技術(shù) #運(yùn)動(dòng)控制器 #激光振鏡 #EtherCAT #正運(yùn)動(dòng)

LabVIEW運(yùn)動(dòng)控制(五):EtherCAT運(yùn)動(dòng)控制器的心跳檢測(cè)功能 #正運(yùn)動(dòng)技術(shù) #運(yùn)動(dòng)控制器 #正運(yùn)動(dòng)

EtherCAT運(yùn)動(dòng)控制器實(shí)時(shí)數(shù)據(jù)的Qt示波器 #正運(yùn)動(dòng)技術(shù) #運(yùn)動(dòng)控制器 #EtherCAT總線 #正運(yùn)動(dòng)

LabVIEW運(yùn)動(dòng)控制(三):EtherCAT運(yùn)動(dòng)控制器的高效加工指令自定義封裝 #正運(yùn)動(dòng)技術(shù) #運(yùn)動(dòng)控制器

LabVIEW運(yùn)動(dòng)控制(二):EtherCAT運(yùn)動(dòng)控制器的多軸示教加工應(yīng)用(中) #正運(yùn)動(dòng)技術(shù) #運(yùn)動(dòng)控制器

LabVIEW運(yùn)動(dòng)控制(二):EtherCAT運(yùn)動(dòng)控制器的多軸示教加工應(yīng)用(上)#正運(yùn)動(dòng)技術(shù) #運(yùn)動(dòng)控制器

LabVIEW運(yùn)動(dòng)控制(一):EtherCAT運(yùn)動(dòng)控制器的SCARA機(jī)械手應(yīng)用 #正運(yùn)動(dòng)技術(shù) #運(yùn)動(dòng)控制器

脈沖全閉環(huán)EtherCAT運(yùn)動(dòng)控制器的固件升級(jí) #正運(yùn)動(dòng)技術(shù) #擴(kuò)展模塊 #IO模塊 #運(yùn)動(dòng)控制器

EtherCAT運(yùn)動(dòng)控制器配套用手持示教盒快速入門 #正運(yùn)動(dòng)技術(shù) #運(yùn)動(dòng)控制器 #示教盒 #正運(yùn)動(dòng)

EtherCAT運(yùn)動(dòng)控制器上位機(jī)開發(fā)之Python+Qt(三):PDO配置與SDO讀寫# 運(yùn)動(dòng)控制器# 控制卡

EtherCAT運(yùn)動(dòng)控制器上位機(jī)開發(fā)之Python+Qt(二):回零# 正運(yùn)動(dòng)技術(shù)# 運(yùn)動(dòng)控制器# 運(yùn)動(dòng)控制

EtherCAT運(yùn)動(dòng)控制器上位機(jī)之Python+Qt(一):鏈接與單軸運(yùn)動(dòng)# 正運(yùn)動(dòng)技術(shù)# 運(yùn)動(dòng)控制器
BissC絕對(duì)值編碼器在EtherCAT運(yùn)動(dòng)控制器中的應(yīng)用

評(píng)論