您现在的位置:智能制造网>技术首页>

激光切割软件的开发参考资料

2008年02月22日 09:16来源:烟台勾股通信技术有限公司 >>进入该公司展台人气:465

(以下控制以DMC1000控制卡为例) 
  一、功能和工艺要求 
  1.接受常见的平面矢量图形文件,如PLT,DXF。 
  2.处理图形加工的先后顺序,及加工方向。 
  3.能简单处理图形,如选择,旋转,平移,镜像,复制,排列等。 
  4.可手动调试设备,及检测输入输出。 
  5.加工控制能调节速度,需要暂停,继续,中断等控制。 
  6.加工需要显示时度,时间,位置等部分用户信息 
  7.可设定加工工作原点,激光开关控制(此处不关心激光能量调节) 
  二、系统流程 
  



  三、使用函数 
  手动调试需要完成的功能:输入输出测试,手动驱动脉冲,检测运行状态,停止动作,找机械原点: 
  对应的函数调为: 
  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 速度改变速度 
  四、核心部分的编程 
  在实际编程当中,有较多细节需要解决: 
  1.需要考虑响应加工暂停,继续,中断的操作,位置显示等 
  2.暂停后XY位置需要记录,有可能XY被手动移开 
  3.加工完整个图形,需要回到一停止位置,以便取料 
  4.开激光关激光,需要考虑激光的反应时间 
  5.在实际应用当中,当激光未开启时,为提高速度,可直接采用点位运动 
  6.需要需要速度的调节处理 
  注意:以下代码只体现只实用的编程思想,不会能通过编译器的编译 
  const UINT NORUN =0x0000; //空闲,或中断状态 
  const UINT RUNNING =0x0001; //运行状态标识 
  const UINT CONTINUE =0x0002; //继续标识 
  const UINT PAUSE =0X0003 //暂停标识 
  UINT m_nWorkStatus = NORUN; //记录加工状态,初始化为NORUN 
  void OnButtonStart() 
  {//开始按钮(可当暂停,继续,开始用,在某些情况下,继续与暂停隔开较好一些) 
  if( runData.GetSize() < 1 ) 
  { 
  messageBox(“无加工数据或未生成加工路径”,”提示”); 
  return;, 
  } 
  switch( m_nWorkStatus ){ 
  case NORUN://若空闲,直接加工 
  m_nWorkStatus = RUNNING; //运行 
  RunData(); //调用加工核心函数 
  Break; 
  Case RUNNING://若在运行,则中断 
  M_nWorkStatus = PAUSE; 
  StopMove( X,Y ); //停止XY驱动 
  Break; 
  Case PAUSE://若为暂停 
  M_nWorkStatus = CONTINUE;//继续处理 
  Break; 
  } 
  } 
  void OnButtonStop() 
  {//中断加工处理 
  m_nWorkStatus = NORUN; 
  StopMove(X,Y); 
  } 
  double fRunSpeed(10.0); //加工速度 
  void RunData() 
  { 
  //数据runData的定义为: CarrayrunData 
  //CDPoint的定义,可参见[编程技术]的资料 
  const int nSize = runData.GetSize(); 
  //处理进度度 
  progress.SetRang(0, nSize); 
  CDPoint pntBreak; //暂停时记录的断点 
  BOOL bPause=false; 
  for( int I(0); I
  { 
  ::DoEvent(); //一个系统消息处理函数 
  switch( m_nWorkStatus ){ 
  case PAUSE://若为暂停,只管循检系统消息 
  continue; 
  case CONTINUE: 
  m_nWorkStatus = RUNNING; 
  case RUNNING: 
  { 
  if( IsMove(X,Y) ) break;//如果XY在运行,则继续检测系统消息 
  const CDPoint &pt = runData[I]; 
  if( I == 0 || bPause ) 
  { 
  bPause = false; 
  //快速到达*点或断点 
  I == 0? 
  fast_moveto( pt.x, pt.y )://达到*点 
  fast_moveto( pntBreak.x, pntBreak.y);//达到断点 
  while( IsMove(X,Y) ) :: DoEvent();//等待达到位置 
  if( m_nWorkStatus == RUNNING ) 
  { 
  OpenLasert( Nio ); //开启激光 
  Sleep( ti_open ); //开启延时 
  } 
  continue; 
  } 
  Con_Line_move( pt.x, pt.y, fRunSpeed ); 
  //此处用匀速,因为激光切割速度不快 
  while( IsMove(X,Y) ) ::DoEvent(); 
  if( m_nWorkStatus == PAUSE ) 
  { 
  CloseLasert( nIO );//关闭激光 
  Sleep( ti_close );//关闭延时 
  bPause = true;//有暂停 
  pntBreak.x = GetX(); pntBreak.y = GetY();//记录断点位置 
  } 
  else 
  if( m_nWorkStatus == RUNNING ) 
  {//正常完成一个数据点 
  I ++; 
  Progress.PostMessage( PM_POS, I, 0 ); //更新进度条 
  } 
  }// end case running 
  }// end switch workstatus 
  }// end for i 
  CloseLasert( nIO );//关闭激光 
  Sleep( ti_close );//关闭延时 
  if( m_nWorkStatus != NORUN ) 
  {//顺序加工完 
  Fast_moveto (stopX,stopY);//达到停止位置 
  //其它计数处理 
  } 
  else{ 
  //提示加工中断 
  } 
  } 
  void OnVscrollSpeed( ) 
  {//响应的速度事件调节 
  fRunSpeed += 1; 
  或者 
  fRunSpeed -=1; 
  d1000_change_speed( fRunSpeed );//速度值更改 
  } 
  注意: 
  ::DoEvent 函数在[编程技术]中或《编程高手》书中可找到 
  OpenLasert和CloseLasert函数只完成一个d1000_out_bit操作 
  Fast_moveto 内含XY两轴点位或插补驱动函数 
  Con_line_move 内含XY两轴的插补驱动函数(一般为常速) 
  GetX() 和GetY()函数内含d1000_get_abs_position位置读取函数 
  IsMove函数内含检测XY两轴运动状态检测函数 
  五、注意事项 
  1.本程序未考虑脉冲当量的关系,需要用户自行处理,在此只提供一种编程思路 
  2.部分参数需要用户通过设定,在此只为简单介绍 
  3.使用的部分结构需要参考其它资料,或。 
  4.控制操作在实际应用当中,需要改变按钮的文字显示,用户需要留意 
  5.完好的系统,需要限定速度和限定XY范围 
  6.在某些激光切割系统中,激光的控制较为复杂,其编程思想基本一致
全年征稿/资讯合作 联系邮箱:1271141964@qq.com
  • 凡本网注明"来源:智能制造网"的所有作品,版权均属于智能制造网,转载请必须注明智能制造网,https://www.gkzhan.com。违反者本网将追究相关法律责任。
  • 企业发布的公司新闻、技术文章、资料下载等内容,如涉及侵权、违规遭投诉的,一律由发布企业自行承担责任,本网有权删除内容并追溯责任。
  • 本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。
  • 如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。


编辑精选

更多


宣传样本推荐图书

旗下子站

工控网机器人仪器仪表物联网3D打印工业软件金属加工机械包装机械印刷机械农业机械食品加工设备制药设备仓储物流环保设备造纸机械工程机械纺织机械化工设备电子加工设备水泥设备海洋水利装备矿冶设备新能源设备服装机械印染机械制鞋机械玻璃机械陶瓷设备橡塑设备船舶设备电子元器件电气设备



关于我们|本站服务|会员服务|企业建站|旗下网站|友情链接| 兴旺通| 产品分类浏览|产品sitemap

智能制造网 - 工业4.0时代智能制造领域“互联网+”服务平台

Copyright gkzhan.comAll Rights Reserved法律顾问:浙江天册律师事务所 贾熙明律师

客服热线:0571-87756395加盟热线:0571-87759904媒体合作:0571-89719789

客服部:编辑部:展会合作:市场部:

关闭