去年接锂电池包膜机项目时,甲方反复强调三个词:三菱Q系列PLC、触摸屏、松下伺服控制,还特意加了一个“主从控制”。一开始我以为只是普通的单机设备,等真正把方案落下去才发现,这里面牵扯到的电气架构、多语言HMI、主从轴同步和张力控制,才是项目真正难啃的骨头。这篇内容作为一份现场操作手记,把我拆解标题需求、配置系统架构、调试松下伺服、做触摸屏多语言切换,以及后来处理通讯故障的完整过程写出来。正在做锂电设备、包装机械的电工或电气工程师可以重点看主从控制和张力部分,刚入行想学三菱Q系列和触摸屏联动的话,也可以从头到尾跟一遍。
1. 需求拆解与系统架构选型
1.1 这台机器到底要干什么
锂电池包膜机,说白了就是给电芯外表面包一层绝缘膜,我接到的那台设备主要包含三个工位:来料电芯上料工位、包膜热压工位、成品下料工位。节拍大概8秒一片电芯,甲方要求有中文、英文两种以上语言切换,触摸屏要能显示报警、配方、产量,还要能调包膜速度和张力。
包膜机最怕的不是位置跑偏,而是膜在送料过程里面张力忽大忽小。张力大了膜被拉断,张力小了膜贴不紧,包出来起皱。所以设备核心不是那台三菱Q系列PLC,而是围绕“送膜轴”展开的张力控制,以及贴膜过程中多根轴的同步动作。这也是标题里“主从控制”四个字的真正落点。
1.2 为什么用三菱Q系列PLC做主控
甲方指定用三菱,这个不奇怪。锂电设备现场对PLC的循环扫描时间、以太网通讯、模块扩展能力都有一定要求,FX系列也能勉强做,但包膜机后面还要接MES系统、还要多台设备互联,选Q系列更稳妥。
我用的主站是三菱Q03UDECPU,自带以太网口,支持SD存储卡,程序容量足够放一整条设备的逻辑。从站选Q02UCPU,专门负责送膜机构的张力控制和本地IO采集,两个CPU通过CC-Link组网。这里说句实话,如果只是单机小设备,FX加一个触摸屏也能转起来,但一旦加了主从张力控制、多配方、多语言,你就需要Q系列这种模块化平台,因为后续扩展远程IO、模拟量、高速计数、定位模块都方便,调试软件GX Works2/3对Q系列的监控能力也远比FX强。
1.3 “主从控制”在这里指什么
项目标题里的“主从控制”,现场理解有两层含义,我在方案评审时也跟甲方解释过。
第一层是整个系统层面的主从:主PLC Q03UDE负责整线流程、触摸屏通讯、与后续MES系统对接,从PLC Q02U负责送膜轴的张力控制。主PLC给从PLC发“运行允许”、“线速度设定”等指令,从PLC回传“实际张力”、“故障码”等状态。这套架构比把所有逻辑塞进一个大PLC更可靠,因为张力控制扫描周期短、变化快,单独交给一台PLC跑,不会因为主PLC处理触摸屏大区域数据刷新而受到干扰。
第二层是机械设备层面的主从轴:包膜机中送膜辊和牵引辊之间存在速比关系,牵引辊是主动轴,送膜辊是从动轴。主PLC控制牵引辊速度,从PLC控制送膜辊跟随,主从之间速度必须实时同步。真正做的时候,同步信号不是靠硬接一个脉冲线那么简单,而是通过CC-Link周期通讯加上张力闭环修正实现。这个我在后面第3章专门细说。
2. 电气硬件配置与网络规划
2.1 主柜与从柜的IO分配
确认架构后,电气选型基本就定了。主柜和从柜分开布局,方便接线和检修。主柜主要放Q03UDE、定位模块、触摸屏,从柜放Q02U、模拟量模块、高速计数模块、松下伺服驱动器和张力放大器。
我列一下实际用的主要硬件清单:
| 设备位置 | 型号/规格 | 用途 |
|---|---|---|
| 主PLC | 三菱Q03UDECPU | 整线逻辑、触摸屏、CC-Link主站 |
| 从PLC | 三菱Q02UCPU | 张力控制、从动轴逻辑 |
| CC-Link模块 | QJ61BT11N x2 | 主站(主柜)、从站(从柜) |
| 定位模块 | QD75D4 | 主柜控制贴膜/搬运伺服 |
| 高速计数模块 | QD62D | 从柜接收张力辊编码器反馈 |
| 模拟量输入 | Q64AD | 从柜读取张力传感器4-20mA |
| 模拟量输出 | Q64DA | 从柜输出速度指令给松下伺服 |
| 触摸屏 | 威纶通MT8121iE | 现场操作、多语言切换、配方 |
| 伺服系统 | 松下MINAS A6系列 | 贴膜轴、送膜轴、热压轴 |
这里要特别提醒一点,QD75D4定位模块和QD62D高速计数模块虽然都是32针接口,但两者数据刷新机制完全不一样,QD75D更侧重位置控制,QD62D更侧重编码器计数。如果做主轴同步,需要把QD62D的计数值放到QD75D的同步控制里,调试时最好把两个模块的缓冲存储器地址表打印出来,一条一条核对,不要凭印象写。
2.2 CC-Link主从通信与数据映射
CC-Link组网是这套系统的一个关键点,也是从PLC参与主从控制的基础。主PLC的QJ61BT11N做主站,从PLC的QJ61BT11N做从站,站号分别设为0和1,通讯速率选10M,占用站数按实际模块数配置。别小看这个设置,CC-Link的“占用站数”如果设少了,远程IO点不够用;设多了,扫描周期变长,张力控制的实时性就差。
主从之间的数据映射,我习惯固定一张地址分配表,放在程序公共注释里。这样做的好处是后续改程序不用翻半天,也方便甲方维护。因为我用三菱触摸屏和威纶通触摸屏都做过项目,但这次用威纶通,主从数据接口地址我留的都是字软元件:
| 方向 | 软元件 | 内容 | 数据类型 |
|---|---|---|---|
| 主PLC → 从PLC | D200 | 主辊线速度设定 | 16位整数 |
| 主PLC → 从PLC | D202 | 张力设定值 | 16位整数 |
| 主PLC → 从PLC | M0 | 运行允许 | 位 |
| 从PLC → 主PLC | D300 | 实际张力实测值 | 16位整数 |
| 从PLC → 主PLC | D302 | 当前卷径计算值 | 16位整数 |
| 从PLC → 主PLC | M100 | 从站故障 | 位 |
程序里通过FROM/TO指令读写CC-Link缓冲区,或者用GX Works里配置好的自动刷新地址,把数据映射到上面的寄存器。现场调试时我习惯先用短接测试线和GX Works监控一个个地址确认数据通断,再让两台PLC同时跑程序,否则上来就跑整线,出了问题都找不到是通讯问题还是逻辑问题。
2.3 触摸屏型号与连接方式
触摸屏用的是威纶通MT8121iE,10寸屏,以太网口直接连主PLC Q03UDE的内置以太网口。这里有个经常被忽略的坑:三菱Q系列PLC的内置以太网口默认不一定开放MC协议,如果你不在GX Works里配置“以太网端口”的MC协议参数,触摸屏哪怕ping得通PLC,也会一直提示“device no response”。我一开始就被这个坑住了,后来在PLC参数里打开端口号,指定TCP连接数,触摸屏才正常通讯。
后来甲方提了个要求,办公室还要放一台监控用的触摸屏,问“一个PLC可以接两个触摸屏吗”。答案是可以,我用一台交换机把两台威纶通屏都接到PLC网口上,分别设置不同的IP地址,比如PLC是192.168.1.1,现场屏是192.168.1.10,办公室屏是192.168.1.11。需要注意两点:一是两台屏不能同时频繁刷新同一大块数据区,否则网口负担重,PLC扫描会出现轻微波动;二是威纶通工程里“设备列表”的通讯超时设长一点,默认300ms可以改到500ms,避免一台屏重启影响另一台的数据。
还有一次甲方让评估是否用Linux系统的触摸屏或者基于Qt开发的界面,原因是不想被组态软件授权费卡住。这个思路本身没问题,但你要知道,不管触摸屏底层是什么系统,只要它走三菱MC协议和PLC通讯,协议层都是一样的。Linux下写驱动反而更灵活,但报警记录、配方管理、历史曲线这些功能全部要重新开发,开发周期远超过组态软件。所以我在这种项目里通常建议:产量不大的单机设备就用成熟触摸屏组态,省心,后期维护也方便。
3. 松下伺服控制与主从同步实现
3.1 伺服轴分工和选型思路
包膜机一共用了几台松下伺服,我分别说明一下。主牵引辊用了一台750W的松下伺服,控制整个贴膜送料的速度,工作在位置模式;放卷送膜轴用了一台400W的松下伺服,工作在速度模式,接收从PLC模拟量模块输出的速度指令;还有一台200W的伺服放在热压工位,配合定位模块QD75D做往复运动。
之所以这样分配,是因为牵引和贴膜的动作需要精确定位,位置模式靠着QD75D发脉冲,误差小,停止抱死也方便。放卷送膜轴的核心不是位置,而是张力,位置模式反而会跟张力传感器“抢权”,所以用速度模式,让张力PID去调节伺服转速。
伺服驱动器接线也要特别注意脉冲类型。QD75D输出的是差动脉冲,松下驱动器端要设置成“脉冲+符号”输入,同时把脉冲输入口的信号类型改成差分,否则伺服可能只能单方向转,或者干脆报警。我第一次接的时候把脉冲模式设成“A/B相”,结果伺服走两下就报偏差过大,改回脉冲+符号就正常了。
3.2 位置模式、速度模式与电子齿轮
松下MINAS A6系列驱动器有三种基本控制模式:位置、速度、扭矩。包膜机的贴膜轴用位置模式,放卷轴用速度模式,热压轴用位置模式做往复。位置模式搞不清楚的话,可以把它理解成“伺服收到多少个脉冲,就转多少角度”,你发的脉冲频率决定了转速。速度模式则是“你给多少模拟量电压,伺服就跑多快”,它不怕脉冲叠加,更适合张力环调速度。
驱动器里面有个电子齿轮比,在需要主轴转一圈、从轴不转整圈时特别好用。比如主动轴脉冲数是10000个/转,从轴需要刚好1.5转,这时候电子齿轮比设成3:2,从轴机械上就自动跟上。不过电子齿轮比只能解决固定速比,对于张力控制这种速比随时变的场合,我还是选择让从PLC实时计算后通过模拟量给速度指令。模拟量虽然不如数字量抗干扰,但现场屏蔽线接地做好的话很稳定。
3.3 主从轴同步的现场做法
主从同步这块是整个项目的核心,我多花点篇幅说。前面讲了,主PLC控制牵引辊,从PLC控制送膜辊。主PLC通过CC-Link每50ms左右把当前牵引辊的线速度写到D200,从PLC读取后,结合实时张力实测值,算出一个速度补偿,再输出给松下伺服。
从PLC里的核心逻辑大概是这样的思路:
运行允许 = 主PLC.M0 如果 运行允许 = 1 则 线速度 = D200 当前卷径 = 调用卷径计算程序(I) 目标角速度 = 线速度 * 传动比 / (π * 当前卷径) 张力误差 = 张力设定值 - 实际张力值 速度补偿 = PID调节器(张力误差) 最终速度指令 = 目标角速度 + 速度补偿 限幅最终速度指令 在 最小速度和最大速度之间 输出到QD64DA,通过模拟量控制松下伺服 否则 输出速度指令 = 0 结束这里有个非常容易犯的错:卷径计算不能靠猜,要利用QD62D高速计数模块采集张力辊编码器的脉冲数,再结合膜厚度和转过的圈数去积分。如果卷径算错或者不更新,目标角速度就错,张力环再厉害也补不回来。
我现场调试时遇到过膜越走越紧的问题,查了半天发现是卷径初始值设得太小,实际卷径是300mm,程序里却按180mm算,主从速度比自然偏了。后来把卷径初始值改成从触摸屏传入,每次换卷后在触摸屏上让操作员手动确认一次,问题就消失了。
主从同步还有一个细节是启停时序。主PLC启动时要先让从PLC速度环运行,再启动牵引轴;停止时反过来,先停牵引,再从PLC把送膜伺服抱闸。顺序反了,送膜轴就会在启动瞬间被拉扯,直接报警过载。我在程序里单独做了一个状态机,把启动、运行、停止三个状态分得清清楚楚。
4. 触摸屏多语言切换与画面功能
4.1 语言切换的两种实现方式
甲方要求多种语言切换,其实有两种实现方式,一个是威纶通EBPro自带的“语言列”,另一个是自己建立一个文本索引库。
威纶通工程里,每个文本对象都有一个“内容”属性,里面可以按语言切换列来输入不同文字,然后在工程“语言”选项卡中定义中文、英文、日文等多个语言。运行时通过一个寄存器切换当前语言,比如LW100=0是中文,LW100=1是英文,LW100=2是日文。这种方法直观,哪个控件漏编辑了一目了然。
如果用文本索引库,更灵活,报警信息和动态提示都能用。我会把常用的报警信息放到一组索引里,比如索引100对应“张力异常”,索引200对应“卷径更新失败”,然后动态文本控件用这个索引。触摸屏会根据LW100的当前语言,自动从索引表里挑对应语言显示。这种做法的好处是报警数据在PLC里只传代码,不传文字,采集历史数据占用空间也小。
我建议两种方式结合:常规按钮、标签用语言列;报警记录、配方名称用文本索引。因为报警列表一页显示几十条,如果每一条都单独做语言列,画面文件会变得很臃肿,编译慢,运行也卡。
4.2 全局宏与局部宏的合理分工
触摸屏上除了画面切换,还需要做逻辑判断。比如语言切换、报警弹窗、数据记录,这些用组态软件的宏功能都能实现。威纶通里分全局宏和局部宏,我第一次用的时候也分不太清楚,吃了亏之后才总结了经验。
局部宏是绑定到某个按钮、某个画面载入事件或者某控件的状态变化的,执行时机明确,适合做按钮按下之后的配方写入、画面切换前的数据保存、报警复位等操作。全局宏是指在触摸屏后台按设定周期循环执行的宏,适合做周期性的数据采样、语言监听的,比如每100ms检查LW100的值有没有变化,如果变了就刷新所有文本显示。
语言切换我就会用全局宏来监听:
macro_command main() short language_now short language_old GetData(language_now, "Local HMI", LW, 100, 1) GetData(language_old, "Local HMI", LW, 110, 1) if language_now <> language_old then SetData(language_now, "Local HMI", LW, 100, 1) SetData(language_now, "Local HMI", LW, 110, 1) // 触发文本刷新指令 end if end macro_command这里的宏语法在不同的EBPro版本会有细微差异,我只说思路。关键是,宏里面尽量不要做大量计算,触摸屏CPU和PLCCPU不是一回事,循环体大了会影响界面响应。
4.3 报警记录、配方和操作权限
除了语言切换,触摸屏上我还做了报警记录和配方管理。报警记录要把PLC里的M继电器或者D寄存器映射到威纶通的报警列表,报警文本用前面说的文本索引,配合语言切换。配方内容包含张力设定值、包膜速度、热压温度等参数,存在RW寄存器或者独立配方文件里,每个配方要有名称和版本号。
操作权限也做了三级:操作工只能启动停止和切换配方;技术员可以修改参数并保存配方;工程师可以进入系统设置、触摸屏本身维护页面。这个权限级别用威纶通的用户管理做即可,但要注意语言切换宏必须在未登录状态也能执行,否则操作员切换语言还要管理员密码,这个是不合理的。
从这块我才真正体会到,为什么热门搜索里“触摸屏编程100例”这种老书还是有很多人翻。组态软件版本换了,界面变漂亮了,但里面的宏思路、索引表、寄存器映射,基本换汤不换药,当年那些案例的逻辑现在照样能抄。
5. 通讯故障排查与现场防坑
5.1 威纶通“device no response”排查顺序
这个“device no response”应该是触摸屏通讯类问题里出现频率最高的一个。每次现场打电话说屏上没数据,我都会让电工按固定顺序排查,不要东看西看浪费时间。
第一步,确认PLC是否处于运行状态,三菱Q系列CPU面板上的RUN灯亮不亮,如果亮着,检查BATTERY指示灯是不是红。第二步,确认触摸屏与PLC的IP地址是不是同一个网段,用电脑ping一下PLC的IP,ping得通说明物理链路没问题。第三步,ping得通但屏仍然报错,问题大概率出在PLC以太网参数没有开放MC协议,这时候去GX Works里检查“以太网端口设置”,把使用TCP的MC协议打开,指定端口号,比如默认2000。第四步,检查触摸屏“设备列表”里协议类型,选的是“MELSEC Q/QnA”还是“三菱MC协议”,如果选错了也会报同样的错。
我遇到过最隐蔽的一个原因是PLC和触摸屏用的网络是交换机级联,中间某台交换机关掉了“端口隔离里的广播转发”,导致触摸屏能ping通PLC,但握手包发不过去。所以不要一看到“no response”就以为是IP问题,通讯路径上所有设备都要看。
5.2 MCGS程序上下载与备份技巧
项目现场甲方还自备了一台昆仑通态MCGS触摸屏作为备件。MCGS的程序上传和下载,跟威纶通有点不一样,我在这里也顺带提一下,因为很多人第一次用MCGS时不知道程序还能不能从屏里上回电脑。
MCGS嵌入版组态环境支持“工程下载”和“工程上传”,但前提是你建工程时没有禁止上传,或者没有设太强的工程密码。我维护设备时有个习惯:每次修改完MCGS工程,除了下载到屏里,还在电脑上另存一个带日期后缀的备份文件,比如“包膜机_20250116.mcg”。否则一旦原工程文件丢失,哪怕你从触摸屏里上传成功,注释信息和部分图片资源也可能丢失,恢复出来的工程只是能用,想二次修改很费劲。
MCGS还有一个坑是屏里面程序上传时,默认会清掉当前画面里的历史数据。如果你需要保留报警记录、数据曲线,最好在上传之前到U盘里先做一份数据导出。这个细节厂家手册里写得不多,但实际维护非常关键。
5.3 跨网段通讯的通用思路
跨网段这个问题,搜索引擎里天天有人问“MCGS触摸屏跟西门子1500跨网段通讯”怎么配。其实不管是三菱Q系列还是西门子S7-1500,触摸屏跨网段通讯的核心逻辑都一样:首先物理上路由可达,即触摸屏的网关指向能转发到PLC所在网段的设备;其次PLC本身要允许别的网段访问。
我用三菱Q03UDE调试时,如果触摸屏和PLC在不同网段,我会在三菱GX Works的“网络路由参数”里设置网络号和站号。很多工程人员只设IP不设网络号,结果跨网段就是不通。三菱的CC-Link、以太网、MELSECNET这些网络之间访问,都要靠路由参数告诉CPU“数据从哪个网络进,从哪个网络出”。这点比西门子稍微麻烦一点,西门子1500在博途里只需要勾选“允许来自远程伙伴的PUT/GET通信”,再设置正确的IP掩码和网关,MCGS就能通。
跨网段调试还有个土办法,先用电脑在触摸屏同一网段ping PLC,通了再检查IP掩码,不通就检查交换机路由,不要一上来就改PLC参数。我调试时会在办公室监控屏上先试通网络,再到现场屏上刷新,这样能少跑很多路。
5.4 常见故障速查表
我把现场几个月下来碰到的问题整理成一个速查表,给现场电工用,各位也可以直接打印贴柜门上:
| 故障现象 | 可能原因 | 处理办法 |
|---|---|---|
| 触摸屏报device no response | IP没通/协议没开/端口不对 | 按5.1步骤逐项排查 |
| 伺服报警超速 | 模拟量速度指令没限幅 | 在从PLC程序里加限幅,检查与QD64DA连接 |
| 放卷张力忽大忽小 | 卷径没有实时更新 | 确认QD62D编码器接线,换卷后重设初始卷径 |
| 主从启动瞬间送膜轴扯膜 | 启动时序不对 | 先启动从站速度环,再启动主牵引 |
| MCGS上传后报警记录丢失 | 上传前未导出历史数据 | 上传前用U盘导出,或先降级上传 |
| 两台触摸屏互相影响 | 数据刷新区域过大 | 降低刷新频率,错开两台屏的读取区域 |
6. 调试交付后的几点心得
这套设备从设计到交付大概用了3个月,真正在现场啃得最多的不是程序,而是参数之间的配合关系。张力环PID、卷径更新周期、CC-Link扫描周期、触摸屏刷新频率,这些参数单独看都不难,连在一起就需要反复试。
我个人体会最深的一招是:在触摸屏上专门放一个“工程师调试页”,把主从速度比例、卷径当前值、张力误差、从站故障码全部显示出来,现场调试时不用反复连电脑,调起来效率高很多。这个页面权限锁成工程师才能进,交付后也不删,因为后面设备换膜规格、调张力大概率还要用。
如果后面要接MES系统,这套主从数据映射已经留好了口子,你只需要把D200、D300这些数据往MES对接表里再抄一遍,不需要再动PLC逻辑。最后再分享一个小技巧,设备调完别急着拍屁股走人,把CC-Link站号、触摸屏IP、PLC路由参数、松下驱动器关键参数全部打印成一张表贴在柜门内侧,等三个月之后客户打电话来问故障,你电话里就能帮他排除一多半问题。