本期擂台为征集擂台:
用一个按钮可随意控制N个(N=10)灯泡,使其亮或灭,应如何编程。
PLC的类型任意选择,回答的最好最完全的,原创最多,阐述最详细,程序越准确者获一等奖!
工控PLC擂台每周一期,本期待93期结束一周后结贴。奖项设置:一等奖1名:50MP,二等奖5名:10MP,三等奖10名:100积分。
MP介绍:gongkongMP即工控币,是中国工控网的用户积分与回馈系统的一个网络虚拟计价单位,类似于大家熟悉的QB,1个MP=1元人民币。
MP有什么用?兑换服务:以1个MP=1元来置换中国工控网的相关服务。 兑换现金:非积分获得的MP可兑换等值现金(满100MP后、用户可通过用户管理后台申请兑换)。
可以把目前任何一种通讯协议,然后放慢传输速度,然后用按钮在一个输入点上形成“0”“1”信号可以实现传输任意信息。但是手会很累。
我的意思是,你和PLC之间达成一种协议的话,便可以和PLC“沟通”。你叫他干啥他就干啥。
例如:
长按按钮三秒以上然后松开,定义为呼叫PLC。呼叫后一秒内无新信号便超时。从新等待呼叫。
新信号第一秒收到一个通断信号的为关闭某灯。新信号第一秒收到两个通断信号的为打开某灯。其他指令视为非法,等待一秒超时。
新信号之后就是连续的大于1赫兹的通断信号,信号次数代表灯号。10次之后的忽略。直接判断结束,执行指令。信号中断超时1秒判断结束,忽略前面所有指令。
再继续长按按钮1秒以上放开,示意PLC按照之前的指令操作指定的灯。
ok。这是我建议的协议。
用S7-200编写本命题:用一个按钮可随意控制N个(N=10)灯泡,使其亮或灭。本程序编程构思是:
1、用连续按钮的次数(N)来决定选中第N号灯:如连续按3下按钮,则选中第3个灯,如此时第3灯是亮的,则命其熄灭,如此时第3灯是灭的,则命其亮。
2、要求连续按钮的间隔为0.5~1.5秒。,确保每回连续按钮次数的准确,本编程用按钮输入信号(I0.0)连接2个断电延时定时器T101、T102,T101定时时间为300mS,T102定时时间为1.5S。用T101的作用是防止按钮抖动引起的打连发现象,一般产生的抖动脉冲间隔<300S,当按下按钮,I0.0=1,T101与T102L置1(即T010=1 T102=1)如产生抖动,其抖动脉冲间隔<300S,故T101与T102L置1不变,当抖动消失,延时0.3秒后,T101由 1 ↓ 0,使MB10计数加1 ,在<1.5秒内,再按按钮,T101立刻又=1,而T102仍保持=1,当按钮抬起后延0.3S,T101又由1 ↓ 0,其后沿触发 计数器MB10使其加1,如按钮连续按下3次,则MB10=3,延时1.5秒,T102 因无脉冲再触发,T102的输出状态:1 ↓ 0,即使M0.1=1。开始判断。
3、M0.1=1实为T102=1的后沿,当它出现时最后一次按钮的抬起已结束了1.5秒,此时MB10的值即为连续按下按钮的次数。用MB10与1~10比较,MB10 =几,就选中第几号灯。
4、决定被选灯是亮还是灭,编程选用SR触发器指令,组成双稳态触发电路:用输出点Q0.n 的常闭、常开触点分别串入S、 R 触发支路,这样安排可确保每触发一次该电路,其输出点状态翻转一次:如原输出状态亮,触发后变灭;如原输出状态为灭,触发后变亮。
编程如下:
这种程序比较简单,在机械手动调机功能时经常用于顺序动作的步进控制
方案A(设定过程不可见):
1、长按启动信号3秒后进入设定功能并关闭所有的灯,5秒内没信号,则设定功能关闭(此时所有灯灭)
2、设定功能启动后,记数器记录连续按的次数(按键时间间隔小于1秒,若大于1秒,则计数完毕),点亮相应的灯并退出设定功能
方案B(设定过程可见):
1、长按启动信号3秒后进入设定功能并关闭所有的灯,5秒内没信号,则设定功能关闭
2、每按一次顺序启动一个灯,关闭前一个灯(1-10循环),直到需要的位置
3、连续5秒没收到信号,退出设定功能
其它:按纽可以用一个带灯或蜂鸣的,每次按下时直接看到或听到