发布时间:2017-09-03作者:智汇胡妮
在系统地阐述了数控系统的构成、模块和任务的划分、功能的确定、加工控制的数据流程、数控软件结构的基础上,介绍了一种基于LabVIEw平台的上、下位机形式的数控系统的实现方法和途径。
近年来,随着PC机技术的迅速发展,与之原理及结构几近相同的工业Pc机的性能得到了快速的发展,这使得工业PC的软、硬件资源迅速丰富起来,而价格却大幅度降低,开发基于工业Pc机的数控系统,已成为机床控制领域研究的热点。
本课题研究一种基于PC和windows平台的,用于任意形状的二维零件加工的数控系统。数控系统硬件平台采用Pc+运动驱动卡,软件采用Windows98/NT平台,开发平台采用LabVIEW。本系统的研制成功,将全面提升该类数控系统的整机性能,提高性能价格比,是较为先进的数控系统。
1 系统的组成
系统的组成如图1所示,系统由上下位机两部分构成,上、下位机通过PCI或USB实现连接。这种方式下PC机只负责常规的系统管理和维护,而具体的数控系统的核心功能,则由运动控制卡直接实现。运动控制卡硬件直接控制电机的动作,从而解决了WINDOWS平台下计算机控制中经常碰到的实时控制问题所带来的困扰。本文简单介绍了基于这种思想和LabVIEW软件平台而开发的切割机数控软件系统。
图1控制系统的组成
2 LabVIEW简介
LabVIEW是NI公司的主打产品之一,是一种用图标代码来代替编程语言创建应用程序的开发工具,它使用数据流的编程方法来描述程序的执行,用图标和连线代替文本的形式编写程序。它具有较丰富的面板工具,可以快速开发出精美的控制界面,具有丰富的数据处理子模块,可以方便地进行多种数据处理进程,它还可与Visual C++进行交互,充分利用在C语言基础上开发的已有的软件资源。由于其语言上的特性,所以对编程者的要求没有传统计算机语言那样高,易于学习和使用。对于本系统而言,LabVIEW最为先进的技术是它具有多任务并行处理机制,使得系统开发人员可以轻松地实现在传统编程中难度较大的多任务并行处理。
其多任务并行处理实现的机理是:LabVIEW中存在一个任务队列,系统将要执行的一系列任务都在队列中存储,并根据所存在的任务的优先级决定下一时间片将要执行哪一项任务,直到所有任务被完成为止。在LabVIEw中可以通过VI设置对话框进行优先级设置,也可以通过调用wait()函数放弃cPu占用来实现。较传统的多任务实现而言,用LabVIEw的实现则更加简单和灵活。
另外,LabVIEw可以轻松实现系统编程的模块化,将系统的各个任务划分成多个子VI,由各个子VI实现各个模块的划分和开发,是较为理想的开发平台。
3 数控系统任务的划分
本数控系统的任务分为实时任务及非实时任务两种。由于系统的译码、刀具半径补偿等工作是在加工开始前完成的,并且系统所需要的当前零件的加工数据将会在加工运动之前一次或分次成块地写入到下位机的两块存储量较大的内存区域当中,所以,系统的任务划分与一般的系统是不同的。上位机的非实时任务有:参数输入任务、命令输人任务、程序解释及刀具半径补偿任务、程序预处理任务、文件服务任务、系统帮助任务、故障诊断任务及输人事件处理任务。这些任务的产生及处理是非实时的,也是随机的。上位机的实时任务有:控制参数显示任务、系统设置任务、加工动态显示任务、加工参数显示任务、加工程序显示任务及加工数据送人任务。这些任务主要是由系统定义一系列的不同任务优先级实现,对访问有次序的任务采取制约机制,限制运行次序及访问权限。
4 系统模块的划分
上位机的控制系统共分为系统控制、界面、译码、刀补、仿真、系统设置、故障诊断、上下位机通讯、帮助等几个模块。模块是以系统模块总体的透明性、独立性、可维护性、可扩展性为原则设计和开发的。
系统控制模块的主要功能是协调各模块的运行次序和运行的优先级别,它是系统上位机控制的核心。在该系统中实现了主界面、手工移动界面、定程移动界面、极限移动界面、程序编辑界面、多件加工界面、自动加工界面、系统设置界面及诊断界面。实现了各界面内部切换功能、相应工具条的显示隐藏及对应功能的调用。
译码模块是对加工数据进行处理的第一个模块,处理的是标准的G代码,该模块中集成了对数控代码的读入、错误检查、加工轨迹参数的读取与规范、控制参数的读取与存储等功能。该模块中的加工及控制信息均存在于一个全局的模板中,便于后继的处理及访问。该模块主要是借用原有的c语言实现的译码功能,通过LabVIEw与Vc的动态调用功能,将数据传送给已有的程序,程序分析和数据分离后将所产生的数据传递给系统。
刀补模块采用c功能的刀具半径补偿算法,c刀补是基于矢量的计算原理的,所以能够很好地解决工件轮廓加工过程中的两程序段间的转接过渡问题。这种补偿技术是通过计算和判断转接类型(伸长型、插入型、缩短型)、曲线连接形式及刀补状态,再加上译码的数据来实现数据的处理的。刀具半径补偿模块同样是由已有的Vc程序实现的。
仿真模块是在不启动电机的情况下而实现加工过程模拟的绘图模块。该模块是由具体绘图函数、尺寸计算函数以及插补运算函数组成的。
系统设置中实现对系统一些全局参数的设置,其中包括系统运行需要的参数和系统调试需要的参数两类,这两类参数的正确设置是保证系统的正常运行的条件。
监控诊断包含了对系统全部硬件端口、传感器和电机的检测功能,另外还具有一些系统维护的必要软件工具,如杀毒程序等。
5 系统功能的确定
在已有数控系统的设计方案的基础上,该数控系统设定了手动控制、程序编辑、自动加工、零件选项、套料、系统设置、监控诊断机系统帮助等功能。手动控制中实现了点动、连续移动、定长移动、回零等功能,用于系统定位及实现简单加工。程序编辑中实现了加工程序的打开、新建、编辑、存储及图形预显等功能用于对G代码文件的编辑处理。
自动加工功能是对由程序编辑处理后的G代码文件实现加工,它也包含了一些对主轴的控制,如停止加工、暂停加工、断点记忆功能等。
零件选项主要是针对经程序编辑处理后文件的图形进行排列和转动,并可以形成新的G代码文件。套料功能中实现了不同零件问的组合、拆分、相对转动、排列和切割顺序的定义等。
系统设置及监控诊断功能在上面已有论述,在这里将不再重复。
6 数据流程分析
本数控系统和一般的数控系统一样,必须完成译码(加工代码解释)、代码预处理(刀补等)、插补准备、插补等几个基本过程来实现加工。由于该系统的插补功能由运动控制卡的硬件电路来完成,所以上位机软件系统只需要为下位机提供相应的加工数据即可。
下面简要说明一下其数据的流程:零件的加工程序在经过了NC程序准备后,以ISO标准格式放入了NC程序缓冲区中,首先经过Nc程序的译码操作,将代码中的加工及控制信息提取出来,以约定的格式存放于预刀补缓冲存储区Bs中;刀补后的数据放入刀补工作缓冲区AS中,然后将As的内容置为可直接用于下位机读取的数据后放入刀补输出缓冲区OS中,下位机会循环检测该区域的数据是否准备好,准备好后读取数据控制电机及相关设备运行。在没有刀补的情况下,将BS区中的轨迹信息经过简单处理后直接放入刀补工作缓冲区AS中。
由于系统采用了C型刀具半径补偿算法,所以在有刀补处理的情况下,只用一个BS缓冲区不能够满足实际刀具中、心轨迹计算的需要,因此在BS区和AS区之间设立刀补缓冲区CS,由三个数据缓存共同实现刀补的计算。
7 数控软件结构分析
上位机的控制系统共分为系统控制模块、人机界面、手动控制模块、程序编辑模块、自动加工、零件选项、系统设置、诊断、图形库、译码、刀补、仿真几个模块。系统模块的构架如图2所示。
图2系统的软件结构
系统控制模块是系统的调度核心模块,该模块每循环一次就对其循环次数进行查询,根据循环次序所反映的信息,轮流调用其所控制的各个子任务;而不受它控制的非实时任务则作为并行的子任务运行。其实现是利用了LabVIEw中的事件和事件等待函数来控制任务的激活和挂起。系统每次遇到等待函数将是当前的子任务放弃目前的CPU的占用,从而实现任务的轮流调用。
译码模块处理的是标准的G代码,该模块中集成了对数控代码的读入、错误检查、加工轨迹参数的读取与规范、控制参数的读取与存储等功能。该模块中的加工及控制信息均存在于一个全局的模板中,便于后继的处理及访问。
刀补模块采用c功能的刀具半径补偿算法,c刀补是基于矢量的计算原理的,所以能够很好地解决工件轮廓加工过程中的两程序段间的转接过渡问题。仿真模块主要由LabVIEw编程系统中的绘图函数实现,由于实现二维绘图并不是十分困难,所以该编程环境的图形处理功能不强的缺点对于本系统的开发没有太多的妨碍。
8 上、下位机的通讯
本系统采用双CPU控制的方式,上位机采用工业控制微机、下位机采用深圳摩信公司的McT8000S4控制器。上、下位机通讯是实现加工控制的重要环节。上位机通过摩信公司所提供的软件包和动态库中的相应函数实现加工数据和标示信息的互传,再由下位机调用相应的轨迹控制函数控制电机运动实现实时控制。下位机采用c语言和摩信公司提供的编程开发环境实现。
8.1标志位的定义
为了表明上位机对下位机的控制要求和体现上位机的控制时序,需要系统定义标志位。标志位实际上是单个单位或连续的多单位的下位机内存空间,这些内存空间中所动态写入的值和加工数据代表了不同的控制内容,下位机实时检测这些内存空间中重要的几个。再根据被检测内存中的内容或直接控制硬件动作或读取另外一些内存空间中的数据,根据数据进行运动控制。
这些标志位主要有:主循环标志位、参数块首地址存储位、位置块首地址存储位、程序块1首地址存储位、程序块2首地址存储位、预热标志位、加减速标志位、移动方式标志位、切割速度标志位、开始加工标志位等标志位。
这里需要单独说明的是两个程序缓存的设定。下位机的内存空间有限,能容纳的加工数据也是有限的,为了突破这个限制系统定义了两个大小相同的内存空间用于存储加工数据。如果加工程序很长,系统首先会把两个程序缓存多写满数据,当第一个程序缓存读取完毕时,上位机将继续在第一个程序缓存中写入余下的加工数据,当第二个程序缓存读取完毕时,上位机将继续在第二个程序缓存中写入余下的加工数据,如此往复直到所有的加工数据都被写完。这样,系统就不会受到内存大小的限制,可加工任意长度的零件加工程序了。
8.2上位机控制的实现
上位机能够实现对下位机的控制主要解决以下几个问题:
(1)对下位机这个非标准硬件的内存的驱动和访问;
(2)对下位机一些内存的实时检测;
(3)从下位机内存中写入和读出数据。对于第(1)和第(3)项,由于采用的控制卡是摩信公司开发的智能化较高的板卡,该公司已经提供了对该硬件驱动的必要技术和资料,同时也提供了可以对板卡进行各种控制和访问的动态库,动态库中具有丰富的控制和访问函数,在许多编程环境中可以随意调用;可以说实现上还是很容易的。检测任务的功能主要是在进入相应的控制功能后检测下位机的状态,然后根据这些状态来判断当前的功能是否需要退出。如果没有这个任务的存在,系统的交互状态很容易混乱,造成严重错误。
下位机的控制实现是通过一个上电后的不间断的while循环,连续监测其内存空间中的标志位的状态,并根据这些状态进入相应的子函数实现系统的控制。
8.3 系统的下载以及初始化表
当系统启动时上位机必须保证下位机的驱动程序下载到下位机,这就需要系统启动时上位机调用摩信提供的动态库函数将相应的程序下载。
系统启动时还有另一项很重要的任务,就是将上次加工或调节的参数设置恢复,这就需要系统建立一个数据备份文件即初始化表;每当系统启动时都会从该文件中读取系统的参数设置,完成初始化上位机和下位机的工作。
9 结束语
本系统在原有的功能模块的基础上,采用LabVIEw平台实现了系统界面和并行任务处理的快速开发,是较为方便快捷的一种开发思路。
Copyright © 2015 ilinki.net Inc. All rights reserved. 智汇工业版权所有
电话:010-62314658 邮箱:service@ilinki.net
主办单位:智汇万联(北京)信息技术有限公司