什么是PLC的循环扫描技术?
核心定义: PLC的循环扫描技术是指PLC在上电后,会以一个固定的、不间断的顺序周期性地执行一系列操作(如读取输入、执行程序、更新输出等),这种周而复始的工作方式称为循环扫描。

可以把这个过程想象成一个永不停歇的“工厂流水线”,每一轮流水线的工作就是一个扫描周期。
一个典型的扫描周期包含哪些阶段?
一个标准的扫描周期主要包含以下三个核心阶段,以及一些可选的辅助阶段。
输入采样阶段
- 目标: 读取外部世界的状态。
- 过程:
- PLC的中央处理器会停止与外部输入设备(如按钮、传感器、限位开关等)的实时通信。
- 它会一次性快速地扫描所有输入端子(或输入模块)的状态,并将其读取到内部的一个特定存储区域,这个区域被称为输入映像寄存器。
- 关键点:
- 批量读取: 不是实时读取,而是在这个特定阶段一次性读完所有输入点。
- “快照”效应: 输入映像寄存器在本次扫描周期内会保持这个“快照”的状态,无论外部输入信号在此期间如何变化,都不会影响本次程序执行。
- 隔离性: 这种方式将PLC的CPU与外部 noisy(嘈杂)的工业环境隔离开来,提高了系统的抗干扰能力和可靠性。
程序执行阶段
- 目标: 根据用户编写的程序逻辑,处理输入数据,并计算出输出结果。
- 过程:
- CPU从上到下、从左到右地逐条扫描用户程序(梯形图、SCL、功能块图等)。
- 在执行过程中,CPU会访问和读取输入映像寄存器的值、输出映像寄存器的值以及内部辅助继电器、定时器、计数器等元件的状态。
- 根据程序逻辑进行逻辑运算、算术运算、数据处理等。
- 将运算结果(某个线圈应该得电还是失电)立即写入到输出映像寄存器中。
- 关键点:
- 使用“映像”: 程序执行时,它不直接读取物理输入点,也不直接控制物理输出点,它只与内存中的“映像寄存器”打交道。
- 顺序执行: 程序的执行顺序会影响结果,如果两个逻辑条件都能使同一个输出为真,那么写在后面的那个逻辑会覆盖前面的结果。
- 实时计算: 在这个阶段,CPU会根据当前输入映像的“快照”,快速计算出所有输出的新状态,并暂存到输出映像寄存器中。
输出刷新阶段
- 目标: 将程序计算出的结果输出到外部执行机构。
- 过程:
- 当CPU执行完所有用户程序后,会进入输出刷新阶段。
- CPU会一次性地将输出映像寄存器中的状态值传送到所有的物理输出端子(或输出模块)。
- 只有在这个时刻,外部负载(如接触器、电磁阀、指示灯、电机等)的状态才会被改变。
- 关键点:
- 批量输出: 与输入采样类似,输出也是在一个特定阶段一次性完成的。
- 最终结果: 输出映像寄存器在程序执行阶段可能被多次修改,但只有最后一次的值会在这个阶段被送到物理世界。
一个完整的扫描周期(含辅助阶段)
除了上述三个核心阶段,一个完整的周期通常还包括:
- 上电处理/内部处理: PLC上电后执行的初始化工作,如检查硬件、复位定时器/计数器、清除数据区等,这个阶段只在启动时执行一次,之后在每个扫描周期开始时可能会有一个短暂的内部自检和通信处理。
- 通信处理: 如果PLC需要与其他设备(如HMI、其他PLC、变频器)通信,它会在这个阶段处理发送和接收的数据。
- 自诊断: PLC会检查自身硬件、软件是否正常,如电池电压、内存、I/O模块状态等,如果发现故障,会立即停止运行并报警。
一个更完整的周期流程是: 内部处理 → 通信处理 → 输入采样 → 程序执行 → 输出刷新 → (循环回内部处理...)

循环扫描技术的核心特点与影响
固有延迟
这是循环扫描技术最重要的特点,也是其与计算机实时控制的主要区别。
- 延迟来源: 从一个输入信号发生变化,到PLC做出反应并驱动一个输出信号,中间需要经过一个完整的扫描周期。
- 延迟时间 = 扫描周期时间
- 最大响应时间: 假设在输入采样阶段的最后一瞬间,一个按钮被按下,那么这个信号要等到下一个扫描周期的输入采样阶段才能被PLC读取,然后经过程序执行和输出刷新,最终驱动输出。最大响应时间 ≈ 2个扫描周期时间。
- 最小响应时间: 如果在输入采样阶段的第一瞬间,一个按钮被按下,那么它在本扫描周期的程序执行阶段就能被处理,并在输出刷新阶段驱动输出。最小响应时间 ≈ 1个扫描周期时间。
PLC的响应不是实时的,而是“准实时”的,其响应时间在1个到2个扫描周期之间,对于绝大多数工业控制任务(如电机启停、阀门控制),这种级别的延迟是完全可以接受的。
确定性
- 由于扫描周期是固定的、可预测的,因此PLC的响应时间也是可预测的,这使得控制系统的行为非常稳定和可靠,便于工程师进行系统设计和故障排查。
- 与操作系统任务不定的通用计算机相比,PLC的这种确定性是其在工业控制领域大放异彩的关键。
集中批处理
- 输入和输出都是批量处理的,而不是逐点处理,这大大简化了CPU的I/O管理负担,使其可以专注于执行复杂的控制逻辑。
如何衡量和优化扫描周期?
扫描周期时间
扫描周期时间是一个非常重要的性能指标,它决定了PLC的响应速度,可以通过以下公式估算:
扫描周期时间 ≈ (程序执行时间 + I/O通信时间 + 内部处理/通信时间)

- 程序执行时间:主要取决于程序的大小和复杂程度,程序越复杂,指令越多,执行时间越长。
- I/O通信时间:取决于I/O模块的数量和通信速率。
- 内部处理/通信时间:取决于PLC自身的处理能力和通信任务量。
如何优化?
- 优化程序:
- 简化逻辑: 使用更高效的指令,避免不必要的复杂网络。
- 模块化编程: 将复杂程序分解为功能块或子程序,需要时再调用,减少主循环的扫描量。
- 合理安排指令顺序: 将不常变化或执行时间长的指令放在后面。
- 选择性能更强的PLC: 更快的CPU和更大的内存可以缩短程序执行时间。
- 减少通信负载: 合理规划HMI、变频器等设备的通信数据量和频率。
| 特性 | 描述 | 优点 | 缺点 |
|---|---|---|---|
| 循环扫描 | 周期性、顺序性地执行输入、程序、输出三步。 | 结构清晰,逻辑简单,易于理解和编程。 | 存在固有延迟,不适合对响应时间要求微秒级的场合(如高速运动控制)。 |
| 输入/输出映像寄存器 | 程序与物理I/O之间的缓冲区。 | 实现了CPU与外部环境的电气隔离,提高了抗干扰能力;将I/O操作集中化,简化了CPU工作。 | 延迟的根源。 |
| 确定性响应 | 响应时间在1-2个扫描周期内,可预测。 | 系统稳定可靠,非常适合工业自动化控制。 | 无法实现真正的实时控制。 |
循环扫描技术是PLC实现其可靠、稳定、可预测控制特性的基石,它通过牺牲微秒级的实时性,换来了在恶劣工业环境下极高的可靠性和确定性,这对于绝大多数工业应用来说是完美的权衡。
