飞锯追剪程序,PLC和触摸屏采用西门子200smart,包含图纸,触摸屏程序和PLC程序。
先说核心逻辑:传送带上的钢材匀速前进,飞锯得算准时机冲过去完成切割,还得同步退回原位。这里最要命的不是PLC性能,是各个传感器信号的配合精度。我们现场用了个土办法——在传送带主轴装了个600P/R的编码器,硬是把分辨率干到了0.1mm。
飞锯追剪程序,PLC和触摸屏采用西门子200smart,包含图纸,触摸屏程序和PLC程序。
硬件接线这块有个坑得注意:高速计数器必须接在I0.0到I0.5这几个特定端口。当时新手电工把编码器A相接在I0.6上,死活采不到脉冲,折腾了一下午才反应过来。正确的接线姿势应该这样:
// HSC1初始化 MOVB 16#F8, SMB37 // 允许计数,正交模式 HDEF 1, 9 // 模式9:AB相正交x4 HSC 1 // 激活计数器程序结构用到了中断队列。这里有个骚操作:用定时中断做动态修正,比单纯用高速计数器中断更稳。特别是传送带突然变速时,这套逻辑能有效防止追剪飞车:
// 中断程序_0 LD SM0.0 MOVD HC1, VD100 // 获取当前计数值 DTCH 10 // 先断开定时中断 MOVD VD204, VD208 // 动态调整周期值 ATCH INT_0:INT0, 10 // 重新连接中断 ENI // 全局中断使能触摸屏上的速度补偿参数设置是关键。很多同行喜欢用浮点数,其实用定点数更省事。比如把0.1%精度转换成0-1000的整数范围,既能避免浮点运算的开销,又能防止手抖输错小数点位:
// 触摸屏输入处理 LD SM0.0 ITD VW10, VD200 // 将输入的整数值转双整 DTR VD200, VD204 // 转换为实数 /R 1000.0, VD204 // 换算为0.0-1.0范围系数调试时发现个邪门现象:每次切刀动作后,编码器计数值会漂移0.5mm左右。后来在硬件组态里启用了信号滤波器,把数字量输入的延迟调到1.2ms才解决。这年头,干扰比BUG还难找。
整套程序最精髓的是位置预测算法部分。没有上复杂的PID,而是用了个滑动窗口平均值:
// 位置预测计算 LD SM0.0 FIFO VD300, VD400, 4 // 滑动窗口存入队列 +R VD400, VD404 // 四组数据累加 +R VD408, VD404 +R VD412, VD404 /R 4.0, VD404 // 求平均速度 MOVR VD404, VD416 // 存入预测值最后说说安全逻辑。急停信号必须同时切断切刀气源和传送带电机,这里用了双回路设计。别信PLC的输出继电器,我们在输出端额外加了物理互锁:
// 急停处理 LD I1.0 // 急停按钮 O Q1.0 // 故障信号 AN M1.0 // 互锁确认 = L0.0 LD L0.0 S Q0.0, 1 // 切断主电源 R Q0.1, 1 // 释放气动阀这套系统调通后实测精度能稳定在±0.3mm,关键是所有异常状态都做了可视化处理。触摸屏上加了实时波形图,能同时显示设定位置和实际追踪曲线——这招让验收时甲方直接竖起大拇指。