近年来,虚拟仪器技术在航空、航天、航海、通信、汽车、半导体、生物医学等众多领域得到了广泛应用,从简单的仪器控制、数据采集到尖端的测控和工业自动化,从大学实验室到工业现场,从探索研究到技术集成,可以发现虚拟仪器技术应用的很多实例。国内外学者对此作了很多的研究工作,也发表了不少相关文章或论文,但在运动控制方面,却探讨的不多。因此,笔者想就虚拟仪器技术在步进电机控制系统中的应用,谈谈自己的一些初步探讨和体会。
一、虚拟仪器与运动控制
1. 虚拟仪器与图形化编程语言-LabVIEW
虚拟仪器(即Virtual Instrument,简称NI)是一种基于计算机的仪器,就是在通用计算机上加上软件和(或)硬件,使得使用者在操作这台计算机时,就象是在操作一台他自己设计的专用的传统电子仪器。在虚拟仪器系统中,硬件仅仅是为了解决信号的输入输出,软件才是整个仪器系统的关键,任何一个使用者都可以通过修改软件的方法,很方便地改变、增减仪器系统的功能与规模,所以有“软件就是仪器”之说。虚拟仪器技术的出现,彻底打破了传统仪器由厂家定义,用户无法改变的模式,虚拟仪器技术给用户一个充分发挥自己的才能、想象力的空间。用户(而不是厂家)可以随心所欲地根据自己的需求,设计自己的仪器系统,满足多种多样的应用需求。
虚拟仪器系统是计算机系统与仪器系统技术相结合的产物。它利用PC计算机强大的图形编程环境和在线帮助功能,结合相应的硬件,快速建立人机交互界面的虚拟仪器面板,完成对仪器或设备的控制、数据分析与显示,提高仪器的功能和使用效率,大幅度降低仪器的价格,使用户可以根据自己的需要定义仪器的功能,方便地对其进行维护、扩展、升级等。
LabVIEW是美国NI公司利用虚拟仪器(virtual instnlments)技术开发的32位,主要面向计算机测控领域的虚拟仪器软件开发平台。LabVIEW同时也是一一种功能强大的图形编程语言,但它与传统的文本编程语言(如c语言)不同,采用了一种基于流程图的图形化编程形式,因此也被称为G语言(graphical language)。这种图形化的编程形式,方便了非软件专业的工程师快速编制程序。LabVIEW也不同于传统文本式的编程语言的顺序执行方式,而是采用了数据流的执行方式,这种方式要求程序仅在各节点已获得它的全部数据后才执行。
多任务并行处理一般是通过多线程技术来实现的,不同的任务实际上通过各自的线程轮流占用CPU时间片来达到“同时”处理的目的。LabVIEW也采用了多线程技术,而且与传统文本式的编程语言相比,有两大优点:LabVIEW把线程完全抽象出来,编程者不需对线程进行创建、撤销及同步等操作;LabVIEW使用图形化的数据流的执行方式,因此在调试程序时,可以非常直观地看到代码的并行运行状态,这使编程者很容易理解多任务的概念。
LabVIEW图形化编程语言有效地利用了当今图形用户接口的点击特性。编写程序只包含以下的一些简单步骤:
2. 运动控制
运动控制卡是一种基于PC机、用于各种运动控制场合(包括位移、速度、加速度等)的上位控制单元。它的出现主要是因为:
运动控制卡通常采用专业运动控制芯片或高速DSP作为运动控制核心,大多用于控制步进电机或伺服电机。一般地,运动控制卡与PC机构成主从式控制结构:PC机负责人机交互界面的管理和控制系统的实时监控等方面的工作 (例如键盘和鼠标的管理、系统状态的显示、运动轨迹规划、控制指令的发送、外部信号的监控等等);控制卡完成运动控制的所有细节(包括脉冲和方向信号的输出、自动升降速的处理、原点和限位等信号的检测等等)。运动控制卡都配有开放的函数库供用户在相应系统平台下自行开发、构造所需的控制系统。因而这种结构开放的运动控制卡能够广泛地应用于制造业中设备自动化的各个领域。
步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机可以作为一种控制用的特种电机,步进电机由于具有转子惯量低、定位精度高、无累积误差、控制简单等特点,成了控制系统的主要执行元件之一。步进电机的控制方法包括开环控制和闭环控制两种。
二、基于虚拟仪器的步进电机控制系统整体结构与原理
一般运动控制系统主要由五部分构成:被移动的机械设备、运动I/O的马达(伺服或步进)、马达驱动单元、智能运动控制器、以及编程/操作接口软件。
本系统的目标是利用笔者实验室已有美国国家仪器公司(NI)的NI PCI 7354伺服/步进运动控制卡及其配套软件、NI 7604伺服/步进驱动器及其配套软件、两相步进电机、LabVIEW软件、多轴精密电移台(负载)、PC机等构建一套步进电机运动控制系统,分别实现单轴、两轴、三轴和四轴的运动控制,要求系统具有数控系统的基本功能,能实现不同坐标系下的直线、圆弧插补、速度控制、电子传动等功能,以供实验教学应用。系统整体结构框图如图1示。
1. NI PCI 7354运动控制卡
NI PCI 7354控制卡可同时控制包括交流和步进电机的4轴运动,能实现诸如点到点位置控制、速度控制、三维直线、圆弧、螺旋型和球形运动、电子传动、混合运动、回程和限位控制、Trigger输入和Breakpoint输出等功能。NI PCI 7354的嵌入式固件是基于RT0S(实时操作系统)内核的,实时性强,通过简单易用的运动控制器、软件、以及外设提供集成方案的功能与能力,为一般伺服与步进应用提供精确、高性能的运动功能。该运动控制器可以使用支持Windows 2000/NT/Me/xp操作系统的LabVIEW、Measurement Studio(LabWindows/CVI、Visual Basic)以及C/C++进行编程。
NI PCI 7354运动控制卡是高性能PCI步进/伺服控制器,可用于所有运动控制系统中,控制器采用先进的技术,在嵌入式实时运动或者以主机为中心的编程环境中提供混合运动轨迹控制和完全协同的圆形、线性、点到点、齿轮和空间矢量控制。其丰富的功能可以满足最为严格的要求。
NI PCI 7354运动控制卡的主要特点:通过PCI总线与主机(上位机)通信; 68芯VHDCI输出电缆;普通数字输出电压:0-32V;高电平3.5--30V, 低电平0—2V;最大脉冲速率:100KHZ;运行电流:3-14mA;触发输出最大脉冲速率:1MHz;
2. 运动控制软件
利用NI LabVIEW图形化编程语言以及各种应用软件可以开发功能强大的运动控制程序,运动控制器配备NI-Motion驱动软件提供的LabVIEW VI、固件更新程序、DLL程序,可以利用其它开发工具(比如Measurement Studio, LabWindows CVI)或其它编程语言开发运动控制应用。NI运动助手(Motion Assistant)是一个采用LabVIEW代码生成方法的附加工具,运用该工具您只需进行极少编程甚至无需编程即可开发LabVIEW运动控制应用。
3. NI 7604 驱动器
NI 7604驱动器将NI 7354提供的四轴运动控制信号放大,以驱动两相步进电机运转,带动精密电移台运动。该驱动器将运动控制器与特定应用马达、编码器、限位器、用户I/O连接在一起。一根控制电缆连接运动控制器与驱动器,为全部的命令集与反馈信号提供一个通道。
NI 7604的主要特点:输入电压:115V/23V,2/1A,60/50Hz; 步进放大器:IM481H;每相电流:0.2—1.4A;电源连续输出容量:80W;输入电缆:68芯VHDCI型;输出电压:24V DC;+5V输出:1A。
4. 运动控制外设
两相步进电机4台,四轴精密电移台一套,电移台是滚珠丝杠/螺母驱动结构。系统原理图如图2示。
分页
三、系统工作原理
通过上位机(PC机)的数据终端设备设置步进电机的目标位置、加速度、速度和减速度(即发出运动控制任务),NI PCI7354运动控制卡根据设置信息控制电机的运动时间(输出脉冲个数)和方向,即控制卡完成实时运动规划,NI 7604驱动器放大脉冲信号以驱动电机运转。
在电机运行过程中,控制脉冲的频率f应随时变化以满足电机低速起停及高速运行的需要。脉冲频率由发送数据的波特率(B)决定,每发出一个脉冲需用两个二进制位1和0来构成其高、低电平,所以f=B/2,通过调整发送数据的波特率可改变所发出的控制脉冲的频率。按常规波特率系列发送数据时所产生的控制脉冲频率变化较大,不能满足电机正常起停及调速的要求,为此计算机需按非标准的波特率发送数据以产生任意频率的控制脉冲。一般在电机起动及停止阶段每发送一个字节调整一次波特率,以使电机起停得尽量平滑。
四、软件研究与实现
在系统硬件环节构建完成后,先后逐步完成了单轴直线运动控制、两轴平面运动控制、三轴空间运动控制系统的软件研究与开发。
控制软件利用LabVIEW 7这种虚拟仪器软件开发平台设计,每个程序分为前面板和框图程序两部分。前面板用于设置控制参数和显示控制过程及结果,框图程序是程序的代码。两轴平面螺旋运动前面板如图3示,两轴平面螺旋运动框图程序(局部)如图4示。
三轴空间运动的前面板和框图程序(局部)分别如图5、图6所示。
五、结语
实验效果表明,该步进电机控制系统性能良好,工作可靠。配上多种功能的人机界面后可以实现位置(起点和目标点)、速度、加速度、减速度等的可视化操作和控制,通过改变在线改变负载的目标位置,可以实现位置的精确定位控制,通过在线调整速度和加/减速度的值,可以达到快速调速的目的。目前实现了开环多轴控制,鉴于步进电机的闭环控制,笔者计划进一步研究步进电机闭环控制的多轴运动控制系统。