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

📄 commujk1f.c

📁 电力系统中的保护装置全部代码
💻 C
📖 第 1 页 / 共 5 页
字号:
            	{
                	Measure_Value();
                	break; 
                } 
                else if(ASDU_9_FlagJK1 & _Data_RDY9)
            	{
                	Measure_Value9();
                	break; 
                } 
                else     
                {
                	NoMessag_ReplyJK1();
                	break;
                }
         	default:
                		
            	NoMessag_ReplyJK1();				/*无相应报文*/ 
                break;          
         	}  
     		return(1);
                   
    	}
		//----------------------receive infix frame------------------------*/   
    	if(ReceFrameFlagJK1==FrameunFix) 
    	{
     		ControlCode = (ReceUpBuffRemJK1[4]) & 0xff; 
     
     		if(!(ControlCode&_PRM)) 
       		{
         		ReceFrameFlagJK1	=	NotPrimaryFrame ;
         		TransmitflagJK1 = NoTransmit; 
         		return(0);   						/*Not primary*/
        	}
     
     		if((ControlCode&_FCV))
          	{	
          		if(!((ControlCode&_FCB)^(ImageCtrCodeJK1&_FCB)))
                   	 {
                   		if(!(MsgTransUpFlagJK1&Reset_CU))  
                   		{           			
                   			TransmitflagJK1	= ReTransmit;
                   			ImageCtrCodeJK1	= ControlCode;
                   			return(1);
                   		} 
                   	}	
            } 
               		
     		ImageCtrCodeJK1=ControlCode;    
     		switch(ReceUpBuffRemJK1[6] & 0xff)
         	{
          		case 0x06:         					/*ReModify the time*/
//                	ReceUpBuffRemJK1[9] = 0xff; 	//broadcast  CPUs
          	 		
               		if((ReceUpBuffRemJK1[5]&0xff) == 0xff)
        	   		{
        	   			Modify_TimeJK1();
        	   			TransmitflagJK1 = NoTransmit; 
        	   		}
    		 		else
        	   		{
    		   			Modify_TimeJK1();
    		   			MsgTransUpFlagJK1 |= ReModify_Time;
 		   				Common_Addr_JK1= ReceUpBuffRemJK1[9];
 		   				Sure_MsgJK1();
        	   		}
                 
                	break;
           
          		case 0x07:        					/*General inspect start*/  
                	
                	Inspect_NumberJK1 = ReceUpBuffRemJK1[12];                    
               		Common_Addr_JK1 = ReceUpBuffRemJK1[9];
               	
               		switch(0xff & ReceUpBuffRemJK1[9])
               		{
                		case 1:                             //protection
                			MsgTransUpFlagJK1 |= Gen_Inspect_Start;
                			MsgTransUpFlagJK1 |= Self_Inspection;
                			Gen_Insp_IndexJK1 = 0x0b;     // Inspection msg number;
                			break;
                		case 2:                           //monitor & control
                	        MsgTransUpFlagJK1 |= Gen_Inspect_Start;
                	    	MsgTransUpFlagJK1 |= DIN_Status; 
                			MsgTransUpFlagJK1 |= Tap_Chger_Status;
                			break;
                		default:
                			MsgTransUpFlagJK1 |= Gen_Inspect_Start;
                			MsgTransUpFlagJK1 |= Gen_Inspect_End; 
                			break;
               		}
                	
                	
                	Sure_MsgJK1();   
                	break;      
         		case 60:    
                	MsgTransUpFlagJK1	|= Return_Version;
                	Common_Addr_JK1= ReceUpBuffRemJK1[9];
                	Sure_MsgJK1();
                	break;
         	
         		case 65:          					 
               	 
                 	Receive_ASDU_ERROR();                       
                	Sure_MsgJK1(); 
               		break;
           
         		case 64: 
         		   if(DIChn[YKYX].state)
         		   {                                  /*about control CB operation*/
                    Receive_ASDU_64();
                    Common_Addr_JK1= ReceUpBuffRemJK1[9];
                	Sure_MsgJK1();  
                	}
                	else
                	 {
                      Receive_ASDU_ERROR();                       
                      Sure_MsgJK1(); 
                	 } 
                	break; 
          		case 88:      
          		    if((ReceUpBuffRemJK1[9]&0xff) == 2)
          		    {
          		    Receive_ASDU_88();
          		    Common_Addr_JK1= ReceUpBuffRemJK1[9];            		
                    Sure_MsgJK1();  
                    }
                    else
                    {
                    MsgTransUpFlagJK1 |= Coulometer_No;
                    Common_Addr_JK1= ReceUpBuffRemJK1[9];            		
                    Sure_MsgJK1(); 
                    }
                    break;     
                case 20:  
                     Receive_ASDU_20();  
                	 Common_Addr_JK1= ReceUpBuffRemJK1[9];
                     break; 
                case 61: 
                    Receive_ASDU_61(); 
                    Common_Addr_JK1= ReceUpBuffRemJK1[9];
                    Sure_MsgJK1();
                	break;
                case 62: 
                    NoMessag_ReplyJK1();
                	break;   	
          		default:
                 	NoMessag_ReplyJK1();				/*无相应报文*/ 
                 	break;          
         	} 
      		return(1);
    	}      
}
   
/* This function has been inspected.GauTsunFar 2001-12-22

函数功能: replying message of sure.

输入参数: no; 
                    
输出参数: buffer address of transmit frame-------- TransUpBuffRemJK1;
         
返回值:   no need mention;	

*/     
int Sure_MsgJK1(void)
{   
unsigned char *ptr;
//----------------------
 	ptr = TransUpBuffRemJK1;
 	*(ptr+0)	=	0x10; 
 	if((!MsgTransUpFlagJK1) && (pReportOUT_COM == pReportIN))
    {
    	*(ptr+1)	=	0x00;
 	}
 	else    
    {
        *(ptr+1)	=	0x20;
 	}
 	*(ptr+2)	=	subAddress_backup;
 	*(ptr+3)	=	*(ptr+1) + *(ptr+2);
 	*(ptr+4)	=	0x16;  
 	TransmitflagJK1		=	FrameFix; 
 	return(1);             
 
}                 
/* This function has been inspected.GauTsunFar 2001-12-22

函数功能: replying message of no-required-data frame.

输入参数: no; 
                    
输出参数: buffer address of transmit frame-------- TransUpBuffRemJK1;
         
返回值:   no need mention;	

*/      
int NoMessag_ReplyJK1(void)
{
unsigned char *ptr;
//----------------------
 	ptr = TransUpBuffRemJK1;
 	*(ptr+0)	=	0x10;
 	
 	if((!MsgTransUpFlagJK1) && (pReportOUT_COM == pReportIN))
    {
    	*(ptr+1)	=	0x09;
    }
 	else    
    {
    	*(ptr+1)	=	0x29;
    }
 	*(ptr+2)	=	subAddress_backup;
 	*(ptr+3)	=	*(ptr+1) + *(ptr+2);
 	*(ptr+4)	=	0x16;  
 	TransmitflagJK1		=	FrameFix; 
 	return(1);
}                 
/* This function has been inspected.GauTsunFar 2001-12-22

函数功能: replying message of LSDU-status frame.

输入参数: no; 
                    
输出参数: buffer address of transmit frame-------- TransUpBuffRemJK1;
         
返回值:   no need mention;	

*/         
int LSDU_Status_ReplyJK1(void)
{
unsigned char *ptr;
//----------------------
 	ptr = TransUpBuffRemJK1;
 	*(ptr+0)	=	0x10; 
 		if((!MsgTransUpFlagJK1) && (pReportOUT_COM == pReportIN))
    { 
    	*(ptr+1)	=	0x0b;  /*11-Normal;14-NotWorking;15-NotComplete需要修改*/
 	}
 	else    
    {
    	*(ptr+1)	=	0x2b;
 	}
 	*(ptr+2)	=	subAddress_backup;
 	*(ptr+3)	=	*(ptr+1) + *(ptr+2);
 	*(ptr+4)	=	0x16;  
 	TransmitflagJK1		=	FrameFix; 
 	return(1);        
 
}         
        
/* This function has been inspected.GauTsunFar 2001-12-22

函数功能: replying message of reset-device frame.

输入参数: no; 
                    
输出参数: buffer address of transmit frame-------- TransUpBuffRemJK1;
         
返回值:   no need mention;	

*/ 
int Rest_Device_MsgJK1(void)
{
 
 	MsgTransUpFlagJK1	&= Reset_Device^0xffffffff;
 	Rest_Version_MsgJK1();
 	TransUpBuffRemJK1[8]	=	5;
 	TransUpBuffRemJK1[11]	=	4; 
 	return(1);               
 
}    

/* This function has been inspected.GauTsunFar 2001-12-22

函数功能: replying message of reset-CU frame.

输入参数: no; 
                    
输出参数: buffer address of transmit frame-------- TransUpBuffRemJK1;
         
返回值:   no need mention;	

*/ 

int Rest_CU_MsgJK1(void)
{
 	MsgTransUpFlagJK1	&=	Reset_CU^0xffffffff; 
 	Rest_Version_MsgJK1();
 	TransUpBuffRemJK1[8]	=	4;
 	TransUpBuffRemJK1[11]	=	3; 
 	return(1);                
 
}   

/* This function has been inspected.GauTsunFar 2001-12-22

函数功能: replying message of reset-FCB frame.

输入参数: no; 
                    
输出参数: buffer address of transmit frame-------- TransUpBuffRemJK1;
         
返回值:   no need mention;	

*/  
int Rest_FCB_MsgJK1(void)
{
 	MsgTransUpFlagJK1	&= Reset_FCB^0xffffffff; 
 	Rest_Version_MsgJK1();
 	TransUpBuffRemJK1[8]	=	3;
 	TransUpBuffRemJK1[11]	=	2;  
 	return(1);                
 
}

/* This function has been inspected.GauTsunFar 2001-12-22

函数功能: replying message of version frame.

输入参数: no; 
                    
输出参数: buffer address of transmit frame-------- TransUpBuffRemJK1;
         
返回值:   no need mention;	

*/    
int Rest_Version_MsgJK1(void)
{    
unsigned char *ptr;
//------------------------------
	ptr = TransUpBuffRemJK1;     
 	LSDU_MsgJK1();
 	*(ptr+1) =	21;
 	*(ptr+2) =	21;                   
 	*(ptr+6) =	5;
 	*(ptr+7) =	0x81;
 	*(ptr+8) =	3;
 	*(ptr+9) =	1;
 	*(ptr+10)=	178;
 	*(ptr+11)=	2;
 	*(ptr+12)=	2;
 	*(ptr+13)=	'W';
 	*(ptr+14)=	'X';
 	*(ptr+15)=	'H';
 	*(ptr+16)=	'-';
 	*(ptr+17)=	'8';
 	*(ptr+18)=	'2';
 	*(ptr+19)=	'1';   
 	*(ptr+20)=	'';
 	*(ptr+21)=	0x10;
 	*(ptr+22)=	0; /**/
 	*(ptr+23)=	CRC_Code & 0xff; /*This byte means the low byte of version*/
 	*(ptr+24)=	(CRC_Code & 0xff00)>>8; /*This byte means the High byte of version*/
 	return(1);             
 
}    

/* This function has been inspected.GauTsunFar 2001-12-22
                     
函数功能: replying frame head.

输入参数: no; 
                    
输出参数: buffer address of transmit frame-------- TransUpBuffRemJK1;
         
返回值:   no need mention;	

*/          
int LSDU_MsgJK1(void)
{  
unsigned char *ptr;
//------------------------------
	ptr = TransUpBuffRemJK1;
	
 	*(ptr+0)	=	0x68;
 	*(ptr+3)	=	0x68;
 	if((!MsgTransUpFlagJK1) && (pReportOUT_COM == pReportIN))
    {
    	*(ptr+4) = 0x08;
 	}
 	else    
    {
    	*(ptr+4) = 0x28; 
 	}
 	*(ptr+5)	=	subAddress_backup; 
 	TransmitflagJK1		=	FrameunFix; 
 	return(1);             
 
}     
/* This function has been inspected.GauTsunFar 2001-12-22

函数功能: replying message of modify-time frame.

输入参数: no; 
                    
输出参数: buffer address of transmit frame-------- TransUpBuffRemJK1;
         
返回值:   no need mention;	

*/      
int Modify_Time_MsgJK1(void)   
{
UNSIGNED	timebuf[6];
unsigned char *ptr; 
unsigned char *ptr1;   
//=----------------------------
 	
    ptr1 = ReceUpBuffRemJK1;	 
 	MsgTransUpFlagJK1 &= ReModify_Time^0xffffffff;
  	LSDU_MsgJK1();  
  	ptr = TransUpBuffRemJK1;
 	
 	*(ptr+1) =	15;
 	*(ptr+2) =	15;                   
 	*(ptr+6) =	6;
 	*(ptr+7) =	0x81;
 	*(ptr+8) =	8;
 	*(ptr+9) =	Common_Addr_JK1;
 	*(ptr+10) =	178;
 	*(ptr+11) =	0;

/*	*(ptr+12) =(pCLOCK_RUN -> millionsecond_ + pCLOCK_RUN -> second_ * 1000)&0xff;
 	*(ptr+13) =((pCLOCK_RUN -> millionsecond_ + pCLOCK_RUN -> second_ * 1000)&0xff00)>>8;
 	*(ptr+14) =pCLOCK_RUN -> minute_& 0xff;
 	*(ptr+15) =pCLOCK_RUN ->hour_& 0xff;
 	*(ptr+16) =(pCLOCK_RUN ->day_ + 1)& 0xff;
 	*(ptr+17) =(pCLOCK_RUN ->month_ + 1)& 0xff; 
 	*(ptr+18) =(pCLOCK_RUN ->year_ - 4)& 0xff;   
*/
// 	READ_DEC_TIME(timebuf);
 	
 	*(ptr+12) =*(ptr1+12); 
 	*(ptr+13) =*(ptr1+13);
 	*(ptr+14) =*(ptr1+14);
 	*(ptr+15) =*(ptr1+15);
 	*(ptr+16) =*(ptr1+16);
 	*(ptr+17) =*(ptr1+17) ;
 	*(ptr+18) =*(ptr1+18);
 	return(1);
}
/* This function has been inspected.GauTsunFar 2001-12-22

函数功能: replying message of set-parameter frame.

输入参数: no; 
                    
输出参数: buffer address of transmit frame-------- TransUpBuffRemJK1;
         
返回值:   no need mention;	

*/ 
int Sets_Parameter_MsgJK1(void)
{

⌨️ 快捷键说明

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