技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 步進(jìn)的光柵尺全閉環(huán)EtherCAT運(yùn)動(dòng)控制器ZMC432CL-V2(二):RTSys編程調(diào)試

步進(jìn)的光柵尺全閉環(huán)EtherCAT運(yùn)動(dòng)控制器ZMC432CL-V2(二):RTSys編程調(diào)試

時(shí)間:2025-02-20 17:23:25來源:深圳市正運(yùn)動(dòng)技術(shù)有限公司

導(dǎo)語:?上節(jié)課程給大家介紹了ZMC432CL-V2硬件接口(詳情點(diǎn)擊→步進(jìn)的光柵尺全閉環(huán)EtherCAT運(yùn)動(dòng)控制器ZMC432CL-V2(一):硬件接口介紹),本節(jié)主要講解如何通過RTSys開發(fā)軟件調(diào)試ZMC432CL-V2的脈沖閉環(huán)功能。

  上節(jié)課程給大家介紹了ZMC432CL-V2硬件接口(詳情點(diǎn)擊→步進(jìn)的光柵尺全閉環(huán)EtherCAT運(yùn)動(dòng)控制器ZMC432CL-V2(一):硬件接口介紹),本節(jié)主要講解如何通過RTSys開發(fā)軟件調(diào)試ZMC432CL-V2的脈沖閉環(huán)功能。

  一、ZMC432CL-V2產(chǎn)品簡(jiǎn)介

  ZMC432CL-V2高性能多軸運(yùn)動(dòng)控制器是一款兼容EtherCAT總線和脈沖型的獨(dú)立式運(yùn)動(dòng)控制器,具備高速實(shí)時(shí)反饋功能,支持脈沖全閉環(huán)控制,能夠?qū)崿F(xiàn)高精度、高響應(yīng)速度的運(yùn)動(dòng)控制。高精度定位,有效消除機(jī)械傳動(dòng)誤差,滿足高精密加工場(chǎng)景應(yīng)用要求。

正運(yùn)動(dòng)

  1.ZMC432CL-V2硬件功能

  (1)豐富的運(yùn)動(dòng)控制功能:支持直線、圓弧、空間圓弧、螺旋插補(bǔ)等。(2)硬件接口豐富:支持脈沖軸(帶編碼器反饋)和EtherCAT總線軸,具備24路輸入和12路輸出的通用IO,部分為高速IO,2路模擬量輸出(DA)。(3)EtherCAT刷新周期最快達(dá)250us,滿足高速通信需求。(4)支持4通道硬件比較輸出、硬件定時(shí)器、運(yùn)動(dòng)中精準(zhǔn)輸出,適用于多通道視覺飛拍等場(chǎng)合。(5)支持掉電檢測(cè)、掉電存儲(chǔ),多種程序加密方式,能夠有效防止系統(tǒng)故障,保護(hù)項(xiàng)目工程文件數(shù)據(jù),并提高系統(tǒng)的可靠性。(6)通過純國產(chǎn)IDE開發(fā)環(huán)境RTSys進(jìn)行項(xiàng)目開發(fā),可實(shí)時(shí)仿真、在線跟蹤以及診斷與調(diào)試,簡(jiǎn)便易用,支持多種高級(jí)上位機(jī)語言聯(lián)合編程進(jìn)行二次開發(fā)。

正運(yùn)動(dòng)

  ZMC432CL-V2產(chǎn)品介紹視頻

  更多關(guān)于ZMC432CL-V2詳情介紹點(diǎn)擊→步進(jìn)控制的光柵尺全閉環(huán)解決方案:32軸EtherCAT總線運(yùn)動(dòng)控制器ZMC432CL-V2。

  二、RTSys調(diào)試ZMC432CL-V2的脈沖閉環(huán)功能

  1.新建RTSys的項(xiàng)目文件

  點(diǎn)擊【文件】→【新建工程】→【輸入文件名】→【保存】。

正運(yùn)動(dòng)

  2.新建RTBasic文件和RTHmi文件點(diǎn)擊【新建】→【選擇Basic/Hmi】→【確定】,完成Basic和Hmi文件的創(chuàng)建,其中Basic文件用于運(yùn)動(dòng)邏輯的編寫,Hmi文件用于人機(jī)交互界面的設(shè)計(jì)。右擊【工程視圖】下的HMI文件名稱,在彈出的選項(xiàng)框中選擇【設(shè)置任務(wù)號(hào)】,并將其設(shè)置為0,表示控制器啟動(dòng)后將一任務(wù)0去執(zhí)行Hmi文件程序。

正運(yùn)動(dòng)

  3.在BasicMain.bas文件里面編寫系統(tǒng)初始化函數(shù)和周期掃描函數(shù)

  ·

  '/****************************************************************************'任務(wù)編號(hào):無'函數(shù)功能:系統(tǒng)初始化'Input:無'Output:無 '返回值:無'備注:無 '******************************************************************************/GLOBAL SUB SysInit() '測(cè)試固件信息 ?"測(cè)試固件信息:ver 24.8.28 : "version_build, "SERVO_PERIOD: "SERVO_PERIOD '軸分配 GLOBAL CONST TestAxisId=0 '線程分配 GLOBAL CONST IntCycleTask=1 GLOBAL CONST OtherTask=2 '其他變量 GLOBAL gvCLStstus,gv_HandMode GLOBAL gv_P,gv_I,gv_D GLOBAL gv_VF,gv_AF,gv_OV '軸初始化參數(shù) GLOBAL gv_Speed,gv_Accel,gv_Decel GLOBAL gv_Sramp,gv_Inch GLOBAL gv_Units GLOBAL gv_mpos,gv_input GLOBAL VpMode '*********************軸參數(shù)初始化********************* gv_Units=2000 gv_mpos =4000 gv_input=-20043 gvCLStstus=0 gv_Speed=2 gv_Accel=100 gv_Decel=100 gv_Sramp=0 gv_Inch=1 gv_HandMode=0 VpMode=0 '**********************系統(tǒng)初始化********************** RAPIDSTOP(2) '停止所有軸 WAIT IDLE DELAY(100) DATUM(0) '清除軸報(bào)警 WAIT IDLE '**********************軸參數(shù)初始化********************* BASE(TestAxisId) '關(guān)閉閉環(huán)功能 SERVO=OFF ENCODER_SERVO=OFF '關(guān)閉閉環(huán)功能后要遠(yuǎn)程ATYPE從0到4的切換 ATYPE = 0 DELAY(100) ATYPE = 4 '軸坐標(biāo)清零 DPOS=0 MPOS=0 '更新軸參數(shù) UpDataAxisPara() '更新PID參數(shù) UpDatePid(0) ENDSUB'/*****************************************************************************'任務(wù)編號(hào):無'函數(shù)功能:Hmi掃描函數(shù)'Input:無'Output:無 '返回值:無'備注:無 '******************************************************************************/GLOBAL SUB SysScan() '更新閉環(huán)狀態(tài) IF SERVO(TestAxisId) = ON AND ENCODER_SERVO(TestAxisId)=ON THEN gvCLStstus=1 ELSE gvCLStstus=0 ENDIFENDSUB

  4.組態(tài)人機(jī)界面Hmi文件的編輯先點(diǎn)擊【工程視圖】里面的Hmi.hmi文件,在彈出來的【屬性】窗口里面輸入【初始化函數(shù)】和【周期函數(shù)】的函數(shù)名。Hmi.hmi文件運(yùn)行后會(huì)先執(zhí)行一次【初始化函數(shù)】一般完成系統(tǒng)的初始化操作,【初始化函數(shù)】運(yùn)行完后Hmi.hmi文件會(huì)周期性的執(zhí)行【周期函數(shù)】和周期性的掃描Hmi界面上的按鈕等控件的操作情況。

正運(yùn)動(dòng)

  點(diǎn)擊【控件箱】,可把控件箱里面的【控件】拖拽到Hmi窗口上進(jìn)行人機(jī)界面的設(shè)計(jì)。

正運(yùn)動(dòng)

  5.Hmi人機(jī)界面的按鈕如何調(diào)用Bas文件里面的函數(shù)

  (1)點(diǎn)擊【全閉環(huán)開關(guān)】按鈕實(shí)現(xiàn)脈沖全閉環(huán)功能的開啟與關(guān)閉。

  先在BasicMain.bas文件中新建函數(shù)來完成全閉環(huán)功能開關(guān)的邏輯程序。

  ·

  '/*************************************************************************'任務(wù)編號(hào):無'函數(shù)功能:全閉環(huán)功能切換'Input:Mode: 0 開關(guān)閉環(huán)功能 1:更新閉環(huán)Pid參數(shù)'Output:無 '返回值:無'備注:無 '**************************************************************************/GLOBAL SUB ClosedLoop(Mode) IF Mode=0 THEN IF gvCLStstus= 0 THEN '配置脈沖軸TestAxisId為全閉環(huán)的功能 '配置PID參數(shù) BASE(TestAxisId) P_Gain = gv_P 'P:比例增益 I_GAIN = gv_I 'I:積分增益 D_GAIN = gv_D 'D:微分增益 VFF_GAIN = gv_VF '速度反饋的前饋增益 AFF_GAIN = gv_AF '加速度反饋的前饋增益 OV_GAIN = gv_OV '速度增益 '打開閉環(huán)功能 AXIS_ENABLE = ON '單軸使能打開情況下,全閉環(huán)才有效果 ENCODER_SERVO = ON '0-不開啟(缺省). 1-開啟閉環(huán)功能 '重要,打開servo之前打開encoder_servo后 '要完成一次atype由0變?yōu)?的切換,否則會(huì)報(bào)axis:0 config not support Servo. '無法打開閉環(huán)控制,原因未知 ATYPE = 0 DELAY(20) ATYPE = 4 '脈沖輸出+正交編碼反饋 SERVO = ON '0-不開啟(缺省). 1-開啟閉環(huán)功能 DELAY(20) IF SERVO = ON THEN ?"閉環(huán)參數(shù)配置完成,閉環(huán)控制已打開" ELSE ?"閉環(huán)參數(shù)配置完成,閉環(huán)控制打開失敗,請(qǐng)檢查軸配置。" ENDIF ELSE BASE(TestAxisId) SERVO = OFF ENCODER_SERVO = OFF '關(guān)閉ENCODER_SERVO后需要完成一次 ATYPE從0到4的切換,保證閉環(huán)功能完全關(guān)閉 ATYPE = 0 DELAY(100) ATYPE = 4 ?"已關(guān)閉閉環(huán)控制開關(guān)(switch),使用開環(huán)移動(dòng)" ENDIF ELSEIF gvCLStstus=1 THEN '配置脈沖軸TestAxisId為全閉環(huán)的功能 BASE(TestAxisId) P_Gain = gv_P 'P:比例增益 I_GAIN = gv_I 'I:積分增益 D_GAIN = gv_D 'D:微分增益 VFF_GAIN = gv_VF '速度反饋的前饋增益 AFF_GAIN = gv_AF '加速度反饋的前饋增益 OV_GAIN = gv_OV '速度增益 ?"PID參數(shù)已更新 " ENDIFENDSUB

  點(diǎn)擊【全閉環(huán)開關(guān)】按鈕控件,在屬性界面的【點(diǎn)擊調(diào)用函數(shù)欄】輸入要調(diào)用的函數(shù)名即可,并且同時(shí)進(jìn)行函數(shù)形參的傳遞。

正運(yùn)動(dòng)

  (2)手動(dòng)按鈕功能的實(shí)現(xiàn)。

  先在BasicMain.bas文件中新建函數(shù)來完成手動(dòng)按鈕的邏輯程序。

  ·

  '/********************************************************************'任務(wù)編號(hào):無'函數(shù)功能:寸動(dòng)運(yùn)動(dòng)與測(cè)試'Input:Mode:1表示寸動(dòng)運(yùn)動(dòng),0表示手動(dòng)運(yùn)動(dòng) 'Input:Dir:運(yùn)動(dòng)方向 1正向運(yùn)動(dòng) -1負(fù)向運(yùn)動(dòng) 0停止運(yùn)動(dòng)'Output:無 '返回值:無'備注:無 '*********************************************************************/GLOBAL SUB InchAndSub(Mode,Dir) BASE(TestAxisId) SPEED = gv_Speed ACCEL = gv_Accel DECEL = gv_DEcel SRAMP = gv_Sramp IF Mode=1 THEN '寸動(dòng)運(yùn)動(dòng) MOVE(gv_Inch*Dir) AXIS(TestAxisId) ?"寸動(dòng)運(yùn)動(dòng)" ELSE IF Dir=1 THEN '手動(dòng)運(yùn)動(dòng) 正方向 MOVEABS(FS_LIMIT(TestAxisId)) ELSEIF Dir=-1 THEN '手動(dòng)運(yùn)動(dòng) 負(fù)方向 MOVEABS(RS_LIMIT(TestAxisId)) ELSE '手動(dòng)運(yùn)動(dòng)按鈕松開的時(shí)候停止軸運(yùn)動(dòng) CANCEL(2) ENDIF ENDIFENDSUB

  點(diǎn)擊【手動(dòng)按鈕】相關(guān)控件,在屬性界面點(diǎn)擊【動(dòng)作欄】選擇按下和松開的調(diào)用函數(shù),在【動(dòng)作函數(shù)名】和【松開調(diào)用函數(shù)】欄分別輸入按鈕按下和松開想要調(diào)用的函數(shù),并輸入對(duì)應(yīng)函數(shù)的形參(函數(shù)形參可以是立即數(shù)也可以是全局變量或者寄存器)。

正運(yùn)動(dòng)

  6.下載程序測(cè)試代碼邏輯

  點(diǎn)擊【連接】通過網(wǎng)口IP連接上控制器后,點(diǎn)擊【下載到RAM】(程序掉電不保存)或者【下載到ROM】(程序掉電保存)即可完成程序的下載。

正運(yùn)動(dòng)

  點(diǎn)擊【工具】→【插件】→【Xplc Screen】即可在電腦上顯示人機(jī)界面,進(jìn)行相關(guān)功能的測(cè)試。

  三、通過RTSys示波器對(duì)比開環(huán)控制和全閉環(huán)控制的情況

  示波器的使用可以參考正運(yùn)動(dòng)小助手的歷史推文《運(yùn)動(dòng)控制看的更清楚細(xì)致!RTSys示波器功能簡(jiǎn)介》。

  1.開環(huán)控制情況分析

正運(yùn)動(dòng)

正運(yùn)動(dòng)

  測(cè)試發(fā)現(xiàn)步進(jìn)驅(qū)動(dòng)器的開環(huán)控制,運(yùn)動(dòng)過程中隨動(dòng)誤差(規(guī)劃位置和光柵尺反饋位置的差值)一直維持在0.02個(gè)用戶單位左右(這里一個(gè)用戶單位即一個(gè)UNITS設(shè)置的是1mm)。當(dāng)運(yùn)動(dòng)結(jié)束時(shí)光柵尺的反饋位置和指令規(guī)劃位置也不相等,大概差了0.0025個(gè)用戶單位,折算為脈沖數(shù)是0.0025*用戶單位=5個(gè)脈沖。2.閉環(huán)控制情況分析

  測(cè)試發(fā)現(xiàn)步進(jìn)驅(qū)動(dòng)器的閉環(huán)控制,運(yùn)動(dòng)過程中隨動(dòng)誤差(規(guī)劃位置和光柵尺反饋位置的差值)除了啟動(dòng)和停止以外大部分保持在0個(gè)脈沖當(dāng)量左右。

  相比較開環(huán)控制有較大的提升,當(dāng)運(yùn)動(dòng)結(jié)束時(shí)光柵尺的反饋位置和指令規(guī)劃位置也是相等的。

  四、總結(jié)

  1.啟用控制器閉環(huán)的時(shí)候要注意:在打開ENCODER_SERVO后,打開servo之前要完成一次ATYPE從0到4的切換,這樣才可以正常打開控制器閉環(huán)的功能。2.啟用控制器閉環(huán)同時(shí)還需要:打開單軸使能axis_enable,這樣才能保證控制器閉環(huán)的正常啟用。

  ·

  '打開閉環(huán)功能BASE(TestAxisId) AXIS_ENABLE = ON '單軸使能打開情況下,全閉環(huán)才有效果ENCODER_SERVO = ON '0-不開啟(缺省). 1-開啟閉環(huán)功能'重要,打開servo之前打開encoder_servo后'要完成一次atype由0變?yōu)?的切換,否則會(huì)報(bào)axis:0 config not support Servo.ATYPE = 0DELAY(20)ATYPE=4 '脈沖輸出+正交編碼反饋SERVO = ON '0-不開啟(缺省). 1-開啟閉環(huán)功能DELAY (20)IF SERVO = ON THEN ?"閉環(huán)參數(shù)配置完成,閉環(huán)控制已打開,使用move指令移動(dòng),并在示波器中監(jiān)測(cè)運(yùn)動(dòng)參數(shù)。"ELSE ?"閉環(huán)參數(shù)配置完成,閉環(huán)控制打開失敗,請(qǐng)檢查軸配置。"ENDIF

  3.為保證控制器閉環(huán)功能的完全關(guān)閉:在關(guān)閉ENCODER_SERVO后需要完成一次ATYPE從0到4的切換,這樣才能保證控制器閉環(huán)功能完全關(guān)閉。

  ·

  BASE(TestAxisId)SERVO = OFFENCODER_SERVO =OFF'關(guān)閉ENCODER_SERV0后需要完成一次ATYPE從0到4的切換,保證閉環(huán)功能完全關(guān)閉ATYPE =0DELAY(100)ATYPE =4?"已關(guān)閉閉環(huán)控制開關(guān)(switch),使用開環(huán)移動(dòng)"

完整代碼獲取地址

正運(yùn)動(dòng)

  本次,正運(yùn)動(dòng)技術(shù)步進(jìn)的光柵尺全閉環(huán)EtherCAT運(yùn)動(dòng)控制器ZMC432CL-V2(二):RTSys編程調(diào)試,就分享到這里。

  更多精彩內(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í),一起提高中國智能制造水平。文章版權(quán)歸正運(yùn)動(dòng)技術(shù)所有,如有轉(zhuǎn)載請(qǐng)注明文章來源。


標(biāo)簽: 正運(yùn)動(dòng)

點(diǎn)贊

分享到:

上一篇:電源濾波器的結(jié)構(gòu)是什么樣的...

下一篇:EMC系列EtherCAT總線運(yùn)動(dòng)控制...

中國傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動(dòng)網(wǎng)(www.surachana.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

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

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

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

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號(hào) | 營業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)