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

📄 rytestdlg.cpp

📁 MODBUS TCP的通讯管理机程序,用以和组态软件进行数据接口!
💻 CPP
📖 第 1 页 / 共 5 页
字号:
					          COM1Send[i][120+n+4]=Readbuf[13],COM1Send[i][120+n+5]=Readbuf[14];
					          COM1Send[i][120+n+6]=(Readbuf[15]*1000+Readbuf[16]+Readbuf[17]*256)/256;
					          COM1Send[i][120+n+7]=(Readbuf[15]*1000+Readbuf[16]+Readbuf[17]*256)%256;
					          COM1Send[i][120+n+8]=0x00,COM1Send[i][120+n+9]=0x00;
					          COM1Send[i][120+n+10]=Readbuf[19],COM1Send[i][120+n+11]=Readbuf[18];
					          COM1Send[i][120+n+12]=0x00,COM1Send[i][120+n+13]=Readbuf[22];
					          COM1Send[i][120+n+14]=Readbuf[21],COM1Send[i][120+n+15]=Readbuf[20];
					          COM1Send[i][120+n+16]=0x00,COM1Send[i][120+n+17]=0x00;
							  COM1Send[i][120+n+18]=0x00,COM1Send[i][120+n+19]=0xff;

					          COM1Send[i][119]=COM1Send[i][119]+1;
						  }
			
							grc2041.Unlock();
							DevErr[i]=0;
							serflag[132+i]=0;
						}
					}
			}

			if(dwByteRead==10&&Readbuf[6]==0x47)   
			{
				FlashCol(Col,flag);
				l=Readbuf[9];
				ReadFile(m_hPort1,codebuf,l-1,&dwByteRead,NULL);
				if(dwByteRead==l-1)
				{
					FlashCol(Col,flag);
					flag=~flag;
					for(j=0;j<l-1;j++)
						Readbuf[j+10]=codebuf[j];
					cs=0;
					for(j=0;j<l+1;j++)
						cs=cs+Readbuf[j+5];
					if(((cs%256)==Readbuf[l+6])&&((cs/256)==Readbuf[l+7]))
					{
						WriteFile(m_hPort1,fun4, sizeof(fun4), &dwBytesWritten, NULL);
						FlashCol(Col,flag);
			     		flag=~flag;
						grc2041.Lock();
						if(COM1Send[i][119]>=30)
				             COM1Send[i][119]=30;
			             else	
						 {
							 n=COM1Send[i][119]*22;

						     COM1Send[i][120+n]=0x00,COM1Send[i][120+n+1]=Readbuf[10];
					         COM1Send[i][120+n+2]=Readbuf[11],COM1Send[i][120+n+3]=Readbuf[12];
					         COM1Send[i][120+n+4]=Readbuf[13],COM1Send[i][120+n+5]=Readbuf[14];
					         COM1Send[i][120+n+6]=(Readbuf[15]*1000+Readbuf[16]+Readbuf[17]*256)/256;
					         COM1Send[i][120+n+7]=(Readbuf[15]*1000+Readbuf[16]+Readbuf[17]*256)%256;
					         COM1Send[i][120+n+8]=0x00,COM1Send[i][120+n+9]=0x01;
					         COM1Send[i][120+n+10]=Readbuf[20],COM1Send[i][120+n+11]=Readbuf[19];
					         COM1Send[i][120+n+12]=0x00,COM1Send[i][120+n+13]=0x00;
					         COM1Send[i][120+n+14]=0x00,COM1Send[i][120+n+15]=0x00;
					         COM1Send[i][120+n+16]=0x00,COM1Send[i][120+n+17]=0x00;
						     COM1Send[i][120+n+18]=0x00,COM1Send[i][120+n+19]=0xff;

				             COM1Send[i][119]=COM1Send[i][119]+1;
						 }
			
							grc2041.Unlock();
							DevErr[i]=0;
							serflag[132+i]=0;
						}
					}
				}
			    
				if(dwByteRead==0)
				     DevErr[i]++;
			}

			//YAO XIN
			PurgeComm(m_hPort1,PURGE_RXCLEAR);
			WriteFile(m_hPort1,fun7, sizeof(fun7), &dwBytesWritten, NULL);
			if(dwBytesWritten==13)
			{
				FlashCol(Col,flag);
				flag=~flag;
				ReadFile(m_hPort1,Readbuf,10,&dwByteRead,NULL);
				if(dwByteRead==10&&Readbuf[6]==0x54)   //XIN GU ZHANG
				{
					FlashCol(Col,flag);
					l=Readbuf[9];
					ReadFile(m_hPort1,codebuf,l-1,&dwByteRead,NULL);
					if(dwByteRead==l-1)
					{
						FlashCol(Col,flag);
				        flag=~flag;
					    for(j=0;j<l-1;j++)
						    Readbuf[j+10]=codebuf[j];
					    cs=0;
					    for(j=0;j<l+1;j++)
						   cs=cs+Readbuf[j+5];
					    if(((cs%256)==Readbuf[l+6])&&((cs/256)==Readbuf[l+7]))
						{
					       grc2041.Lock();
					       for(j=0;j<8;j=j+2)
					           COM1Send[i][104+j]=Readbuf[11+j],COM1Send[i][104+j+1]=Readbuf[10+j];
					       grc2041.Unlock();	
					       DevErr[i]=0;
					       serflag[132+i]=0;
						}
					}
				}

				if(dwByteRead==10&&Readbuf[6]==0x46)   
				{
					FlashCol(Col,flag);
					l=Readbuf[9];
					ReadFile(m_hPort1,codebuf,l-1,&dwByteRead,NULL);
					if(dwByteRead==l-1)
					{
						FlashCol(Col,flag);
				        flag=~flag;
					    for(j=0;j<l-1;j++)
						    Readbuf[j+10]=codebuf[j];
					    cs=0;
					    for(j=0;j<l+1;j++)
						    cs=cs+Readbuf[j+5];
					    if(((cs%256)==Readbuf[l+6])&&((cs/256)==Readbuf[l+7]))
						{
						    WriteFile(m_hPort1,fun4, sizeof(fun4), &dwBytesWritten, NULL);
							FlashCol(Col,flag);
				            flag=~flag;
							grc2041.Lock();
							 if(COM1Send[i][119]>=30)
				                COM1Send[i][119]=30;
			                 else	
							 {
								 n=COM1Send[i][119]*22;
					        
					    	     COM1Send[i][120+n]=0x00,COM1Send[i][120+n+1]=Readbuf[10];
					             COM1Send[i][120+n+2]=Readbuf[11],COM1Send[i][120+n+3]=Readbuf[12];
					             COM1Send[i][120+n+4]=Readbuf[13],COM1Send[i][120+n+5]=Readbuf[14];
					             COM1Send[i][120+n+6]=(Readbuf[15]*1000+Readbuf[16]+Readbuf[17]*256)/256;
					             COM1Send[i][120+n+7]=(Readbuf[15]*1000+Readbuf[16]+Readbuf[17]*256)%256;
					             COM1Send[i][120+n+8]=0x00,COM1Send[i][120+n+9]=0x00;
					             COM1Send[i][120+n+10]=Readbuf[19],COM1Send[i][120+n+11]=Readbuf[18];
					             COM1Send[i][120+n+12]=0x00,COM1Send[i][120+n+13]=Readbuf[22];
					             COM1Send[i][120+n+14]=Readbuf[21],COM1Send[i][120+n+15]=Readbuf[20];
							     COM1Send[i][120+n+16]=0x00,COM1Send[i][120+n+17]=0x00;
					             COM1Send[i][120+n+18]=0x00,COM1Send[i][120+n+19]=0xff;

					             COM1Send[i][119]=COM1Send[i][119]+1;
							 }
			
							grc2041.Unlock();
							DevErr[i]=0;
							serflag[132+i]=0;
						}
					}
				}

				if(dwByteRead==10&&Readbuf[6]==0x47)   
				{
					FlashCol(Col,flag);
					l=Readbuf[9];
					ReadFile(m_hPort1,codebuf,l-1,&dwByteRead,NULL);
					if(dwByteRead==l-1)
					{
						FlashCol(Col,flag);
				        flag=~flag;
					    for(j=0;j<l-1;j++)
						    Readbuf[j+10]=codebuf[j];
					    cs=0;
					    for(j=0;j<l+1;j++)
						    cs=cs+Readbuf[j+5];
					    if(((cs%256)==Readbuf[l+6])&&((cs/256)==Readbuf[l+7]))
						{
							WriteFile(m_hPort1,fun4, sizeof(fun4), &dwBytesWritten, NULL);
							FlashCol(Col,flag);
				            flag=~flag;
							grc2041.Lock();
							if(COM1Send[i][119]>=30)
				                 COM1Send[i][119]=30;
			                else	
							{
								n=COM1Send[i][119]*22;

						   	    COM1Send[i][120+n]=0x00,COM1Send[i][120+n+1]=Readbuf[10];
					            COM1Send[i][120+n+2]=Readbuf[11],COM1Send[i][120+n+3]=Readbuf[12];
					            COM1Send[i][120+n+4]=Readbuf[13],COM1Send[i][120+n+5]=Readbuf[14];
					            COM1Send[i][120+n+6]=(Readbuf[15]*1000+Readbuf[16]+Readbuf[17]*256)/256;
					            COM1Send[i][120+n+7]=(Readbuf[15]*1000+Readbuf[16]+Readbuf[17]*256)%256;
					            COM1Send[i][120+n+8]=0x00,COM1Send[i][120+n+9]=0x01;
					            COM1Send[i][120+n+10]=Readbuf[20],COM1Send[i][120+n+11]=Readbuf[19];
					            COM1Send[i][120+n+12]=0x00,COM1Send[i][120+n+13]=0x00;
					            COM1Send[i][120+n+14]=0x00,COM1Send[i][120+n+15]=0x00;
					            COM1Send[i][120+n+16]=0x00,COM1Send[i][120+n+17]=0x00;
							    COM1Send[i][120+n+18]=0x00,COM1Send[i][120+n+19]=0xff;

					            COM1Send[i][119]=COM1Send[i][119]+1;
							}
			
							grc2041.Unlock();
							DevErr[i]=0;
							serflag[132+i]=0;
						}
					}
				}
				if(dwByteRead==0)
				    DevErr[i]++;
			}

			//DIAN DU LIANG
			PurgeComm(m_hPort1,PURGE_RXCLEAR);
			WriteFile(m_hPort1,fun15, sizeof(fun15), &dwBytesWritten, NULL);
			if(dwBytesWritten==13)
			{
				FlashCol(Col,flag);
				flag=~flag;
				ReadFile(m_hPort1,Readbuf,10,&dwByteRead,NULL);
				if(dwByteRead==10&&Readbuf[6]==0x51)   
				{	
					FlashCol(Col,flag);
				    l=Readbuf[9];
					ReadFile(m_hPort1,codebuf,l-1,&dwByteRead,NULL);
					if(dwByteRead==l-1)
					{
						FlashCol(Col,flag);
				        flag=~flag;
						for(j=0;j<l-1;j++)
						    Readbuf[j+10]=codebuf[j];
					    cs=0;
					    for(j=0;j<l+1;j++)
						    cs=cs+Readbuf[j+5];
					    if(((cs%256)==Readbuf[l+6])&&((cs/256)==Readbuf[l+7]))
						{
					       grc2041.Lock();
					       for(j=0;j<4;j=j+2)
					           COM1Send[i][100+j]=Readbuf[10+j+1],COM1Send[i][100+j+1]=Readbuf[10+j];
					       grc2041.Unlock();
					       DevErr[i]=0;
					       serflag[132+i]=0;
						}
					}
				}

				if(dwByteRead==10&&Readbuf[6]==0x46)   
				{
					FlashCol(Col,flag);
					l=Readbuf[9];
					ReadFile(m_hPort1,codebuf,l-1,&dwByteRead,NULL);
					if(dwByteRead==l-1)
					{
						FlashCol(Col,flag);
				        flag=~flag;
					    for(j=0;j<l-1;j++)
						   Readbuf[j+10]=codebuf[j];
					    cs=0;
					    for(j=0;j<l+1;j++)
						   cs=cs+Readbuf[j+5];
					    if(((cs%256)==Readbuf[l+6])&&((cs/256)==Readbuf[l+7]))
						{
						    WriteFile(m_hPort1,fun4, sizeof(fun4), &dwBytesWritten, NULL);
							FlashCol(Col,flag);
				            flag=~flag;
							grc2041.Lock();
							if(COM1Send[i][119]>=30)
				                 COM1Send[i][119]=30;
			                 else	
							 {
								 n=COM1Send[i][119]*22;
					        
					    	     COM1Send[i][120+n]=0x00,COM1Send[i][120+n+1]=Readbuf[10];
					             COM1Send[i][120+n+2]=Readbuf[11],COM1Send[i][120+n+3]=Readbuf[12];
					             COM1Send[i][120+n+4]=Readbuf[13],COM1Send[i][120+n+5]=Readbuf[14];
					             COM1Send[i][120+n+6]=(Readbuf[15]*1000+Readbuf[16]+Readbuf[17]*256)/256;
					             COM1Send[i][120+n+7]=(Readbuf[15]*1000+Readbuf[16]+Readbuf[17]*256)%256;
					             COM1Send[i][120+n+8]=0x00,COM1Send[i][120+n+9]=0x00;
					             COM1Send[i][120+n+10]=Readbuf[19],COM1Send[i][120+n+11]=Readbuf[18];
					             COM1Send[i][120+n+12]=0x00,COM1Send[i][120+n+13]=Readbuf[22];
					             COM1Send[i][120+n+14]=Readbuf[21],COM1Send[i][120+n+15]=Readbuf[20];
					             COM1Send[i][120+n+16]=0x00,COM1Send[i][120+n+17]=0x00;
							     COM1Send[i][120+n+18]=0x00,COM1Send[i][120+n+19]=0xff;

					             COM1Send[i][119]=COM1Send[i][119]+1;
							 }
			
							grc2041.Unlock();
							DevErr[i]=0;
							serflag[132+i]=0;
						}
					}
				}

				if(dwByteRead==10&&Readbuf[6]==0x47)   
				{
					FlashCol(Col,flag);
					l=Readbuf[9];
					ReadFile(m_hPort1,codebuf,l-1,&dwByteRead,NULL);
					if(dwByteRead==l-1)
					{
						FlashCol(Col,flag);
				        flag=~flag;
					    for(j=0;j<l-1;j++)
						    Readbuf[j+10]=codebuf[j];
					    cs=0;
					    for(j=0;j<l+1;j++)
						    cs=cs+Readbuf[j+5];
					    if(((cs%256)==Readbuf[l+6])&&((cs/256)==Readbuf[l+7]))
						{
							WriteFile(m_hPort1,fun4, sizeof(fun4), &dwBytesWritten, NULL);
							FlashCol(Col,flag);
				            flag=~flag;
							grc2041.Lock();
							if(COM1Send[i][119]>=30)
				                COM1Send[i][119]=30;
			                else	
							{
								n=COM1Send[i][119]*22;

							    COM1Send[i][120+n]=0x00,COM1Send[i][120+n+1]=Readbuf[10];
					            COM1Send[i][120+n+2]=Readbuf[11],COM1Send[i][120+n+3]=Readbuf[12];
					            COM1Send[i][120+n+4]=Readbuf[13],COM1Send[i][120+n+5]=Readbuf[14];
					            COM1Send[i][120+n+6]=(Readbuf[15]*1000+Readbuf[16]+Readbuf[17]*256)/256;
					            COM1Send[i][120+n+7]=(Readbuf[15]*1000+Readbuf[16]+Readbuf[17]*256)%256;
					            COM1Send[i][120+n+8]=0x00,COM1Send[i][120+n+9]=0x01;
					            COM1Send[i][120+n+10]=Readbuf[20],COM1Send[i][120+n+11]=Readbuf[19];
					            COM1Send[i][120+n+12]=0x00,COM1Send[i][120+n+13]=0x00;
					            COM1Send[i][120+n+14]=0x00,COM1Send[i][120+n+15]=0x00;
							    COM1Send[i][120+n+16]=0x00,COM1Send[i][120+n+17]=0x00;
					            COM1Send[i][120+n+18]=0x00,COM1Send[i][120+n+19]=0xff;

					            COM1Send[i][119]=COM1Send[i][119]+1;
							}
			
							grc2041.Unlock();
							DevErr[i]=0;
							serflag[132+i]=0;
						}
					}
				}
			if(dwByteRead==0)
			   DevErr[i]++;
			}

			//DINGZH
			if(COM1Send[i][5]==0x0f)
			{
				fun14[10]=(fun14[5]+fun14[6]+fun14[7]+fun14[8]+fun14[9])%256;
			    fun14[11]=(fun14[5]+fun14[6]+fun14[7]+fun14[8]+fun14[9])/256;
				PurgeComm(m_hPort1,PURGE_RXCLEAR);
			    WriteFile(m_hPort1,fun14, sizeof(fun14), &dwBytesWritten, NULL);
			    if(dwBytesWritten==13)
				{
					FlashCol(Col,flag);
				    flag=~flag;
				    ReadFile(m_hPort1,Readbuf,10,&dwByteRead,NULL);
				    if(dwByteRead==10&&Readbuf[6]==0x41)   
					{
						FlashCol(Col,flag);
					   l=Readbuf[9];
					   ReadFile(m_hPort1,codebuf,l-1,&dwByteRead,NULL);
                       if(dwByteRead==l-1)
					   {
					       for(j=0;j<l-1;j++)
						       Readbuf[j+10]=codebuf[j];
					       cs=0;
					       for(j=0;j<l+1;j++)
						       cs=cs+Readbuf[j+5];
					       if(((cs%256)==Readbuf[l+6])&&((cs/256)==Readbuf[l+7]))
						   { 
						      grc2041.Lock();
						      for(j=0;j<50;j=j+2)
					             COM1Send[i][j+1+20]=Readbuf[14+j],COM1Send[i][j+20]=Readbuf[15+j];
						      COM1Send[i][70]=Readbuf[65],COM1Send[i][71]=Readbuf[64];
						      COM1Send[i][4]=0x00,COM1Send[i][5]=0xf0;
						      grc2041.Unlock();
						      DevErr[i]=0;
						      serflag[132+i]=0;
						   }
					   }
					
					}

				if(dwByteRead==10&&Readbuf[

⌨️ 快捷键说明

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