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

雕刻机软件的开发参考资料

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

前言 
  以下控制以DMC1000控制卡为例) 

  一、功能和工艺要求 
  1.能处理标准CNC代码 
  2.加工精度为0.01至0.001毫米 
  3.加工控制能中断,并可从中断继续加工,或加工。可以模拟加工。 
  4.设定工作原点,控制高速主轴马达,可手动调试设备 
  5.具有手动或自动对刀工艺 
  6.有不同刀具,则需要提示换刀处理 
  二、系统流程 


  三、使用函数 
  手动调试需要完成的功能:输入输出测试,手动驱动脉冲,检测运行状态,停止动作,找机械原点: 
  对应的函数调为: 
  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 速度改变速度 
  d1000_start_ta_line_all 多轴插补函数 
  四、核心部分的编程 
  控制部分编程相对其它加工工艺较为简单,大致只要真实地按CNC代码行加工即可。通用需要一数据结构记录其信息。 
  数据结构大致可用两种方式处理,各有优缺点: 
  一种以指令为中心处理方式,此种方式分析代码速度较快,加工起来需要较多分支: 
  class Ccommand 
  { 
  public: 
  Ccomand(); 
  ~Ccomand(); 
  char chCommand; //指令码‘G’,‘M’,‘X’ 
  double fValue; //指令值 
  unsigned char nAttrib; //属性,是否行首、行中或行尾 
  }; 
  从以上结构可以看出,在加工过程中,需要有较多分支: 
  for( int I(0); I
  { 
  const Ccommand &cmd = dataArray[I]; 
  if( cmd.nAttrib != LINE_HEAD ){//若不为 
  I++; 
  Continue; 
  } 
  switch( cmd.chCommand ){ 
  case ‘G’: 
  switch( int(cmd.fValue) ){ 
  case 0: 
  break; 
  … 
  case ‘M’: 
  break; 
  … 
  } 
  } 
  在实际编程当中,需要考虑较多因素,以上编程的应用将会较为麻烦;故可以考虑用以下方法: 
  class CdataPoint 
  { 
  CdataPoint(); 
  ~CdataPoint(); 
  double x,y,z; //记录一个位置点 
  … //其它 
  } 
  此结构适用于简单的图形加工处理,对于其它M,F,S,T指令需要另外处理,视用户雕刻机的适用范围而言,且文件不宜太大,若要全方向考虑各种指令,及文件尺寸的兼容性。采用文件的实时分析加工是较好的策略。但要注意文件读取带来的额外开。若为DOS系统可加载Himem.sys的管理程序smartdrv.exe。文件读取可采用一行读至内存缓冲,然后从内存中分析,此方法便于文件位置的处理,大致可以写成伪代码如下: 
  FILE fp = fopen(“*.cnc”,”rt”); 
  Char lineBuffer[0x80]; 
  Char *pStr=NULL; 
  Char command=NULL; 
  Double value(0.0); 
  Long nFilePosition; 
  //从断点开始加工(若需从头开始,则只需要置m_nBreakFileOff为0即可 
  fseek( fp, m_nBreakFileOff, SEEK_SET ); 
  While( !feof(fp) && m_nWorkStatus != NORUN ){ 
  NFilePosition = fl( fp );a 
  If( fgets( lineBuffer,0x80, fp) == 0 ) break; 
  PStr = lineBuffer; 
  //开始分析一行并加工处理 
  While( *pStr && m_nWorkStatus != NORUN ){ 
  Command = *pStr ++; 
  If( ReadValue(pStr, value) == -1 ) continue;//ReadValue函数为自编的读取有效数据的函数 
  Switch( command ){ 
  Case ‘G’: 
  G_Command = int(value); 
  Switch( g_Command ){ 
  Case 71: fUnit = 1.0; break;//公制 
  Case 70: fUnit = 25.4; break;//英寸 
  Case 90: abs = true; break;// 
  Case 91: abs=false; break;//相对 
  Break; 
  Case ‘M’: 
  M_Command=int(vlaue); 
  Break; 
  Case ‘X’: fX = value; break; 
  Case ‘Y’: fY = value; break; 
  Case ‘Z’: fZ = value; break; 
  Case ‘I’: fI = value; break; 
  Case ‘J’: fY = value; break; 
  … 
  Case ‘\n’: //一行结束(此处可单写一些可调用的函数,以便程序阅读) 
  { 
  switch( g_Command ){ 
  case 0://快速达到 
  case 1://插补处理 
  case 2://顺弧处理 
  case 3://逆弧处理 
  break; 
  } 
  } break; 
  }// end switch command 
  }// end while 
  }// end feof(fp) 
  if( m_nWorkStatus != NORUN )//加工正常结束 
  m_nBreakFileOff = 0; 
  else m_nBreakFileOff = nFilePosition; 
  m_nWorkStatus = NORUN; 
  fclose(fp); 
  以上的文件处理方式,其大小与内存无关,只要求程序员写出流程较好的程序,写出分析及读取速度较快的函数,即ReadValue函数(请不要小瞧此函数的效率,若有参考需要,可致电索取)。 
  五、注意事项 
  1.注意换刀操作和自动/手动对刀的必要性 
  2.加工控制时,需要考虑断刀加工,暂停/继续的处理 
  3.加工控制时,需要考虑速度的调节 
  4.加工控制,需要考虑图形显示带来的额外计算负担
关键词:雕刻机
全年征稿/资讯合作 联系邮箱:1271141964@qq.com
  • 凡本网注明"来源:智能制造网"的所有作品,版权均属于智能制造网,转载请必须注明智能制造网,https://www.gkzhan.com。违反者本网将追究相关法律责任。
  • 企业发布的公司新闻、技术文章、资料下载等内容,如涉及侵权、违规遭投诉的,一律由发布企业自行承担责任,本网有权删除内容并追溯责任。
  • 本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。
  • 如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。


编辑精选

更多


宣传样本推荐图书

旗下子站

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



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

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

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

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

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

关闭