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

📄 protect_process.c

📁 基于c的电动机保护程序
💻 C
字号:

#include "MOTOType.h"
#include <math.h>
#include "Applications/inlcudes/hardware_reg.h"
#include "UItype.h"
#include "AD_drive.h"
#include "led.h"
TJDTimingNode OverLoadTn,BlockTn1,BlockTn2,CurrentUnbalanceTn1,CurrentUnbalanceTn2,CurrentUnbalanceTn3,VoltageShakingTn;
 
TJDTimingNode VoltageLowTn,PhaseReversedTn, GroundingTn,PT_BrokenTn,Voltage_OverTn,Current_LowTn,StartTn, noAlarmT;
 
TJDTimingNode OverLoad_InverTime,Short_CircuitTn,VoltageShakingRecloseTn;
extern _Value_Parameter Value_Parameter; 
extern TJDTimingNode TestTn;
extern int Break_flag;
extern int Break_Signal;	
extern CALCULATE(void);
extern int sound_flag;
extern void test_protect(void);
extern int Fixed;
extern float valueStore[100];
 void TimeNode_Initialize(void)
{
	TimeInitial(&TestTn,    2500,    0);
	TimeInitial(&OverLoadTn,           (int)*(JDSettingAdd + offset_OverLoad_Time),                    0);
	TimeInitial(&BlockTn1,             (int)*(JDSettingAdd + offset_Block_TimeI),                       0);
	TimeInitial(&BlockTn2,             (int)*(JDSettingAdd + offset_Block_TimeII),                       0);
	TimeInitial(&CurrentUnbalanceTn1,  (int)*(JDSettingAdd + offset_Current_Unbalance_SettingI_Time), 0);
	TimeInitial(&CurrentUnbalanceTn2,  (int)*(JDSettingAdd + offset_Current_Unbalance_SettingI_Time), 0);
	TimeInitial(&CurrentUnbalanceTn3,  100, 0);
	
	TimeInitial(&VoltageShakingTn,     (int)*(JDSettingAdd + offset_VoltageShaking_Time),              0);
	TimeInitial(&VoltageShakingRecloseTn,    (int)*(JDSettingAdd + offset_VoltageShaking_RecloseTime),    0);
	
		
	TimeInitial(&VoltageLowTn,        (int)*(JDSettingAdd + offset_Voltage_Low_Setting_Time),         0);
	TimeInitial(&PhaseReversedTn,     (int)*(JDSettingAdd + offset_PhaseReversedTime),                0);
	TimeInitial(&GroundingTn,         (int)*(JDSettingAdd + offset_I0_Time),                              0);
	TimeInitial(&PT_BrokenTn,         (int)*(JDSettingAdd + offset_PT_Broken_Time),                   0);
	TimeInitial(&Voltage_OverTn,      (int)*(JDSettingAdd + offset_Voltage_Over_Setting_Time),        0);
	TimeInitial(&Current_LowTn,       (int)*(JDSettingAdd + offset_Current_Low_Setting_Time),         0);
	TimeInitial(&StartTn,             (int)*(JDSettingAdd + offset_Start_Setting_Time),               0);
	
	
	
	TimeInitial(&OverLoad_InverTime, 0, 0);
	TimeInitial(&Short_CircuitTn, 100, 0);
	TimeInitial(&noAlarmT, 10000, 0);
}

float uvalue[100];
int kk;


int temp;
float mm;
float nn;
int Alarm_Info = 0;
int Break_Info = 0;

int Voltage_Low_Overtime = 0;
int calSampleFlag = 0;

void Protect_Process(void)
{
	U32 yxj;
	float jj;
	int i = 0;
	static int j = 0;
	static float Phase_Difference_AB =   0.0;      //相序判断中的变量
	static float Phase_Difference_BC =   0.0;      //相序判断中的变量
	static float Phase_Difference_CA =   0.0;      //相序判断中的变量
	
	/*********电流不平衡保护变量**************************************************/
	static float Current_UnbalanceTemp = 0.0;
	static float Current_Unbalance_Value = 0.0;
	
	/*********过负荷反时限计算中用的临时变量**************************************************/
	static float OverLoad_TimeTemp = 0.0;
	static float cnst = 0.0;
	static float ratio_temp = 0.0;
	static float Ip_temp =0.0;
	static float Passed_timeratio = 0.0;  //用掉的时间百分比
	static int count = 0; //计算中的计数

⌨️ 快捷键说明

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