📄 modbus.c
字号:
X3Dat[0]=WindowsFg/256;
X3Dat[1]=WindowsFg%256;
X3Dat[2]=StartTm/256;
X3Dat[3]=StartTm%256;
X3Dat[4]=CalTm/256;
X3Dat[5]=CalTm%256;
X3Dat[8]=(int16)(LkPtVaccumMain) /256;
X3Dat[9]=(int16)(LkPtVaccumMain) % 256;
X3Dat[10]=(int16)(TpumVaccumMain)/256;
X3Dat[11]=(int16)(TpumVaccumMain)%256;
if(EnShowVcm==1)
{
EnShowVcm=0;
TmpVcm=LkPtVaccum;
VmExp=0;
if((LkPtVaccum<10)&&(LkPtVaccum!=0))
{
X3Dat[16]=0;//检漏口压力符号
X3Dat[17]=1;//负号
while(TmpVcm<10)
{
TmpVcm=TmpVcm*10;
VmExp++;
}
X3Dat[12]=(int8)(TmpVcm)/256;
X3Dat[13]=(int8)(TmpVcm)%256;
X3Dat[14]=(int8)(VmExp-1) /256;
X3Dat[15]=(int8)(VmExp-1) % 256;
}
else if((LkPtVaccum>=100))
{
X3Dat[16]=0;//检漏口压力符号
X3Dat[17]=0;//+号
while((uint32)(TmpVcm)>=100)
{
TmpVcm=TmpVcm/10;
VmExp++;
}
X3Dat[12]=(int8)(TmpVcm)/256;
X3Dat[13]=(int8)(TmpVcm)%256;
X3Dat[14]=(int8)(VmExp+1) /256;
X3Dat[15]=(int8)(VmExp+1) % 256;
}
else
{
X3Dat[16]=0;//检漏口压力符号
X3Dat[17]=0;//+号
X3Dat[12]=(int8)(TmpVcm)/256;
X3Dat[13]=(int8)(TmpVcm)%256;
X3Dat[14]=(int8)(VmExp+1) /256;
X3Dat[15]=(int8)(VmExp+1) % 256;
}
EnVacum=1;
TmpVcm=TpumVaccum;
VmExp=0;
if((TpumVaccum<10)&&(TpumVaccum!=0))
{
X3Dat[26]=0;//压力符号
X3Dat[27]=1;//负号
while(TmpVcm<10)
{
TmpVcm=TmpVcm*10;
VmExp++;
}
X3Dat[22]=(int8)(TmpVcm)/256;
X3Dat[23]=(int8)(TmpVcm)%256;
X3Dat[24]=(int8)(VmExp-1) /256;
X3Dat[25]=(int8)(VmExp-1) % 256;
}
else if((TpumVaccum>=100))
{
X3Dat[26]=0;//压力符号
X3Dat[27]=0;//+号
while((uint32)(TmpVcm)>=100)
{
TmpVcm=TmpVcm/10;
VmExp++;
}
X3Dat[22]=(int8)(TmpVcm)/256;
X3Dat[23]=(int8)(TmpVcm)%256;
X3Dat[24]=(int8)(VmExp+1) /256;
X3Dat[25]=(int8)(VmExp+1) % 256;
}
else
{
X3Dat[26]=0;//压力符号
X3Dat[27]=0;//+号
X3Dat[22]=(int8)(TmpVcm)/256;
X3Dat[23]=(int8)(TmpVcm)%256;
X3Dat[24]=(int8)(VmExp+1) /256;
X3Dat[25]=(int8)(VmExp+1) % 256;
}
}
X3Dat[18]=(int8)(LeakBase)/256;
X3Dat[19]=(int8)(LeakBase)%256;
X3Dat[20]=LeakExp/256;
X3Dat[21]=LeakExp%256;
X3Dat[30]=(uint16)(RemCal)/256;
X3Dat[31]=(uint16)(RemCal)%256;
X3Dat[32]=0;
X3Dat[33]=0;
X3Dat[34]=StartBar/256;
X3Dat[35]=StartBar%256;
X3Dat[36]=DxCurent/256;
X3Dat[37]=DxCurent%256;
X3Dat[38]=TrapCurent/256;
X3Dat[39]=TrapCurent%256;
X3Dat[40]=SigVol/256;
X3Dat[41]=SigVol%256;
X3Dat[42]=LkVol/256;
X3Dat[43]=LkVol%256;
X3Dat[44]=PumVol/256;
X3Dat[45]=PumVol%256;
X3Dat[46]=0;
X3Dat[47]=0;
X3Dat[48]=TureBdTmp/256;
X3Dat[49]=TureBdTmp%256;
X3Dat[50]=AmpRate/256;
X3Dat[51]=AmpRate%256;
X3Dat[52]=Xx/256;
X3Dat[53]=Xx%256;
X3Dat[54]=0;
X3Dat[55]=(int8)(MsOk&1);
X3Dat[56]=0;
X3Dat[57]=(int8)(TmpOk&1);
X3Dat[58]=0;
if((IO0PIN&Var1)==0)
X3Dat[59]=0;
else
X3Dat[59]=1;
X3Dat[60]=0;
if((IO0PIN&Var2)==0)
X3Dat[61]=0;
else
X3Dat[61]=1;
X3Dat[62]=0;
if((IO0PIN&Var3)==0)
X3Dat[63]=0;
else
X3Dat[63]=1;
X3Dat[64]=0;
if((IO0PIN&Var4)==0)
X3Dat[65]=0;
else
X3Dat[65]=1;
X3Dat[66]=0;
if((IO1PIN&Var5)==0)
X3Dat[67]=0;
else
X3Dat[67]=1;
X3Dat[68]=0;
if((IO0PIN&Var6)==0)
X3Dat[69]=0;
else
X3Dat[69]=1;
X3Dat[70]=0;
X3Dat[71]=(int8)(Zeroing&0x01);
X3Dat[72]=(int16)(LeakValue)/256;
X3Dat[73]=(int16)(LeakValue)%256;
//显示缓冲,可能与其他的X3X4数据重复
X3Dat[98]=X4Dat[4]; //3x50
X3Dat[99]=X4Dat[5];
X3Dat[100]=0/256;
X3Dat[101]=0%256;
X3Dat[102]=X3Dat[70];
X3Dat[103]=X3Dat[71];
X3Dat[104]=X3Dat[18];
X3Dat[105]=X3Dat[19];
X3Dat[106]=X3Dat[20];
X3Dat[107]=X3Dat[21];
X3Dat[108]=X3Dat[12];
X3Dat[109]=X3Dat[13];
X3Dat[110]=X3Dat[16];
X3Dat[111]=X3Dat[17];
X3Dat[112]=X3Dat[14];
X3Dat[113]=X3Dat[15];
X3Dat[114]=VacumUnit/256;
X3Dat[115]=VacumUnit%256;
X3Dat[116]=0; //漏率单位
X3Dat[117]=0;
X3Dat[118]=0;
X3Dat[119]=0;
X3Dat[120]=0;
X3Dat[121]=0;
X3Dat[122]=0;
X3Dat[123]=0;
X3Dat[124]=0;
X3Dat[125]=0;
CmdAdd=RecDat[2]*256+RecDat[3];
Num=RecDat[4]*256+RecDat[5];
SendX34(CmdAdd,Num,X3Dat);
break;
case 5:
CmdAdd=RecDat[2]*256+RecDat[3];
if (RecDat[4]==0xff)
X0Dat[CmdAdd/8]=X0Dat[CmdAdd/8]|(1<<(CmdAdd%8));
else
X0Dat[CmdAdd/8]=X0Dat[CmdAdd/8]&(~(1<<(CmdAdd%8)));
RespX01(CmdAdd);
break;
case 6:
X4Dat[61]=TureBdTmp;
//X4Dat[60]=BdTmp/256;
CmdAdd=RecDat[2]*256+RecDat[3];
Num=RecDat[4]*256+RecDat[5];
SendX34(CmdAdd,Num,X4Dat);
break;
case 16:
CmdAdd=RecDat[2]*256+RecDat[3];
Num=RecDat[4]*256+RecDat[5];
for(i=0;i<Num*2;i++)
{
X4Dat[CmdAdd*2+i]=RecDat[7+i];
//X4Dat[CmdAdd*2]=RecDat[7];
//X4Dat[CmdAdd*2+1]=RecDat[8];
}
AlarmBase=256*X4Dat[0]+X4Dat[1];
AlarmExp =256*X4Dat[2]+X4Dat[3];
Volum =256*X4Dat[4]+X4Dat[5];
Unit =256*X4Dat[6]+X4Dat[7];
CalBase =256*X4Dat[8]+X4Dat[9];
CalExp =256*X4Dat[10]+X4Dat[11];
DecPort =256*X4Dat[12]+X4Dat[13];
VacumUnit=256*X4Dat[16]+X4Dat[17];
FltMod =256*X4Dat[18]+X4Dat[19];
ZeroMode=X4Dat[20]*256+X4Dat[21];
ZeroLevel=X4Dat[22]*256+X4Dat[23];
ZeroDelTm=X4Dat[24]*256+X4Dat[25];
RelBase1= 256*X4Dat[26]+X4Dat[27];
RelExp1= 256*X4Dat[28]+X4Dat[29];
RelBase2= 256*X4Dat[30]+X4Dat[31];
RelExp2= 256*X4Dat[32]+X4Dat[33];
EnRel1= 256*X4Dat[34]+X4Dat[35];
EnRel2= 256*X4Dat[36]+X4Dat[37];
MacFact= 256*X4Dat[50]+X4Dat[51];;
EnWarnRel= 256*X4Dat[54]+X4Dat[55];
AmpRate= 256*X4Dat[56]+X4Dat[57];
AmpSelect=256*X4Dat[58]+X4Dat[59];
SavePar=1;
SetResp(CmdAdd,Num);
break;
default:
RecLen=0;
break;
}
}
}
else
{
RecLen=0;
}
RecLen=0;
}
else if(RecLen<6)
{
RecLen=0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -