PLC编程中构造定时器的几种方法Word文件下载.docx
《PLC编程中构造定时器的几种方法Word文件下载.docx》由会员分享,可在线阅读,更多相关《PLC编程中构造定时器的几种方法Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
会出现不够用的情况;
即使够用,也会因为占用过
在现代工业现场控制中,PLC作为控制系统的重要组成部分,起着不可替代的作用。
现代PLC的功能不仅局限于简单的逻辑运算,
而且具备了定时、计数、数值计
算、中断处理、网络配置等多种强大的功能,
使之应用于工业现场时更能发挥其作用。
作为PLC重要功能之一
的定时,
在PLC程序中,
可以进行时序构造、等待响应、
人为制造中断、产生时间脉冲等多种应用,
是PLC编程
中不可或缺的重要手段。
在PLC编程中构造定时器常
用的方法是使用PLC内部的计时器资源,
另外还可以利
用其扫描周期和周期性的中断来构造定时器,
下面将以
上三种方法进行介绍。
2
计时器定时
这种方式是应用最普遍也是最便捷的方式,
广泛
地应用于PLC
程序之中。
各种
厂家及型号的PLC,
在其软件内部都提供有限的计时器资源。
当条件满足时,计时器启动,根据计时器的类型及所定时间的长度执行。
以SIEMENS公司的S7-400系列PLC为
例,
其提供的计时器
(
TIMER资源类型有:
S
ODT(导通延时
、S
ODTS(导通同步延时
、SOFFDTS(关断
同步延时
PULSE(脉冲延时
、SPEXT
(扩展脉冲
延时
等
五种。
各种计时器都有自己
不同的通断特性,例如S
ODT(导通延时
的通断特性如图1所示。
这五种计时器资源可以单独使用,
也可以任意组合,满足各种工程需要。
这种计时器方式最大的特点是
方法简单、易于操作,但其也有一定的局限性,主要表现在占用过多的系统资源,并且各种PLC
对计时器个数有一定限制,以S7-400系列PLC来说,
允许系
统使用的计时器为512个。
所以在一些大型的项目
多资源而使扫描周期变长,
对于精度要求比较高的系统,
会有一定影响。
图1S7-400系列PLC内部导通延时计时器导通及关断条件3
扫描周期累加编程定时
众所周知,PLC执行程序的工作方式就是扫描,
而CPU
对所有程序的一个遍历所经过的时间就是一
个扫描周期。
对于PLC来说,每
个扫描周期会因为程序长度、程序中信号和中断的不同而不同。
虽然这
样,
但扫描周期毕竟还是和CPU内部时钟保持一定
的统一性,
是内部时钟外在的一种时间反应。
现代工
业越来越智能化的今天,
扫描周期不再只是一项内部
指标,更多的PLC已经将其作为一项基本的参数,提供给用户使用。
所以我们可以建立一种构造定时的思路:
将扫描周期累加起来,如果达到我们需要定时的长度,
就产生中断,执行我们需要的步骤。
还是以S7-400系列PLC
为例,在软件
编制过
程中,OB1(ProgramCycleOrganizationBlock是一个
基本的程序模块,
它是CPU
扫描的主程序,其它程序
被它调用。
OB1有一个模块内的变量表,
变量表中有
一个临时变量
(temp为:
OB1PREVCYCLE,它里面
所放的数据为前一次扫描周期的毫秒(
ms
数,是整型
(Integer数据。
因为是临时变量,
所以每个扫描周
期内存放的数据都在变化。
因为OB1的变量表中没有静态变量类型,所以不能直接在OB1中直接进行累加,我们可以借助一个具有静态变量的FB(Func-
tion
Block程序模块来编制累加程序,在OB1中调用
FB,
并通过接口将OBPREVCYCLE做为IN
参数输入给FB,
其OB1程序执行如图2。
图2OBI块执行扫描及参数输出
在FB中,
如果以100m
s为一
个单位,从
接口中
图3FB程序流程图及I/O
参数
读取OB1提
供的前一
个扫描
周期的
数值参
数OB1
PREVCYCLE,
将其赋值给FB自身的
IN参数,并进行累加,再通过一些中间量的转换、计算,输出
以
100ms为一个单位的单位个数做
为OUT
接口,供其
在使用中,用户可以直接调用的参数。
FC的I/O接口参数如表FC块,填
入相应1所示
(如果用户
它程序使用。
其程序流程图及I/O
参数如图3所示。
需要使用OFF延时,
或者PULSE延时,用户可以根据
要求自行编制相应程序,
这里只给出ON
延时示例
。
为了方便其它程序更多地调用此项功能,以及实现多种延
时方
式(如ON延
时、OFF
延时、PULSE
延
时
可以再做一些FC(
Function。
选择ON
延时为
表1FC的I/O接口参数
用户使能
后,将FB输出接口中
的参数值保存起
来做为初值,
在后续的扫描过程中,将当前值与初值
相减计算出差值,
最后将用户设置的定时数与差值进
行比较,满足
条
件即
可
执
行用
户
命
令。
如
果
仍
以100msec为定时单位,其程序流程图如图4所示。
性质inininout
参数Enabled
Tier-Set
Tie-CountOut-Tier
类型Boolean
Integer
Boolean
注
释
定时计时器启动信号时间设
置(设
置
间=T-Set100msec
FB提供时间单位值
计时器完成输出
这一种实现定时功能的方式,
没有直接的功能可
以用,
需要用户自行编程实现。
虽然较上一种方式复
杂,但对于一个大的工程来说,理论上可以无限次的
调用,并且由于程序并不复杂,不会占用系统过多资源,使系统的扫描更加迅速。
以利用其时间的周期性来制造定时功能。
同样,以S7-400系列PLC为例,
系统为用户提供
了从OB30到
OB38等9种时间周期中断,
这些周期中断
OB块不受扫描周期的约束和影响,
只按照各自的周期时间属性和优先级,每一个周期扫描并执行一遍其内部
的程序,
其各自的中断间隔时间和优先级见表2。
表2周期中断OB块的中断周期及优先级
OB序号
OB30OB31OB32OB33OB34OB35OB36OB37OB38
中断间隔时间
5s2s1s500ms
200ms
100ms
50ms
20ms
10ms
中
断优先级
789101112131415
为了方便编程,
用户可以取10ms、100ms、1s为时
间单位,
使用OB38、OB35、OB32。
这种定时的构造方
法的主要思想是,
构造一个FB块在OB块中调用,
利
用时间周期中断OB块的周期执行性,
每一个周期进
行一次累加,累加值做为接口提供给构造ON
延时、OFF延时或者PULSE延时的FC块使用。
OB块的执
行过程如图5所示。
图4FC块
(ON延时
程序流程图及输入参数
4周期中断累加定时
中断是指CPU
在执行扫描程序时,满足了某种
条件或发生了某种事件,而暂停扫描的顺序,执行该条件或事件的相
关程序的一个过程。
在PLC中,中
断的类型多种多样,
有用户为程序执行设置的中断,
有CPU为响应外部输入输出设备产生的中断,有系统运行到达某一时刻点产生的中断,也有系统周期性的中断等等。
对于PLC中时间周期性的中断,就可
图5OB32、OB35、OB38同时
调用FB并输出接口参数
图6周期中断方式FB块流程算,并通过自己的背景数据块输出Counter1s、Counter100ms、Counter10ms等参数,供FC块使用。
FB块分别在OB32、OB35、OB38中调用,接受它们提供的参数。
FB块的流程图如图6所示。
还有另一种方法是FB只在OB38中调用,根据10ms、100ms、1s存在十进制倍数的关系,在FB中添加编程,对Counter10ms进行除以10后取整或除以100取整,得到Counter100ms和Counter1s。
FC块的构造同上种方法基本一样,接受了三个
累加值之后,根据用户需要编程实现选择使用哪一种
时间等级,其后步骤与上种方法相同,这里不再复述,
也不给出流程图了。
这种实现定时功能的方法具有上一种方法的全
部优点,并且较上一种方法更容易实现,编程更为简单,不用累加后取整。
但并不是所有的PLC都提供
周期中断供用户使用,这跟各厂家产品有关,一般情
况下只有一些工程上使用的具有复杂控制功能的PLC会提供,而一些小型PLC供用户使用的资源相
对较少,不提供此项功能,因此这种方法使用上有一
定的局限性。
5总结
以上介绍了在PLC中实现定时功能的三种方法,用户可以根据实际情况,具体、灵活地选择应用。
以上的流程图中也只给出了主要编程思路的框架,用
户可以根据自己的需要添加程序。
PLC中实现定时
周期中断FB块的主要编程思想是:
通过与OB
的方法很多,用户可以根据产品所提供的功能,多角块的参数接口读取OBNumber参数做为Flag,并
对度分析看待问题,使其资源得到充分的利用。
Flag做相应的判断(Flag=32?
orFlag=35?
orFlag
=38?
如果条件满足,则在相应的条件下做累加运