首页 上一页 1 2 3 4 5 6 7 8 9 下一页 尾页

(已结帖)工控PLC擂台第90期-PLC有关的一道征集题 点击:4456 | 回复:175



玻璃的心

    
  • 精华:30帖
  • 求助:2帖
  • 帖子:962帖 | 5801回
  • 年度积分:0
  • 历史总积分:61250
  • 注册:2010年6月11日
发表于:2012-08-27 17:43:55
楼主

本期擂台为征集题:

程序内容是这样的,
 ①.当I0.0为自复位按钮输入变量,按一下I0.0,q0.0输出为1,再按一下I0.0,q0.0输出0
 ②.当I0.1为自复位按钮输入变量,按一下I0.1,q0.1输出为1,再按一下I0.1,q0.1输出0
 3③.当双击(1S以内连续按两下按钮算双击)I0.0或I0.1任何一个按钮时,Q0.0,Q0.1都为0,当再次单击I0.0或者I0.1时,Q0.0或者Q0.1仍会延续①与②的逻辑。

 

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

 

 

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

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

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




wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2012-10-15 13:17:18
161楼

 

  定时器片断:




  这两个定时器的“线圈”是常通的,当PLC有“输入操作”发生时,“操作”的前沿对相应的定时器清零,展开新一轮的计时。每一个“操作”之前的“间隔”都无一例外的被定时器考察。完全没有漏检的可能!

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2012-10-15 13:32:52
162楼

 

  本答案程序对“单击”是延时(0.3秒)反映到“PLC输出端子”的;对“双击”是即时反映到“PLC输出端子”的。




  “单击”时,其对应定时器待计时已满即传送“单击”运算结果;“双击”时,由于采用“过去时”,因此,“双击”运算结果是在定时器计时未满时立即传送到输出端子的。


飘在半途中

  • 精华:1帖
  • 求助:0帖
  • 帖子:12帖 | 65回
  • 年度积分:2
  • 历史总积分:775
  • 注册:2010年9月09日
发表于:2012-10-19 17:19:56
163楼
                              学习啦!

秦君_1

  • 精华:8帖
  • 求助:22帖
  • 帖子:148帖 | 4867回
  • 年度积分:1651
  • 历史总积分:39896
  • 注册:2005年6月28日
发表于:2012-11-23 13:31:20
164楼
不知道楼主出题时有没有考虑到有这么多不同理解,感谢wanggq 给我们带来了这么多精彩讨论。

caojie0723----王者之师

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

来个施耐德的 %I0.1.0与%I0.1.1分别为输入按钮,%Q0.2.0与%Q0.2.1分别为输出通道

在楼主的条件1.2条中,为单按钮的启停,故采用了复位优先的rs指令,用输入按钮的下降沿作为延时关闭时间继电器的触发端,时间为1s,在其1s中如果检测到第2次的按钮触发上升沿时,故判定为双击,故是输出复位!

xpy19334206

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:161
  • 注册:2010年11月11日
发表于:2012-12-12 11:52:25
166楼

以前在小公司的时候,老板为了省钱,经常会出一些类似楼主出的难题。严重的时候,客户不予验收。

玻璃的心

  • 精华:30帖
  • 求助:2帖
  • 帖子:962帖 | 5801回
  • 年度积分:0
  • 历史总积分:61250
  • 注册:2010年6月11日
发表于:2012-12-18 21:44:45
167楼
热烈欢迎大家参与哈!!!!!!!!!

纵横集团-yochor

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 24回
  • 年度积分:0
  • 历史总积分:416
  • 注册:2012年12月14日
发表于:2012-12-19 09:01:10
168楼

松下  X1与X2分别为输入按钮Y1与Y2分别为输出通道

 

 

 

纵横集团-yochor

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 24回
  • 年度积分:0
  • 历史总积分:416
  • 注册:2012年12月14日
发表于:2012-12-19 09:05:56
169楼

在上位机控制中,用于启动和复位的功能,相当类似

LNGKGK001

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 48回
  • 年度积分:0
  • 历史总积分:125
  • 注册:2012年11月20日
发表于:2012-12-19 18:32:51
170楼

岭南自动化前来支持。主营爱德利变频器.

玻璃的心

  • 精华:30帖
  • 求助:2帖
  • 帖子:962帖 | 5801回
  • 年度积分:0
  • 历史总积分:61250
  • 注册:2010年6月11日
发表于:2013-01-13 09:52:29
171楼

一等奖:

wanggq wanggq 50MP

二等奖:

电工九段 电工九段 10MP

wyb2866255 wyb2866255 10MP

caojie0723 caojie0723----王者之师 10MP

三等奖:

yeyewcheng yeyewcheng 100积分

qvbpgklwg qvbpgklwg 100积分

crf498959881 crf498959881 100积分

tiankongyu 纵横集团-yochor 100积分 i

nvinliang invinliang 100积分

zhengchangchun

  • 精华:0帖
  • 求助:1帖
  • 帖子:2帖 | 388回
  • 年度积分:0
  • 历史总积分:1919
  • 注册:2010年1月20日
发表于:2013-01-13 10:21:39
172楼

看似简单,实则复杂的一个题,题意里面有重复的地方不好理解。

 

1s以内按两次按钮,那这1s内信号是否需要翻转,比如当前输出1,按一下输入,输出自然变0,再按一下应该变1,这时候在1s内的话,优先级应该是第三条的关掉,输出变为0最高吧。

再比如当前输出0,按一下输入,输出自然变1,再按一下应该变0,这时候在1s内的话,优先级应该是第三条的关掉,输出变为0最高吧,但是这1S内输出信号产生了一个抖动过程,时间会在第一次与第二次按键之间,不用消除?

lichunhui723

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 49回
  • 年度积分:0
  • 历史总积分:21
  • 注册:2011年1月20日
发表于:2015-05-31 21:40:21
173楼

这个在单片机里会有用到,可以用状态机的编程方法编写。

这里用施耐德M241PLC,somachine软件,用ST编写程序如下: 

(*变量申明*)

PROGRAM PLC_PRG

VAR

et_iPressStatus:ET_press;(*按键状态*)

iStorePressStatus:INT;(*上次按键状态存储*)

xBtn1:BOOL;(*定义第1个按键*)

xBtn2: BOOL;(*定义第2个按键*)

xLight1:BOOL;(*定义第1个灯*)

xLight2:BOOL;(*定义第2个灯*)

tDoubleClickTime:TIME := T#1S;(*定义两次连续按下时间*)

fbDelay:ton;

fbBtn1Trig:r_trig;

fbBtn2Trig:r_trig;

xTimerTrig:r_trig;

END_VAR


(*主体程序*)

(*按键上升沿捕捉*)

fbBtn1Trig(CLK:= xBtn1, Q=> );

fbBtn2Trig(CLK:= xBtn2, Q=> );


(*淸定时器*)

IF et_iPressStatus <> iStorePressStatus THEN

fbDelay(IN:= FALSE, PT:= tDoubleClickTime, Q=> , ET=> );

END_IF

iStorePressStatus:= et_iPressStatus;


(*动作流程*)

CASE et_iPressStatus OF

ET_Press.xInit:(*初始状态*)

IF fbBtn1Trig.Q THEN

et_iPressStatus := ET_Press.xBtn1Wait;

ELSIF fbBtn2Trig.Q THEN

et_iPressStatus := ET_Press.xBtn2Wait;

END_IF

ET_Press.xBtn1Wait:(*按键1被按下一次状态*)

fbDelay(IN:= TRUE, PT:= tDoubleClickTime, Q=> , ET=> );

IF fbDelay.Q THEN

et_iPressStatus := ET_Press.xBtn1SingleClick;

ELSE

IF fbBtn1Trig.Q THEN

et_iPressStatus := ET_Press.xDoubleClick;

END_IF

END_IF

ET_Press.xBtn2Wait:(*按键2被按下一次状态*)

fbDelay(IN:= TRUE, PT:= tDoubleClickTime, Q=> , ET=> );

IF fbDelay.Q THEN

et_iPressStatus := ET_Press.xBtn2SingleClick;

ELSE

IF fbBtn2Trig.Q THEN

et_iPressStatus := ET_Press.xDoubleClick;

END_IF

END_IF

ET_Press.xBtn1SingleClick:(*按键1单击次状态*)

xLight1:= NOT xLight1;

et_iPressStatus := ET_Press.xInit;

ET_Press.xBtn2SingleClick:(*按键2单击次状态*)

xLight2:= NOT xLight2;

et_iPressStatus := ET_Press.xInit;

ET_Press.xDoubleClick:(*按键双击状态*)

xLight1:= FALSE;

xLight2:= FALSE;

et_iPressStatus := ET_Press.xInit;

END_CASE


gwer789

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 362回
  • 年度积分:845
  • 历史总积分:1014
  • 注册:2011年6月22日
发表于:2015-07-01 20:38:19
174楼

能见到全图就好子,这样可更好的理解

gwer789

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 362回
  • 年度积分:845
  • 历史总积分:1014
  • 注册:2011年6月22日
发表于:2015-07-01 21:12:08
175楼

怎么没有图,不全面,不完整


热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 3 4 5 6 7 8 9 下一页 尾页