OPENG定时工具
OPENG定时工具提供了四个函数,其中前三个不过是用错误簇封装了基本的时间函数,第四个函数是非常重要的定时触发函数,函数选板如下图所示:
函数的实现非常简单,我们首先看一下Tick Count函数的源代码
该函数与LV本身的Tick Count函数没有明显的区别,不过是增加了错误簇,实际上这是一种非常重要的实现数据流的方法,Tick Count函数只有一个输出,返回的是自计算机启动以来经过的毫秒数,通过错误簇采用数据流的方法可以避免使用顺序结构,效率和可读性都得到了很大的提高,看看下面程序框图的区别。
我们重点看看第四个函数,从图标上可以看出,这是个定时触发函数,当设定的时间到时,产生一个正向脉冲,即定时到后未TRUE,再次循环从新开始定时,时间未到返回FALSE。早期的LV版本没有提供类似的函数,较新版本提供的“已用时间”快速VI,可以实现同样的功能,当自动重置设置为TRUE时,就是OPENG的定时触发功能。
应为该快速VI除了定时触发,还可以实现其它许多功能,因此如果只需要定时触发,只用OPENG的定时函数更为合适。
我们先举个具体应用的实例,然后再分析它实现的方法。下面的例子没隔一分钟,计数器执行一次计数。
定时触发函数具有两个输入端子,定时时间输入端子,单位为毫秒,上面的例子60000MS=1MIN,当复位端子为TRUE时,重新开始定时。该函数具有三个输出端子,触发端子和两次调用之间经过的时间以及当前定时器的值,因此该函数同样可以用于计时,需要注意定时时间设置要大于计时时间,否则会自动复位。
下面简要分析一下它的实现原理。
同前面介绍的函数一样,它使用了未初始化的移位寄存器,上面的移位寄存器用来保存定时开始时,毫秒计时器当前的值,每次循环时,计算当前毫秒计时器与移位寄存器保持的开始时间的差值,如果大于设定值,说明定时时间到,触发端子输出为真,同时当前毫秒计数器的值存入移位寄存器,作为小一次定时的开始时间。依次类推。
下面的移位寄存器每次调用时写入当前毫秒计数器的值,因此差值是两次调用经过的时间。