時間:2024-12-20 11:09:25來源:深圳市雷賽智能控制股份有限公司
01、在線變速定義
在Leadsys軟件中實現(xiàn)一個軸的點(diǎn)位運(yùn)動控制、速度控制是很簡單的,只需要調(diào)用單軸運(yùn)動指令中的點(diǎn)位控制、速度控制功能塊即可輕易實現(xiàn),這些運(yùn)動速度往往是我們觸發(fā)功能塊的執(zhí)行運(yùn)動時固定下來,此后的運(yùn)動都是以此速度進(jìn)行的,運(yùn)動過程中的速度用戶難以改變。在點(diǎn)位運(yùn)動控制、速度控制的運(yùn)動過程中,改變運(yùn)動速度,便是運(yùn)動的在線變速。
為實現(xiàn)運(yùn)動的在線變速,這里我們提供兩種常用的實現(xiàn)方式。本期我們將介紹雷賽提供的在線變速功能塊的應(yīng)用方式。上一期中,我們分享了如何使用SM3_Basic庫的單軸運(yùn)動指令及其BufferMode功能來實現(xiàn)變速控制(點(diǎn)擊藍(lán)字即可跳轉(zhuǎn))。
02、在線變速指令
雷賽提供了實用的在線變速的功能塊分別位于CmpLSAxisControl庫和PMC_SingleAxisLib庫中,功能塊一覽如下:
CmpLSAxisControl庫:
PMC_SingleAxisLib庫:
這些指令都是通過直接更改功能塊的輸入速度來實現(xiàn)在線變速的。
指令介紹
MC_MoveAbsolute_ChangeVel
指令格式:
MC_MoveAbsolute_ChangeVel( Axis:= 軸, Execute:= 開始運(yùn)動, Position:= 終點(diǎn)位置, Velocity:= 速度, Acceleration:= 加速度, Deceleration:= 減速度, Jerk:= 加加速度, Direction:= 方向, Done=> 運(yùn)動完成, Busy=> 功能塊進(jìn)行中, Active=> 運(yùn)動中, CommandAborted=> 運(yùn)動被打斷, Error=> 出錯, ErrorID=> 錯誤代碼);
指令說明:
●絕對點(diǎn)位運(yùn)動在線變速功能塊,用于絕對定位運(yùn)動過程需要實時變速的場景;
●運(yùn)動過程中,修改Velocity / Acceleration / Deceleration / Jerk引腳的輸入值,即可對應(yīng)的改變運(yùn)動的速度/加速度/減速度/加加速度;
●Velocity / Acceleration / Deceleration輸入引腳必須大于0,否則功能塊將報錯;
●目標(biāo)終點(diǎn)在Execute上升沿時確定,運(yùn)動過程中更改不生效;
●運(yùn)動過程中,重新觸發(fā)Execute上升沿,新的運(yùn)動將打斷舊的運(yùn)動,軸將運(yùn)動到新的目標(biāo)終點(diǎn);
●當(dāng)軸的速度斜坡類型設(shè)置為二次或二次(平滑)時,需要設(shè)置加加速度Jerk,加加速度Jerk必須大于0;
●當(dāng)軸類型設(shè)置為模數(shù)時,需要設(shè)置方向Direction;
●移動方向Direction在Execute上升沿時確定,運(yùn)動過程中更改不生效。
時序圖:
MC_MoveRelative_ChangeVel
指令格式:
MC_MoveRelative_ChangeVel( Axis:= 軸, Execute:= 開始運(yùn)動, Distance:= 運(yùn)動距離, Velocity:= 速度, Acceleration:= 加速度, Deceleration:= 減速度, Jerk:= 加加速度, Done=> 運(yùn)動完成, Busy=> 功能塊進(jìn)行中, Active=> 運(yùn)動中, CommandAborted=> 運(yùn)動被打斷, Error=> 出錯, ErrorID=> 錯誤代碼);
指令說明:
●相對點(diǎn)位運(yùn)動在線變速功能塊,用于相對定位運(yùn)動過程需要實時變速的場景;
●運(yùn)動過程中,修改Velocity / Acceleration / Deceleration / Jerk引腳的輸入值,即可對應(yīng)的改變運(yùn)動的速度/加速度/減速度/加加速度;
●Velocity / Acceleration / Deceleration輸入引腳必須大于0,否則功能塊將報錯;
●運(yùn)動的目標(biāo)終點(diǎn)在Execute上升沿時確定,運(yùn)動過程中修改輸入引腳Distance,不會改變運(yùn)動的目標(biāo)終點(diǎn);
●運(yùn)動過程中,重新觸發(fā)Execute上升沿,新的運(yùn)動將打斷舊的運(yùn)動,軸將運(yùn)動到新的目標(biāo)終點(diǎn);
●當(dāng)軸的速度斜坡類型設(shè)置為二次或二次(平滑)時,需要設(shè)置加加速度Jerk,加加速度Jerk必須大于0。
時序圖:
MC_MoveVelocity_ChangeVel
指令格式:
MC_MoveVelocity_ChangeVel( Axis:= 軸, Execute:= 開始運(yùn)動, Velocity:= 速度, Acceleration:= 加速度, Deceleration:= 減速度, Jerk:= 加加速度, Direction:= 方向, InVelocity=> 速度抵達(dá), Busy=> 功能塊進(jìn)行中, Active=> 運(yùn)動中, CommandAborted=> 運(yùn)動被打斷, Error=> 出錯, ErrorID=> 錯誤代碼);
指令說明:
●恒速運(yùn)動在線變速功能塊,用于恒速運(yùn)動過程需要實時變速的場景;
●恒速運(yùn)動開始后軸將一直以設(shè)定的速度一直運(yùn)動下去,使用MC_Stop或MC_Halt指令可停止運(yùn)動;
●運(yùn)動過程中,修改Velocity / Acceleration / Deceleration / Jerk / Direction引腳的輸入值,即可對應(yīng)的改變運(yùn)動的速度/加速度/減速度/加加速度/方向;
●Velocity / Acceleration / Deceleration輸入引腳必須大于0,否則功能塊將報錯;
●運(yùn)動的方向由Direction引腳決定,而不是Velocity的參數(shù)前面的正負(fù)號,線性軸和模數(shù)軸可用的方向選項有所不同;
●當(dāng)軸的速度斜坡類型設(shè)置為二次或二次(平滑)時,需要設(shè)置加加速度Jerk,加加速度Jerk必須大于0。
時序圖:
MC_JOG_ChangeVel
指令格式:
MC_JOG_ChangeVel( Axis:= 軸, JogForward:= 正向Jog, JogBackward:= 負(fù)向Jog, Velocity:= 速度, Acceleration:= 加速度, Deceleration:= 減速度, Jerk:= 加加速度, Busy=> 功能塊進(jìn)行中, CommandAborted=> 運(yùn)動被打斷, Error=> 出錯, ErrorID=> 錯誤代碼);
指令說明:
●JOG運(yùn)動在線變速功能塊,用于點(diǎn)動運(yùn)動過程需要實時變速的場景;
●運(yùn)動過程中,修改Velocity / Acceleration / Deceleration / Jerk / Direction引腳的輸入值,即可對應(yīng)的改變運(yùn)動的速度/加速度/減速度/加加速度/方向;
●Velocity / Acceleration / Deceleration輸入引腳必須大于0,否則功能塊將報錯;
●當(dāng)軸的速度斜坡類型設(shè)置為二次或二次(平滑)時,需要設(shè)置加加速度Jerk,加加速度Jerk必須大于0。
時序圖:
LS_MoveAbsChangePosVel
指令格式:
LS_MoveAbsChangePosVel(Axis:= 軸, Execute:= 開始運(yùn)動, Position:= 目標(biāo)位置, Velocity:= 速度, Acceleration:= 加速度, Deceleration:= 減速度, Jerk:= 加加速度, Done=> 完成, Busy=> 功能塊進(jìn)行中, CommandAborted=> 運(yùn)動被打斷, Error=> 出錯, ErrorID=> 錯誤ID);
指令說明:
●絕對點(diǎn)位運(yùn)動在線變速變位功能塊,用于絕對定位運(yùn)動過程需要實時變速變位的場景;
●運(yùn)動過程中,修改Position / Velocity / Acceleration / Deceleration / Jerk引腳的輸入值,即可對應(yīng)的改變運(yùn)動的位置/速度/加速度/減速度/加加速度;
●Velocity / Acceleration / Deceleration輸入引腳必須大于0,否則功能塊將報錯;
●運(yùn)動過程中,重新觸發(fā)Execute上升沿,新的運(yùn)動將打斷舊的運(yùn)動,軸將運(yùn)動到新的目標(biāo)終點(diǎn);
●當(dāng)軸的速度斜坡類型設(shè)置為二次或二次(平滑)時,需要設(shè)置加加速度Jerk,加加速度Jerk必須大于0;
●指令不支持仿真,仿真運(yùn)行時功能塊報錯16#0FFFFFFF。
●與MC_MoveAbsolute_ChangeVel指令的差異:
LS_MoveChangeVel
指令格式:
LS_MoveChangeVel(Axis:= 軸, Execute:= 開始運(yùn)動, Velocity:= 速度, Acceleration:= 加速度, Deceleration:= 減速度, Jerk:= 加加速度, Direction:= 方向, InVelocity=> 速度抵達(dá), Busy=> 功能塊進(jìn)行中, CommandAborted=> 運(yùn)動被打斷, Error=> 出錯, ErrorID=> 錯誤ID);
指令說明:
●恒速運(yùn)動在線變速功能塊,用于恒速運(yùn)動過程需要實時變速的場景;
●恒速運(yùn)動開始后軸將一直以設(shè)定的速度一直運(yùn)動下去,使用MC_Stop或MC_Halt指令可停止運(yùn)動;
●運(yùn)動過程中,修改Velocity / Acceleration / Deceleration / Jerk / Direction引腳的輸入值,即可對應(yīng)的改變運(yùn)動的速度/加速度/減速度/加加速度/方向;
●Velocity / Acceleration / Deceleration輸入引腳必須大于0,否則功能塊將報錯;
●運(yùn)動的方向由Direction引腳決定,而不是Velocity的參數(shù)前面的正負(fù)號,Direction為1正向運(yùn)動,為-1負(fù)向運(yùn)動;
●當(dāng)軸的速度斜坡類型設(shè)置為二次或二次(平滑)時,需要設(shè)置加加速度Jerk,加加速度Jerk必須大于0;
●指令不支持仿真,仿真運(yùn)行時功能塊報錯16#0FFFFFFF。其他功能和MC_MoveVelocity_ChangeVel一致。
03、編程方法
通過上面的介紹,我們已經(jīng)了解了在線變速功能塊的基本用法,下面通過三個編程實例介紹如何使用在線變速指令。
實例一
控制軸以20速度運(yùn)動到100位置,然后加速到30運(yùn)動到200位置。
程序:
?、偬砑覯C_Power軸使能功能塊以使能軸。
?、谔砑覯C_MoveAbsolute_ChangeVel功能塊,添加用于控制功能塊啟動、運(yùn)動位置和運(yùn)動速度的變量。
?、劬帉懣刂瞥绦?。當(dāng)變量MoveStart=TRUE時,軸開始以10的速度運(yùn)動到100;軸運(yùn)動到100位置后,軸的速度增加到20;軸運(yùn)動到200位置,運(yùn)動結(jié)束。
結(jié)果:
實例二
控制軸以10速度開始運(yùn)動到100位置,運(yùn)動過程中接收到in1輸入信號,速度增加到20。
程序:
①添加MC_Power軸使能功能塊以使能軸。
②添加MC_MoveAbsolute_ChangeVel功能塊,添加用于控制功能塊啟動、運(yùn)動位置和運(yùn)動速度的變量。
③編寫控制程序。當(dāng)觸發(fā)輸入信號in0時,軸開始以10的速度運(yùn)動到100位置;如果在運(yùn)動過程中觸發(fā)了輸入信號in1,軸的速度增加到20;軸到達(dá)100位置時,運(yùn)動完成。
結(jié)果:
實例三
用觸摸屏控制軸的JOG運(yùn)動,軸的運(yùn)動速度可以隨意改變。
觸摸屏程序:
①通訊設(shè)置,使用觸摸屏的Modbus TCP通訊,設(shè)置如下
?、谔砑釉阂粋€數(shù)值輸入,兩個位設(shè)定開關(guān)。數(shù)值輸入用于設(shè)定JOG運(yùn)動的速度,兩個開關(guān)分別控制軸的正轉(zhuǎn)和反轉(zhuǎn)。
PLC程序:
?、賳⒂肕odbus TCP從站,與觸摸屏通訊
?、谔砑覯C_Power軸使能功能塊以使能軸。
?、厶砑覯C_JOG_ChangeVel功能塊,添加用于控制軸正向運(yùn)動、反向運(yùn)動和運(yùn)動速度的變量,并綁定與觸摸屏對應(yīng)的通訊地址。
結(jié)果:
04、小結(jié)
通過上述介紹我們了解到在線變速的兩種實現(xiàn)方式,不難發(fā)現(xiàn),兩種實現(xiàn)方式從編程到實現(xiàn)的效果存在不少區(qū)別。
從運(yùn)動控制的覆蓋性來說,BufferMode支持絕對點(diǎn)位、相對點(diǎn)位、恒速運(yùn)動的在線變速,而指令在這個基礎(chǔ)上還支持JOG在線變速。
在編程方面,BufferMode往往需要定義多個運(yùn)動功能塊來實現(xiàn)在線變速,而在線變速指令只需要一條指令便可實現(xiàn)運(yùn)動與運(yùn)動中變速,而且在線變速指令比BufferMode的實現(xiàn)代碼要簡單得多。
在運(yùn)動效果方面,BufferMode能在更加精準(zhǔn)的位置上進(jìn)行變速,而指令需要用程序判斷達(dá)到指定的軸位置再進(jìn)行變速,在變速的點(diǎn)位精度上不如BufferMode。
從調(diào)試的靈活性來說,在線變速指令可以隨時修改速度的特性,能給調(diào)試帶來許多方便,且能大幅減少程序量。
無論是何種實現(xiàn)方式,只要是符合使用場景的方式,就是合適的方式。用戶應(yīng)根據(jù)實際的使用需求選擇合適的實現(xiàn)方式。
END
中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(m.y3602.cn)獨(dú)家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>顛覆傳統(tǒng)加工!維宏VHTube一鍵實現(xiàn)變徑...
2025-06-16
2025-06-09
從外觀到內(nèi)核的「超進(jìn)化」!NK550M五軸...
2025-06-06
2025-05-19
2025-04-30
性能躍升20%!維宏NK300CX Plus數(shù)控系統(tǒng)...
2025-04-11