- 艾寶物聯IOBOV? ─ 工業無線測控專家
概述
本程序適用于SIMATIC S7-212和S7-214的計數器,可以從0計到255,這要取決于輸入10.0的狀態。如果將輸入10.0置為1,則程序減計數;如果將輸入10.0置為0,則程序加計數。
如果輸入10.0的狀態改變,則將立即激活輸入/輸出中斷程序,中斷程序0或1分別將有儲器位M0.0置成1或0。
例圖
程序框圖
程序和注解
本程序是一個輸入/輸出中斷程序的范例,計數器從0計到255。如果輸入10.0為0,則程序加計數;如果輸入10.0為1,則程序減計數。
本程序包括以下三個程序:
Main (主程序) 初始化和計數
INT0 (中斷程序0) 輸入10.0為1時,減計數。
INT1 (中斷程序1) 輸入10.0為0時,加計數。
本程序長度為32個字
//標題:事件中斷
//********主程序*********
//主程序包括初始化程序和計數程序。
//計數器的存儲器標志位M0.0的0或1狀態,決定計數方向為加或減計數。
//當輸入10.0山0變為1時,產生中斷事件0,激活中斷程序0 (INT0)。
//中斷程序0將存儲器位M0.0置成1,導致主程序減計數。
//當輸入10.0山1變為0時,產生中斷事件1,激活中斷程序1 (INT1)。
//中斷程序1將存儲器位M0.0置成0,導致主程序加計數。
//主程序
LD MOVB ENI ATCH ATCH LDN AB>= A EU INCW |
SM0.1 +0, AC0
+0, 0 +1,1 M0.0 16#FE, ACO SM0.5
AC0 |
//僅首次掃描時,SM0.1才為1,進行以下初始化 //將計數累加器ACO清Oa //允許中斷。 //輸入10.0為上升沿時激活事件中斷0 //輸入10.0為上升沿時激活事件中斷1 //如果存儲器的標志位M 0.0為0狀態 //且計數累加器ACO的當前計數值小于或等于254 //且0.5秒脈沖 //且上升沿 //那么計算累加器ACO加1 |
LD AB<= A EU DECW |
M0.0 16#1,AC0 SM0.5
ACO |
//如果存儲器的標志位M 0.0為1狀態 //且計數累加器ACO的當前計數值大于或等于 //且0.5秒脈沖 //且上升沿 //那么計算器累加器ACO減1 |
LD MOVB MEND |
SM0.0 AC0, QB0 |
// SM0.0總是1。 //在輸出端00.0至00.7顯示ACO的當前計數值。 //主程序結束。 |
//******中斷程序0******
//事件中斷程序0將存儲器的標志位M0.0置成
//此情況下程序減計數。
//
INT 0 //中斷事件0減計數。
S M0.0,1 //將存儲器的標志位M0.0置成
RETI //中斷程序0結束。
//******中斷程序1******
//事件中斷程序1將存儲器的標志位M 0.0置成Oa
//此情況下程序增計數。
INT 1
R M0.0,1
RETI
//中斷事件1加計數。
//將存儲器的標志位M0.0置成O。
//中斷程序1結束。
請參考SIMATIC S丁EP 7編程參考手冊的6.2節“中斷指令”,為您提供了更多的有關輸入輸出中斷的信息。