2. PLC基础回顾

在进入故障诊断与维护之前,必须先把西门子PLC的家族谱系、硬件组成、工作原理和扫描周期这四件事重新梳理清楚。很多现场“疑难杂症”并不是模块坏了,而是对扫描机制、过程映像区、模块寻址方式理解不到位造成的误判。本节把这几块基础重新串成一条线,为后续的诊断方法打底。

一、西门子PLC家族:从LOGO!到S7-1500

西门子的控制器产品线跨度很大,按应用规模大致可分为微型、小型、中型、大型和高端几档。理解家族定位,有助于在现场快速判断“这台设备该用什么诊断手段、备件怎么选、编程软件是哪一套”。

系列典型型号适用规模编程软件典型场景
LOGO!LOGO! 0BA8/0BA9微型逻辑控制LOGO!Soft Comfort照明、泵控、简单联锁
S7-200 SMARTCPU SR/ST 系列小型单机STEP 7-Micro/WIN SMART包装机、小型专机
S7-1200CPU 1211C~1217C中小型TIA Portal(博途)产线工位、过程控制
S7-1500CPU 1511~1518中大型TIA Portal(博途)整线、运动控制、冗余
S7-300/400CPU 31x/41x传统中大型STEP 7 V5.x老产线、存量设备

现场维护时,第一步往往是“认机”:看CPU型号、看机架结构、看编程软件版本。S7-300/400属于存量设备,备件逐渐停产,诊断时更依赖STEP 7 V5.x和硬件组态信息;S7-1200/1500则统一在博途平台下,诊断缓冲区、在线状态、系统诊断功能更完善。

二、硬件结构:一台PLC由哪些部分组成

无论哪个系列,PLC的硬件骨架基本一致,可以概括为“电源—CPU—信号模块—通信—背板/总线”五大部分。

  • 电源模块(PS):把AC 220V或DC 24V转换为内部所需的DC 5V/24V,为CPU和模块供电。电源不稳是很多“随机停机”的根源。
  • CPU模块:内含处理器、存储器(装载存储器、工作存储器、保持存储器)、集成I/O和通信接口,是逻辑运算和诊断的核心。
  • 信号模块(SM):数字量输入/输出(DI/DO)、模拟量输入/输出(AI/AO),负责把现场信号转换成PLC内部可处理的数据。
  • 通信模块(CP/CM):如CM 1241(RS-232/485)、CP 1543(以太网)、PROFIBUS/PROFINET接口,用于连接HMI、变频器、远程I/O。
  • 背板总线/机架:S7-300/400通过U型总线连接模块,S7-1200/1500通过背板总线或系统电源总线连接,决定模块的物理地址分配。
诊断提示:模块的物理位置(机架号、槽号)直接决定其I/O地址。例如S7-300中,0号机架4号槽的DI模块地址通常从124.0开始。地址对不上,先查硬件组态,而不是怀疑程序。

三、工作原理:循环扫描与过程映像

PLC不是“实时并行”执行所有逻辑,而是采用循环扫描方式:CPU按固定顺序反复执行用户程序,每一轮称为一个扫描周期。理解这一点,是理解“为什么输入变了输出没立刻变”“为什么按钮按一下没反应”的关键。

扫描周期的典型阶段如下:

  1. 读取输入:把所有物理输入点的状态一次性复制到“过程映像输入区(PII)”。
  2. 执行用户程序:CPU逐条执行梯形图/语句表/功能块,读写的是过程映像区,而不是直接读写物理点。
  3. 写入输出:把“过程映像输出区(PIQ)”的结果一次性送到物理输出模块。
  4. 系统任务:处理通信、诊断、中断、看门狗等,然后进入下一轮扫描。

因此,在一个扫描周期内,即使物理输入发生了变化,程序看到的仍是本轮开始时的映像值;输出也要等到本轮结束才真正刷新。这就是“输入滤波”“扫描周期抖动”等问题的根源。

西门子PLC循环扫描周期与过程映像 现场输入 按钮/传感器/限位 输入模块 DI 信号采集与滤波 过程映像输入 PII I 区(本轮快照) CPU 执行用户程序 梯形图/功能块运算 过程映像输出 PIQ Q 区(本轮结果) 输出模块 DO 驱动执行机构 现场输出 继电器/阀/电机 系统任务:通信 / 诊断 / 中断 / 看门狗 完成后进入下一轮扫描,循环往复 下一扫描周期 扫描周期 T 通常 1~20 ms

四、扫描周期对诊断的实际影响

扫描周期不是固定值,它随程序长度、指令类型、通信负载、中断数量而变化。诊断时必须把“周期时间”当成一个可观测参数来看。

  • 周期过长:可能导致高速脉冲丢失、按钮“按了没反应”、看门狗超时停机。常见原因是程序中有大量循环、浮点运算或通信阻塞。
  • 周期抖动:同一程序在不同负载下周期忽长忽短,会造成时序逻辑不稳定。可通过CPU属性中的“最小循环时间”或“周期监视时间”来约束。
  • 中断优先:硬件中断、时间中断、循环中断可以打断主程序,但中断程序过长同样会拖慢整体响应。
常见误区:把“输入没反应”直接判定为输入模块损坏。实际上,若输入信号持续时间短于一个扫描周期,或输入滤波时间设置过长,程序根本采不到该信号。应先测量信号宽度,再核对输入滤波参数和扫描周期。

五、一个典型诊断场景

某包装线S7-1200 CPU 1214C,操作员反映“急停按下后设备有时不立即停”。排查步骤:

  1. 在线查看CPU属性中的“循环时间”,发现最大扫描周期达到38 ms,远高于正常值。
  2. 检查程序,发现主循环中调用了一个带WHILE循环的数据处理块,且未加限制条件。
  3. 同时发现急停信号接入的是普通DI点,未配置为硬件中断。
  4. 优化:把数据处理改为循环中断OB30中执行,急停信号配置硬件中断OB40,直接触发安全逻辑。
  5. 复测:最大扫描周期降至6 ms,急停响应恢复正常。
诊断关键参数(TIA Portal 在线与诊断):
- 循环时间:最小值 / 最大值 / 当前值
- 周期监视时间:默认 150 ms(可调)
- 最小循环时间:可设置,用于稳定周期
- 中断OB:OB40 硬件中断 / OB30 循环中断
- 诊断缓冲区:记录停机、模块故障、超时事件

这个案例说明:扫描周期、过程映像、中断机制三者是联动的。维护人员如果只盯着“模块灯亮不亮”,很容易漏掉程序结构和周期参数层面的问题。把家族定位、硬件结构、工作原理、扫描周期这四块基础打牢,后续的故障树分析、诊断缓冲区解读、模块替换判断才有可靠的依据。