此功能块就是要求连续检测输入X1,如果在任意3秒的时间窗口内,有3次ON,那么就是有效请求,输出Y1,去执行某一特定功能。
也就是说,对每一个ON脉冲,都要启动一个3秒的定时器,和一个计数器,看后续二个脉冲是否在3秒内。
但深入分析,其实只要二个3秒定时器,二个计数器就可以解决问题。
因为对接受到的第n个脉冲,因为只要有3个有效脉冲,所以只要检测第(n-2)个脉冲到现在的时间是否超过3S。
(n-2)之前的脉冲都是无效的都可丢去,所以只要记录(n-2),(n-1)二个到目前的时间。
在前二个时间段内,只要有一个接受到三个脉冲,即可输出Y1,结束检测。
归纳一下,建2个定时器,二个计数器。
检测到输入脉冲,先启用T1,如T1已用,则同时启用T2。
对已启用的T,在输入脉冲来时对应的计数器加1,没启用的不加。
定时器到时,立即清零对应的计数器。
只要有某计数器到3,立即输出Y1,检测结束。
以此分析建立程序,较为简单。
程序用三菱 FX3U 编制。
满足条件后,Y1输出3秒,并封锁输入,Y1 off 后继续检测输入脉冲。
当然此程序也用了一点技巧,利用PLC自左到右重上到下执行的原理,把程序段适当换了上下顺序,利用时间差减少了某些需要
的中间继电器,所以不能按上面分析的次序交换程序段,否则不能正常工作。
[ 此帖被znz43在2016-04-27 19:23重新编辑 ]