技術支援

SmartMotor 雙軸同步模式

目標: 雙軸同時動作、同時停止,移動過程中即使某一軸受到阻力,兩軸的編碼器位置仍保持相同。

影片開始時,當馬達A有阻力時,馬達B跟隨馬達A作動;

反之,當馬達B有阻力時,馬達A跟隨馬達B作動。

~~~~~~~~  程式範例   ~~~~~~~~~

(1)   交叉跟隨範例

使用時請下指令GOSUB(40):1

 

馬達A

EIGN(2) EIGN(3) ZS
CADDR=1     ‘設定馬達A之CAN address
CBAUD=125000     ‘設定馬達A之CAN baud rate
O=0     ‘設定位置為零
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

 

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

 

馬達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

 

C5     ‘馬達B啟動跟隨模式
EIGN(W,0) ZS
MFR     ‘設定為跟隨模式
MFMUL=1     ‘設定跟隨比例:分子
MFDIV=1     ‘設定跟隨比例:分母
G TWAIT     ‘執行運動
RETURN

 

C50
a=EA:1     ‘將馬達A位置誤差值記錄在變數a
b=ABS(a)     ‘將變數a值的絕對值放入變數b
STACK     ‘清除所有RETURN地址,避免連續呼叫副程式中斷
GOSUB(4):1     ‘使馬達A啟動跟隨模式
TWAIT
WAIT=2000
MP     ‘馬達B啟動位置模式
ADT=100 VT=xx PT=4000*500     ‘前往絕對位置4000*500
G     ‘開始運動
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
CBAUD=125000     ‘設定馬達A之baud rate
ADT=100 VT=32768 PRT=0
xx=32768*2     ‘設定馬達速度值
O=0     ‘設定位置為零
END

 

C30
GOSUB(4):2     ‘使馬達B啟動跟隨模式
WAIT=100
MP     ‘馬達A啟動位置模式
ADT=100 VT=xx PT=4000*500     ‘前往絕對位置4000*500
G     ‘開始運動
WHILE 1
GOSUB31     ‘前往副程式C31
LOOP
RETURN

 

C31
a=EA:2     ‘將馬達B位置誤差值記錄在變數a
b=ABS(a)     ‘將變數a值的絕對值放入變數b
IF b>20     ‘當馬達B位置誤差大於設定值20時
VT=VT*0.5     ‘馬達A減速為原速度的1/2           
G     ‘開始運動
ELSE     ‘當馬達B位置誤差小於或等於設定值20時
VT=xx     ‘恢復馬達A速度為原設定值
G     ‘開始運動
ENDIF
RETURN 

 

馬達B

EIGN(2) EIGN(3) ZS
CADDR=2     ‘設定馬達B之CAN address
CBAUD=125000     ‘設定馬達B之baud rate
O=0     ‘設定位置為零
ADT=1000 VT=327680 PRT=0
END

 

C4     ‘馬達B啟動跟隨模式
EIGN(W,0) ZS
MFR     ‘設定為跟隨模式
MFMUL=1     ‘設定跟隨比例:分子
MFDIV=1     ‘設定跟隨比例:分母
   ‘執行運動
RETURN