第2章 CPU模块详解:PLC的大脑与心脏

各位同学,今天我们来聊聊PLC最核心的部件——CPU模块。说白了,CPU就是PLC的大脑,它负责执行程序、处理数据、协调各个模块工作。我做了十几年工控,见过太多因为CPU选型不当导致的惨案,所以这一章咱们得好好掰扯掰扯。

2.1 CPU到底在干什么?

CPU的作用,我习惯用三个词概括:取指、译码、执行。它从内存里把指令一条条取出来,翻译成机器能懂的语言,然后驱动相应的硬件去干活。

具体来说,CPU干这几件事:

  • 逻辑运算:与、或、非、异或这些基本操作
  • 算术运算:加减乘除、比较大小
  • 数据传送:把数据从输入模块搬到内存,再从内存搬到输出模块
  • 时序控制:管理扫描周期,确保程序按顺序执行
  • 通信管理:和编程软件、HMI、其他PLC交换数据

嗯,这里要注意一点:CPU不直接控制外部设备。它只负责算,算完了把结果告诉输出模块,输出模块再去驱动继电器、电磁阀。这个分工要搞清楚。

2.2 处理速度——别被参数忽悠了

很多厂家宣传CPU速度时,喜欢报一个很漂亮的数字,比如「位指令执行时间0.01μs」。但你想想看,实际项目里哪有那么多位指令给你跑?

我给大家拆解一下:

指令类型 典型执行时间 说明
位指令(LD、AND、OR) 0.01~0.1 μs 最快,但实际占比不高
字指令(MOV、ADD) 0.1~1 μs 中等速度,数据处理常用
浮点运算 1~10 μs 慢,PID运算、数学计算会用到
字符串处理 10~100 μs 最慢,能不用尽量不用

我在项目中遇到过一件事:某设备厂家选了一款号称「0.02μs位指令」的PLC,结果现场跑一个简单的PID控制,扫描周期愣是到了50ms。为什么?因为PID里全是浮点运算和乘法指令,位指令那点速度根本体现不出来。

我的建议:选型时别只看位指令速度,要看混合指令平均执行时间。最好拿你实际项目的典型程序去跑一下,测测扫描周期。厂家给的参数,参考一下就行。

2.3 内存类型——RAM、ROM、Flash各司其职

CPU里的内存,说白了就三种:

  • RAM(随机存取存储器):掉电就丢,用来存运行时的数据。比如定时器当前值、计数器当前值、中间变量。我习惯叫它「工作台」。
  • ROM(只读存储器):掉电不丢,但写不进去。用来存固件、操作系统。一般用户碰不到。
  • Flash(闪存):掉电不丢,也能写。用来存用户程序、参数设置、配方数据。相当于「硬盘」。

这里有个坑,我提醒一下:有些低端PLC的RAM很小,比如只有4KB。你写程序时稍微多用几个数组、字符串,RAM就爆了。程序下载时没问题,一运行就报错。我曾经吃过这个亏,一个简单的数据记录功能,因为RAM不够,折腾了两天才找到原因。

注意:选型时一定要确认用户程序存储区数据存储区的大小。程序区不够,程序下不进去;数据区不够,运行时会死机。一般建议留30%~50%的余量。

2.4 选型注意事项——别光看价格

CPU选型,我总结了四个字:够用就好。但「够用」怎么定义?

2.4.1 冗余需求

如果你做的是关键设备——比如化工反应釜、发电机组、电梯——那冗余是必须的。冗余说白了就是双CPU,一个干活,一个待命。主CPU挂了,备用CPU无缝切换。

冗余分两种:

  • 热备冗余:两个CPU同时运行,数据实时同步。切换时间<50ms,基本感觉不到。
  • 冷备冗余:备用CPU不运行,主CPU挂了才启动。切换时间几秒到几十秒,适合非关键场合。

我个人习惯:只要客户说「不能停」,我就推荐热备。虽然贵一点,但省心。有一次在化工厂,主CPU因为电源模块故障挂了,热备CPU自动顶上,操作员都没发现。要是冷备,反应釜可能就超温了。

2.4.2 运算能力

运算能力不是看CPU主频,而是看指令集处理架构

  • 小型项目:开关量控制为主,选8位或16位CPU就够了。比如传送带、简单包装机。
  • 中型项目:有模拟量、PID、简单通信,选32位CPU。比如恒压供水、暖通空调。
  • 大型项目:有运动控制、视觉系统、复杂通信,选64位或带协处理器的CPU。比如机器人、数控机床。

你想想看,一个简单的启停控制,用32位CPU和8位CPU,效果一样。但如果你要做高速计数、电子凸轮,8位CPU根本跑不动。别为了省钱选个不够用的,后面改起来更贵。

核心总结:
  1. CPU是PLC的大脑,负责执行程序、处理数据。
  2. 处理速度要看混合指令,别被位指令速度忽悠。
  3. 内存分RAM、ROM、Flash,选型时注意程序区和数据区大小。
  4. 冗余看需求,运算能力看项目规模。

好了,这一章就到这里。下一章我们讲I/O模块,那是PLC和外部设备打交道的「手脚」。到时候我会分享一些接线上的坑,保证你们听了不亏。