顶级欧美丰满熟妇XXXXX视频,中文字幕亚洲精品乱码,久久黑国产,中文字幕一区二区三区日韩精品 ,色九月亚洲综合网

I/O 設(shè)備

激光切割軟件的開發(fā)參考資料

ainet.cn   2007年12月11日
?。ㄒ韵驴刂埔訢MC1000控制卡為例)

  一、功能和工藝要求

  1.接受常見的平面矢量圖形文件,如PLT,DXF。

  2.處理圖形加工的先后順序,及加工方向。

  3.能簡單處理圖形,如選擇,旋轉(zhuǎn),平移,鏡像,復(fù)制,排列等。

  4.可手動調(diào)試設(shè)備,及檢測輸入輸出。

  5.加工控制能調(diào)節(jié)速度,需要暫停,繼續(xù),中斷等控制。

  6.加工需要顯示時度,時間,位置等部分用戶信息

  7.可設(shè)定加工工作原點(diǎn),激光開關(guān)控制(此處不關(guān)心激光能量調(diào)節(jié))

  二、系統(tǒng)流程

  




  三、使用函數(shù)

  手動調(diào)試需要完成的功能:輸入輸出測試,手動驅(qū)動脈沖,檢測運(yùn)行狀態(tài),停止動作,找機(jī)械原點(diǎn):

  對應(yīng)的函數(shù)調(diào)為:

  d1000_out_bit 數(shù)字輸出函數(shù),可控制激光的開啟或關(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ù):

  d1000_start_ta_line2 兩軸插補(bǔ)函數(shù)

  d1000_set_vector_profile 設(shè)定矢量插補(bǔ)速度

  d1000_change_speed 速度改變速度

  四、核心部分的編程

  在實(shí)際編程當(dāng)中,有較多細(xì)節(jié)需要解決:

  1.需要考慮響應(yīng)加工暫停,繼續(xù),中斷的操作,位置顯示等

  2.暫停后XY位置需要記錄,有可能XY被手動移開

  3.加工完整個圖形,需要回到一停止位置,以便取料

  4.開激光關(guān)激光,需要考慮激光的反應(yīng)時間

  5.在實(shí)際應(yīng)用當(dāng)中,當(dāng)激光未開啟時,為提高速度,可直接采用點(diǎn)位運(yùn)動

  6.需要需要速度的調(diào)節(jié)處理

  注意:以下代碼只體現(xiàn)只實(shí)用的編程思想,不會能通過編譯器的編譯

  const UINT NORUN =0x0000; //空閑,或中斷狀態(tài)

  const UINT RUNNING =0x0001; //運(yùn)行狀態(tài)標(biāo)識

  const UINT CONTINUE =0x0002; //繼續(xù)標(biāo)識

  const UINT PAUSE =0X0003 //暫停標(biāo)識

  UINT m_nWorkStatus = NORUN; //記錄加工狀態(tài),初始化為NORUN

  void OnButtonStart()

  {//開始按鈕(可當(dāng)暫停,繼續(xù),開始用,在某些情況下,繼續(xù)與暫停隔開較好一些)

  if( e() < 1 )

  {

  messageBox(“無加工數(shù)據(jù)或未生成加工路徑”,”提示”);

  return;,

  }

  switch( m_nWorkStatus ){

  case NORUN://若空閑,直接加工

  m_nWorkStatus = RUNNING; //運(yùn)行

  RunData(); //調(diào)用加工核心函數(shù)

  Break;

  Case RUNNING://若在運(yùn)行,則中斷

  M_nWorkStatus = PAUSE;

  StopMove( X,Y ); //停止XY驅(qū)動

  Break;

  Case PAUSE://若為暫停

  M_nWorkStatus = CONTINUE;//繼續(xù)處理

  Break;

  }

  }

  void OnButtonStop()

  {//中斷加工處理

  m_nWorkStatus = NORUN;

  StopMove(X,Y);

  }

  double fRunSpeed(10.0); //加工速度

  void RunData()

  {

  //數(shù)據(jù)runData的定義為: CarrayrunData

  //CDPoint的定義,可參見[編程技術(shù)]的資料

  const int nSize = e();

  //處理進(jìn)度度

  g(0, nSize);

  CDPoint pntBreak; //暫停時記錄的斷點(diǎn)

  BOOL bPause=false;

  for( int I(0); I

  {

  ::DoEvent(); //一個系統(tǒng)消息處理函數(shù)

  switch( m_nWorkStatus ){

  case PAUSE://若為暫停,只管循檢系統(tǒng)消息

  continue;

  case CONTINUE:

  m_nWorkStatus = RUNNING;

  case RUNNING:

  {

  if( IsMove(X,Y) ) break;//如果XY在運(yùn)行,則繼續(xù)檢測系統(tǒng)消息

  const CDPoint &pt = runData[I];

  if( I == 0 || bPause )

  {

  bPause = false;

  //快速到達(dá)第一點(diǎn)或斷點(diǎn)

  I == 0?

  fast_moveto( pt.x, pt.y )://達(dá)到第一點(diǎn)

  fast_moveto( pntBreak.x, pntBreak.y);//達(dá)到斷點(diǎn)

  while( IsMove(X,Y) ) :: DoEvent();//等待達(dá)到位置

  if( m_nWorkStatus == RUNNING )

  {

  OpenLasert( Nio ); //開啟激光

  Sleep( ti_open ); //開啟延時

  }

  continue;

  }

  Con_Line_move( pt.x, pt.y, fRunSpeed );

  //此處用勻速,因?yàn)榧す馇懈钏俣炔豢?

  while( IsMove(X,Y) ) ::DoEvent();

  if( m_nWorkStatus == PAUSE )

  {

  CloseLasert( nIO );//關(guān)閉激光

  Sleep( ti_close );//關(guān)閉延時

  bPause = true;//有暫停

  pntBreak.x = GetX(); pntBreak.y = GetY();//記錄斷點(diǎn)位置

  }

  else

  if( m_nWorkStatus == RUNNING )

  {//正常完成一個數(shù)據(jù)點(diǎn)

  I ++;

  ssage( PM_POS, I, 0 ); //更新進(jìn)度條

  }

  }// end case running

  }// end switch workstatus

  }// end for i

  CloseLasert( nIO );//關(guān)閉激光

  Sleep( ti_close );//關(guān)閉延時

  if( m_nWorkStatus != NORUN )

  {//順序加工完

  Fast_moveto (stopX,stopY);//達(dá)到停止位置

  //其它計(jì)數(shù)處理

  }

  else{

  //提示加工中斷

  }

  }

  void OnVscrollSpeed( )

  {//響應(yīng)的速度事件調(diào)節(jié)

  fRunSpeed += 1;

  或者

  fRunSpeed -=1;

  d1000_change_speed( fRunSpeed );//速度值更改

  }

  注意:

  ::DoEvent 函數(shù)在[編程技術(shù)]中或《編程高手》書中可找到

  OpenLasert和CloseLasert函數(shù)只完成一個d1000_out_bit操作

  Fast_moveto 內(nèi)含XY兩軸點(diǎn)位或插補(bǔ)驅(qū)動函數(shù)

  Con_line_move 內(nèi)含XY兩軸的插補(bǔ)驅(qū)動函數(shù)(一般為常速)

  GetX() 和GetY()函數(shù)內(nèi)含d1000_get_abs_position位置讀取函數(shù)

  IsMove函數(shù)內(nèi)含檢測XY兩軸運(yùn)動狀態(tài)檢測函數(shù)

  五、注意事項(xiàng)

  1.本程序未考慮脈沖當(dāng)量的關(guān)系,需要用戶自行處理,在此只提供一種編程思路

  2.部分參數(shù)需要用戶通過設(shè)定,在此只為簡單介紹

  3.使用的部分結(jié)構(gòu)需要參考其它資料,或來電咨詢。

  4.控制操作在實(shí)際應(yīng)用當(dāng)中,需要改變按鈕的文字顯示,用戶需要留意

  5.完好的系統(tǒng),需要限定速度和限定XY范圍

  6.在某些激光切割系統(tǒng)中,激光的控制較為復(fù)雜,其編程思想基本一致

(轉(zhuǎn)載)

標(biāo)簽:激光切割 軟件 我要反饋 
泰科電子ECK、ECP系列高壓直流接觸器白皮書下載
億萬克
專題報(bào)道