📄 cncparse.c
字号:
}
else {
data->Gcode[4]=MacroBuf[Gcode-200];
}
break;
case 40: //07: G40 G41 G42
case 41:
case 42:
if (flag==1) {
data->Gcode[5]=-MacroBuf[Gcode-200];
}
else {
data->Gcode[5]=MacroBuf[Gcode-200];
}
break;
default:
GHasInvalidCode = TRUE; //has invalide code
break;
}
}
else if ((Gcode>=500)&&(Gcode<=515)){
switch ((int)(MacroBuf[Gcode-468])) {
case 4: //00:G04 G10 G28 G39 G50 G65 G70 G71 G72 G73 G74 G75 G7
case 10:
case 28:
case 39:
case 50:
case 65:
case 70:
case 71:
case 72:
case 73:
case 74:
case 75:
case 76:
if (flag==1) {
data->Gcode[0]=-MacroBuf[Gcode-468];
}
else {
data->Gcode[0]=MacroBuf[Gcode-468];
}
break;
case 0: //01: G00 G01 G02 G03 G32 G33 G90 G92 G94
case 1:
case 2:
case 3:
case 32:
case 33:
case 90:
case 92:
case 94:
if (flag==1) {
data->Gcode[1]=-MacroBuf[Gcode-468];
}
else {
data->Gcode[1]=MacroBuf[Gcode-468];
}
break;
case 96: //02: G96 G97
case 97:
if (flag==1) {
data->Gcode[2]=-MacroBuf[Gcode-468];
}
else {
data->Gcode[2]=MacroBuf[Gcode-468];
}
break;
case 98: //03: G98 G99
case 99:
if (flag==1) {
data->Gcode[3]=-MacroBuf[Gcode-468];
}
else {
data->Gcode[3]=MacroBuf[Gcode-468];
}
break;
case 20: //06: G20 G21
case 21:
if (flag==1) {
data->Gcode[4]=-MacroBuf[Gcode-468];
}
else {
data->Gcode[4]=MacroBuf[Gcode-468];
}
break;
case 40: //07: G40 G41 G42
case 41:
case 42:
if (flag==1) {
data->Gcode[5]=-MacroBuf[Gcode-468];
}
else {
data->Gcode[5]=MacroBuf[Gcode-468];
}
break;
default:
GHasInvalidCode = TRUE; //has invalide code
break;
}
}
else if ((Gcode>=9200)&&(Gcode<=9231)){
Gcode=Gcode-(int)(Gcode/1000.0)*1000;
if ((MacroBuf[(int)(Gcode-200)]<200)||((MacroBuf[(int)(Gcode-200)]>231)&&(MacroBuf[(int)(Gcode-200)]<500))||(MacroBuf[(int)(Gcode-200)]>515)) {
VarOverLimitError();
}
if((MacroBuf[(int)(Gcode-200)]>=200)&&(MacroBuf[(int)(Gcode-200)]<=231)){
switch ((int)(MacroBuf[(int)(MacroBuf[(int)(Gcode-200)]-200)])) {
case 4: //00:G04 G10 G28 G39 G50 G65 G70 G71 G72 G73 G74 G75 G7
case 10:
case 28:
case 39:
case 50:
case 65:
case 70:
case 71:
case 72:
case 73:
case 74:
case 75:
case 76:
if (flag==1) {
data->Gcode[0]=-MacroBuf[(int)(MacroBuf[(int)(Gcode-200)]-200)];
}
else {
data->Gcode[0]=MacroBuf[(int)(MacroBuf[(int)(Gcode-200)]-200)];
}
break;
case 0: //01: G00 G01 G02 G03 G32 G33 G90 G92 G94
case 1:
case 2:
case 3:
case 32:
case 33:
case 90:
case 92:
case 94:
if (flag==1) {
data->Gcode[1]=-MacroBuf[(int)(MacroBuf[(int)(Gcode-200)]-200)];
}
else {
data->Gcode[1]=MacroBuf[(int)(MacroBuf[(int)(Gcode-200)]-200)];
}
break;
case 96: //02: G96 G97
case 97:
if (flag==1) {
data->Gcode[2]=-MacroBuf[(int)(MacroBuf[(int)(Gcode-200)]-200)];
}
else {
data->Gcode[2]=MacroBuf[(int)(MacroBuf[(int)(Gcode-200)]-200)];
}
break;
case 98: //03: G98 G99
case 99:
if (flag==1) {
data->Gcode[3]=-MacroBuf[(int)(MacroBuf[(int)(Gcode-200)]-200)];
}
else {
data->Gcode[3]=MacroBuf[(int)(MacroBuf[(int)(Gcode-200)]-200)];
}
break;
case 20: //06: G20 G21
case 21:
if (flag==1) {
data->Gcode[4]=-MacroBuf[(int)(MacroBuf[(int)(Gcode-200)]-200)];
}
else {
data->Gcode[4]=MacroBuf[(int)(MacroBuf[(int)(Gcode-200)]-200)];
}
break;
case 40: //07: G40 G41 G42
case 41:
case 42:
if (flag==1) {
data->Gcode[5]=-MacroBuf[(int)(MacroBuf[(int)(Gcode-200)]-200)];
}
else {
data->Gcode[5]=MacroBuf[(int)(MacroBuf[(int)(Gcode-200)]-200)];
}
break;
default:
GHasInvalidCode = TRUE; //has invalide code
break;
}
}
else{
switch ((int)(MacroBuf[(int)(MacroBuf[(int)(Gcode-200)]-468)])) {
case 4: //00:G04 G10 G28 G39 G50 G65 G70 G71 G72 G73 G74 G75 G7
case 10:
case 28:
case 39:
case 50:
case 65:
case 70:
case 71:
case 72:
case 73:
case 74:
case 75:
case 76:
if (flag==1) {
data->Gcode[0]=-MacroBuf[(int)(MacroBuf[(int)(Gcode-200)]-468)];
}
else {
data->Gcode[0]=MacroBuf[(int)(MacroBuf[(int)(Gcode-200)]-468)];
}
break;
case 0: //01: G00 G01 G02 G03 G32 G33 G90 G92 G94
case 1:
case 2:
case 3:
case 32:
case 33:
case 90:
case 92:
case 94:
if (flag==1) {
data->Gcode[1]=-MacroBuf[(int)(MacroBuf[(int)(Gcode-200)]-468)];
}
else {
data->Gcode[1]=MacroBuf[(int)(MacroBuf[(int)(Gcode-200)]-468)];
}
break;
case 96: //02: G96 G97
case 97:
if (flag==1) {
data->Gcode[2]=-MacroBuf[(int)(MacroBuf[(int)(Gcode-200)]-468)];
}
else {
data->Gcode[2]=MacroBuf[(int)(MacroBuf[(int)(Gcode-200)]-468)];
}
break;
case 98: //03: G98 G99
case 99:
if (flag==1) {
data->Gcode[3]=-MacroBuf[(int)(MacroBuf[(int)(Gcode-200)]-468)];
}
else {
data->Gcode[3]=MacroBuf[(int)(MacroBuf[(int)(Gcode-200)]-468)];
}
break;
case 20: //06: G20 G21
case 21:
if (flag==1) {
data->Gcode[4]=-MacroBuf[(int)(MacroBuf[(int)(Gcode-200)]-468)];
}
else {
data->Gcode[4]=MacroBuf[(int)(MacroBuf[(int)(Gcode-200)]-468)];
}
break;
case 40: //07: G40 G41 G42
case 41:
case 42:
if (flag==1) {
data->Gcode[5]=-MacroBuf[(int)(MacroBuf[(int)(Gcode-200)]-468)];
}
else {
data->Gcode[5]=MacroBuf[(int)(MacroBuf[(int)(Gcode-200)]-468)];
}
break;
default:
GHasInvalidCode = TRUE; //has invalide code
break;
}
}
}
else if ((Gcode>=9500)&&(Gcode<=9515)){
Gcode=Gcode-(int)(Gcode/1000.0)*1000;
if ((MacroBuf[(int)(Gcode-468)]<200)||((MacroBuf[(int)(Gcode-468)]>231)&&(MacroBuf[(int)(Gcode-468)]<500))||(MacroBuf[(int)(Gcode-468)]>515)) {
VarOverLimitError();
}
if((MacroBuf[(int)(Gcode-468)]>=200)&&(MacroBuf[(int)(Gcode-468)]<=231)){
switch ((int)(MacroBuf[(int)(MacroBuf[(int)(Gcode-468)]-200)])) {
case 4: //00:G04 G10 G28 G39 G50 G65 G70 G71 G72 G73 G74 G75 G7
case 10:
case 28:
case 39:
case 50:
case 65:
case 70:
case 71:
case 72:
case 73:
case 74:
case 75:
case 76:
if (flag==1) {
data->Gcode[0]=-MacroBuf[(int)(MacroBuf[(int)(Gcode-468)]-200)];
}
else {
data->Gcode[0]=MacroBuf[(int)(MacroBuf[(int)(Gcode-468)]-200)];
}
break;
case 0: //01: G00 G01 G02 G03 G32 G33 G90 G92 G94
case 1:
case 2:
case 3:
case 32:
case 33:
case 90:
case 92:
case 94:
if (flag==1) {
data->Gcode[1]=-MacroBuf[(int)(MacroBuf[(int)(Gcode-468)]-200)];
}
else {
data->Gcode[1]=MacroBuf[(int)(MacroBuf[(int)(Gcode-468)]-200)];
}
break;
case 96: //02: G96 G97
case 97:
if (flag==1) {
data->Gcode[2]=-MacroBuf[(int)(MacroBuf[(int)(Gcode-468)]-200)];
}
else {
data->Gcode[2]=MacroBuf[(int)(MacroBuf[(int)(Gcode-468)]-200)];
}
break;
case 98: //03: G98 G99
case 99:
if (flag==1) {
data->Gcode[3]=-MacroBuf[(int)(MacroBuf[(int)(Gcode-468)]-200)];
}
else {
data->Gcode[3]=MacroBuf[(int)(MacroBuf[(int)(Gcode-468)]-200)];
}
break;
case 20: //06: G20 G21
case 21:
if (flag==1) {
data->Gcode[4]=-MacroBuf[(int)(MacroBuf[(int)(Gcode-468)]-200)];
}
else {
data->Gcode[4]=MacroBuf[(int)(MacroBuf[(int)(Gcode-468)]-200)];
}
break;
case 40: //07: G40 G41 G42
case 41:
case 42:
if (flag==1) {
data->Gcode[5]=-MacroBuf[(int)(MacroBuf[(int)(Gcode-468)]-200)];
}
else {
data->Gcode[5]=MacroBuf[(int)(MacroBuf[(int)(Gcode-468)]-200)];
}
break;
default:
GHasInvalidCode = TRUE; //has invalide code
break;
}
}
else{
switch ((int)(MacroBuf[(int)(MacroBuf[(int)(Gcode-468)]-468)])) {
case 4: //00:G04 G10 G28 G39 G50 G65 G70 G71 G72 G73 G74 G75 G7
case 10:
case 28:
case 39:
case 50:
case 65:
case 70:
case 71:
case 72:
case 73:
case 74:
case 75:
case 76:
if (flag==1) {
data->Gcode[0]=-MacroBuf[(int)(MacroBuf[(int)(Gcode-468)]-468)];
}
else {
data->Gcode[0]=MacroBuf[(int)(MacroBuf[(int)(Gcode-468)]-468)];
}
break;
case 0: //01: G00 G01 G02 G03 G32 G33 G90 G92 G94
case 1:
case 2:
case 3:
case 32:
case 33:
case 90:
case 92:
case 94:
if (flag==1) {
data->Gcode[1]=-MacroBuf[(int)(MacroBuf[(int)(Gcode-468)]-468)];
}
else {
data->Gcode[1]=MacroBuf[(int)(MacroBuf[(int)(Gcode-468)]-468)];
}
break;
case 96: //02: G96 G97
case 97:
if (flag==1) {
data->Gcode[2]=-MacroBuf[(int)(MacroBuf[(int)(Gcode-468)]-468)];
}
else {
data->Gcode[2]=MacroBuf[(int)(MacroBuf[(int)(Gcode-468)]-468)];
}
break;
case 98: //03: G98 G99
case 99:
if (flag==1) {
data->Gcode[3]=-MacroBuf[(int)(MacroBuf[(int)(Gcode-468)]-468)];
}
else {
data->Gcode[3]=MacroBuf[(int)(MacroBuf[(int)(Gcode-468)]-468)];
}
break;
case 20: //06: G20 G21
case 21:
if (flag==1) {
data->Gcode[4]=-MacroBuf[(int)(MacroBuf[(int)(Gcode-468)]-468)];
}
else {
data->Gcode[4]=MacroBuf[(int)(MacroBuf[(int)(Gcode-468)]-468)];
}
break;
case 40: //07: G40 G41 G42
case 41:
case 42:
if (flag==1) {
data->Gcode[5]=-MacroBuf[(int)(MacroBuf[(int)(Gcode-468)]-468)];
}
else {
data->Gcode[5]=MacroBuf[(int)(MacroBuf[(int)(Gcode-468)]-468)];
}
break;
default:
GHasInvalidCode = TRUE; //has invalide code
break;
}
}
}
}
return GHasInvalidCode;
}
int M_stmt(dataInterp *data,int Mcode) {
int flag=0; //用于标记-#和#,0:# 1:-#
int i;
int bOffLimits =FALSE;
data->Mflag=1;
if (G65Flag==0) {
for (i=0;i<19;i++) {
if (Mcode==McodeType[i]) {
MSTIllegal=0;
data->MST[0]=Mcode;
bOffLimits=FALSE;
return bOffLimits;
}
}
if (ParaBuf[IsOutMSTWarn]==0) {
// Uart_Printf("chaos1\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;
data->MST[0]=Mcode;
bOffLimits=FALSE;
return bOffLimits;
}
}
else if (G65Flag==1) {
G65Flag=0;
if (Mcode<0) {
flag=1;
Mcode=-Mcode;
}
if ((Mcode<200)||((Mcode>231)&&(Mcode<500))||((Mcode>515)&&(Mcode<9200))||((Mcode>9231)&&(Mcode<9500))||(Mcode>9515)) {
VarOverLimitError();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -