西門子S7-300/400PLC硬件中斷組織塊(OB40~OB47)用于快速響應(yīng)輸入模塊、點對點通信處理器(CP)和功能模塊(FM)的信號變化。具有硬件中斷功能的上述模塊將中斷信號傳送到CPU時,將觸發(fā)硬件中斷。絕大多數(shù)S7-300 CPU只能使用OB40,S7-400 CPU可以使用的硬件中斷OB的個數(shù)與CPU的型號有關(guān)。為了產(chǎn)生硬件中斷,在組態(tài)有硬件中斷功能的模塊時,應(yīng)啟用硬件中斷。
在數(shù)字量輸入模塊的“輸入”選項卡,用復(fù)選框啟用硬件中斷,然后分組或逐點設(shè)置上升沿產(chǎn)生中斷、下降沿產(chǎn)生中斷,或上升沿、下降沿均產(chǎn)生中斷。在模擬量輸入模塊的“輸入”選項卡,用復(fù)選框啟用輸入值超出限制產(chǎn)生硬件中斷,然后設(shè)置輸入值的上限值和下限值。
在功能模塊的屬性對話框的“基本參數(shù)”選項卡,可選擇是否根據(jù)模塊的技術(shù)功能對某些事件觸發(fā)硬件中斷。
在點對點通信處理器的屬性對話框的“基本參數(shù)”選項卡,可選擇是否產(chǎn)生中斷。
硬件中斷被模塊觸發(fā)后,操作系統(tǒng)將用OB40的局部變量OB40_MDL_ADDR(字)向用戶提供模塊的起始地址,OB40_POINT_ADDR(雙字)是數(shù)字量輸入模塊產(chǎn)生硬件中斷的點的編號、或模擬模塊超出了限制的通道號。
硬件中斷組織塊OB40的首要任務(wù)是通過OB40_MDL_ADDR和OB40_POINT_ADDR提供的地址信息,用比較指令判斷是哪個模塊、模塊中的哪一點產(chǎn)生的中斷。然后對中斷事件作出相應(yīng)的處理。
在編寫梯形圖比較程序時有個小問題需要注意,OB40_MDL_ADDR和OB40_POINT_ADDR的數(shù)字類型分別是字和雙字,不能直接用于整數(shù)比較指令和雙整數(shù)比較指令。需要將它們保存到其他地址,然后參與比較。