当前位置:首页>>基于运动控制器的数控软件研究与开发

基于运动控制器的数控软件研究与开发

发布时间:2017-09-03作者:智汇胡妮

  近年来,开放式的数控系统在工业领域得到广泛应用,但目前在世界机床业中占统治地位的仍是基于专用硬件的数控系统。这种系统的内部细节一般属于企业机密,是不开放的。以Windows和运动控制器构建的数控系统近年得到较大的发展,但是在数据处理的实时性上却无法满足数控加工的要求。因此,本文选择了这种上、下位机的结构,上位机主要分担加工中的弱实时部分,下位机则负责强实时部分。在Windows环境下,利用VC++6.0开发了数控软件,并通过二维绘图实验平台进行了实验验证,系统具备了良好的实时性和开放性。

1 系统构成及工作过程

  Computer为通用PC机,充当系统的上位机,主要承担数控加工中的弱实时部分(如:参数设置、G代码编辑与编译、图形仿真、状态诊断等)。下位机则选用了固高科技(深圳)公司研发的GT4∞SV型四轴通用运动控制器。该控制器上的DSP充当了下位机的CPU,由于DSP芯片具有很强的数字信号处理能力,因此,承担数控加工中的强实时部分是能够满足要求的。

  运行在上位PC机中的系统管理软件是人机交互的媒介。一方面它将系统的各种信息以数据或图形的方式显示给用户,另一方面又接收来自用户输入的各种数据(如:参数、加工代码、工件图形等)。并交由软件的相关模块进行处理,处理后的数据被保存在PC内存上指定的缓冲区中。一般来说,运动控制器厂家已在DSP中开发好了一系列的功能函数,并将它们封装成一个动态链接库文件。上位机系统软件就是通过这个动态链接库来实现与运动控制器的数据交换的。

2 软件的模块化设计思想与实例

  2.1 模块化设计思想

  系统软件的开发以Windows 2000为操作系统,在VC++6.0开发环境中,采用C++语言。结合MFC、Windows API和GT400SV API来实现。根据开放式数控系统的要求与思想。通过类的定义、封装和继承技术来实现模块化开发。

  图中越靠近圆心的模块表示核心度越高,最核心的任务调度代表系统的主用户界面,它负责整个系统的任务调度工作,被分配予应用程序的主线程,因此它的产生与销毁就代表着应用程序的生与死。中间环分为7个子功能模块,每个子功能模块又包含着数目不等的子模块,各模块皆由一个单独的类来进行标识和处理,在这砦类中设计和封装了一系列的成员函数和成员变量,用以完成各个相应的子任务。

  模块间的通信主要通过两种方式来实现,环状的同层通信和线状的越层通信。同层通信负责同一核心层中各模块之间的通信工作。第一层主要通过对象和指针操作来实现。第二层主要通过开辟数据缓冲区和创建结构体来实现。越层通信则负责同一类别不同核心层模块间的通信工作。所谓同一类别的模块即是处于同一个扇形域内的模块。主要通过菜单管理和视图管理来实现。

  对于这样一个同心圆环结构的模块化通信框架,任意两个模块间可方便地进行通信。当应用场合发生改变,需要修改其中的某个或某几个模块时,只需将其单独抽取出来进行修改。当需要添减系统的模块时,也无需对代码做太大的改动,因为某个模块的改动对其他模块问的通信并不会造成很大的干扰,增强了系统的可伸缩性。

  2.2 主要模块的分析与实例

  考虑到本系统在操作上的一些特点,如:不会同时编辑多个文档、需要同时显示多项数据、后台运算与前台操作必须支持同步等。因此系统软件采用了单文档、多视图和多线程的结构。主程用于处理用户界面的操作和管理。如:菜单切换、参数设置、代码编辑等。子线程则处理一些纯运算性质的工作,如:代码编译、插补运算、图形仿真等。

  2.2.1 任务调度模块

  任务调度模块是系统的主用户界面。它是操作人员与机器之间进行交流的媒介,~个好的用户界面能使操作人员心情愉快,并在较短时间内通过屏幕上所显示的信息,了解到机器当前各主要模块的工作状态。本文的人机界面设计遵循以下原则:①“一致性”,系统的界面外观、布局、交互方式及显示格式与市场主流产品相符合,便于操作人员轻易上手。②“信息反馈”,对操作人员的操作能做出及时响应,通过文本、图形、声音等方式。⑧“布局合理”,空间布局应合理,竖床加以横线搭配,尺寸分配适当运用黄金分割比例0.618,显示表放置于水平视线以下0—30°,垂直视野左右各15°范围内。(缈“合理运用色彩和图形”,整体界面颜色应不超过3-5种,色调搭配不宜过于刺激或兴奋或沉闷,以纯度低而明度高为宜。面板上的按钮颜色按用途分类,如:红色表示危险、停止和报警;绿色代表正常和安全运行;黑白色代表文字、符号和编码。⑤“字体、字型合适”,字符的高宽比应为2:1或1:1。

  主用户界面由四个视图、系统菜单和状态栏构成。图形显示区主要用于实时显示刀具的运动轨迹;参数显示区主要用于显示当前系统的若干重要参数值;系统菜单负责在各功能模块间进行切换;实时数据显示区主要用于实时显示不同参考下的坐标值;辅助面板为一个虚拟的机床操作面板。通过菜单栏F5可以控制其显示或消隐;状态栏主要用于显示一些基本信息,如:开发单位、系统时间、已加工工件数等。

  2.2.2数据管理模块

  数据管理模块掌管着整个系统的数据流向,通过自定义一个类,专门处理数据文件的打开、关闭、读取、写入等动作,并将数据按类别保存到一系列的数据结构中,这些数据结构是文件与用户界面、模块与模块之间进行数据交换的容器。

  CFileDeal类中定义了一系列的成员函数和成员变量,他们的作用主要是针对数据文件进行操作。白箭头表示读入,CFileDeaf类将数据从文件中读取出来,并通过自己在C)(x.App类中的一个对象将数据加载到指定的数据结构StructData中,当某个模块需要使用这些数据时,它的关联类C×X便通过一个指向CXX.App的指针pApp调用Struct Data的一个对象来对Struct Data进行操作,将数据提取出来,并在特定的成员函数里引用这些数据进行运算处理,处理后的数据或显示到视图面板中或发送到另一个数据结构中保存起来。黑色箭头则表示了数据的存储过程。

  2.2.3通信模块

  通信模块包括系统上、下位机间的通信和系统间的网络通信,其中最重要的是系统软件与运动控制器间的通信。本文定义和封装了一个类CCardFunc,结合运动控制器的API函数来编写各成员函数,用于处理所有与运动控制器发生交互的工作。

  2.2.4 状态诊断模块

  状态诊断模块中最核心的部分是错误诊断机制。一个良好的错误诊断机制能够在系统软件发生错误时,迅速定位到错误发生处。本文考虑到错误可能会出现在任一核心层下的任一模块中,因此将错误诊断机制设定为全局函数。例如可以采用如下形式来定义。

  在编写关键功能模块的代码时,可为某些关键函数的调用定义一个状态返回值,并随后调用该错误诊断机制.虽然这样做会加大代码编写的工作量,但却可以在错误发生时大大地减少错误排除的工作时间,提高工作效率。

3 结束语

  本文介绍了一种基于PC机与运动控制器构建的开放式数控系统,描述了这种系统的基本构成及工作原理,及系统软件设计上的若干关键问题。为了验证系统的实际运行性能,将一台二维绘图实验平台接入系统,并对其进行了自动运行、手动运行、点位控制及多种速度规划模式下的实验。绘制的图形轮廓完整、数据的反馈和试验台的响应迅速。

公司简介

宜科(天津)电子有限公司是中国工业自动化的领军企业,于2003年在天津投资成立,销售和服务网络覆盖全国。作为中国本土工业自动化产品的提供商和智能制造解决方案的供应商,宜科在汽车、汽车零部件、工程机械、机器人、食品制药、印刷包装、纺织机械、物流设备、电子制造等诸多领域占据领先地位。宜科为智慧工厂的整体规划实施提供自系统层、控制层、网络层到执行层自上而下的全系列服务,产品及解决方案涵盖但不局限于云平台、MES制造执行系统、工业现场总线、工业以太网、工业无线通讯、机器人及智能设备组成的自动化生产线、自动化电气控制系统集成、智能物流仓储系统等,以实现真正智能化的生产制造,从而带来生产力和生产效率的大幅提升,以及对生产灵活性和生产复杂性的管理能力的大幅提升。多年来,宜科以创新的技术、卓越的解决方案和产品坚持不懈地为中国制造业的发展提供全面支持,并以出众的品质和令人信赖的可靠性、领先的技术成就、不懈的创新追求,在业界独树一帜。帮助中国制造业转型升级,加速智能制造进程,成为中国工业4.0智慧工厂解决方案当之无愧的践行者。

更多详情>>

联系我们

  • 联系人:章清涛
  • 热线:18611695135
  • 电话:
  • 传真:
  • 邮箱:18210150532@139.com

Copyright © 2015 ilinki.net Inc. All rights reserved. 智汇工业版权所有

电话:010-62314658 邮箱:service@ilinki.net

主办单位:智汇万联(北京)信息技术有限公司

京ICP备15030148号-1