4、PLC基础:PLC定义与历史、PLC硬件架构、PLC工作原理(扫描周期)

4.1 PLC到底是什么?——我的理解

说实话,我刚入行那会儿,觉得PLC就是个「高级继电器柜」。后来干得久了才发现,这玩意儿远没那么简单。

PLC,全称可编程逻辑控制器。说白了,就是一台专门为工业环境设计的「小电脑」。它不像咱们的PC机那么花哨,但皮实耐用,能在工厂里扛灰尘、扛震动、扛电磁干扰。我见过最夸张的一个案例——有个客户把PLC装在电镀车间旁边,腐蚀性气体那么重,它愣是跑了八年没出过毛病。

它的核心任务就一个:根据输入信号,按照你写好的程序,控制输出设备。比如传感器检测到工件到位了,PLC就告诉气缸:「嘿,该推了!」

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

4.2 聊聊PLC的历史——从继电器到智能控制器

这段历史挺有意思的。我刚开始学PLC时,老师傅就跟我说:「你们现在幸福啊,当年我们调一个继电器逻辑,得拿万用表一根线一根线地查。」

上世纪60年代末,美国通用汽车公司(GM)提出了一个需求:能不能搞一个设备,能灵活地改变生产线控制逻辑?因为那时候汽车型号更新快,每次改型号都得重新布线继电器柜,费时费力还容易出错。

于是,1968年,Modicon公司(现在的施耐德电气旗下)的工程师们开发出了世界上第一台PLC——Modicon 084。我记得第一次在博物馆看到它的照片时,差点笑出声——那家伙比现在的工控机还大,但功能连现在一个入门级PLC的十分之一都不到。

PLC的发展大致经历了这几个阶段:

阶段 时间 特点 我印象最深的事
第一代 1968-1970s 替代继电器,功能单一 只能做开关量逻辑,编程用「梯形图」
第二代 1970s-1980s 加入通信功能 我记得有个项目,两台PLC之间用RS232通信,速度慢得让人抓狂
第三代 1980s-1990s 高性能、小型化 开始出现模拟量处理,PID控制变得容易了
第四代 1990s至今 网络化、智能化 现在PLC都能跑Python了,你敢信?

一个小提示:虽然PLC发展了几十年,但梯形图语言依然是主流。为什么?因为电气工程师们习惯了。你想想看,让一个干了20年的老电工去学C语言,还不如让他继续画梯形图来得实在。

4.3 PLC硬件架构——拆开看看里面有什么

我建议你想象一下,把一台PLC拆开,里面大概长这样:

4.3.1 中央处理单元(CPU)

这是PLC的大脑。它负责执行用户程序、刷新输入输出、处理通信任务。CPU的性能直接决定了PLC的扫描速度和处理能力。

我在项目中遇到过一个问题:客户选了一款低端PLC,结果程序写得太复杂,扫描周期长达100ms,导致一个高速检测工位老是漏检。后来换了高性能CPU,问题立马解决。所以,选型时CPU性能一定要留余量

4.3.2 存储器

PLC的存储器分几种:

  • 系统存储器:存放PLC的操作系统,厂家写好的,咱们动不了
  • 用户存储器:存放咱们写的程序和数据
  • 数据存储器:存放中间变量、定时器、计数器等

嗯,这里要注意:有些老款PLC的存储器是电池保持的,电池没电了程序就丢了。我曾经吃过这个亏——出差回来发现设备趴窝了,一查是电池没电,程序全没了。从那以后,我养成了一个习惯:每次修改完程序,必须备份到电脑上

4.3.3 输入/输出接口(I/O)

这是PLC和外部世界打交道的通道。

  • 数字量输入(DI):接按钮、传感器、限位开关等
  • 数字量输出(DO):接继电器、接触器、指示灯等
  • 模拟量输入(AI):接温度变送器、压力传感器等
  • 模拟量输出(AO):接变频器、调节阀等

避坑指南:我曾经在调试一个项目时,发现数字量输入信号老是抖动。查了半天,原来是传感器和PLC的输入模块不匹配——传感器是PNP输出,而我选的是NPN输入模块。所以,选型时一定要确认传感器的输出类型和PLC输入模块的极性是否一致

4.3.4 电源模块

给PLC供电的。一般有24V DC和220V AC两种。我个人习惯用24V DC,因为安全,而且不容易受电网波动影响。

4.3.5 通信接口

现在的PLC基本都标配以太网口、RS485、RS232等。用于和上位机、触摸屏、其他PLC或者变频器通信。

4.4 PLC工作原理——扫描周期是核心

这是PLC最核心的概念。你想想看,PLC是怎么工作的?它不是像电脑那样「随时响应」,而是循环扫描

一个完整的扫描周期包括三个阶段:

  1. 输入采样阶段:PLC一次性读取所有输入点的状态,存入输入映像区
  2. 程序执行阶段:CPU逐条执行用户程序,结果存入输出映像区
  3. 输出刷新阶段:将输出映像区的数据一次性送到输出模块,驱动外部设备

为什么会这样设计?我刚开始学的时候也不理解。后来做项目多了才明白:这种「批量处理」的方式,保证了程序执行的一致性。如果在程序执行过程中输入状态变了,那逻辑就乱套了。

扫描周期的特点:

  • 扫描周期是循环往复的,从第1步到第3步,然后再回到第1步
  • 扫描周期的长短取决于程序大小和CPU速度,一般在几毫秒到几十毫秒之间
  • 在同一个扫描周期内,输入状态是「冻结」的,不会中途改变

举个简单的例子:假设你写了一个程序,检测一个按钮是否按下,如果按下就点亮一盏灯。

// 梯形图逻辑(简化描述)
// 网络1:如果输入I0.0(按钮)为ON,则输出Q0.0(灯)为ON
I0.0 ----| |----( ) Q0.0

扫描过程是这样的:

  • 第1个扫描周期:读取I0.0的状态(假设为OFF),存入输入映像区
  • 执行程序:检查输入映像区中I0.0的状态,是OFF,所以Q0.0保持OFF
  • 刷新输出:Q0.0输出OFF,灯不亮
  • 第2个扫描周期:再次读取I0.0的状态(假设此时按钮被按下,变为ON)
  • 执行程序:检查I0.0,是ON,所以将Q0.0置为ON
  • 刷新输出:Q0.0输出ON,灯亮

你看,从按钮按下到灯亮,中间有一个扫描周期的延迟。这个延迟通常很小(几毫秒),人感觉不到。但在高速应用中,比如检测一个快速运动的工件,这个延迟就可能造成漏检。

我的经验:如果你需要更快的响应速度,可以考虑使用「立即输入/输出」指令,或者使用中断功能。但要注意,滥用中断会影响程序的稳定性和可读性。我一般只在关键信号(如急停、高速计数)上使用中断。

4.5 总结一下

PLC这东西,说白了就是一个「工业级的循环大脑」。它不聪明,但可靠。它不快,但稳定。我干了这么多年自动化,见过无数设备,PLC始终是工业控制的中流砥柱。

记住三个核心点:

  • 定义:专为工业环境设计的可编程控制器
  • 硬件:CPU + 存储器 + I/O + 电源 + 通信
  • 原理:输入采样 → 程序执行 → 输出刷新,循环往复

下一章,咱们聊聊PLC的编程语言和梯形图的实际应用。到时候我会拿一个真实项目中的程序片段来讲解,保证让你看得明明白白。