1. 项目背景与需求分析
去年接手了一个工业自动化改造项目,客户是华东地区一家大型电子制造企业,需要将老式半自动贴膜机升级为全自动产线。作为主控设备,我们选用了西门子S7-1200系列PLC(具体型号为1214C DC/DC/DC),搭配KTP700 Basic触摸屏组成控制核心。这个配置在中小型自动化设备中非常典型——S7-1200的性价比优势明显,而KTP700的7寸屏足以满足大多数HMI需求。
贴膜机的核心工艺要求可以概括为"三准":定位准(±0.5mm)、温度准(±2℃)、压力准(±5N)。要实现这些指标,需要解决几个关键技术点:
- 伺服电机的高精度位置控制(我们选用安川Σ-7系列)
- 热压头的PID温度调节
- 气动元件的压力闭环控制
- 视觉定位系统的触发同步
2. 硬件配置与网络拓扑
2.1 主要硬件清单
| 设备类型 | 型号规格 | 数量 | 通讯方式 |
|---|---|---|---|
| PLC主机 | S7-1214C DC/DC/DC | 1 | PROFINET |
| HMI | KTP700 Basic PN | 1 | PROFINET |
| 伺服驱动器 | 安川SGD7S-180A25A | 2 | 脉冲+方向 |
| 温控模块 | SM1231 RTD | 1 | 模拟量输入 |
| 气动比例阀 | SMC ITV2050-212N | 1 | 模拟量输出 |
| 工业相机 | Basler ace acA2000-50gc | 1 | Ethernet/IP |
2.2 网络架构设计
采用典型的PROFINET环网结构:
code复制[PLC]---[HMI]---[交换机]---[相机]
|________[伺服驱动器1]
|________[伺服驱动器2]
这里有个关键细节:PROFINET的设备名称必须与TIA Portal中的配置完全一致,否则会出现"IO设备不可达"的故障。我们采用以下命名规范:
- PLC:PLC_贴膜机_01
- HMI:HMI_贴膜机_01
- 相机:VISION_01
3. 软件环境搭建
3.1 TIA Portal V14 SP1的特别配置
虽然现在V17/V18已经普及,但客户现场仍在使用V14,需要注意:
- 必须安装Update 6补丁包,否则KTP700的ProSave备份功能会异常
- 需要单独安装"S7-1200 Motion Control"选件包
- 对于中文项目,务必在创建项目时选择"中文(简体)"字符集
3.2 关键软件组件
pascal复制// PLC程序结构示例
ORGANIZATION_BLOCK "Main"
// 主循环
NETWORK
TITLE = '初始化检查'
// 初始化代码...
END_ORGANIZATION_BLOCK
FUNCTION_BLOCK "FB_MotionCtrl"
// 运动控制功能块
VAR_INPUT
AxisNo : INT;
END_VAR
// 具体实现...
END_FUNCTION_BLOCK
4. 核心控制逻辑实现
4.1 伺服轴控制方案
采用西门子标准运动控制指令:
- 使用MC_Power指令使能轴
- MC_MoveAbsolute实现绝对位置定位
- MC_MoveVelocity用于调试时的点动操作
关键参数设置:
pascal复制// 轴参数配置
#Axis1.Config.Dynamics.MaxVelocity := 500.0; // mm/s
#Axis1.Config.Dynamics.MaxAcceleration := 3000.0; // mm/s²
#Axis1.Config.Hardware.LimitSwitches.Activate := TRUE;
4.2 温度PID控制
使用西门子PID_Compact指令块,参数整定步骤:
- 先设置P=1.0,I=0,D=0,观察系统响应
- 逐步增加P值直到出现小幅振荡
- 取振荡时P值的60%作为最终P值
- 加入积分时间,通常设为振荡周期的1/2
重要提示:SM1231 RTD模块需要设置滤波参数,建议将通道0-3的滤波等级设为3(中等级别)
5. HMI界面设计要点
5.1 KTP700画面布局规范
- 主画面:设备状态总览+产量计数
- 参数设置:分三级密码权限
- 报警页面:按优先级分组显示
- 维护模式:隐藏式入口(同时按住右下角3秒)
5.2 脚本应用实例
pascal复制// 按钮按下事件脚本
IF "System".CurrentUserLevel >= 2 THEN
"Recipe".SelectRecipe(1);
SetTag("RecipeLoaded", TRUE);
ELSE
ShowAlarm("权限不足");
END_IF
6. 调试中的典型问题
6.1 伺服使能异常
症状:MC_Power指令的Status报16#8001错误
排查步骤:
- 检查驱动器显示代码(安川显示A.xx)
- 确认急停回路导通
- 测量24V电源稳定性
- 检查PROFIdrive报文配置
6.2 触摸屏通讯中断
常见原因:
- IP地址冲突(建议使用192.168.0.x网段)
- PG/PC接口设置错误
- 防火墙拦截了S7通信
7. 完整代码结构
7.1 PLC程序框架
code复制Project_贴膜机
├── PLC_1
│ ├── Program blocks
│ │ ├── OB1 : 主循环
│ │ ├── FB1 : 运动控制
│ │ ├── FB2 : 温度PID
│ │ └── DB1 : 全局数据
│ └── Technology objects
│ ├── TO1 : X轴
│ └── TO2 : Y轴
└── HMI_1
├── 画面
└── 报警文本
7.2 关键功能块代码
pascal复制// 贴膜位置计算功能块
FUNCTION "FB_CalculatePosition" : VOID
VAR_INPUT
ProductType : INT;
CameraOffset : REAL;
END_VAR
VAR_OUTPUT
TargetPos : REAL;
END_VAR
BEGIN
CASE ProductType OF
1: TargetPos := 50.0 + CameraOffset;
2: TargetPos := 75.5 + CameraOffset;
ELSE TargetPos := 0.0;
END_CASE;
END_FUNCTION
8. 项目交付注意事项
-
必须包含的文档清单:
- 电气图纸(PDF+DWG格式)
- IO表(Excel格式)
- 设备参数备份(.zap15文件)
- PLC程序注释版(.ap15文件)
-
现场培训要点:
- 急停回路测试方法
- 配方导入导出操作
- 报警历史查询方式
-
维护建议:
- 每月备份HMI配方数据
- 每季度检查PLC电池状态
- 每年更新TIA Portal授权
这个项目让我深刻体会到,工业自动化不是简单的编程问题,而是机械、电气、软件的综合艺术。比如在调试阶段,我们发现贴膜气泡问题最终是机械平行度导致的,通过PLC增加预压延时才解决。建议新手工程师一定要多下车间,纸上谈兵永远搞不定真正的产线问题。
