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

📄 modbus.c

📁 我用ARM写的一些东西
💻 C
📖 第 1 页 / 共 2 页
字号:
						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 + -