为机床工具企业提供深度市场分析                     

用户名:   密码:         免费注册  |   申请VIP  |  

English  |   German  |   Japanese  |   添加收藏  |  
钻床

车床 铣床 钻床 数控系统 加工中心 锻压机床 刨插拉床 螺纹加工机床 齿轮加工机床
磨床 镗床 刀具 功能部件 配件附件 检验测量 机床电器 特种加工 机器人

车床

电工电力 工程机械 航空航天 汽车 模具
仪器仪表 通用机械 轨道交通 船舶

搜索
热门关键字:

数控机床

 | 数控车床 | 数控系统 | 滚齿机 | 数控铣床 | 铣刀 | 主轴 | 立式加工中心 | 机器人
您现在的位置:钻床网> 技术前沿>基于VC++ 和DSP 的PCB 钻床控制系统设计
基于VC++ 和DSP 的PCB 钻床控制系统设计
2015-11-5  来源:唐山学院信息工程系  作者:王建龙



      引言

 

      随着电子工业以及计算机行业的迅速发展,工业及日常生活上对印制电路板的需求量与日俱增。数控钻床是PCB 加工过程中的必备设备。本设计构建的数控系统硬件以德州仪器的TMS320F2812 为核心,软件采用上位机与下位机联合工作的方式。与目前常用的PCB 钻床数控系统相比,在保证系统性能的基础上大大降低了成本。硬件设计系统包括上位机和下位机两部分。上位机采用PC 机,通过串口与下位机进行通信。下位机以TMS320F2812为核心,接收到来自上位机的钻孔数据以后,通过DSP的GPIO 口控制步进电机驱动器,完成钻头的定位以及钻孔的动作。系统的结构示意图如图1 所示。

 

      

                                             图1 硬件结构

   

      DSP 的GPIO 口G4、G5、A0、A1、A2、A3 分别连接X、Y、Z 轴步进电机驱动器的DIR 和PUL 信号,由于DSP 系统工作电平较低,为了保证步进电机驱动器的光耦隔离电路正常工作,输入信号采用共阳极的接法。驱动器设置为32 细分。步进电动机为42 型两项四线电机,步距角为1.8 度。机床采用螺距为3.5mm 的梯形丝杠进行传动。设置系统精确到0.1mm,因此系统脉冲数以183 为最小单位。

 

      软件设计

 

      软件功能简介
 

      本软件系统支持机床的手动控制以及根据钻孔数据对PCB 进行自动钻孔,软件系统包括上位机软件和下位机软件两部分。进行自动钻孔之前需要先由Protel 或Altium Designer 导出文本格式的坐标数据文件。

 

      上位机可以通过按钮控件对下位机发送手动控制命令,进行原点校正以及手动控制;同时上位机可以通过VC++ 软件提取出文本文件的坐标数据,进而进行钻床的自动控制。上位机综合两种类型数据进行进一步处理,最后通过串口控件将数据发送给下位机。

 

      下位机接收到数据进行解析,进行相应的手动或自动方式下的步进电机驱动器控制信号的输出,进而对三个坐标方向的步进电机进行运动控制。

      上位机软件设计

      本上位机软件可以提取由Protel 或Altium Designer软件导出的钻孔坐标数据。由CAD 软件导出钻孔数据时选用NC Drill 类型,单位采用Millimeter,format 设置成4 :2(精确到0.01mm),最后导出扩展名为txt 的文本文件即可。上位机软件主要包括手动控制和自动控制两大功能,软件界面如图2 所示。为了便于下位机对控制指令的识别,对发送数据的首字节进行设定:首字节一共有三种情况,分别是0xaa、0xbb 和0xcc。0xaa 和0xcc 用于手动控制的开始与停止,0xbb 用于自动控制的开始。为了便于操作,上位机启动后直接对串口进行初始化,后续工作可以随时开始。

 

     

                                 图2 上位机控制界面

      手动控制

 

      手动控制分为“上下左右前后”三轴六个方向的按钮,其中指定X 轴为左右运动,Y 轴为前后运动,Z 轴为上下运动,分别由相应按钮进行调节。为了便于手动操作,按钮按下时机床以一定的速度向指定的方向运行,按钮抬起时停止运动。由于微软MFC 按钮默认情况下不支持按钮按下和抬起动作的分别识别,因此引入PreTranslateMessage(MSG* pMsg)函数对按钮的动作进行捕捉并解析。

      手动控制情况下,相应按钮按下时,首先发送0xaa字节,然后依次发送X 轴方向及使能、Y 轴方向及使能、Z 轴方向及使能共七个字节,下位机接收数据完毕后驱动相应步进电机转动。当手动控制按键抬起后,发送0xcc字节,下位机接收后使对应步进电机停止运行,完成一个手动控制过程。

 

      自动控制

 

      需要自动钻孔方式运行时,通过“打开”按钮读入NC DRILL 文件数据,并且在左边的显示区对源码、钻孔尺寸分类以及每种孔径的个数进行显示,通过钻孔尺寸下拉菜单选取相应尺寸后点击“开始钻孔”即可对选定孔径的所有坐标进行定位钻孔。

      与手动情况下发送数据不同,由于自动控制情况下发送的钻孔坐标个数不固定,因此需要在所有坐标发送完毕后加上结束字节0xff 以便下位机判断数据传送的结束,进而可以进行数据处理以及驱动器的控制。CAD 文件导出的坐标数据精确到0.01mm,整数位为四位有效数字。为了便于下位机处理,上位机将坐标数据处理成统一格式:小数点后不足两位的用零补齐,每个坐标的X 和Y 的值都表示成六位,分别用6 个字节表示,因此每个孔位表示成12 个字节,用data.Add();进行依次发送。坐标数据顺次发送完毕后,在最后发送0xff 字节,表示数据传送完毕,下位机可以进行后续处理。


        下位机软件设计


        相应的下位机软件可以针对上位机的两种操作模式进行解析,进而产生对应的驱动信号。下位机程序流程图如图3 所示。

 

        

                                 图3 下位机程序流程图

   
        TMS320F2812 对各部件初始化完毕后进入死循环,采用中断方式接收串口数据。如果接收到首字节为0xaa,进入手动控制模式,根据后续六个字节数据判断方向与对应使能信号后开始输出控制脉冲,电机带动相应轴运动,当接收到0xcc 后退出循环,结束脉冲输出,步进电机进入锁定状态。

        如果首字节接收到0xbb,则进入自动控制模式,依次接收串口数据,当接收到0xff 时,数据传输结束。根据下一点坐标与当前坐标点的差值输出相应的脉冲数,精确定位到下一个孔位的坐标处进行钻孔动作。每种孔径钻孔完毕后需要钻头回到原点,但是因为成本限制的原因,机床没有采用限位装置,所以在钻孔过程中用变量对行程进行累加,最后一个孔钻孔结束后往原点方向运行累计值即可回到原点,最后退出本次循环即可。


 
        结束语


        采用VC++ 与DSP 结合的方式实现了高精度低成本的PCB 钻床控制系统。系统运行平稳、高效,面向低预算的行业有着广阔的应用前景。

    投稿箱:
        如果您有机床行业、企业相关新闻稿件发表,或进行资讯合作,欢迎联系本网编辑部, 邮箱:skjcsc@vip.sina.com