不知你想要的是不是这个:
转自:http://www.vihome.com.cn/bbs/home.php?mod=space&uid=161364&do=blog&id=6849
互锁开关:前面板上有若干个按钮开关,在任何时刻只允许有一个被按下;当另一按钮被按下时,原先在按下状态的按钮将自动d起。
1. 简单的办法是通过自定义一个Radio Buttons来创建,把里面的Radio Button换成想要的布尔开关就可以了。
2. 下面介绍的是通过编程的方法来创建互锁开关,程序框图如下图所示。
图 1 互锁开关程序框图
图 2 互锁开关前面板
说明:首先创建一组按钮开关数组,然后在While 循环中通过一对移位寄存器将当前数组内容与前一次循环时的数组内容不断比较。如果没有变化,则通过Equal?将选择器上输入端的数据送到选择器输出端,并送到移位寄存器。如果有变化,则Equal?的输出端将把“F”送到选择器,选择器将选取其下输入端的数据到输出。那么下输入端的数据是什么呢?
这里用到异或运算。假如9个开关原来的状态从左到右是“010000000”,即开关2闭合。现在按下开关1,则当前数组内容立即变为“110000000”与前一状态“010000000”逐位做异或运算后,在异或门输出端得到的结果是“100000000”,这个结果送给了选择器下输入端,在选择器输出端送到移位寄存器的同时还通过一个局部变量,使开关数组内容更新为“100000000”,即使开关2d起。
另外在相等判断函数中,直接对整个数组 *** 作,而不是对一个个数组元素 *** 作(右击Equal?选择Comparison Mode>>Compare Aggregates)。
如果需要增加面板上的开关个数,只需要在面板上拖出需要的开关个数即可。
当存在可逆控制的场合,通常都要设置电气互锁。互锁又指互为锁扣。当一方先于另一方动作后,除非先动作的一方停止动作,否则另一方无法动作,故称互锁。互锁的电路实现是在对方的控制回路中串联己方常闭触点,这样,当一方动作时,其常闭触点为开路状态,则对方控制回路便无法得电动作,也可理解为电路控制权限锁存于当前一方,直到当前一方自行停止控制时为止。
由上可知, 按钮互锁就是在对方的控制回路中串入己方常闭触点的控制。显然,按钮必须采用复合按钮,就是有常开点和常闭点的按钮,现在市场上的按钮多数都是复合按钮的。
希望我能帮到你。望您采纳。
A和B不能同时为1key1=>A
key2=>B
if(key1){
A^=0x01
B=0x00
}
if(key2){
B^=0x01
A=0x00
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)