本期擂台为征集题:
程序内容是这样的,
①.当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后、用户可通过用户管理后台申请兑换)。
引用 crf498959881 的内容:
你的这个程序有问题。在按X0,X1第一下上升沿的时候Y0,Y1就已经反向了。只不过检测到按第二下时复位了而已。
题目中的①、②要求:
①.当I0.0为自复位按钮输入变量,按一下 I0.0, q0.0输出为1,再按一下 I0.0,q0.0输出0
②.当I0.1为自复位按钮输入变量,按一下 I0.1, q0.1输出为1,再按一下 I0.1,q0.1输出0
这怎么理解呢?我认为只要输入开关被按下了,对应的输出位就应该改变当前状态!而不应该要等上一个远远大于程序扫描周期、且远远大于人类感官反应时间的时值才发生对应的输出位翻转。
题目中的③要求:
③.当双击(1S以内连续按两下按钮算双击)I0.0 或 I0.1任何一个按钮时,Q0.0,Q0.1都为0,当再次单击 I0.0 或者 I0.1 时,Q0.0或者 Q0.1 仍会延续①与②的逻辑。
但我们结合题目中①、②两个前提,如果将“双击”理解成:包含相邻的两次摁动输入开关,即前一次摁动开关不准让对应的输出位发生状态翻转。则与①、②的两个前提相矛盾!
所以,我们应该把“双击”理解成:距前一次“开关操作”之间隔小于设定时值的“当前操作”称“双击”。即输入开关的操作密度高于设定密度时的“当前操作”叫“双击”;反之,低于设定密度时的“当前操作”叫“单击”。
譬如你在电脑上操作鼠标,“单击”屏幕上菜单中的某文件夹图标,其功能为“选中”该文件夹;“双击”该文件夹,其功能为“打开”该文件夹。
当你“点击”该文件夹时,如果你的电脑要等待1000 ms ,以便确认你是否为“单击”或“双击”之后才发生相应的反应,那你不把这反应迟钝的电脑给砸了?!
其实,在你点击前一次时,电脑就立即作出了相应的“选中”该文件夹的反应,紧随着你的后一次点击接踵而至,电脑又立即作出“打开”该文件夹的反应!
我们从这个例子也看出:电脑也是把“双击”理解成“按键操作密度高于设定密度时的‘当前操作’(即当前的这一次操作叫双击,而不包括前一次操作。)”
在本帖中第一个贴出答案程序的网友<九段电工>,他所给出的答案程序也不例外的把这个“双击”理解成“按键操作密度高于设定密度时的‘当前操作’(即当前的这一次操作叫双击)”
我们从他给出的答案程序中也能够看出:间隔小于设定时值的相邻两次的“输入键操作”,也是前一次“键操作”立即使相应的输出位状态发生改变,而后一次“键操作”才是将俩输出位归零!
如果从这种版本的对“双击”的理解出发去看前一次的“键操作”就是一种“单击”的身份。输出位对“单击”身份的“键操作”的反应就理所应当的是:发生“状态的翻转”!
不同的理解,对应不同的正确答案嘛!
我也可以接受34楼的意见“不能共用一个定时器”!请参见我在前面№31楼贴出的<答案程序3>中改用两个定时器(T200和T201)。
共用一个定时器的做法是否为“严重错误”,这也得看是以哪种版本的理解去衡量。如果以№15楼的版本去衡量,共用一个定时器的做法又未尝不可呢?这个版本是把两个点的输入密度合起来看的,是一个“合成密度”的概念。请<九段电工>看看№19楼<wyb2866255>的程序, <wyb2866255> 的答案程序不也是用一个“合成密度”的概念吗,不也是两个输入点(I0.0及I0.1)共用一个定时器T101吗?!
请参见№19楼<wyb2866255>的答案程序之网络2和网络3(I0.0及I0.1共用一个定时器T101):
假如本题目中“双击”的标准是1秒时间内的“两次键输入”,再假如,本题目还规定从“单击”的前沿或“1秒时间内的两次键输入”中的前次操作前沿开始须经过1秒才准许相应的输出位做出“状态翻转”或“复位归零”。而且,“键输入操作”还要在时间安排上,满足一定的分配规则。则,< crf498959881>网友在8楼的答案就很好!虽不是“最简”,但也离“最简”很近。
把 < crf498959881>网友贴于8楼的答案程序在保证其功能效果完全一致的前提下稍微的改动一点点,可以把44步化为42步。
具体的改动如下图所示:(这是 < crf498959881>网友的版权噢)