西門(mén)子PLC-S7-1200如何設置多個(gè)高速計數器的硬件中斷
● 硬件中斷 OB 的功能
硬件中斷 OB 在發(fā)生相關(guān)硬件事件時(shí)執行,可以快速的響應并執行硬件中斷 OB 中的程序(例如立即停止某些關(guān)鍵設備)。
硬件中斷事件包括內置數字輸入端的上升沿和下降沿事件以及 HSC(高速計數器)事件。當發(fā)生硬件中斷事件,硬件中斷 OB 將中斷正常的循環(huán)程序而優(yōu)先執行。S7-1200可以在硬件配置的屬性中預先定義硬件中斷事件,一個(gè)硬件中斷事件只允許對應一個(gè)硬件中斷 OB ,而一個(gè)硬件中斷 OB 可以分配給多個(gè)硬件中斷事件。在 CPU 運行期間,可使用“ATTACH”附加指令和“DETACH”分離指令對中斷事件重新分配。硬件中斷 OB 的編號必須為40~47,或大于、等于123。
● 與硬件中斷 OB 相關(guān)的指令功能
指令名稱(chēng) | 功能說(shuō)明 |
ATTACH |
將硬件中斷事件和硬件中斷 OB 進(jìn)行關(guān)聯(lián)。 |
DETACH | 將硬件中斷事件和硬件中斷 OB 進(jìn)行分離。 |
以上指令的相關(guān)詳細信息,請查看下面鏈接中S7-1200系統手冊,第8.4.1章:附加和分離指令。
http://support.automation.siemens.com/CN/view/zh/36932465
● 硬件中斷 OB 的使用示例:
圖1. 硬件中斷關(guān)系
1、按如下步驟創(chuàng )建硬件中斷 OB40 ,同樣的方法創(chuàng )建 OB41 。如圖2。
圖2. 創(chuàng )建硬件中斷 OB40
2、OB40 中編程如下圖,當硬件輸入 I0.0 上升沿時(shí),觸發(fā)硬件中斷執行 MW200 加1。如圖3。
圖3. OB 40 中編程
3、OB41 中編程如下圖,當硬件輸入 I0.1 上升沿時(shí),觸發(fā)硬件中斷執行 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、測試結果:程序下載后,在監控表中查看 MW200 的數據。
① 當 I0.0 接通,觸發(fā)中斷 OB40 ,MW200 的數值累加1。結果如圖7。
圖7. I0.0 硬件中斷結果
② 當 I0.1 接通,觸發(fā)中斷 OB41 ,MW200 的數值遞減1。結果如圖8。
圖8. I0.1 硬件中斷結果
6、如果需要在 CPU 運行期間對中斷事件重新分配,可通過(guò)“ATTACH”附加指令實(shí)現,OB1 中編程步驟如下圖。如圖9。
圖9. “ATTACH”指令
① 如果“ATTACH”附加指令的引腳“ADD”為 FALSE,EVENT 中的事件將替換 OB40 中的原有事件。即硬件中斷事件 I0.1“上升沿1”事件將替換原來(lái) OB40 中關(guān)聯(lián)的 I0.0“上升沿0”事件,見(jiàn)下圖10:
圖10. 硬件中斷關(guān)系
② 如果“ATTACH”附加指令的引腳“ADD”為 TRUE,EVENT 中的事件將添加至 OB40 ,OB40 在 I0.0“上升沿0”和 I0.1“上升沿1”事件觸發(fā)時(shí)均會(huì )執行,見(jiàn)下圖11:
圖11. 硬件中斷關(guān)系
“ATTACH”指令參數說(shuō)明:
EN | :=%M100.0 | //當 EN 端出現上升沿時(shí),使能該指令 |
OB_NR | :=40 | //需要關(guān)聯(lián)的 OB 的編號 |
EVENT | :=“上升沿1” | //需要關(guān)聯(lián)的硬件中斷事件名稱(chēng) |
ADD | :=FALSE |
//ADD=FALSE(默認值):該事件將取代先前為此 OB 分配的所有事件。ADD=TRUE:該事件將添加到此 OB 中。 |
RET_VAL | :=%MW0 | //狀態(tài)返回值(詳細信息請查看在線(xiàn)幫助) |
7、如果需要在 CPU 運行期間對中斷事件進(jìn)行分離,可通過(guò)“DETACH”指令實(shí)現,OB 1 中編程如圖12。
圖12. “DETACH”指令
當 M100.2 置1使能指令 DETACH 后,硬件中斷事件和硬件中斷 OB 關(guān)系如下圖。如圖13。
圖13. 硬件中斷關(guān)系
“DETACH”指令參數說(shuō)明:
EN | :=%M100.2 | //當 EN 端出現上升沿時(shí),使能該指令 |
OB_NR | :=40 | //需要分離的 OB 的編號 |
EVENT | :=“上升沿0” | //需要分離的硬件中斷事件名稱(chēng) |
RET_VAL | :=%MW2 | //狀態(tài)返回值(詳細信息請查看在線(xiàn)幫助) |
使用硬件中斷需要注意什么?
1、一個(gè)硬件中斷事件只能分配給一個(gè)硬件中斷 OB ,而一個(gè)硬件中斷 OB 可以分配給多個(gè)硬件中斷事件;
2、用戶(hù)程序中最多可使用50個(gè)互相獨立的硬件中斷 OB ;數字量輸入和高速計數器均可觸發(fā)硬件中斷;
3、中斷 OB 和中斷事件在硬件組態(tài)中定義;在 CPU 運行時(shí)可通過(guò)“ATTACH”和“DETACH”指令進(jìn)行中斷事件重新分配;
4、如果“ATTACH”指令的使能端 EN 為脈沖信號觸發(fā),在使用“ATTACH”指令進(jìn)行中斷事件重新分配后;若 CPU 的操作模式從 STOP 切換到 RUN 時(shí)執行一次,包括啟動(dòng)模式處于 RUN 模式時(shí)上電和執行 STOP 到 RUN 命令切換,則硬件中斷 OB 和硬件中斷事件將恢復為在硬件組態(tài)中定義的分配關(guān)系;
5、如果一個(gè)中斷事件發(fā)生,在該中斷 OB 執行期間,同一個(gè)中斷事件再次發(fā)生,則新發(fā)生的中斷事件丟失;
6、如果一個(gè)中斷事件發(fā)生,在該中斷 OB 執行期間,又發(fā)生多個(gè)不同的中斷事件中,則新發(fā)生的中斷事件進(jìn)入排隊,等待第一個(gè)中斷 OB 執行完畢后依次執行。
電話(huà):13818569113 15721373211
郵箱:fushidianji@139.com
網(wǎng)址:http://xiangtai88.cn
地址:上海青浦區北青公路7171號111-112室