您现在的位置是:首页 > 工控

MPC07控制卡在运动控制系统中的应用

2019-12-28 03:00:41

MPC07控制卡在运动控制系统中的应用

本文采用MPC07控制卡来作为运动控制系统的开发平台,并利用VC++对MPC07运动函数库进行二次开发来编写面向对象的控制程序,从而通过MPC07卡来实现对运动控制系统中小车的精确运动控制。

MPC07控制卡是基于PC机PCI总线的步进电机或数字式伺服电机的上位控制单元,它与PC机构成主从式控制结构,可插在PC机PCI扩展槽内。每块MPC07卡可控制4轴步进电机或数字式伺服电机,并支持多卡共用,以实现多于四个运动轴的控制,且每轴均可输出脉冲和方向信号,以控制电机的运转;同时,MPC07可外接原点、减速、限位等开关信号,以实现回原点、保护等功能,这些开关信号由MPC07卡自动检测并作出反应。MPC07卡还提供了功能强大的运动控制函数库,并可以充分利用PC机现有的资源来开发满足设计所要求的运动控制系统。

1 硬件系统结构

图1所示为运动控制系统结构图。本系统硬件采用MPC07控制卡作为开发运动控制系统的平台,其PC机主要负责人机交互界面的管理和控制系统的实时监控等方面的工作,主要包括运动参数的设置、系统状态的显示、控制指令的发送、外部信号的监控等;MPC07卡则通过PCI总线接收到PC机指令,再经内部智能芯片处理后将控制信号送入驱动器,然后驱动器把控制系统发出的脉冲信号转化为步进电机的角位移控制步进电机的运行,以此来实现对运动控制系统中小车运动的精确调速和定位。



1.1 MPC07的技术特性

MPC07控制卡具有开放式结构、使用简便、功能丰富、可靠性高等特性。在硬件方面MPC07采用PC机的PCI总线方式,因此适用范围广,且卡上无需进行任何跳线设置,所有资源均自动配置。另外,在Windows98、Windows2000及Windows XP操作系统中支持即插即用,使用非常方便;MPC07的接线方式采用DB37型插头,可使用屏蔽线缆,并且所有的输入、输出信号均用光电隔离,因此提高了控制卡的可靠性和抗干扰能力;在软件方面MPC07还提供了丰富的运动控制函数库,以满足不同的应用要求。用户只需根据控制系统的要求编制人机界面,并调用MPC07运动函数库中的指令函数,就可以开发出满足要求的多轴运动控制系统。MPC07的技术指标主要有:

◇4轴步进或数字式伺服控制;

◇脉冲输出速度可达4.0 Mpps;

◇梯形加减速;
   
◇运动中可变速;

◇多轴高速线性插补;

◇可输出脉冲/方向或双脉冲信号;

◇每轴带有原点、减速和限位开关等接口;

◇16个通用输入开关信号,24个通用输出开关信号;
   
◇WINDOWS环境下WDM、DLL库;

◇演示程序。

1.2 MPC07接口

MPC07控制卡采用DB37接口,外接线可采用屏蔽线缆,以提高控制卡的抗干扰能力。其中开关量信号(原点、减速、限位以及I/O信号等)采用12~24DCV开关电源;脉冲量信号(脉冲、方向等)采用5DCV开关电源。完整的MPC07运动控制器由三张板卡组成:MPC07主板,转接板和通用IO扩展板。其中MPC07主板完成运动控制功能,它有两个接口:DB37和40芯扁平电缆,其中DB37接口主要用于运动控制,它可通过转接板与驱动器等外部设备相连;而40芯扁平电缆则用于通用IO,可以通过通用IO扩展板与外部设备相连。实际上,转接板才是MPC07主板与电机驱动器的连接桥梁,可用来提供脉冲和方向差分输出。通用IO扩展板是通用IO信号与MPC07主板的连接桥梁,可以利用40扁平电缆将扩展板与MPC07主板相连。如果控制系统需要使用通用输入或输出信号,则必须使用通用IO扩展板,而不能将IO信号直接与MPC07主板的40芯电缆管脚相连,这样可能烧坏FPGA。

2 软件实现

该运动控制系统的程序是在Windows系统下,用VC++编写的面向对象的语言程序,MPC07软件中已经将常用的MPC07.dll中DLL函数封装成类CLoadDll,并提供该类的源代码,该类含有与运动指令库函数名及参数相同的成员函数。可在MPC07卡软件安装盘\Develop\VC文件夹下找到源代码,文件名为LoadDll.cpp和LoadDll.h,并将其添加进工程,在程序适当地方添加该类的对象,通过对应成员函数来调用DLL中的函数。其程序流程图如图2所示。



程序执行时,首先对控制卡进行自动检测和初始化,在程序界面中可以设置的参数包括:小车初始位置、初速度、最高速度、加速度、移动距离等,参数设置不满足要求时,还需要重新设置,只有满足要求后,才能开始运行程序。运动过程中可进行人工干预,人工干预后小车可立即制动也可光滑制动,如不需要干预,小车按照设置运动到指定位置。

(1)初始化控制卡

首先定义DLL运动控制函数库变量:CLoadDll m_cDll,初始化函数为InitBoard (),其执行代码如下:



(2)运动实现

运动小车在点位运动方式下可进行常速或快速运动,软件通过对设定的移动距离与小车当前位置的比较来确定小车的运动方向,而后系统根据用户设定的运动参数进行相应的运动,其部分实现代码如下:



(3)制动

小车在运动过程中可采取立即制动和光滑制动两种制动方式,代码如下:



此外,程序运行时为了提高程序控制的精度,必须补偿实时显示用取得cpu的时间,也就是程序中的误差补偿部分。通过编译程序显示小车的运动控制界面如图3所示。


3 结束语

本文以基于PCI总线的MPC07控制卡为开发平台,利用VC++结合MPC07控制卡的运动控制函数库编写了面向对象的系统控制程序,通过MPC07卡对步进电机进行精确运动控制,从而实现了运动系统中小车的精确调速和定位,解决了运动控制系统中控制精度低的问题。应用结果表明,MPC07控制卡具有开发简单、运动可靠和控制方便等特点,能出色的完成运动控制的各个细节。