1. 项目背景与改造需求
这个电镀滚镀产线改造项目源于传统控制方式的诸多痛点。原产线采用老式多段速继电器控制,三十多个工位的控制线路错综复杂,每次调整参数都需要物理操作跳线帽和定时器,维护效率极低。更麻烦的是,不同镀种需要不同的滚镀速度曲线,传统系统根本无法满足灵活调整的需求。
我们最终确定的改造方案是:西门子S7-1200 PLC作为控制核心,通过RS485总线连接三菱D700系列变频器群,配合昆仑通态触摸屏实现人机交互。这套架构最大的优势在于:
- 布线简化:总线制替代了点对点控制,线缆数量减少80%
- 参数可视化:所有速度、时间参数可通过触摸屏直接调整
- 工艺可存储:不同产品的工艺参数可保存调用
- 扩展灵活:新增工位只需软件配置,无需硬件改动
2. 硬件配置与组网方案
2.1 核心硬件选型
PLC选型考量:
选择S7-1214C DC/DC/DC型号,主要基于:
- 本体自带4路高速输出(最大100kHz),满足速度信号需求
- 可扩展CB1241 RS485通讯板(6ES7241-1CH32-0XB0)
- 工作内存75KB足够存储三十多个工位的控制逻辑
- 支持PID功能,为后续速度补偿预留空间
变频器配置要点:
三菱D700系列变频器(FR-D720S-0.4K~FR-D740-7.5K)选型时特别注意:
- 功率需留20%余量(电镀槽启动扭矩大)
- 必须选择带RS485接口的型号(FR-D720S不支持,需选FR-D720)
- 内置制动电阻选配(频繁启停场合必需)
触摸屏选择:
昆仑通态TPC7062KX主要看中:
- 7寸800×480分辨率,阳光下可视性好
- 内置脚本功能,支持复杂逻辑处理
- 直接支持S7-1200 S7协议通讯
- 价格仅为西门子同规格屏的1/3
2.2 网络拓扑设计
采用单RS485总线菊花链拓扑:
code复制S7-1200(CB1241) <--> 终端电阻
|
+-- 变频器1 <--> 变频器2 <--> ... <--> 变频器32
关键参数设置:
- 波特率:19200bps(长距离稳定性最佳)
- 校验位:偶校验
- 站号分配:1-31(三菱变频器限制)
- 终端电阻:总线两端接120Ω
实际踩坑记录:初期未接终端电阻导致站号大于15的设备频繁掉线,补装电阻后问题解决。建议使用万用表测量总线两端电阻是否为60Ω(两个120Ω并联值)。
3. 控制程序设计详解
3.1 多段速控制逻辑实现
核心采用定时器级联的梯形图设计:
code复制Network 1: 速度段1控制
M0.0(启动信号) TON1(IN:=TRUE, PT:=T#5S)
----| |----------------(TON)----
Network 2: 速度段2触发
TON1.Q TON2(IN:=TRUE, PT:=T#8S)
----| |----------------(TON)----
| MOV_ENB
+-----------------(MOVE)--[DB1.DBW10->变频器1速度]
Network 3: 速度段3触发
TON2.Q TON3(IN:=TRUE, PT:=T#6S)
----| |----------------(TON)----
| MOV_ENB
+-----------------(MOVE)--[DB1.DBW12->变频器1速度]
每个速度段对应三个关键参数:
- 目标速度(0-50Hz对应0-5000)
- 运行时间(S7-Time格式)
- 加速/减速时间(通过变频器参数Pr.7/Pr.8设置)
3.2 通讯协议处理
使用Modbus RTU协议与变频器通讯,关键功能码:
- 03H:读取保持寄存器
- 06H:写入单个寄存器
- 10H:写入多个寄存器
速度设定值写入示例:
code复制MOV_B 16#06到 MB100 // 功能码
MOV_W 16#0001到 MW101 // 寄存器地址(速度指令)
MOV_W 16#1388到 MW103 // 设定值(50Hz对应5000)
注意:三菱变频器需先设置Pr.79=2(网络运行模式),Pr.338=1(Modbus通讯使能)
4. 触摸屏界面设计技巧
4.1 工艺参数设置界面
采用分层式设计:
- 主界面:显示所有工位运行状态
- 二级界面:单个工位参数设置
- 速度曲线图(实时显示设定/实际值)
- 时间参数设置滑块(0.1s分辨率)
- 工艺配方选择下拉框
关键脚本代码:
lua复制-- 速度设定值处理
local speed = GetTag("Speed_Set")
if speed > 50 then
SetTag("Speed_Set", 50) -- 限幅处理
Alarm("速度超过最大值")
end
WriteToPLC("DB1.DBD"..(4+10*(station-1)), speed*100)
-- 时间参数转换
local time_sec = GetTag("Time_Set")
SetTag("PLC_Time", time_sec * 100) -- 转成S7-Time格式
4.2 报警处理方案
设计三级报警体系:
- 轻微报警(黄色):速度偏差>5%
- 中等报警(橙色):变频器过载
- 严重报警(红色):通讯中断
报警记录采用循环队列存储:
lua复制-- 报警历史记录
local alarm_queue = {}
function AddAlarm(text)
table.insert(alarm_queue, 1, os.date().." "..text)
if #alarm_queue > 50 then
table.remove(alarm_queue, 51)
end
end
5. 调试问题与解决方案
5.1 典型故障排查表
| 故障现象 | 可能原因 | 排查步骤 | 解决方案 |
|---|---|---|---|
| 个别变频器无响应 | 站号冲突 | 1. 检查面板站号 2. 用调试软件扫描 |
重新分配唯一站号 |
| 速度波动大 | 通讯干扰 | 1. 测量总线电压 2. 检查接地 |
加磁环/重做接地 |
| 启动时过载 | 机械阻力大 | 1. 检查传动部件 2. 监控电流曲线 |
调整软启动参数 |
5.2 参数优化经验
-
软启动斜坡时间:
- 空载:300-500ms
- 半载:500-800ms
- 满载:800-1200ms
-
通讯超时设置:
- 重试次数:3次
- 超时时间:500ms
- 间隔时间:100ms
-
速度环PID参数:
- P=50-80%
- I=0.5-1.0s
- D=0(多数场合不需微分)
6. 项目总结与扩展建议
经过三个月运行验证,这套系统相比传统方案展现出明显优势:
- 故障率降低60%
- 工艺调整时间从小时级缩短到分钟级
- 能耗下降15%(优化速度曲线所致)
对于类似项目,我的实操建议是:
- 地址规划要预留20%余量(我们遇到站号不够的情况)
- 关键参数(如通讯超时)要做防呆处理
- 务必进行满载72小时连续运行测试
- 保留10%的PLC内存和触摸屏页面空间用于后期修改
未来可扩展方向:
- 增加OPC UA接口对接MES系统
- 引入振动传感器实现预测性维护
- 开发手机端监控APP(通过4G路由器)