登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:定时器自定义设计的一种方法讨论

点击:1412 回复:12

PLC中使用定时器是基本功能,大家在使用过程中也发现其实PLC提供的定时器并不好用,主要是定时器编号有限定,而且编号和定时器的时基是相关的,这些都需要记忆,给本来就机械记忆不足的我带了困难。实践中我们一般是用系统时钟对应的M来做自定义时钟的,这解决了上述问题,一直也比较好用。
最近加入了一个微信群,群主是个资深业内人士,带领大家讨论一些无聊的问题,当然也提供一些技术分享。其中有个定时器的设计比较有新意,打开来学习了下,我谈谈我的看法。(这个微信群不能深入讨论技术问题,群主也拒绝讨论)
基本原理很简单,就是把启动定时器时的系统时间(DTL型)存储在一个变量中,扫描时比较当前时间和启动时间的差值,看是否达到或超过预定时间。
奇妙的是设计的数据结构比较好玩,设计了500个关于编号和DTL变量的结构数组,也就是可以使用500个定时器,一个单元对应一个定时器,这个也比较普通。但是定时器接口并没有关于编号的接口,那怎么来知道使用的哪个单元的定时器呢?
这个就是设计者的技巧所在了,程序开始让编号为0(有一个当前编号的变量来指向定时器数组),第一个使用定时器的自动分配第0个单元,其后是第2个、第3个......。也就是扫描继续,编号顺次加1。
我谈谈体会,巧妙是巧妙,不过存在一些问题:首先是系统时钟DTL可能存在问题,我做的一个系统就需要PLC同步外部时钟,这个是用户手动同步的。这样就存在同步时定时错误带来的灾难。其次是设计者的小技巧带了的问题,也就是编号随扫描自动分配的问题。如果是普通的顺次执行的程序还好些,如果有根据不同要求随机选择执行次序的程序就不可能和使用时的定时器编号一一对应了,比如中断。虽然中断里面尽量不用定时器,当也并不是不可以。
再有一点小问题是设计者并不对500这个编号做越限判断,这个作为一个程序是有bug的。
限于群主的观点,我不提供原程序下载,希望我的描述是全面的了。
19-09-02 11:14
那么就请去问问这个资深群主,为啥PLC要对定时器编号做限制。
你需要给这个资深群主一点时间百度,不能要求他马上给答案。
19-09-02 11:53
这不会是那个万泉河吧?
19-09-02 12:00
我就好奇问问,加这个群要多少钱?或者说得到这个资深人士的指导要多少钱?
19-09-02 12:03
基本原理很简单,就是把启动定时器时的系统时间(DTL型)存储在一个变量中,扫描时比较当前时间和启动时间的差值,看是否达到或超过预定时间。
看这儿就表情
这个思维还拿出来吹
系统没有时钟-----“我做的一个系统就需要PLC同步外部时钟”
系统时钟误差,更新系统时钟.....
以不精准的时钟来控制精准的设备-----开玩笑
19-09-02 12:53
出发点很好。
只可惜不能与楼主共同分析利弊。
我之前定时器不够就用计数加脉冲自己做 但数量不能太多。
其实有的地方也不用定时器。
也要考虑定时器的使用是否合理。
19-09-02 13:06
原来他是这么有名呀,是我孤陋寡闻了,现在才知道。
加群不要钱。
我暂时没有需要请教他的问题,不清楚要多少钱。
这个定时器程序是少数可以下载的程序,其他需要先交钱,所以我下载了。
看完后不吐不快,想和他讨论下,没想到他不讨论。我就退群拉黑了。
19-09-02 14:41
是不是PLC资源的限制?
19-09-02 16:36
这么牛逼的群主,还不讨论技术?做这行的哪个不会自己做定时器呀?
我的看法是,只要是PLC提供的指令,我是绝对不会再写一遍的
19-09-02 21:07
不要这么绝对。
19-09-03 15:23

上一页下一页

工控新闻

更多新闻资讯