⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cncparse.c

📁 根据数控编程需要
💻 C
📖 第 1 页 / 共 5 页
字号:
  	else if ((Mcode>=200)&&(Mcode<=231)){
  		for (i=0;i<23;i++) {	
  			if (MacroBuf[Mcode-200]==McodeType[i]) {
  				if (flag==1) {
  					data->MST[0]=-MacroBuf[Mcode-200];
  					}
  				else {
  					data->MST[0]=MacroBuf[Mcode-200];
  					}
  				bOffLimits=FALSE;
  				return bOffLimits;
  				}
  			}
		if (ParaBuf[IsOutMSTWarn]==0) {
//			Uart_Printf("chaos2\n");
			CNC_ERR=181;
			CNC_IsErr=1;
			bOffLimits=FALSE;
			return bOffLimits;
			}
		else {		
			MSTIllegal=1;
			if (MDI_Flag==1) {
				CNC_ERR=130;
				CNC_IsErr=1;
				//return;
				}
			MSTFlag=0;
			if (flag==1) {
				data->MST[0]=-MacroBuf[Mcode-200];
				}
			else {
				data->MST[0]=MacroBuf[Mcode-200];
				}
			bOffLimits=FALSE;
			return bOffLimits;
			}
  		}
	  else if ((Mcode>=500)&&(Mcode<=515)){
  		for (i=0;i<23;i++) {	
  			if (MacroBuf[Mcode-468]==McodeType[i]) {
  				if (flag==1) {
  					data->MST[0]=-MacroBuf[Mcode-468];
  					}
  				else {
  					data->MST[0]=MacroBuf[Mcode-468];
  					}
  				bOffLimits=FALSE;
  				return bOffLimits;
  				}
  			}
		if (ParaBuf[IsOutMSTWarn]==0) {
//			Uart_Printf("chaos2\n");
			CNC_ERR=181;
			CNC_IsErr=1;
			bOffLimits=FALSE;
			return bOffLimits;
			}
		else {		
			MSTIllegal=1;
			if (MDI_Flag==1) {
				CNC_ERR=130;
				CNC_IsErr=1;
				//return;
				}
			MSTFlag=0;
			if (flag==1) {
				data->MST[0]=-MacroBuf[Mcode-468];
				}
			else {
				data->MST[0]=MacroBuf[Mcode-468];
				}
			bOffLimits=FALSE;
			return bOffLimits;
			}
  		}

  	else if ((Mcode>=9200)&&(Mcode<=9231)){
  		Mcode=Mcode-(int)(Mcode/1000.0)*1000;
		if ((MacroBuf[(int)(Mcode-200)]<200)||((MacroBuf[(int)(Mcode-200)]>231)&&(MacroBuf[(int)(Mcode-200)]<500))||(MacroBuf[(int)(Mcode-200)]>515)) {
			VarOverLimitError();
			}
		if((MacroBuf[(int)(Mcode-200)]>=200)&&(MacroBuf[(int)(Mcode-200)]<=231)){
  		for (i=0;i<23;i++) {	
  			if (MacroBuf[(int)(MacroBuf[(int)(Mcode-200)]-200)]==McodeType[i]) {
  				if (flag==1) {
  					data->MST[0]=-MacroBuf[(int)(MacroBuf[(int)(Mcode-200)]-200)];
  					}
  				else {
  					data->MST[0]=MacroBuf[(int)(MacroBuf[(int)(Mcode-200)]-200)];
  					}
  				bOffLimits=FALSE;
  				return bOffLimits;
  				}
  			}
		if (ParaBuf[IsOutMSTWarn]==0) {
//			Uart_Printf("chaos3\n");
			CNC_ERR=181;
			CNC_IsErr=1;
			bOffLimits=FALSE;
			return bOffLimits;
			}
		else {
			MSTIllegal=1;
			if (MDI_Flag==1) {
				CNC_ERR=130;
				CNC_IsErr=1;
				//return;
				}
			MSTFlag=0;
			if (flag==1) {
				data->MST[0]=-MacroBuf[(int)(MacroBuf[(int)(Mcode-200)]-200)];
				}
			else {
				data->MST[0]=MacroBuf[(int)(MacroBuf[(int)(Mcode-200)]-200)];
				}
			bOffLimits=FALSE;
			return bOffLimits;
			}
  		}
		else{
  		for (i=0;i<23;i++) {	
  			if (MacroBuf[(int)(MacroBuf[(int)(Mcode-200)]-468)]==McodeType[i]) {
  				if (flag==1) {
  					data->MST[0]=-MacroBuf[(int)(MacroBuf[(int)(Mcode-200)]-468)];
  					}
  				else {
  					data->MST[0]=MacroBuf[(int)(MacroBuf[(int)(Mcode-200)]-468)];
  					}
  				bOffLimits=FALSE;
  				return bOffLimits;
  				}
  			}
		if (ParaBuf[IsOutMSTWarn]==0) {
//			Uart_Printf("chaos3\n");
			CNC_ERR=181;
			CNC_IsErr=1;
			bOffLimits=FALSE;
			return bOffLimits;
			}
		else {
			MSTIllegal=1;
			if (MDI_Flag==1) {
				CNC_ERR=130;
				CNC_IsErr=1;
				//return;
				}
			MSTFlag=0;
			if (flag==1) {
				data->MST[0]=-MacroBuf[(int)(MacroBuf[(int)(Mcode-200)]-468)];
				}
			else {
				data->MST[0]=MacroBuf[(int)(MacroBuf[(int)(Mcode-200)]-468)];
				}
			bOffLimits=FALSE;
			return bOffLimits;
			}
  		}
  	}
	  else if ((Mcode>=9500)&&(Mcode<=9515)){
  		Mcode=Mcode-(int)(Mcode/1000.0)*1000;
		if ((MacroBuf[(int)(Mcode-468)]<200)||((MacroBuf[(int)(Mcode-468)]>231)&&(MacroBuf[(int)(Mcode-468)]<500))||(MacroBuf[(int)(Mcode-468)]>515)) {
			VarOverLimitError();
			}
		if((MacroBuf[(int)(Mcode-468)]>=200)&&(MacroBuf[(int)(Mcode-468)]<=231)){
  		for (i=0;i<23;i++) {	
  			if (MacroBuf[(int)(MacroBuf[(int)(Mcode-468)]-200)]==McodeType[i]) {
  				if (flag==1) {
  					data->MST[0]=-MacroBuf[(int)(MacroBuf[(int)(Mcode-468)]-200)];
  					}
  				else {
  					data->MST[0]=MacroBuf[(int)(MacroBuf[(int)(Mcode-468)]-200)];
  					}
  				bOffLimits=FALSE;
  				return bOffLimits;
  				}
  			}
		if (ParaBuf[IsOutMSTWarn]==0) {
//			Uart_Printf("chaos3\n");
			CNC_ERR=181;
			CNC_IsErr=1;
			bOffLimits=FALSE;
			return bOffLimits;
			}
		else {
			MSTIllegal=1;
			if (MDI_Flag==1) {
				CNC_ERR=130;
				CNC_IsErr=1;
				//return;
				}
			MSTFlag=0;
			if (flag==1) {
				data->MST[0]=-MacroBuf[(int)(MacroBuf[(int)(Mcode-468)]-200)];
				}
			else {
				data->MST[0]=MacroBuf[(int)(MacroBuf[(int)(Mcode-468)]-200)];
				}
			bOffLimits=FALSE;
			return bOffLimits;
			}
  		}
		else{
  		for (i=0;i<23;i++) {	
  			if (MacroBuf[(int)(MacroBuf[(int)(Mcode-468)]-468)]==McodeType[i]) {
  				if (flag==1) {
  					data->MST[0]=-MacroBuf[(int)(MacroBuf[(int)(Mcode-468)]-468)];
  					}
  				else {
  					data->MST[0]=MacroBuf[(int)(MacroBuf[(int)(Mcode-468)]-468)];
  					}
  				bOffLimits=FALSE;
  				return bOffLimits;
  				}
  			}
		if (ParaBuf[IsOutMSTWarn]==0) {
//			Uart_Printf("chaos3\n");
			CNC_ERR=181;
			CNC_IsErr=1;
			bOffLimits=FALSE;
			return bOffLimits;
			}
		else {
			MSTIllegal=1;
			if (MDI_Flag==1) {
				CNC_ERR=130;
				CNC_IsErr=1;
				//return;
				}
			MSTFlag=0;
			if (flag==1) {
				data->MST[0]=-MacroBuf[(int)(MacroBuf[(int)(Mcode-468)]-468)];
				}
			else {
				data->MST[0]=MacroBuf[(int)(MacroBuf[(int)(Mcode-468)]-468)];
				}
			bOffLimits=FALSE;
			return bOffLimits;
			}
  		}
  	}
  	}
  return bOffLimits;
  }

int N_stmt(dataInterp *data,long Ncode) {
 // int flag=0;  //用于标记-#和#,0:# 1:-#
  int bOffLimits = FALSE;
  if (G65Flag==0) {
  	if ((Ncode > 32767) || (Ncode < 1)) {
  		bOffLimits = TRUE;
  		} 
  	else {
  		data->nNo = Ncode;
  		}
  	}
  else if (G65Flag==1) {
  	G65Flag=0;
  	VarNOError();
//eturn;
  	}
  return bOffLimits;
}

int F_stmt(dataInterp *data,double Fcode) {
  int flag=0;  //用于标记-#和#,0:# 1:-#
  int offLimits = FALSE;
    data->Fflag=1;
  if (G65Flag==0) {  	
  	if (Fcode<0) {
  		CNC_ERR=11 ;
  		CNC_IsErr=1;
  		}
  	else {
  		data->Fcode=Fcode;
  		}
  	}
  else if (G65Flag==1) {
  	G65Flag=0;
  	if (Fcode<0) {
  		flag=1;
  		Fcode=-Fcode;
  		}
       if ((Fcode<200)||((Fcode>231)&&(Fcode<500))||((Fcode>515)&&(Fcode<9200))||((Fcode>9231)&&(Fcode<9500))||(Fcode>9515)) {
  		VarOverLimitError();
  		}
  	else if ((Fcode>=200)&&(Fcode<=231)){
  		if ((MacroBuf[(int)(Fcode-200)] > 15000.0) || (MacroBuf[(int)(Fcode-200)] < 0.001)) {
  			//offLimits = TRUE;
  			//CNC_ERR=11;
  			//CNC_IsErr=1;
  			} 
  		else if (MacroBuf[(int)(Fcode-200)]<0) {
  			CNC_ERR=11;
  			CNC_IsErr=1;
  			}
  		else {
  			if (flag==1) {
  				data->Fcode=-MacroBuf[(int)(Fcode-200)];
  				}
  			else {
  				data->Fcode=MacroBuf[(int)(Fcode-200)];
  				}
  			}
  		}
	  else if ((Fcode>=500)&&(Fcode<=515)){
  		if ((MacroBuf[(int)(Fcode-468)] > 15000.0) || (MacroBuf[(int)(Fcode-468)] < 0.001)) {
  			//offLimits = TRUE;
  			//CNC_ERR=11;
  			//CNC_IsErr=1;
  			} 
  		else if (MacroBuf[(int)(Fcode-468)]<0) {
  			CNC_ERR=11;
  			CNC_IsErr=1;
  			}
  		else {
  			if (flag==1) {
  				data->Fcode=-MacroBuf[(int)(Fcode-468)];
  				}
  			else {
  				data->Fcode=MacroBuf[(int)(Fcode-468)];
  				}
  			}
  		}
  	else if ((Fcode>=9200)&&(Fcode<=9231)){
  		Fcode=Fcode-(int)(Fcode/1000.0)*1000;
		if ((MacroBuf[(int)(Fcode-200)]<200)||((MacroBuf[(int)(Fcode-200)]>231)&&(MacroBuf[(int)(Fcode-200)]<500))||(MacroBuf[(int)(Fcode-200)]>515)) {
			VarOverLimitError();
			}
		if((MacroBuf[(int)(Fcode-200)]>=200)&&(MacroBuf[(int)(Fcode-200)]<=231)){
	  		if ((MacroBuf[(int)(MacroBuf[(int)(Fcode-200)]-200)] > 15000.0) || (MacroBuf[(int)(MacroBuf[(int)(Fcode-200)]-200)] < 0.001)) {
	  			//offLimits = TRUE;
	  			//CNC_ERR=11;
	  			//CNC_IsErr=1;
	  			} 
	  		else if (MacroBuf[(int)(MacroBuf[(int)(Fcode-200)]-200)]<0) {
	  			CNC_ERR=11;
	  			CNC_IsErr=1;
	  			}
	  		else {
	  			if (flag==1) {
	  				data->Fcode=-MacroBuf[(int)(MacroBuf[(int)(Fcode-200)]-200)];
	  				}
	  			else {
	  				data->Fcode=MacroBuf[(int)(MacroBuf[(int)(Fcode-200)]-200)];
	  				}
	  			}
	  		}
		else{
	  		if ((MacroBuf[(int)(MacroBuf[(int)(Fcode-200)]-468)] > 15000.0) || (MacroBuf[(int)(MacroBuf[(int)(Fcode-200)]-468)] < 0.001)) {
	  			//offLimits = TRUE;
	  			//CNC_ERR=11;
	  			//CNC_IsErr=1;
	  			} 
	  		else if (MacroBuf[(int)(MacroBuf[(int)(Fcode-200)]-468)]<0) {
	  			CNC_ERR=11;
	  			CNC_IsErr=1;
	  			}
	  		else {
	  			if (flag==1) {
	  				data->Fcode=-MacroBuf[(int)(MacroBuf[(int)(Fcode-200)]-468)];
	  				}
	  			else {
	  				data->Fcode=MacroBuf[(int)(MacroBuf[(int)(Fcode-200)]-468)];
	  				}
	  			}
	  		}			
  		}
	else{
  		Fcode=Fcode-(int)(Fcode/1000.0)*1000;
		if ((MacroBuf[(int)(Fcode-468)]<200)||((MacroBuf[(int)(Fcode-468)]>231)&&(MacroBuf[(int)(Fcode-468)]<500))||(MacroBuf[(int)(Fcode-468)]>515)) {
			VarOverLimitError();
			}
		if((MacroBuf[(int)(Fcode-468)]>=200)&&(MacroBuf[(int)(Fcode-468)]<=231)){
	  		if ((MacroBuf[(int)(MacroBuf[(int)(Fcode-468)]-200)] > 15000.0) || (MacroBuf[(int)(MacroBuf[(int)(Fcode-468)]-200)] < 0.001)) {
	  			//offLimits = TRUE;
	  			//CNC_ERR=11;
	  			//CNC_IsErr=1;
	  			} 
	  		else if (MacroBuf[(int)(MacroBuf[(int)(Fcode-468)]-200)]<0) {
	  			CNC_ERR=11;
	  			CNC_IsErr=1;
	  			}
	  		else {
	  			if (flag==1) {
	  				data->Fcode=-MacroBuf[(int)(MacroBuf[(int)(Fcode-468)]-200)];
	  				}
	  			else {
	  				data->Fcode=MacroBuf[(int)(MacroBuf[(int)(Fcode-468)]-200)];
	  				}
	  			}
	  		}
		else{
	  		if ((MacroBuf[(int)(MacroBuf[(int)(Fcode-468)]-468)] > 15000.0) || (MacroBuf[(int)(MacroBuf[(int)(Fcode-468)]-468)] < 0.001)) {
	  			//offLimits = TRUE;
	  			//CNC_ERR=11;
	  			//CNC_IsErr=1;
	  			} 
	  		else if (MacroBuf[(int)(MacroBuf[(int)(Fcode-468)]-468)]<0) {
	  			CNC_ERR=11;
	  			CNC_IsErr=1;
	  			}
	  		else {
	  			if (flag==1) {
	  				data->Fcode=-MacroBuf[(int)(MacroBuf[(int)(Fcode-468)]-468)];
	  				}
	  			else {
	  				data->Fcode=MacroBuf[(int)(MacroBuf[(int)(Fcode-468)]-468)];
	  				}
	  			}
	  		}			
  		}
  	}
  if (ParaBuf[DotProg]==0) data->Fcode=data->Fcode/1000;
  return offLimits;
}

int S_stmt(dataInterp *data,int Scode) {
  int flag=0;  //用于标记-#和#,0:# 1:-#
  int offLimits = FALSE;
    data->Sflag=1;
  if (G65Flag==0) {
  	if ((Scode >9999 ) || (Scode < 0)) {
  		offLimits = TRUE;
  		CNC_ERR=182;
  		CNC_IsErr=1;
//return;
  		} 
  	else {
  		data->MST[2]=Scode;		
  		}
  	if (Scode>=100) {
  		data->MST[3]=4;			
  		}
  	else {
  		data->MST[3]=2;		
  		}
	if(Scode>8){
		MSTIllegal=1;
		MSTFlag=1;
		}
	
  	}
  else if (G65Flag==1) {
  	G65Flag=0;
  	if (Scode<0) {
  		flag=1;
  		Scode=-Scode;
  		}
       if ((Scode<200)||((Scode>231)&&(Scode<500))||((Scode>515)&&(Scode<9200))||((Scode>9231)&&(Scode<9500))||(Scode>9515)) {
  		VarOverLimitError();
  		}
  	else if ((Scode>=200)&&(Scode<=231)){
  		if ((MacroBuf[Scode-200] >9999 ) || (MacroBuf[Scode-200] < 0)) {
  			offLimits = TRUE;
  			CNC_ERR=182;
  			CNC_IsErr=1;
//	return;
  			} 
  		else {
  			if (flag==1) {
  				data->MST[2]=-MacroBuf[Scode-200];
  				}
  			else {
  				data->MST[2]=MacroBuf[Scode-200];
  				}
			MSTIllegal=0;
  			}
  		if (MacroBuf[Scode-200]>=100) {
  			data->MST[3]=4;
  			}
  		else {
  			data->MST[3]=2;
  			}
		if (MacroBuf[Scode-200]>8) {
					MSTIllegal=1;
		                     MSTFlag=1;
			}
  		}
	  else if ((Scode>=500)&&(Scode<=515)){
  		if ((MacroBuf[Scode-468] >9999 ) || (MacroBuf[Scode-468] < 0)) {
  			offLimits = TRUE;
  			CNC_ERR=182;
  			CNC_IsErr=1;
//	return;
  			} 
  		else {
  			if (flag==1) {
  				data->MST[2]=-MacroBuf[Scode-468];
  				}
  			else {
  				data->MST[2]=MacroBuf[Scode-468];
  				}
			MSTIllegal=0;
  			}
  		if (MacroBuf[Scode-468]>=100) {
  			data->MST[3]=4;
  			}
  		else {
  			data->MST[3]=2;
  			}
		if (MacroBuf[Scode-468]>8) {
					MSTIllegal=1;
		                     MSTFlag=1;
			}
  		}
  	else if ((Scode>=9200)&&(Scode<=9231)){
  		Scode=Scode-(int)(Scode/1000.0)*1000;
		if ((MacroBuf[(int)(Scode-200)]<200)||((MacroBuf[(int)(Scode-200)]>231)&&(MacroBuf[(int)(Scode-200)]<500))||(MacroBuf[(int)(Scode-200)]>515)) {
			VarOverLimitError();
			}
		if((MacroBuf[(int)(Scode-200)]>=200)&&(MacroBuf[(int)(Scode-200)]<=231)){
	  		if ((MacroBuf[(int)(MacroBuf[(int)(Scode-200)]-200)] >9999 ) || (MacroBuf[(int)(MacroBuf[(int)(Scode-200)]-200)] < 0)) {
	  			offLimits = TRUE;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -