(已结帖)工控PLC擂台第90期-PLC有关的一道征集题 点击:4622 | 回复: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-09-30 15:23:31
121楼

 

如果没有这种以操作人主观意识操控下的先行将“单击操作”与“双击操作”区分开来的前提,<wyb2866255>在№19楼的答案程序以及他的《技巧编程》一帖中(之例三)的2个范例程序全都是根本不能保证PLC对任何一串“点击”身份都能作出“正确判断”来的!


wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2012-09-30 16:01:18
122楼


  <wyb2866255>的《技巧编程》一帖中(之例三)的第2种编程构思的范例程序


  截屏图片如下:






  这个被<wyb2866255>充作范例给网友们讲解“技巧编程”的答案程序也仍然会在“试金石”面前显露出破绽!

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2012-09-30 16:10:51
123楼

 

  因为<wyb2866255>领悟不到擂主题目要求PLC能自主的依据程序“设定间隔时值  为标准对“输入点  (单击或双击)之身份进行正确的判断,这一层实质意涵,所以<wyb2866255>是不可能遵从这一层实质意涵去展开“编程构思”的!

 

wanggq

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

 

  “试金石”片断仅以区区3个脉冲(即:模拟的 3 次输入的“点击操作”)即可检出<wyb2866255>于19楼的答案程序以及<wyb2866255>于《用实例讲解编程构思与技巧编程》之<例三>的2个范例程序所共有的同一破绽!

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2012-10-01 09:54:46
125楼

 

  该“试金石”片断是一个非常简单的 “ 3 脉冲” 发生器。在硬件的外连线上将它的输出接到被测PLC对应的输入端口,用它产生的3个输出脉冲模拟人工输入“点击”操作。


  (按照<wyb2866255>答案程序中运用的“理解乙”的概念)定义:在短于“设定时值”的时间内发生的相邻两个“点击”算“双击”。


  这个定义是符合擂主题目的要求③之实质意涵的。对于这一点,各位网友和评委应当没有什么异议吧!


  下面这幅图片之图A中,“点击甲”距离“点击乙”的间隔短于“设定时值”,所以,以“理解乙”模式的“双击”概念来看:“点击甲”与“点击乙”构成了一对“双击”。自然的,“点击甲”的身份是“双击”无疑了!


  接下来又看图B:“点击乙”的前面有一个“点击丙”,且相距一个不足“设定时值”的距离。同理,“点击乙”与“点击丙”也构成了一对“双击”!


wanggq

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

 

  图C所示的“点击操作情形”是图A、图B两种情况重合起来的情形。不论是分别还是重合,甲、乙、丙这3个“点击操作”其身份在“理解乙”模式下,它们都无一例外的算“双击”身份!

 


  按照擂主题目要求③:双击必须使指定的两输出元件的状态都为“OFF”!


  <wyb2866255>于19楼的答案程序以及<wyb2866255>于《用实例讲解编程构思与技巧编程》之<例三>的2个范例程序在图C所示的操作情形下,3个程序都会把“点击甲”的操作,错判成“单击”!而对相应输出位的状态错误的施行了翻转!



               

wanggq

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

 

   这也证明:即便对№19楼的答案程序之“网络5”、“网络6”添加了“条件比较”指令,仍然也没有根除该答案程序对"点击甲"的判断错误!


wanggq

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

 

  这类答案程序产生判断错误的原因是:人为的将输入操作分成一份一份的,从而,“份”与“份”之间就产生了漏检的“间隔距离”!正是由于存在这个漏检的“间隔距离”,因此而让本属于“双击”身份的“点击甲”被错判成“单击”了!


  下面是以<wyb2866255>于19楼的答案程序以及该程序的网络5、网络6添加了“条件比较”指令之后(如<wyb2866255>于《用实例讲解编程构思与技巧编程》之<例三>的第一种编程构思)的范例程序为例,用“试金石”片断对其检验的情况(以时序分析图表达):


wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2012-10-06 20:29:27
129楼


  引用<Wanggq>在№98和№99楼的内容(以图片形式引用):




  现在我再加上分析图片,以<wyb2866255>答案程序中运用的对“双击”之“理解乙”的概念,在1秒之内的两次“点击”叫“双击”。1#与2#发生在1秒之内算是“双击”;而2#与

3#也同样是发生在1秒之内的,所以,3#的身份无疑也是“双击”;4#虽然离3#远得多,但是它与5#的距离却是不足1秒的,即4#、5#属发生在1秒之内的两次点击(以两个点击前沿之间的距离与设定时值标尺进行比较),所以,4#的身份无疑也是“双击”;至于5#、6#的身份,那就更甭说了,因为它们是非常明显的“双击”嘛:



  既然按照对题目的“理解乙”的概念,该时序图中的6个“点击”的身份无一例外的都是“双击”,那么,这6个点击过后,“动作正确符合题目要求”的答案程序就应该强制PLC对应的两个输出元件的状态都为“OFF” ! 但是,<wyb2866255>的3个程序都一致的在3#、6#点击过后1秒将对应的一个输出元件状态错误的翻转为“ON”。这就充分说明他的3个程序的自主判断“输入点击”之身份的能力是低能的!他只能寄希望于操作人以主观意识操控下,将3#点击离2#点击远远儿的、6#点击离5#点击远远儿的,以确保他那低能的程序不至于错判3#点击及6#点击的身份!


wanggq

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

 

  <wyb2866255>于№100楼的内容是针对№98、№99两个回帖所做出的反应:




  №100楼的这句“别把问题分析的太复杂了”是不是把事实给弄颠倒了?!这一期擂台题目本来就是一个很简单的题目,是<wyb2866255>自己把它弄复杂了!他对“输入点击”的判断所采用的方法又是计时,又是计数的。而且,计数又别出心裁的采用“INC”、“DEC”指令又是加计数又是减计数的。这样就必须附加“初始化”的“MOV”指令给MB3赋值,还必然少不得附加“条件限制”的“比较指令”。这样做,难道不比那些直接采用“计数器”指令的方案还要复杂多了吗?


wanggq

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

 

  其实,对于本期擂台题目中要求的PLC自主判断“输入点击”之(单击或双击)身份,仅只需用计时就足以了!还用得着计数吗!


wanggq

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

 

  №100楼的这句“如要单击,只能按一下,否则就不叫单击。”实质就是<wyb2866255>对他自己在№19楼所下的结论“该程序经上机运行,符合题目要求”的否定!


  设:某操作工(在没有秒表参照的条件下凭对1秒之时间概念的感觉)的实际操作情况如下时序图所示:



  很明显:4#、5#的两个“点击”构成了一对“双击”,即:从4#前沿算起的1秒时间内,5#点击并不是该1秒内的唯一1次点击。按照<wyb2866255>的这句“如要单击,只能按一下,否则就不叫单击。”来判断:5#点击就不叫单击!


  既然该时序图中5#点击不叫单击,那为什么<wyb2866255>的答案程序在上机运行中,对该时序图中5#点击所做出的反应会是让对应输出位之状态翻转为“ON”呢?!这不是与№19楼的结论自相矛盾吗?!


纵横军团-小吴#

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 184回
  • 年度积分:0
  • 历史总积分:386
  • 注册:2012年8月03日
发表于:2012-10-08 15:00:14
133楼

什么情况                  

wanggq

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

 

  №100楼的这句“有必要去分析什么‘在哪一段满足<不足1S>这一条件’的时间里发生的两个点击才算‘双击’,而另外的也同样满足<不足1S>这一条件的时间里发生的两个点击却不可算作‘双击。。。’吗?<wyb2866255>在表达“没有必要去注意哪些‘双击’在他的程序里可以算是双击,而哪些‘双击’在他的同一个程序里却不能算是双击”这层意思吧?!


  我们并不要求每个人的理解模式都要统一成一个标准,但是,按照正确的逻辑思维规矩,在衡量具体的同一个答案程序对“输入点击”之(单击或双击)身份的自主判断能力时,我们所依据的(单/双击)判断标准应当是同一个标准!包括该答案程序中所运用的(单/双击)概念。


  我们很容易看得出:№19楼答案程序中所运用的“双击”概念是:“1S以内的相邻两个点击”。


  我们根据擂主题目③和№19楼答案程序中所运用的“双击”概念,得到这样一个衡量№19楼答案程序对“输入点击”之(单击或双击)身份的判断标准:<凡是满足(符合)“不足1S”这一条件的时间内发生的相邻两次点击,都不叫单击,而叫。>根据这一判断标准,№132楼所示的操作时序图中5#点击就不是“单击”!它就不应当将与它相应的输出位翻转成“ON”状态!


  <wyb2866255>之所以表达“没有必要去注意哪些‘双击’在他的程序里可以算是双击,而哪些‘双击’在他同一个程序里却不能算是双击”这一层意思,就是为了让我们忽略有些操作情形下的“双击”(如<№132>楼上所示的操作时序图中的4#与5#的关系)。从而让某些网友看不清№19楼答案程序所存在的逻辑错误!


wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2012-10-08 19:59:03
135楼

 

  你希望“别把问题分析的太复杂了”,你就别把答案程序写得太复杂了!如果你把答案程序写得很简洁,那么,别人对你的程序分析起来就没那么“复杂”。


  若要比程序简洁,那就要数№16楼的答案程序1和№17楼的答案程序2最简洁!


  答案程序1的梯形图(以FX1为实验平台,T63为1ms分辨率的定时器):




  该答案程序对“双击”的理解属<理解甲>的模式:输入开关的操作密度高于设定密度时的“当前操作”叫“双击”;反之,低于设定密度时的“当前操作”叫“单击”。


  该答案程序的“设定密度”为0.3秒,即:距前一次点击前沿的时值小于0.3秒的当前点击叫双击,大于0.3秒的当前点击叫单击


  该答案程序中运用的“操作密度”的概念是两个输入开关操作的“合成密度”的概念。(请大家注意:<wyb2866255>在№19楼的答案程序中也同样是运用的这个“合成密度”的概念)


wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2012-10-08 20:02:28
136楼

 

  答案程序2的梯形图(实验平台为FX1s):



  答案程序2所运用的也是“合成密度”概念,对“单击/双击”的理解也是“理解甲”的模式。设定密度的标准也是0.3秒。

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2012-10-08 20:58:25
137楼

 

  需要给大家说明的一点:“理解甲”模式对“输入点击”身份的判定,是逐个进行的。且采用的是“过去时”对每一个点击之先前的间隔进行考察的。所以,PLC的输出反应是实时的。


  对“双击”的判定是即时的,对“单击”的判定也是即时的!

 

wanggq

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

 

  理解甲”模式跟微软公司的Windows”软件对“单击/双击”的概念是相吻合的。请大家参阅№45楼至№47楼的内容。


wanggq

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

 

  其实,我也能够理解在本期擂台题目里大家对“单击”和“双击”所理解形成的概念如下时序图所示(我把这种理解模式叫做“理解乙”)



  即:1S以内相继发生的两次键输入操作叫“双击”,若1S以内只发生过一次键操作输入,则该次键操作输入就叫“单击”。


  但是,我认为:如果某“单击”发生之后,PLC需经过1秒的时间才能对其判定出“单击”身份,那就太过于迟钝很了!不符合通常人们对PLC控制所寄寓的“实时性”希望!


wanggq

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

 

  所以,我才决定采用与微软公司的Windows”操作软件对“单击”和“双击”的概念相吻合的“理解甲”,即:我们应该把双击”理解成:距前一次“开关操作”之间隔小于设定时值的“当前操作”称“双击”(不包括之前相邻的一次操作)。


  也可以这样表达:


  输入开关的操作密度高于设定密度时的“当前操作”叫“双击”;反之,低于设定密度时的“当前操作”叫“单击”。


  下面用图形来表达“理解甲”模式下“单击”和“双击”的概念:





热门招聘
相关主题

官方公众号

智造工程师