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是怎么工作的?它不是像电脑那样「随时响应」,而是循环扫描。
一个完整的扫描周期包括三个阶段:
- 输入采样阶段:PLC一次性读取所有输入点的状态,存入输入映像区
- 程序执行阶段:CPU逐条执行用户程序,结果存入输出映像区
- 输出刷新阶段:将输出映像区的数据一次性送到输出模块,驱动外部设备
为什么会这样设计?我刚开始学的时候也不理解。后来做项目多了才明白:这种「批量处理」的方式,保证了程序执行的一致性。如果在程序执行过程中输入状态变了,那逻辑就乱套了。
扫描周期的特点:
- 扫描周期是循环往复的,从第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的编程语言和梯形图的实际应用。到时候我会拿一个真实项目中的程序片段来讲解,保证让你看得明明白白。