3、CPU选型实战:处理速度、内存容量、通信接口、扩展能力、冗余需求

好,咱们直接进入正题。CPU选型这事儿,说难不难,说简单也不简单。我见过太多项目,CPU选小了,后期跑不动;选大了,成本又浪费。说白了,就是要在性能和成本之间找个平衡点。

我个人习惯,拿到一个项目需求,先不看品牌,先看这五个维度:处理速度、内存容量、通信接口、扩展能力、冗余需求。一个一个来拆解。

3.1 处理速度:别光看主频

很多新手选CPU,上来就问:「这个CPU主频多少?」嗯,这其实是个误区。PLC的处理速度,核心指标是指令执行时间,单位通常是ms/千步或μs/步。

举个例子,同样主频200MHz的CPU,A品牌执行1K布尔指令要0.3ms,B品牌可能要0.8ms。差在哪?架构不一样。我在项目中遇到过,一个包装线项目,用了某品牌低端CPU,梯形图写满了,结果一个扫描周期跑了50ms,设备动作肉眼可见的卡顿。后来换了同品牌中端CPU,扫描周期直接降到8ms。

选型要点:

  • 布尔指令执行时间:看μs级别,越低越好
  • 浮点运算能力:如果有模拟量、PID控制,这个很关键
  • 任务周期:运动控制建议1ms以内,逻辑控制5-10ms也能接受

我的经验: 别只看样本上的「最大I/O点数」。那个数字是理论值,实际能跑多少,取决于你的程序复杂度。我一般按样本值的60%-70%来估算。

3.2 内存容量:程序内存 vs 数据内存

CPU内存分两块:程序内存数据内存。程序内存存你的梯形图、ST代码;数据内存存变量、中间值、配方。

我曾经犯过一个错。一个汽车焊装项目,选了64KB程序内存的CPU,觉得绰绰有余。结果客户中途加了30个工位的逻辑,程序写到一半,内存爆了。最后只能换CPU,工期延误了两周。从那以后,我选型时程序内存至少留30%余量。

项目类型 推荐程序内存 推荐数据内存
小型逻辑控制(<100点) 32-64 KB 16-32 KB
中型过程控制(100-500点) 128-256 KB 64-128 KB
大型运动控制(>500点) 512 KB以上 256 KB以上

注意: 有些CPU的程序内存是「只读」的,下载后不能在线修改。如果你需要频繁调试,选支持在线修改的型号。我吃过这个亏,现场改个参数还得重新下载整个程序,耽误事。

3.3 通信接口:不是越多越好

通信接口这块,我建议「够用就好」。你想想看,一个CPU上挂5个串口、3个以太网口,看着很牛,但实际用到的可能就两个。

常见的接口类型:

  • 以太网口: 现在主流,支持Profinet、EtherNet/IP、Modbus TCP。至少配1个,建议2个(一个连上位机,一个连现场设备)
  • 串口(RS232/485): 老设备、变频器、仪表常用。如果现场有老旧设备,这个不能省
  • CANopen/DeviceNet: 运动控制、伺服驱动器常用
  • USB口: 方便下载程序、导出数据,但不是必须

我记得有个项目,客户指定要用Modbus RTU连20台仪表。我选了只有1个串口的CPU,结果只能加通信扩展模块,成本反而上去了。所以,提前统计好通信设备数量和协议类型,再决定CPU自带接口够不够。

3.4 扩展能力:本地扩展 vs 远程扩展

扩展能力,说白了就是「这个CPU以后能不能加东西」。我建议选型时考虑未来3-5年的扩展需求。

扩展方式有两种:

  1. 本地扩展: 通过背板总线加I/O模块、通信模块。优点是速度快,缺点是距离有限(一般几米内)
  2. 远程扩展: 通过现场总线(Profinet、EtherCAT等)连接远程站。距离可以到几百米甚至几公里

选型建议:

  • 如果设备集中在一个电柜里,选本地扩展,成本低、响应快
  • 如果设备分散在车间不同位置,选远程扩展,省电缆、好维护
  • 注意CPU支持的扩展模块数量上限,别选到一半发现插槽不够

3.5 冗余需求:不是所有项目都需要

冗余,就是「双保险」。一个CPU坏了,另一个自动顶上。听起来很美好,但成本翻倍,而且配置复杂。

我个人判断标准:

  • 必须冗余: 石化、核电、高铁、医院供氧等不允许停机的场合
  • 建议冗余: 24小时连续生产的产线、数据中心冷却系统
  • 不需要冗余: 普通包装线、小型水处理、楼宇控制

我曾经给一个污水处理厂做过冗余方案。客户说「必须冗余」,结果预算批下来,发现冗余CPU比普通CPU贵了3倍,而且编程复杂很多。最后折中方案:CPU不冗余,但电源模块和通信网络做了冗余。既控制了成本,又提高了可靠性。

避坑指南: 如果你决定做冗余,一定要选原生支持冗余的CPU型号。别用普通CPU自己搭冗余,稳定性没保证。我见过有人用两台普通PLC加心跳程序做「伪冗余」,结果切换时数据丢失,设备直接停机。

3.6 综合选型流程(我的习惯)

好了,五个维度都讲完了。最后分享一个我自己的选型流程:

  1. 第一步: 统计I/O点数(数字量+模拟量),乘以1.2的余量系数
  2. 第二步: 确定通信需求(协议类型、设备数量、距离)
  3. 第三步: 评估程序复杂度(逻辑控制为主?还是运动控制?有没有PID?)
  4. 第四步: 判断是否需要冗余
  5. 第五步: 拿着这些参数,去选CPU型号

嗯,这套流程我用下来,基本没出过大错。你试试看,有问题随时交流。