SmartMotor碰到韌體極限時自動反彈功能

 

SmartMotor碰到韌體極限時自動反彈功能




問題描述(以直線運動滑台為例)

    當滑塊每次觸碰到韌體正負極限時,馬達會跳錯誤並停止運動,此時需要將馬達斷電,並手動將滑塊移開極限位置,再將馬達重新上電,過程繁複且耗時間。

 

解決辦法:

碰到正負極限時,馬達FAULT停止動作,進入中斷指令副程式,清除錯誤且關閉韌體極限功能,滑塊自動移動離開極限位置後,啟動韌體極限功能,並回到主程式。


範例程式:

'Bms: 觸發負()極限即時訊號
'Bps: 觸發正()極限即時訊號
EIGN(2) EIGN(3) ZS
t=1000
GOSUB0                                  '原點復歸
ITR(0,1,15,1,10)                      '設定第0組中斷,Bms狀態為1,跳至中斷副程式C10
ITR(1,1,14,1,10)                      '設定第1組中斷,Bps狀態為1,跳至中斷副程式C10
EITR(0)                                    '設定第0組中斷可用
EITR(1)                                    '設定第1組中斷可用
ITRE                                        '啟動中斷功能
C1                                            '製造不結束主程式的迴圈副程式C1
GOTO1
END
 
C0                                            '滑台做原點復歸
SLD                                         '關閉韌體極限功能
MT T=-1800 G
c=100
WHILE c>5
a=PA
WAIT=t/10
b=PA
WAIT=t/10
c=a-b
LOOP
WAIT=t/2
MP
ADT=1000
VT=327680
PRT=4000
G
TWAIT
WAIT=t
O=0                                           '設定位置為原
SLN=-2500                               '設定韌體極限負極限位置
SLP=130000                             '設定韌體極限正極限位置
SLE                                           '啟動韌體極限功能
RETURN
 
C10                                           '中斷副程式
WAIT=t/2
ZS                                             '清除錯誤訊號
SLD                                          '關閉韌體極限功能
IF PA>0
MP PRT=-4000 G TWAIT WAIT=t/2        '馬達往負方向轉一圈
ELSE
MP PRT=4000 G TWAIT WAIT=t/2         '馬達往正方向轉一圈
ENDIF
SLE                                           '啟動韌體極限功能
RETURNI