首页 > 化工知识 > 答疑:关于定时器TON指令(附视频)

答疑:关于定时器TON指令(附视频)

时间:2020-09-25 来源:方正智芯 浏览:

后台收到一位网友的来信,他提出了一个关于TON指令的疑问,内容如下:

我看了您写的西门子系列PLC定时器部分的专栏,有一个问题想请教一下:对于TON指令而言,在保持IN为高电平的前提下,如果修改PT的值,定时器的会响应这个变化么?比如说一开始设定的时间是500ms,在定时器到期之前又改成计时200ms了,这时候定时器会按照新的时间去计时么?

网友提问

实践是检验真理的唯一标准,我们一起来写程序验证一下吧。

本例程使用西门子S7-200 SMART CPUST20,程序设计的思路如下:

地址VW0用来存放定时器T33的预设值。在CPU的第一个扫描周期,将其赋值为15s(原题中的500ms和200ms时间太短,不便于观察);

当V10.0的值为1时启动定时器(使用TON指令)开始定时,程序代码如下:

在V10.1的上升沿将定时器T33的预设值设置为35s;

将定时器的标志位赋值给扩展模块EM DR08的通道0(地址Q12.0);

相关代码如下图:

接下来做第一个实验:

使用状态图表将V10.0的值设置为1,启动定时器。然后在定时器到达预设值之前,将V10.1的值设置为1,这样T33的预设值就变为35s。

程序的执行请看下面的视频:

<iframe class="video_iframe rich_pages" data-vidtype="2" data-mpvid="wxv_1083083688784609281" data-cover="http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2F4b8Agg0uK6ia7Sc4qicocXbiarTpLNPic0iaKSVZrqIy0gloTntmuQuIWqy2YZGZC9usRibdl0zicDnjFGVsVWIIHpOUA%2F0%3Fwx_fmt%3Djpeg" allowfullscreen="" data-ratio="1.9540229885057472" data-w="1360" src="https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&auto=0&vid=wxv_1083083688784609281" frameborder="0"></iframe>

从视频中可以看出,如果在定时过程中预设值发生了改变,则定时器的当前值会与新的预设值相比较。若当前值大于预设值,则定时器标志位被置位。

接下来我们做第二个实验:

首先使用状态图表将V10.0的值设置为1,启动定时器。

等待定时器到达预设值15s,此时定时器标志位被置位。此时我们将V10.1的值设置为1,这样定时器的预设值就变为35s。会发生什么呢?

请看下面的视频:

<iframe class="video_iframe rich_pages" data-vidtype="2" data-mpvid="wxv_1083086066300665857" data-cover="http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2F4b8Agg0uK6ia7Sc4qicocXbiarTpLNPic0iaKBtNw5IgwOtj46vVFvn1OpjnraushRwibibCia9A0HWSwImhITlC7PjXPQ%2F0%3Fwx_fmt%3Djpeg" allowfullscreen="" data-ratio="1.9540229885057472" data-w="1360" src="https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&auto=0&vid=wxv_1083086066300665857" frameborder="0"></iframe>

从视频中可以看出,在定时器到达预设值并置位标志位后,如果增大预设值使其大于定时器的当前值,则定时器的标志位会被复位,直到下一次大于新的预设值后被重新置位。

总结:在TON指令中,定时器激活后,定时器的标志位取决于当前值与预设值的大小比较。若当前值大于等于预设值,则标志位被置位;若当前值小于预设值,则标志位被复位。当预设值被动态修改时,以最后一次修改的值为准!

好了,关于定时器TON指令的疑问就先解释到这里。

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐