xiaohy620
级别: 探索解密
精华主题: 0
发帖数量: 2 个
工控威望: 120 点
下载积分: 526 分
在线时间: 2(小时)
注册时间: 2014-01-16
最后登录: 2022-07-14
查看xiaohy620的 主题 / 回贴
楼主  发表于: 2014-03-13 22:49
在现场控制中可能会遇到这样一种需求,看起来简单,但是我想了一整天却无法编程来实现。为了讨论方便,我把它简化为这样一个问题:有5个按钮和5个信号灯,编号1#~5#,每次只按下一个按钮,按的次序是随意的且没有时间限制,每按下一个按钮输出就亮一个对应的信号灯,持续10秒后自动熄灭,但是同一时刻只允许亮一个灯,即前灯不灭后灯不亮,并且亮灯的次序严格按照按钮按下的次序,例如按钮是2#——1#——5#——3#——4#,则亮灯也按照2#——1#——5#——3#——4#,不能乱。
敬请感兴趣的高手用S7-200示范一下。
wwcwwc
级别: VIP会员

精华主题: 0
发帖数量: 3393 个
工控威望: 3189 点
下载积分: 70387 分
在线时间: 1603(小时)
注册时间: 2008-04-20
最后登录: 2024-10-31
查看wwcwwc的 主题 / 回贴
1楼  发表于: 2014-03-14 10:51
抛开问题看本质。
楼主你没有静下心情想问题哦。
首先不要把问题想的太过于复杂,按钮与指示灯对应就这样操作好了,见下程序;
这里只写了一个工位的程序,可以按此思路写其它的工位。
LD     I0.0
AN     M10.0
S      Q0.0, 1       //启动指示灯

LDB<>  QB0, 0
=      M10.0         //判断是否有按钮按下

LDB>=  QB0, 0
TON    T37, 100     //启动延时

LD     T37
R      Q0.0, 4         //延时时间到复位