回复:300 的自编写S_ODT定时器FC块,比程序自带定时器好用多了,特此共享!

yzs

  • 帖子

    441
  • 精华

    8
  • 被关注

    36

论坛等级:侠圣

注册时间:2013-12-27

黄金 黄金 如何晋级?

发布于 2019-06-15 08:46:29

13楼

展开查看
以下是引用Kapok_ZXM在2019-06-14 09:42:07的发言 >5楼

貌似FC350里面,L2.7和#PT_T_1有冲突。不知楼主是如何考虑的?

以下是引用yzs在2019-06-13 15:56:30的发言 >楼主:西门子自带的S_OD...

引用楼主详细内容:

西门子自带的S_ODT块由于定时器的时间长度问题,精度问题导致很多人都不愿意使用,很多人也喜欢使用IEC定时器。但是程序如果要做成标准程序或需要多重调用的话,FC块明显是最好的使用方法。因此我早期就根据S_ODT的功能自行编写了一个FC的定时器块。此块在我长时间的编程中频繁使用,感觉的确不错,不敢藏私,特拿来分享。

S_ODT块支持最长32767h(3年)定时,精度为500MS。在定时器使用过程中可设置N时间类型(0-S 1-M 2-H)的数值即可方便的进行秒、分钟、小时的定时。同时可通过比较ET(已用时间)方便通过一个定时器实现对多个设备的定时的临活需求。

S_ODT FC块运用了一些对保持型变量,临时变量的一些小技巧希望能够对大家的编程思路有一定的启发。

S_ODT(YZS).zip

1.jpg

注:此程序版权所有,转载请注明出处。


在FC定时器的制作中,如果加入上升沿输入,程序就会简单很多。但是在FC输入中就要增多一个输入接口或在程序中定义多一个上升沿。由于定时器是需要经常使用的,多一个接口就多一份麻烦,因此在S_ODT中巧妙利用了PT(中间变量(保持型))中的符号位作为一个上升沿的标志位,这样就减少了上升沿输入的接口。临时变量里的L0.7的置位和L2.7的复位就是利用了LW0和LW2里的符号位,在程序编写过程中,利用变量内部的某个位有可能可以简化程序,明白变量的冲突,巧妙的利用变量的冲突也是编程的一种思路。

在这里也是谢谢版主的加精,正是因为我利用了临时变量的一些小技巧这个块才有分享出来的必要,如果按平常思路制作的FC定时器,功能实现是很简单的,但应该没我这个好用

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54156条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。