時間:2025-02-20 17:23:25來源:深圳市正運動技術有限公司
上節課程給大家介紹了ZMC432CL-V2硬件接口(詳情點擊→步進的光柵尺全閉環EtherCAT運動控制器ZMC432CL-V2(一):硬件接口介紹),本節主要講解如何通過RTSys開發軟件調試ZMC432CL-V2的脈沖閉環功能。
一、ZMC432CL-V2產品簡介
ZMC432CL-V2高性能多軸運動控制器是一款兼容EtherCAT總線和脈沖型的獨立式運動控制器,具備高速實時反饋功能,支持脈沖全閉環控制,能夠實現高精度、高響應速度的運動控制。高精度定位,有效消除機械傳動誤差,滿足高精密加工場景應用要求。
1.ZMC432CL-V2硬件功能
(1)豐富的運動控制功能:支持直線、圓弧、空間圓弧、螺旋插補等。(2)硬件接口豐富:支持脈沖軸(帶編碼器反饋)和EtherCAT總線軸,具備24路輸入和12路輸出的通用IO,部分為高速IO,2路模擬量輸出(DA)。(3)EtherCAT刷新周期最快達250us,滿足高速通信需求。(4)支持4通道硬件比較輸出、硬件定時器、運動中精準輸出,適用于多通道視覺飛拍等場合。(5)支持掉電檢測、掉電存儲,多種程序加密方式,能夠有效防止系統故障,保護項目工程文件數據,并提高系統的可靠性。(6)通過純國產IDE開發環境RTSys進行項目開發,可實時仿真、在線跟蹤以及診斷與調試,簡便易用,支持多種高級上位機語言聯合編程進行二次開發。
ZMC432CL-V2產品介紹視頻
更多關于ZMC432CL-V2詳情介紹點擊→步進控制的光柵尺全閉環解決方案:32軸EtherCAT總線運動控制器ZMC432CL-V2。
二、RTSys調試ZMC432CL-V2的脈沖閉環功能
1.新建RTSys的項目文件
點擊【文件】→【新建工程】→【輸入文件名】→【保存】。
2.新建RTBasic文件和RTHmi文件點擊【新建】→【選擇Basic/Hmi】→【確定】,完成Basic和Hmi文件的創建,其中Basic文件用于運動邏輯的編寫,Hmi文件用于人機交互界面的設計。右擊【工程視圖】下的HMI文件名稱,在彈出的選項框中選擇【設置任務號】,并將其設置為0,表示控制器啟動后將一任務0去執行Hmi文件程序。
3.在BasicMain.bas文件里面編寫系統初始化函數和周期掃描函數
·
'/****************************************************************************'任務編號:無'函數功能:系統初始化'Input:無'Output:無 '返回值:無'備注:無 '******************************************************************************/GLOBAL SUB SysInit() '測試固件信息 ?"測試固件信息: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 '軸初始化參數 GLOBAL gv_Speed,gv_Accel,gv_Decel GLOBAL gv_Sramp,gv_Inch GLOBAL gv_Units GLOBAL gv_mpos,gv_input GLOBAL VpMode '*********************軸參數初始化********************* 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 '**********************系統初始化********************** RAPIDSTOP(2) '停止所有軸 WAIT IDLE DELAY(100) DATUM(0) '清除軸報警 WAIT IDLE '**********************軸參數初始化********************* BASE(TestAxisId) '關閉閉環功能 SERVO=OFF ENCODER_SERVO=OFF '關閉閉環功能后要遠程ATYPE從0到4的切換 ATYPE = 0 DELAY(100) ATYPE = 4 '軸坐標清零 DPOS=0 MPOS=0 '更新軸參數 UpDataAxisPara() '更新PID參數 UpDatePid(0) ENDSUB'/*****************************************************************************'任務編號:無'函數功能:Hmi掃描函數'Input:無'Output:無 '返回值:無'備注:無 '******************************************************************************/GLOBAL SUB SysScan() '更新閉環狀態 IF SERVO(TestAxisId) = ON AND ENCODER_SERVO(TestAxisId)=ON THEN gvCLStstus=1 ELSE gvCLStstus=0 ENDIFENDSUB
4.組態人機界面Hmi文件的編輯先點擊【工程視圖】里面的Hmi.hmi文件,在彈出來的【屬性】窗口里面輸入【初始化函數】和【周期函數】的函數名。Hmi.hmi文件運行后會先執行一次【初始化函數】一般完成系統的初始化操作,【初始化函數】運行完后Hmi.hmi文件會周期性的執行【周期函數】和周期性的掃描Hmi界面上的按鈕等控件的操作情況。
點擊【控件箱】,可把控件箱里面的【控件】拖拽到Hmi窗口上進行人機界面的設計。
5.Hmi人機界面的按鈕如何調用Bas文件里面的函數
(1)點擊【全閉環開關】按鈕實現脈沖全閉環功能的開啟與關閉。
先在BasicMain.bas文件中新建函數來完成全閉環功能開關的邏輯程序。
·
'/*************************************************************************'任務編號:無'函數功能:全閉環功能切換'Input:Mode: 0 開關閉環功能 1:更新閉環Pid參數'Output:無 '返回值:無'備注:無 '**************************************************************************/GLOBAL SUB ClosedLoop(Mode) IF Mode=0 THEN IF gvCLStstus= 0 THEN '配置脈沖軸TestAxisId為全閉環的功能 '配置PID參數 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 '速度增益 '打開閉環功能 AXIS_ENABLE = ON '單軸使能打開情況下,全閉環才有效果 ENCODER_SERVO = ON '0-不開啟(缺省). 1-開啟閉環功能 '重要,打開servo之前打開encoder_servo后 '要完成一次atype由0變為4的切換,否則會報axis:0 config not support Servo. '無法打開閉環控制,原因未知 ATYPE = 0 DELAY(20) ATYPE = 4 '脈沖輸出+正交編碼反饋 SERVO = ON '0-不開啟(缺省). 1-開啟閉環功能 DELAY(20) IF SERVO = ON THEN ?"閉環參數配置完成,閉環控制已打開" ELSE ?"閉環參數配置完成,閉環控制打開失敗,請檢查軸配置。" ENDIF ELSE BASE(TestAxisId) SERVO = OFF ENCODER_SERVO = OFF '關閉ENCODER_SERVO后需要完成一次 ATYPE從0到4的切換,保證閉環功能完全關閉 ATYPE = 0 DELAY(100) ATYPE = 4 ?"已關閉閉環控制開關(switch),使用開環移動" ENDIF ELSEIF gvCLStstus=1 THEN '配置脈沖軸TestAxisId為全閉環的功能 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參數已更新 " ENDIFENDSUB
點擊【全閉環開關】按鈕控件,在屬性界面的【點擊調用函數欄】輸入要調用的函數名即可,并且同時進行函數形參的傳遞。
(2)手動按鈕功能的實現。
先在BasicMain.bas文件中新建函數來完成手動按鈕的邏輯程序。
·
'/********************************************************************'任務編號:無'函數功能:寸動運動與測試'Input:Mode:1表示寸動運動,0表示手動運動 'Input:Dir:運動方向 1正向運動 -1負向運動 0停止運動'Output:無 '返回值:無'備注:無 '*********************************************************************/GLOBAL SUB InchAndSub(Mode,Dir) BASE(TestAxisId) SPEED = gv_Speed ACCEL = gv_Accel DECEL = gv_DEcel SRAMP = gv_Sramp IF Mode=1 THEN '寸動運動 MOVE(gv_Inch*Dir) AXIS(TestAxisId) ?"寸動運動" ELSE IF Dir=1 THEN '手動運動 正方向 MOVEABS(FS_LIMIT(TestAxisId)) ELSEIF Dir=-1 THEN '手動運動 負方向 MOVEABS(RS_LIMIT(TestAxisId)) ELSE '手動運動按鈕松開的時候停止軸運動 CANCEL(2) ENDIF ENDIFENDSUB
點擊【手動按鈕】相關控件,在屬性界面點擊【動作欄】選擇按下和松開的調用函數,在【動作函數名】和【松開調用函數】欄分別輸入按鈕按下和松開想要調用的函數,并輸入對應函數的形參(函數形參可以是立即數也可以是全局變量或者寄存器)。
6.下載程序測試代碼邏輯
點擊【連接】通過網口IP連接上控制器后,點擊【下載到RAM】(程序掉電不保存)或者【下載到ROM】(程序掉電保存)即可完成程序的下載。
點擊【工具】→【插件】→【Xplc Screen】即可在電腦上顯示人機界面,進行相關功能的測試。
三、通過RTSys示波器對比開環控制和全閉環控制的情況
示波器的使用可以參考正運動小助手的歷史推文《運動控制看的更清楚細致!RTSys示波器功能簡介》。
1.開環控制情況分析
測試發現步進驅動器的開環控制,運動過程中隨動誤差(規劃位置和光柵尺反饋位置的差值)一直維持在0.02個用戶單位左右(這里一個用戶單位即一個UNITS設置的是1mm)。當運動結束時光柵尺的反饋位置和指令規劃位置也不相等,大概差了0.0025個用戶單位,折算為脈沖數是0.0025*用戶單位=5個脈沖。2.閉環控制情況分析
測試發現步進驅動器的閉環控制,運動過程中隨動誤差(規劃位置和光柵尺反饋位置的差值)除了啟動和停止以外大部分保持在0個脈沖當量左右。
相比較開環控制有較大的提升,當運動結束時光柵尺的反饋位置和指令規劃位置也是相等的。
四、總結
1.啟用控制器閉環的時候要注意:在打開ENCODER_SERVO后,打開servo之前要完成一次ATYPE從0到4的切換,這樣才可以正常打開控制器閉環的功能。2.啟用控制器閉環同時還需要:打開單軸使能axis_enable,這樣才能保證控制器閉環的正常啟用。
·
'打開閉環功能BASE(TestAxisId) AXIS_ENABLE = ON '單軸使能打開情況下,全閉環才有效果ENCODER_SERVO = ON '0-不開啟(缺省). 1-開啟閉環功能'重要,打開servo之前打開encoder_servo后'要完成一次atype由0變為4的切換,否則會報axis:0 config not support Servo.ATYPE = 0DELAY(20)ATYPE=4 '脈沖輸出+正交編碼反饋SERVO = ON '0-不開啟(缺省). 1-開啟閉環功能DELAY (20)IF SERVO = ON THEN ?"閉環參數配置完成,閉環控制已打開,使用move指令移動,并在示波器中監測運動參數。"ELSE ?"閉環參數配置完成,閉環控制打開失敗,請檢查軸配置。"ENDIF
3.為保證控制器閉環功能的完全關閉:在關閉ENCODER_SERVO后需要完成一次ATYPE從0到4的切換,這樣才能保證控制器閉環功能完全關閉。
·
BASE(TestAxisId)SERVO = OFFENCODER_SERVO =OFF'關閉ENCODER_SERV0后需要完成一次ATYPE從0到4的切換,保證閉環功能完全關閉ATYPE =0DELAY(100)ATYPE =4?"已關閉閉環控制開關(switch),使用開環移動"
完整代碼獲取地址
▼
本次,正運動技術步進的光柵尺全閉環EtherCAT運動控制器ZMC432CL-V2(二):RTSys編程調試,就分享到這里。
更多精彩內容請關注“正運動小助手”公眾號,需要相關開發環境與例程代碼,請咨詢正運動技術銷售工程師:400-089-8936。
本文由正運動技術原創,歡迎大家轉載,共同學習,一起提高中國智能制造水平。文章版權歸正運動技術所有,如有轉載請注明文章來源。
中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.hysjfh.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。
本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。
產品新聞
更多>2025-03-20
2025-03-13
2025-03-06
2025-02-25
2025-02-21
2025-02-21