发布时间:2017-09-01作者:智汇胡妮
0 前言
自从1952 年世界上第一台数控机床诞生以来,数控技术经过几十年的发展已日趋完善。随着市场全球化的发展,市场竞争空前激烈,对制造商不但要求价格低,质量好,而且要求交货时间短,售后服务好,还需要个性化的产品。而传统的数控系统是一种专用封闭式系统,具有内部结构复杂,与通用计算机不兼容,难进行升级等缺点,已经越来越不适应市场发展的这种需要了。
于是美国在20 世纪80 年代末提出了开放式数控系统,同时,有许多的相关研究计划,其中影响比较大的有美国的O2MAC ,欧洲的OSACA 和日本的OSEC 等计划。开放式数控系统一般可以有三种类型的结构:在专有系统中简单地嵌入PC技术;运动控制器以PC 插件的形式插入到PC 机扩展槽;完全采用以通用PC 为硬件平台的全软件型数控系统。
由PC 机处理非实时部分,实时部分由插入PC 机扩展槽的运动控制器来完成由于运动控制卡所采用的数控技术已经非常成熟和稳定,而基于Windows 2000 下的界面开发又是非常方便。因此这样架构出来的数控系统既具有友好的操作界面,又具有原有专用CNC系统的稳定性和可靠性。
本数控系统就是采用的工控机+ 运动卡结构,在Windows2000 操作系统下,使用功能强大的Visual C ++ 开发。选用了研华工控机,运动控制卡则采用的是基于数字信号处理器DSP 开发的固高GT- 200SV 卡。
1 主界面的设计
在Windows 2000 的平台下开发的程序具有友好精美的GUI(用户界面) 外观,而Visual C ++ 编程工具又具有友好的可视化界面和强大的函数库,采用此编程工具可以有效的缩短开发周期。
本系统主要利用了单文档- 多视图的结构和多线程编程技术。如图1 所示。
图1 主界面图
左上角视图是代码编辑区,主要由一个CListCtrl 列表控件组成的,列表控件用Windows 定义的内部数据结构LVITEM来支持每条项目信息的显示。它可以很方便的用来查询数据,所以在这里是用来显示G代码的。左下角是代码操作区,包括一系列对代码段进行操作的命令按钮,如:添加、插入、删除、修改代码。右上角视图属于数据显示区,主要将系统的一些数据显示在上面,比如:刀架的位置(X、Y、Z 坐标) 、加工时间、运行时间,以及加工产品的一些信息。右下视图是手工操作区,通过该区的按钮,可以手动控制机床。主要包括有:机床开/ 停按钮,主轴正反转按钮,主轴点动按钮,主轴速度调节旋钮,以及冷却液开/停按钮。
2 与主轴变频器的通讯软件的设计
该数控车床的主轴采用变频器控制转速,还有通过连接主轴上的光电编码盘与运动控制卡上的辅助编码器接口来确定主轴位置。
主轴变频器采用了Simens 的MICROMASTER420 系列的变频器,为了与主轴电机功率匹配,选用了0. 75kW的变频器。MI2CROMASTER420 由微处理器控制,并采用具有现代先进技术水平的绝缘栅双极型晶体管( IGBT) 作为功率输出器件,具有很高的运行可靠性和功能的多样性,是专门用于控制三相交流电动机速度的变频器系列。
变频器与工控机的连接采用的是RS485 通讯,采用2 线双绞传输方式,即数据D + 和数据D - ,这种数据差动传输方式可以有效地消除干扰的影响。对于串口通讯,在VC ++ 环境下可以直接利用Active 控件来实现,这样就比较方便、可靠,但是在使用前安装控件并在注册表中注册后才能使用。该控件就是Microsoft Communications Control(MSComm) ,它的几个主要属性设置如表1所示。
所示,其中,STX 区是一个字节的ASCI2ISTX(02hex) ,表示一条信息的开始;LGE 指明这一信息中后跟的的字节数目。ADR 是变频器的地址;BCC 是一个字节的校验和,用于检查信息是否有效;中间部分便是有效的数据字符,分为两个区域,即PKW 区(参数识别ID - 数值区) 和PZD 区(过程数据) 。
在程序设计上,主框架类CmainFrm 里的OnCreate (LPCRE2ATESTRUCT lpCreateStruct) 函数中进行初始化工控机串口,大致代码如下:
if (m ctrlComm. GetPortOpen() ) m ctrlComm. SetPortOpen(FALSE) ; m ctrlComm. SetCommPort (1) ; / / 选择com1 if ( ! m ctrlComm. GetPortOpen() ) m ctrlComm. SetPortOpen(TRUE) ;/ / 打开串口else AfxMessageBox(”cannot open serial port”) ; m ctrlComm. SetSettings(”9600 ,n ,8 ,1”) ; / / 波特率9600 ,无校验,8 个数据位,/ / 1 个停止位 m ctrlComm. SetRThreshold(1) ; / / 参数1 表示每当串口接收缓冲区中有多于或/ / 等于1 个字符时将引发一个接收数据的OnComm事件 m ctrlComm. SetInputLen(0) ; / / 设置当前接收区数据长度为0 m ctrlComm. GetInput () ;/ / 先预读缓冲区以清除残留数据MSComm控件会产生OnComm事件,所以在OnComm( ) 函数里对通讯报文进行处理。
3 与运动控制卡的通讯模块的设计
GT- 200SV 卡的核心是由ADSP2181 数字信号处理器和FP2GA组成,可以实现高性能的控制计算,并能实现多轴协调运动。
在控制软件中,与该卡相关的类是CcardDeal 类。该类主要包括轴的初始化函数AxisInitial ( ) 、电机轴报警函数Error ( shortrtn) 、卡的初始化函数GTInitial () 和轴坐标映射函数MapAxis ( ) 。总之,CcardDeal 类具有了轴、卡的最基本的操作,为下面的刀架的大小溜板轴的控制打下了基础。
有了这些函数之后,就可以在主框架类CmainFrm 里的On2Create(LPCREATESTRUCT lpCreateStruct) 函数中进行初始化卡和轴,部分主要代码如下:
int CMainFrame : :OnCreate(LPCREATESTRUCT lpCreateStruct) { ... CCardDeal Card ; / / 定义一个卡的对象 Card. GTInitial () ; / / 卡的初始化 Card. InputCfg() ; / / 专用输入信号参数设置 Card. AxisInitial () ; / / 轴初始化 double cnt1[5 ] = {2000 ,0 ,0 ,0 ,0} ; / / 坐标映射数组 double cnt2[5 ] = {0 ,2000 ,0 ,0 ,0} ; / / 坐标映射数组 Card.MapAxis() ; / / 映射各个坐标轴 ... return 0 ; }4 结束语
该数控系统已调试运行了,由于时间仓促,有些软件功能未能开发出来。但是这本身就是个开放式数控系统,所以以后在应用过程中,需要什么功能,便可以在原有软件系统上进一步进行开发。比如,一些零件的车削循环指令,一些特殊的自定义辅助功能等都可以添加。
开放式数控系统是数控技术发展的必然趋势,它给数控系统生产商、机床制造商以及用户都带来了许多好处。而基于PC的开放式数控系统具有较强的灵活性,可以充分利用PC 机丰富的软硬件资源和强大的技术优势,有利于更加完美地实现数控系统的用户界面、图形显示、动态仿真以及网络通讯等功能。模块化的程序设计使系统的通用性和可移植性大大增强,同时也有利于系统日后的功能扩展。
Copyright © 2015 ilinki.net Inc. All rights reserved. 智汇工业版权所有
电话:010-62314658 邮箱:service@ilinki.net
主办单位:智汇万联(北京)信息技术有限公司