1. PLC概述:定义、发展历史、分类、基本组成、工作原理

各位工程师朋友,咱们今天聊聊PLC。说实话,这玩意儿我摸了快二十年了。从最早的三菱F1系列,到后来用西门子S7-300做大型项目,再到现在自己设计PLC芯片的数字量输入输出滤波电路——嗯,每一步都踩过坑,也攒了不少经验。

这一章是基础,但基础往往最容易被忽视。我见过太多工程师,上来就写梯形图,结果连PLC的扫描周期都没搞明白,现场一跑就出问题。所以,咱们先把根扎稳。

1.1 PLC到底是什么?

PLC,全称Programmable Logic Controller,可编程逻辑控制器。说白了,就是一台专门为工业环境设计的“小电脑”。

它跟咱们办公用的电脑有啥区别?我举个例子。你办公室的电脑,夏天开空调,冬天有暖气,环境干干净净。PLC呢?它可能被扔在40℃的车间里,旁边就是振动不停的冲压机,空气中还飘着油雾和粉尘。这种环境下,普通电脑撑不过三天。

PLC的核心特点就三个:

  • 抗造——工业级设计,温度范围宽,抗振动,抗电磁干扰
  • 实时性——扫描周期通常在毫秒级,不能像Windows那样“卡一下”
  • 可靠性——连续运行几年不重启,这是基本要求

我个人对PLC的定义:PLC是一种专为工业环境设计的数字运算电子系统。它用可编程的存储器来存储指令,执行逻辑运算、顺序控制、定时、计数和算术运算等操作,并通过数字量或模拟量的输入输出来控制各种机械或生产过程。

1.2 发展历史:从继电器到智能控制器

说到PLC的历史,得从上世纪60年代说起。那时候工厂里全是继电器控制柜,你想想看,一个汽车装配线可能有上千个继电器,密密麻麻的。改一次逻辑?好,电工师傅拿着螺丝刀,拆线、重新接线、测试,搞不好要一两天。

1968年,美国通用汽车公司(GM)提出了一个需求:能不能搞一种设备,用软件代替硬件接线?这样改逻辑就不用动线了。

于是,1969年,美国DEC公司(数字设备公司)搞出了第一台PLC——PDP-14。我记得第一次看到这个老古董的照片时,差点笑出来——那玩意儿比现在的服务器还大,但功能连现在一个单片机都不如。

发展历程大致分几个阶段:

年代 特点 代表产品
1969-1975 替代继电器,功能简单,只有逻辑控制 Modicon 084
1976-1985 加入CPU、模拟量处理、通信功能 Allen-Bradley PLC-2
1986-1995 小型化、高速化、网络化 西门子S7-300
1996-至今 集成运动控制、视觉、物联网 西门子S7-1500、倍福CX系列

一个小经验:我在2010年接手过一个老项目,用的还是90年代的Modicon 984。那PLC的电池一掉电,程序全丢。后来我养成了一个习惯——每次备份完程序,一定把电池也换了。别问我怎么知道的,都是泪。

1.3 PLC的分类

PLC的分类方式有好几种,我按咱们工程师最常用的方法来分:

按结构形式分

  • 整体式:CPU、电源、I/O都集成在一个壳子里。比如三菱FX系列。优点是便宜、体积小;缺点是扩展能力有限。
  • 模块式:CPU模块、电源模块、I/O模块、通信模块分开插在机架上。比如西门子S7-300/400。优点是灵活,坏了哪块换哪块。
  • 叠装式:介于两者之间,像积木一样叠起来。比如西门子S7-1200。

按I/O点数分

类型 I/O点数 典型应用
微型 ≤64点 单机自动化、小设备
小型 64-256点 包装机、小型生产线
中型 256-2048点 流水线、过程控制
大型 >2048点 大型工厂、DCS系统

注意:分类不是死的。我见过有人用大型PLC控制一个只有几十个点的设备,纯粹是浪费。选型时,够用就好,留20%的余量足够了。

1.4 基本组成:PLC内部长什么样?

打开一台PLC,里面其实就这几大块:

  • CPU模块:大脑。负责执行程序、处理数据。现在的PLC CPU很多基于ARM Cortex-A系列或者x86架构。
  • 电源模块:把220V AC或24V DC转换成内部需要的5V、3.3V。我设计滤波电路时,电源的纹波噪声是重点关注的。
  • 数字量输入模块:接收开关信号(24V DC或220V AC)。这里就是咱们这门课的核心——输入滤波。
  • 数字量输出模块:驱动继电器、接触器、指示灯。输出也有滤波,但主要是防浪涌。
  • 模拟量输入/输出模块:处理4-20mA、0-10V等模拟信号。
  • 通信模块:RS485、以太网、PROFIBUS、PROFINET等。
  • 存储器:存放用户程序、系统参数、断电保持数据。

下面这张图是我画的PLC内部结构框图,你看一眼就明白了:

PLC 内部结构框图 电源模块 220V AC / 24V DC CPU 模块 ARM / x86 处理器 存储器 数字量输入 24V DC / 220V AC 数字量输出 继电器 / 晶体管 模拟量输入 4-20mA / 0-10V 通信模块 RS485 / 以太网 供电 数据总线 输入映像区 输出映像区 AI 数据 协议栈 传感器 执行器 上位机

1.5 工作原理:扫描周期是核心

PLC的工作方式跟普通电脑不一样。普通电脑是“事件驱动”——你点一下鼠标,它才响应。PLC是“循环扫描”——不管你有没有输入,它都一遍一遍地跑程序。

这个扫描周期,是理解PLC一切行为的基础。我当年刚入行时,就因为没搞懂扫描周期,写了一个自锁电路,结果现场一运行,输出疯狂抖动。后来才明白——输出是在扫描周期结束时统一更新的,不是立即生效。

一个完整的扫描周期分三步:

  1. 输入采样:CPU读取所有输入点的状态,存入输入映像区。注意,是“一次性快照”。
  2. 程序执行:CPU逐条执行用户程序,从第一条到最后一条。运算结果存入输出映像区。
  3. 输出刷新:把输出映像区的数据一次性送到输出锁存器,驱动外部设备。

关键点:在整个程序执行阶段,即使外部输入变了,PLC也不会理会。它只认输入采样时的那张“快照”。这就是为什么PLC的输入信号需要保持至少一个扫描周期以上——否则可能被漏掉。

扫描周期的长短取决于:

  • 程序的大小(指令条数)
  • 指令的类型(浮点运算比逻辑运算慢)
  • 通信任务(通信中断会延长扫描时间)

一般小型PLC的扫描周期在1-10ms。我做过一个项目,程序写了上万步,扫描周期到了20ms,结果一个高速计数信号老是丢脉冲。后来优化了程序结构,把扫描周期压到5ms,问题才解决。

避坑指南:我曾经在一个项目中,用PLC直接读取编码器的脉冲信号来做位置控制。结果发现位置总是不准。查了半天,原因就是PLC的扫描周期是10ms,而编码器在10ms内可能发出几百个脉冲。PLC根本来不及处理。后来加了一个高速计数模块,用硬件来处理脉冲,问题才解决。

所以,记住一句话:PLC的扫描周期决定了它能处理的最快信号频率。对于高速信号,必须用硬件中断或专用模块。

好了,这一章的内容就这些。PLC的定义、历史、分类、组成、工作原理——这些都是后面学习输入输出滤波的基础。特别是扫描周期的概念,后面讲滤波时间常数时还会反复用到。

下一章,咱们直接进入正题——数字量输入信号的特性与干扰分析。到时候我会拿出几个我在现场实测的波形图,咱们一起看看那些“看不见”的干扰到底长什么样。


公众号:蓝海资料掘金营,微信deep3321