2. PLC基础知识回顾

各位工程师朋友,在正式进入飞行打标项目之前,我们得先回头把PLC的基础夯一夯。说实话,我看过不少新人一上来就写梯形图,结果连扫描周期是什么都没搞明白,调试时被“时序”问题折腾得够呛。咱们这节课不讲废话,直接上干货。

本章核心:
  • PLC的扫描循环到底是怎么跑的?
  • 西门子、三菱、欧姆龙各有什么看家本领?
  • 项目选型时我一般怎么考虑?
PLC基础知识框架 PLC基础知识回顾框架 PLC基础知识 工作原理(扫描循环) 常用品牌与选型 逐条执行用户程序 (CPU→读输入→逻辑运算→写输出) 三个阶段:输入采样 → 程序执行 → 输出刷新 扫描周期与实时性 西门子(S7-1200/1500) TIA Portal 生态 三菱(FX/L系列) 欧姆龙(CP/CJ/NJ系列) 小提示:理解扫描周期是编程的基础,品牌选型要结合现场通信需求

2.1 PLC的工作原理——别小看那个“循环”

PLC不像咱们电脑的CPU那样乱序执行指令。它是个“死脑筋”,每次干活都按固定套路走。这个套路就叫扫描循环。

我刚开始入行时,总觉得PLC慢是硬件差。后来才发现,扫描周期这个东西,你不理解它,调试时就会撞墙。一次在产线上,有个传感器信号一闪而过,我在梯形图里直接读I点,结果总抓不到。折腾半天,才意识到:输入采样阶段已经过了,信号早没了。改成中断后一切正常。

典型的扫描循环分三个阶段:

  1. 输入采样:PLC一次性把所有输入端状态读到“输入映像寄存器”里。注意,是“一次性快照”。
  2. 程序执行:CPU逐条执行用户程序,按逻辑运算结果更新“输出映像寄存器”。这个阶段输入变化也白搭,因为采样已经结束。
  3. 输出刷新:把输出映像寄存器的值一次性刷到物理输出口上。
避坑指南: 我曾经有个项目,为了省成本用了个低速PLC,扫描周期大约20ms。激光打标要求触发信号抖动小于2ms。结果呢?打标位置总偏移。后来把触发逻辑改成了高速计数中断,才搞定。所以做飞行打标,必须关注PLC的扫描周期和中断响应能力。

详细时间轴如下表:

阶段操作内容时间占比(典型)注意事项
输入采样读取所有I点状态到映像区10%~20%注意信号最小脉宽需大于采样周期
程序执行逐行执行梯形图/ST60%~80%梯形图越复杂,耗时越长
输出刷新映像区→物理输出10%~20%对输出点多的系统影响明显

你想想看,如果某个输入信号刚好在采样结束之后到来,那就得等到下一个扫描周期才能被程序感知。这就是“实时性”的瓶颈。所以在飞行打标这种高速场景,我通常会用以下手段应对:

  • 使用硬件中断或高速计数模块
  • 缩短扫描周期(精简程序、优化循环)
  • 必要时改用专用运动控制器(或CODESYS软PLC)

2.2 常用品牌——我的亲身体会

市面上PLC品牌多如牛毛,但真正工程项目里常见的,其实就那几家。我个人习惯把PLC分成三个梯队:第一梯队是西门子、三菱、欧姆龙;第二梯队是罗克韦尔、施耐德、基恩士;第三梯队是国产汇川、台达、信捷等。

这里重点讲第一梯队,因为咱们飞行打标项目大概率会碰到它们。

2.2.1 西门子(S7-1200 / S7-1500)

西门子在国内自动化市场占有率很高。尤其是S7-1200,性价比不错,内置以太网口,支持多种协议。它的软件平台是TIA Portal,集成度高,但刚开始会觉得“太臃肿”。

我记得第一次用S7-1200做激光打标通信,用的是Modbus TCP。本来以为要调半天,结果TIA里拖个MB_CLIENT指令,配个背景数据块,半小时就通了。不过西门子的梯形图对擅长三菱的人会有点别扭——它没有“步进指令”,要用S7-GRAPH或SCL实现。

型号适用场景最大IO点数编程软件通信接口
S7-1200中小型系统、分布式约300点TIA PortalPROFINET, Modbus TCP
S7-1500中大型高性能数千点TIA PortalPROFINET, EtherCAT(需模块)

2.2.2 三菱(FX系列 / L系列)

三菱在包装、电子组装行业非常常见。FX系列以小型机出名,价格低,指令易懂。三菱的梯形图采用“软元件”体系,比如X代表输入,Y代表输出,M是中间继电器——逻辑清晰,很适合初学者。

但是,有一次我在项目里用FX3U做飞行打标触发,发现它的普通输入只能响应1kHz的脉冲,打标机要求5kHz。我赶紧查手册,改用高速输入(X0~X3)配合HSCS指令,才满足了要求。所以用三菱时,一定要看清“高速输入”的专用端子。

型号适用场景高速计数编程软件通信接口
FX3U/FX5U小型设备、单机最高100kHz~200kHzGX WorksRS-485,CC-Link,以太网
L系列中型系统更高(模块化)GX WorksCC-Link IE,以太网

2.2.3 欧姆龙(CP / CJ / NJ系列)

欧姆龙的PLC在印刷、纺织、食品行业用得多。它的指令系统非常成熟,尤其是“定时器/计数器”的用法和西门子差异较大。欧姆龙的CX-Programmer上手快,但软件比较古老。

我个人比较欣赏欧姆龙CJ系列的处理速度。多年前做一个纸箱打包机的项目,用了CJ2M,扫描周期稳定在1ms以内。后来升级到NJ系列,支持EtherCAT,配合伺服做飞拍简直顺滑。如果你们的飞行打标系统有EtherCAT从站,选NJ会省很多事。

型号适用场景运动控制编程软件通信接口
CP1H/CP1L小型经济简易脉冲CX-ProgrammerRS-232C, USB
CJ2M中型高速支持MC功能CX-Programmer以太网、EtherCAT(需模块)
NJ/NX系列中高端EtherCAT集成Sysmac StudioEtherCAT, 以太网IP
重要提醒: 选型时不要只看CPU性能,一定要确认脉冲输出通道数、高速输入点数以及支持的总线协议。我见过一个项目买了带EtherCAT的CPU,结果激光打标机只支持Modbus TCP,最后加了一堆网关。多花了钱还多了故障点,划不来。

2.3 一个小汇总:哪个更适合飞行打标?

没有“最好”的PLC,只有“最合适”的。针对飞行打标这个场景,我的建议是:

  • 若打标机支持EtherCAT,优先考虑欧姆龙NJ/NX或西门子S7-1500(带选件)
  • 若成本敏感且打标速度不高(<100ppm),三菱FX5U或西门子S7-1200完全够用
  • 如果系统需要同时控制多台激光器或视觉,建议用基于PC的软PLC(如CODESYS平台),扫描周期可压到亚毫秒

最后说一句,实际编程时,不管哪个品牌,“扫描周期一致性”比“扫描周期快”更重要。飞行打标要求触发时刻精确,如果每次扫描周期抖动很大,打标位置就不稳定。所以我在调试时,总会用示波器或PLC的监控功能看扫描周期波动——超过±0.2ms就得查程序了。

我个人的小习惯: 程序里尽量少用“循环跳转”和“过多子程序调用”。这些指令会让扫描周期忽长忽短,影响时序稳定性。能用状态机尽量用状态机,不要贪图省事用跳转。