bogegongkong
什么是生活,生活就是活着。
级别: 略有小成
精华主题: 0
发帖数量: 446 个
工控威望: 414 点
下载积分: 2444 分
在线时间: 563(小时)
注册时间: 2007-07-06
最后登录: 2024-12-10
查看bogegongkong的 主题 / 回贴
楼主  发表于: 2016-04-22 20:04
题目很简单:任意时间段内,输入X1,3秒内ON三次,输出Y1 ON。
注意是任意时间段内。
求最简短的编程。
偶然在中国工控网看到的。觉得有点意思,转发过来,看看我们工控家园兄弟的高招。
我也搞了一个,23步搞定,有讨论的再发。



看来大家对这个题目还有点兴趣。42L的兄弟也搞出来了。测试是OK的。
很多认为很简单的,就是没理解“任意时间段内”这个意思。自己将按X1时间分成3秒一段,3秒一段,按顺序判断,这肯定是不对的。

将我搞出的发上来,大家看下是否有问题。我测试是OK的。PLC 用FX3U。

  [attachment=146921]
[attachment=146922]
[attachment=146923]
[attachment=146924]    


uthman程序最简短明了。很有启发性。uthman是高手。大家可以看下他的程序。
[ 此帖被bogegongkong在2016-08-11 13:24重新编辑 ]
本帖最近评分记录:
  • 下载积分:+1(上善若水非凡) 好贴好贴!
  • 下载积分:+5(uthman) 共同学习
  • 熟悉轮胎生产工艺流程。专业制造车胎生产设备。提供轮胎工厂公用工程设计,安装。提供轮胎生产设备改造升级服务。愿与各同行探讨工控问题:QQ 1987857377
    znz43
    工控职业已成回忆 只因爱好常回家园 乐此不疲
    级别: 工控侠客

    精华主题: 0
    发帖数量: 1057 个
    工控威望: 4900 点
    下载积分: 7351 分
    在线时间: 2561(小时)
    注册时间: 2010-06-24
    最后登录: 2024-12-16
    查看znz43的 主题 / 回贴
    1楼  发表于: 2016-04-26 11:05
    此功能块就是要求连续检测输入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重新编辑 ]
    附件: 3秒内3次ON_A.zip (12 K) 下载次数:8
    网站提示: 请不要用迅雷下载附件,容易出错
    本帖最近评分记录:
  • 下载积分:+1(牛批的) 牛批的
  • 下载积分:+2(1578911082) 这个应该是最好的程序了 ..
  • 出门打工难,打工学艺难,学艺拜师难,找到好师傅更难。
    赠人玫瑰,手留余香。舍得舍得,有舍才有得。
    znz43
    工控职业已成回忆 只因爱好常回家园 乐此不疲
    级别: 工控侠客

    精华主题: 0
    发帖数量: 1057 个
    工控威望: 4900 点
    下载积分: 7351 分
    在线时间: 2561(小时)
    注册时间: 2010-06-24
    最后登录: 2024-12-16
    查看znz43的 主题 / 回贴
    2楼  发表于: 2016-06-08 09:03
    引用
    引用第87楼hafatahaha于2016-06-08 01:47发表的  :
    再发发我的看法,,,所以没有存储三个点时间段的程序都是有问题的,,,你可以变址或者其他方式,,但是一定要三个时间都有存储,不然就肯定是有bug的。。。。。。。。。。。。。不对的话,,兄弟们指出来

    两个计时器就够了,具体看61楼的分析,程序测试通过。
    出门打工难,打工学艺难,学艺拜师难,找到好师傅更难。
    赠人玫瑰,手留余香。舍得舍得,有舍才有得。
    znz43
    工控职业已成回忆 只因爱好常回家园 乐此不疲
    级别: 工控侠客

    精华主题: 0
    发帖数量: 1057 个
    工控威望: 4900 点
    下载积分: 7351 分
    在线时间: 2561(小时)
    注册时间: 2010-06-24
    最后登录: 2024-12-16
    查看znz43的 主题 / 回贴
    3楼  发表于: 2016-06-08 13:16
    引用
    引用第89楼hxl202319于2016-06-08 12:39发表的  :

    我认为你的分析还是不对的,题目要求的是3秒内接通3次才有效,而不是3秒内接通大于3次有效,而你的分析只能基于3秒内接通大于3次有效。像你分析一样,譬如(n-2),(n-1),n之和为2秒,并在2.5秒内来了n+1脉冲,按照题目要求是无效的,但是你的分析却是有效,我没看你程序,但你程序如果按照这个思路去做,应该也是不正确的。


    我说大于3个了吗?我说的是任意3秒内接收到3个有效脉冲就ON。

    不看程序也行,我有程序附件,可以下载测试下。能不能行,一试就知。
    出门打工难,打工学艺难,学艺拜师难,找到好师傅更难。
    赠人玫瑰,手留余香。舍得舍得,有舍才有得。
    znz43
    工控职业已成回忆 只因爱好常回家园 乐此不疲
    级别: 工控侠客

    精华主题: 0
    发帖数量: 1057 个
    工控威望: 4900 点
    下载积分: 7351 分
    在线时间: 2561(小时)
    注册时间: 2010-06-24
    最后登录: 2024-12-16
    查看znz43的 主题 / 回贴
    4楼  发表于: 2016-06-08 19:16
    那就是对题的理解问题了。各人理解不同。

    按楼主的题意,任意3秒内,只要有3次输入,Y就ON,与第4个脉冲有无无关。
    至于何时OFF,并无说明,固另当别论。我在程序中让它ON 3秒后OFF,再等待下3个有效脉冲。

    其实只要在任意3秒内(不是在固定的3秒时间间隔)有3个脉冲就使Y置ON,程序就是合格的。至于实现方法,可以八仙过海,各显神通,无所谓好坏对错。

    有许多人没注意“任意3秒”,程序虽短却是错的。搞工控一定要心细,走马观花是不行的。
    楼主留言:
    题目是转来的。我理解的意思是:任意3秒内时间,有3次脉冲输入,条件满足就ON,何时OFF,就看何时条件不满足。就像一把3秒的时间尺子,连续向后移动,有3次脉冲,ON,没3次,OFF.
    出门打工难,打工学艺难,学艺拜师难,找到好师傅更难。
    赠人玫瑰,手留余香。舍得舍得,有舍才有得。