技術支援

中斷指令-以急停為例(Class5)

—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

              ‘主控馬達停止

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          ‘設定目標絕對位置
                      ‘馬達執行運動
GOTO1                ‘前往副程式1
END                     ‘結束主程式
C123                      ‘副程式123
X                            ‘馬達減速至停止
TWAIT                        ‘等待停止
PRINT(“POSITION:”,PA,#13)    ‘印出目前位置
WAIT=100                                       ‘等待100ms     
WHILE IN(0)==0        ‘當 IO 0狀態為0時,會一直停留在迴圈     
LOOP
RETURNI          ‘結束中斷副程式(注意此處與一般副程式結尾不同)

=======================================================