上周在锂电池生产车间遇到一个典型案例:一台使用三菱FX5U PLC控制的锂电池尺寸检测机突然宕机,RUN指示灯异常闪烁。排查发现是PLC与测试仪表间的串行通信故障导致。这个项目集成了FX5U PLC、威纶通触摸屏、多路模拟量采集和复杂通信控制,是典型的工业自动化系统集成案例。
这类设备的核心需求可以分解为:
选择三菱FX5U-32MT/ES主要基于以下考量:
硬件配置清单:
| 部件 | 型号 | 数量 | 用途 |
|---|---|---|---|
| CPU模块 | FX5U-32MT/ES | 1 | 主控制器 |
| 模拟量模块 | FX5-4AD | 4 | 压力传感器信号采集 |
| 触摸屏 | 威纶通MT8102iE | 1 | 人机界面 |
| 测试仪表 | 安捷伦34410A | 1 | 电芯参数测量 |
通信系统采用分层架构:
code复制FX5U CH1 -- RS485 -- 安捷伦测试仪 (Modbus RTU)
FX5U CH2 -- RS422 -- 威纶通触摸屏 (三菱MC协议)
FX5U 扩展总线 -- 4个FX5-4AD模块
压力值转换采用ST语言编写的函数块(FB),关键创新点在于:
st复制FUNCTION_BLOCK FB_AnalogScaling
VAR_INPUT
rawValue : INT; // 原始AD值(-32768~32767)
maxRaw : INT := 32000; // 传感器上限对应AD值
minRaw : INT := -32000; // 传感器下限对应AD值
engMax : REAL := 10.0; // 工程最大值(MPa)
engMin : REAL := 0.0; // 工程最小值
END_VAR
VAR_OUTPUT
scaledValue : REAL; // 转换后的工程值
sensorStatus : BOOL; // 传感器状态(TRUE=正常)
END_VAR
// 核心算法
scaledValue := REAL(rawValue - minRaw) * (engMax - engMin) / (maxRaw - minRaw) + engMin;
// 传感器状态检测
sensorStatus := (rawValue >= (minRaw + 100)) AND (rawValue <= (maxRaw - 100));
实际应用中发现,对于压力传感器需要增加软件滤波。我们在FB中追加了移动平均滤波算法,采样窗口设为8次,显著减少了数值波动。
FX5U的两个串口独立工作,需要特别注意:
ld复制[RS D100 K8 D200 K6]
RS指令必须配合脉冲触发执行,否则会导致通信死循环。正确做法是:
ld复制[M8002][MOV K3 D8120] // 初始化串口参数 [T0 K50][PLS M0] // 500ms定时触发 [M0][RS D100 K8 D200 K6] // 带脉冲执行的RS指令
用户权限分为三级:
权限控制逻辑:
st复制CASE currentUserLevel OF
1: // 管理员
btnCalibration.Visible := TRUE;
btnParamSet.Enabled := TRUE;
btnManualMode.Visible := TRUE;
2: // 工程师
btnCalibration.Visible := FALSE;
btnManualMode.Visible := TRUE;
3: // 操作员
btnAutoCycle.Enabled := TRUE;
END_CASE;
关键界面元素实现:
压力柱状图:根据压力值动态改变颜色和高度
实时趋势图:显示最近30分钟压力变化曲线
报警摘要栏:滚动显示最新5条报警信息
通过激光测距仪检测电芯厚度变化,采用模糊PID算法动态调整加压参数:
厚度检测:
补偿逻辑:
st复制IF thicknessDeviation > 0.2 THEN
pressureSetpoint := pressureSetpoint + PID_Calc(thicknessDeviation);
compensationActive := TRUE;
END_IF
将关键操作记录到PLC内置SD卡:
实现方法:
ld复制[MOV "2023/08/15 14:30" D100]
[MOV "OP001" D101]
[MOV "Pressure_Set" D102]
[MOV "5.0" D103]
[MOV "5.2" D104]
[DSW D100 K5 "LOG.CSV"]
症状:触摸屏频繁断开连接
症状:Modbus RTU响应超时
症状:压力值跳变严重
症状:部分通道读数固定为0
通信优化:
程序结构优化:
维护便利性改进:
这套系统经过半年运行验证,设备综合效率(OEE)从82%提升到91%,其中程序结构的清晰设计和完善的故障处理机制是关键。特别是将业务逻辑与设备控制分离的架构,使得后续增加新功能时平均开发时间缩短了40%。