久久久久久久麻豆,中日韩av在线,麻豆av在线免费,中文字幕二区三区,欧美日韩视频一区二区,亚洲欧美日韩在线一区,国产无毒不卡

雕刻機(jī)軟件的開發(fā)參考資料


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

  一、功能和工藝要求 
  1.能處理標(biāo)準(zhǔn)CNC代碼 
  2.加工精度為0.01至0.001毫米 
  3.加工控制能中斷,并可從中斷繼續(xù)加工,或指定加工。可以模擬加工。 
  4.設(shè)定工作原點(diǎn),控制高速主軸馬達(dá),可手動調(diào)試設(shè)備 
  5.具有手動或自動對刀工藝 
  6.有不同刀具,則需要提示換刀處理 
  二、系統(tǒng)流程 


  三、使用函數(shù) 
  手動調(diào)試需要完成的功能:輸入輸出測試,手動驅(qū)動脈沖,檢測運(yùn)行狀態(tài),停止動作,找機(jī)械原點(diǎn): 
  對應(yīng)的函數(shù)調(diào)為: 
  d1000_out_bit 數(shù)字輸出函數(shù),可以控制高速馬達(dá)的開啟或關(guān)閉 
  d1000_get_in_bit 讀輸入口狀態(tài) 
  d1000_start_tr_move 手動發(fā)脈沖,可使用單軸點(diǎn)位運(yùn)行 
  d1000_check_done 檢測運(yùn)動狀態(tài)函數(shù) 
  d1000_decel_stop 停止脈沖輸出(減速停較好) 
  d1000_home_move 單軸找原點(diǎn)函數(shù) 
  d1000_home_move_all 多軸找原點(diǎn)函數(shù) 
  d1000_board_init 控制卡初始化 
  d1000_board_close 控制卡釋放 
  位置顯示及清除需要的函數(shù): 
  d1000_get_abs_position 取得絕對位置 
  d1000_set_position 設(shè)定位置函數(shù),當(dāng)值為0時(shí)位置清除 
  加工控制需要的函數(shù): 
  d1000_start_ta_line2 兩軸插補(bǔ)函數(shù) 
  d1000_set_vector_profile 設(shè)定矢量插補(bǔ)速度 
  d1000_change_speed 速度改變速度 
  d1000_start_ta_line_all 多軸插補(bǔ)函數(shù) 
  四、核心部分的編程 
  控制部分編程相對其它加工工藝較為簡單,大致只要真實(shí)地按CNC代碼行加工即可。通用需要一數(shù)據(jù)結(jié)構(gòu)記錄其信息。 
  數(shù)據(jù)結(jié)構(gòu)大致可用兩種方式處理,各有優(yōu)缺點(diǎn): 
  一種以指令為中心處理方式,此種方式分析代碼速度較快,加工起來需要較多分支: 
  class Ccommand 
  { 
  public: 
  Ccomand(); 
  ~Ccomand(); 
  char chCommand; //指令碼‘G’,‘M’,‘X’ 
  double fValue; //指令值 
  unsigned char nAttrib; //屬性,是否行首、行中或行尾 
  }; 
  從以上結(jié)構(gòu)可以看出,在加工過程中,需要有較多分支: 
  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; 
  … 
  } 
  } 
  在實(shí)際編程當(dāng)中,需要考慮較多因素,以上編程的應(yīng)用將會較為麻煩;故可以考慮用以下方法: 
  class CdataPoint 
  { 
  CdataPoint(); 
  ~CdataPoint(); 
  double x,y,z; //記錄一個(gè)位置點(diǎn) 
  … //其它 
  } 
  此結(jié)構(gòu)適用于簡單的圖形加工處理,對于其它M,F(xiàn),S,T指令需要另外處理,視用戶雕刻機(jī)的適用范圍而言,且文件不宜太大,若要全方向考慮各種指令,及文件尺寸的兼容性。采用文件的實(shí)時(shí)分析加工是較好的策略。但要注意文件讀取帶來的額外開。若為DOS系統(tǒng)可加載Himem.sys的管理程序smartdrv.exe。文件讀取可采用一行讀至內(nèi)存緩沖,然后從內(nèi)存中分析,此方法便于文件位置的處理,大致可以寫成偽代碼如下: 
  FILE fp = fopen(“*.cnc”,”rt”); 
  Char lineBuffer[0x80]; 
  Char *pStr=NULL; 
  Char command=NULL; 
  Double value(0.0); 
  Long nFilePosition; 
  //從斷點(diǎn)開始加工(若需從頭開始,則只需要置m_nBreakFileOff為0即可 
  fseek( fp, m_nBreakFileOff, SEEK_SET ); 
  While( !feof(fp) && m_nWorkStatus != NORUN ){ 
  NFilePosition = ftell( 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函數(shù)為自編的讀取有效數(shù)據(jù)的函數(shù) 
  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’: //一行結(jié)束(此處可單寫一些可調(diào)用的函數(shù),以便程序閱讀) 
  { 
  switch( g_Command ){ 
  case 0://快速達(dá)到 
  case 1://插補(bǔ)處理 
  case 2://順弧處理 
  case 3://逆弧處理 
  break; 
  } 
  } break; 
  }// end switch command 
  }// end while 
  }// end feof(fp) 
  if( m_nWorkStatus != NORUN )//加工正常結(jié)束 
  m_nBreakFileOff = 0; 
  else m_nBreakFileOff = nFilePosition; 
  m_nWorkStatus = NORUN; 
  fclose(fp); 
  以上的文件處理方式,其大小與內(nèi)存無關(guān),只要求程序員寫出流程較好的程序,寫出分析及讀取速度較快的函數(shù),即ReadValue函數(shù)(請不要小瞧此函數(shù)的效率,若有參考需要,可致電索?。?。 
  五、注意事項(xiàng) 
  1.注意換刀操作和自動/手動對刀的必要性 
  2.加工控制時(shí),需要考慮斷刀加工,暫停/繼續(xù)的處理 
  3.加工控制時(shí),需要考慮速度的調(diào)節(jié) 
  4.加工控制,需要考慮圖形顯示帶來的額外計(jì)算負(fù)擔(dān)

COPYRIGHT(C) 2011 廈門永宏亞得機(jī)電科技有限公司版權(quán)所有(閩ICP備05025945號) ALL RIGHTS RESERVED?

電話: 0592-5190891 傳真: 0592-5190720 E-Mail: E-mail:yade8895@163.com
地址: 廈門市海滄區(qū)興港六里17號2607室 郵編:361009 聯(lián)系人:翟先生