技术论坛

易道—IEC定时器使用指南

作者 主题
侠士

经验值: 1375
发帖数: 144
精华帖: 0
主题:【分享】易道—IEC定时器使用指南
推荐帖


只看楼主 楼主 2018-11-17 14:37:25

IEC定时器和计数器,对比S5定时器和计数器有一些优势:

     --具有更大的计数、定时范围

     --IEC定时器比S5定时器性能更佳,计时更准确。

     --IEC定时器/计数器不占用CPU系统资源,只占用工作存储区,所以,只要你的存储够大,可以使用无数IEC定  时    器、计数器。

 

     有这么多的优势那肯定是必须要用的,只是如何用好才是关键,毕竟实践才是检验好用的标准。

在实际使用中也是发现一些问题:

     每次调用一次IEC定时器或计数器都会默认生产一个数据块,使用多了就会发现在系统块中会有一大堆的定时器或计数器的DB块


虽然这样也没啥,但是看着不舒服(有强迫症)。

 

这就要用到多重背景了,首先要了解什么是多重背景,官方的定义:当函数块 (FB) 调用一个高级函数块时,无需为被调用的块创建单独的背景数据块。被调用的函数块也可将实例数据保存在调用函数块的背景数据块中。这种块调用又称之为多重实例。

使用多重实例具有以下优势:

    适用于复杂块的完美结构

    背景数据块的数量较少

    快速编程本地子程序


看到说明有木有豁然开朗,说做就做
 


直接建一个TimeDB块,然后把需要用的定时器都往这里放,同时命名好。这样是不是很方便快捷。

 

或者是这样:

 


直接建一个定时器的数组,需要多少个就设置多少个。这样就是有个问题:不能给每个定时器命名了。(速度超快,我都这么干,下面会讲到原因)

 

写完程序开始调试,小编发现这么修改定时器的时间之后定时器不运行了,或者还在继续运行之前设置的时间(1000ms写成1000s),这可不好玩。吓得小编赶紧把程序停止,重新下载在运行,随后赶紧查说明去。

对照一下官方的例子:


看了半天也没发现什么,就是并没有给Q和ET赋值,难道是这原因?

果然,在吧Q给输出到一个变量后居然神奇的可以了,可以了,可以了,重要的事情说三遍。好吧果然是自己粗心大意了,在对照官方的说明:


果然是官方话,看不太懂。。。。。。。

果然还是TO YOUNG

写得很清楚,如果输出为互连,则不更改ET中 的当前值。。。

这个问题算是解决了。

以后写定时器记得给个输出,不要偷懒值给IN和PT

 

接着调试,问题右来了:图1


 

图2

 


各位发现问题了么有,从定时器使用处可以查到哪里使用了定时器.Q的使用点和自身所在的位置,但是,但是通过定时器.Q却不能反向找到在哪使用了定时器。

这就头大了,需要修改时找不到位置,只能通过DB块处找到定时器,在用交叉引用才能找到,这可麻烦了。

 

想了好几天都没想明白,突然想到之前的问题,定时器要带输出在更改定时器时间时才会更新,问题点会不会在这。

 

前面我提到过我喜欢直接把定时器定义在数据块的数组中,这是有原因的。在使用中既然不能反向查找到定时器的位置,还不如不给定时器命名(使用数组自带的名字),直接在Q输出的通过建立一个BOOL变量,命名这个变量就好,使用时也直接调用这个变量。


so,搞定问题,用得也很顺手。

 

拓展一下:

定时的数据格式是:IEC_TIMER      占用个16个字节

计数器的数据格式是:IEC_COUNTER     占用个6个字节

 

定时器的输入(PT)格式:Time、DWord、DInt(值都是以ms为单位的,使用触摸屏设置定时器值时就知道了)

 

写完也是一直冒冷汗,果然还是TO YOUNG ,好好学习,天天向上。

 

写在最后,之前看到万泉河大神说过:好的程序的标准是:不使用M中间量,不使用Timer。

我个人觉得这是一个习惯问题(前提你得使用的是西门子的新plc)。小编自己早期使用三菱的,后面几乎都是S7-1200或者ET200SP,还真几乎不使用M,只要是麻烦。同时查找也麻烦,不知道在哪里使用了,或者说不知道在哪个程序中使用的。小编一般习惯在每个程序中去新建边,这样在那个程序写就使用哪个数据块,好管理。Timer也是如此,并不是说不要用定时器了,把定时器用多重背景数据块建在各自程序块中方便查找,集中管理。

        看过万大神后面的文章,这样做的确是很方便移植调用程序,这可是非常赞同的。


自己战胜自己
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1518157&b_id=50&s_id=0&num=7

侠士

经验值: 1375
发帖数: 144
精华帖: 0
回复:易道—IEC定时器使用指南
推荐帖


只看楼主 楼主 1楼 2018-11-17 14:39:27

闲暇之余写的,大家看是是否入眼。欢迎评价


自己战胜自己
以下网友喜欢您的帖子:

  
版主

经验值: 76239
发帖数: 19148
精华帖: 378
回复:易道—IEC定时器使用指南
推荐帖


只看楼主 2楼 2018-11-17 17:18:38

 呵呵啦,不能苟同,这样编程与使用T有啥区别呢?


Zane 注册自动化系统工程师 Always save before download
以下网友喜欢您的帖子:

  
游士

经验值: 169
发帖数: 23
精华帖: 0
回复:易道—IEC定时器使用指南
推荐帖


只看楼主 3楼 2018-11-28 10:43:12
以下是引用Zane在2018-11-17 17:18:38的发言 >2楼

 呵呵啦,不能苟同,这样编程与使用T有啥区别呢?

在西门子的1200技术文档里面,也有设个介绍


 
以下网友喜欢您的帖子:

  
侠圣

经验值: 2331
发帖数: 382
精华帖: 3
回复:易道—IEC定时器使用指南
推荐帖


只看楼主 4楼 2018-11-28 16:29:39
以下是引用Zane在2018-11-17 17:18:38的发言 >2楼

 呵呵啦,不能苟同,这样编程与使用T有啥区别呢?

程序复用相对方便 可以不用将Timer作为inout管脚了


工艺第一& 我所说的一切均代表个人意见
以下网友喜欢您的帖子:

  
侠圣

经验值: 2075
发帖数: 147
精华帖: 1
回复:易道—IEC定时器使用指南
推荐帖


只看楼主 5楼 2018-11-28 16:51:29

 就是个定时计数FB,当FB用就完事了,有啥特别的地方吗,用哪个不是用,S5定时器我觉得也不赖啊,测试时候顺手拖一个就完事


大神求带
以下网友喜欢您的帖子:

  
至圣

经验值: 16723
发帖数: 1309
精华帖: 2
回复:易道—IEC定时器使用指南


只看楼主 6楼 2018-12-28 11:10:43

思维不一样想法肯定不一样适合自己就好好用就好


同一个问题ID下,已经先回答此问题的人,如再参考我答案而修改自己答案的,就是王八蛋!
以下网友喜欢您的帖子:

  
侠士

经验值: 1851
发帖数: 82
精华帖: 1
回复:易道—IEC定时器使用指南


只看楼主 7楼 2019-05-25 10:03:55

在V15版本更新后IEC定时器的编译逻辑好像发生了变化,在公司的一些标准功能块升级之初造成了不少的麻烦。

TON和TOF定时器在更新背景数据块首次调用后,即使IN的条件未达成,Q输出依然会保持上次输出状态,这样容易导致整个动作逻辑全部混乱。所以在使用此定时器时需要注意使用RESET_TIMER这个指令


 
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
易道—IEC定时器使用指南
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。