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

📄 uifunction.c

📁 基于c的电动机保护程序
💻 C
📖 第 1 页 / 共 5 页
字号:
#include "UItype.h"
#include "led.h"
#include "Keyboard_drv.h"
#include "SaveOrLoad.h"
#include "ex_rtc.h"

#define ubootpasswordA 1100
#define ubootpasswordB 1200
extern int sound_flag;
extern int sound_time;
extern int  calSampleNum ;
extern int ledtemp;
extern float calTemp;
extern int diandu_int;
#define AverageCalNum 200
extern int ChangeDisplayFlag ;

extern int Alarm_Info ;
extern int Break_Info ;
extern NU_HISR	EX_creat_time_HISR;
extern int calSampleFlag;
extern int diandu_disp;
extern int diandu_float_to_int;

#define SystemMenu_Initial(MenuName, symbol_1, symbol_2, data_Add, Menu_Type,  Value_Range,Dot_Enable, bit,preMenu, nextMenu ) do\
	{\
		(&MenuName) -> NodePre = &((&preMenu)->NodeNext);\
		(&MenuName) -> symbolData[0] = symbol_1;\
	 	(&MenuName) -> symbolData[1] = symbol_2;\
		(&MenuName) -> dataAdd = data_Add ; \
		(&MenuName) -> MenuType = Menu_Type;\
		(&MenuName) -> ValueRange = Value_Range;\
		(&MenuName) -> BitNeedSet = bit;\
		(&MenuName) -> DotEnable = Dot_Enable;\
		(&MenuName) -> NodeNext = &((&nextMenu)->NodeNext);\
	}while(0)
		

#define TopMenu_Initial( symbol_1,symbol_2,MenuName,dataAdd,nextMenu,bit,num) do\
	{\
		(&MenuName) -> symbolData[0] = symbol_1;\
		(&MenuName) -> symbolData[1] = symbol_2;\
		(&MenuName) -> data[0] = dataAdd[0];\
		(&MenuName) -> data[1] = dataAdd[1];\
		(&MenuName) -> data[2] = dataAdd[2];\
		(&MenuName) -> NodeNext = &((&nextMenu)->NodeNext);\
		(&MenuName) -> BitNeedSet = bit;\
		(&MenuName) -> MenuNum = num;\
	}while(0)

#define SubMenu_Initial( MenuName,symbol_1,symbol_2,data_Add,bit,nextMenu,para) do\
	{\
		(&MenuName)->symbolData[0] = symbol_1 ; \
		(&MenuName)->symbolData[1] = symbol_2 ; \
		(&MenuName)->dataAdd = data_Add ; \
		(&MenuName)->BitNeedSet = bit; \
		(&MenuName)->NodeNext = & ((&nextMenu) -> NodeNext );\
		(&MenuName)->parameter = para;\
	}while( 0 )

System_Menu_Struct  
					StartSignal_Menu,	 
					ControlWay_Menu,
					CommunicateAdd_Menu,
					CheckoutWay_Menu,
					CurrentRating_Menu,
					VoltageRating_Menu,
					SaveValue_Menu,
				   LoadValue_Menu,	
					
					CT_Menu,
					D1_Menu,
 					D2_Menu	,				
					D3_Menu,				
					D4_Menu	,			
					D5_Menu	,			
					D6_Menu	,			
  					D7_Menu,
					D8_Menu,
					
					
					
					Time_Menu;
	


Menu_Top_Struct		 StartTime_Menu,
					 OverHeat_Menu,
   				 	  OverLoad_Menu,
					     Block_Menu,
				   OverCurrent_Menu,
					 Unbalance_Menu,
					 PhaseBreak_Menu,
 					 Grounding_Menu,
			    Phase_Reversed_Menu,	
			    Voltage_Low_Menu,
			    Voltage_shake_Menu,
			    PT_Broken_Menu,
			    Voltage_Over_Menu,
			    Current_Low_Menu;




SubMenu_Struct     StartTime_SubMenu_1, 
                    StartTime_SubMenu_2,
                    
                    OverHeat_SubMenu_1,
                    OverHeat_SubMenu_2,
                    OverHeat_SubMenu_3,
                    OverHeat_SubMenu_4,
                    OverHeat_SubMenu_5,
                    OverHeat_SubMenu_6,        
                     OverLoad_SubMenu_1,
                     OverLoad_SubMenu_2,
                     OverLoad_SubMenu_3,      
                        Block_SubMenu_1,
                        Block_SubMenu_2,
                        Block_SubMenu_3,         
                  OverCurrent_SubMenu_1,
                  OverCurrent_SubMenu_2,
                    Unbalance_SubMenu_1,
                    Unbalance_SubMenu_2,
                    Unbalance_SubMenu_3,
                    Unbalance_SubMenu_4,
                    Unbalance_SubMenu_5,
                    Unbalance_SubMenu_6,
                     PhaseBreak_SubMenu_1,     
                    Grounding_SubMenu_1,
                    Grounding_SubMenu_2,     
               Phase_Reversed_SubMenu_1,
               Voltage_Low_SubMenu_1,
               Voltage_Low_SubMenu_2,
               Voltage_Low_SubMenu_3,
               Voltage_Low_SubMenu_4,
               Voltage_shake_SubMenu_1,
               Voltage_shake_SubMenu_2,
			    PT_Broken_SubMenu_1,
			    PT_Broken_SubMenu_2,
			    PT_Broken_SubMenu_3,
			    Voltage_Over_SubMenu_1,
			     Voltage_Over_SubMenu_2,
			    Current_Low_SubMenu_1,
			     Current_Low_SubMenu_2;

_Value_Parameter Value_Parameter; 

MenuStatus_Struct  *MenuStatus = (MenuStatus_Struct *) (0x1fff0000 + 0x800);
Measure_Display_Data_Struct  *Measure_Display_Data = (Measure_Display_Data_Struct * )0x1fff1000;

void Initial_Value_Parameter(void)
{
	
	
	
	Value_Parameter.Block_Current[0]    = 1;   //堵转电流倍数
	Value_Parameter.Over_Current_I[0]   = 4;  //过流一段
	Value_Parameter.Over_Current_II[0]  =4;  //过流二段
 	Value_Parameter.Low_Current[0]      = 60;    //欠流
	
	Value_Parameter.I0[0]               = 10;             //零序
	Value_Parameter.Low_Voltage[0]      = 50;    //欠压
	Value_Parameter.Over_Voltage[0]     = 1.1;    //过压
	
	*(U32 *)(&Value_Parameter.Block_Current[1])    = (U32)(JDSettingAdd + offset_Block_Current);   //堵转
	
	*(U32 *)(&Value_Parameter.Over_Current_I[1] )  = (U32)(JDSettingAdd + offset_ShortCircuit_CurrentI);  //过流一段
	*(U32 *)(&Value_Parameter.Over_Current_II[1])  = (U32)(JDSettingAdd + offset_ShortCircuit_CurrentII);  //过流二段
 	*(U32 *)(&Value_Parameter.Low_Current[1])      = (U32)(JDSettingAdd + offset_Current_Low_Setting);    //欠流
	*(U32 *)(&Value_Parameter.I0[1]    )           = (U32)(JDSettingAdd + offset_I0);             //零序
	*(U32 *)(&Value_Parameter.Low_Voltage[1])      = (U32)(JDSettingAdd + offset_Voltage_Low_Setting);    //欠压
	
	*(U32 *)(&Value_Parameter.Over_Voltage[1] )    = (U32)(JDSettingAdd + offset_Voltage_Over_Setting);    //过压
}

void Initial_MenuStatus(void)
{
		
		
		Func_Select = 0; //测量或者设置选择

	 
		Protect_Select = 0;    //保护功能或显示的参数   选择菜单
		Menu_Num = 3;       // 子菜单总数
		Menu_Level = 0;      // 当前子菜单号
		Cursor = 0;          //光标位置
		Bit_NeedSet = 0;     // 需要修改的位数

		LED_1 = 0;
		LED_2 = 0;
		LED_3 = 0;
		LED_4 = 0;  //数码管数据
		
		
	 
		Up_Flag = -1;        //上下键按键标志
		Down_Flag = -1;
		Enter_Flag = -1;    //上下键按键标志
		

		ActiveMenuAdd = 0;   //当前菜单的结构体地址
		
		passwordInputTimes = FirstTime;

}



void Initial_System_Menu1(void )
{
	SystemMenu_Initial(SystemMenu_0,   charA,    charUdot,  &((&SystemSetting)->ControlWay),  	  		SelectFunc,   2,     noDot, 1, SystemMenu_14, SystemMenu_1 );
	SystemMenu_Initial(SystemMenu_1,   charFdot,       0,   &((&SystemSetting)->CommunicateAdd), 		ValueSetting, 127,   noDot, 3, SystemMenu_0,  SystemMenu_2 );
	SystemMenu_Initial(SystemMenu_2,   charJ,    charydot,  &((&SystemSetting)->CheckoutWay),   		SelectFunc,    2,    noDot, 1, SystemMenu_1,  SystemMenu_3 );
	SystemMenu_Initial(SystemMenu_3,   charIdot,       0,   &(float)((&SystemSetting)->CurrentRating),  ValueSetting,  1000, hasDot,3, SystemMenu_2,  SystemMenu_4 );
	SystemMenu_Initial(SystemMenu_4,   charUdot,       0,   &(float)((&SystemSetting)->VoltageRating),  ValueSetting,  1000, hasDot,3, SystemMenu_3,  SystemMenu_5 );
	SystemMenu_Initial(SystemMenu_5,   chartdot,   0,       &(float)((&SystemSetting)->CT),     		    ValueSetting,  1000, hasDot,3, SystemMenu_4,  SystemMenu_6 );


	SystemMenu_Initial(SystemMenu_6,   chard,   Numdot[1],  &(int)((&SystemSetting)->D1),     		    SelectFunc,    9, 	 noDot, 1, SystemMenu_5,  SystemMenu_7 );
	SystemMenu_Initial(SystemMenu_7,   chard,   Numdot[2],  &(int)((&SystemSetting)->D2),     		    SelectFunc,    9, 	 noDot, 1, SystemMenu_6,  SystemMenu_8 );
	SystemMenu_Initial(SystemMenu_8,   chard,   Numdot[3],  &(int)((&SystemSetting)->D3),     		    SelectFunc,    9, 	 noDot, 1, SystemMenu_7,  SystemMenu_9 );
	SystemMenu_Initial(SystemMenu_9,   chard,   Numdot[4],  &(int)((&SystemSetting)->D4),     		    SelectFunc,    9, 	 noDot, 1, SystemMenu_8,  SystemMenu_10);
	SystemMenu_Initial(SystemMenu_10,  chard,   Numdot[5],  &(int)((&SystemSetting)->D5),     		    SelectFunc,    7, 	 noDot, 1, SystemMenu_9,  SystemMenu_11 );
	SystemMenu_Initial(SystemMenu_11,  chard,   Numdot[6],  &(int)((&SystemSetting)->D6),     		    SelectFunc,    7, 	 noDot, 1, SystemMenu_10, SystemMenu_12);
	SystemMenu_Initial(SystemMenu_12,  chard,   Numdot[7],  &(int)((&SystemSetting)->D7),     		    SelectFunc,    7, 	 noDot, 1, SystemMenu_11, SystemMenu_13 );
	SystemMenu_Initial(SystemMenu_13,  chard,   Numdot[8],  &(int)((&SystemSetting)->D8),     		    SelectFunc,    7, 	 noDot, 1, SystemMenu_12, SystemMenu_14 );
	SystemMenu_Initial(SystemMenu_14,  0,              0,   &((&SystemSetting)->year),                TimeSetting,  1000 ,   noDot, 4, SystemMenu_13, SystemMenu_0 );
                                                                       
	

}

void Initial_System_Menu(void )
{
	
	SystemMenu_Initial(SystemMenu_0,   charS,    chartdot,  &((&SystemSetting)->StartSingal),  	  		SelectFunc,   1,     noDot, 1, SystemMenu_15, SystemMenu_16 );
	
	//------存定值 和载入定值的菜单-----
	SystemMenu_Initial(SystemMenu_16,   charS,    charAdot,  &((&SystemSetting)->SaveLoadNum),  	  		SelectFunc,    NumOfSave-1,     noDot, 1, SystemMenu_0, SystemMenu_17 );
	SystemMenu_Initial(SystemMenu_17,   charL,    charddot,   &((&SystemSetting)->SaveLoadNum),  	  		SelectFunc,    NumOfSave-1,     noDot, 1, SystemMenu_16, SystemMenu_1 );
  
	
	
	SystemMenu_Initial(SystemMenu_1,   charA,    charUdot,  &((&SystemSetting)->ControlWay),  	  		SelectFunc,   2,     noDot, 1, SystemMenu_17, SystemMenu_2 );
	SystemMenu_Initial(SystemMenu_2,   charFdot,       0,   &((&SystemSetting)->CommunicateAdd), 		ValueSetting, 127,   noDot, 3, SystemMenu_1,  SystemMenu_3 );
	SystemMenu_Initial(SystemMenu_3,   charJ,    charydot,  &((&SystemSetting)->CheckoutWay),   		SelectFunc,    2,    noDot, 1, SystemMenu_2,  SystemMenu_4 );
	//SystemMenu_Initial(SystemMenu_4,   charIdot,       0,   &(float)((&SystemSetting)->CurrentRating),  ValueSetting,  1000, hasDot,3, SystemMenu_3,  SystemMenu_5 );
	SystemMenu_Initial(SystemMenu_4,   charIdot,       0,   (JDSettingAdd + offset_Current_Rating ), ValueSetting,  1000, hasDot,3, SystemMenu_3,  SystemMenu_5 );
	SystemMenu_Initial(SystemMenu_5,   charUdot,       0,   (JDSettingAdd + offset_Voltage_Rating ),  ValueSetting,  1000, hasDot,3, SystemMenu_4,  SystemMenu_6 );
	
	//SystemMenu_Initial(SystemMenu_5,   charUdot,       0,   &(float)((&SystemSetting)->VoltageRating),  ValueSetting,  1000, hasDot,3, SystemMenu_4,  SystemMenu_6 );
	SystemMenu_Initial(SystemMenu_6,   chartdot,   0,       &(float)((&SystemSetting)->CT),     		 ValueSetting,  1000, hasDot,3, SystemMenu_5,  SystemMenu_7 );


	SystemMenu_Initial(SystemMenu_7,   chard,   Numdot[1],  &(int)((&SystemSetting)->D1),     		    SelectFunc,    9, 	 noDot, 1, SystemMenu_6,  SystemMenu_8 );
	SystemMenu_Initial(SystemMenu_8,   chard,   Numdot[2],  &(int)((&SystemSetting)->D2),     		    SelectFunc,    9, 	 noDot, 1, SystemMenu_7,  SystemMenu_9 );
	SystemMenu_Initial(SystemMenu_9,   chard,   Numdot[3],  &(int)((&SystemSetting)->D3),     		    SelectFunc,    9, 	 noDot, 1, SystemMenu_8,  SystemMenu_10 );
	SystemMenu_Initial(SystemMenu_10,   chard,   Numdot[4],  &(int)((&SystemSetting)->D4),     		    SelectFunc,    9, 	 noDot, 1, SystemMenu_9,  SystemMenu_11);
	SystemMenu_Initial(SystemMenu_11,  chard,   Numdot[5],  &(int)((&SystemSetting)->D5),     		    SelectFunc,    7, 	 noDot, 1, SystemMenu_10,  SystemMenu_12 );
	SystemMenu_Initial(SystemMenu_12,  chard,   Numdot[6],  &(int)((&SystemSetting)->D6),     		    SelectFunc,    7, 	 noDot, 1, SystemMenu_11, SystemMenu_13);
	SystemMenu_Initial(SystemMenu_13,  chard,   Numdot[7],  &(int)((&SystemSetting)->D7),     		    SelectFunc,    7, 	 noDot, 1, SystemMenu_12, SystemMenu_14 );
	SystemMenu_Initial(SystemMenu_14,  chard,   Numdot[8],  &(int)((&SystemSetting)->D8),     		    SelectFunc,    7, 	 noDot, 1, SystemMenu_13, SystemMenu_15 );
	SystemMenu_Initial(SystemMenu_15,  LedNum[2],LedNum[0], &((&SystemSetting)->year),                TimeSetting,  1000 ,   noDot, 2, SystemMenu_14, SystemMenu_0 );
                                                                      
	

}



void Initial_Stetting_Menu(void )
{


int *dataTemp[3] ;


/************************************一. 启动时间保护********************/
dataTemp[0] = 0;
dataTemp[1] =&KG_1_1;
dataTemp[2] =&KG_1_2;
TopMenu_Initial(charq, charddot, StartTime_Menu, dataTemp, StartTime_SubMenu_1,2,1 );
SubMenu_Initial( StartTime_SubMenu_1,chart,Numdot[5],JDSettingAdd+offset_Start_Setting_Time, 2,StartTime_Menu,TimeValue);




/***********************************************二.过热保护**************************/
dataTemp[0] = 0;
dataTemp[1] =&KG_2_1;
dataTemp[2] =&KG_2_2;
TopMenu_Initial(charg, charrdot, OverHeat_Menu, dataTemp, OverHeat_SubMenu_1,2,4 );
SubMenu_Initial( OverHeat_SubMenu_1,charr,charHdot,JDSettingAdd + offset_OverHeat_TimeType,       2,OverHeat_SubMenu_2,TimeValue);
SubMenu_Initial( OverHeat_SubMenu_2,charr,charAdot,JDSettingAdd + offset_OverHeat_Alarm_Setting, 2,OverHeat_SubMenu_3,0);
SubMenu_Initial( OverHeat_SubMenu_3,charr,chartdot,JDSettingAdd + offset_OverHeat_Break_Setting, 2,OverHeat_SubMenu_4,0);
SubMenu_Initial( OverHeat_SubMenu_4,charr,charCdot,JDSettingAdd + offset_Restart_Permit_Setting, 2,OverHeat_SubMenu_1,0);




/***********************************************三.过负荷保护**************************/
dataTemp[0] = 0;
dataTemp[1] =&KG_3_1;
dataTemp[2] =&KG_3_2;
TopMenu_Initial(charg, charFdot, OverLoad_Menu, dataTemp, OverLoad_SubMenu_1,2,2 );
SubMenu_Initial( OverLoad_SubMenu_1,chart,charFdot,JDSettingAdd + offset_OverLoad_Time, 2,OverLoad_SubMenu_2,TimeValue);
SubMenu_Initial( OverLoad_SubMenu_2,charq,charFdot,JDSettingAdd + offset_OverLoad_Type, 1,OverLoad_SubMenu_1,Func);




/***********************************************四.堵转保护**************************/
dataTemp[0] = 0;
dataTemp[1] =&KG_4_1;
dataTemp[2] =&KG_4_2;
TopMenu_Initial(chard, Numdot[2], Block_Menu, dataTemp, Block_SubMenu_1,2,3 );
SubMenu_Initial( Block_SubMenu_1,charI,charddot,(float *)(&Value_Parameter.Block_Current[0]), 2,Block_SubMenu_2,CurrentMultipleValue);
SubMenu_Initial( Block_SubMenu_2,chart,charddot,JDSettingAdd + offset_Block_TimeI, 2,Block_SubMenu_3,TimeValue);
SubMenu_Initial( Block_SubMenu_3,chart,chartdot,JDSettingAdd + offset_Block_TimeII, 2,Block_SubMenu_1,TimeValue);





/***********************************五.电流速断****************************/

dataTemp[0] = 0;
dataTemp[1] =&KG_5_1;
dataTemp[2] =&KG_5_2;
TopMenu_Initial(charg, charLdot, OverCurrent_Menu, dataTemp, OverCurrent_SubMenu_1,2,2 );
SubMenu_Initial( OverCurrent_SubMenu_1,charI,charydot,(float *)(&Value_Parameter.Over_Current_I[0]), 2,OverCurrent_SubMenu_2,CurrentMultipleValue);
SubMenu_Initial( OverCurrent_SubMenu_2,charI,charEdot,(float *)(&Value_Parameter.Over_Current_II[0]), 2,OverCurrent_SubMenu_1,CurrentMultipleValue);



/************************************六.欠电流保护 *******************************************/
dataTemp[0] = 0;
dataTemp[1] = &KG_12_1;
dataTemp[2] = &KG_12_2;
TopMenu_Initial(charq, charLdot,Current_Low_Menu, dataTemp, Current_Low_SubMenu_1,2,2 );
SubMenu_Initial( Current_Low_SubMenu_1,charI,charLdot,(float *)(&Value_Parameter.Low_Current[0]), 2,Current_Low_SubMenu_2,CurrentMultipleValue);
SubMenu_Initial( Current_Low_SubMenu_2,chart,charLdot,JDSettingAdd + offset_Current_Low_Setting_Time, 2,Current_Low_SubMenu_1,TimeValue);




/***************************************七. 电流不平衡保护(断相)***************************************/
dataTemp[0] =0 ;
dataTemp[1] =&KG_6_1;
dataTemp[2] =&KG_6_2;
TopMenu_Initial(charp, charHdot, Unbalance_Menu, dataTemp, Unbalance_SubMenu_1,2,3 );
SubMenu_Initial( Unbalance_SubMenu_1,charp,charAdot,JDSettingAdd + offset_Current_Unbalance_SettingI, 2,Unbalance_SubMenu_2,0);
SubMenu_Initial( Unbalance_SubMenu_2,charp,chartdot,JDSettingAdd + offset_Current_Unbalance_SettingII, 2,Unbalance_SubMenu_3,0);
SubMenu_Initial( Unbalance_SubMenu_3,chart,charpdot,JDSettingAdd + offset_Current_Unbalance_SettingI_Time, 2,Unbalance_SubMenu_1,TimeValue);


/***************************************八. 断相保护********************************************/
dataTemp[0] =0 ;
dataTemp[1] =0 ;
dataTemp[2] =&KG_6_3;
TopMenu_Initial(chard, charHdot, PhaseBreak_Menu, dataTemp, PhaseBreak_SubMenu_1,1,1 );
SubMenu_Initial( PhaseBreak_SubMenu_1,charp,charddot,JDSettingAdd + offset_Current_Unbalance_SettingIII, 2,PhaseBreak_SubMenu_1,0);

             


/*****************************************九.接地保护********************************/
dataTemp[0]  = 0;
dataTemp[1] =&KG_7_1;
dataTemp[2] =&KG_7_2;
TopMenu_Initial(charJ, charddot,Grounding_Menu, dataTemp, Grounding_SubMenu_1,2,2 );
SubMenu_Initial( Grounding_SubMenu_1,charI,charJdot,(float *)(&Value_Parameter.I0[0]), 2,Grounding_SubMenu_2,CurrentMultipleValue);
SubMenu_Initial( Grounding_SubMenu_2,chart,charJdot,JDSettingAdd + offset_I0_Time, 2,Grounding_SubMenu_1,TimeValue);


/*************************************十.相序保护*******************************************/
dataTemp[0]  = 0;
dataTemp[1] =&KG_8_1;
dataTemp[2] =&KG_8_2;
TopMenu_Initial(charH, charHdot,Phase_Reversed_Menu, dataTemp, Phase_Reversed_SubMenu_1,2,1 );
SubMenu_Initial( Phase_Reversed_SubMenu_1,chart,charHdot,JDSettingAdd + offset_PhaseReversedTime, 2,Phase_Reversed_SubMenu_1,TimeValue);



/*************************************十一.欠电压保护*******************************************/
dataTemp[0] = 0 ;
dataTemp[1] = &KG_9_1;
dataTemp[2] = &KG_9_2;
TopMenu_Initial(charq, charydot,Voltage_Low_Menu, dataTemp, Voltage_Low_SubMenu_1,2,2 );
SubMenu_Initial( Voltage_Low_SubMenu_1,charU,charqdot,(float *)(&Value_Parameter.Low_Voltage[0]), 2,Voltage_Low_SubMenu_2,VoltageMultipleValue);
SubMenu_Initial( Voltage_Low_SubMenu_2,chart,charqdot,JDSettingAdd + offset_Voltage_Low_Setting_Time, 2,Voltage_Low_SubMenu_3,TimeValue);

/*************************************十二.晃电重启 *******************************************/
dataTemp[0] = 0 ;
dataTemp[1] = 0 ;
dataTemp[2] = &KG_9_3;
TopMenu_Initial(charH, charddot,Voltage_shake_Menu, dataTemp, Voltage_shake_SubMenu_1,1,2 );
SubMenu_Initial( Voltage_shake_SubMenu_1,chart,charCdot,JDSettingAdd+offset_VoltageShaking_Time,          2,Voltage_shake_SubMenu_2,TimeValue);
SubMenu_Initial( Voltage_shake_SubMenu_2,chart,charydot,JDSettingAdd+offset_VoltageShaking_RecloseTime, 2,Voltage_shake_SubMenu_1,TimeValue);





/************************************十三.过电压保护 *******************************************/
dataTemp[0] = 0;
dataTemp[1] = &KG_11_1;
dataTemp[2] = &KG_11_2;
TopMenu_Initial(charg, charydot,Voltage_Over_Menu, dataTemp, Voltage_Over_SubMenu_1,2,2 );
SubMenu_Initial( Voltage_Over_SubMenu_1,charU,chargdot,(float *)(&Value_Parameter.Over_Voltage[0]), 2,Voltage_Over_SubMenu_2,VoltageMultipleValue);
SubMenu_Initial( Voltage_Over_SubMenu_2,chart,chargdot,JDSettingAdd+offset_Voltage_Over_Setting_Time, 2,Voltage_Over_SubMenu_1,TimeValue);




/************************************十四.电压回路断线保护 (TV断线)*******************************************/
dataTemp[0] = 0;
dataTemp[1] = &KG_10_1;
dataTemp[2] = &KG_10_2;
TopMenu_Initial(charp, chartdot,PT_Broken_Menu, dataTemp, PT_Broken_SubMenu_1,2,1 );
SubMenu_Initial( PT_Broken_SubMenu_1,chart,Numdot[8],JDSettingAdd + offset_PT_Broken_Time, 2,PT_Broken_SubMenu_2,TimeValue);






}



void Initial_Measure_Menu(void)
{
	int i = 0;
	int j = 0;
	
	
	/***************************************************************************/
	/*								A相电流                                    */
	/***************************************************************************/
	(Measure_Display_Data_Struct *) Measure_Display_Data -> DataAdd[j] = JDInputsAdd + off_IA ;
	j++;
	Symbol_Segment[i] = charA ;   //标志一
	i++;
	Symbol_Segment[i] = 0 ;       //标志二
	i++;

	/***************************************************************************/
	/*								B相电流                                    */
	/***************************************************************************/
	(Measure_Display_Data_Struct *) Measure_Display_Data -> DataAdd[j] = JDInputsAdd + off_IB ;
	j++;
	Symbol_Segment[i] = charb ;   
	i++;
	Symbol_Segment[i] = 0 ;   
	i++;

	
	/***************************************************************************/
	/*								C相电流                                    */
	/***************************************************************************/
	(Measure_Display_Data_Struct *) Measure_Display_Data -> DataAdd[j] = JDInputsAdd + off_IC ;
	j++;
	Symbol_Segment[i] = charC ;   
	i++;
	Symbol_Segment[i] = 0  ;  
	i++;  
	
	/***************************************************************************/
	/*								A相电压                                    */
	/***************************************************************************/
	(Measure_Display_Data_Struct *) Measure_Display_Data -> DataAdd[j] = JDInputsAdd +  off_UA ;
	j++;
	Symbol_Segment[i] = charAdot ;  
	i++;
	Symbol_Segment[i] = 0 ;   
	i++;
	/***************************************************************************/
	/*								B相电压                                    */
	/***************************************************************************/
	(Measure_Display_Data_Struct *) Measure_Display_Data -> DataAdd[j] =  JDInputsAdd +  off_UB ;
	j++;
	Symbol_Segment[i] = charbdot ;   
	i++;
	Symbol_Segment[i] = 0 ;  
	i++;
	/***************************************************************************/
	/*								C相电压                                    */
	/***************************************************************************/
	(Measure_Display_Data_Struct *) Measure_Display_Data -> DataAdd[j] =  JDInputsAdd +  off_UC ;
	j++;
	Symbol_Segment[i] = charCdot ;   //随便填的
	i++;
	Symbol_Segment[i] = 0 ;   //随便填的
	i++;
	/***************************************************************************/
	/*							   零序电流                                    */
	/***************************************************************************/
	(Measure_Display_Data_Struct *) Measure_Display_Data -> DataAdd[j] = JDInputsAdd +  off_I0 ;
	j++;
	Symbol_Segment[i] = charEdot ;   
	i++;
	Symbol_Segment[i] = 0 ;   
	i++;
	/***************************************************************************/
	/*								负荷百分比                                 */
	/***************************************************************************/
	(Measure_Display_Data_Struct *) Measure_Display_Data -> DataAdd[j] = (float *)(StatusVarAdd + off_OverCurrent_Ratio);
	j++;
	Symbol_Segment[i] = charL ;   //随便填的
	i++;
	Symbol_Segment[i] = 0 ;   //随便填的

⌨️ 快捷键说明

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