1. 一个多工位电池产线项目,为什么值得专门聊PLC选型与控制
前阵子接了个电池生产线的控制项目,设备结构不复杂,但工位多、节拍要求紧、工艺参数还经常要根据不同电芯型号切换。甲方一开始给的方案就是"用PLC把各工位串起来",等真到出电气图纸的时候,才发现问题全集中在控制层:怎么选型才能既有性价比又不牺牲扩展性?多工位之间的协同到底用 EtherCAT 还是 CC-Link?主站和远程站的数据刷新率能不能跟上产线节拍?这些问题不解决,设备装好了也是一堆联动故障等着擦屁股。
最后定下来的方案是三菱 FX5U 加 Q 系列混合使用。FX5U 负责具体工位的顺序控制和本地逻辑,Q 系列作为整线的中央控制大脑,承担数据汇总、配方管理、联锁逻辑和与 MES 的对接。这套组合在中小规模电池产线里非常常见,很多同行可能也正在纠结类似选型。这篇就按我实际做下来的流程,把 FX5U/Q 系列在多工位电池生产线里的分工逻辑、硬件配置、程序结构、关键功能实现和现场调试经验完整过一遍。
需要说明的是,我下面提到的软硬件配置和程序思路,是基于我自己的项目实践总结出来的通用做法。每个产线的工艺细节和客户要求不同,直接照搬未必合适,但选型思路和程序框架可以复用。
2. FX5U和Q系列,在多工位电池产线里到底怎么分工
2.1 为什么不是单一系列走全场
很多刚接触这类项目的工程师会问一个问题:既然 FX5U 本身就能通过 EtherNet/IP 或者 CC-Link IE Field 组网,也能带远程 IO,为什么还要再加一台 Q 系列?直接全部用 FX5U 不更简单?
理论上确实可以,但电池产线有个特殊性:工位多、数据量大、节拍节奏由中央逻辑统一调度。FX5U 的单机处理能力强,但作为整线主站时,程序量一旦上到几千步,还要同时处理配方管理、历史数据缓存、与上位机频繁通信,扫描周期就会明显抖动。而 Q 系列(特别是带多 CPU 或者带高性能电源模块的配置)在数据吞吐和指令处理速度上更稳,适合承担"整线调度中枢"这个角色。
我在这条产线里的实际分工是:
- 每台FX5U只负责一个物理工位,比如极片裁切工位、卷绕工位、焊接工位、注液工位、化成分容工位的电芯夹具控制等。它接收来自Q系列的指令(比如"启动""暂停""复位""切换配方"),执行完把状态反馈回去。
- Q系列做整线主站,汇总所有FX5U的状态,执行全线的流程状态机(手动/自动/待机/急停),下发节拍指令,处理配方数据,并通过以太网接口和MES系统交互。
这种两层架构的好处是:单个工位出问题不会把整条线的程序搞崩溃,因为工位逻辑在本地PLC里跑;Q系列只管联锁和调度,逻辑清晰,调试时定位问题也快。代价是多了一台PLC的硬件费用,但换来的是维护性和稳定性,值。
2.2 硬件配置怎么定,以实际项目为例
我这条产线一共12个工位,其中6个工位需要独立PLC控制,其余工位用远程IO站。整线配置如下表,大家可以参考:
| 项 | 型号 | 数量 | 说明 |
|---|---|---|---|
| 中央主站 | Q03UDVCPU | 1 | 整线调度、数据汇总、MES通信 |
| 电源 | Q61P | 1 | 主站供电 |
| 以太网模块 | QJ71E71-100 | 1 | 与MES/上位机通信 |
| CC-Link IE Field主站 | LJ71GF11-T2 | 1 | 连接各FX5U和远程IO |
| 工位控制 | FX5U-32MT/ES | 6 | 每台对应一个工艺工位 |
| 远程IO | AJ65SBTB1-32D | 若干 | 用于简单信号点位的采集 |
看到这里你可能注意到我没用Q系列自身的远程IO模块去接所有点,而是把复杂逻辑工位单独用FX5U处理。这样做的原因很实在:远程IO只能做信号收发,不能跑工艺逻辑,而像卷绕工位的张力控制、焊接工位的能量监控,需要独立CPU实时计算,远程IO根本带不动。
网络层面,Q系列作为主站和6台FX5U之间就是走CC-Link IE Field,一个主站模块就能全部拉通,AI/DI点、寄存器数据都可以映射到主站内存里。站号规划上,我给每台FX5U分的站号是按照产线物理位置顺序排的(比如裁切是1号、卷绕是2号),这样Q系列里做数据映射时一目了然,对应关系不会乱。
3. 多工位电池产线的控制程序:核心模块怎么拆
3.1 主状态机:整线协调的关键
多工位电池产线程序里最核心的不是某个工位的逻辑,而是整线的主状态机。Q系列里的程序,我把它分成四个大状态:ST_STANDBY(待机)、ST_AUTO_RUN(自动运行)、ST_MANUAL(手动调试)、ST_ALARM(报警暂停)。每个状态之间的切换条件要严格定义,尤其是从自动运行切到报警暂停时,所有工位的动作必须在规定时间内完成停止,否则会出工艺事故。
举一个实际的联锁场景:焊接工位在自动运行中突然报警(比如焊头温度超限),Q系列的主状态机会立刻把状态切到ST_ALARM,同时向所有FX5U下发"暂停"指令。但是注意,这里不能只下发一条指令就完事,因为上游的极片裁切工位一旦停下来,裁切刀可能正好停在某个中间位置,下一次启动如果不先回原点就裁切,极片尺寸就错了。
所以我在主状态机里加了一个"停机后位置确认"的逻辑:报警触发后,Q系列先等待所有工位上报"已安全停止"信号,再根据当前工位的运行阶段决定是否需要在报警复位后执行回原点动作。这个看起来简单,但很多现场问题都出在这——只做了急停,没做急停后的复位和再启动流程,导致每次报警恢复都要人工干预半天。
3.2 FX5U单工位程序:标准化+可复用
FX5U的程序,我强烈建议按标准模板来写,不要每个工位都从头搭一遍。我的做法是把单工位程序分成以下模块:
- 输入/输出映射区:物理IO点映射到内部软元件,后续逻辑统一操作内部软元件。这样换IO点、改接线时,只需要改映射区,不用动主逻辑。
- 手/自动切换逻辑:所有工位必须支持手动和自动两种模式,自动模式下由Q系列指令驱动,手动模式下本地按钮直接控制。
- 本工序流程:比如注液工位就是"夹具夹紧→注液针下降→注液→保压→注液针上升→夹具松开"这六步,用步进梯形图或者SFC写都行,关键是状态清晰。
- 报警处理:FX5U本地采集到的报警(如气缸到位超时、真空压力不足)上报给Q系列,Q系列统一弹窗和记录。
- 本地手动操作面板:方便单个工位调试用。
这里有个很重要的设计习惯:FX5U内部要有独立的运行/停止控制位,不能完全依赖Q系列指令。比如Q系列断线了或者主站PLC故障,现场工人通过本地面板也要能手动操作单个工位完成基本调试动作。这样做还有一个好处:单个工位程序在车间单独调试时,不需要把整条线都跑起来,效率高很多。
3.3 配方管理:不同电芯型号的切换
电池产线里,同一台设备往往要做好几种规格的电芯。比如同一卷绕工位,不同型号的极片宽度、卷绕圈数、张力设定值全不一样。如果每次换型都去PLC程序里改参数,既不安全也没效率。
我在Q系列里做了配方管理功能:配方数据存储在Q系列内置的软元件文件里,或者存在CF卡里,按配方号读取。每个配方包含以下信息:
- 配方编号和名称
- 各工位的关键工艺参数(卷绕张力、焊接功率、注液量、压力设定等)
- 各工位的运行速度参数
- 工位之间的节拍配合参数(比如裁切工位缓存区空时,前段速度需要降速)
换型时,操作员在触摸屏上选择配方号,按下"配方下发"按钮,Q系列会将对应的参数批量写入每台FX5U的指定寄存器里。FX5U在收到配方更新信号后,要做一次"参数生效确认",把接收到的值与本地设定范围做比对,如果发现异常(比如注液量超上限)就拒收并报警。这一步双保险非常有必要,因为配方数据在以太网传输中一旦受到干扰,数值错了而程序没发现,这不是闹着玩的。
4. 关键工艺控制:从单体电芯到多工位协同的细节
4.1 裁切工位的伺服定位与速度同步
电池极片裁切工位对定位精度要求很高,我用的是FX5U内置的高速脉冲输出控制伺服。FX5U-32MT本体自带4轴200kHz脉冲输出,对于这种单轴定位的裁切应用完全够用,不需要额外加定位模块。
定位控制程序里面的核心是原点回归方式的选择。我用的是"近点狗+Z相"回归方式(丝杠找零点),这样每次开机回原点后,机械位置的重复精度能保持在正负一个脉冲以内,裁切长度才稳定。实际调试中发现,如果不做Z相找零点,仅靠近点狗停止,伺服停止位置误差可能达到几个脉冲,这对极片裁切来说直接导致后续卷绕对齐度变差。
速度同步方面,裁切工位和前面放卷工位之间的速度匹配在电池产线里容易出问题。我这里的做法是:放卷工位不是单独控速,而是把裁切工位的运行状态作为放卷速度的参考,通过FX5U之间的数据交换(经Q系列中转)实现速度微调。初学者容易犯的错是每个工位按自己的节奏跑,结果中间缓存区要么堆料要么拉断。
4.2 卷绕工位的张力控制:需要独立控制回路
卷绕张力控制是电池产线里最讲究的环节之一。张力太松,卷芯内部松散,电芯后续容易变形;张力太紧,极片拉伸变形甚至断裂。FX5U本身不带模拟量张力控制专用功能,但可以通过模拟量特殊适配器读取张力传感器信号,经过PID运算后,输出给磁粉离合器或者伺服电机做张力调节。
我用的是 FX5U-4AD 加内置PID指令的方式。PID参数整定花了好几天,最后是"先纯P,再逐步加I,D基本不用"的经验法则得出的。张力控制回路需要注意一个启动和停止时的处理技巧:产线启动瞬间卷径从静止到运动,张力会突然跳动,此时PID输出需要做预置处理——在启动前先把输出设到当前张力设定值对应的初始输出上,再切自动模式,这样能把启动冲击降到最小。
4.3 焊接工位的能量监控与数据上报
电池极耳焊接工位对焊接能量的一致性要求很高。焊接逆变电源一般自带通信接口,我通过Q系列的串口通信模块(或者以太网模块,如果电源支持)实时读取每个焊头的实际焊接能量值,存入Q系列的数据寄存器。
关键的监控逻辑是:每个电芯焊接完成后,Q系列把焊接能量值与设定范围做对比,如果超出上下限就判定为不合格焊点,同时记录下当前焊接的是哪一工位的哪一个电芯(通过追溯编码实现)。这些数据后续要上传MES,作为电芯质量追溯的一部分。注意,这里的数据采集一定要用块读取+异或校验的方式,不能一条一条地轮询,否则产线节拍快的时候通信根本来不及。
5. 通信与数据交互:把Zeus拉上神坛的CC-Link IE Field
5.1 为什么选CC-Link IE Field而不是普通以太网
FX5U本身自带以太网口,Q系列也有以太网模块,理论上我可以通过Socket通信自己写协议来交换数据。但实际项目中,我坚定地选了CC-Link IE Field总线,原因有三条:
第一,实时性有保障。CC-Link IE Field的刷新周期可以设到1ms级别,而我用Socket自己写协议,数据刷新周期能做到几十毫秒就算不错了。电池产线里焊接工位和裁切工位的联动,数据刷新慢了,整个节拍就压不下来。
第二,数据映射不需要写协议。组态完成了以后,通信数据直接映射到内容寄存器地址,程序和访问本地软元件没区别。自己写协议的话,要处理分包、组包、重传,光这部分代码量就能堆一摞。
第三,诊断功能强大。某个从站断线、通信超时,总线上自动报错,主站可以看到具体是哪个站出问题了。这个对现场排查网络故障帮助非常大。
5.2 数据映射表怎么设计
通信组态里,每台FX5U和Q系列之间都建立数据映射区。我设计了一张标准的数据映射表,每台从站统一格式:
- RWw 0~9(从站→主站):工位状态、当前工序编号、报警代码、当前计数、设备速度、张力读数等
- RWw 10~19(主站→从站):运行指令、暂停指令、复位指令、配方编号、速度设定、节拍参数等
- RWr 0~9(主站→从站):联锁信号(上游允许出料/下游请求来料)
- RWr 10~19(从站→主站):工位就绪信号、来料请求、完成信号
这套表看起来简单,但实际最值钱的地方是映射地址和物理工位号的对应关系一定要固定并且写进文档。现场调试时,如果某个信号不通,直接查这个表就知道是哪一段的问题,不用对着程序一行行翻。
5.3 与MES系统的接口设计
电池产线不可避免要跟MES对接,传输数据包括:生产计划、配方参数、产量统计、不良品数据、设备状态、报警记录等。
我在Q系列里专门做了一个"数据中转区",MES通过以太网访问Q系列模块,读写这个中转区,不和PLC主程序直接打交道。这样做的好处是:MES通信异常时,不会影响PLC的核心控制逻辑。我在通信程序里做了超时处理和通信失败重试机制,如果MES长时间不响应,PLC继续按本地逻辑跑(生产模式降级为半自动),保证产线不会因为上位机故障停摆。
6. 现场调试:这套系统最常见的坑和我的排查手段
6.1 通信断线后FX5U和Q系列的"假死"现象
我在现场遇到过一个特别典型的坑:某个工位的FX5U和Q系列之间的CC-Link IE Field连接正常,但偶尔会出现某台FX5U的数据不再刷新,其他站都正常。排查了很久才发现,问题出在从站程序死循环。
FX5U里有一段报警判断程序,因为一个小错误在某些边界条件下进入无限循环,虽然PLC还在跑,但通信刷新功能被占用了,导致这个站的数据一直不更新。主站侧看,这个站并没有报通信错误(因为硬件连接正常),但数据就是不动。
排查手段是这样的:先在Q系列主站侧看每个从站的通信状态标志,确认硬件链路正常;然后逐一对比从站数据的上次更新时间戳,如果发现某站的时间戳长期不变,直接去该站程序里找问题。后来我在这台FX5U里加了一个看门狗定时刷新计数器,每扫描周期自加一次,Q系列可以监视这个计数器的变化来判断PLC程序是否真的在正常运行。这个经验在处理类似问题时非常有用。
6.2 急停按钮的接线与程序联锁
多工位产线的急停回路设计,很多初学者会忽略一点:急停按钮不能只接PLC的输入点,还必须直接串在伺服使能回路和气缸电磁阀电源回路上。PLC程序里做急停逻辑只是第一步,如果伺服驱动器的使能信号由PLC输出控制的话,万一PLC程序跑飞或者通信异常,急停就形同虚设了。
我在这条产线的设计里,急停采用的是"双回路"方式:
- 硬回路:急停按钮直接切断24V电源到所有伺服使能继电器、所有电磁阀电源模块。按下急停,设备物理上断电停机。
- 软回路:急停信号同时接到Q系列的输入点,PLC程序检测到急停后,进入ST_ALARM状态,记录报警,禁止任何自动启动操作。
调试时还发现一个细节:多工位产线的急停按钮分布在好几个位置,每个急停按钮的触点必须串联,而且要用常闭触点接到安全电源回路。如果用了常开触点,某个急停按钮松了或线路断了会完全不起作用。
6.3 节拍优化:找到瓶颈工位
整线节拍没达到设计值,是这种多工位产线调试阶段最常遇到的问题。最开始是裁切工位速度上不去,后来是注液工位夹具动作太慢。我当时用Q系列里的时间戳记录功能,在每个工位的"工序开始"和"工序结束"处打点,统计每个工位实际运行时间。把各工位时间排序后,发现瓶颈在卷绕工位,它单个电芯要14秒,其他工位只要8到10秒。
优化手段包括:卷绕工位的加减速参数重新整定,把加速时间从0.5秒压到0.3秒;同时把卷绕工位的"等待入料"时间和"出料完成"时间压缩,通过提前准备缓存区的方式减少等待。最后整线节拍从单件20秒压到了14.8秒,勉强达标。这个过程提醒我一个道理:节拍优化要找真瓶颈,不能凭感觉平均加速,平均加速的结果往往是设备过度磨损但整体节拍没快多少。
7. 程序备份与版本管理:产线维护里最容易忽视的痛点
电芯产线一旦投产,程序版本管理就是个大问题。我听不少同行说过,现场调试完的程序和出厂备份的对不上,设备坏了换个PLC,下载进去的程序因为没有最新备份,导致整个产线要重新调一遍。
我这边的习惯是:
- 每个工位的FX5U程序备份文件命名规则统一为“项目号-工位号-日期-版本号”,比如“B202401-CJ-V2.1-20240512”代表裁切工位2024年5月12日的版本。
- Q系列主站程序单独备份,除了整套程序,还额外导出一份软元件注释和参数配置表。
- 每一次现场调试修改,必须在当天结束时完成新版备份,并且在上位机里记录修改内容。我吃过亏:有一次改了一个定时器参数,过了两周才想起来要对比旧版本,还好当时有备份,不然根本记不住改在哪。
触摸屏程序、运动控制模块参数、伺服驱动器参数这些也都属于系统配置的一部分,必须和PLC程序一起备份。很多项目就是只备份了PLC程序,伺服参数没备份,结果伺服驱动器一坏,换新的上去因为参数没匹配,设备动起来完全不是原来的手感。
8. 这套架构后面的扩展:从单线到多线,从本地到云端
这套 FX5U + Q系列 的架构做下来之后,后面客户又把另外两条线也接进了同一个Q系列系统。扩展时主要增加了CC-Link IE Field从站数量、在Q系列里增加了对应的数据映射区、调整了MES接口的地址范围,其他核心逻辑基本不用动。
如果你后面有更进一步的计划,想把这套系统的数据往云端送,三菱的方案是在Q系列模块上来做数据采集转发(通过标准的以太网MQTT或者HTTP方式)。我这边给客户的二期规划里,就是让每台FX5U把工位数据、产量数据和设备健康数据直接汇总到Q系列,再由Q系列按照一定周期上传云端。这样从设备层到边缘层再到云端,整个数据链路就是通的。
我个人在实际操作中的体会是:不管是FX5U做单工位控制,还是Q系列做整线调度,这套系统架构只要前期的选型和划分想清楚了,后面的编程、调试和维护都顺理成章。千万别一上来就扎进程序里写代码,先把数据流和状态流图画明白,比什么都重要。