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

📄 commujk1f.c

📁 电力系统中的保护装置全部代码
💻 C
📖 第 1 页 / 共 5 页
字号:
输出参数: buffer address of transmit frame-------- TransUpBuffRemJK1;
         
返回值:   no need mention;	

*/   





int Trans_Coulometer_End(void)
{ 
unsigned char *ptr;    
//=----------------------------
    ptr = TransUpBuffRemJK1;
 	MsgTransUpFlagJK1 &= Coulometer_End^0xffffffff;
 
 	LSDU_MsgJK1();
 	*(ptr+1)	=	10;
 	*(ptr+2)	=	10;                   
 	*(ptr+6)	=	88;
 	*(ptr+7)	=	0x81;
 	*(ptr+8)	=	10;
 	*(ptr+9)	=	Common_Addr_JK1;
 	*(ptr+10)=	1;
 	*(ptr+11)=	ASDU88_Message_JK1;
 	*(ptr+12)=	ASDU88_DCO_CPU_JK1;
 	*(ptr+13)=	Identity_NumberJK1; 
 	return(1);
}                 
    
int Trans_Coulometer_No(void)
{ 
unsigned char *ptr;    
//=----------------------------
    ptr = TransUpBuffRemJK1;
 	MsgTransUpFlagJK1 &= Coulometer_No^0xffffffff;
 
 	LSDU_MsgJK1();
 	*(ptr+1)	=	10;
 	*(ptr+2)	=	10;                   
 	*(ptr+6)	=	88;
 	*(ptr+7)	=	0x81;
 	*(ptr+8)	=	0x42;
 	*(ptr+9)	=	Common_Addr_JK1;
 	*(ptr+10)=	1;
 	*(ptr+11)=	ASDU88_Message_JK1;
 	*(ptr+12)=	ASDU88_DCO_CPU_JK1;
 	*(ptr+13)=	Identity_NumberJK1; 
 	return(1);
}                     
int Trans_Coulometer_Count(void) 
{  
unsigned char *ptr; 
UNSIGNED *pWord;
OPTION          old_preempt;
int i;    
//=----------------------------
    ptr = TransUpBuffRemJK1;
    
 	MsgTransUpFlagJK1 &= Coulometer_Count^0xffffffff; 
 	MsgTransUpFlagJK1 |= Coulometer_End;
 	LSDU_MsgJK1();
 	*(ptr+1)	=	9 + 5*4;
 	*(ptr+2)	=	9 + 5*4;                   
 	*(ptr+6)	=	36;
 	*(ptr+7)	=	4;
 	*(ptr+8)	=	2;
 	*(ptr+9)	=	2;
 	*(ptr+10)	=	1; 
 	*(ptr+11)	=	6; 
 	
 	ptr += 12;
 	
 	
 	old_preempt = NU_Change_Preemption(NU_NO_PREEMPT);   
 	pWord = PulseCounter;
   	for (i = 0; i < 4; i++, pWord++)
    {
    	*ptr++	= *pWord;
    	*ptr++	= *pWord >> 8;
    	*ptr++	= *pWord >> 16;
    	*ptr++	= *pWord >> 24;
    	*ptr++	=	0;
 	
    }
    NU_Change_Preemption(old_preempt);

 	*ptr	=	Identity_NumberJK1; 
 	return(1);
}              

int Trans_Object(void)
{
unsigned char *ptr;    
//=----------------------------
    ptr = TransUpBuffRemJK1;
     
 	LSDU_MsgJK1();
 	*(ptr+1)	=	10;
 	*(ptr+2)	=	10;                   
 	*(ptr+7)	=	0x1;
 	*(ptr+8)	=	12;
 	*(ptr+9)	=	2;
 	*(ptr+10)	=	1;  
 	*(ptr+13)	=	Identity_NumberJK1;
 	return(1);
}         

int Trans_Exec_Tap_Obj(void)
{               
unsigned char *ptr;    
//=----------------------------
    ptr = TransUpBuffRemJK1;
    
 	MsgTransUpFlagJK1	&= Exec_Tap_Obj^0xffffffff;  
 	Trans_Object();
 	*(ptr+6)	=	65;
 	*(ptr+11)=	ASDU65_Message_JK1;
 	*(ptr+12)=	ASDU65_DCO_CPU_JK1;
 	return(1);
} 
int Trans_Select_Tap_Obj(void)
{           
unsigned char *ptr;    
//=----------------------------
    ptr = TransUpBuffRemJK1;
    
 	MsgTransUpFlagJK1	&= Select_Tap_Obj^0xffffffff;  
 	Trans_Object();
 	*(ptr+6)	=	65; 
 	*(ptr+11)=	ASDU65_Message_JK1;
 	*(ptr+12)=	ASDU65_DCO_CPU_JK1;
 	return(1);
} 

int Trans_Esc_Tap_Obj(void)
{
unsigned char *ptr;    
//=----------------------------
    ptr = TransUpBuffRemJK1;
     	
 	MsgTransUpFlagJK1 &= Esc_Tap_Obj^0xffffffff;  
 	Trans_Object();
 	*(ptr+6)	=65;        
 	*(ptr+11)=	ASDU65_Message_JK1;
 	*(ptr+12)=	ASDU65_DCO_CPU_JK1;
 	return(1);
}  
int Trans_Exec_CB_Obj(void)
{           
unsigned char *ptr;    
//=----------------------------
    ptr = TransUpBuffRemJK1;
    
 	MsgTransUpFlagJK1	&= Exec_CB_Obj^0xffffffff;  
 	Trans_Object();
 	*(ptr+6)	=	64;     
 	*(ptr+11)=	ASDU64_Message_JK1;
 	*(ptr+12)=	ASDU64_DCO_CPU_JK1;
 	return(1);
}  
int Trans_Select_CB_Obj(void)
{           
unsigned char *ptr;    
//=----------------------------
    ptr = TransUpBuffRemJK1;
    
 	MsgTransUpFlagJK1	&= Select_CB_Obj^0xffffffff;  
 	Trans_Object();
 	*(ptr+6)	=	64;
 	*(ptr+11)=	ASDU64_Message_JK1;
 	*(ptr+12)=	ASDU64_DCO_CPU_JK1;
 	return(1);
} 
int Trans_Esc_CB_Obj(void)
{           
unsigned char *ptr;    
//=----------------------------
    ptr = TransUpBuffRemJK1;
    
 	MsgTransUpFlagJK1	&= Esc_CB_Obj^0xffffffff;  
 	Trans_Object();
 	*(ptr+6)	=	64; 
 	*(ptr+11)=	ASDU64_Message_JK1;
 	*(ptr+12)=	ASDU64_DCO_CPU_JK1;
 	return(1);
}    
            
//#define  MEASURE_NUMBER 9           
            
int Measure_Value(void)
{
unsigned char *ptr; 
MEASTRU	*pmeastru = measure;
int i,value1,value2,value,flag; 
 
//=----------------------------
    ptr = TransUpBuffRemJK1;
     
 	LSDU_MsgJK1();
 	*(ptr+1)	=	(MEASURE_NUMBER-4)*2 + 8;
 	*(ptr+2)	=	(MEASURE_NUMBER-4)*2 + 8;                   
 	*(ptr+6)	=	0x09;
 	*(ptr+7)	=	MEASURE_NUMBER-4;
 	*(ptr+8)	=	2;
 	*(ptr+9)	=	1;
 	*(ptr+10)   =	178;
 	*(ptr+11)   =	148;
 	ptr = TransUpBuffRemJK1 + 12;
 	
 	for(i=0; i<MEASURE_NUMBER-4; i++)
 	{
 		value =(int) ((pmeastru->value * 4096)/(1.2 * pmeastru->rating));
 	
 		pmeastru++;
 		value *= 8;
 		*ptr++ =	value & 0xff;
 		*ptr++ = value >> 8;
 	}
 	ASDU_50_FlagJK1 &= ~_Data_RDY ;
 	return(1);
}         


int Measure_Value9(void)
{
unsigned char *ptr; 
MEASTRU	*pmeastru = &measure[9];
int i,value1,value2,value,flag; 
 
//=----------------------------
    ptr = TransUpBuffRemJK1;
     
 	LSDU_MsgJK1();
 	*(ptr+1)	=	4*2 + 8;
 	*(ptr+2)	=	4*2 + 8;                   
 	*(ptr+6)	=	50;
 	*(ptr+7)	=	4;
 	*(ptr+8)	=	2;
 	*(ptr+9)	=	2;
 	*(ptr+10)   =	1;
 	*(ptr+11)   =	101;
 	ptr = TransUpBuffRemJK1 + 12;
 	
 	for(i=0; i<4; i++)
 	{
 		value =(int) ((pmeastru->value * 4096)/(1.2 * pmeastru->rating));
 	
 		pmeastru++;
 		value *= 8;
 		*ptr++ =	value & 0xff;
 		*ptr++ = value >> 8;
 	}
 	ASDU_9_FlagJK1 &= ~_Data_RDY9;
 	return(1);
}         



int Trans_Tap_Chger_Status(void)
{            
unsigned char *ptr;    
int	num,i,j;
int	status;
//=----------------------------
 	ptr =  TransUpBuffRemJK1;
 	                        
 	num = 6;
 	
 	MsgTransUpFlagJK1 &=  Tap_Chger_Status^0xffffffff;
  
 	LSDU_MsgJK1();
 	*(ptr+1)	=	num + 9;
 	*(ptr+2)	=	num + 9;                   
 	*(ptr+6)	=	40;
 	*(ptr+7)	=	num;
 	*(ptr+8)	=	9;
 	*(ptr+9)	=	Common_Addr_JK1;
 	*(ptr+10)	=	178;
 	*(ptr+11)	=	163; 
  	*(ptr+12)   =   DIChn[YKYX].state;
    *(ptr+13)   =   DIChn[YX6].state;
 	*(ptr+14)   =   DIChn[YX7].state;
 	*(ptr+15)   =   DIChn[YX8].state;
 	*(ptr+16)   =   DIChn[YX9].state;
 	*(ptr+17)   =   DIChn[THWXN].state;
 	*(ptr+18)   =   Inspect_NumberJK1; 
  	return(1);
}           
         
int Trans_Tap_Chger_Change(void)   
{   
unsigned char *ptr;  
UNSIGNED	timebuf[6];  
//=----------------------------
    ptr = TransUpBuffRemJK1;
    
     MsgTransUpFlagJK1 &= Tap_Status_Change^0xffffffff;
     LSDU_MsgJK1();
     *(ptr+1)	=	14;
     *(ptr+2)	=	14;                   
     *(ptr+6)	=	39;
     *(ptr+7)	=	0x01;
     *(ptr+8)	=	11;
     *(ptr+9)	=	2;
     *(ptr+10)	=	178;
     *(ptr+11)	=	48;
     *(ptr+12)	=	9;
     *(ptr+13)	=	1;  
       
     READ_DEC_TIME(timebuf);    	
 	*(ptr+13) =timebuf[5]%256 ;
 	*(ptr+14) =timebuf[5]/256;
 	*(ptr+15) =timebuf[4];
 	*(ptr+16) =timebuf[3];
    
  //   *(ptr+1)[18]=	Identity_NumberJK1;
     return(1);
}
/* This function has been inspected.GauTsunFar 2001-12-22

函数功能: replying message of measured value; 

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

修改记录:		

*/     

int	Modify_TimeJK1(void)               
{             
unsigned int byte0,byte1,account;              
unsigned char *ptr1;
CLOCK	*pointer, clocktem;                   
//-----------------------------------------
    ptr1 = ReceUpBuffRemJK1;
	pointer = (CLOCK *)&clocktem;
	
    pointer -> clock_disable_flag_ = 0x55aa;
    pointer -> year_ = (*(ptr1+18)) & 0x7f;
	pointer -> month_ = (*(ptr1+17)) & 0x0f;
	pointer -> day_ = (*(ptr1+16)) & 0x1f;
	pointer -> hour_ = *(ptr1+15) & 0x1f;
	pointer -> minute_ = *(ptr1+14) & 0x3f;
	
	byte1 = *(ptr1+13) & 0xff;
	byte1 = byte1 * 256;
	byte0 = *(ptr1+12) & 0xff;
	
	account = byte0 + byte1;
	pointer -> second_ = account / 1000;
	pointer -> millionsecond_ = account % 1000;
    pointer -> clock_disable_flag_ = 0; 
          
    Set_Rtc_Time(pointer);                                          
	
	return(1);

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

函数功能: raplying message of general command operation; 

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

修改记录:		

*/
  
int ASDU_20_Sure(void)
{
unsigned char *ptr;   
UNSIGNED	timebuf[6];  
//--------------------------------- 
 	MsgTransUpFlagJK1 &= ASDU20_Sure^0xffffffff;
 	LSDU_MsgJK1();     
 
 	ptr = TransUpBuffRemJK1;
 
 	*(ptr+1) = 14; 
 	*(ptr+2) = 14;
 	*(ptr+6) = 1;
 	*(ptr+7) = 0x81;
 	*(ptr+8) = 20;
 	*(ptr+9) = Common_Addr_JK1;
 	*(ptr+10)= 178;
 	*(ptr+11)= ASDU20_Message_JK1;
 	*(ptr+12)= ASDU20_DCO_CPU_JK1; 
 
      //:2,reset
 	READ_DEC_TIME(timebuf);    	
 	*(ptr+13) =timebuf[5]%256 ;
 	*(ptr+14) =timebuf[5]/256;
 	*(ptr+15) =timebuf[4];
 	*(ptr+16) =timebuf[3];
 	*(ptr+17)= Identity_NumberJK1;
 	
 //	MsgTransUpFlagJK1 |= ASDU20_Return;
  	return(1);                                           
 
}

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

函数功能: replying status message of general command operate over; 

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

修改记录:		

*/
                 
int ASDU_20_Return(void) 
{
int i,j;                               
unsigned char *ptr;       
UNSIGNED	timebuf[6]; 
//--------------------------------- 
 	MsgTransUpFlagJK1 &= ASDU20_Return^0xffffffff;
 	LSDU_MsgJK1();     
 
 	ptr = TransUpBuffRemJK1;
 
 	*(ptr+1) = 14; 
 	*(ptr+2) = 14;
 	*(ptr+6) = 1;
 	*(ptr+7) = 0x81;
 	*(ptr+8) = 12;
 	*(ptr+9) = Common_Addr_JK1;
 	*(ptr+10)= 178;
 	*(ptr+11)= ASDU20_Message_JK1;
 	*(ptr+12)= ASDU20_DCO_CPU_JK1; 
    
 	
 	READ_DEC_TIME(timebuf);    	
 	*(ptr+13) =timebuf[5]%256 ;
 	*(ptr+14) =timebuf[5]/256;
 	*(ptr+15) =timebuf[4];
 	*(ptr+16) =timebuf[3];
 	*(pt

⌨️ 快捷键说明

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