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

📄 commujk1f.c

📁 电力系统中的保护装置全部代码
💻 C
📖 第 1 页 / 共 5 页
字号:
UNSIGNED	timebuf[6];
unsigned char *ptr; 
   
//=----------------------------
 	ptr =  TransUpBuffRemJK1;	
 	MsgTransUpFlagJK1 &= Sets_Parameter^0xffffffff;
  
 	LSDU_MsgJK1();
 	*(ptr+1) =	14;
 	*(ptr+2) =	14;                   
 	*(ptr+6) =	1;
 	*(ptr+7) =	0x81;
 	*(ptr+8) =	11;
 	*(ptr+9) =	1;
 	*(ptr+10)=	178;
 	*(ptr+11)=	22;
 	*(ptr+12)=	2;                       //?
 	
 	READ_DEC_TIME(timebuf);
 	
 	*(ptr+13) =timebuf[5]%256 ;
 	*(ptr+14) =timebuf[5]/256;
 	*(ptr+15) =timebuf[4];
 	*(ptr+16) =timebuf[3];
 
 	*(ptr+17)=	0;
 	return(1);
}    
/* This function has been inspected.GauTsunFar 2001-12-22

函数功能: replying message of double-point-status-change data frame.

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

*/ 
int Trans_DIN_Status_ChangeJK1(void)
{
UNSIGNED	timebuf[6];
unsigned char *ptr;
SOE *pSOE;    
//=----------------------------
 	ptr =  TransUpBuffRemJK1;
 	 	
 	MsgTransUpFlagJK1 &= DIN_Status_Change^0xffffffff;
    pReportOUT_COM++;
    
  	LSDU_MsgJK1();   
  	pReportOUT_COM--;
  	pSOE = & pReportOUT_COM->pro_report_soe;
  	
 	if((pReportOUT_COM->pro_report_flag == 1)||(pReportOUT_COM->pro_report_flag == 41)
 	 ||(pReportOUT_COM->pro_report_flag == 43))
 	{
 		*(ptr+1)	=	14;
 		*(ptr+2)	=	14;                   
 		*(ptr+6)	=	pReportOUT_COM->pro_report_flag;
 		*(ptr+7)	=	0x81;
 		*(ptr+8)	=	1;
        
        if((pReportOUT_COM->pro_report_flag == 41)||(pReportOUT_COM->pro_report_flag == 43))
        	{
 			*(ptr+9)	=	2;
 			*(ptr+10)=	1; 
 		}
 		else 
 		{
 			*(ptr+9)	=	1;
 			*(ptr+10)=	178; 
 		}       
 		
 		
 		*(ptr+11)=	pSOE->SOE_Inf;
 		*(ptr+12)=	pSOE->DPI;                //SPI 
 
 		*(ptr+13) =pSOE->Millionsecond%256 ;
 		*(ptr+14) =pSOE->Millionsecond/256;
 		*(ptr+15) =pSOE->Minute;
 		*(ptr+16) =pSOE->Hour;
 
 		*(ptr+17)=	Identity_NumberJK1; 
 	 } 
 	 else
 	 {
 	 	*(ptr+1)	=	18;
 		*(ptr+2)	=	18;                   
 		*(ptr+6)	=	pReportOUT_COM->pro_report_flag;
 		*(ptr+7)	=	0x81;
 		*(ptr+8)	=	1;
       		*(ptr+9)	=	1;
 		*(ptr+10) =	178; 
 		*(ptr+11) =	pSOE->SOE_Inf;
 		*(ptr+12) =	pSOE->DPI;                //SPI 
        *(ptr+13) =	pSOE->Relative_Time % 256;
 		*(ptr+14) =	pSOE->Relative_Time / 256;
 		*(ptr+15) =	pSOE->Fault_Number;
 		*(ptr+16) =	0x00;
 		*(ptr+17) = pSOE->Millionsecond%256 ;
 		*(ptr+18) = pSOE->Millionsecond/256;
 		*(ptr+19) = pSOE->Minute;
 		*(ptr+20) = pSOE->Hour;
 
 		*(ptr+21)=	Identity_NumberJK1; 
 	 
 	 }  
 	pReportOUT_COM++; 
 	if(pReportOUT_COM > &ReportRAM[REPORTRAM - 1])
 	{
 		pReportOUT_COM = ReportRAM;
 	}
 	return(1);
}     
/* This function has been inspected.GauTsunFar 2001-12-22

函数功能: replying message of double-point-status data frame.

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

*/ 
int Trans_DIN_StatusJK1(void)
{        
unsigned char *ptr;    
int	num,i,j;
int	status;
//=----------------------------
 	ptr =  TransUpBuffRemJK1;
 	                        
 	num = 7;
 	
 	MsgTransUpFlagJK1 &= DIN_Status^0xffffffff;
  
 	LSDU_MsgJK1();
 	*(ptr+1)	=	num + 9;
 	*(ptr+2)	=	num + 9;                   
 	*(ptr+6)	=	42;
 	*(ptr+7)	=	num;
 	*(ptr+8)	=	9;
 	*(ptr+9)	=	Common_Addr_JK1;
 	*(ptr+10)	=	178;
 	*(ptr+11)	=	149; 
  	*(ptr+12)   =   DIChn[SDTZ].state+1;
    *(ptr+13)   =   DIChn[HW].state+1;
 	*(ptr+14)   =   DIChn[YX1].state+1;
 	*(ptr+15)   =   DIChn[YX2].state+1;
 	*(ptr+16)   =   DIChn[YX3].state+1;
 	*(ptr+17)   =   DIChn[YX4].state+1;
 	*(ptr+18)   =   DIChn[YX5].state+1;  
 	*(ptr+19)	=	Inspect_NumberJK1;
 	return(1);
}                         
/* This function has been inspected.GauTsunFar 2001-12-22

函数功能: replying message of general inspection endness frame.      

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

*/ 
int Trans_Gen_Inspect_End(void)
{
unsigned char *ptr;    
//=----------------------------
 	ptr =  TransUpBuffRemJK1;
 	
 	MsgTransUpFlagJK1 &= Gen_Inspect_End^0xffffffff;
 	LSDU_MsgJK1();
 	*(ptr+1)	=	9;
 	*(ptr+2)	=	9;                   
 	*(ptr+6)	=	8;
 	*(ptr+7)	=	0x81;
 	*(ptr+8)	=	10;
 	*(ptr+9)	=	Common_Addr_JK1;
 	*(ptr+10)	=	178;
 	*(ptr+11)	=	0;
 	*(ptr+12)	=	Inspect_NumberJK1;
 	return(1);
}           
/* This function has been inspected.GauTsunFar 2001-12-22

函数功能: replying message of general inspection frame.

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

*/ 

int Trans_Gen_Inspect_Events(void)
{
 	if((MsgTransUpFlagJK1&Self_Inspection)!=0)
    { 
      	Trans_Self_Inspection();
 	}
 	else if((MsgTransUpFlagJK1&DIN_Status)!=0)
    {
       	Trans_DIN_StatusJK1();
 	}
 	else if((MsgTransUpFlagJK1&Tap_Chger_Status)!=0)  
    {
       	Trans_Tap_Chger_Status(); 
    }       
 	else 
    {
    	MsgTransUpFlagJK1 &= Gen_Inspect_Start^0xffffffff;
     	MsgTransUpFlagJK1 |= Gen_Inspect_End;
     	Trans_Gen_Inspect_End(); 
    }
 	return(1);
     
}
/* This function has been inspected.GauTsunFar 2001-12-22

函数功能: replying message of self-inspection-data frame.

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

*/ 
int Trans_Self_Inspection(void)
{               
unsigned char *ptr;
UNSIGNED	timebuf[6]; 
int k; 

JUMPER          *pJumper;  
//=----------------------------
 	ptr =  TransUpBuffRemJK1;
     	
	*(ptr+1)	=	14;
 	*(ptr+2)	=	14;                   
 	*(ptr+6)	=	1;
 	*(ptr+7)	=	0x81;
 	*(ptr+8)	=	9;
 	*(ptr+9)	=	Common_Addr_JK1;
 	*(ptr+10)	=	178;

	Gen_Insp_IndexJK1--;
    k=Gen_Insp_IndexJK1;                                       
    switch(1<< k)                         
    {                                   //:=1,OK;
                                            //:=2,Error
    		case Error_EPROM:
           		*(ptr+11) = 195;      
 	   	 		*(ptr+12) = 1<<( (Self_Insp_ErrorJK1 & Error_EPROM) >> k);
 	      		break;
 	    	case Error_RAM:
           		*(ptr+11) = 193;      
 	   	 		*(ptr+12) = 1<<( (Self_Insp_ErrorJK1 & Error_RAM) >> k);
 	       		break;
 	    	case Error_Setting:
           		*(ptr+11) = 222;      
 	   	 		*(ptr+12) = 1<<( (Self_Insp_ErrorJK1 & Error_Setting) >> k);
       		    break; 
 	    	case OC_ACC_Direction:
           		*(ptr+11) = 176;      
 	   	 		pJumper = OC_ACC_jumper;
 	   	 		*(ptr+12) = pJumper->jum_status+1;  
 	       		break;
 	    	case Zero1_Direction:
           		*(ptr+11) = 184;      
 	   	 		pJumper = Zero1_jumper;
 	   	 		*(ptr+12) = pJumper->jum_status+1;  
 	       		break; 
 	    	case Over_Load_Direction:
           		*(ptr+11) = 177;      
 	   	 		pJumper = Over_Load_jumper;
 	   	 		*(ptr+12) = pJumper->jum_status+1;  
 	       		break; 
 	    	case Error_AD:
           		*(ptr+11) = 197;      
 	   	 		*(ptr+12) = 1<<( (Self_Insp_ErrorJK1 & Error_AD) >> k);  
 	   	 		break;  
 	   	 	case OC_I_Direction:
 	   	 		*(ptr+11) = 186;  
 	   	 		pJumper =OC_I_jumper;
 	   	 		*(ptr+12) = pJumper->jum_status+1;  
 	   	 		break; 
 	   	 	case OC_II_Direction:
 	   	 		*(ptr+11) = 187;  
 	   	 		pJumper =OC_II_jumper;
 	   	 		*(ptr+12) = pJumper->jum_status+1;  
 	   	 		break;
// 	   	 	case OC_III_Direction:
// 	   	 		*(ptr+11) = 188;  
// 	   	 		pJumper =OC_III_jumper;
// 	   	 		*(ptr+12) = pJumper->jum_status+1;  
// 	   	 		break;	  
 	   	 	case LF_Direction:
 	   	 		*(ptr+11) = 189;  
 	   	 		pJumper =LF_jumper;
 	   	 		*(ptr+12) = pJumper->jum_status+1;  
 	   	 		break;	
 	   	 	case Reclose_Direction:
 	   	 		*(ptr+11) = 238;  
 	   	 		pJumper =Reclose_jumper;
 	   	 		*(ptr+12) = pJumper->jum_status+1;  
 	   	 		break;	  	  	 			 	
 	        default:
          		break;
        
	}
    READ_DEC_TIME(timebuf); 
        
  	*(ptr+13) =timebuf[5]%256 ;
 	*(ptr+14) =timebuf[5]/256;
 	*(ptr+15) =timebuf[4];
 	*(ptr+16) =timebuf[3];
 	
 	*(ptr+17)= Inspect_NumberJK1; 
 	
 	if(Gen_Insp_IndexJK1 == 0)
    {  
       	MsgTransUpFlagJK1 &= Self_Inspection^0xffffffff; 
      
    } 
    LSDU_MsgJK1();


 	return(1);
}                           
/* This function has been inspected.GauTsunFar 2001-12-22

函数功能: replying message of self-inspection-change frame.

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

*/ 
int Trans_Self_Insp_ErrorJK1(void)
{   
UNSIGNED	timebuf[6];
unsigned char *ptr;    
//=----------------------------
                         
 	LSDU_MsgJK1();
 	*(ptr+1)	=	14;
 	*(ptr+2)	=	14;                   
 	*(ptr+6)	=	41;
 	*(ptr+7)	=	0x81;
 	*(ptr+8)	=	1;
 	*(ptr+9)	=	1;
 	*(ptr+10)	=	178;
 
 	if((Self_Insp_ErrorJK1&Error_EPROM)!=0)
   	{
    	*(ptr+11)=195;
    	*(ptr+12) = (Warning_Signal_Flag&Error_EPROM) >> Error_EPROM_; 	
    	Self_Insp_ErrorJK1 &= Error_EPROM^0xffffffff;
   	} 
 	else if((Self_Insp_ErrorJK1&Error_RAM)!=0)
   	{
    	*(ptr+11)=193;
    	*(ptr+12) = (Warning_Signal_Flag&Error_RAM) >> Error_RAM_;
    	Self_Insp_ErrorJK1 &=Error_RAM^0xffffffff;
   	}
 	else if((Self_Insp_ErrorJK1&Error_Setting)!=0)
   	{
    	*(ptr+11)=222;
    	*(ptr+12) = (Warning_Signal_Flag&Error_Setting) >> Error_Setting_;
    	Self_Insp_ErrorJK1 &= Error_Setting^0xffffffff;
   	}
// 	else if((Self_Insp_ErrorJK1&Error_Relay)!=0)
//   	{
//    	*(ptr+11)=201;     
//    	*(ptr+12) = (Warning_Signal_Flag&Error_Relay) >> Error_Relay_;
//    	Self_Insp_ErrorJK1 &= Error_Relay^0xffffffff;
//   	}
// 	else if((Self_Insp_ErrorJK1&Error_5VPower)!=0)
//   	{
//    	*(ptr+11)=191; 
//    	*(ptr+12) = (Warning_Signal_Flag&Error_5VPower) >> Error_5VPower_;
//    	Self_Insp_ErrorJK1 &= Error_5VPower^0xffffffff;
//   	}
// 	else if((Self_Insp_ErrorJK1&Error_CPU_Number)!=0)
//   	{
//    	*(ptr+11)=211;    
//    	*(ptr+12) = (Warning_Signal_Flag&Error_CPU_Number) >> Error_CPU_Number_;
//    	Self_Insp_ErrorJK1 &= Error_CPU_Number^0xffffffff;
//   	}
 	else if((Self_Insp_ErrorJK1&Error_AD)!=0)        
   	{
    	*(ptr+11)=197;
    	*(ptr+12) = (Warning_Signal_Flag&Error_AD) >> Error_AD_;
    	Self_Insp_ErrorJK1 &= Error_AD^0xffffffff;
   	}        
   	*(ptr+12) |= 0x10;           //取代
   	READ_DEC_TIME(timebuf);    	
 	*(ptr+13) =timebuf[5]%256 ;
 	*(ptr+14) =timebuf[5]/256;
 	*(ptr+15) =timebuf[4];
 	*(ptr+16) =timebuf[3];
 	*(ptr+17) =	18;   
 	if(Self_Insp_ErrorJK1 == 0 )
 	{
 		MsgTransUpFlagJK1 &= WarningSignals^0xffffffff;
 	}
 	return(1);
}              
/* This function has been inspected.GauTsunFar 2001-12-22

函数功能: replying message of coulometer-freeze data frame.

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

*/   
int Trans_Coulometer_Freeze(void)
{ 
unsigned char *ptr;    
//=----------------------------
    ptr = TransUpBuffRemJK1;
 	MsgTransUpFlagJK1 &= Coulometer_Freeze^0xffffffff;
 
 	LSDU_MsgJK1();
 	*(ptr+1)	=	10;
 	*(ptr+2)	=	10;                   
 	*(ptr+6)	=	88;
 	*(ptr+7)	=	0x81;
 	*(ptr+8)	=	2;
 	*(ptr+9)	=	2;
 	*(ptr+10)=	178;
 	*(ptr+11)=	ASDU88_Message_JK1;
 	*(ptr+12)=	ASDU88_DCO_CPU_JK1;
 	*(ptr+13)=	Identity_NumberJK1; 
 	return(1);
}               
/* This function has been inspected.GauTsunFar 2001-12-22

函数功能: replying message of coulometer-count data frame.

输入参数: no; 
                    

⌨️ 快捷键说明

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