—SmartMotor中斷指令功能:以急停為例(class5)—
SmartMotor的中斷指令能夠在任何時候,
在滿足所設定的中斷功能時,就跳到指定的副程式
這邊大略說明ITR(A,B,C,D,E)的設定:
A是指中斷的設定組,可設定0~7,可用8組
B是Status Word的頁次,可在”Motor View”的視窗來找你要的功能
C是Status Word的項次,和B是搭配的,IO 0的話B為16,C為0
D是Status Word的要啟動中斷的開關狀態,1為開0為關
E是設定中斷時要跳到的副程式代號,副程式可設定0~999
*與中斷相關的指令
EITR(#) :設定第#組中斷可用
DITR(#) :取消第#組中斷功能
ITRE :啟動所有中斷功能
ITRD :取消所有中斷功能
程式範例1:(以急停為例)
=======================================================
ITR(0,16,0,0,0) ‘設定第0組中斷,在IO 0狀態為0時,跳到副程式0
EITR(0) ‘設定第0組中斷可用
ITRE ‘啟動中斷功能
C10 ‘製造不結束主程式的迴圈副程式10
GOTO10
END ‘結束主程式(結束的話中斷功能也被關閉,故必須讓程式不能到END)
C0 ‘副程式0
X ‘主控馬達停止
PRINT(#128,”X”,#13) ‘其他馬達停止
RETURNI ‘結束中斷副程式(注意此處與一般副程式結尾不同)
=======================================================
程式範例2:
(IO 0狀態為0時,馬達停止並印出目前位置;
IO 0狀態為1時,馬達從停止點繼續運動)
=======================================================
EIGN(2) EIGN(3) ZS ‘取消馬達限制
ITR(0,16,0,0,123) ‘設定第0組中斷,在IO 0狀態為0時,跳到副程式123
EITR(0) ‘設定第0組中斷可用
ITRE ‘啟動中斷功能
C1 ‘副程式1
MP ‘位置模式
G ‘執行
O=0 ‘設定馬達目前位置為絕對位置零
VT=32768 ‘設定速度
ADT=100 ‘設定加減速度
PT=200000 ‘設定目標絕對位置
G ‘馬達執行運動
GOTO1 ‘前往副程式1
END ‘結束主程式
C123 ‘副程式123
X ‘馬達減速至停止
TWAIT ‘等待停止
PRINT(“POSITION:”,PA,#13) ‘印出目前位置
WAIT=100 ‘等待100ms
WHILE IN(0)==0 ‘當 IO 0狀態為0時,會一直停留在迴圈
LOOP
RETURNI ‘結束中斷副程式(注意此處與一般副程式結尾不同)
=======================================================