西门子PLC

SIMATIC S7 PLC处理输入/输出中断的使用方法举

发表时间:2018-09-08

概述

本程序适用于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节“中断指令”,为您提供了更多的有关输入输出中断的信息。

相关资讯13609158196
推荐产品13609158196