1. 项目概述与硬件配置
这个全自动液压机控制系统采用欧姆龙CP1H-XA作为主控制器,搭配威纶通MT8102iE触摸屏作为人机交互界面。这套组合在工业自动化领域堪称经典配置,即使在三年后的今天依然具备很强的实用性。
CP1H-XA作为欧姆龙CP1系列中的高端型号,具备以下关键特性:
- 内置4轴100kHz脉冲输出,可直接驱动伺服系统
- 自带4路模拟量输入和2路模拟量输出
- 支持RS232C/485通信端口
- 最大可扩展7个I/O模块
项目中用到的关键外设包括:
- 松下A6系列伺服驱动器×4(对应X/Y/Z/R四个轴)
- 三菱RV系列工业机械手
- 4-20mA压力传感器(量程0-25MPa)
- 各类安全门限位开关和光电传感器
2. 伺服控制系统实现
2.1 脉冲输出配置
CP1H-XA本体提供4路独立脉冲输出(脉冲+方向信号),通过PULS和ORG指令实现伺服控制。关键参数设置如下:
plaintext复制脉冲输出模式:CW/CCW(正反转脉冲)
脉冲频率:100kHz(对应最高机械速度)
加减速时间:200ms(防止机械冲击)
2.2 原点回归逻辑优化
液压设备的机械结构特性带来了特殊的调试挑战:
ladder复制MOV #8000 D100 // 原点回归速度设置
PULS(886) #0 // 脉冲输出通道0复位
ORG(889) #0 D100 // 执行原点搜索
实际调试中发现两个关键问题:
- 机械振动导致近点信号误触发
- 液压缸存在死区,需要精确计算减速距离
解决方案:
- 在近点信号输入回路增加10ms数字滤波
- 通过实验确定最佳减速距离参数
- 增加原点搜索超时报警(30秒)
3. 模拟量处理与压力控制
3.1 模拟量输入配置
CP1H-XA自带模拟量输入特性:
- 分辨率:1/12000
- 采样周期:1ms/通道
- 输入类型:4-20mA(对应0-25MPa)
压力传感器的标定采用动态算法:
st复制IF AutoCalibFlag THEN
CurrentRaw := AIN(0);
ZeroPoint := CurrentRaw * 0.2 + ZeroPoint * 0.8; // 滑动平均滤波
ScaleFactor := (CurrentPressure - LastPressure)/(CurrentRaw - LastRaw);
END_IF;
3.2 压力控制PID实现
采用ST语言实现的比例微分先行算法:
st复制// PID参数
Kp := 0.8; // 比例增益
Td := 0.1; // 微分时间
Ti := 2.0; // 积分时间
// 控制算法
Error := SetPoint - ProcessValue;
DOut := Kp * Td * (Error - LastError)/Ts;
POut := Kp * Error;
IOut := IOut + Kp * Error * Ts / Ti;
Output := POut + IOut + DOut;
调试中发现的问题及解决:
- 油温变化导致零点漂移 → 增加手动校准功能
- DA输出抖动 → 输出端增加RC滤波(R=1kΩ,C=0.1μF)
4. 机械手通信控制
4.1 通信协议配置
三菱机械手采用MC协议通信:
- 波特率:19200bps
- 数据位:7位
- 停止位:1位
- 校验:偶校验
通信帧格式示例:
plaintext复制STX #01RCSR ETX
4.2 通信异常处理
CP1H的无协议通信关键设置:
ladder复制MOV "STX" D200
MOV "#01RCSR" D201 // 读取运行状态指令
MOV "ETX" D202
TXD(256) D200 K13 // 发送13字节数据
通信稳定性优化措施:
- 增加300ms指令间隔
- 实现超时重试机制(3次)
- 添加结束符判断逻辑
- 触摸屏增加通信状态指示灯
5. 触摸屏功能实现
5.1 OEE统计功能
设备综合效率(OEE)计算公式:
code复制OEE = 可用率 × 性能率 × 合格率
数据存储方案:
- PLC的D区存储原始数据
- 每日0点自动生成CSV文件
- 文件命名规则:YYYYMMDD.csv
宏指令实现:
vb复制FileName = "Log/"+FormatDateTime(Now, "yyyymmdd")+".csv"
WriteData(FileName, "产量,A班次,B班次,故障时间", 0)
5.2 故障记录系统
报警信息存储结构:
- 循环队列存储(50条记录)
- 每条记录包含:
- 时间戳
- 报警代码
- 设备状态快照
报警代码表示例:
plaintext复制// D1000报警代码映射表
// 1: 前安全门未闭合 检查SQ12
// 2: 液压压力超差 查看PV201设定值
// 3: 机器人超时 确认机械手通讯线
6. 程序架构设计
6.1 ST与梯形图混合编程
最佳实践:
- 运动控制 → 梯形图(直观易调试)
- 数据处理 → ST语言(表达力强)
- 算法实现 → ST函数(可重用)
混合编程示例:
ladder复制CALL ST_PressureCtrl // 调用ST编写的压力控制函数
MOV &D300 D100 // 将结果传送到输出通道
6.2 内存规划策略
CP1H-XA内存分区建议:
- D0-D199:系统参数
- D200-D499:通信数据区
- D500-D999:工艺参数
- D1000-D1499:报警记录区
- D1500-:临时变量区
7. 调试经验与技巧
7.1 伺服系统调试要点
-
刚性调整:
- 先设置为最低刚性
- 逐步提高直到无振动
- 最终值留10%余量
-
惯量比检测:
- 理想值:3-5倍
- 超过10倍需加减速机
7.2 通信故障排查流程
- 检查物理连接(线缆、终端电阻)
- 确认波特率等参数一致
- 使用串口助手监控原始数据
- 检查协议格式(结束符、校验等)
- 分析超时设置是否合理
7.3 抗干扰措施
-
信号线:
- 使用双绞屏蔽线
- 单端接地
- 远离动力线30cm以上
-
电源:
- 加装隔离变压器
- 使用滤波器
- 做好接地(接地电阻<4Ω)
8. 项目维护与升级
8.1 程序注释规范
优秀注释应包含:
- 功能说明(做什么)
- 参数说明(单位、范围)
- 修改记录(日期、作者、变更内容)
- 相关设备(连接的I/O点)
8.2 功能扩展建议
-
MES接口:
- 采用OPC UA协议
- 数据项包括:
- 设备状态
- 产量数据
- 质量参数
-
预测性维护:
- 采集液压油温
- 记录压力波动
- 设置趋势报警
这套系统经过三年运行验证,其稳定性和扩展性得到了充分证明。特别是在程序规范性方面的投入,使得后期维护和功能扩展变得非常高效。对于自动化工程师来说,这种经典架构的设计思路和实现细节,仍然具有很高的参考价值。