SIMATIC S7PLC處理輸入/輸出中斷的使用方法介紹
概述
本程序適用于SIMATIC S7-212和S7-214的計(jì)數(shù)器,可以從0計(jì)到255,這要取決于輸入10.0的狀態(tài)。如果將輸入10.0置為1,則程序減計(jì)數(shù);如果將輸入10.0置為0,則程序加計(jì)數(shù)。
如果輸入10.0的狀態(tài)改變,則將立即激活輸入/輸出中斷程序,中斷程序0或1分別將有儲器位M0.0置成1或0。
例圖

程序框圖

程序和注解
本程序是一個輸入/輸出中斷程序的范例,計(jì)數(shù)器從0計(jì)到255。如果輸入10.0為0,則程序加計(jì)數(shù);如果輸入10.0為1,則程序減計(jì)數(shù)。
本程序包括以下三個程序:
Main (主程序) 初始化和計(jì)數(shù)
INT0 (中斷程序0) 輸入10.0為1時,減計(jì)數(shù)。
INT1 (中斷程序1) 輸入10.0為0時,加計(jì)數(shù)。
本程序長度為32個字
//標(biāo)題:事件中斷
//********主程序*********
//主程序包括初始化程序和計(jì)數(shù)程序。
//計(jì)數(shù)器的存儲器標(biāo)志位M0.0的0或1狀態(tài),決定計(jì)數(shù)方向?yàn)榧踊驕p計(jì)數(shù)。
//當(dāng)輸入10.0山0變?yōu)?時,產(chǎn)生中斷事件0,激活中斷程序0 (INT0)。
//中斷程序0將存儲器位M0.0置成1,導(dǎo)致主程序減計(jì)數(shù)。
//當(dāng)輸入10.0山1變?yōu)?時,產(chǎn)生中斷事件1,激活中斷程序1 (INT1)。
//中斷程序1將存儲器位M0.0置成0,導(dǎo)致主程序加計(jì)數(shù)。
//主程序
|
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,進(jìn)行以下初始化
//將計(jì)數(shù)累加器ACO清Oa
//允許中斷。
//輸入10.0為上升沿時激活事件中斷0
//輸入10.0為上升沿時激活事件中斷1
//如果存儲器的標(biāo)志位M 0.0為0狀態(tài)
//且計(jì)數(shù)累加器ACO的當(dāng)前計(jì)數(shù)值小于或等于254
//且0.5秒脈沖
//且上升沿
//那么計(jì)算累加器ACO加1
|
|
LD
AB<=
A
EU
DECW
|
M0.0
16#1,AC0
SM0.5
ACO |
//如果存儲器的標(biāo)志位M 0.0為1狀態(tài)
//且計(jì)數(shù)累加器ACO的當(dāng)前計(jì)數(shù)值大于或等于
//且0.5秒脈沖
//且上升沿
//那么計(jì)算器累加器ACO減1
|
|
LD
MOVB
MEND
|
SM0.0
AC0, QB0 |
// SM0.0總是1。
//在輸出端00.0至00.7顯示ACO的當(dāng)前計(jì)數(shù)值。
//主程序結(jié)束。
|
//******中斷程序0******
//事件中斷程序0將存儲器的標(biāo)志位M0.0置成
//此情況下程序減計(jì)數(shù)。
//
INT 0 //中斷事件0減計(jì)數(shù)。
S M0.0,1 //將存儲器的標(biāo)志位M0.0置成
RETI //中斷程序0結(jié)束。
//******中斷程序1******
//事件中斷程序1將存儲器的標(biāo)志位M 0.0置成Oa
//此情況下程序增計(jì)數(shù)。
INT 1
R M0.0,1
RETI
//中斷事件1加計(jì)數(shù)。
//將存儲器的標(biāo)志位M0.0置成O。
//中斷程序1結(jié)束。
請參考SIMATIC S丁EP 7編程參考手冊的6.2節(jié)“中斷指令”,為您提供了更多的有關(guān)輸入輸出中斷的信息。
本文標(biāo)簽:SIMATIC S7PLC處理輸入/輸出中斷的使用方法介紹
* 由于無法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報酬未能及時支付,在此深表歉意,請《SIMATIC S7PLC處理輸入/輸出中斷的使用方法介紹》相關(guān)權(quán)利人與機(jī)電之家網(wǎng)取得聯(lián)系。
關(guān)于“SIMATIC S7PLC處理輸入/輸出中斷的使用方法介紹”的更多資訊










