亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? processg72.c

?? 控制電機運動的G代碼程序,如果對G代碼不清楚,請先看懂G代碼,然后再看本程序.
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include "base.h"
   

FP32        G72_Pos_U;	
FP32        G72_Pos_W;
FP32        G72_Pos_X;
FP32        G72_Pos_Z;
FP32        G72_Pos_I;
FP32        G72_Pos_K;
FP32        G72_Pos_R;

FP32        G72_Abs_PosX;
FP32        G72_Abs_PosZ;
FP32        G72_Abs_PosI;
FP32        G72_Abs_PosK;
FP32        G72_Abs_PosR;

BOOLEAN     G72_bEnd;
	 
BOOLEAN ProcessG72(INT32U StartHang,INT32U EndHang,FP32 ZaddPerTime,FP32 Zremain,FP32 Xremain,FP32 BackValue)
{

  INT32U  i;
  INT8U   ret;
  FP32    LoopStartXpos;
  FP32    LoopStartZpos;
  FP32    LoopEndXpos;
  FP32    LoopEndZpos;
  INT16U   LoopCount;
  FP32    Start_X;
  FP32    Start_Z;
  FP32    TempX,TempZ;
  
  for (i=0;i<MAXNUMBER;i++){
     LineValue[i].Pos=0;
     CircleValue[i].Pos=0;
     LineValue[i].StartX=0;
     CircleValue[i].StartZ=0;
     LineValue[i].EndX=0;
     CircleValue[i].EndZ=0;
     LineValue[i].K=0;
     CircleValue[i].K=0;
     CircleValue[i].I=0;
  }
  G72_bEnd=0;    
  G72ResetPara();
  CircleShapNum=0;
  AllNum=0;
  LineShapNum=0;
  Xdec=0;Xinc=0;Zdec=0;Zinc=0;
   
  G72.CurrentNum=G72FindStartHang(StartHang);
  if (G72.CurrentNum==0xfffff){
       DispErrCode(19);
       return FALSE;
  }
  if (G72ProcessAllCode(EndHang)!=6){
       DispErrCode(21);
       return FALSE;
  }
  if(AllNum<=1){
       DispErrCode(40);
       return FALSE;
  }  
  if(Xdec && Zinc){
       DispErrCode(39);return FALSE;
  }
  if(Xdec && Zdec){
       DispErrCode(39);return FALSE;
  }
  if(Xinc && Zinc){
        ZaddPerTime=fabs(ZaddPerTime);BackValue=fabs(BackValue);bit=FALSE;
  }
  if(Xinc && Zdec){
        ZaddPerTime=fabs(ZaddPerTime);BackValue=fabs(BackValue);bit=TRUE;
  }
  Start_X=Get_AbsPos(1);
  Start_Z=Get_AbsPos(3);
  
  i=0;
  while(1){
        if (CircleValue[i].Pos==1){
	        LoopStartZpos=CircleValue[i].StartZ;
	        break;
	    }
        if (LineValue[i].Pos==1){
	        LoopStartZpos=LineValue[i].StartZ;
	        break;
	    }
	    i++;
	    if(g_Scram)return FALSE;
  }
  
  i=0;
  while(1){
        if (CircleValue[i].Pos==AllNum){
	        LoopEndZpos=CircleValue[i].EndZ;
	        LoopEndXpos=CircleValue[i].EndX;
	        LoopStartXpos=CircleValue[i].EndX;
	        break;
	    }
        if (LineValue[i].Pos==AllNum){
	        LoopEndZpos=LineValue[i].EndZ;
	        LoopEndXpos=LineValue[i].EndX;
	        LoopStartXpos=LineValue[i].EndX;
	        break;
	    }
	    i++;
	    if(g_Scram)FALSE;
  }
//  LoopCount=(INT8U)(fabs((LoopStartZpos-LoopEndZpos)/ZaddPerTime));
//  if (LoopCount>200){DispErrCode(26);return FALSE;}
  
  LoopCount=(INT16U)(fabs((LoopStartZpos-LoopEndZpos)/ZaddPerTime));
  if (LoopCount>LOOPTIMES){DispErrCode(26);return FALSE;}
  if (LoopCount==0){DispErrCode(27);return FALSE;}
  
  Set_InpSpeed(g_Sysparam.Max_FastSpeed);
  Target_PosX=LoopStartXpos;
  Target_PosZ=LoopStartZpos;
  bRunInp=FALSE;
  while(1)
  {
	 G01_AbsPos(LoopStartXpos,LoopStartZpos);
	 g_MoveMode=1;
	 ret=WaitMotionEnd();
	 if(ret==255)return FALSE;
	 if(ret==0)break;
  }
 
  i=0;
  while(1)
  {
         g_Current_ASpeed=g_Current_PSpeed*g_Current_Inp_Rate;
	     if(g_Current_ASpeed>g_Sysparam.Max_FastSpeed)
		      g_Current_ASpeed=g_Sysparam.Max_FastSpeed;
	     Set_InpSpeed(g_Current_ASpeed);
	     if(bit)
	     {
	          TempX=G72ConstructionFunc(LoopStartZpos-i*ZaddPerTime)+Xremain;
	     }
	     else
	     {
	          TempX=G72ConstructionFunc(LoopStartZpos+i*ZaddPerTime)+Xremain;
	     }     
	     Target_PosX=TempX;
         Target_PosZ=Get_AbsPos(3);
	     bRunInp=TRUE;
	     while(1){
	          G01_AbsPos(TempX,Get_AbsPos(3));
	          g_MoveMode=1;
	          ret=WaitMotionEnd();
	          if(ret==255)return FALSE;
	          if(ret==0)break;
	     }
	     g_Current_ASpeed=g_Current_PSpeed*g_Current_Inp_Rate;
	     if(g_Current_ASpeed>g_Sysparam.Max_FastSpeed)
		      g_Current_ASpeed=g_Sysparam.Max_FastSpeed;
	     Set_InpSpeed(g_Current_ASpeed);
	     if(bit){
	           TempX=Get_AbsPos(1)+BackValue;TempZ=Get_AbsPos(3)+BackValue;
	     }else{
	           TempX=Get_AbsPos(1)+BackValue;TempZ=Get_AbsPos(3)-BackValue;
	     }
	     Target_PosX=TempX;
         Target_PosZ=TempZ;
	     bRunInp=TRUE;
	     while(1){
	          G01_AbsPos(TempX,TempZ);
	          g_MoveMode=1;
	          ret=WaitMotionEnd();
	          if(ret==255)return FALSE;
	          if(ret==0)break;
	     }
         Set_SipSpeed(1,g_Current_Fast_Rate*g_Sysparam.X_FastSpeed);
	     Set_SipSpeed(3,g_Current_Fast_Rate*g_Sysparam.Z_FastSpeed);
	     Target_PosX=LoopStartXpos;
	     bRunInp=FALSE;
         while(1){
	          Move_AbsPos(1,LoopStartXpos);
	          g_MoveMode=1;
	          ret=WaitMotionEnd();
	          if(ret==255)return FALSE;
	          if(ret==0)break;
         }
	     Set_SipSpeed(1,g_Current_Fast_Rate*g_Sysparam.X_FastSpeed);
	     Set_SipSpeed(3,g_Current_Fast_Rate*g_Sysparam.Z_FastSpeed);
	     if(bit){
	          TempZ=Get_AbsPos(3)-ZaddPerTime-BackValue;
	     }else{
	          TempZ=Get_AbsPos(3)+ZaddPerTime+BackValue;
	     }
	     Target_PosZ=TempZ;
	     bRunInp=FALSE;
         while(1){
	          Move_AbsPos(3,TempZ);
	          g_MoveMode=1;
	          ret=WaitMotionEnd();
	          if(ret==255)return FALSE;
	          if(ret==0)break;
         }
	     i++;
	     if (i==LoopCount)break;
  }
  
  Set_InpSpeed(g_Sysparam.Max_FastSpeed);
  Target_PosX=Start_X;
  Target_PosZ=Start_Z;
  bRunInp=FALSE;
  while(1){
	 G01_AbsPos(Start_X,Start_Z);
	 g_MoveMode=1;
	 ret=WaitMotionEnd();
	 if(ret==255)return FALSE;
	 if(ret==0)break;
  }
  return TRUE;
  
}


INT8U G72GetNextSeg(INT8U *First,INT8U *buf,INT8U *End)
{
	INT8U    s;
	INT16U   i;
	
	for(;;)
	{
		s=g_DataBuf.DataBuf[G72.CurrentNum];
		switch(s)
		{
		case '%':       
		     *First=s;
 			 buf[0]=0x0;
 			 Uart_Printf("%");
 			 Uart_Printf("%d",G72.CurrentNum);
			 return 4;//
		     break;
		case '(':
		case '/'://注釋	
			*First=s;
			i=0;
			while(i<=255){
				G72.CurrentNum++;
				if(g_iCurrentNum>=g_DataBuf.DataLength)
				{
					buf[0]=0x0;
					*End=FALSE;
					return 255;			
				}
				s=g_DataBuf.DataBuf[G72.CurrentNum];
				if(s!=0x0a && s!=0x0d){
					buf[i]=s;		
				}
				if(s==0x0a){
					buf[i]=0x00;	
					*End=FALSE;
					G72.CurrentNum++;
					if(G72.CurrentNum>=g_DataBuf.DataLength)return 255;
					return 0;//一行代碼結束
				}
				i++;
			}
			buf[0]=0x0;
			*End=TRUE;
			return 2;//注釋超長
		case 0x0d:
		     G72.CurrentNum++;
		    break;
		case 0x0a:
			*First=s;
			G72.CurrentNum++;
			if(G72.CurrentNum>=g_DataBuf.DataLength)
			{	
				buf[0]=0x0;
				*End=FALSE;
				return 255;			
			}
			return 0;//一行代碼結束
			break;
		case 'A':case 'B':case 'C':case 'D':case 'E':
		case 'F':case 'G':case 'H':case 'I':case 'J':
		case 'K':case 'L':case 'M':case 'N':case 'O':
		case 'P':case 'Q':case 'R':case 'S':case 'T':
		case 'U':case 'V':case 'W':case 'X':case 'Y':case 'Z':
			*First=s;
			i=0;
			while(i<=255){
				G72.CurrentNum++;
				if(G72.CurrentNum>=g_DataBuf.DataLength)
				{
					buf[0]=0x0;
					*End=TRUE;
					return 255;	
				}
				s=g_DataBuf.DataBuf[G72.CurrentNum];
				if((s>='0' && s<='9') || s=='.' || s=='-' || s=='+'){
					buf[i]=s;		
					i++;
				}
				else if(s==0x0d)	
				{
					;
				}
				else if(s==0x0a)    
				{
					buf[i]=0x00;
					*End=FALSE;
					G72.CurrentNum++;
					if(G72.CurrentNum>=g_DataBuf.DataLength)
						return 255;			
					return 0;//一行代碼結束
				}
				else 
				{
					buf[i]=0x00;
					*End=FALSE;
					return 5;//字代碼結束
				}
			}
			return 2; //數據超長	
		default:
			*First=s;
			buf[0]=0x00;
			*End=TRUE;
			return 3;//其它的字
		}
	}
}
 
INT8U G72ProcessAllCode(INT32U EndHang)
{
	INT8U 		    Error;
	INT8U 		    End;
	INT8U 		    num,len;
	INT8U 		    First,buf[255];
    INT8U           k,j;
    INT32U          Hang;
    
	while(1){			
    
        Error=G72GetNextSeg(&First,buf,&End);
        if(Error != 0 &&  Error !=5)break;
		if(End)break;
		switch(First)
		{
		case '%':		
		case '/':		
		case '(':		
		case 0x0d:
		case 0x0a:
             break;
		case 'N':	  
			 if(strlen((char *)buf)==0){Error=72;break;}
			 if(bN_Code==1) {Error=72;break;}
			 
             k=0;Hang=0;j=strlen((char *)buf);
	         while(j){
	               Hang=(buf[k]-'0')+Hang*10; 
              	   k++; 
              	   j--;    
	         }
			 if(EndHang==Hang)
			 {
			    G72_bEnd=TRUE;
			    G72ResetPara();
			 }
   		     bN_Code=TRUE;
			 break;
		case 'G':	
			len=strlen((char *)buf);
			if(len !=1 && len !=2 ){Error=72;break;}
			if(len==1) num=buf[0]-'0';
			else       num=(buf[0]-'0')*10+buf[1]-'0';
			switch(num){
			  case 0:		
			  case 1:		
			  case 2:		
			  case 3:	
			  case 4:	
				  bG_Code=1;
				  break;
			  default:
			      Error=72;
				  break;
			}
			iG_Code=num;
			break;
		case 'M':		
			len=strlen((char *)buf);
			if(len !=1 && len !=2 ){Error=72;break;}
			if(len==1) num=buf[0]-'0';
			else       num=(buf[0]-'0')*10+buf[1]-'0';
			switch(num){
			  case 3:		
			  case 4:		
			  case 5:		
			  case 8:		
			  case 9:		
			  case 10:	
			  case 11:	
			  case 32:
			  case 33:
				   iM_Code=num;
				   bM_Code=1;
				   break;
			  case 0:		
				   g_IsRun=2;
				   break;
			  default:
				   Error=72;
				   break;
			}		
			break;
		case 'X':
			if(strlen((char *)buf)==0){Error=72;break;}
			if(bU_Code||bX_Code){Error=72;break;}
			G72_Pos_X=BfFromStr(buf);
			if(g_Sysparam.DiaOrRadius)G72_Pos_X=G72_Pos_X/2;
		    bX_Code=TRUE;
			break;
		case 'Z':		
			if(strlen((char *)buf)==0){Error=72;break;}
			if(bW_Code||bZ_Code){Error=72;break;}
			G72_Pos_Z=BfFromStr(buf);
			bZ_Code=TRUE;
			break;
		case 'U':	
		    if(strlen((char *)buf)==0){Error=72;break;}
			if(bX_Code||bU_Code){Error=72;break;}
			G72_Pos_U=BfFromStr(buf);
		    if(g_Sysparam.DiaOrRadius)G72_Pos_U=G72_Pos_U/2;
			bU_Code =TRUE;
			break;
		case 'W':	
			if(strlen((char *)buf)==0){Error=72;break;}
			if(bZ_Code||bW_Code){Error=72;break;}
			G72_Pos_W=BfFromStr(buf);
			bW_Code = 1;
			break;
		case 'I':		
			if(strlen((char *)buf)==0){Error=72;break;}
			if(bI_Code){Error=72;break;}
			G72_Pos_I=BfFromStr(buf);
			bI_Code = TRUE;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩激情在线观看| 国产在线播放一区二区三区| 亚洲伊人伊色伊影伊综合网| 日本不卡不码高清免费观看| 国产一区二区精品在线观看| 99精品桃花视频在线观看| 欧美日韩精品欧美日韩精品一 | 亚洲三级久久久| 丝袜诱惑亚洲看片| 波多野结衣中文一区| 欧美一区中文字幕| 一区二区三区波多野结衣在线观看| 精品一区二区三区av| 欧美性受xxxx黑人xyx性爽| 国产片一区二区| 青椒成人免费视频| 色天使色偷偷av一区二区| 亚洲精品一区二区三区蜜桃下载| 亚洲成人免费影院| 91在线一区二区| 国产三级精品视频| 国产在线视视频有精品| 6080国产精品一区二区| 夜夜爽夜夜爽精品视频| 91社区在线播放| 欧美激情综合五月色丁香| 国产在线播精品第三| 91精品国产综合久久香蕉麻豆| 亚洲欧洲综合另类| www.日韩精品| 欧美国产一区在线| 国产福利视频一区二区三区| 精品盗摄一区二区三区| 老司机一区二区| 91精品国产91久久久久久一区二区 | 国产在线一区观看| 精品久久久久久无| 男女男精品视频| 日韩一区二区视频| 蜜桃视频在线一区| 精品精品国产高清a毛片牛牛| 偷拍一区二区三区四区| 精品视频一区二区三区免费| 亚洲精品欧美激情| 日本大香伊一区二区三区| 一区二区三区欧美在线观看| 91免费视频网| 亚洲国产日韩综合久久精品| 欧美系列日韩一区| 亚洲观看高清完整版在线观看| 99re热这里只有精品免费视频| 亚洲视频资源在线| 一本一道久久a久久精品综合蜜臀| 一区二区三区**美女毛片| 欧美丰满一区二区免费视频| 秋霞成人午夜伦在线观看| 国产亚洲欧美激情| 色综合久久综合网欧美综合网| 亚洲成人一区二区| 欧美www视频| 99这里都是精品| 亚洲午夜成aⅴ人片| 9191久久久久久久久久久| 国产曰批免费观看久久久| 国产精品女主播在线观看| 欧美视频精品在线| 国产在线视频一区二区三区| 国产精品狼人久久影院观看方式| 欧美三级电影在线看| 精品系列免费在线观看| 亚洲精品第一国产综合野| 91精品国产麻豆| 国产精品一区二区黑丝| 亚洲国产成人一区二区三区| 国产成人免费视频一区| 亚洲一二三区不卡| 日韩一级高清毛片| 国产高清精品在线| 亚洲已满18点击进入久久| 精品国产一区二区亚洲人成毛片| 国产成人在线电影| 久久久久久久久一| 色噜噜狠狠色综合欧洲selulu| 亚洲国产欧美在线人成| 日韩欧美国产综合一区| 成人激情图片网| 亚洲成人资源在线| 久久一区二区三区四区| 国产福利精品导航| 蜜臀精品久久久久久蜜臀| 国产精品欧美经典| 337p亚洲精品色噜噜| 懂色中文一区二区在线播放| 亚洲永久精品国产| 久久久久久久综合| 欧美三级视频在线观看| 国产成人精品影院| 亚洲福利视频一区二区| 国产日韩欧美制服另类| 欧美日韩一级黄| av激情综合网| 精品午夜一区二区三区在线观看| 亚洲狠狠丁香婷婷综合久久久| www国产成人免费观看视频 深夜成人网| 国产精品自在欧美一区| 日韩**一区毛片| 日韩理论电影院| 久久久不卡影院| 91精品蜜臀在线一区尤物| 色综合久久九月婷婷色综合| 国产精品系列在线播放| 免费观看在线色综合| 亚洲午夜av在线| 亚洲色图欧美偷拍| 久久久久99精品国产片| 日韩免费观看高清完整版在线观看| 在线观看一区二区视频| 成人av综合一区| 大美女一区二区三区| 久久不见久久见免费视频7| 亚洲一区中文在线| 久久伊99综合婷婷久久伊| 色嗨嗨av一区二区三区| 97久久精品人人做人人爽 | 欧美一区二区三区免费视频| 色呦呦一区二区三区| 成人的网站免费观看| 亚洲国产精品久久不卡毛片| 亚洲第一激情av| 亚洲成a人片在线不卡一二三区| 最新热久久免费视频| 国产精品污网站| 日本一区二区三级电影在线观看 | 日韩一区中文字幕| 国产免费观看久久| 国产精品进线69影院| 国产精品免费久久久久| 国产日韩欧美精品在线| 久久久欧美精品sm网站| 国产日韩欧美制服另类| 久久嫩草精品久久久久| 欧美mv日韩mv国产网站app| 国产日韩一级二级三级| 国产欧美日韩麻豆91| 国产精品妹子av| 中文字幕亚洲电影| 伊人开心综合网| 亚洲一区二区免费视频| 亚洲卡通欧美制服中文| 日韩在线a电影| 日本成人在线不卡视频| 久久99久国产精品黄毛片色诱| 激情深爱一区二区| 成人国产精品免费观看| 懂色中文一区二区在线播放| 欧洲激情一区二区| 欧美一级在线视频| 久久综合久久99| 中文字幕中文乱码欧美一区二区| 亚洲人成伊人成综合网小说| 亚洲国产精品综合小说图片区| 一区二区三区精品| 国模冰冰炮一区二区| av电影天堂一区二区在线| 欧美视频你懂的| 日韩久久久精品| 国产精品美女一区二区在线观看| 一区二区三区日本| 国产成人综合自拍| 一本色道久久综合亚洲精品按摩| 91.成人天堂一区| 国产视频在线观看一区二区三区 | 91精品久久久久久久99蜜桃| 中文天堂在线一区| 亚洲一区二区三区四区五区黄| 日韩电影在线观看一区| 国产在线精品不卡| 色av成人天堂桃色av| 日韩一区二区三区精品视频| 欧美一区二区三区免费观看视频 | 麻豆精品国产91久久久久久| 成人一区二区三区视频| 欧美日韩视频第一区| 欧美—级在线免费片| 午夜精品久久久久久久蜜桃app | 不卡一区中文字幕| 日韩精品一区二区三区在线观看| 亚洲欧洲韩国日本视频| 日韩在线播放一区二区| 99久久精品国产观看| 日韩一级成人av| 亚洲麻豆国产自偷在线| 国产麻豆精品在线| 91精品一区二区三区在线观看| 中文字幕免费不卡在线| 日韩av中文在线观看| 在线免费观看成人短视频| 久久精品网站免费观看| 性欧美大战久久久久久久久| 欧美三级午夜理伦三级中视频|