首页 上一页 1 2 下一页 尾页

(已结帖)工控PLC擂台第93期-一个按钮可随意控制N个(N=10)灯泡的问题? 点击:7978 | 回复:40



玻璃的心

    
  • 精华:30帖
  • 求助:2帖
  • 帖子:967帖 | 5801回
  • 年度积分:0
  • 历史总积分:61250
  • 注册:2010年6月11日
发表于:2012-12-18 22:25:43
楼主

本期擂台为征集擂台:

用一个按钮可随意控制N个(N=10)灯泡,使其亮或灭,应如何编程。 

 

PLC的类型任意选择,回答的最好最完全的,原创最多,阐述最详细,程序越准确者获一等奖!

 

工控PLC擂台每周一期,本期待93期结束一周后结贴。奖项设置:一等奖1名:50MP,二等奖5名:10MP,三等奖10名:100积分。 

MP介绍:gongkongMP即工控币,是中国工控网的用户积分与回馈系统的一个网络虚拟计价单位,类似于大家熟悉的QB,1个MP=1元人民币。 

MP有什么用?兑换服务:以1个MP=1元来置换中国工控网的相关服务。 兑换现金:非积分获得的MP可兑换等值现金(满100MP后、用户可通过用户管理后台申请兑换)。




芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2012-12-18 22:48:58
1楼

可以把目前任何一种通讯协议,然后放慢传输速度,然后用按钮在一个输入点上形成“0”“1”信号可以实现传输任意信息。但是手会很累。

我的意思是,你和PLC之间达成一种协议的话,便可以和PLC“沟通”。你叫他干啥他就干啥。

例如:

长按按钮三秒以上然后松开,定义为呼叫PLC。呼叫后一秒内无新信号便超时。从新等待呼叫。

新信号第一秒收到一个通断信号的为关闭某灯。新信号第一秒收到两个通断信号的为打开某灯。其他指令视为非法,等待一秒超时。

新信号之后就是连续的大于1赫兹的通断信号,信号次数代表灯号。10次之后的忽略。直接判断结束,执行指令。信号中断超时1秒判断结束,忽略前面所有指令。

再继续长按按钮1秒以上放开,示意PLC按照之前的指令操作指定的灯。

ok。这是我建议的协议。

秦君_1

  • 精华:8帖
  • 求助:22帖
  • 帖子:148帖 | 4867回
  • 年度积分:1651
  • 历史总积分:39896
  • 注册:2005年6月28日
发表于:2012-12-19 16:18:17
2楼
可以规定长按按钮5s为开灯模式信号,在开灯模式下,10s内检测到按下一次按钮,1#灯开;按下两次按钮,2#灯开……按下十次按钮,10#灯开。规定长按按钮10s为关灯模式信号,在关灯模式下,10s内检测到按下一次按钮,1#灯关;按下两次按钮,2#灯关……按下十次按钮,10#灯关。

秦君_1

  • 精华:8帖
  • 求助:22帖
  • 帖子:148帖 | 4867回
  • 年度积分:1651
  • 历史总积分:39896
  • 注册:2005年6月28日
发表于:2012-12-19 18:07:21
3楼

IO定义及其梯形图如下:已经在台达DVP-14SS上调试通过

12

 

1

2

3

4

5

wyb2866255---王者之师

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2012-12-30 22:49:02
4楼

    用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 触发支路,这样安排可确保每触发一次该电路,其输出点状态翻转一次:如原输出状态亮,触发后变灭;如原输出状态为灭,触发后变亮。

    编程如下:

 

 

 

 

caojie0723----王者之师

  • 精华:2帖
  • 求助:5帖
  • 帖子:26帖 | 2883回
  • 年度积分:8
  • 历史总积分:22502
  • 注册:2004年2月22日
发表于:2012-12-31 16:22:55
5楼

使用施耐德m340编程,%i0.1.0为输入,用输入的下降沿作为计数器的计数输入端,长按2秒为输出的置位端,长按4秒为输出的复位端,当没有输入时,等待5秒则使计数器清零!

最爱大秦

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 30回
  • 年度积分:0
  • 历史总积分:160
  • 注册:2012年7月31日
发表于:2013-01-03 10:08:24
6楼
回复内容:
对:wyb2866255---王者之师关于    用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 触发支路,这样安排可确保每触发一次该电路,其输出点状态翻转一次:如原输出状态亮,触发后变灭;如原输出状态为灭,触发后变亮。    编程如下:    写的很好

zhangsanjian

  • 精华:0帖
  • 求助:3帖
  • 帖子:8帖 | 387回
  • 年度积分:1400
  • 历史总积分:1888
  • 注册:2006年2月06日
发表于:2013-01-10 22:47:09
7楼
回复内容:
对:wyb2866255---王者之师关于    用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 触发支路,这样安排可确保每触发一次该电路,其输出点状态翻转一次:如原输出状态亮,触发后变灭;如原输出状态为灭,触发后变亮。    编程如下:    内容的回复:

在工控论坛上编写的s7-200程序个个精简,对 s7-200的初学者及提高s7-200 编程水平的帮助很大,谢谢您.

wangdianyuan1234

  • 精华:0帖
  • 求助:1帖
  • 帖子:3帖 | 14回
  • 年度积分:0
  • 历史总积分:49
  • 注册:2012年6月08日
发表于:2013-01-28 12:36:42
8楼

非常钦佩你的才华,请问你在哪个城市

数控学徒

  • 精华:0帖
  • 求助:2帖
  • 帖子:6帖 | 26回
  • 年度积分:0
  • 历史总积分:121
  • 注册:2012年6月18日
发表于:2013-01-28 20:14:36
9楼

太厉害了,给力啊

 

wyb2866255---王者之师

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2013-01-28 20:55:03
10楼
     回8楼:谢谢你的赞扬,我是辽宁省营口市人。现已退休10多年了,在工控网上常写点文章,或回答网友的求助,就是想老有所用,能为社会做点回报吧!工控杂志14期有关于我的简介。

liujian5118

  • 精华:2帖
  • 求助:8帖
  • 帖子:31帖 | 3109回
  • 年度积分:199
  • 历史总积分:19924
  • 注册:2009年3月25日
发表于:2013-01-31 20:52:22
11楼

呵呵,我的想法是,开关小于1秒的脉冲用于计数,除10个显示灯外,外增加三个灯。用于指示点亮(2--5秒的长信号),单个(5--8秒)关闭,全部关闭(大于8秒),外加8个用于控制一个LED数码管,表示现在选择对那个灯操作!程式过一两天贴上来。呵呵!(和秦君一样的台达的做的,没有实体PLC,离线模拟了下,可以。欢迎大家实际试下,指点!)

水边清浅横枝瘦

  • 精华:0帖
  • 求助:4帖
  • 帖子:78帖 | 3488回
  • 年度积分:8
  • 历史总积分:5664
  • 注册:2006年7月11日
发表于:2013-02-01 16:41:28
12楼

三菱

按下时,每秒加1,等于9时加1复位为0,值用7段码显示。表示选哪台电机。

松开时选中电机交替输送。(用下降沿)

 

litwo

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 76回
  • 年度积分:0
  • 历史总积分:1148
  • 注册:2007年11月28日
发表于:2013-02-02 10:07:14
13楼

这种程序比较简单,在机械手动调机功能时经常用于顺序动作的步进控制

方案A(设定过程不可见):

1、长按启动信号3秒后进入设定功能并关闭所有的灯,5秒内没信号,则设定功能关闭(此时所有灯灭)

2、设定功能启动后,记数器记录连续按的次数(按键时间间隔小于1秒,若大于1秒,则计数完毕),点亮相应的灯并退出设定功能

方案B(设定过程可见):

1、长按启动信号3秒后进入设定功能并关闭所有的灯,5秒内没信号,则设定功能关闭

2、每按一次顺序启动一个灯,关闭前一个灯(1-10循环),直到需要的位置

3、连续5秒没收到信号,退出设定功能

 

其它:按纽可以用一个带灯或蜂鸣的,每次按下时直接看到或听到

芽菜@技术豆

  • 精华:0帖
  • 求助:2帖
  • 帖子:20帖 | 326回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2013-02-02 10:30:59
14楼
初学者瞎编的..望指正...   按钮按下第一次灯1亮,第二次灯2亮灯1灭......第十次灯10亮灯9灭...利用计数器当前次数MW100来判定按了几次...超过十次,清零...

芽菜@技术豆

  • 精华:0帖
  • 求助:2帖
  • 帖子:20帖 | 326回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2013-02-02 10:33:18
15楼
回复内容:
对:芽菜@技术豆关于 初学者瞎编的..望指正...   按钮按下第一次灯1亮,第二次灯2亮灯1灭......第十次灯10亮灯9灭...利用计数器当前次数MW100来判定按了几次...超过十次,清零... 内容的回复:

怎么贴图 不是按 上传次序的啊  下边网络 1 2 3 放在前边

王者之师—广州@阿君

  • [版主]
  • 精华:25帖
  • 求助:18帖
  • 帖子:503帖 | 6997回
  • 年度积分:0
  • 历史总积分:66772
  • 注册:2010年6月26日
发表于:2013-02-02 11:25:47
16楼
今晚也回去编一个试试。。。

江湖走走--原创军团

  • [版主]
  • 精华:30帖
  • 求助:7帖
  • 帖子:836帖 | 7833回
  • 年度积分:193
  • 历史总积分:46108
  • 注册:2001年2月15日
发表于:2013-02-02 12:13:40
17楼
      其实这个擂台的命题不算好,原因没有规范一个按钮---来控制灯的动作步骤,这就给大家想象空间太大了。假设下这个按钮---进去先控制所有输出的总电源,然后其输出--利用PLC内部的SM、内部继电器、中断、RS触发器是可以完成多种控制方式的;一个按钮控制了PLC的所有输出的通断,类似总电源的作用,N种可能的方案皆有,但是是不是实用呢?个人认为--编程者,首先要明白你想达到的目标,才能完成编程,完成同样工艺控制要求的程序,其中编程过程可以看出你的程序是否最完美的,或者精简的,没有BUG的;

月半玩

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 50回
  • 年度积分:0
  • 历史总积分:188
  • 注册:2013年1月30日
发表于:2013-02-02 21:02:59
18楼
引用 caojie0723----王者之师 的回复内容:使用施耐德m340编程,%i0.1.0为输入,用输入的下降沿作为计数器的计数输入端,长按2秒为输出的置位端,长按4秒为输出的复位端,当没有输入时,等待5秒则使计数器清零!



月半玩

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 50回
  • 年度积分:0
  • 历史总积分:188
  • 注册:2013年1月30日
发表于:2013-02-02 21:03:33
19楼
一个按钮开关,一个灯泡,不需要中间继电器,就可以控制灯泡的亮灭。有一种按钮叫做“自保持按钮”,按一次接通,再按一次就断开。

zdm2008

  • 精华:3帖
  • 求助:11帖
  • 帖子:108帖 | 1584回
  • 年度积分:1
  • 历史总积分:12293
  • 注册:2011年12月09日
发表于:2013-02-02 21:59:07
20楼

我用浙大中控ECS-100系统,梯形图编的程序,按照楼主意思编辑的。简单了点。


热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页