首页 新闻 工控搜 论坛 厂商论坛 产品 方案 厂商 人才 文摘 下载 展览
中华工控网首页
  P L C | 变频器与传动 | 传感器 | 现场检测仪表 | 工控软件 | 人机界面 | 运动控制
  D C S | 工业以太网 | 现场总线 | 显示调节仪表 | 数据采集 | 数传测控 | 工业安全
  电 源 | 嵌入式系统 | PC based | 机柜箱体壳体 | 低压电器 | 机器视觉
PCB钻铣软件的开发参考资料
收藏本文     查看收藏

技术支持小组 2003.09.23                           (以下控制以DMC1000控制卡为例)

一、功能和工艺要求
1
.对PCB电路径钻孔,精度小于0.01
2
.能铣出电路板块,精度小于0.1
3
.支持钻孔文件TXTROTDRLGBR
4
.支持多刀具补偿,多刀加工换刀操作
5
.接受NCCNC的平面坐标数据
6
.处理图形加工的顺序,及图形加工方向
7
.能简单编辑图形,如选择,旋转,平移,镜像,复制,排列等。
8
.加工控制能中断,并可从中断继续加工,或指定加工
9
.设定工作原点,控制高速主轴马达,可手动调试设备

二、系统流程



三、使用函数
手动调试需要完成的功能:输入输出测试,手动驱动脉冲,检测运行状态,停止动作,找机械原点:
对应的函数调为:
d1000_out_bit
数字输出函数,可以控制高速马达的开启或关闭
d1000_get_in_bit
读输入口状态
d1000_start_tr_move
手动发脉冲,可使用单轴点位运行
d1000_check_done
检测运动状态函数
d1000_decel_stop
停止脉冲输出(减速停较好)
d1000_home_move
单轴找原点函数
d1000_home_move_all
多轴找原点函数
d1000_board_init
控制卡初始化
d1000_board_close
控制卡释放

位置显示及清除需要的函数:
d1000_get_abs_position
取得绝对位置
d1000_set_position
设定位置函数,当值为0时位置清除

加工控制需要的函数:
d1000_start_ta_line2
两轴插补函数
d1000_set_vector_profile
设定矢量插补速度
d1000_change_speed
速度改变速度


四、核心部分的编程
该控制部分编程相对于激光控制难度较大,其加工控制部分及断点,事件处理可参见激光编辑核心部分。此处介绍铣边及钻孔在加工控制编程当中,需考虑的主要因素是刀具的参数及操作(如下刀,抬刀,换刀)。
其刀具需要一个数据结构定义如下:
class Cknife
{
public:
Cknife();
~Cknife();

double fDR; //
刀径
double fDownSpeed; //
下刀速度
double fUpSpeed; //
抬刀速度

const static int MAXLAYLE=0x10; //
支持最大的 下刀次数(16)
int nDups; //
需要下刀次数(此值不参大于MAXLAYLE
double fLayle[MAXLAYE];//
每次下刀深度不一样

int nLife; //
寿命长度
int nFinish; //
完成多少次孔操作
BOOL bDiWei; //
是否只用来作定位孔处理

COLORREF color; //
颜色标识
//
其它用户自定义属性
}

有了单一刀具的数据,还需要一个刀具管理类:
class CProcessknife
{
public:
CProcessKnife()
~CProcessKnife()

int Drill_Hold( int nKnife, PARA
); //专用于单孔钻处理
//
此函数,需要区别定位孔,处理多次钻孔,不同抬刀高度(停止时抬刀高度与作业抬刀高度是不一样的,此处编程有一小小技巧)

int Drill_Mark(int nKnife, BOOL bUpDown, PARA
);//用于铣边的下刀或抬刀处理,此函数,只管下刀到位,然后抬刀即可,需要取消定位孔的影响

int ReplaceKnife( int nKnife, PARA
);//换刀函数
//
此函数需要完成,达到指定位置进行换刀操作,需要考虑其操作被中断的情况

CArray knifeArray; //
建立一个动态的刀具数组
Int m_nCurrKnife; //
当前被操作的刀具索引

Struct TAG_SPEEDSC
{
double fDR; //
刀具
double fSC; //
速度比
}
TAG_SPEED m_speedSC[20]; //
建立一个速度比,最多20即可
Int ComplieSpeed(
); //速度比计算函数
//
其它用户函数,如增加刀具,删除刀具,取指定刀具参数,查找刀具

}

从纯编程技术手段来处理,以上的CprocessKnife类,可以处理成这样:
class CprocessKnife : public Carray
{//
用户函数
};
如此以来,动态数组所有特性功能CprocessKnife都具备,不必上述方法,要增加一个刀具对象需要如下函数:
设有CprocessKnife 对象有proknife
int Add( Cknife &knife ){
knifeArray.Add( knife );
return knifeArray.GetSize();
}

则调用为: proknife.Add( knife );
或者通过外部调来增加:
proknife.knifeArray.Add( knife );

需要使下新的方法,则无须写Add函数,如直接添加代码如下:
proknife.Add( knife );
诸如此类,可以节省大量编写代码时间,而其它用户定义函数照定义不误。

如此以来,钻孔或铣边时,编程基本思路如下:
钻孔为例:
void Chold::OnMark( PARA
){
proknife.Replace( holdKnife, para ); //
先处理是否要换刀
int step(0); //
为了说明问题,使用步进式编程较易明白

while( m_nWorkStatus == RUNNING && step < 2){
doEvent()
switch( step ){
case 0:
if( ismove() ) break;
fast_moveto( X, Y ); //
快速移到孔的XY位置
step ++;
case 1:
if( ismove() ) break;
m_nWorkStatus = proknife.Drill_Hold( holdKnife, para ); //
作一次钻孔操作
step ++;
break;
}
//
其它处理
铣边处理为(以多边形图形为例)
void PolyLine::OnMark( PARA
)
{
const int nSize = runData.GetSize();
for( int I(0); I
{
if( I == 0 || bBreak ){//
第一点,或有断点时(当中恐刀具有变动)
bBreak ?
moveto( break.x, break.y):
moveto( runData[I].x, runData[I].y );
while( ismove() ) ::doevent();
m_nWorkStatus = proknife.ReplaceKnife(polyKinife, para );//
换刀
if( m_nWorkStatus != RUNNING ) break;
proknife.Drill_Mark( polyKnife, TRUE , para );//
只下刀
continue;
}
conline(rundata[I].x, rundata[I].y,runSpeed); //
加工路径
//
其它处理
}// end for i
proknife.Drill_Mark( polyKnife, FALSE, para ); //
只抬刀
}// end on mark function


五、注意事项
其注意事项,部分可参见激光的参考资料,在此列出钻孔铣边细节上的注意事项:
1
.钻孔,需要支持钻槽钻圆操作
2
.当钻的孔径较大,需要铣出来时,则要有钻孔转成铣边处理
3
.钻孔与铣边都需要定位孔操作,需要提供其相应的处理方案
4
.钻孔的路径,需要有优化处理,通常文件输出图形已有优化
5
.铣边的图形,需要考虑如何根据不同的刀径作补偿处理
6
.铣边时,需要考虑内补偿,外补偿,无补偿的处理
7
.铣边时,需要考虑单元图形排列时,其加工的开始点可选择处理
8
Z轴的参数需要完善的管理(工面位置,工作高度,板材厚度等其它)


 

状 态: 离线

公司简介
产品目录
供应信息

公司名称: 深圳市雷赛智能控制股份有限公司
联 系 人: 梁邦敏
电  话: 755-26401178
传  真:
地  址: 深圳市南山区登良路天安南油工业区2栋3楼
邮  编: 518000
主  页:
 
该厂商相关解决方案:
应用DMC3000控制卡开发的鞋楦扫描机控制系统
激光切割软件的开发参考资料
雕刻机软件的开发参考资料
基于DMC-100运动控制卡的开放式数控系统设计及其应用
更多方案...
立即发送询问信息在线联系该解决方案厂商:
用户名: 密码: 免费注册为中华工控网会员
请留下您的有效联系方式,以方便我们及时与您联络

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 不良信息举报
工控网客服热线:0755-86369299
版权所有 中华工控网 Copyright©2022 Gkong.com, All Rights Reserved