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

📄 relay.c

📁 这是电力系统中用于电动机驱动及保护的源代码。包括了目前国内外主流电动机能够适用的逻辑驱动及逻辑保护原理。
💻 C
字号:
/***************************************************************************************
** 文件信息---------------------------------------------------------------------------------
** 文 件 名: Relay.C
** 描   述: 保护定值判断和继电器遥控与动作
*******************************************************************************************/
#include "sfr16_lb.h"       /*以16位形式定义的特殊寄存器*/
#include "calculate.h"
#include "system.h"
#include "GMUDef.h"
#include "key.h"
#include "comdata_converse.h"
#include "Menus.h"   


//============================================================

//过量型保护模型可用于:速断、堵转、过负荷、零序过流、负序过流
void bh_model_over(float i_set,float t_set,float i_real,unsigned char l_phase,
              unsigned char *bh_state,unsigned char *start_counter,float *action_counter,
              unsigned char *action_val,unsigned char bh_type,unsigned char Relay_S_I);
//============================================================
//欠量型保护模型可用于空载
void bh_model_low(float i_set,float t_set,float i_real,unsigned char l_phase,
              unsigned char *bh_state,unsigned char *start_counter,float *action_counter,
              unsigned char *action_val,unsigned char bh_type);
//============================================
//各种保护进程函数
void bh_I_1(float i_set,float t_set,float i_real,unsigned char l_phase);  //堵转
void bh_I_2(float i_set,float t_set,float i_real,unsigned char l_phase);  //过负荷
void bh_I_3(unsigned char curve_index,float i_set,float t_set,float i_real,unsigned char l_phase);  //反时限
void bh_I_4(float i_set,float t_set,float i_real,unsigned char l_phase);  //零序过流
void bh_I_5(float i_set,float t_set,float i_real,unsigned char l_phase);  //负序过流
void bh_I_6(float i_set,float t_set,float i_real,unsigned char l_phase);  //空载
void bh_I_7(float i_set,float t_set,float i_real,unsigned char l_phase);  //速断
void bh_I_9(float i_set,float t_set,float i_real,unsigned char l_phase);  //负序2段

//=============================================
//供外部调用的保护函数
void init_bh(void);                      //保护初始化
void run_bh(void);                       //保护进程的运行,保护判断,在calculate()函数中调用.  
void relay_action(unsigned char *var1,unsigned char *var2);  //继电器开出,在采样中断sample()中调用
void exlink_event(void);                 //联锁事件
char phase_change(unsigned char phase_num);

//模块函数
void save_bh_to_ram(unsigned char t_type,unsigned char t_phase,float t_action); //保存保护事件到内存中
float lookfortable(float fVal);                   								//X的0.02次方的查表函数
float computer_iep_t(unsigned char curve_num,float i_set,float i_real);         //反时限值的计算
float time_counters=0;
unsigned char test_bis=0;
unsigned char exlink_in=1;                                                      //联锁标志位
unsigned int bh_sum_temp;
unsigned char relay_action_val=0x00;                                            //继电器的动作值
extern float get_max(float temp1,float temp2,float temp3,unsigned char *temp4);
//=================================================================================================
extern unsigned char revert_sign;                                               //遥信复归信号
extern xdata float I_act_Temp[3],i_over;
extern unsigned char t_counter,t_counter_s,t_counter_m;
extern unsigned char Time_year,Time_month,Time_day,Time_hour,Time_minute,Time_second,real_time_counter;//实际时间
extern unsigned char Relay_S_I1,Relay_S_I2,Relay_S_I3,Relay_S_I4,Relay_S_I5,Relay_S_I6,Relay_S_I7,Relay_S_I9;
//============================================
/*******************************************************************************************
** 函数原型

⌨️ 快捷键说明

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