SIMATIC S7 PLC处理输入/输出中断的使用方法介绍
2018-03-13  来源:网络或本站原创

概述

本程序适用于SIMATIC S7-212S7-214的计数器,可以从0计到255,这要取决于输入10.0的状态。如果将输入10.0置为1,则程序减计数;如果将输入10.0置为0,则程序加计数。

如果输入10.0的状态改变,则将立即激活输入/输出中断程序,中断程序01分别将有储器位M0.0置成10

 

例图

 

程序框图

程序和注解

本程序是一个输入/输出中断程序的范例,计数器从0计到255。如果输入10.00,则程序加计数;如果输入10.01,则程序减计数。

本程序包括以下三个程序:

Main     (主程序)       初始化和计数

INT0   (中断程序0)   输入10.01时,减计数。

INT1   (中断程序1)   输入10.00时,加计数。

 

本程序长度为32个字

 

//标题:事件中断

//********主程序*********

//主程序包括初始化程序和计数程序。

//计数器的存储器标志位M0.001状态,决定计数方向为加或减计数。

//当输入10.00变为1时,产生中断事件0,激活中断程序0 (INT0)

//中断程序0将存储器位M0.0置成1,导致主程序减计数。

//当输入10.01变为0时,产生中断事件1,激活中断程序1  (INT1)

//中断程序1将存储器位M0.0置成0,导致主程序加计数。

//主程序

LD

MOVB

ENI

ATCH

ATCH

LDN

AB>=

A

EU

INCW

 

SM0.1

+0,  AC0

 

+0,  0

+11

M0.0

16#FE, ACO

SM0.5

 

AC0

 

//仅首次扫描时,SM0.1才为1,进行以下初始化

//将计数累加器ACOOa

//允许中断。

//输入10.0为上升沿时激活事件中断0

//输入10.0为上升沿时激活事件中断1

//如果存储器的标志位M 0.00状态

//且计数累加器ACO的当前计数值小于或等于254

//0.5秒脉冲

//且上升沿

//那么计算累加器ACO1

 

LD

AB<=

A

EU

DECW

 

M0.0

16#1AC0

SM0.5

 

ACO

//如果存储器的标志位M 0.01状态

//且计数累加器ACO的当前计数值大于或等于

//0.5秒脉冲

//且上升沿

//那么计算器累加器ACO1

 

LD

MOVB

MEND

 

SM0.0

AC0,  QB0

// SM0.0总是1

//在输出端00.000.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 SEP 7编程参考手册的6.2节“中断指令”,为您提供了更多的有关输入输出中断的信息。