INTERRUPT...DECL ...WHEN ...DO ...中斷指令
中斷聲明的原理:
當出現諸如輸入等定義的事件時,控制器中斷當前程序,并處理一個定義的子程序。
事件和子程序用 INTERRUPT...DECL ...WHEN ...DO ... 來定義
中斷聲明是一個指令。它必須位于程序的指令部分,不允許位于聲明部分!
聲明后先將取消中斷 (Interrupt)。必須先激活中斷,然后才能對定義的事件作出反應!
中斷聲明的句法:
Global (全局)
中斷只有從對其進行聲明的層面起才被識別。
在一個子程序中聲明的中斷在主程序中是未知的 (此處為中斷 23)。一個在聲明的開頭寫有關鍵詞 GLOBAL 的中斷在上一層面也是已知的(此處為中斷 2)。
Prio:優先級
1.有優先級 1、2、4- 39 和 81 - 128 可供選擇。
2.優先級 3 和 40 - 80 是預留給系統應用的。
3.某些情況下中斷 19 預留給制動測試。
4.如果多個中斷同時出現,則先執行最高優先級的中斷,然后再執行優.
5.先級低的中斷。(1 = 最高優先級)
事件:觸發中斷的事件。該事件在出現時通過一個脈沖邊沿被識別 (脈沖邊沿觸發)。
中斷程序
1.應處理的中斷程序的名稱。
2.該子程序被稱為中斷程序。
3.運行時間變量不允許作為參數傳遞給中斷程序
4.允許使用在一個數據列表中聲明的變量。
INTERRUPT +操作+<編號>
ON: 激活一個中斷。
OFF : 取消激活一個中斷。
DISABLE: 禁止一個中斷。
ENABLE : 開通一個原本禁止的中斷。
例:INTERRUPT ON 10 中斷被識別并被執行 (脈沖正沿)
這種情況下,中斷由狀態的轉換而觸發,例如,對于$IN[22]==TRUE 而言,通過 FALSE 到 TRUE 的轉換。也就是說,在 INTERRUPT ON 時不允許已是該狀態,否則就無法觸發中斷!在此情況下,還必須注意:狀態轉換最早允許在 INTERRUPT ON 后的一個插值周期進行。(可通過在INTERRUPT ON 后編程設定 WAIT SEC 0.012 來實現。若不希望出現預進停止,則可另外在 WAIT SEC 前再編入一個 CONTINUE。)原因是 INTERRUPTON 需要一個插值周期 (= 12ms),直到中斷真正激活。如果先前變換了狀態,中斷不能識別這一變換。
中斷指令與FB_PSPS程序的使用分析:
DEF UP1() UP程序
UP Anfang
SPS_N=-1
SPS_FERTIG=FALSE
IF NOTCALLBYSELECT THEN 在由程序調用UP 時 CALLBYSELECT=false
INTERRUPTDECL 10 WHEN $CYCFLAG[254]==FALSE DO VW(#FB_STOP,TRUE)
由M254 的非來激活中斷,觸發程序VW(#FB_STOP,TRUE) 中斷的等級是10
INTERRUPT ON10 激活中斷
INT10=TRUE
VW_USR_R(#USR_INIT)執行 VW_USR_R初始化
ENDIF
VW(#VW_INIT_UP,TRUE)執行 VW初始化
DEF FB_STOP ()聲明程序FB_STOP()
INT INT_N
BOOL EXIT_OK
BOOL IN_APO_1
-
程序
+關注
關注
117文章
3800瀏覽量
81563 -
Global
+關注
關注
0文章
12瀏覽量
8472 -
KUKA機器人
+關注
關注
4文章
143瀏覽量
9226
原文標題:KUKA機器人FB_PSPS由INTERRUPT DECL 中斷程序的觸發過程分析
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
【「具身智能機器人系統」閱讀體驗】2.具身智能機器人的基礎模塊
開源項目!能夠精確地行走、跳舞和執行復雜動作的機器人—Tillu
【「具身智能機器人系統」閱讀體驗】2.具身智能機器人大模型
【「具身智能機器人系統」閱讀體驗】1.初步理解具身智能
【「具身智能機器人系統」閱讀體驗】+初品的體驗
開源項目!用ESP32做一個可愛的無用機器人
FMEA在焊接機器人研發中的應用
柔性機器人與剛性機器人區別與聯系

評論