<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

EtherCAT運動控制器的MATLAB開發

正運動技術 ? 來源:正運動技術 ? 作者:正運動技術 ? 2024-04-17 10:54 ? 次閱讀

ZMC408CE硬件介紹

ZMC408CE是正運動推出的一款多軸高性能EtherCAT總線運動控制器,具有EtherCAT、EtherNET、RS232、CAN和U盤等通訊接口,ZMC系列運動控制器可應用于各種需要脫機或聯機運行的場合。

wKgZomYTZqmAN3MOAAGTProU0zE089.png

ZMC408CE支持8軸運動控制,最多可擴展至32軸,支持直線插補、任意圓弧插補、空間圓弧、螺旋插補、電子凸輪、電子齒輪、同步跟隨等功能。ZMC408CE支持PLC、Basic、HMI組態三種編程方式。PC上位機API編程支持C#、C++、LabVIEW、Matlab、Qt、Linux、VB.Net、Python等接口。

wKgZomYTZrmAYxsqAAKs_ojNJoI125.png

ZMC408CE支持8軸運動控制,可采用脈沖軸(帶編碼器反饋)或EtherCAT總線軸,通用IO包含24路輸入口和16路輸出口,部分IO為高速IO,模擬AD/DA各兩路,EtherCAT最快125us的刷新周期。ZMC408CE支持8個通道的硬件比較輸出、硬件定時器、運動中精準輸出,還支持8通道PWM輸出,對應的輸出口為OUT0-7,支持8個通道同時觸發硬件比較輸出。

01 MATLAB進行運動控制開發

1.在MATLAB R2019a菜單“主頁”→“新建”→“工程”→“空白工程”,啟動創建項目向導。

wKgaomYfOA2AP98vAAMwTzZAwOY684.png

wKgZomYfOBGAVRLQAABsSCW6mMY340.png

2.新建GUI。命令行輸入guide,新建GUI。

wKgaomYfOBWAGLuOAAE5TdkqoW0868.png

wKgaomYfOBmAKom_AACuhkObBrA516.png

3.找到廠家提供的光盤資料里面的MATLAB函數庫,路徑如下(64位庫為例)。

A.進入廠商提供的光盤資料找到“8.PC函數”文件夾,并點擊進入。

wKgZomYfOByAKnHqAACKsz49foc828.png

B.選擇“函數庫2.1”文件夾。

wKgZomYfOB-AQcz0AABdqyQUAsU924.png

C.選擇“Windows平臺”文件夾。

wKgZomYfOCOATvdsAACMHRVAaZk754.png

D.根據需要選擇對應的函數庫這里選擇64位庫。

wKgaomYfOCaAe-faAABJxSlI3jc240.png

E.解壓MATLAB壓縮包,里面有對應的函數庫。

wKgaomYfOCmATKSLAACWg_8G7pw720.png

4.將廠商提供的庫文件以及相關文件復制到MATLAB工作目錄下。

(1)“zauxdll.dll”、“zmotion.dll”、“zauxdll2.h”、“zmotion.h”四個文件拷貝到matlab工作目錄下。

如:C:.......R2019abin

(2)將“zauxdll2.h”、“zmotion.h”兩個文件拷貝到include目錄。

如:C:.......R2019aexterninclude

(3)拷貝“zauxdll.dll”文件到新建的工程目錄中。

wKgaomYfOC2AGIfGAACD7ydRktQ919.png

5.配置MATLAB開發環境。

(1)在matlab命令行輸入“mbuild -setup”以及“mex -setup”,選擇安裝的c語言編譯器。

wKgZomYfODCAa63gAABk2PbC2qY330.png

(2)使用loadlibrary('zauxdll.dll','zauxdll2.h');加載函數庫。

wKgaomYfODOAWtaCAACjLK5I7pI239.png

(3)libfunctions zauxdll -full;或 libfunctionsview zauxdll;顯示共享庫函數簽名。

wKgZomYfODeAdlcwAAHXrYCEnro418.png

6.使用“calllib”調用zauxdll函數庫中函數,詳細可查看MATLAB幫助。

有關參數傳遞,在calllib幫助→傳遞參數。

wKgaomYfODqAei_NAADn6l-wgLk017.png

wKgZomYfOD2AFsN5AADfbmm3FgA844.png

wKgZomYfOEGAXrWMAAHCfYMoxS8894.png

至此函數庫添加完成,可進行MATLAB項目開發。

02 相關PC函數介紹

1.PC函數手冊在光盤資料查看,具體路徑如下:“光盤資料8.PC函數函數庫2.1ZMotion函數庫編程手冊 V2.1.pdf”。

wKgaomYfOEWAAzZ3AABUiO0qY7o676.png

2.PC編程,一般如果網口對控制器和工控機進行鏈接。網口鏈接函數接口是ZAux_OpenEth();如果鏈接成功,該接口會返回一個鏈接句柄。通過操作這個鏈接句柄可以實現對控制器的控制。

(1)ZAux_OpenEth()接口說明

wKgZomYfOEuAST3uAABK1Kh0sgE502.png

(2)項目應用截圖

wKgaomYfOE6AfDNRAAHyoJ2XIvE038.png

(3)命令行應用截圖

wKgaomYfOFKAXKf4AAB9qTCIo78962.png

3、使用單軸運動相關的指令操作鏈接句柄“g_handle”,對控制器進行單軸運動控制,單軸運動相關的指令如下。

(1)單軸相對運動指令

wKgZomYfOFeADfoiAAAwbs2WSJY070.png

(2)單軸絕對運動指令

wKgaomYfOFyAQ5EyAAAxfpo6DI0640.png

(3)單軸持續運動

wKgZomYfOGCADwl-AAA_PQV9n4o296.png

(4)單軸停止運動

wKgZomYfOGaAEtNkAABTmyUFGA0583.png

03 MATLAB進行單軸運動開發

1.單軸運動控制人機交互界面如下。

wKgaomYfOGqAHVulAAD4y9dsF3U189.png

2.例程簡易流程圖。

wKgZomYfOG2AGpcYAADVRSpfxy0987.png

3.在MATLAB的GUI界面中新建控件進行程序編寫。

A.在工具欄新建“普通按鈕”和可編輯文本,并雙擊修改屬性。

wKgZomYfOHCAZv3qAAEaCJ6PA9s108.png

B.控件右鍵,查看回調,“CallBack”創建回調響應函數,此時自動新建.m格式文件,在這里進行界面響應程序編寫。

wKgaomYfOHSAcQb7AAHjwJB9fTg413.png

C.將自動創建的文件添加到項目中。

wKgZomYfOHiAVRijAAGCYa5LN-8932.png

D.在“XXX_OpeningFcn”函數中加載函數庫,并定義全局變量。

% --- Executes just before untitled is made visible. function untitled_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to untitled (see VARARGIN) % Choose default command line output for untitled handles.output = hObject; % Update handles structure guidata(hObject, handles); if not(libisloaded('zauxdll'))%加載函數庫 loadlibrary('zauxdll.dll','zauxdll2.h'); end disp("加載函數庫");%命令行打印 global g_handleptr;%定義連接句柄 global g_nAxis;%定義軸號 global g_Dir;%定義運動方向 global g_Moveway;%定義運動方式 g_handleptr= libpointer('voidPtrPtr'); g_Dir=1; g_Moveway=0; g_nAxis=0;

4.編寫“連接控制器”按鈕程序,調用接口“ZAux_OpenEth()”,使點擊按鈕時鏈接控制器。

% --- Executes on button press in pushbutton_openZmc. function pushbutton_openZmc_Callback(hObject, eventdata, handles) % hObject handle to pushbutton_openZmc (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) handles.timer = timer('Period',0.05,'ExecutionMode','FixedRate',... 'TimerFcn',{@UpdateSliderData, handles});%定時器 global g_handleptr;%定義連接句柄 ip =get(handles.edit_Ip,'String'); disp("連接控制器:"+ip); zmc_ip = char(ip); [res,~] = calllib('zauxdll','ZAux_OpenEth',zmc_ip ,g_handleptr); commandCheckHandler("ZAux_OpenEth",res); if res==0 fprintf('連接控制器成功n'); set(gcf,'NumberTitle', 'off', 'Name', '連接成功'); %msgbox('Connection successful'); start( handles.timer );%啟動定時器 else fprintf('連接控制器失敗,錯誤碼%dn',res); set(gcf,'NumberTitle', 'off', 'Name', '連接失敗'); msgbox('Connection failure,Please check the IP!');%連接控制器失敗,請檢查IP地址 return; end

5.主界面右鍵添加銷毀函數,調用“ZAux_Close()”關閉連接。

wKgZomYfOH-AKbN0AANWktuvSJ8247.png

% --- Executes during object deletion, before destroying properties.關閉連接 function figure1_DeleteFcn(hObject, eventdata, handles) global g_handleptr;%定義連接句柄 calllib('zauxdll','ZAux_Close',g_handleptr); disp("關閉與控制器連接");%打印

6.通過定時器更新控制器軸狀態:當前坐標、當前速度等。

function UpdateSliderData(obj, events, handles) global g_handleptr;%定義連接句柄 global g_nAxis;%定義軸號 [res,~,runstate]=calllib('zauxdll','ZAux_Direct_GetIfIdle',g_handleptr,g_nAxis, 0); commandCheckHandler("ZAux_Direct_GetIfIdle",res); [res,~,curpos]=calllib('zauxdll','ZAux_Direct_GetDpos',g_handleptr, g_nAxis, 0); commandCheckHandler("ZAux_Direct_GetDpos",res); [res,~,curspeed]=calllib('zauxdll','ZAux_Direct_GetVpSpeed',g_handleptr, g_nAxis, 0); commandCheckHandler("ZAux_Direct_GetVpSpeed",res); str_curpos=num2str(curpos); str_curspeed=num2str(curspeed); if (runstate==0) set(handles.edit_runstate,'String',"當前運動狀態:運行"); else set(handles.edit_runstate,'String',"當前運動狀態:停止"); end set(handles.edit_curpos,'String',"當前軸坐標:" +str_curpos); set(handles.edit_curspeed,'String',"當前軸速度:" +str_curspeed);

7.通過啟動按鈕的事件處理函數來設置軸參數并開始運動。

% --- Executes on button press in pushbutton_runmove.運動 function pushbutton_runmove_Callback(hObject, eventdata, handles) % hObject handle to pushbutton_runmove (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global g_handleptr;%定義連接句柄 global g_nAxis;%定義軸號 global g_Dir;%定義運動方向 global g_Moveway;%定義運動方式 calllib('zauxdll','ZAux_Direct_SetAtype',g_handleptr, g_nAxis,0); calllib('zauxdll','ZAux_Direct_SetUnits',g_handleptr,g_nAxis,str2num(get(handles.edit_units,'String'))); calllib('zauxdll','ZAux_Direct_SetLspeed',g_handleptr, g_nAxis, str2num(get(handles.edit_lspeed,'String'))); calllib('zauxdll','ZAux_Direct_SetSpeed',g_handleptr, g_nAxis, str2num(get(handles.edit_speed,'String'))); calllib('zauxdll','ZAux_Direct_SetAccel',g_handleptr, g_nAxis, str2num(get(handles.edit_acc,'String'))); calllib('zauxdll','ZAux_Direct_SetDecel',g_handleptr, g_nAxis, str2num(get(handles.edit_dec,'String'))); calllib('zauxdll','ZAux_Direct_SetSramp',g_handleptr, g_nAxis, str2num(get(handles.edit_sramp,'String'))); if (g_Moveway) %//連續運動 calllib('zauxdll','ZAux_Direct_Single_Vmove',g_handleptr, g_nAxis,g_Dir); else % //寸動 calllib('zauxdll','ZAux_Direct_Single_Move',g_handleptr, g_nAxis, g_Dir * str2num(get(handles.edit_step,'String'))); end

8.通過停止按鈕的事件處理函數來停止插補運動。

% --- Executes on button press in pushbutton_stopMove.單軸停止 function pushbutton_stopMove_Callback(hObject, eventdata, handles) global g_handleptr;%定義連接句柄 global g_nAxis; calllib('zauxdll','ZAux_Direct_Single_Cancel',g_handleptr,g_nAxis,2);

04 調試與監控

編譯運行例程,同時連接ZDevelop軟件進行調試,對運動控制的軸參數和運動情況進行監控。

1.連接ZDevelop軟件,并點擊“視圖”→“示波器”打開示波器對軸運動情況進行監控。

wKgaomYfOIWAc96yAAEMj1Ea-HM742.png

wKgaomYfOImALKs9AACeUZg1R9I633.png

2.運行上位機軟件進行調試監控。

wKgZomYfOI2AC1BDAAE3rdmlvDg260.png

wKgZomYfOJGANeR0AAKkibNM4jU487.png

本次,正運動技術EtherCAT運動控制器的MATLAB開發,就分享到這里。

更多精彩內容請關注“正運動小助手”公眾號,需要相關開發環境與例程代碼,請咨詢正運動技術銷售工程師。

本文由正運動技術原創,歡迎大家轉載,共同學習,一起提高中國智能制造水平。文章版權歸正運動技術所有,如有轉載請注明文章來源。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • matlab
    +關注

    關注

    175

    文章

    2922

    瀏覽量

    228441
  • 運動控制器
    +關注

    關注

    2

    文章

    342

    瀏覽量

    24360
  • 總線
    +關注

    關注

    10

    文章

    2706

    瀏覽量

    87215
  • 正運動技術
    +關注

    關注

    0

    文章

    72

    瀏覽量

    64
收藏 人收藏

    評論

    相關推薦

    EtherCAT運動控制器在LabVIEW中的運動控制與實時數據采集

    本文以正運動技術EtherCAT運動控制器ZMC408CE為例,介紹如何使用LabVIEW對控制器參數進行獲取內容并生成示波器波形。 01
    的頭像 發表于 04-08 11:45 ?180次閱讀
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>運動</b><b class='flag-5'>控制器</b>在LabVIEW中的<b class='flag-5'>運動</b><b class='flag-5'>控制</b>與實時數據采集

    EtherCAT運動控制器在ROS上的應用開發案例(下)

    本篇文章我們主要介紹正運動技術動態鏈接庫環境配置以及EtherCAT運動控制器在ROS下的單軸運動。
    的頭像 發表于 03-17 11:11 ?456次閱讀
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>運動</b><b class='flag-5'>控制器</b>在ROS上的應用<b class='flag-5'>開發</b>案例(下)

    EtherCAT運動控制器在ROS上的應用開發案例(上)

    本文以正運動技術EtherCAT運動控制器ZMC432和ZMC408CE為例,介紹正運動技術運動
    的頭像 發表于 03-17 11:06 ?554次閱讀
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>運動</b><b class='flag-5'>控制器</b>在ROS上的應用<b class='flag-5'>開發</b>案例(上)

    EtherCAT運動控制器在ROS上的應用(上)

    本文以正運動技術EtherCAT運動控制器ZMC432和ZMC408CE為例,介紹正運動技術運動
    的頭像 發表于 03-06 11:47 ?706次閱讀
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>運動</b><b class='flag-5'>控制器</b>在ROS上的應用(上)

    凌華科技基于軟件控制EtherCAT運動控制器

    SuperCAT是凌華科技打造的基于軟件控制EtherCAT運動控制器,其核心的控制軟件來自于凌華二十多年
    的頭像 發表于 01-09 11:57 ?324次閱讀
    凌華科技基于軟件<b class='flag-5'>控制</b>的<b class='flag-5'>EtherCAT</b><b class='flag-5'>運動</b><b class='flag-5'>控制器</b>

    EtherCAT總線運動控制的優勢主要體現在哪?

    。利用EtherCAT技術的優異性能,可以實現用傳統現場總線系統所無法實現的控制方法。 正運動技術的ZMC464運動控制器,實際測試過100
    發表于 12-13 11:37

    EtherCAT運動控制器進行自定義API封裝例程

    、Flash/文件讀寫 更多API接口詳情可以參考“ZMotion PC函數庫編程手冊 V2.1.1”。 如果想了解更多內容,請點擊《全國產EtherCAT運動控制邊緣控制器(二):
    發表于 10-26 15:11

    全國產EtherCAT運動控制邊緣控制器(五):IO配置與回零運動的Python+Qt開發

    全國產EtherCAT運動控制邊緣控制器ZMC432H是正運動的一款軟硬件全國產自主可控,運動
    的頭像 發表于 10-22 10:51 ?512次閱讀
    全國產<b class='flag-5'>EtherCAT</b><b class='flag-5'>運動</b><b class='flag-5'>控制</b>邊緣<b class='flag-5'>控制器</b>(五):IO配置與回零<b class='flag-5'>運動</b>的Python+Qt<b class='flag-5'>開發</b>

    EtherCAT運動控制邊緣控制器ZMC432H的軸參數配置和單軸運動控制

    全國產EtherCAT運動控制邊緣控制器ZMC432H是正運動的一款軟硬件全國產自主可控,運動
    的頭像 發表于 10-16 09:49 ?460次閱讀
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>運動</b><b class='flag-5'>控制</b>邊緣<b class='flag-5'>控制器</b>ZMC432H的軸參數配置和單軸<b class='flag-5'>運動</b><b class='flag-5'>控制</b>

    全國產EtherCAT運動控制邊緣控制器(四):軸參數配置與單軸運動PC上位機C++控制

    全國產EtherCAT運動控制邊緣控制器的軸參數設置與單軸運動例程講解。
    的頭像 發表于 09-27 15:42 ?395次閱讀
    全國產<b class='flag-5'>EtherCAT</b><b class='flag-5'>運動</b><b class='flag-5'>控制</b>邊緣<b class='flag-5'>控制器</b>(四):軸參數配置與單軸<b class='flag-5'>運動</b>PC上位機C++<b class='flag-5'>控制</b>

    全國產EtherCAT運動控制邊緣控制器ZMC432H# 運動控制器# 運動控制卡# 正運動技術

    控制器運動技術
    正運動技術
    發布于 :2023年08月07日 10:43:12

    全國產EtherCAT運動控制邊緣控制器(一):ZMC432H硬件接口

    運動技術EtherCAT運動控制邊緣控制器ZMC432H接口介紹。
    的頭像 發表于 08-03 09:18 ?577次閱讀
    全國產<b class='flag-5'>EtherCAT</b><b class='flag-5'>運動</b><b class='flag-5'>控制</b>邊緣<b class='flag-5'>控制器</b>(一):ZMC432H硬件接口

    【正運動】全國產EtherCAT運動控制器 | ZMC432H

    管理 軸運動操作界面直接調試伺服、步進 虛擬控制器仿真,脫機開發 支持C#/C++...... 動態鏈接函數庫接口,彈性擴展
    發表于 06-01 09:39

    經濟型EtherCAT運動控制器EtherCAT總線快速入門

    本文主要介紹XPLC006E多軸經濟型EtherCAT總線運動控制器控制EtherCAT總線驅動
    發表于 05-11 09:49

    【資料】正運動ZMC408SCAN控制器用戶手冊

    ZMC408SCAN 激光振鏡運動控制器是正運動技術推出的高性能總線雙振鏡運動控制器,專為工業激光+振鏡+
    發表于 05-10 15:06
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>