搜索

在PLC程序中使用定时器

gecimao 发表于 2019-06-18 19:57 | 查看: | 回复:

  对于搞工控的人士来说,一定对定时器不会陌生,甚至可以说,每时每刻都离不开定时器。无论是为了滤除信号的抖动,还是定期循环执行特定的任务,还是在规定的时刻自动采样数据,还是历经一定的工艺过程后中止任务的执行,诸如此类等等、等等,都要借助定时器来完成。在各种PLC系统中,也大都提供了丰富灵活的定时指令,但要真正用好定时器,让它恰如其分地发挥它应有的作用,并非是一件容易的事情。笔者想结合自己的经验和体会,来着重探讨一下西门子PLC系统中的各种定时器,以及如何构筑符合自己需要的定时器。

  对于搞工控的人士来说,一定对定时器不会陌生,甚至可以说,每时每刻都离不开定时器。无论是为了滤除信号的抖动,还是定期循环执行特定的任务,还是在规定的时刻自动采样数据,还是历经一定的工艺过程后中止任务的执行,诸如此类等等、等等,都要借助定时器来完成。在各种PLC系统中,也大都提供了丰富灵活的定时指令,但要真正用好定时器,让它恰如其分地发挥它应有的作用,并非是一件容易的事情。笔者想结合自己的经验和体会,来着重探讨一下西门子PLC系统中的各种定时器,以及如何构筑符合自己需要的定时器。

  在西门子的S7-300和S7-400系列PLC系统中,有5条定时器指令,根据我们的实际需要,可以灵活选择使用。但是,如果定时的预置时间特别长,就不能简单地直接使用基本定时器指令了,而这要用到集成在STEP7软件中的功能块;或者定时的精度要求特别高,比如间隔特定的时间重复采样,这样的任务可能使用时间中断OB块应该更可靠。所以我们应该根据控制任务,选择使用合适的定时器。

  在STEP7中,基本定时器指令共有5条,分别是:延时接通型定时器,保持型延时接通定时器,脉冲型定时器,扩展脉冲型定时器和延时断开型定时器。它们的预置值数据类型都是S5TIME类型,参见图1,所以最大定时预置值是999×0.01 =9,990 秒或999×10 =9999 秒,即2小时46分钟30秒(取决于选取的时基)。我们分别来看一下这5类定时器:

  顾名思义,触发信号 “0”到“1”的跳变(上升沿)启动定时器开始计时,定时器的状态保持为“0”,直到预置的时间达到,定时器才会输出“1”。如果在定时运行过程中,触发信号复位为“0”,或复位输入端有上升沿信号,那么,定时器终止定时运行,输出仍为“0”信号。正确使用该定时器,关键要确保启动信号是可以保持的信号。

  它与延时接通型定时器的功能差不多,唯一的区别是触发信号不必是保持的信号,一个瞬时脉冲信号足以触发定时器的运行,并且能走完定时值,输出为“1”信号。如果循环使用时要注意给它复位,如果没有复位输入端的上升沿信号,或没有新的启动触发信号,它的输出始终保持为“1”。

  输出脉冲的最大宽度是预置的时间值。它的启动运行也需要触发信号 “0”到“1”的跳变(上升沿),而且运行过程中,触发信号必须保持为“1”信号,如果触发信号变为“0”,定时器就停止计时运行,输出也复位为“0”。只要计时运行中,输出就为高电平保持型。

  它是脉冲定时器的扩展,就像保持型延时接通定时器是延时接通型定时器的扩展一样,它也不需要触发信号在计时运行过程中保持为“1”,即使信号变为“0”,计时照常运行,直到预置时间到,除非触发信号又有新的跳变,计时重新开始进行。

  与延时接通型定时器相反,它是计时过程中,输出为“1”信号,直到预置定时时间达到,定时器复位为“0”信号。与之显著不同的是,触发信号的“1”到“0”的跳变(下降沿)触发定时器计时运行,且运行过程中触发信号必须保持为“0”,否则定时器终止运行。

  集成在STEP7软件中,有许多功能库,在库中有些功能块是与计时相关的。比如:SF3TP对应基本定时器中的脉冲型定时器;SFB4 TON对应延时接通型定时器;SFB5 TOF对应延时断开型定时器。但这些功能块的预置定时值却是32位的TIME数据类型,计时精度是1ms。最大的定时值可以达到24天20小时31分 23秒648毫秒,这样极大地扩展了计时的范围。

  这三个功能块的参数是类似的,下面以SFB4 TON为例作介绍,参照图3,IN端是触发信号输入端,它的上升沿触发定时器运行;PT是 预置定时时间,是TIME数据类型;Q端是输出端,可以得到定时器的状态;ET是当前计时值输出端。

  此外,在STEP7标准功能块中,还有其他类型的定时器,比如说软件型延时接通定时器FC80“TONR”。它的特性与普通的定时器没什么不同,所不同的是它每步累加的时间是OB1上次循环扫描的执行时间,这一点要特别注意。

  在STEP7中,有两类组织块与时间有关。分别是时间中断组织块OB10到OB17和延时中断组织块OB20到OB23。前者可以执行一次,或间隔一定的时间(比如:每分钟、每小时、每天、每周等等)来自动执行,后者则是延时设定的时间后执行设定的任务。

  使用时间中断组织块时,我们只要把要执行的程序代码编写到选中的OB块中,然后激活该OB块就可以了。有两种方法可以激活OB块的中断运行。其一是在做硬件配置时,选中CPU的属性选项卡,参照图4,选择“Time-of-Day Interrupts”标签,特别注意要选中“Active”复选框,在“Execution”的下拉框中选择执行的时间间隔。完成这些选项后也就激活了该时间中断。其二是调用系统功能块来完成时间的设定和组织块的激活,其中SFC28 SET_TINT是设定时间中断,SFC30 ACT_TINT. 是激活时间中断的执行。

  延时中断组织块的执行只有调用系统功能块来实现了。分别有3个系统功能块与之对应,它们是:SFC32 (SRT_DINT)激活延时中断,SFC33 (CAN_DINT)取消延时中断和SFC34 (QRY_DINT)查询延时中断。

  由于中断组织块的优先级比较高,不会被低优先级的任务所打断,可以把一些对时间要求比较苛刻的任务放到中断组织块中来执行,这样可以更充分地保证特定任务的可靠运行。

  构造定时器还可以采用一些非常规的方法,比如说,我们可以用加法构造递加定时器,用加法构造递减定时器。参照图5,我们用整数加法构造出了计时长度为65535秒的定时器。当然,我们可以还使用计数器对时钟脉冲进行计数,灵活地构造定时器。

  的各种各样的方法,归根结底目的只有一个:为我们的生产生活服务。根据我们的实际情况来选择合适的方法,如果基本的可以满足要求,我们没有必要非要舍近求远,以炫耀我们的编程技巧,因为那样只能是哗众取宠,有些情况下可能是事半功倍的。

  [论文搜索] [] [好友分享] [打印本文] [关闭窗口] [返回顶部]

  ①凡本网注明来源:CK365测控网的所有作品,版权均属于CK365测控网,转载请必须注明CK365测控网。违反者本网将追究相关法律责任。

  ②本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。如其他媒体、网站或个人从本网下载使用,必须保留本网注明的稿件来源,并自负版权等法律责任。

  ③如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。more测控名词PLC

  PLC是一种专门在工业环境下应用而设计的数字运算操作的电子装置。它采用可以编制程详情

  定时器是装有时段或时刻控制机构的开关装置。它有一个频率稳定的振荡源,通过齿轮传详情

  LabVIEW是一种程序开发环境,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别 是:其他计算机语言都是采用基于文详情

  反馈电路在各种电子电路中都获得普遍的应用,反馈是将放大器输出信号(电压或电流)的一部分或全部,回授到

  详细介绍Sensirion传感器公司推出的新型集成数字式温湿度传感器。该传感器采用CMOSens专利技术将温度湿

本文链接:http://kingstonflowers.net/dingshirenwu/654.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部