OB 優(yōu)先級和運行時特性
S7-1200-CPU 支持優(yōu)先級 1(最低)到 27(最高)。為 OB 分配其啟動事件的優(yōu)先級。中斷 OB 只能由時間錯誤中斷進(jìn)行中斷。 此規(guī)則也適用于優(yōu)先級高于當(dāng)前激活 OB 的事件。即,除時間錯誤中斷 OB 外,只能激活一個中斷 OB。
正在執(zhí)行中斷 OB 時,生成的任何其它事件都會按照其優(yōu)先級添加到隊列中。稍后按照其發(fā)生的時間順序來處理隊列中的啟動事件。
CPU 上的程序執(zhí)行:
循環(huán) OB 由中斷 OB 進(jìn)行中斷。
中斷 OB 只能由時間錯誤中斷 OB 進(jìn)行中斷。
下圖顯示了基本順序:
① and ②某個事件(如硬件中斷)調(diào)用其相關(guān)聯(lián)的 OB。
不中斷地執(zhí)行已調(diào)用的 OB 及其所有嵌套塊。如果隊列不包含任何可觸發(fā) OB啟動的事件,則在完成中斷處理時會繼續(xù)執(zhí)行循環(huán) OB。
③ 中斷 OB 只能由時間錯誤中斷 OB (OB 80) 進(jìn)行中斷。
④ 中斷處理期間會發(fā)生新的報警觸發(fā)事件。這個新事件會添加到隊列中。排隊的事件只能在完成執(zhí)行當(dāng)前中斷 OB 后按照以下規(guī)則連續(xù)調(diào)用其相應(yīng)的 OB:
● 事件按照其優(yōu)先級順序進(jìn)行處理(從最高優(yōu)先級開始)
● 優(yōu)先級相同的事件按照時間順序進(jìn)行處理
⑤ 循環(huán) OB 相繼進(jìn)行處理。
過程事件及其優(yōu)先級
過程事件由 I/O(例如通過數(shù)字量輸入)觸發(fā)并在 S7-1200 CPU 中啟動對已分配 OB 的調(diào)用。 分配給硬件中斷事件的 OB 就是所謂的硬件中斷 OB。
過程事件及其優(yōu)先級的示例:
● 中斷觸發(fā)模塊中的過程事件“上升沿”或“下降沿”:由此事件啟動的硬件中斷 OB 總是分配為優(yōu)先級 5。
● 來自高速計數(shù)器的過程事件
– 計數(shù)值對應(yīng)于參考值
– 更改計數(shù)方向
– 高速計數(shù)器的外部復(fù)位
由此事件啟動的硬件中斷 OB 總是分配為優(yōu)先級 6。
下圖顯示了硬件中斷執(zhí)行的順序。
硬件中斷執(zhí)行
① 硬件中斷觸發(fā)事件(如輸入端的上升沿)調(diào)用它所屬的 OB。
② 如果執(zhí)行 OB 時發(fā)生觸發(fā)硬件中斷的新事件,則將該事件輸入到隊列中。
③ 觸發(fā)硬件中斷的新事件會啟動分配給此事件的硬件中斷 OB。
分配中斷觸發(fā)事件在設(shè)備視圖的輸入屬性中,將中斷觸發(fā)事件分配給 OB。
● 只能將中斷觸發(fā)事件分配給單個 OB。
● 但是,可將 OB 分配給多個中斷觸發(fā)事件。
即,可將上升沿事件和下降沿事件分配給同一個中斷 OB,以便對任何輸入信號的切換觸發(fā)相同的響應(yīng)。
● 每條指令中,已啟動的 OB 都可以中斷循環(huán) OB。一致的數(shù)據(jù)訪問由最多雙字大小來保證。
● 可參數(shù)化模塊特定的中斷觸發(fā)事件,如輸入端的上升沿和下降沿。
● 在中斷觸發(fā)模塊的組態(tài)中分配中斷觸發(fā)事件和要啟動的 OB。但是,在已啟動的硬件中斷 OB 中,可通過 DETACH 指令覆蓋此分配,或者通過 ATTACH 指令將相同的事件分配給不同的 OB。使用該功能可對外部過程信號進(jìn)行靈活的響應(yīng)。
審核編輯:湯梓紅
-
cpu
+關(guān)注
關(guān)注
68文章
11066瀏覽量
216620 -
計數(shù)器
+關(guān)注
關(guān)注
32文章
2290瀏覽量
96274 -
S7-1200
+關(guān)注
關(guān)注
11文章
333瀏覽量
18545
原文標(biāo)題:OB 優(yōu)先級和運行時特性
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
RTOS應(yīng)用中的優(yōu)先級反轉(zhuǎn)問題
如何理解任務(wù)優(yōu)先級反轉(zhuǎn)?
移植ucos低優(yōu)先級的任務(wù)一直在運行高優(yōu)先級的任務(wù)沒有運行是為什么?
freertos的任務(wù)運行時間怎么設(shè)置
stm32定時器優(yōu)先級
如何應(yīng)用優(yōu)先級錯誤處理組織塊(OB85)
cortex M內(nèi)核優(yōu)先級設(shè)置

2.FreeRTOS中斷優(yōu)先級和任務(wù)優(yōu)先級

STM32F103芯片中斷優(yōu)先級以及FreeRTOS優(yōu)先級設(shè)置

uC/OS-II學(xué)習(xí)筆記——優(yōu)先級反轉(zhuǎn)與優(yōu)先級繼承機制

中斷優(yōu)先級處理的原則及配置 搶占優(yōu)先級和響應(yīng)優(yōu)先級的區(qū)別

FreeRTOS任務(wù)的優(yōu)先級示例
Free RTOS的優(yōu)先級翻轉(zhuǎn)

什么是優(yōu)先級反轉(zhuǎn)

評論