1. 项目背景与需求解析
在工业自动化检测领域,多相机协同工作的视觉检测系统正成为提升生产效率和产品质量的关键装备。这次我们要探讨的是一套基于西门子S7-1200 PLC控制的双相机4轴多工位检测设备,它主要应用于电子元器件的外观缺陷检测和尺寸测量场景。
这类设备通常需要解决几个核心问题:首先是多相机采集的同步性问题,两个工业相机需要在毫秒级误差范围内同时触发;其次是4个运动轴(通常包含XYZR轴)的协调控制,要确保工件在不同检测工位间的精确定位;最后是检测数据与MES系统的实时交互需求。我们选择的S7-1200 PLC,凭借其强大的运动控制功能和PROFINET通信能力,正好能完美应对这些挑战。
2. 硬件系统架构设计
2.1 核心组件选型
这套系统的硬件架构采用分布式IO布局:
- 主控制器:西门子S7-1215C DC/DC/DC(6ES7215-1AG40-0XB0)
- 运动控制:通过TM Pulse 2x24V(6ES7223-1QH32-0XB0)模块驱动4台伺服电机
- 视觉系统:2台Basler ace acA2000-50gc工业相机,通过PROFINET与PLC直连
- 传感器网络:16个OMRON E3Z光电传感器通过ET200SP分布式IO接入
特别说明PLC选型考虑:1215C型号具备4个高速脉冲输出通道(最大100kHz),正好满足4轴控制需求;内置的PROFINET接口可同时连接视觉设备和上位机,省去了额外通信模块的成本。
2.2 电气柜布局要点
在实际安装时有几个关键细节需要注意:
- 动力线与信号线必须分槽走线,建议采用金属隔板物理隔离
- 每台伺服驱动器需单独配置制动电阻,散热间距保持50mm以上
- 相机触发信号线采用双绞屏蔽线(如Belden 8761),屏蔽层单端接地
- PLC的24V电源与伺服系统电源完全隔离,避免干扰
重要提示:视觉系统的供电建议采用医疗级开关电源(如TRACO TXL 100-24),其纹波系数<1%,可显著降低图像采集噪声。
3. 软件功能实现详解
3.1 PLC程序架构设计
采用模块化编程思想,将程序分为以下几个功能块:
- FB1:轴控功能块(基于PLCopen标准)
- FB2:相机触发逻辑块
- FB3:安全互锁管理
- FB4:数据通信处理
关键是如何实现双相机的精准触发。我们在OB35循环中断组织块(周期设置为2ms)中编写以下逻辑:
code复制// 在轴定位到目标位置后触发
IF Axis1.PositionReached AND Axis2.PositionReached THEN
Camera1_Trigger := TRUE;
Camera2_Trigger := TRUE;
Timer1(IN := TRUE, PT := T#50MS);
END_IF
// 复位触发信号
IF Timer1.Q THEN
Camera1_Trigger := FALSE;
Camera2_Trigger := FALSE;
END_IF
3.2 运动控制参数整定
四轴联动的核心是做好加减速曲线规划。以X轴为例,关键参数设置如下:
- 最大速度:300mm/s
- 加速度:500mm/s²
- 加加速度:3000mm/s³
- 反向间隙补偿:0.02mm
在TIA Portal中配置电子齿轮比时要注意:
code复制实际值 = (电机编码器分辨率 × 机械减速比) / (丝杠导程 × 4)
例如使用17位编码器(131072ppr)、1:5减速比、5mm导程丝杠时:
code复制电子齿轮比 = (131072 × 5) / (5 × 4) = 32768
4. 视觉系统集成要点
4.1 相机参数同步设置
通过PROFINET的IRT同步功能,我们实现了两台相机的微秒级同步:
- 在TIA Portal中启用"同步域"功能
- 设置同步主站为PLC,从站为两个相机
- 配置同步周期为1ms(对应PROFINET的SendClock)
相机采集参数需要特别注意:
- 曝光时间 ≤ 运动速度/像素精度
- 例如检测精度要求0.1mm/pixel,运动速度100mm/s时:
最大曝光时间 = 0.1/100 = 1ms
4.2 检测结果处理流程
开发了一个高效的图像处理结果传输方案:
- 相机通过PNIO将检测结果存入PLC的DB块
- PLC通过TSEND_C指令将数据打包发送给上位机
- 关键数据结构设计:
code复制STRUCT
CameraID : INT;
TimeStamp : DTL;
DefectCode : ARRAY[1..5] OF INT;
MeasureValue : REAL;
Confidence : REAL;
END_STRUCT
5. 现场调试经验分享
5.1 运动控制常见问题
遇到过几个典型故障案例:
- 轴抖动问题:最终发现是伺服刚性参数(Pn102)设置过大,从35调整到28后解决
- 原点复归不准:加装绝对值编码器后,改用DSZR指令替代ZRN指令
- 多轴联动不同步:通过激活"虚拟主轴"功能,让X轴作为主轴,其他轴做跟随
5.2 视觉系统调试技巧
总结出几个实用方法:
- 用示波器监控触发信号与曝光信号的时序关系
- 在强光环境下测试时,发现需要增加光学滤光片(推荐Schott BG40)
- 图像传输延迟优化:将PROFINET帧间隔(SendClock)从4ms调整为2ms
特别提醒:在设备验收时一定要做以下测试:
- 连续8小时运行稳定性测试
- 不同光照条件下的检测一致性测试
- 急停恢复后的坐标自修正测试
6. 系统优化与扩展
这套架构还有很大的扩展空间:
- 可增加第三个相机实现立体视觉检测
- 通过OPC UA协议直接对接MES系统
- 加入机器学习算法实现自适应检测
在最近一次升级中,我们通过优化运动轨迹(采用S曲线加减速),使节拍时间从原来的4.2秒缩短到3.5秒,产能提升约20%。具体做法是在TIA Portal的运动控制指令中启用"SCurve"参数,并将加加速度设置为3000mm/s³。