1、PLC编程中构造定时器的几种方法PLC编程中构造定时器的几种方法汪东(高速线材厂 摘要本文对定时功能在 PLC 中的作用作了简单阐述,并主要对计时器定时、扫描周期累加编程定时、周期中断编程定时等三种实现方法和各自的特点进行了具体论述。关键词PLC 定时计时器扫描周期周期中断1 前言中,会出现不够用的情况; 即使够用, 也会因为占用过在现代工业现场控制中, PLC 作为控制系统的重要 组成部分,起着不可替代的作用。现代 PLC 的功能不仅 局限于简单的逻辑运算,而且具备了定时、计数、数值计算、中断处理、网络配置等多种强大的功能,使之应用于 工业现场时更能发挥其作用。作为 PLC 重要功能之一 的
2、定时,在 PLC 程序中,可以进行时序构造、等待响应、人为制造中断、产生时间脉冲等多种应用,是 PLC 编程中不可或缺的重要手段。在 PLC 编程中构造定时器常用的方法是使用 PLC 内部的计时器资源,另外还可以利用其扫描周期和周期性的中断来构造定时器,下面将以上三种方法进行介绍。2计时器定时这种方式是应用最普遍也是最便捷的方式,广泛地应用于 PLC程序之中。各种厂家及型号的 PLC,在其软件内部都提供有限的计时器资源。当条件满 足时, 计时器启动, 根据计时器的类型及所定时间的 长度执行。以 SIEMEN S 公司的 S7- 400系列 PLC 为例,其提供的计时器(T IMER 资源类型有
3、: SODT (导 通延时、SODTS (导通同步延时、S OFFDTS (关断同步延时、SPU LSE (脉冲延时、S PEXT(扩展脉冲延时等五种。各种计时器都有自己不同的通断特 性, 例如 SODT (导通延时的通断特性如图 1所示。这五种计时器资源可以单独使用,也可以任意组合, 满足各种工程需要。这种计时器方式最大的特点是方法简单、易于操作, 但其也有一定的局限性, 主要表 现在占用过多的系统资源, 并且各种 PLC对计时器 个数有一定限制, 以 S7- 400系列 PLC 来说,允许系统使用的计时器为 512个。所以在一些大型的项目多资源而使扫描周期变长,对于精度要求比较高的系 统,
4、会有一定影响。图 1 S7- 400系列 PLC 内部导通 延时计时器导通及关断条件 3扫描周期累加编程定时众所周知, PLC 执行程序的工作方式就是扫描,而 CPU对所有程序的一个遍历所经过的时间就是一个扫描周期。对于 PLC 来说, 每个扫描周期会因为 程序长度、程序中信号和中断的不同而不同。虽然这样,但扫描周期毕竟还是和 CPU 内部时钟保持一定的统一性,是内部时钟外在的一种时间反应。现代工业越来越智能化的今天,扫描周期不再只是一项内部指标, 更多的 PLC 已经将其作为一项基本的参数, 提 供给用户使用。所以我们可以建立一种构造定时的 思路: 将扫描周期累加起来, 如果达到我们需要定时
5、 的长度,就产生中断, 执行我们需要的步骤。还是以 S7- 400系列 PLC为例, 在软件编制过程中, OB1( P rogram Cycle O rgan izat ion B lock 是一个基本的程序模块,它是 CPU扫描的主程序, 其它程序 被它调用。OB1有一个模块内的变量表,变量表中有一个临时变量( temp 为: O B1 PREV CYCLE, 它里面所放的数据为前一次扫描周期的毫秒 (m s数, 是整 型( Integer数据。因为是临时变量,所以每个扫描周期内存放的数据都在变化。因为 OB1的变量表中没 有静态变量类型, 所以不能直接在 OB1中直接进行 累加, 我们可以
6、借助一个具有静态变量的 FB ( Func-t ionB lock程序模块来编制累加程序, 在 O B1中调用FB,并通过接口将 OB PREV CY CLE 做为 IN参数输 入给 FB,其 OB1程序执行如图 2。 图 2 OB I 块执行扫描及参数输出在 FB 中,如果以 100ms 为一个单位, 从接口中图 3 FB 程序流程图及 I /O参数读取 OB1提供的前一个扫描周期的数值参数 OB1PREV CYCLE,将其赋值给 FB 自身的IN 参数, 并进 行累加, 再通 过 一些 中 间量 的转 换、计 算, 输 出以100m s 为一个单位的单位个数做为 OUT接口, 供其在使用中
7、, 用户可以直接调用 的参数。FC 的 I /O 接口参数如表 FC 块, 填入相应 1所示(如果用户它程序使用。其程序流程图及 I /O参数如图 3所示。需要使用 OFF 延时,或者 PU LSE 延时, 用户可以根据要求自行编制相应程序,这里只给出 ON延时示例。为了方便其它程序更多地调用此项功能, 以及实现多 种延时方式 (如 ON 延时、OFF延 时、PU LSE延时等,可以再做一些 FC (F unct ion。选择 ON延时为表 1 FC 的 I /O 接口参数例,用户使能后, 将 FB 输出接口中的参数值保存起来做为初值,在后续的扫描过程中, 将当前值与初值相减计算出差值,最后将
8、用户设置的定时数与差值进行比较, 满足条件即可执行用户命令。如果仍以 100m sec 为定时单位, 其程序流程图如图 4所示。性质 in in in out参数 Enab ledT i er- Se tT i e- Count O ut- T i er类型 Boo leanInteg erInteg erBoo lean注释定时计时器启动信号 时间设置 (设置时间 = T - Set 100m secFB 提供时间单位值计时器完成输出这一种实现定时功能的方式,没有直接的功能可以用,需要用户自行编程实现。虽然较上一种方式复杂, 但对于一个大的工程来说, 理论上可以无限次的调用, 并且由于程序并
9、不复杂, 不会占用系统过多资 源, 使系统的扫描更加迅速。以利用其时间的周期性来制造定时功能。同样, 以 S7- 400系列 PLC 为例,系统为用户提供了从 OB30到OB38等 9种时间周期中断,这些周期中断OB 块不受扫描周期的约束和影响,只按照各自的周期 时间属性和优先级,每一个周期扫描并执行一遍其内部的程序,其各自的中断间隔时间和优先级见表 2。表 2 周期中断 O B 块的中断周期及优先级 OB 序号OB30 OB31 OB32 OB33 OB34 OB35 OB36 OB37 OB38中断间隔时间5s 2s 1s 500m s200m s100m s50m s20m s10m s
10、中断优先级7 8 9 10 11 12 13 14 15为了方便编程,用户可以取 10m s 、100m s 、1s 为时间单位,使用 OB38、OB35、OB32。这种定时的构造方法的主要思想是,构造一个 FB 块在 OB 块中调用,利用时间周期中断 O B 块的周期执行性,每一个周期进行一次累加, 累加值做为接口提供给构造 ON延时、 OFF 延时或者 PU LSE 延时的 FC 块使用。O B 块的执行过程如图 5所示。 图 4 FC 块(ON 延时程序流程图及输入参数4 周期中断累加定时中断是指 CPU在执行扫描程序时, 满足了某种条件或发生了某种事件, 而暂停扫描的顺序, 执行该 条
11、件或事件的相关程序的一个过程。在 PLC 中, 中断的类型多种多样,有用户为程序执行设置的中断,有 CPU 为响应外部输入输出设备产生的中断, 有系 统运行到达某一时刻点产生的中断, 也有系统周期性 的中断等等。对于 PLC 中时间周期性的中断, 就可图 5 O B32、O B35、O B38同时调用 FB 并输出接口参数图6 周期中断方式FB块流程算,并通过自己的背景数据块输出Counter1s、Coun ter 100m s、Counter10m s等参数,供FC块使用。FB块分别在O B32、OB35、O B38中调用,接受它们提供的参数。FB块的流程图如图6所示。还有另一种方法是FB只
12、在O B38中调用,根据10m s、100m s、1s存在十进制倍数的关系,在FB中添加编程,对Counter10m s进行除以10后取整或除以100取整,得到Coun ter100m s和Counter1s。FC块的构造同上种方法基本一样,接受了三个累加值之后,根据用户需要编程实现选择使用哪一种时间等级,其后步骤与上种方法相同,这里不再复述,也不给出流程图了。这种实现定时功能的方法具有上一种方法的全部优点,并且较上一种方法更容易实现,编程更为简单,不用累加后取整。但并不是所有的PLC都提供周期中断供用户使用,这跟各厂家产品有关,一般情况下只有一些工程上使用的具有复杂控制功能的PLC会提供,而
13、一些小型PLC供用户使用的资源相对较少,不提供此项功能,因此这种方法使用上有一定的局限性。5 总结以上介绍了在PLC中实现定时功能的三种方法,用户可以根据实际情况,具体、灵活地选择应用。以上的流程图中也只给出了主要编程思路的框架,用户可以根据自己的需要添加程序。PLC中实现定时周期中断FB块的主要编程思想是:通过与O B的方法很多,用户可以根据产品所提供的功能,多角块的参数接口读取OB N um ber参数做为F lag,并对度分析看待问题,使其资源得到充分的利用。F lag做相应的判断(F lag=32?or F lag=35?or F lag=38?,如果条件满足,则在相应的条件下做累加运
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1