西門子PLC硬件中斷組織塊怎么解決
發(fā)布于2022-11-24 14:19
60
3
標(biāo)簽:西門子PLC
硬件中斷組織塊(OB40~OB47)用于快速響應(yīng)信號模塊(SM,即輸入/輸出模塊)、通信處理器(CP)和功能模塊(FM)的信號變化。具有硬件中斷功能的上述模塊將中斷信號傳送到CPU時,將觸發(fā)硬件中斷。絕大多數(shù)S7-300 CPU只能使用OB40,S7-400 CPU 可以使用的硬件中斷OB的個數(shù)與CPU的型號有關(guān)。
為了產(chǎn)生硬件中斷,在組態(tài)有硬件中斷功能的模塊時,應(yīng)啟用硬件中斷。產(chǎn)生硬件中斷時,如果沒有生成和下載硬件中斷組織塊,操作系統(tǒng)將會向診斷緩沖區(qū)輸入錯誤信息,并執(zhí)行異步錯誤處理組織塊OB80。
硬件中斷 OB 默認(rèn)的優(yōu)先級為16~23,可以修改 S7-400的優(yōu)先級。
硬件中斷被模塊觸發(fā)后,操作系統(tǒng)將用OB40的局部變量向用戶提供模塊的起始地址和模塊中產(chǎn)生硬件中斷的點(diǎn)的編號。如果在處理硬件中斷的同時,又出現(xiàn)了其他硬件中斷事件,新的中斷按以下方法識別和處理如果正在處理某一中斷事件,又出現(xiàn)了同一模塊同一通道產(chǎn)生的完全相同的中斷事件,新的中斷事件將丟失,即不處理它。
在圖4-46中數(shù)字量輸入模塊輸入信號的第一個上升沿時觸發(fā)中斷,由于正在用OB40處理中斷,第2個和第3個上升沿產(chǎn)生的中斷信號丟失。
如果正在處理某一中斷信號時,同一模塊其他通道或其他模塊產(chǎn)生了中斷事件,新的請求將被記錄,空閑后再執(zhí)行該中斷。當(dāng)前的中斷組織塊執(zhí)行完后,再處理被記錄的中斷。
1.硬件組態(tài)
生成一個名為“OB40例程”的項(xiàng)目(見隨書光盤中的同名例程),CPU模塊的型號為CPU315-2DP。選中SIMATIC管理器左邊的300站對象,雙擊右邊窗口的“硬件”圖標(biāo),打開硬件組態(tài)工具HW Config(見圖4-47)。將硬件目錄中名為“DI4xNAMUR,Ex”的4 點(diǎn)DI模塊插入4號槽,16點(diǎn)D0模塊插入5號槽。
圖4-47 組態(tài)硬件中斷
自動分配的DI模塊的字節(jié)地址為0。雙擊該模塊,打開它的屬性對話框(見圖4-47的右圖)。用復(fù)選框啟用硬件中斷,設(shè)置10.0產(chǎn)生上升沿中斷,10.1產(chǎn)生下降沿中斷。
2. 編寫OB40中的程序
OB40中的程序(見圖4-48)判斷是哪個模塊的哪個點(diǎn)產(chǎn)生的中斷,然后執(zhí)行相應(yīng)的操作。臨時局部變量OB40_MDL_ADDR和OB40_POINT_ADDR分別是產(chǎn)生中斷的模塊的起始字節(jié)地址和模塊內(nèi)的位地址,數(shù)據(jù)類型分別為WORD和DWORD,這兩個變量不能直接用于整數(shù)比較指令和雙整數(shù)比較指令。
首先用MOVE指令將它們保存到MW6和MD8,才能用比較指令判別是哪一個模塊和哪一點(diǎn)產(chǎn)生的中斷。在10.0的上升沿將Q4.0置位,在10.1的下降沿將Q4.0復(fù)位。
圖4-48 OB40中的程序
3.硬件中斷的仿真實(shí)驗(yàn)
打開PLCSIM(見圖4-49),下載所有的塊,將仿真PLC切換到RUN-P模式。執(zhí)行PLCSIM的菜單命令“Execute”(執(zhí)行)→“Trigger Error OB”(觸發(fā)錯誤OB)→“Hard-ware Interrupt(OB40-OB47)…”,打開“Hardware Interupt OB(40-47)”對話框(見圖4-49右上方的小圖),在文本框“Module address”(模塊地址)內(nèi)輸入模塊的起始地址0,在文本框“Module status(POINT_ADDR)”(模塊狀態(tài)(位地址))內(nèi)輸入模塊內(nèi)的位地址0。
單擊“Apply”(應(yīng)用)按鈕,觸發(fā)I0.0的上升沿中斷,CPU調(diào)用OB40,Q4.0被置為1狀態(tài),同時在“Intermupt OB”(中斷 OB)顯示框內(nèi)自動顯示出對應(yīng)的OB 編號40。將位地址(POINT_ADDR)改為1,模擬I0.1產(chǎn)生的中斷,單擊“Apply”按鈕,在松開按鈕時,Q4.0被復(fù)位為0狀態(tài)。單擊“0K”按鈕,將執(zhí)行與“Apply”按鈕同樣的操作,同時關(guān)閉對話框。
4.禁止和激活硬件中斷
圖4-50是OB1中的程序,在10.2的上升沿調(diào)用SFC40(EN_IRT)激活OB40對應(yīng)的硬件中斷,在I0.3的上升沿調(diào)用SFC39(DIS_IRT)禁止OB40對應(yīng)的硬件中斷。SFC中的MODE為2時,OB_NR的實(shí)參為0B的編號。
單擊兩次PLCSIM中I0.3對應(yīng)的小方框,OB40被禁止執(zhí)行。這時用圖4-49右上角的對話框模擬產(chǎn)生硬件中斷,不會調(diào)用OB40。單擊兩次10.2對應(yīng)的小方框,OB40被允許執(zhí)行,又可以用10.0和10.1產(chǎn)生的硬件中斷來控制Q4.0了。