SmartMotor 雙軸同步模式
目標: 雙軸同時動作、同時停止,移動過程中即使某一軸受到阻力,
兩軸的編碼器位置仍保持相同。
影片開始時,當馬達A有阻力時,馬達B跟隨馬達A作動;
反之,當馬達B有阻力時,馬達A跟隨馬達B作動。
~~~~~~~~~~~~~~~~~~~~~~~~~ 程式範例 ~~~~~~~~~~~~~~~~~~~~~~~~~~
(1) 交叉跟隨範例
使用時請下指令GOSUB(40):1
馬達A
EIGN(2) EIGN(3) ZS
CADDR=1 '設定馬達A之CAN address
ADT=100 VT=32768 PRT=0
MP G '啟動位置模式
xx=32768*2 '設定馬達速度值
END
C4 '馬達A啟動跟隨模式
EIGN(W,0) ZS
MFR '設定為跟隨模式
MFMUL=1 '設定跟隨比例:分子
MFDIV=1 '設定跟隨比例:分母
G TWAIT '執行運動
RETURN
EIGN(W,0) ZS
MFR '設定為跟隨模式
MFMUL=1 '設定跟隨比例:分子
G TWAIT '執行運動
RETURN
C40
a=EA:2 '將馬達B位置誤差值記錄在變數a
b=ABS(a) '將變數a值的絕對值放入變數b
STACK '清除所有RETURN地址,避免連續呼叫副程式中斷
GOSUB(5):2 '使馬達B啟動跟隨模式
TWAIT
WAIT=2000
MP '馬達A啟動位置模式
ADT=100 VT=xx PT=4000*500 '前往絕對位置4000*500
G '開始運動
WHILE b<50 '當馬達B位置誤差超過50設定值則跳出迴圈
a=EA:2
b=ABS(a)
LOOP
OFF '馬達A關閉伺服控制
TWAIT WAIT=1000
MP:0 PRT:0=0 G:0 TWAIT '馬達A與馬達B啟動位置模式
GOTO(50):2 '切換成馬達B主;馬達A跟隨
RETURN
a=EA:2 '將馬達B位置誤差值記錄在變數a
GOSUB(5):2 '使馬達B啟動跟隨模式
TWAIT
WAIT=2000
MP '馬達A啟動位置模式
ADT=100 VT=xx PT=4000*500 '前往絕對位置4000*500
WHILE b<50 '當馬達B位置誤差超過50設定值則跳出迴圈
a=EA:2
b=ABS(a)
LOOP
OFF '馬達A關閉伺服控制
TWAIT WAIT=1000
MP:0 PRT:0=0 G:0 TWAIT '馬達A與馬達B啟動位置模式
GOTO(50):2 '切換成馬達B主;馬達A跟隨
RETURN
馬達B
EIGN(2) EIGN(3) ZS
CADDR=2 '設定馬達B之CAN address
CBAUD=125000 '設定馬達B之CAN baud rate
O=0 '設定位置為零
ADT=100 VT=32768 PRT=0
MP G '啟動位置模式
xx=32768*2 '設定馬達速度值
END
CADDR=2 '設定馬達B之CAN address
ADT=100 VT=32768 PRT=0
MP G '啟動位置模式
xx=32768*2 '設定馬達速度值
END
EIGN(W,0) ZS
MFR '設定為跟隨模式
MFMUL=1 '設定跟隨比例:分子
MFDIV=1 '設定跟隨比例:分母
G TWAIT '執行運動
RETURN
a=EA:1 '將馬達A位置誤差值記錄在變數a
GOSUB(4):1 '使馬達A啟動跟隨模式
TWAIT
WAIT=2000
MP '馬達B啟動位置模式
ADT=100 VT=xx PT=4000*500 '前往絕對位置4000*500
WHILE b<50 '當馬達A位置誤差超過50設定值則跳出迴圈
a=EA:1
b=ABS(a)
LOOP
OFF '馬達B關閉伺服控制
TWAIT WAIT=1000
MP:0 PRT:0=0 G:0 TWAIT '馬達A與馬達B啟動位置模式
GOTO(40):1 '切換成馬達A主;馬達B跟隨
RETURN
(2) Combitronic 同步範例 (影片連結)
使用時請下指令GOSUB(30):1
馬達A
EIGN(2) EIGN(3) ZS
CADDR=1 '設定馬達A之CAN address
xx=32768*2 '設定馬達速度值
O=0 '設定位置為零
END
GOSUB(4):2 '使馬達B啟動跟隨模式
WAIT=100
MP '馬達A啟動位置模式
ADT=100 VT=xx PT=4000*500 '前往絕對位置4000*500
WHILE 1
GOSUB31 '前往副程式C31
RETURN
a=EA:2 '將馬達B位置誤差值記錄在變數a
VT=VT*0.5 '馬達A減速為原速度的1/2
ELSE '當馬達B位置誤差小於或等於設定值20時
VT=xx '恢復馬達A速度為原設定值
G '開始運動
ENDIF
RETURN
CADDR=2 '設定馬達B之CAN address
ADT=1000 VT=327680 PRT=0
END
C4 '馬達B啟動跟隨模式
EIGN(W,0) ZS
MFR '設定為跟隨模式
MFMUL=1 '設定跟隨比例:分子
MFDIV=1 '設定跟隨比例:分母
G '執行運動
RETURN