21-6. PLC的基本逻辑指令(立即指令)

39 阅读4分钟

PLC的立即指令

一、 立即指令的核心原理

PLC 的正常工作方式是循环扫描:

  1. 输入采样阶段:读取所有物理输入点(I)的状态,存入输入映像寄存器。
  2. 程序执行阶段:根据输入映像寄存器的值,执行用户程序,运算结果存入输出映像寄存器。
  3. 输出刷新阶段:将输出映像寄存器的值,一次性写入物理输出点(Q)。

立即指令的“破坏性”创新在于:

  • 立即输入指令:在执行程序时,不读取输入映像寄存器中的旧值,而是直接读取物理输入点的即时状态。
  • 立即输出指令:在执行程序时,不等到扫描周期结束,而是立即将运算结果同时写入输出映像寄存器和物理输出点。

二、 立即指令的分类与说明

我们可以将其分为三类:

1. 立即触点指令

用于直接读取物理输入点的即时状态。

  • LDI (立即取):装载一个物理输入点的常开状态。
  • LDNI (立即取反):装载一个物理输入点的常闭状态。
  • AI (立即与):与一个物理输入点的常开状态串联。
  • ANI (立即与反):与一个物理输入点的常闭状态串联。
  • OI (立即或):或一个物理输入点的常开状态并联。
  • ONI (立即或反):或一个物理输入点的常闭状态并联。
  • 关键限制:操作数 bit只能是 I(物理输入点)。

2. 立即输出指令

用于立即驱动物理输出点。

  • =I (立即输出):将逻辑结果立即写入指定的物理输出点及其映像寄存器。
  • 关键限制:操作数 bit只能是 Q(物理输出点)。

3. 立即置位/复位指令

用于一次性立即置位/复位连续多个物理输出点。

  • SI (立即置位):从指定Q点开始,连续N个点立即置1。
  • RI (立即复位):从指定Q点开始,连续N个点立即清0。
  • 关键限制:bit只能是 Q;N的范围为 1~128。

三、 应用实例

image.png

image.png

(图片摘自《现代电气控制及PLC应用技术》(王永华))

程序逻辑很简单:所有支路的条件都是 I0.0。但使用了不同类型的指令,导致输出响应完全不同。

工作过程分析(假设在 t0时刻 I0.0从0变为1):

网络输出点使用指令类型响应时刻与行为分析
1Q0.0普通输出 =在本扫描周期的输出刷新阶段才变为1。从I0.0变化到Q0.0动作,延迟了整个程序执行时间+输出刷新等待时间。
2Q0.1立即输出 =I在程序执行到本网络时立即变为1。它不等待扫描周期结束。这是最快的输出响应。
3Q0.2立即置位 SI同=I,在程序执行到本网络时立即置1。
4Q0.3立即触点 LDI+ 普通输出 =条件判断最快(使用了I0.0的立即触点),因此其输出映像寄存器在程序执行到此时立即更新。但物理输出点仍需等到本扫描周期的输出刷新阶段才变为1。其速度介于普通输出和立即输出之间。

精炼总结:

  • Q0.0(普通输出):映像寄存器在程序执行时改变,物理触点在输出刷新时改变。
  • Q0.1/Q0.2(立即输出):映像寄存器和物理触点在程序执行时同时立即改变。
  • Q0.3(立即触点输入):映像寄存器在程序执行时立即改变,物理触点在输出刷新时改变。

四、 核心要点与使用场景

  1. 本质区别:立即指令操作的是 物理I/O点,普通指令操作的是 I/O映像寄存器。
  2. 使用限制:立即输入指令只能用于 I,立即输出指令只能用于 Q。
  3. 主要应用场景: 对响应速度要求极高的场合:如高速计数、脉冲捕捉、急停处理等,必须使用立即输出指令来避免一个扫描周期的延迟。 需要读取输入信号瞬时状态的场合:如检测一个比扫描周期还短的脉冲,必须使用立即输入指令,否则在输入采样阶段可能会丢失这个信号。
  4. 谨慎使用:立即指令打断了PLC有序的扫描机制,过度或不当使用会使程序时序复杂化,不利于调试和维护。通常只在关键的高速逻辑中局部使用。

总结:立即指令是PLC为了满足实时性要求而提供的“快捷通道”。它牺牲了部分扫描周期的规整性,换取了对物理世界输入/输出事件的超快速响应。