西门子PLC处理输入/输出中断的使用方法介绍

西门子plc
西门子plc
西门子plc
1976
文章
127
评论
2018年6月9日12:42:46 评论 1,600 阅读

概述

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

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

 

例图

西门子PLC处理输入/输出中断的使用方法介绍

程序框图

西门子PLC处理输入/输出中断的使用方法介绍

程序和注解

本程序是一个输入/输出中断程序的范例,计数器从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节“中断指令”,为您提供了更多的有关输入输出中断的信息。

继续阅读
weinxin
plc入门知识问答
所有PLC工程师都会关注的微信公众账号,只需输入您的问题,就会有答案
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: