梁广瑞,莫胜憾,喻宁娜
(广西机电职业技术学院,广西南宁530007)
目前焊缝激光视觉跟踪系统在焊接自动化中的应用越来越广泛,焊机安装焊缝跟踪系统可以在焊接过程中使焊枪自动对中焊缝,保证焊接质量,从而减少焊接工人或减轻劳动强度。由于焊缝激光视觉跟踪系统进行图像处理与识别时计算量很大,一般将识别出来的位置偏差信号传送给下位电机控制器来控制电机运行以完成跟踪过程。由于焊接现场环境恶劣,常采用PLC作为下位电机控制器。为了降低设备成本,更好地推广焊缝激光视觉跟踪系统,采用Stm32微处理器设计了3轴步进电机控制器取代原PLC的方案。经现场使用一年多来,系统运行稳定可靠,效果良好。
系统跟踪系统如图1所示,由埋弧焊机小车、激光视觉系统、步进电机控制器、步进电机及其驱动器、光电编码器、十字导轨、焊枪等组成。
激光视觉系统将激光投射到工件上,通过采集形成表征焊缝三维位置的图像并进行实时图像处理,识别出焊缝在水平位置和高度位置的偏差信息,通过PC机的串口发送给步进电机控制器,由步进电机控制器完成纠偏控制算法,最后输出脉冲信号给步进电机驱动器,步进电机在驱动信号作用下带动焊枪在十字型导轨机构的水平方向和高度方向上移动,实现焊缝实时跟踪。埋弧焊小车的前进由独立的直流电机进行调速控制,同时决定了焊接速度。由于在不同情况或工艺要求下焊接速度不同,会影响纠偏控制参数,为了实现控制参数的自调整,通过光电编码器检测小车速度并反馈至步进电机控制器。另外在焊接过程中,通常需要焊枪在焊缝中心位置左右微摆以改善焊缝成形,这种焊枪的左右摆动也通过步进电机控制器提供控制信号。
从以上分析看出,步进电机控制器需要三路脉冲信号控制三个轴:一路根据焊缝水平位置的偏差控制焊枪的左右移动,一路根据高度位置的偏差控制焊枪的上下移动,最后一路控制焊枪摆动的宽度和速度。
图1 埋弧焊焊缝跟踪系统
步进电机控制器选用基于ARM Cortex-M3内核的Stm32系列32位微控制器,该芯片运行速度快,外设功能齐全,7个TM最多可以产生28个精准的PWM信号,特别适合用于电机控制领域。本控制器主要由主控芯片最小系统、电源模块、串口通信模块、输入输出模块组成,主控芯片最小系统直接按芯片手册提供图纸设计,其余各模块原理分别如图2所示。硬件设计的主要任务是提供完成逻辑功能的硬件模块并保证系统的可靠性、抗干扰性。整个控制器由24 V开关电源供电,控制器的电源模块使用了抑制串模和共模干扰的电源滤波器,通过AP1501-50和LM1117s电源芯片将24 V转换成5 V和3.3 V电压进行板级供电,输入端口使用光电隔离技术,输出端口使用高耐压、大电流复合晶体管阵列ULN2003芯片。输出使用了PA端口,其中PA1、PA6、PA8为PWM功能映射到端口的引脚,PA2、PA3、PA4为旋转方向信号输出引脚。输入信号通过光隔PC817进行光电隔离后进入PB端口,输入信号主要有3个轴的6个限位信号、小车前进的速度编码信号,图2的输入部分只画出了一路的电气原理图,其他输入通道采用同样原理。
图2 步进电机控制器硬件原理
为了提高系统响应的实时性和程序开发效率,使用μC/OS-Ⅱ嵌入式多任务实时操作系统进行开发。该操作系统2000年就得到了美国联邦航空管理局用于商用飞机的、符合RTCA DO-178B标准的认证,证明其具有足够的稳定性和安全性[3]。使用操作系统可以仿制出“多CPU”环境,使得每个任务都觉得自己拥有独立的CPU。这样一来,任务的程序设计就可以得到简化,每个任务只需要考虑自己的执行流程即可,一个繁杂的多功能系统就可以分解为多个简单的任务,从而降低了程序设计的难度,同时也提高了程序设计的效率与可靠性[4]。
基于实时操作系统应用软件设计的关键就是任务划分。根据对控制器控制要求的分析以及任务的同步性、设备依赖性、紧迫性、功能聚合等特点将软件功能分为四个主要任务,优先级由高到低为:手动调整焊枪位置任务、纠偏算法控制任务、通信协议任务、焊枪摆动任务。其中纠偏算法控制任务是关键性任务,水平方向和高度方向的纠偏都在一个采样周期中处理,具有同步性,故都整合到纠偏算法控制任务;通信协议任务接收到位置偏差之后触发纠偏算法控制任务执行。手动调整焊枪位置任务的执行与纠偏算法控制任务互斥,当在自动跟踪焊接过程中不会触发,故不妨将其列为最高优先级。
激光视觉系统与运动控制器之间的通信采用自定义协议。通信的内容主要有:激光视觉系统传递给运动控制器的位置偏差信号;激光视觉系统作为人机操作界面发送给运动控制器的手动操作、自动跟踪命令信号;运动控制器反馈给激光视觉系统的运行状态信号等。每帧数据统一为5个字节,协议格式如表1所示。
表1 协议格式
如数据帧01H 23H F8 38H B2H,01表示本帧数据为位置偏差数据,其中水平方向正偏差23H个单位,高度方向负偏差8个单位(补码),后两个字节为CRC校验码。通信协议功能的实现由串口中断和协议解析两部分组成,串口接收到5个字节数据之后,给通信协议发信号,任务获得CPU运行权利之后解析数据帧,根据命令执行动作。通信协议任务流程如图3所示。
焊接过程中,焊枪会在水平方向和高度方向偏离焊缝中心,焊枪需要在水平和高度两个方向上进行纠偏,实现焊缝自动跟踪。两个偏差信号是激光视觉系统同时发送给运动控制器的,并且在一个控制周期内同时进行纠偏,因此两个方向上的纠偏算法统一使用一个任务完成。接收到偏差信号后,触发该任务执行,任务流程如图4所示。手动任务主要根据上位机发送来的运动指令产生相应的PWM和方向信号调整焊枪位置,任务流程如图5所示。
由于激光传感器前置,焊缝中心检测位置超前焊枪较大距离,为解决这个问题,水平方向纠偏算法采用轨迹斜率PD控制[1],控制算法为
式中 u(n)为当前输出量;k(n)和k(n-1)分别为当前和前一次的焊缝斜率;Kp为比例增益;Kd为微分增益。PD控制参数采用试验方法进行整定,整定结果为 Kp=120,Kd=55。
图3 通信协议任务流程
图4 纠偏算法控制任务流程
图5 手动控制任务流程
在高度方向上,激光视觉系统通过分析图像中焊缝三维位置信息来计算高度位置变化,与水平方向跟踪相比,无需延时。焊接过程中的高度变化具有非线性、时变和不确定性,因此采用专家PID控制算法来实现。通过PID机理分析及现场试验,总结出以下四条规则,控制算法如下[4]:
(2)当 e(k)Δe(k)>0 或 Δe(k)=0 时,表明误差在向误差绝对值增大方向变化,或误差为一常量。此时,如果,表明误差较大,给控制器实施较强的控制作用,控制器输出为:
(3)当 e(k)Δe(k)<0,表明误差的绝对值向减少方向变化,此时保持控制器输出不变。
以上各式中,e(k)、e(k-1)、e(k-2)分别为当前误差、前一次误差、前两次误差;u(k)、u(k-1)分别为当前控制器输出和前一次输出;k1为增益放大系数,k1>1;KΦ为与小车前进速度相关的系数,速度越快,该系数越大。
焊接过程中,焊枪在焊缝中心的左右摆动及摆动速度影响焊接效果。如果启动焊枪摆动功能,则会激活焊枪摆动任务。在实际运行中,如果摆动速度较快,会出现步进电机丢步现象,因此在焊枪摆动的中心处安装有光电对射传感器检测焊枪何时摆动到中间位置,作为脉冲校准。焊枪摆动任务流程如图6所示。
图6 焊枪摆动任务流程
基于stm32微控制器的步进电机控制器成本低、硬件电路简单,经过一年多在不同焊接环境中运行,性能稳定可靠,满足生产要求,降低了设备成本,有利于进一步推广焊缝跟踪系统的应用。
[1]莫胜憾,喻宁娜,钟义广,等.PLC在埋弧焊焊缝激光视觉跟踪系统中的应用[J].焊接,2009(9):55-58.
[2]莫胜憾,喻宁娜,钟义广,等.塔吊臂架角钢外角接焊缝跟踪系统[J].电焊机,2009,39(9):29-33.
[3]Jean J.Labrosse.嵌入式实时操作系统 μC/OS-Ⅱ(第二版)[M].邵贝贝,译.北京:北京航空航天大学出版社,2003:1-3.
[4]周航慈.基于嵌入式实时操作系统的程序设计技术(第二版)[M].北京:北京航空航天大学出版社,2011:21-38.
[5]刘金琨.智能控制[M].北京:电子工业出版社,2005:12-17.
[6]李伯成.嵌入式系统可靠性设计[M].北京:电子工业出版社,2006:98-101.