基于嵌入式系统和CAN总线的检修机械臂控制系统
扫描二维码
随时随地手机看文章
由于该机械臂的工作环境的特殊性,所以对机械臂整个控制系统的可靠性提出了更高的要求,这就需要良好的硬件电路设计、功能更强大的微处理器和更好的软件实现方法。本文以蒸汽发生器六自由度检修机械臂为应用背景,给出六自由度检修机械臂的硬件体系结构和上下位机软件设计方法。在硬件上采用TI公司的TMS320LF2407处理器作为主控制芯片组成SMC控制器,采用工控机作为监控计算机,SMC控制器与监控计算机用CAN总线连接。监控计算机主要完成机械臂控制算法、数据记录以及实时监控,SMC控制器实现机械臂的控制、传感器数据采集与通讯功能。在软件上,SMC控制器采用μC/OS-II嵌入式实时操作系统,并采用模块化程序设计方法,方便软件系统管理和后续升级,在监控计算机上采用Visual C++与OpenGL设计监控软件。
1 检修机械臂系统描述
机械臂控制系统的组成框图如图1所示。
系统主要由分布在三个区域的装置组成。(1)位于核反应堆厂房外面的集装箱内的配电系统和监控系统;(2)位于蒸汽发生器附近的SMC控制器,最大距离可达到100m;(3)位于蒸汽发生器下封头附近的机械臂本体、检修工具、监控摄像头,其中集装箱与SMC控制器最大距离可达到150m。
下面介绍三部分之间的连接关系及主要功能。
(1)集装箱与SMC控制器:①由集装箱内配电系统向SMC控制器提供220VAC、48VAC等电源输出;②集装箱内监控系统与SMC控制器采用现场总线通讯;③集装箱内监控系统向SMC控制器提供远程复位(Reset)信号;④SMC控制器向集装箱内监控系统提供自身工作状态信号。
(2)SMC控制器与机械臂本体:①SMC控制器向机械臂本体各直流伺服电机分别提供PWM直流伺服驱动信号;②SMC控制器向机械臂本体各旋转变压器提供中频励磁信号;③SMC控制器向机械臂本体安装偏差检测电位器提供激励信号;④R旋转变压器向SMC控制器提供角度反馈信号;⑤偏差检测电位器向SMC控制器提供偏差检测信号。
(3)集装箱与机械臂本体:①由集装箱内配电系统向机械臂本体供应检修工具电源、监控摄像头电源、散热装置电源;②SG附近监控摄像头向集装箱内监控系统提供监控视频。
由于机械臂控制算法计算量大、控制复杂,所以采用上、下位机的分布式控制方法来设计整个控制系统。
2 硬件电路设计
机械臂控制系统有三个主要部件,即工控机、SMC控制器和机械臂本体。工控机主要负责机械臂控制算法、正反解算法、工作状态显示、数据记录以及实时监控,保持与SMC控制器中六个关节控制板的实时通讯;SMC控制器是机械臂的直接控制部件,它接收工控机通过CAN通讯传过来的机械臂角度、速度及加速度信息,对机械臂本体进行相应的控制,同时将机械臂的关节角度及运行状态参数通过CAN通讯传给工控机,机械臂本体接收SMC控制器的指令,并按照指令要求做出机械动作,并将角度信号反馈给SMC控制器。
2.1 SMC控制器硬件电路设计
系统的硬件框图如图2所示。系统处理器采用TI公司的TMS320LF2407,它是TI公司新推出的高性能16位数字信号处理器,是24X家族中的新成员,专门为电极控制与运动控制数字化实现而设计。完全履行CAN2.0规范,支持11位标准和29位扩展标识符,完全能满足系统对电机控制与CAN通讯功能。
(1)为了反馈关节电机的位置,提高控制精度,使系统运行更加平稳,在电机轴上和减速器后分别安装了一只位置检测元件旋转变压器,用旋转变压器-数字转换器(RDC)进行轴角解码,将关节的位置转换成21位的自然二进制码送给DSP,实现位置反馈。
(2)电机选取瑞士MAXON公司的RE系列石墨电刷直流电机,额定电压为24V,电源由一个24V的开关电源提供。电机驱动桥采用SA60脉冲调制型的运算放大器,原理图如图3所示。它能给负载提供10A的连续电流,全桥运放可在较宽的电源电压范围内工作。
(3)关节电机电流检测采用电流霍尔器件,经过运算放大器输入到DSP的A/D转换中,用于检测机械臂关节电机是否过流,由此判断关节电机是否堵转。
2.2 通讯接口设计
CAN总线是一种串行数据通讯协议,通讯速率可达1Mb/s,采用光导纤维作为通讯介质,保证了通讯的速率与可靠性。数据段长度最多为8个字节,可满足一般系统控制命令、工作状态及检测数据通讯的要求。同时8个字节不会占用总线时间过长、保证了通讯的可靠性。根据整个机械臂控制系统的特点,把工控机设为主控节点,负责与机械臂关节控制节点之间的通讯,对关节控制节点进行统一管理。
工控机与机械臂关节控制节点之间采用问答式的通讯方式,工控机将计算的各关节角度传给关节控制板,之后控制板将机械臂各关节的角度信息传给工控机,数据交换完毕后控制板根据收到的角度信息控制机械臂。工控机与关节控制板之间每隔0.1s交换一次数据,工控机每次都根据收到的角度信息进行正反解计算。
(1)CAN总线驱动器采用PCA82C250,它是协议控制器和物理总线之间的接口,该器件对总线提供差动发送能力并对CAN控制器提供差动额接收能力,原理图如图4所示。CAN总线与DSP接口电路图如图5所示。
(2)工控机与DSP板的CAN通讯采用CAN接口卡PCI-5110,其作用是给计算机增加CAN-Bus现场总线接口功能。
3 软件系统设计
机械臂控制系统的软件设计包括两部分:下位机SMC控制器的控制软件设计和上位机监控软件设计。
3.1 下位机软件设计
μC/OS-II是专门为微处理器设计的一种抢占式实时多任务操作系统,与传统的DSP系统开发相比,其利用多任务管理、任务间同步与通信等特点,可以在一定程度上提高系统的可靠性和实时性,满足机械臂控制系统对位置信息采集、CAN通讯以及电流采集的实时性要求。
软件以TMS320LF2407的T0定时器作为操作系统的时钟中断源,中断周期为1ms。创建位置环任务、速度环任务、A/D转换任务、CAN通讯任务和角度采集,根据机械臂系统的工作特性和功能要求,系统任务划分如图6所示。系统任务间的通信和同步用到的系统服务有消息邮箱和信号量。信号量用于控制共享资源的使用权及激发其他任务的产生,消息邮箱用于通知任务的产生;本系统中的任务分为三种:定时产生的任务,由其他任务激活而不需要等待的任务,由中断触发产生的任务。图6同时也反映本系统任务调度情况。
控制器由串联的三个环构成,其中包括两个模拟内环(电流环,速度环)和一个控制环。
控制算法综合采用积分PID控制算法和带死区PID控制算法:积分分离PID控制算法既能保证系统有较快的响应速度,又有较高的控制精度;带死区PID控制可使机械装置运动到位后,控制作用不会频繁变动,避免不必要的机械磨损。这两种控制算法鲁棒性好、可靠性高、算法简单,能满足系统的控制要求。
3.3 系统main函数结构框架
在主函数中用OSTaskCreate( )函数建立初始化任务Task Init( ),初始化任务中建立一系列的信号量和邮箱,唤醒时钟中断任务。建立置环任务、速度环任务、电流环任务、A/D转换任务、CAN通讯任务和角度采集等任务。在μC/OS-II实时内核下整个程序的结构框架如下:
Viod main(void) //主函数
{
硬件初始化;
OSInit(); //内核的初始化
调用OSTaskCreate( )创建初始化任务Task Init( );
OSStart( ); //开始多任务调度
}
Viod TaskInit(void * data) //任务初始化
{
硬件时钟初始化;
创建用户任务;
定时检查系统的状态;
定时复位看门狗;
}
ISR//中断服务程序
{
保存处理器寄存器的值;
OSIntEnter( );
执行中断函数;
OSIntExit( );
恢复处理器寄存器的值;
中断返回;
}
3.4 工控机监控软件设计
监控软件功能模式分为安装、工作、调试模式。工作、安装模式分为实和虚两种模式。工作过程是指机械臂脚趾已经插到管板孔中并胀紧、机械臂处于倒挂状态后,完成堵管和其他检测的工作过程。安装过程是指机械臂进入人孔,其四个脚趾安装到管板孔并胀紧的过程。虚模式是计算机三维仿真,不控制实际的机械臂。实模式给控制器发各种数据和信息,通过控制器对机械臂的运动和操作进行控制,实际机械臂的位置和姿态与三维仿真保持一致。
监控软件按功能划分为五大模块:操作界面设计、轨迹规划与运动控制设计、任务管理模块设计、三维运动仿真模块设计和系统维护与故障诊断模块设计。软件功能结构如图8所示。
为满足系统的控制与仿真功能,采用基于单文档的OpenGL应用程序实现该监控软件。
监控软件的主要功能如下:
(1)主功能菜单:包括模式选择、作业方式选择、安装工作、检修工作选择等。
(2)参数设置:CAN通讯设置、机械臂PID控制参数设置等。
(3)机械臂信息显示:各关节位置姿态信息、CAN通讯状态、传感器工作状态、关节控制电机电流等。
(4)机械臂控制:JOG单关节控制、JOY六关节联动控制、自动运行控制、关节封锁控制等。
(5)记录模式及数据分析:检修路径选择和记录,路径优化等。
本文以实际工程实践中的蒸汽发生器六自由度检修机械臂为研究对象,通过大量的理论研究和实际调试试验,设计了一套完整的机械臂控制系统。整套系统的控制精度、可靠性及动/静态特性等均能达到技术要求,可以很好地完成技术要求中的各项功能,并应用到实际工作中。