最新新闻
我要投稿
联系电话:027-87592219/20/21转188
投稿邮箱:tb@e-works.net.cn
您所在的位置:首页 > 智库 > 智能生产

基于PMAC的活塞车床开放式数控系统

发布时间:2006-09-18 作者:张冰蔚,黄彬,王佳  来源:《机电一体化》
文章简要介绍了多轴运动控制器PMAC的结构及功能,设计了由直线电机驱动的轴进给机构,并在此基础上重点论述了基于IPC+PMAC的活塞车床数控系统的硬件和软件设计。

    引言
   
    随着汽车、航空和船舶工业的飞速发展,对发动机的性能要求不断提高,中高速发动机的关键部件活塞经常被设计成非圆截面(中凸变椭圆)。目前,同内外活塞制造主要采用硬靠模,这种加工方法不利于多品种、小批量特种环的生产和新产品的研究与开发。活塞的“软靠模”技术就是把活塞的横截面形状或数据输入计算机,再由计算机控制刀具运动,完成活塞变椭圆截面的车削加工。它不仅能切削各种复杂的截面形状,而且具有切削效率高、加工精度高、柔性好等优点。活塞中凸变椭圆数控车削时,X轴进给机构的性能和控制方法决定了加T精度和表面质量,因而对机床进给系统的伺服性能提出了更高的要求:要有很高的驱动推力、快速进给速度和进给加速度。对于一般数控机床,由于受到传统机械结构(即旋转电动机+滚珠丝杠)进给方式的限制,其有关伺服性能指标(特别是快速响应性)难以突破提高。而直线电机驱动机构作为一种新的高速进给方式能提供120—200m/min的速度和5~10g的加速度。进给机构由直线电机直接驱动,消除了中间环节的机械滞后及螺距误差,其运动精度取决于反馈装置、控制系统和直线导轨,从而可达到很高的精度。
   
    1、数控活塞车床X轴进给机构结构及原理
   
    本文将直线电机作为X轴进给驱动部件,设计的数控车床X轴进给机构结构如图1所示。直线电机对称立式安装,滑台和简易刀架采用轻质高强度合金材料,优化的结构设计尽可能减小滑台质量以提高进给系统的快速响应性能和加速度,导轨采用直线滚动导轨。进给系统行程限位采用接近开关和弹簧空气阻尼式机械挡块二级安全过冲防护,以确保滑台不会因为误操作而冲出导轨。光栅位置反馈装置位于滑台内部,以免受到外界油污和铁屑污染。系统具有全封闭防护结构和由内向外的吹风冷却功能(图1中未表示)。由于采用无铁芯动子(初级)结构,发热量小,散热容易,这使得加工中受热变形的影响小。整个活塞车床的结构如图2所示。


图1 活塞车床的X轴进给机构结构


图2 活塞车床整体结构图

    2、活塞车床数控系统设计
   
    已成为数控系统发展趋势的开放式数控系统是计算机硬件技术、信息技术、控制技术融人数控技术的产物,它具有强大的适应性和灵活配置能力,能适应各种数控设备,可灵活配置,随意集成。该系统遵循统一的标准体系结构规范,模块之问具有兼容性,部件具有互换性和互操作性。目前的开放式数控系统主要有以下3种结构:
   
    (1) PC机+数控专用模块
   
    即在Pc机上嵌入数控专用模板。这种数控系统的开放性只限于PC微机部分,其专业的数控部分仍处于封闭状态。
   
    (2) PC机+可编程运动控制器
   
    这种基于开放式可编程运动控制器的系统结构以通用微机为平台,以PC机标准插件形式的可编程运动控制器为控制核心,双CPU并行通信,是一种便于开发的全方位开放式体系结构。
   
    (3) 纯PC机

    即完全采用PC机的全软件形式的数控系统。这类系统由于受到PC机实时性的限制,目前正处于探索阶段。
   
    本数控系统采用的是第二种方式,即IPC十PMAC(programmable multi-axes controller)的开放式结构体系,系统运行速度快、控制精度高、开发周期短。数控系统软件采用VC+6.0开发,使用美国Delta Tau公司提供的动态链接库PComm32。
   
    2.1 数控系统硬件设计
   
    本系统硬件结构如图3所示。工控机采用研祥的PCl04/PⅢ800型嵌入式: 控机,主板上配有104总线接口。运动控制卡采用美国Delta Tau公司的PMAC2/PC104型控制卡,可以直接和104总线接口的工控机相连。PMAC的核心是MOTOROLA的DSP56001/56002数字信号处理器,可同时控制1~8个轴,既可单独执行存储于其内部的程序,也可执行运动程序和PLC程序,并进行伺服环更新及以串口、总线两种方式与上位机进行通信。PMAC还可自动对任务优先级进行判别,从而进行实时多任务处理。由于PMAC卡具有强大的数字运算能力来完成数控捅补、PLC程序运行等实时任务,简化了实现数控系统实时性任务的开发T作,只需根据要求开发上位机界面、NC程序编辑、机床状态量读取等非实时任务。工控机和PMAC之间通过104总线通信,只需通过调用动态链接库PComm32就可实现两者间的实时通信。


图3 数控系统硬件结构

    2.2 数控系统软件设计
   
    活塞车床数控系统的软件采用模块化没计,用面向对象的高级语言VC++ 6.0编写,通过PMAC提供的动态链接库管理实时运动程序。系统软件主要包括上位机人机界面、上下位机通信程序和PLC程序等几部分。软件的结构如图4所示。上位机人机界面为用户提供一个系统操作界面,在此界面下,系统的各功能模块以菜单和对话框的形式被调用。PLC控制程序用于机床系统开关量的逻辑控制。动态链接库PComm32提供函数同底层的虚拟设备驱动程序进行数据交换,然后由虚拟设备驱动程序直接和PMAC交换数据。


图4 数控系统软件结构

    (1) 人机界面程序编制
   
    数控活塞车床的上位人机界面程序主要是将数控系统的操作界面显示在屏幕上,为操作者提供一个直观的操作环境。这是数控软件开发中较重要的一部分,主要包括程序编辑、系统参数配置、加上运行、状态显示、自诊断和在线帮助等。程序编辑界面主要用于数控文件的编辑、复制、存储和删除等操作,实现文档和系统内部数据的管理。系统参数配置界面可以方便地配置M变量、I变量、电机参数等各个系统参数。加工运行界面用于将NC代码进行解释并下载到PMAC巾,通过PMAC去执行插补等功能。状态显示界面用于显示电机的实际位置、命令位置、速度以及运动时间等各种状态参数,通过显示的参数来了解加工性能的好坏,从而根据需要在系统配置界面中调整参数设置。自诊断界面用于显示各种主要故障原因及其初步解决方案。在线帮助界面为用户提供该人机界面的使用帮助说明。整个人机界面基于Windows环境,采用菜单式按钮,具有很好的人机交互性。
   
    (2) 上下位机通信程序编制
   
    为了便于PMAC与上层Windows进行通信,Delta Tau公司提供r PComm32动态链接库作为上层应用程序与PMAC之间通信的桥梁。PComm32是一个非常有效的开发工具,它包括了所有与PMAC的通信方法,并且与VC++等开发软件有很好的兼容性,开发者只需要往VC程序中调用动态链接库就能完成上位机同PMAC之间的数据交换。下面介绍在VC++6.0环境下调用PComm32动态链接库及库函数的方法。PComm32共包含丁250多个函数,但常用的并不多,只要掌握了下面几个就可以完成大部分的通信功能:
   
    Open Pmac Device()//为应用程序使用PMAC打开一个通道;
    Close Pmac Device()//当程序运行完毕后关闭所打开的通道;
    Pmac Get PesponseA()//发送一个命令字符串给PMAC,并从缓冲区得到PMAC的反馈;
    Pmac Configure()//调出配置对话框并修改PMAC的参数;
    Pmac Down LoadA()//将程序从Pc下载到PMAC;
    Pmac Send CommandA()//发送一个命令字符串给PMAC。
   
    掌握了这几个函数的使用方法,就可在VC++6.0环境下凋用PComm32动念链接库,还需要用到Windows的几个API函数:
   
    LoadLibrary//加载动态库;
    GetProcAddress//取得相应函数地址、FreeLibrary//卸载动态库。
   
    要调用动态库函数,首先要在头文件巾为所需的函数定义函数指针类型,其参数要和动态库的函数原型相同。接下来要在该文件中定义3个函数指针:
   
    Open Pmac open、Close Pmac close、Pmac Get pmaeget,然后在执行文件中加载动态库,获得相应的函数地址并赋值给所定义的函数指针,程序段如下:
   
    hMyD1 1=LoadLibrary(“pmac”)//加载动态库;
    open=(OpenPmac)GetProcAddress(hMy D1 1),“Open Piilac Device”//得到函数地址并赋给函数指针;
    close = (ClosePmac)GetProcAddress(hMyD1 1,“ClosePmac Device”)
    pmacget= (PmacGet)GetProcAddress(hMyD 1 1,“Pmac Get ResponseA”)//通过指向函数的指针调用该函数;
   
    if(open!=NULL)
    {
    ( opeil)(0)//初始化函数;
    SetTimer(1,lo,NULL)//设定定时器采集时间为lOOms:
    ︳
    void CP comm Dig::On Timer(UINT nlDEvent)//定时器响应函数;
    ︳
    ( pmacget)(0,buf,255,“rx0”)//读取PMAC寄存器xO的值并存放在buf中;
    Update(FALSE)
    CDialog::On Timer(nIDEvent)
    ︳
    //在退出程序的时候要卸载动态库;
    BOOL CPcommDlg::Destroy Window()
    {
    ( close)(0)//关断与PMAC的通信;
    Free Library(hMy DLL)//卸载动态库;
    Return CDialog::Destroy Window()
    }
   
    (3) PLC程序的编制
   
    系统的PLC程序主要完成系统的初始化和对各种输入输出量进行监控,主要包括限位、冷却、润滑、指示灯管理、主轴电机启停等子程序。PMAC带有内置的软PLC功能,其运行是由PMAC来实现的。当运动程序在前台有序运行时,PMAC可以在后台运行多达32个异步PLC程序。PLC程序可以以极高的采样速率监视模拟和数字输入、设定输出值、发送信息、改变增益,命令运动停止/启动等作业。PLC程序的语法采用IF—ELSE结构的类C语言,开发者很容易就能写出所需的PLC程序,然后可利用PMAC自带的软件开发平台进行编辑、编译,最后下载到PMAC卡中运行。
   
    3、结束语
   
    (1) 采用直线电机驱动和直线导轨保证了非圆车削的快速响应性和高刚度要求。

    (2) 基于IPC+PMAC结构的活塞车床数控系统,充分利用了PMAC控制器强大的伺服控制功能、直线电机的高频响应特性和PC机高效灵活的编程功能,硬件组成简单,软件开发方便,整个系统开发周期短,开放性和可扩展性较强,适合于多品种、小批量活塞的开发和生产。