这是一个经常遇到的问题,在现场逻辑控制中,需要对一些操作动作实施互锁来确保执行动作的可靠性。不要依赖于生产工艺过程的机械动作给予的状态来实施互锁,我们很难预计系统曾经停留在什么状态,残余的动作状态信息很可能给我们造成困惑,或者出现意想不到的状况,甚至应该互锁的动作发生了同时操作。
对于几个互锁执行的操作动作,采用锁存解锁指令对其控制是最有效和可靠的,有经验的工程师都会采取如图4-19所示的编程来确保互锁操作。
此例中有4个互锁的控制,每当满足其中之一的控制条件,便锁存自己的控制,解锁其他控制,不管其他控制当前的状态如何,这样可以确保只有一个控制在执行,这是一种十分可靠的做法,其明了清晰的表达,让读程序的人很容易理解,而不需要特别地去研究被控对象的当前状态和相关影响。
不要小看这个简单的方式,实践证明这是非常有效的。建议遇到动作互锁的操作时采用这个方式。
对于几个为数不多的互锁控制,我们可以采用位锁存解锁的方法来解决,如果有太多的互锁关系,也许采用指针和比较指令配合执行方式更合适,这将在后续的内容中讨论。
还有一点值得特别提及的,就是控制的惟一性。正在运行的同一个例程,或同时运行的几个例程中,千万不要让同一个输出点同时出现在几个不同的梯级,被不同梯级条件所控制,这样会令前面的梯级控制统统无效。我常常看到我的学生面对着一个显而易见的梯级逻辑冥思苦想,因为没有看到他预期的逻辑结果,于是百思不得其解,其实就是后面的梯级正在修改他所期望的逻辑结果,那个曾经使用过又被他遗忘了的输出点的逻辑。如果编程一个输出被两个例程引用,那么这两个例程一定是不能同时运行的,比如说互锁执行的一个自动例程一个手动例程,它们共同控制着外部的一个开关。(www.xing528.com)
图4-19 4个互锁控制
当然这种情形多半出现在调试过程中,养成良好的编程习惯,可以减少错误,避免调试走弯路。其实,系统会提醒你这种不合适的行为,在例程或梯级校验时给出警告,这就是我们通常会忽略的警告信息。如图4-20所示是编程软件Option中的一个设置项,这个设置的含义是,使能在项目校验时探测到位地址的重复使用并发出警告,默认是选择。
图4-20 使能重复位探测
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。