0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于MPC08运动控制器实现开放式数控系统的设计方案

电子设计 来源:伺服控制 作者:张勇 2021-03-28 10:38 次阅读

在计算机技术飞速发展的今天,数控系统由传统的专用型封闭式系统向灵活的开放式数控系统转变已成为一种必然趋势。与传统的封闭式数控系统相比,开放式数控系统有以下优势:

可伸缩性,CNC系统的功能、规模(硬件或软件模块)可根据具体应用灵活增减;

可移植性,系统的功能软件与运行平台无关,能运行于不同供应商提供的硬件平台上;

可扩展性,开发者能有效地将自己的软件集成到NC系统中,形成自己的专用系统;

可互操作性,通过标准化接口通信和交互机制,使不同功能模块获得相互操作能力,协调工作。

目前开放式数控系统主要形式是基于PC的NC,即在PC的总线上插上具有NC功能的运动控制器完成实时性要求较高的NC内核功能。本次课题基于步进机电有限公司的MPC08运动控制器就是一款能满足数控系统功能要求,性价比高的通用运动控制器,课题根据钻床的工艺在此基础上进行数控系统软件的研究。

1 系统总体结构

本系统数控钻床共有8个轴,分别为X,Y轴和Z1,Z2,Z3,Z4,Z5,Z6轴,其中X,Y轴控制平面两个方向的定位, Z1,Z2,Z3,Z4,Z5,Z6则控制下钻的进给量,XYZ可联动控制。加工时, 根据要加工工件上的孔坐标、孔直径、孔深等参数, 编好工件的加工文件, 系统按加工文件控制机床完成钻削加工。

为了对机床8个轴的进行控制,我们采用了MPC08运动控制器作为系统控制的内核,插在PC机的PCI插槽中。工业PC机作为主控计算机来完成与MPC08控制器的通讯以及上层系统操作、调度管理、故障诊断、参数输入等非实时性任务。

MPC08是一款开放式通用运动控制器,所有指令均为立即指令,适合于PCB钻床的高速度,定位准的点位运动,并具有足够的专用和通用的IO通道供机床控制使用,软件方面提供了丰富的运动控制函数,以供用户在Windows平台自主开发,构建所需要的数控系统。我们将MPC08插入PC的PCI插槽里,借助它完成整个系统的控制。

IO及反馈系统使用MPC08的专用和通用的输入和输出通道进行各种机床电器IO信号的连接与控制;驱动和伺服步进电机单元则是接收MPC08发出的脉冲及方向信号完成需要的运动。

变频器和主轴转动控制部分是利用PC机的串口进行和变频器的通讯,由此完成主轴转速的控制,此控制则是独立于MPC08之外。

2 软件结构设计

为了满足伸缩性,移植性,扩展性和互操作性的要求,软件采用了模块化设计的思想,利用VisualC++6.0开发工具在Windows2000操作系统上开发而成。软件总体分为两大部分,人机界面交互部分和系统控制部分。

1)人机界面 人机界面模块主要完成整个数控系统的状态显示和需求参数的输入,除此以外应该使界面友好,使用便捷。本程序设计借助了MFC库中CWnd类和CButton按钮类的强大功能,利用这两个类的成员函数以及类派生的子类构造了友好便捷的界面。界面包括有加工过程中重要参数的显示,主要功能按钮和加工图形的显示。其中参数显示有各轴的坐标,工作行程,下止点,刀具代号,直径,偏移以及加工的孔数记录,所在刀库的记录等;功能按钮有启动,回原点,回停车位,导入文件,刀具参数,刀具管理,加工参数等,其中刀具参数,刀具管理和加工参数按钮还可以打开其他界面完成系统功能;图形显示则位于界面的中间部分用于显示加工PCB孔的图形,加工过程中还可以动态显示加工到某个孔。

2)加工文件 加工文件功能模块完成对外部输入进来的加工文件(PCB行业通用的Excellon格式文件)进行译码,将加工文件的信息转化为控制系统需要的数据形式。软件具体实现办法是将文件的每一行进行解读,根据解读出来的信息将每个要加工的刀具节点数据放在一个WORK_NODE结构里面,对应在该刀具下的孔加工数据放在WORK_NODE里面的RECORD_NODE结构体内,最后统一将每一个刀具节点存放到以WORK_NODE为类型的加工链表gWorkList里。其中WORK_NODE和RECORD_NODE的数据结构如下:

基于MPC08运动控制器实现开放式数控系统的设计方案

3) 加工参数管理 本功能完成在机床控制过程中各参数的管理,包括机器的轴参数,系统参数,加工参数,刀具参数,机床坐标参数。为了方便管理和使用,以上参数程序里都定义全局变量存放,使用时对这些变量操作即可以进行各参数的读取和修改。每个参数变量都以一个自定义的结构体为类型,轴参数类型内包括每个轴的使能,最大速度,最大加速度,脉冲当量,回零速度,回零方向,反向间隙等;系统参数包括插补精度,到位检测周期,刀库坐标位置,深度检测深度,深度检测速度;加工参数包括进给速度,提升速度,工作行程,主轴转速,换刀方式,断钻检测允许范围;刀具参数包括刀具的类型,直径,寿命,已使用寿命,所在刀库号;机床坐标参数则包括机床的绝对坐标和相对坐标参数。所有这些参数除了绝对和相对坐标参数外都需要在加工前由使用者按需求输入,加工过程中根据这些设置的数据进行运动。下面是轴参数的数据结构例子:

typedef struct _AXIS_PARAM_SET

int Installed; //轴是否安装:TRUE——安装

int Enable; //轴是否有效

int HomeDir; //机床回零方向:1——正向,-1——反向,0——无效

double Interval; //反向间隙

&nb, sp;&n, bsp; double MaxSpeed; //最大速度(mm/min)(A)

double AccelSpeed; //最大加速度(mm/min︿2)3600000

double PulseFactor; //脉冲当量(mm)

long PulseUp; //电子齿轮分子

long PulseDown; //电子齿轮分母

long PulseDir; //反馈方向

int SRatio; //S型加速度曲线系数

double HomeSpeed; //回零速度

double HomeCheckDis; //回零检测长度

double HomeOffsetDis; //回零后的移动距离

double DepthCheckDis; //深度检测的下降距离

}AXIS_PARAM_SET,*PAXIS_PARAM_SET;

4)运动与换刀控制 运动与换刀控制是钻床运动的核心部分,完成钻床的孔加工(包括启动,定位,下钻,提升),回零,回停车位和换刀的动作。本模块的代码都在专门建立的运动控制线程PubWorkThreadHandler(LPVOID pParam)里面执行。

a、孔加工 当用户加工准备就绪,按下启动加工的按钮的时候,线程开始自动读取加工链表gWorkList里面已经经过译码的数据,通过已知数据信息程序按照加工参数管理模块设定的速度发送运动指令给MPC08运动控制器,控制器发出脉冲使机床快速运动并定位到该孔坐标,接着以给定的下钻速度和下钻深度进行孔加工,然后再以给定的速度提升,提升的同时迅速定位到下一个加工孔的坐标位置。

b、回零 准确的回零对机床的定位和加工起着重要的作用,本系统设计的回零方式借助于伺服电机的Z脉冲,当按下回零按钮后,程序的运动控制线程即按相应步骤发出回零指令给控制器,使机床准确的回零。设计的回零步骤为:各轴快速朝原点方向运动à碰到原点开关后缓停à缓停后反向低速运动à当接收到伺服电机的Z脉冲信号后停下来。机床即以停下来的坐标位置作为机床的原点。程序里面对每个步骤定义了一个宏,以此来区分加工到那一步骤。

c、回停车位 当按下回停车位的按钮后,发出回停车位的指令,使机床的XY轴分别运动到加工前设定到加工参数管理模块的停车位坐标。

d、换刀 钻床加工PCB板的时候需要加工不同直径的孔,这就要求在加工过程中当加工完一种直径的孔以后进行换刀,取到另外一直径的刀具进行加工。本系统的换刀方式有手动换刀和自动换刀两种。手动换刀就是在加工完一直径的孔后或刀具寿命到了以后回到停车位,由加工者手动把原刀具取下来并换上新的刀具然后恢复加工。手动换刀效率比较,现在的机床一般都采取自动换刀,本次设计的换刀流程如下:

Z轴回零——压脚抬起——X轴移动到原刀库的位置——Y轴移动到原刀库的位置——Z轴移动到换刀位置——张夹头放刀——延时——Z轴回零——XY轴回到停顿位置——检查刀具放回了——Z回零——回到停顿位置——X轴移动到目标刀具的位置——Y轴移动到目标刀具的位置——Z轴移动到换刀位置——合夹头取刀——延时——Z轴回零——回到停顿位置——检查刀具取到了——Z轴回零——XY轴回到停顿位置——压脚放下

换刀的软件实现同样是在运动控制线程里按以上步骤一步步完成,每个步骤类似回零步骤一样定义了一个宏来区分。当整个换刀流程执行完毕以后,机床继续加工剩余的孔。

5)自诊断检测 自诊断模块对机床的调试,检测,状态监视起着重要的作用。通过本模块,使用者可以随时的检测到机床电器信号状态,包括机床输入到控制器的信号和使用者通过控制器输出到机床的控制信号。程序里是通过另一个辅助线程PubMonitorThreadHandler不断的查询MPC08控制器的状态寄存器,并构建如下的对话框显示出来。

3 应用

该系统利用了MPC08运动控制器的强大功能,并在模块化思想指导下进行软件编程,最终有效的应用于PCB钻床的控制系统中,运行效果良好,并且通过了在PCB数控机床中高精度和速度的加工测试,加工使用0.1-0.3mm大小的刀径,孔间距为0.5mm,其各轴的最大速度,以及每分钟的钻孔个数均达到了预期的要求。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    16185

    浏览量

    177333
  • 计算机
    +关注

    关注

    19

    文章

    7409

    浏览量

    87690
  • 数控系统
    +关注

    关注

    5

    文章

    258

    浏览量

    24204
收藏 人收藏

    评论

    相关推荐

    什么是开放式数控系统?有哪些应用?

      数控系统作为数控机床的核心装备,对国民经济的一些重要行业(如国防军工、航天航空、it行业、汽车、轻工、冶金、医疗等)的发展起着越来越重要的作用。开放式、智能化、网络化成为当代数控系统
    发表于 09-29 08:02

    求一款新型开放式数控系统设计方案

    本文介绍一种采用无线通信技术的新型开放式数控系统
    发表于 06-02 06:57

    资料下载;于LINUX的开放式结构数控系统组成及特点

    于LINUX的开放式结构数控系统组成及特点作者:张承瑞 山东大学机械学院 1.系统组成该系统是一个基于标准PC硬件平台和LINUX与RTLinux结合的软件平台之上,设备驱动层采用现场
    发表于 07-05 06:25

    基于LINUX的开放式结构数控系统有哪些特点

    基于LINUX的开放式结构数控系统是由哪些部分组成的?基于LINUX的开放式结构数控系统有哪些特点?
    发表于 10-11 09:15

    开放式数控系统硬件平台设计

    针对“PC+运动控制器”的开放式数控系统,分析了开放式数控系统硬件平台设计总体
    发表于 06-03 09:35 23次下载

    基于PC的开放式数控系统的研究与开发

    在探讨了开放式数控系统开放途径的基础上,提出了一种运行在PC机上,基于DSP的完全开放数控系统,阐述了这种
    发表于 08-24 15:24 12次下载

    基于MPC5200的运动控制器设计

    分析并研究了基于Mpc5200 的运动控制器开放式数控系统的设计应用。由于Linux 不具有硬实时性,在
    发表于 08-27 09:01 22次下载

    开放式数控系统硬件平台设计

    针对“PC+运动控制器”的开放式数控系统,分析了开放式数控系统硬件平台设计总体
    发表于 10-13 09:05 73次下载

    基于PC的开放式数控系统体系的应用分析

    随着计算机技术的发展,数控系统正在发生着日新月异的变化。本文介绍了开放式数控系统的特征以及比较了当前开放式数控系统的几种模式。通过目前3 种
    发表于 01-11 17:11 25次下载

    开放式钻床数控系统软件的设计

    数控系统由传统的专用型封闭系统向灵活的开放式数控系统转变已成为一种必然趋势。与传统的封闭
    发表于 07-21 10:10 851次阅读

    基于Windows95环境下的PC开放式数控系统

    在引入开放式数控系统概念的基础上,讨论了开放式PC CNC 的各种实现方法。最后着重阐述了在Windows95 环境下,利用面向对象的开发方法,开发
    发表于 09-26 15:10 16次下载
    基于Windows95环境下的PC<b class='flag-5'>开放式</b><b class='flag-5'>数控系统</b>

    基于Windows CE.NET的开放式数控系统研究

    本文介绍了开放式数控系统的产生背景、特点及软硬件平台现状研制基于Windows CEnet平台 的开放式数控系统介绍了基 Windows CE1 net的
    发表于 04-18 11:28 2次下载

    开放式数控系统控制软件的研究与开发

    开放式数控系统控制软件的研究与开发,下来看看。
    发表于 05-03 09:38 11次下载

    基于STR-6无线数据传输模块实现开放式数控系统的设计

    采用无线通信技术的新型开放式数控系统由两部分构成:一部分是可移动的掌上控制器,即数控PDA;另一部分则安装于机床上,完成传统的运动
    的头像 发表于 06-22 15:26 2091次阅读
    基于STR-6无线数据传输模块<b class='flag-5'>实现</b><b class='flag-5'>开放式</b><b class='flag-5'>数控系统</b>的设计

    什么是开放式数控系统

    开放式数控系统给出如下定义:开放式数控系统本质一个具备软件平台化、功能模块化、界面组态化内部属性和可移植性、可伸缩性、互操作性外部特征,支持用户根据需求进行
    的头像 发表于 02-08 10:54 3829次阅读
    什么是<b class='flag-5'>开放式</b><b class='flag-5'>数控系统</b>?