首页 理论教育 PAC编程基础教程:恒假指令AFI

PAC编程基础教程:恒假指令AFI

时间:2023-10-26 理论教育 版权反馈
【摘要】:现场的例程调试还有一条十分有用的指令就是恒假指令AFI,这条指令一般出现在某个梯级输入的前端,用来否定本条梯级,令该梯级不执行,如图11-17所示。图11-18 永远也不能成立的梯级条件以上的测试很容易让人觉得恒假指令AFI对所有的输出指令都是令其不执行,以至认为令梯级输出指令不起作用,相当于梯级不存在。

PAC编程基础教程:恒假指令AFI

现场的例程调试还有一条十分有用的指令就是恒假指令AFI,这条指令一般出现在某个梯级输入的前端,用来否定本条梯级,令该梯级不执行,如图11-17所示。调试的时候,如对某个梯级的执行存在某些疑问需要观察,不妨采用恒假指令,停止该梯级输出指令的执行。

978-7-111-36030-8-Chapter11-19.jpg

图11-17 AFI指令位于某个梯级输入的前端

在没有AFI指令之前,工程师们想到了一个巧妙的办法,对串联在一起的常闭输入位指令和常开位输入指令使用相同的位地址,这无疑来自于电路的启发,这样的回路是永远不能通的,如图11-18所示的梯级逻辑。这就是后来演变成恒假指令的做法,恒假指令实际上是令梯级条件永远不成立的结果。

这么说来,在梯级的某个输入位指令后面紧跟上一个相反的输入位指令就可以达到AFI指令相同的效果,但是这样容易遗忘和混淆,难以在繁多的梯级中一眼看出。恒假指令却是直接的表达,所以AFI指令除了否定梯级条件之外,还有标志的意义,在需要梯级条件永远不成立的测试中,建议你使用恒假指令AFI而不要使用技巧性的处理。

978-7-111-36030-8-Chapter11-20.jpg

图11-18 永远也不能成立的梯级条件

以上的测试很容易让人觉得恒假指令AFI对所有的输出指令都是令其不执行,以至认为令梯级输出指令不起作用,相当于梯级不存在。其实不然,恒假指令AFI对非保持型指令是起作用的,其作用则是复位,你应该没有忘记,非保持型的指令在梯级条件不成立时是复位的,如图11-19和图11-20所示,这是两个典型的非保持型输出指令,如果在它们的梯级前面加上AFI指令,则令指令永远在复位状态。这样说起来是很明白的,但总有人会出现错误,特别是对待这两条指令时。(www.xing528.com)

978-7-111-36030-8-Chapter11-21.jpg

图11-20 非保持型输出指令被复位(二)

曾经有人想对一个输入逻辑关系复杂的梯级的输出点OTE指令做测试,用AFI将其梯级条件封住,然后在这个梯级的前面另外编写了一条简单逻辑关系的梯级控制这个输出点的OTE指令,结果可想而知,输出永远为0。如果他没有意识到是AFI指令的恒假作用的话,将让他得到错误的结论,或者使他对没有得到一个显而易见的逻辑结果而大惑不解。本来在一个例程中同时对一个输出点控制就是应该避讳的事情,加上以为AFI指令不会作用于OTE指令就更是错上加错了。

对于计时器TON指令的类似测试也是如此,如果你想将一个计时器复杂的逻辑输入条件用AFI指令封住,然后在另一个梯级用一个简单的逻辑去测试,你会发现这个计时器的累加值永远为0,根本不会进行时间积累,甚至不论测试梯级逻辑在这个梯级前面或后面,这是因为AFI指令所在梯级不断地为这个计时器结构数据标签复位。

再强调一次,梯级恒假并非不作用,AFI指令是令梯级条件不成立,并非是令输出指令不执行,尽管大多数情况下的确是令指令不执行,一旦涉及非保持型指令,就会产生复位的效果。你不要试图用AFI指令恒假一个梯级,同时在另一个梯级测试同一个地址的非保持型指令,得到的结果一定不是你想要的。

千万要记住,任何涉及复位操作的地方,非保持型指令OTE和TON总是会有特殊的表现,这在预扫描、后扫描、MCR指令等应用场合都反复提及。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈