硬件中斷 OB
● 硬件中斷 OB 的功能
硬件中斷 OB 在發(fā)生相關(guān)硬件事件時(shí)執(zhí)行,可以快速的響應(yīng)并執(zhí)行硬件中斷 OB 中的程序(例如立即停止某些關(guān)鍵設(shè)備)。
硬件中斷事件包括內(nèi)置數(shù)字輸入端的上升沿和下降沿事件以及 HSC(高速計(jì)數(shù)器)事件。
當(dāng)發(fā)生硬件中斷事件,硬件中斷 OB 將中斷正常的循環(huán)程序而優(yōu)先執(zhí)行。
S7-1200可以在硬件配置的屬性中預(yù)先定義硬件中斷事件,一個(gè)硬件中斷事件只允許對應(yīng)一個(gè)硬件中斷 OB ,而一個(gè)硬件中斷 OB 可以分配給多個(gè)硬件中斷事件。
在 CPU 運(yùn)行期間,可使用“ATTACH”附加指令和“DETACH”分離指令對中斷事件重新分配。
硬件中斷 OB 的編號必須為40~47,或大于、等于123。
● 與硬件中斷 OB 相關(guān)的指令功能
指令名稱 | 功能說明 |
ATTACH | 將硬件中斷事件和硬件中斷 OB 進(jìn)行關(guān)聯(lián)。 |
DETACH | 將硬件中斷事件和硬件中斷 OB 進(jìn)行分離。 |
● 硬件中斷 OB 的使用示例:
例如:當(dāng)硬件輸入 I0.0 上升沿時(shí),觸發(fā)硬件中斷 OB40(執(zhí)行累加程序),當(dāng)硬件輸入 I0.1 上升沿時(shí),觸發(fā)硬件中斷 OB41(執(zhí)行遞減程序),硬件中斷事件和硬件中斷 OB 關(guān)系如圖1。
圖1. 硬件中斷關(guān)系
1、按如下步驟創(chuàng)建硬件中斷 OB40 ,同樣的方法創(chuàng)建 OB41 。如圖2。
圖2. 創(chuàng)建硬件中斷 OB40
2、OB40 中編程如下圖,當(dāng)硬件輸入 I0.0 上升沿時(shí),觸發(fā)硬件中斷執(zhí)行 MW200 加1。如圖3。
圖3. OB 40 中編程
3、OB41 中編程如下圖,當(dāng)硬件輸入 I0.1 上升沿時(shí),觸發(fā)硬件中斷執(zhí)行 MW200 減1。如圖4。
圖4. OB41 中編程
4、在 CPU 屬性窗口中關(guān)聯(lián)硬件中斷事件,如下圖所示,分別將 I0.0 和 OB40 關(guān)聯(lián),I0.1 和 OB41 關(guān)聯(lián)。如圖5、6。
圖5. I0.0 和 OB40 關(guān)聯(lián)
圖6. I0.1 和 OB41 關(guān)聯(lián)
5、測試結(jié)果:程序下載后,在監(jiān)控表中查看 MW200 的數(shù)據(jù)。
① 當(dāng) I0.0 接通,觸發(fā)中斷 OB40 ,MW200 的數(shù)值累加1。結(jié)果如圖7。
圖7. I0.0 硬件中斷結(jié)果
② 當(dāng) I0.1 接通,觸發(fā)中斷 OB41 ,MW200 的數(shù)值遞減1。結(jié)果如圖8。
圖8. I0.1 硬件中斷結(jié)果
6、如果需要在 CPU 運(yùn)行期間對中斷事件重新分配,可通過“ATTACH”附加指令實(shí)現(xiàn),OB1 中編程步驟如下圖。如圖9。
圖9. “ATTACH”指令
① 如果“ATTACH”附加指令的引腳“ADD”為 FALSE,EVENT 中的事件將替換 OB40 中的原有事件。
即硬件中斷事件 I0.1“上升沿1”事件將替換原來 OB40 中關(guān)聯(lián)的 I0.0“上升沿0”事件,見下圖10:
圖10. 硬件中斷關(guān)系
② 如果“ATTACH”附加指令的引腳“ADD”為 TRUE,EVENT 中的事件將添加至 OB40 ,OB40 在 I0.0“上升沿0”和 I0.1“上升沿1”事件觸發(fā)時(shí)均會執(zhí)行,見下圖11:
圖11. 硬件中斷關(guān)系
“ATTACH”指令參數(shù)說明:
EN | :=%M100.0 | //當(dāng) EN 端出現(xiàn)上升沿時(shí),使能該指令 |
OB_NR | :=40 | //需要關(guān)聯(lián)的 OB 的編號 |
EVENT | :=“上升沿1” | //需要關(guān)聯(lián)的硬件中斷事件名稱 |
ADD | :=FALSE | //ADD=FALSE(默認(rèn)值):該事件將取代先前為此 OB 分配的所有事件。ADD=TRUE:該事件將添加到此 OB 中。 |
RET_VAL | :=%MW0 | //狀態(tài)返回值(詳細(xì)信息請查看在線幫助) |
7、如果需要在 CPU 運(yùn)行期間對中斷事件進(jìn)行分離,可通過“DETACH”指令實(shí)現(xiàn),OB 1 中編程如圖12。
圖12. “DETACH”指令
當(dāng) M100.2 置1使能指令 DETACH 后,硬件中斷事件和硬件中斷 OB 關(guān)系如下圖。如圖13。
圖13. 硬件中斷關(guān)系
“DETACH”指令參數(shù)說明:
EN | :=%M100.2 | //當(dāng) EN 端出現(xiàn)上升沿時(shí),使能該指令 |
OB_NR | :=40 | //需要分離的 OB 的編號 |
EVENT | :=“上升沿0” | //需要分離的硬件中斷事件名稱 |
RET_VAL | :=%MW2 | //狀態(tài)返回值(詳細(xì)信息請查看在線幫助) |
常見問題:
使用硬件中斷需要注意什么?
1、一個(gè)硬件中斷事件只能分配給一個(gè)硬件中斷 OB ,而一個(gè)硬件中斷 OB 可以分配給多個(gè)硬件中斷事件;
2、用戶程序中最多可使用50個(gè)互相獨(dú)立的硬件中斷 OB ;數(shù)字量輸入和高速計(jì)數(shù)器均可觸發(fā)硬件中斷;
3、中斷 OB 和中斷事件在硬件組態(tài)中定義;在 CPU 運(yùn)行時(shí)可通過“ATTACH”和“DETACH”指令進(jìn)行中斷事件重新分配;
4、如果“ATTACH”指令的使能端 EN 為脈沖信號觸發(fā),在使用“ATTACH”指令進(jìn)行中斷事件重新分配后;若 CPU 的操作模式從 STOP 切換到 RUN 時(shí)執(zhí)行一次,包括啟動模式處于 RUN 模式時(shí)上電和執(zhí)行 STOP 到 RUN 命令切換,則硬件中斷 OB 和硬件中斷事件將恢復(fù)為在硬件組態(tài)中定義的分配關(guān)系;
5、如果一個(gè)中斷事件發(fā)生,在該中斷 OB 執(zhí)行期間,同一個(gè)中斷事件再次發(fā)生,則新發(fā)生的中斷事件丟失;
6、如果一個(gè)中斷事件發(fā)生,在該中斷 OB 執(zhí)行期間,又發(fā)生多個(gè)不同的中斷事件中,則新發(fā)生的中斷事件進(jìn)入排隊(duì),等待第一個(gè)中斷 OB 執(zhí)行完畢后依次執(zhí)行。
審核編輯:劉清
-
cpu
+關(guān)注
關(guān)注
68文章
10904瀏覽量
213027 -
計(jì)數(shù)器
+關(guān)注
關(guān)注
32文章
2261瀏覽量
94986 -
HSC
+關(guān)注
關(guān)注
0文章
8瀏覽量
8366 -
硬件中斷
+關(guān)注
關(guān)注
0文章
11瀏覽量
6894 -
S7-1200
+關(guān)注
關(guān)注
11文章
331瀏覽量
18073
原文標(biāo)題:硬件中斷 OB
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機(jī)器人及PLC自動化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
Windows環(huán)境下硬件中斷的性能分析
GD32硬件中斷錯(cuò)誤寄存器及相應(yīng)位功能
Step7 OB組織塊介紹和使用技巧
機(jī)架或站故障OB86的功能及相關(guān)信息
插拔中斷OB83的功能和相關(guān)應(yīng)用
啟動OB的功能
OB優(yōu)先級和運(yùn)行時(shí)特性
插拔中斷OB83的使用示例
SIMATIC S7-1500 PLC硬件中斷組織塊及其應(yīng)用介紹
![SIMATIC S7-1500 PLC<b class='flag-5'>硬件</b><b class='flag-5'>中斷</b>組織塊及其應(yīng)用介紹](https://file1.elecfans.com/web2/M00/93/EB/wKgaomTivV2AWDpIAAAwmRtFNno743.png)
西門子博途中循環(huán)中斷功能的編程示例
![西門子博途中循環(huán)<b class='flag-5'>中斷</b><b class='flag-5'>功能</b>的編程示例](https://file1.elecfans.com/web2/M00/0A/55/wKgZomce81GAPGHjAAAiLioYTGM442.png)
評論