亚洲精华国产精华精华液网站,你懂的,娇生惯养4ph归寻(矜以),丰年经继拇中文3与其他教材比较

技術頻道

娓娓工業
您現在的位置: 中國傳動網 > 技術頻道 > 技術百科 > 【正運動】運動控制卡應用開發教程之MATLAB

【正運動】運動控制卡應用開發教程之MATLAB

時間:2021-07-07 17:19:30來源:深圳市正運動技術有限公司

導語:?ECI2828系列運動控制卡支持多達16 軸直線插補、任意圓弧插補、空間圓弧、螺旋插補、電子凸輪、電子齒輪、同步跟隨、虛擬軸和機械手指令等;采用優化的網絡通訊協議可以實現實時的運動控制。

  今天,正運動小助手給大家分享一下運動控制卡應用開發教程之MATLAB。

  一ECI2828硬件介紹

  ECI2828系列運動控制卡支持多達16 軸直線插補、任意圓弧插補、空間圓弧、螺旋插補、電子凸輪、電子齒輪、同步跟隨、虛擬軸和機械手指令等;采用優化的網絡通訊協議可以實現實時的運動控制。

  ECI2828系列運動運動控制卡支持以太網,232 通訊接口和電腦相連,接收電腦的指令運行,可以通過EtherCAT總線和CAN總線去連接各個擴展模塊,從而擴展輸入輸出點數或運動軸。

控制器

  ECI2828系列運動控制卡的應用程序可以使用 VC、VB、VS、C++以及C#等軟件來開發,程序運行時需要動態庫 zmotion.dll。調試時可以把ZDevelop軟件同時連接到控制器,從而方便調試,方便觀察。

控制器

  ECI2828系列典型連接配置圖

  二MATLAB進行運動控制開發

  Ⅰ新建工程并添加函數

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

控制器

控制器

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

控制器

控制器

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

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

控制器

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

控制器

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

控制器

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

控制器

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

控制器

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

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

  如:C:\...\....\R2019a\bin

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

  如:C:\...\....\R2019a\extern\include

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

控制器

       5.配置MATLAB開發環境。

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

控制器

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

控制器

  C.libfunctions zauxdll -full;或 libfunctionsview zauxdll;顯示共享庫函數簽名。

控制器

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

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

控制器

控制器

控制器

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

  Ⅱ查看PC函數手冊

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

控制器

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

  ZAux_OpenEth()接口說明:

控制器

  項目應用截圖:

控制器

  命令行應用截圖:

控制器

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

  單軸相對運動指令:

控制器

  單軸絕對運動指令:

控制器

  單軸持續運動:

控制器

  單軸停止運動:

控制器

  ⅢMATLAB進行單軸運動開發

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

控制器

  2.例程簡易流程圖。

控制器

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

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

控制器

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

控制器

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

控制器

  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 untitledhandles.output = hObject; % Update handles structureguidata(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('連接控制器失敗,錯誤碼%d\n',res); set(gcf,'NumberTitle', 'off', 'Name', '連接失敗'); msgbox('Connection failure,Please check the IP!');%連接控制器失敗,請檢查IP地址 return; end

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

控制器

  % --- 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);

  Ⅳ調試與監控

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

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

控制器

控制器

控制器

控制器

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

  2.視頻演示。

控制器

  本次,正運動技術EtherCAT運動控制卡應用開發教程之MATLAB,就分享到這里。

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


標簽: 運動控制EtherCAT控制器

點贊

分享到:

上一篇:協作機器人在工業生產中的優勢

下一篇:硅光電倍增管傳感器如何實現...

中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.siyutn.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。

本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

網站簡介|會員服務|聯系方式|幫助信息|版權信息|網站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網-工業自動化與智能制造的全媒體“互聯網+”創新服務平臺

網站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權所有
粵ICP備 14004826號 | 營業執照證書 | 不良信息舉報中心 | 粵公網安備 44030402000946號

主站蜘蛛池模板: 彭水| 英德市| 涿州市| 惠来县| 建始县| 贵定县| 疏附县| 秀山| 鄢陵县| 报价| 阳信县| 科技| 慈溪市| 河北省| 普兰店市| 阜新| 武川县| 北安市| 睢宁县| 江达县| 邮箱| 达尔| 潼关县| 台前县| 湄潭县| 连州市| 宁海县| 若尔盖县| 邵阳市| 双鸭山市| 观塘区| 耒阳市| 寿阳县| 桃源县| 油尖旺区| 丹东市| 江陵县| 漳州市| 钟祥市| 瓦房店市| 龙海市|