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

📄 cncparse.c

📁 根据数控编程需要
💻 C
📖 第 1 页 / 共 5 页
字号:
	  			CNC_ERR=182;
	  			CNC_IsErr=1;
	//	return;
	  			} 
	  		else {
	  			if (flag==1) {
	  				data->MST[2]=-MacroBuf[(int)(MacroBuf[(int)(Scode-200)]-200)];
	  				}
	  			else {
	  				data->MST[2]=MacroBuf[(int)(MacroBuf[(int)(Scode-200)]-200)];
	  				}
				MSTIllegal=0;
	  			}
	  		if (MacroBuf[(int)(MacroBuf[(int)(Scode-200)]-200)]>=100) {
	  			data->MST[3]=4;
	  			}
	  		else {
	  			data->MST[3]=2;
	  			}	  		
			     if (MacroBuf[(int)(MacroBuf[(int)(Scode-200)]-200)]>=8) {
				 	MSTIllegal=1;
				       MSTFlag=1;
				 	}
  		}
		else{
	  		if ((MacroBuf[(int)(MacroBuf[(int)(Scode-200)]-468)] >9999 ) || (MacroBuf[(int)(MacroBuf[(int)(Scode-200)]-468)] < 0)) {
	  			offLimits = TRUE;
	  			CNC_ERR=182;
	  			CNC_IsErr=1;
	//	return;
	  			} 
	  		else {
	  			if (flag==1) {
	  				data->MST[2]=-MacroBuf[(int)(MacroBuf[(int)(Scode-200)]-468)];
	  				}
	  			else {
	  				data->MST[2]=MacroBuf[(int)(MacroBuf[(int)(Scode-200)]-468)];
	  				}
				MSTIllegal=0;
	  			}
	  		if (MacroBuf[(int)(MacroBuf[(int)(Scode-200)]-468)]>=100) {
	  			data->MST[3]=4;
	  			}
	  		else {
	  			data->MST[3]=2;
	  			}	  		
	     if (MacroBuf[(int)(MacroBuf[(int)(Scode-200)]-468)]>=8) {
		 	MSTIllegal=1;
		       MSTFlag=1;
		 	}
  		}

  	}
	else{
  		Scode=Scode-(int)(Scode/1000.0)*1000;
		if ((MacroBuf[(int)(Scode-468)]<200)||((MacroBuf[(int)(Scode-468)]>231)&&(MacroBuf[(int)(Scode-468)]<500))||(MacroBuf[(int)(Scode-468)]>515)) {
			VarOverLimitError();
			}
		if((MacroBuf[(int)(Scode-468)]>=200)&&(MacroBuf[(int)(Scode-468)]<=231)){
	  		if ((MacroBuf[(int)(MacroBuf[(int)(Scode-468)]-200)] >9999 ) || (MacroBuf[(int)(MacroBuf[(int)(Scode-468)]-200)] < 0)) {
	  			offLimits = TRUE;
	  			CNC_ERR=182;
	  			CNC_IsErr=1;
	//	return;
	  			} 
	  		else {
	  			if (flag==1) {
	  				data->MST[2]=-MacroBuf[(int)(MacroBuf[(int)(Scode-468)]-200)];
	  				}
	  			else {
	  				data->MST[2]=MacroBuf[(int)(MacroBuf[(int)(Scode-468)]-200)];
	  				}
				MSTIllegal=0;
	  			}
	  		if (MacroBuf[(int)(MacroBuf[(int)(Scode-468)]-200)]>=100) {
	  			data->MST[3]=4;
	  			}
	  		else {
	  			data->MST[3]=2;
	  			}	  		
			     if (MacroBuf[(int)(MacroBuf[(int)(Scode-468)]-200)]>=8) {
				 	MSTIllegal=1;
				       MSTFlag=1;
				 	}
  		}
		else{
	  		if ((MacroBuf[(int)(MacroBuf[(int)(Scode-468)]-468)] >9999 ) || (MacroBuf[(int)(MacroBuf[(int)(Scode-468)]-468)] < 0)) {
	  			offLimits = TRUE;
	  			CNC_ERR=182;
	  			CNC_IsErr=1;
	//	return;
	  			} 
	  		else {
	  			if (flag==1) {
	  				data->MST[2]=-MacroBuf[(int)(MacroBuf[(int)(Scode-468)]-468)];
	  				}
	  			else {
	  				data->MST[2]=MacroBuf[(int)(MacroBuf[(int)(Scode-468)]-468)];
	  				}
				MSTIllegal=0;
	  			}
	  		if (MacroBuf[(int)(MacroBuf[(int)(Scode-468)]-468)]>=100) {
	  			data->MST[3]=4;
	  			}
	  		else {
	  			data->MST[3]=2;
	  			}	  		
	     if (MacroBuf[(int)(MacroBuf[(int)(Scode-468)]-468)]>=8) {
		 	MSTIllegal=1;
		       MSTFlag=1;
		 	}
  		}

  	}
  	}
  return offLimits;
}

int T_stmt(dataInterp *data,int Tcode) {
  int flag=0;  //用于标记-#和#,0:# 1:-#
  int offLimits = FALSE;
    data->Tflag=1;
  if (G65Flag==0) {
  	 if ((Tcode >9999 ) || (Tcode < 0)){
  		offLimits = TRUE;
  		CNC_ERR=183;
  		CNC_IsErr=1;
//return;
  		}
  	else {
  		data->MST[1]=Tcode;
		MSTIllegal=0;
		if ((data->MST[1]>=10)&&(data->MST[1]<=99)&&(ParaBuf[IsOutMSTWarn]==1)) {
			MSTIllegal=1;			
			MSTFlag=2;
			}
  		}
	if((data->MST[1]>=10)&&(data->MST[1]<=99)&& (MDI_Flag==1)){
				CNC_ERR=183;
				CNC_IsErr=1;
				
		}
  	}
  else if (G65Flag==1) {
  	G65Flag=0;
  	if (Tcode<0) {
  		flag=1;
  		Tcode=-Tcode;
  		}
       if ((Tcode<200)||((Tcode>231)&&(Tcode<500))||((Tcode>515)&&(Tcode<9200))||((Tcode>9231)&&(Tcode<9500))||(Tcode>9515)) {
  		VarOverLimitError();
  		}
  	else if ((Tcode>=200)&&(Tcode<=231)){
  		if (MacroBuf[Tcode-200] < 0) {
  			offLimits = TRUE;
  			CNC_ERR=183;
  			CNC_IsErr=1;
//	return;
  			}
  		else {
  			if (flag==1) {
  				data->MST[1]=-MacroBuf[Tcode-200];
  				}
  			else {
  				data->MST[1]=MacroBuf[Tcode-200];
  				}
			MSTIllegal=0;
			if ((data->MST[1]>=10)&&(data->MST[1]<=99)&&(ParaBuf[IsOutMSTWarn]==1)) {
				MSTIllegal=1;				
				MSTFlag=2;
				}
  			}
		if((data->MST[1]>=10)&&(data->MST[1]<=99)&& (MDI_Flag==1)){
				CNC_ERR=183;
				CNC_IsErr=1;
				
		}
  		}
	  	else if ((Tcode>=500)&&(Tcode<=515)){
  		if (MacroBuf[Tcode-468] < 0) {
  			offLimits = TRUE;
  			CNC_ERR=183;
  			CNC_IsErr=1;
//	return;
  			}
  		else {
  			if (flag==1) {
  				data->MST[1]=-MacroBuf[Tcode-468];
  				}
  			else {
  				data->MST[1]=MacroBuf[Tcode-468];
  				}
			MSTIllegal=0;
			if ((data->MST[1]>=10)&&(data->MST[1]<=99)&&(ParaBuf[IsOutMSTWarn]==1)) {
				MSTIllegal=1;				
				MSTFlag=2;
				}
  			}
		if((data->MST[1]>=10)&&(data->MST[1]<=99)&& (MDI_Flag==1)){
				CNC_ERR=183;
				CNC_IsErr=1;
				
		}
  		}
  	else if ((Tcode>=9200)&&(Tcode<=9231)){
  		Tcode=Tcode-(int)(Tcode/1000.0)*1000;
		if ((MacroBuf[(int)(Tcode-200)]<200)||((MacroBuf[(int)(Tcode-200)]>231)&&(MacroBuf[(int)(Tcode-200)]<500))||(MacroBuf[(int)(Tcode-200)]>515)) {
			VarOverLimitError();
			}
		if((MacroBuf[(int)(Tcode-200)]>=200)&&(MacroBuf[(int)(Tcode-200)]<=231)){
	  		if (MacroBuf[(int)(MacroBuf[(int)(Tcode-200)]-200)] < 0) {
	  			offLimits = TRUE;
	  			CNC_ERR=183;
	  			CNC_IsErr=1;
	//	return;
	  			}
	  		else {
	  			if (flag==1) {
	  				data->MST[1]=-MacroBuf[(int)(MacroBuf[(int)(Tcode-200)]-200)];
	  				}
	  			else {
	  				data->MST[1]=MacroBuf[(int)(MacroBuf[(int)(Tcode-200)]-200)];
	  				}
				MSTIllegal=0;
				if ((data->MST[1]>=10)&&(data->MST[1]<=99)&&(ParaBuf[IsOutMSTWarn]==1)) {
					MSTIllegal=1;
					MSTFlag=2;
					}
	  			}
			if((data->MST[1]>=10)&&(data->MST[1]<=99)&& (MDI_Flag==1)){
					CNC_ERR=183;
					CNC_IsErr=1;
					
			}
  		}
	      if((MacroBuf[(int)(Tcode-200)]>=500)&&(MacroBuf[(int)(Tcode-200)]<=515)){
	  		if (MacroBuf[(int)(MacroBuf[(int)(Tcode-200)]-468)] < 0) {
	  			offLimits = TRUE;
	  			CNC_ERR=183;
	  			CNC_IsErr=1;
	//	return;
	  			}
	  		else {
	  			if (flag==1) {
	  				data->MST[1]=-MacroBuf[(int)(MacroBuf[(int)(Tcode-200)]-468)];
	  				}
	  			else {
	  				data->MST[1]=MacroBuf[(int)(MacroBuf[(int)(Tcode-200)]-468)];
	  				}
				MSTIllegal=0;
				if ((data->MST[1]>=10)&&(data->MST[1]<=99)&&(ParaBuf[IsOutMSTWarn]==1)) {
					MSTIllegal=1;
					MSTFlag=2;
					}
	  			}
			if((data->MST[1]>=10)&&(data->MST[1]<=99)&& (MDI_Flag==1)){
					CNC_ERR=183;
					CNC_IsErr=1;
					
			}
  		}
  		}
	else{
  		Tcode=Tcode-(int)(Tcode/1000.0)*1000;
		if ((MacroBuf[(int)(Tcode-468)]<200)||((MacroBuf[(int)(Tcode-468)]>231)&&(MacroBuf[(int)(Tcode-468)]<500))||(MacroBuf[(int)(Tcode-468)]>515)) {
			VarOverLimitError();
			}
		if((MacroBuf[(int)(Tcode-468)]>=200)&&(MacroBuf[(int)(Tcode-468)]<=231)){
	  		if (MacroBuf[(int)(MacroBuf[(int)(Tcode-468)]-200)] < 0) {
	  			offLimits = TRUE;
	  			CNC_ERR=183;
	  			CNC_IsErr=1;
	//	return;
	  			}
	  		else {
	  			if (flag==1) {
	  				data->MST[1]=-MacroBuf[(int)(MacroBuf[(int)(Tcode-468)]-200)];
	  				}
	  			else {
	  				data->MST[1]=MacroBuf[(int)(MacroBuf[(int)(Tcode-468)]-200)];
	  				}
				MSTIllegal=0;
				if ((data->MST[1]>=10)&&(data->MST[1]<=99)&&(ParaBuf[IsOutMSTWarn]==1)) {
					MSTIllegal=1;
					MSTFlag=2;
					}
	  			}
			if((data->MST[1]>=10)&&(data->MST[1]<=99)&& (MDI_Flag==1)){
					CNC_ERR=183;
					CNC_IsErr=1;
					
			}
  		}
	      else{
	  		if (MacroBuf[(int)(MacroBuf[(int)(Tcode-468)]-468)] < 0) {
	  			offLimits = TRUE;
	  			CNC_ERR=183;
	  			CNC_IsErr=1;
	//	return;
	  			}
	  		else {
	  			if (flag==1) {
	  				data->MST[1]=-MacroBuf[(int)(MacroBuf[(int)(Tcode-468)]-468)];
	  				}
	  			else {
	  				data->MST[1]=MacroBuf[(int)(MacroBuf[(int)(Tcode-468)]-468)];
	  				}
				MSTIllegal=0;
				if ((data->MST[1]>=10)&&(data->MST[1]<=99)&&(ParaBuf[IsOutMSTWarn]==1)) {
					MSTIllegal=1;
					MSTFlag=2;
					}
	  			}
			if((data->MST[1]>=10)&&(data->MST[1]<=99)&& (MDI_Flag==1)){
					CNC_ERR=183;
					CNC_IsErr=1;
					
			}
  		}
  		}
  	}
  return offLimits;
}

int P_stmt(dataInterp *data,double Pcode) {
  int flag=0;  //用于标记-#和#,0:# 1:-#
  int offLimits = FALSE;
  data->Pflag=1;
  if (G65Flag==0) {
  	G65P=-1;
  	if ((Pcode > 9999999) || (Pcode < -9999999)) {
  		data->Pcode=Pcode;
  		offLimits = TRUE;
  		} 
  	else {
  		data->Pcode=Pcode;
  		}
  	}
  else if (G65Flag==1) {
  	G65P=Pcode;
  	G65Flag=0;
  	if (Pcode<0) {
  		flag=1;
  		Pcode=-Pcode;
  		}
  //	if ((Pcode<200)||((Pcode>231)&&(Pcode<1100))||((Pcode>1123)&&(Pcode<9200))||(Pcode>9231)) {
    if ((Pcode<200)||((Pcode>231)&&(Pcode<500))||((Pcode>515)&&(Pcode<1100))||((Pcode>1107)&&(Pcode<9200))||((Pcode>9231)&&(Pcode<9500))||(Pcode>9515)) {
  		VarOverLimitError();
  		}
  	else if ((Pcode>=200)&&(Pcode<=231)){
  		if ((MacroBuf[(int)(Pcode-200)] > 2147483647L) || (MacroBuf[(int)(Pcode-200)] < -2147483647L)) {
  			offLimits = TRUE;
  			} 
  		else {
  			if (flag==1) {
  				data->Pcode=-MacroBuf[(int)(Pcode-200)];
  				}
  			else {
  				data->Pcode=MacroBuf[(int)(Pcode-200)];
  				}
  			}
  		}
	else if ((Pcode>=500)&&(Pcode<=515)){
  		if ((MacroBuf[(int)(Pcode-468)] > 2147483647) || (MacroBuf[(int)(Pcode-468)] < -2147483647)) {
  			offLimits = TRUE;
  			} 
  		else {
  			if (flag==1) {
  				data->Pcode=-MacroBuf[(int)(Pcode-468)];
  				}
  			else {
  				data->Pcode=MacroBuf[(int)(Pcode-468)];
  				}
  			}
  		}
  	else if ((Pcode>=9200)&&(Pcode<=9231)){
  		Pcode=Pcode-(int)(Pcode/1000.0)*1000;
               if ((MacroBuf[(int)(Pcode-200)]<200)||((MacroBuf[(int)(Pcode-200)]>231)&&(MacroBuf[(int)(Pcode-200)]<500))||(MacroBuf[(int)(Pcode-200)]>515)) {
			VarOverLimitError();
			}
		if((MacroBuf[(int)(Pcode-200)]>=200)&&(MacroBuf[(int)(Pcode-200)]<=231)){
	  		if ((MacroBuf[(int)(MacroBuf[(int)(Pcode-200)]-200)] > 2147483647) || (MacroBuf[(int)(MacroBuf[(int)(Pcode-200)]-200)] < -2147483647)) {
	  			offLimits = TRUE;
	  			} 
	  		else {
	  			if (flag==1) {
	  				data->Pcode=-MacroBuf[(int)(MacroBuf[(int)(Pcode-200)]-200)];
	  				}
	  			else {
	  				data->Pcode=MacroBuf[(int)(MacroBuf[(int)(Pcode-200)]-200)];
	  				}
	  			}
  		}
		else{
	  		if ((MacroBuf[(int)(MacroBuf[(int)(Pcode-200)]-468)] > 2147483647) || (MacroBuf[(int)(MacroBuf[(int)(Pcode-200)]-468)] < -2147483647)) {
	  			offLimits = TRUE;
	  			} 
	  		else {
	  			if (flag==1) {
	  				data->Pcode=-MacroBuf[(int)(MacroBuf[(int)(Pcode-200)]-468)];
	  				}
	  			else {
	  				data->Pcode=MacroBuf[(int)(MacroBuf[(int)(Pcode-200)]-468)];
	  				}
	  			}
  		}
  		}
	 else if ((Pcode>=9500)&&(Pcode<=9515)){
  		Pcode=Pcode-(int)(Pcode/1000.0)*1000;
               if ((MacroBuf[(int)(Pcode-468)]<200)||((MacroBuf[(int)(Pcode-468)]>231)&&(MacroBuf[(int)(Pcode-468)]<500))||(MacroBuf[(int)(Pcode-468)]>515)) {
			VarOverLimitError();
			}
		if((MacroBuf[(int)(Pcode-468)]>=200)&&(MacroBuf[(int)(Pcode-468)]<=231)){
	  		if ((MacroBuf[(int)(MacroBuf[(int)(Pcode-468)]-200)] > 2147483647) || (MacroBuf[(int)(MacroBuf[(int)(Pcode-468)]-200)] < -2147483647)) {
	  			offLimits = TRUE;
	  			} 
	  		else {
	  			if (flag==1) {
	  				data->Pcode=-MacroBuf[(int)(MacroBuf[(int)(Pcode-468)]-200)];
	  				}
	  			else {
	  				data->Pcode=MacroBuf[(int)(MacroBuf[(int)(Pcode-468)]-200)];
	  				}
	  			}
  		}
		else{
	  		if ((MacroBuf[(int)(MacroBuf[(int)(Pcode-468)]-468)] > 2147483647) || (MacroBuf[(int)(MacroBuf[(int)(Pcode-468)]-468)] < -2147483647)) {
	  			offLimits = TRUE;
	  			} 
	  		else {
	  			if (flag==1) {
	  				data->Pcode=-MacroBuf[(int)(MacroBuf[(int)(Pcode-468)]-468)];
	  				}
	  			else {
	  				data->Pcode=MacroBuf[(int)(MacroBuf[(int)(Pcode-468)]-468)];
	  				}
	  			}
  		}
  		}
	else if ((Pcode>=1100)&&(Pcode<=1107)) {
			G65P=Pcode;
		}
  	}
  return offLimits;
}


int Q_stmt(dataInterp *data,double Qcode) {
  int flag=0;  //用于标记-#和#,0:# 1:-#
  int offLimits = FALSE;
  data->Qflag=1;
  if (G65Flag==0) {
  	if ((Qcode >9999999) || (Qcode < -9999999)) {
  		offLimits = TRUE;
  		}
  	else {
  		data->Qcode=Qcode;
  		}
  	}
  else if (G65Flag==1) {
  	G65Flag=0;
  	if (Qcode<0) {
  		flag=1;
  		Qcode=-Qcode;
  		}
    if ((Qcode<200)||((Qcode>231)&&(Qcode<500))||((Qcode>515)&&(Qcode<1000))||((Qcode>1015)&&(Qcode<9200))||((Qcode>9231)&&(Qcode<9500))||(Qcode>9515)) {
  		VarOverLimitError();
  		}
  	else if ((Qcode>=200)&&(Qcode<=231)){
  		if ((MacroBuf[(int)(Qcode-200)] >2147483647) || (MacroBuf[(int)(Qcode-200)] < -2147483647)) {
  			offLimits = TRUE;
  			}
  		else {
  			if (flag==1) {
  				data->Qcode=-MacroBuf[(int)(Qcode-200)];
  				}
  			else {
  				data->Qcode=MacroBuf[(int)(Qcode-200)];
  				}
  			}
  		}
	 else if ((Qcode>=500)&&(Qcode<=515)){
  		if ((MacroBuf[(int)(Qcode-468)] >2147483647) || (MacroBuf[(int)(Qcode-468)] < -2147483647)) {
  			offLimits = TRUE;
  			}
  		else {
  			if (flag==1) {
  				data->Qcode=-MacroBuf[(int)(Qcode-468)];
  				}
  			else {
  				data->Qcode=MacroBuf[(int)(Qcode-468)];
  				}
  			}
  		}
  	else if ((Qcode>=9200)&&(Qcode<=9231)){
  		Qcode=Qcode-(int)(Qcode/1000.0)*1000;
               if ((MacroBuf[(int)(Qcode-200)]<200)||((MacroBuf[(int)(Qcode-200)]>231)&&(MacroBuf[(int)(Qcode-200)]<500))||(MacroBuf[(int)(Qcode-200)]>515)) {
			VarOverLimitError();
			}
		if((MacroBuf[(int)(Qcode-200)]>=200)&&(MacroBuf[(int)(Qcode-200)]<=231)){
	  		if ((MacroBuf[(int)(MacroBuf[(int)(Qcode-200)]-200)] >2147483647) || (MacroBuf[(int)(MacroBuf[(int)(Qcode-200)]-200)] < -2147483647)) {
	  			offLimits = TRUE;
	  			}
	  		else {
	  			if (flag==1) {
	  				data->Qcode=-MacroBuf[(int)(MacroBuf[(int)(Qcode-200)]-200)];
	  				}
	  			else {
	  				data->Qcode=MacroBuf[(int)(MacroBuf[(int)(Qcode-200)]-200)];
	  				}
	  			}
  		}
		else{
	  		if ((MacroBuf[(int)(MacroBuf[(int)(Qcode-20

⌨️ 快捷键说明

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