李伟光 许阳钊
(华南理工大学机械与汽车工程学院,广东 广州510640)
气门是汽车发动机关键零部件之一,气门质量的好坏对发动机的性能和寿命有重要的影响。随着汽车行业的迅速发展,对气门品种和数量的需求愈来愈多,同时对气门质量要求也越来越高。
在气门现行生产中,电镦和冲压成型是两道重要工序,电镦加工已经实现自动化和智能化,文献[1]描述了嵌入式智能电镦机的设计,实现了电镦加工自动化。文献[2]开发了基于Vx Works嵌入式的控制系统硬件和软件,改变了传统的依靠现场工人操作水平和经验的控制模式,提高了气门镦件的质量和生产效率。文献[3]设计了气门电镦机的智能控制系统,大大减小了气门电镦生产的废品率,提高了产品质量。但是经过电镦之后的电镦毛坯基本都是通过人工移动到摩擦压力机实现冲压成型的,导致气门质量不稳定和工人劳动强度高。因此,实现电镦毛坯在电镦与冲压两道工序之间的自动定位取放显得尤为重要,不仅把操作工人从繁重、单调的体力劳动中解放出来,改善了操作条件,节约劳动力,而且能够提高气门制造水平、提高生产效率与质量。
本文以PC+运动控制器+PLC构建了一种开放式机器人硬件系统,采用Visual C++开发出具有友好人机界面的开放式搬运机器人控制系统软件。
传统的运动控制模式由于其本身的封闭式结构、控制软件的兼容性差等特性限制,不适合应用在开放式机器人控制系统。结合目前主流的运动控制模式,本文采用PC+运动控制器+PLC的控制模式,利用PC强大的计算能力来对机器人的控制代码进行编译以及执行目标代码,而运动控制器只负责运动轴的控制信号输出以及轴反馈信号处理,PLC主要负责现场数据采集。系统硬件结构图如图1所示。
系统包括伺服驱动模块、运动控制模块、PLC控制模块和人机交互模块。伺服驱动模块实现对气门电镦生产线机器人各个伺服电动机的驱动;运动控制器模块实现信号处理、连接功能和位置插补、速度控制;PLC控制模块采用现场总线协议与其他PLC模块实现数据交互;人机交互模块实现系统的实时监控。
本系统采用位置控制模式,构成半闭环控制系统。PC与运动控制器之间通过PCI总线连接,通过运动控制器与伺服驱动器连接,实现电动机转速、位置信号的输出和编码器位置反馈信号的采集,控制各轴运动。PC通过触摸屏实现与PLC的间接通讯,其中PC与PLC之间通过RS232连接,PLC与触摸屏之间通过RS422连接。系统设有1个主控PLC和若干从属PLC,所有PLC之间通过三菱Fx2n系列PLC的现场总线模块串联后与PC连接实现信息交互。PC通过PLC编程口通信协议查询主PLC的软元件状态,从而获取整个系统内其他PLC的软元件状态,实现系统内设备工况的采集。人机交互系统实现机器人在线监控功能。
软件作为机器人控制系统的重要组成部分,决定了系统的功能和使用的方便性。目前机器人技术的研究已经从硬件过渡到软件[4],因此软件平台的构造至关重要。基于Visual C++具有类结构特征和多线程处理特性等许多优点,适合机器人控制系统软件编程。因此,本系统采用Visual C++编译环境开发应用软件。
根据实际生产要求,本机器人控制系统需具备以下功能:点位控制功能、识别系统内电镦机和摩擦压力机工作状态并协调机器人与其动作配合的功能、对电镦机和摩擦压力机的启停控制功能、对系统内设备的工况信息采集功能、轨迹规划功能及人机交互系统等。
结合系统开放性和可扩展性的要求,采用面向对象的软件开发方法。软件系统的模块化设计,构成了开放式机器人软件系统,实现软件系统的可扩充性、多态性,便于修改。根据系统功能需求分析,对控制系统软件结构进行模块化的规划和优化,将系统功能划分为若干模块,各功能模块既相互独立又能协调工作,系统功能模块划分如图2所示。
依据系统软件功能模块的划分,利用多线程编程技术,完成整个系统软件总体结构的设计,如图3所示。它主要完成系统的初始化、实时状态监测、参数设置、运动控制、PC与PLC通信等任务。
系统在上电后初始化过程中,按照程序功能模块生成多个子线程。主线程在系统上电初始化后便开始自动运行,只有当电源断开后,才停止运行。对于在线监测子线程,它是一个无条件的循环体,从线程生成即开始工作;对于运动控制子线程和PC—PLC通信子线程,它们都是一个有条件的循环体,当条件成立时即能控制该线程的操作,运行相应的子线程,其余子线程则做空循环,而这些使能条件是通过主线程的定时消息处理函数捕获外部输入控制信号实现。
在线监控模块包括在线监测和运动控制两部分,是整个软件系统的核心。
2.4.1 在线监测的实现
在线监测实现了机器人系统状态的实时显示,包括位置速度监测、状态显示和报警错误显示等。
位置速度监测主要处理伺服电动机编码器的反馈信息,对机器人各轴的位置和速度实时显示并更新。利用运动控制器提供的编码器反馈位置计数函数,PC上位机程序可以方便地读取伺服电动机编码器反馈回来的脉冲数,对此脉冲数进行相应的当量换算即可得到位置速度信息。
状态显示主要反应系统内包括机器人、电镦机和冲压机等设备的工作状况。通过PLC输入端采集各设备的开关信号,PC通过PLC编程口通信协议查询PLC的软元件状态,即可实现系统内设备工况的采集。
报警错误显示的主要功能是一旦系统出现故障,能及时反映故障问题便于故障排查和处理。
2.4.2 运动控制的实现
运动控制功能是机器人系统的最核心部分,关系到机器人的运行性能。各轴运动功能控制是由相应子线程调用运动控制器的动态链接库中运动函数,由运动函数调用运动控制器控制程序发出控制指令给运动控制器,从而驱动电动机驱动器和电动机,读取编码器数据和通用IO口,实现运动控制功能。
运动控制主要包括手动控制、自动运行、示教模式、参数设置和系统启停控制等功能。手动控制、自动运行、示教模式具体实现如图4所示。
PC与PLC之间的通信是建立在以RS232标准为基础的异步双向通信上的[5],并通过Visual C++提供的通信控件MSComm建立应用程序与串行端口的联接。MSComm控件屏蔽了通信过程中的底层操作,程序员只需设置和监视MSComm控件的属性和事件,就可以方便地实现串行异步通信。MSComm控件提供了两种处理通信的方式:事件驱动方式和查询方式。本系统采用查询方式对串行通信接收数据进行处理。
FX系列PLC有其特定的通信格式,整个通信系统采用上位机主动的通信方式,PLC内部不需要编写专门的通信程序,只要把数据存放在相应的数据寄存器中即可,每个数据寄存器都有相应的物理通信地址,通信时计算机直接对物理通信地址进行操作。通信过程中,传输字符和命令字以ASCⅡ码为准。计算机与PLC进行通信时,计算机与PLC之间是以帧为单位进行信息交换的,其中控制字ENQ(来自计算机的查询信号)、ACK(无校验错误时,PLC对ENQ的应答信号)、NAK(校验到错误时,PLC对ENQ的应答信号),可以构成单字符帧发送和接收,其余的信息帧发送和接收时都是由字符STX、命令字、数据、字符ETX以及和校验5部分组成,如图5所示。图中:STX:数据块的起始标记;ETX:数据块的结束标志;CMD:命令号码;SUM高位、SUM低位:校验和的高位和低位。
PC机与FX系列PLC之间采用应答方式通信,传输出错则组织重发,其传输过程如图6所示[6]。
PLC根据PC机的命令,在每个循环扫描结束处的END语句后组织自动重发,无需用户在PLC一方编写程序。
以自主研发的五自由度搬运机器人机械本体为测试对象,搭建机器人控制系统的测试平台,测试平台硬件结构图如图1所示。
当系统上电初始化并进行回零操作之后,点击“示教模式”按钮进入示教模式对话框。点动各伺服轴使机器人到达目标位置并将位置信息保存到系统数据库,全部示教点信息的确定即可规划机器人的运动轨迹,如图7所示。
示教完成之后,单击“自动运行”按钮使机器人按照示教轨迹自动运行。机器人各伺服轴信息实时反馈回监控界面,如图8所示。对比图7与图8中数据,可以检验示教过程准确性。
(1)搬运机器人控制系统软件能实现对机器人的手动控制、示教操作及自动运行等各种控制功能,系统运行平稳,已经成功地应用到汽车发动机的气门电镦压力成型生产线工序。
(2)由于系统软件实现模块化,因此能根据不同的应用需求,快速地对系统做相应的添加、删除、修改模块来满足实际需求,以适应不同的应用场合,充分体现了系统的开放性和可扩展性。
[1]陈景郁,吴黎明,孙盼,等.嵌入式电镦智能控制[J].自动化与信息工程,2008,29(4):14—16,40.
[2]吴黎明,李政广,何仲凯,等.基于Vx Works的嵌入式气门电镦机控制系统研制[J].锻压技术,2007,32(4):69—72.
[3]田瑞利,张忠夫,陈健.气门电镦机的智能控制系统[J].现代电子技术,2003(10):16—18.
[4]郭琳,汪苏.基于C#的开放式机器人控制系统软件实现[J].机械工程师,2008(11).
[5]周万里,曾文火.VC环境下三菱PLC与微机的串行通信[J].计算机与信息技术,2005(8).
[6]三菱PLC通信手册.三菱株式会社,2000(3).