发表于:2005-11-24 18:28:00
楼主
题目:
给你一个按钮,一个指示灯。
请用最少的中间继电器,实现以下功能!
按一下灯亮,再按一下灯灭,交替进行
大家好,首先请允许我为先前的不理智的言论向大家道歉!
其实题目很简单,但我觉得很经典,从中能看到很多东西,从大家的回答中也能看到很多东西!
答案并不重要,也没有什么标准答案,只想让有兴趣的人体验一下获得自己认可的答案的过程!
从争论中能学到不少东西,感谢各位!
我不是一个嚣张的人,出此下策就是想吸引大家的注意!被人骂总比没人比强!
答案我就不贴了,给两个逻辑式子吧,不见得对,欢迎批评指正!
M1,M2代表继电器,M1反代表M1求反(不好意思,M反我不会打)
SB代表按钮
L代表灯
M1=SB(M2反)+(SB反+M2反)M1
M2=(SB反)M1+(SB+M1)M2
L=M1
原始状态,SB=0,M1=0,M2=0
当SB=1,M1=1,M2=0
然后,SB=0,M1=1,M2=1
再次SB=1,M1=0,M2=1
然后,SB=0,M1=0,M2=0
这里,M1控制了灯,M2实现了记忆。
按照这个逻辑式子,不管是LAD,还是用纯继电器,应该都没有问题!
前面哪位说用两个继电器有问题的,或者说用继电器是利用了打开闭合间隙的请给予指教!
想检查自己程序是否正确的只要转化为逻辑式子,问题马上就可以发现了!我就不一一指出了!
TO 支持国货 szTaoyanbin pest
类似于这样的程序在很多PLC书里都有,用PLC来实现这的确是个典型程序!
可惜在这样程序的注释往往有这样的话,同逻辑的用纯继电器却不行,为什么呢?
我可以帮你分析一下,省得不服气!
你的程序第一行最后一个指令我不知道什么意思,但是如果能实现交替,我猜应该是生成一个扫描周期的脉冲,对吧?
不用这个指令,生成脉冲的方法见下面逻辑式
M1,M2代表中间继电器,Q代表输出
M2=SB*M1反
M1=SB
Q=M2(Q反)+(M2反)Q
首先,很容易看出,这个逻辑式子用纯继电器是实现不了的出题人要求的
而在PLC里却可以,为什么呢,关键就是在于那个脉冲,你不否认吧
如果不是利用了PLC的这种工作机制,呵呵!我就不多说了!