运动控制系统
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.4 运动控制器的软件

2.4.1 运动控制器软件体系

运动控制系统总体来说是一个复杂的控制系统,兼有控制实时性、功能多样性、性能层次性和界面个性的要求。如何构建功能模块,实现功能模块的有机组合,达到实时性和非实时性的有机统一,是采用所谓引擎机制实现具体运动控制器产品的决定性技术。其实质是采用特定的方法完成软件的二次组装并实现可靠高效的信息交互。软件可以采用的支撑技术有参数定制技术、软件组装技术、进程通信技术和脚本技术等。运动控制器软件系统可以简单地划分为界面、运动控制和伺服驱动三大部分。无论现代运动控制系统属于哪种结构类型,其特征无非是PC、NC、智能伺服驱动三者之间任务的分配关系与表现形式不同。界面部分的用户差异体现最明显,要求界面美观,个性突出,可任意定制,对实时性的要求并不迫切。运动控制子系统是实现高性能运动控制功能的主要模块,是系统中最核心、最复杂和最难实现的部分,对系统的运算量要求较大,实时性要求较高。伺服驱动部分通常由硬件完成,但其软件接口需要有相关的驱动程序支持。从前面的软件支撑技术可以看出,单一的技术手段并不足以满足运动控制系统的需要,应当综合不同的需求,兼顾系统的稳定性、实时性,分层次地采用不同的技术来实现。

由图2-56可以看出,整个机床控制软件系统由三大部分构成。第一部分是人机交互界面,涵盖有系统管理、程序交互、手控交互、远程交互和加工仿真;第二部分是运动控制,运动控制子系统通常包括两个通道:主通道和辅助通道。主通道主要应用于自动加工状态下的运动指令;辅助通道主要起到配合人机接口子系统,响应用户手动操作的作用。显然,主通道的性能从本质上反映了一个数控系统的技术水平,是系统的重点与核心,所有的运动控制系统在这一层次上得到基本统一。主通道一般由指令解释、刀具补偿、加减速规律、前瞻处理、位置控制、SMT处理等构成。第三部分是驱动接口通常指数控系统中与数控设备直接关联的硬件部分及与之配合的驱动程序和数据交互接口软件,用于将运动控制所产生的运动指令以合适的电参数具体地传递给机床执行元件,驱动其完成运动目的。

图2-56 数控机床的软件模块框图

1.开放性需求分析

开放层次是开放式数控系统需要考虑的基本问题。面向不同层次的用户对象进行分级开放的观点已达成共识,但分级的具体层次尚没有明确的界定标准。主流的观点认为,可分为下列三个由浅入深的级别。

1)一级开放

所谓一级开放是指参数与人机界面的简易定制。这个级别面向终端用户开放,用户无须关心系统内部的具体实现方法,主要依据修改各种配置参数得以实现。根据现场的实际应用环境和人机接口风格的喜好,在基础系统上通过参数设置来实现系统与执行机构的集成。这一层次上的用户仅需要阅读操作手册即可完成集成。

2)二级开放

所谓二级开放是指人机界面的用户化定制这个级别主要面向销售商开放。在产品销售的过程中,客户可能会对产品提出具体的界面要求,如修改界面风格以适应操作工的知识背景、特殊显示某些系统变量、增加对刀指引等,此时需要彻底地改变原系统的界面风格,可能牵涉到与系统内核的交互。这一层次的开放需要按照开放规则编辑少量的代码,并与系统完成基础通信,不会直接影响系统的运行效果。可通过这种开放实现比专有系统更好的人机交互能力,并且具有更好的上层应用系统集成能力。

3)三级开放

所谓三级开放是指功能定制。这个级别主要面向具有运动控制理论基础的用户开放,他们可能需要实现原系统中所没有的指令功能,如增加特殊曲线插补功能、实现特殊的加减速等。这个层次的开放需要与系统内核进行深层次的交互(通信交互、事件交互、实时响应等),甚至影响到系统的运动效果。通过这个层次的开放,可以将用户的使用经验与研究成果很好地集成到系统中,实现在特殊场合的应用。

事实上,还需要有四级的开放。四级开放是面向具体的产品编程人员,实现源代码级的开放。随着系统功能的不断增强,不断完善,系统代码量越来越大,不可能在人人都掌握源代码的各个具体细节的基础上进行再开发,这样也会形成千奇百怪的系统,带来新的小错误而影响系统的稳定性。采用软件工程的管理模式,实现面向对象设计和面向方面设计等新设计思想,界定必要的数据接口和数据结构是实现这个层次开放的必由之路。

2.软件功能模块

图2-57所示的是运动控制系统的软件结构图。

图2-57 软件结构图

由图2-57可以清楚地看出运动控制系统软件架构体系,其四大部分为主监视进程、人机交互进程、运动控制进程和运动驱动进程。

2.4.2 运动控制器的开发应用软件简介

基本硬件平台不同,所使用的开发工具会有很大差异。总体来看,控制器核心芯片技术都需要相应的开发平台。对于利用MCU这类芯片的运动控制单元,通常借助C语言作为基本开发语言。很多有实力的制造商也会提供各自的应用开发工具。利用MCU也能开发出与各种数据总线配合使用的实际板卡,然后由开发商提供相应的开发工具。本节主要介绍一下μC/OS-II和LabVIEW。

1.μC/OS-II

1)μC/OS-II简介

μC/OS-II是一个完整的、可移植、可固化、可裁剪的占先式实时多任务内核。μC/OS-II绝大部分的代码是用ANSI的C语言编写的,包含一小部分汇编代码,使之可供不同架构的微处理器使用。至今,从8位到64位,μC/OS-II已在超过40种不同架构的微处理器上运行。μC/OS-II已经在世界范围内得到广泛应用,包括很多领域,如手机、路由器、集线器、不间断电源、飞行器、医疗设备及工业控制上。实际上,μC/OS-II已经通过了非常严格的测试,并且得到了美国航空管理局的认证,可以用在飞行器上。除此以外,μC/OS-II另一个鲜明的特点就是源码公开,便于移植和维护。

2)μC/OS-II内核结构

多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPU时间,并且负责任务之间的通信。内核提供的基本服务是任务切换。μC/OS-II可以管理多达64个任务。由于其开发者占用和保留了8个任务,所以留给用户应用程序的最多可有56个任务。赋予各个任务的优先级必须是不相同的。这意味着μC/OS-II不支持时间片轮转调度法。μC/OS-II为每个任务设置独立的堆栈空间,可以快速实现任务切换。μC/OS-II近似地每时每刻让优先级最高的就绪任务处于运行状态,为了保证这一点,它在调用系统API函数、中断结束、定时中断结束时总是执行调度算法。μC/OS-II通过事先计算好数据简化了运算量,通过精心设计就绪表结构使延时可以预知。

如果需要利用MCU开发,可提前参阅相关书籍,全面了解μC/OS-II。

3)软件系统开发流程

软件系统开发的流程主要包含以下五个主要步骤,如图2-58所示。

图2-58 软件开发主要流程图

2.NI-Motion v7.0

1)NI-Motion v7.0运动控制模块介绍

该软件模块是用于与NI运动控制器通信的高级软件命令集。本软件包括各种LabVIEW VI和实例,可以快速创建运动控制应用程序。NI Motion Assistant可生成NI-Motion驱动程序代码,作为应用开发的基础。NI-Motion与LabVIEW实时兼容,其NI Measurement & Automation Explorer用于运动系统的配置和调试。图2-59所示就是LabVIEW VI运动模块。

图2-59 LabVIEW VI运动模块

功能强大的LabVIEW VI具有:

(1)可控制每个National Instruments运动控制器;

(2)实例程序涵盖了简单和复杂的运动;

(3)用于LabWindows/CVI、Visual Basic和C/C++的编程实例。

2)Motion Assistant NI运动助手

图2-60所示的是NI-Motion Assistant软件界面。这个软件的主要目的是提供一种易于使用的交互式环境。使用NI-Motion Assistant可加速运动应用的开发和测试。任何通过NI-Motion Assistant编程的应用程序都可转换为适于最终机器部署的C代码或NI LabVIEW VI,无须另外编程。新发布的NI-Motion Assistant 2.0版添加了导入在CAD创建的运动文档或广泛接受的DXF文件格式的打包草稿功能。该新特性加上NI公司正在申请专利的智能造型算法,可以让用户轻松完成精确的切割或划线运动。

图2-60 NI-Motion Assistant软件界面

3)NI-SoftMotion开发模块

通过用于LabVIEW的NI-SoftMotion开发模块,机器生产商和OEM生产商可创建具有更出色机器性能的自定义运动控制器,而研究人员可实现用于运动控制的高级控制设计算法。本模块的功能包括在LabVIEW实时和/或LabVIEW FPGA中实现轨道生成、样条插值、位置/速度PID控制和编码器实施等。用户可根据其性价比,利用NI-SoftMotion,通过插入式数据采集模块等来创建自定义的运动控制器。图2-61就是NI-SoftMotion模块的一个开发界面图,具有如下基本功能:

(1)通过软件,开发步进或伺服的自定义运动控制器;

(2)包括轨迹发生器、样条插值和位置与速度控制方法;

(3)用于CompactRIO,M和R系列数据采集模块;

● 与LabVIEW 8.0、LabVIEW 8.2和更新的版本配合使用。

图2-61 NI-SoftMotion开发工具