您现在所在的是:

PLC论坛

回帖:19个,阅读:7776 [上一页] [1] [2] [下一页]
1731
lingcore
文章数:115
年度积分:50
历史总积分:1731
注册时间:2008/1/23
发站内信
发表于:2010/12/16 4:27:31
#0楼
 
许多教科书上都有抢答器的例子,但不少抢答器是不公平的,也就是说,如果两个人在同一plc扫描周期内按下抢答按钮,抢答程序只接受程序位置上排在前面的抢答者的按钮信号。下面是一个有三个抢答者的抢答器,变量分配如下:

i0.0 -- 主持人按钮
 i0.1,i0.2,i0.3 -- 分别为三个抢答者按钮;
 q0.0,q0.1,q0.2 -- 分别为对应于抢答者的警报器输出;

   下图是两个按钮(i0.1,i0.2)同时按下后的情况,图中得电的接口和线圈呈红色。图中可见,同i0.1对应的输出q0.0也呈红色,表示q0.0=1,然而,第二个输出q0.1却是是黑色,即q0.1=0,原因是前面的q0.0=1阻断了q0.1的通路,请注意图中非q0.0呈黑色。

图

  这就造成了抢答的不公平性。为了解决这个问题,可以考虑先用中间变量保存抢答输出。在进行中间变量计算时,只用到上一次的输出,等到所有计算完成,再把所有中间变量输出。下图是新的梯形图以及在两个按钮同时按下后的情形:

图


图中可见,当两个按钮i0.0和i0.1同时按下时,两个输出q0.0和q0.1同时为红色。不过,这个程序依旧有问题,在下一周期时,所有的输出又都变成了黑色:


   
图

   出现这种情况的原因是,每个输出分别阻止了下一个输出继续保持为1。为了解决这个问题,下面我们再把程序做一个改动:

图

它完全达到了公平抢答器的要求。



----------------------------------------------
此篇文章从博客转发
原文地址: Http://blog.gkong.com/more.asp?id=130938&Name=lingcore
37891
cvlsam 版主
文章数:12470
年度积分:502
历史总积分:37891
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2010/12/16 9:14:37
#1楼
楼主,您的程序无法达到抢答器的要求,因为抢答器要求在同一时间内只能有一个输出,您的程序在同一时间内如果同时按下,那么会存在多个输出~~~~~您的程序连抢答器的要求都无法实现。

Good Luck~表情
1731
lingcore
文章数:115
年度积分:50
历史总积分:1731
注册时间:2008/1/23
发站内信
发表于:2010/12/17 1:40:06
#2楼
这里有一个抢答器控制要求的描述问题。在提出要求的时候,应该讲明如果两个按钮同时按下,那么应该怎样处理。

如果一定要求只输出一个信号,可以考虑随机选择,这样也会达到比较公平的效果。

我认为当两个信号同时到达的时候,同时产生两个输出是比较好的解决方案。抢答器程序实际上可以有多种应用,比如记录谁是跑步比赛第一名,那些故障首先出现等等。在这些情况下,如果有多个事件同时出现,把它们一起报告,似乎是更好的解决方法。



以下是引用cvlsam在2010/12/16 9:14:37的发言:
楼主,您的程序无法达到抢答器的要求,因为抢答器要求在同一时间内只能有一个输出,您的程序在同一时间内如果同时按下,那么会存在多个输出~~~~~您的程序连抢答器的要求都无法实现。

Good Luck~表情

39078
知道一点
文章数:23056
年度积分:770
历史总积分:39078
注册时间:2004/6/12
发站内信
工控人谈电商
2013国庆活动
2011国庆活动
发表于:2010/12/18 9:15:44
#3楼
哈哈 楼主辛苦
个人观点:用plc就不可能有绝对的“公平”
所谓的第一也只能在“公差”范围内的第一,即便“并列第一”如果将分辨率提高到一定程度也是可以分出1-2(理论)
快乐 幸福 自由 比什么都重要
14000
lvjun7258
文章数:1634
年度积分:50
历史总积分:14000
注册时间:2009/12/4
发站内信
发表于:2010/12/19 15:42:59
#4楼
纯理论,实际抢答中没有多大意义...................
主持人与选手之间的位置、距离......==各种因素的影响造成的时间误差都大于扫描周期的..........
实际中的公平是相对的....................


[此贴子已经被作者于2010/12/19 15:44:07编辑过]
com
3128
公元-秦军
文章数:37
年度积分:50
历史总积分:3128
注册时间:2005/7/28
发站内信
发表于:2011/2/28 9:40:34
#5楼
此楼内容不符合板块规定,不予显示! 查看原帖内容>>
911
lizhiguo2010
文章数:11
年度积分:50
历史总积分:911
注册时间:2011/3/6
发站内信
发表于:2011/3/6 15:40:12
#6楼
我试试
1082
zaxife
文章数:55
年度积分:50
历史总积分:1082
注册时间:2007/1/9
发站内信
发表于:2011/3/12 1:58:21
#7楼
看看咱的这个算不算公平呢?
只要主持人没按下抢答允许,谁先乱按的都被亮灯弃权;
只要在一个程序内多个同时按下的都有效,过了一个程序周期的将失去抢答的权限。
在一定的时间内无人抢答,时间过后抢答无效。
程序如图:

附件
[此贴子已经被作者于2011/3/12 2:04:02编辑过]
1082
zaxife
文章数:55
年度积分:50
历史总积分:1082
注册时间:2007/1/9
发站内信
发表于:2011/3/12 2:02:25
#8楼
上传不了图片?!表情
贴程序吧..


ORGANIZATION_BLOCK 主程序:OB1
TITLE=程序注释
// 七路抢达器
// I0.0~I0.7 八路抢答输入
// I1.0 开始抢答允许
// I1.1 复位所有输出
//
// Q0.0~Q0.7 八路抢答正常输出
// Q1.0~Q1.7 七路抢答超抢警告
// Q2.0 开始抢答允许输出
// Q2.1 抢答超时输出
//
BEGIN
Network 1 // 网络标题
// 网络注释
LD     SM0.0
A      I1.0
EU
TOF    T38, 1000
S      Q1.0, 1
Network 2
LDB>   IB0, 0
O      M0.0
LPS
A      T38
LPS
EU
MOVB   IB0, QB0
LRD
S      M0.0, 1
LPP
ED
S      Q2.1, 1
LPP
AN     T38
LPS
A      I0.0
EU
S      Q1.0, 1
LRD
A      I0.1
EU
S      Q1.1, 1
LRD
A      I0.2
EU
S      Q1.2, 1
LRD
A      I0.3
EU
S      Q1.3, 1
LRD
A      I0.4
EU
S      Q1.4, 1
LRD
A      I0.5
EU
S      Q1.5, 1
LRD
A      I0.6
EU
S      Q1.6, 1
LPP
A      I0.7
EU
S      Q1.7, 1
Network 3 // 网络标题
// 网络注释
LD     SM0.0
LD     I1.1
O      Q2.1
ALD
R      Q0.0, 8
R      Q1.0, 8
R      Q2.0, 8
R      M0.0, 1
R      T38, 1
END_ORGANIZATION_BLOCK
SUBROUTINE_BLOCK SBR_0:SBR0
TITLE=子程序注释
BEGIN
Network 1 // 网络标题
// 网络注释
END_SUBROUTINE_BLOCK
INTERRUPT_BLOCK INT_0:INT0
TITLE=中断程序注释
BEGIN
Network 1
END_INTERRUPT_BLOCK

1189
tongshanxian
文章数:62
年度积分:50
历史总积分:1189
注册时间:2006/3/30
发站内信
发表于:2011/6/18 16:02:58
#9楼
很赞同2楼的说法。
另外还有个问题:抢答按钮是自锁式的还是自复位式的?如果是自复位式的,那么最后的程序中就有考虑自锁的问题,不能只在按下抢答按钮的同时有输出,手一松就没输出了。
               爱人者,人恒爱之;  敬人者,人恒敬之!

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

109.2007