📄 main.h
字号:
/*main*/
/*ad采样需要的数据*/
int samp0[36],samp1[36],samp2[36],samp3[36],samp4[36],samp5[36]; /*原始采样数据*/
int samp6[36],samp7[36],samp8[36],samp9[36],samp10[36],samp11[36]; /*备份数据*/
/*采样循环指针*/
int samp=0;
uint mea_count=0,xb_count1=0,xb_count2=0;
float u_abc[3][20],i_abc[3][20],p_abc[3][20],q_abc[3][20],c_abc[3][20];
float xiebo[6][16]; /* 电压电流2-18次谐波*/
uint f_abc[20],f_bak,per_bak;
uint cos_flag[3],p_flag[3],q_flag[3]; /*正数的为0,负数为1*/
/* 采样频率 */
uint pin_lv1,pin_lv2,pin_lv=36;
uint pin_count;
/*时间计数器*/
uint time_count=0;
/**time.c*/
/*系统时间*/
uint p_second,p_minute,p_hour,p_day,p_month,p_year;
uint temp_second,temp_minute,temp_hour,temp_day,temp_month,temp_year;
uint timer[6];/*year month day hour minute second*/
uint time_flag=0;
#pragma DATA_SECTION(start_int,"SARAM")
uint start_int; /*判是上电复位还是掉电*/
uint err_state=0; /*故障状态*/
/*save.c*/
uint flash_buffer[255];
/*uart.c*/
uint receive[1000];
uint receive_temp[50]; /*接收的有用数据*/
uint copy_count=0; /*解析有用数据计数器*/
uint rece_count; /*接收数据计数器*/
uint rece_flag; /*有未处理数据*/
uint serial_count; /*处理数据计数器*/
uint send_data[1000];
uint send_count=0;
uint rece_begain_flag=1; /*报文头标志*/
uint rece_addr1_flag=0; /*地址1标志*/
uint rece_addr2_flag=0; /*地址2标志*/
uint rece_enable_flag=0; /*报文头标志*/
uint rece_con1_flag=0; /*控制码一*/
uint rece_con2_flag=0; /*控制码二*/
uint rece_l1_flag=0; /*数据长度一*/
uint rece_l2_flag=0; /*数据长度二*/
uint rece_data1_flag=0; /*数据一*/
uint rece_cs_flag=0; /*数据校验和*/
uint rece_end_flag=0; /*桢结束标志*/
uint rece_fin_flag=0; /*完整桢标志*/
uint rece_addr[2]={0,0}; /*接收地址*/
uint rece_con[2]={0,0}; /*接收控制码*/
uint rece_long[2]={0,0}; /*接收数据长度*/
uint read_set_flag=0; /*读设置参数标志*/
uint write_set_flag=0; /*写设置参数标志*/
uint write_control_flag=0; /*写控制投切标志*/
uint read_ss_flag=0; /*读实时数据标志*/
uint wr_time_flag=0; /*写时钟数据标志*/
uint read_zd_flag=0; /*读整点数据标志*/
uint read_tj_flag=0; /*读统计数据标志*/
uint read_td_flag=0; /*读停电数据标志*/
uint wr_bl_flag=0; /*写比例系数标志*/
uint chushihua=0; /*初始化数据区*/
uint set_power_flag=0; /*设置电量表底*/
/*tq.c*/
//uint c_state=0; /*电容状态*/
uint guzhang[3]={0,0,0};
uint cap[12]; /*电容的有无标志和容值*/
uint group=0; /*投三角行电容,切分相*/
uint t_count[4]={0,2,4,6}; /*投计数器,A、B、C、三角*/
uint q_count[4]={0,2,4,6}; /*切计数器,A、B、C、三角*/
uint t_over[4]={0,0,0,0}; /*投完标志,A、B、C、三角*/
uint q_over[4]={0,0,0,0}; /*切完标志,A、B、C、三角*/
uint tou_state[4]={0,0,0,0}; /*投满的状态,A、B、C、三角*/
uint tou_flag[4]={0,0,0,0}; /*投电容标志,A、B、C、三角*/
uint qie_flag[4]={0,0,0,0}; /*切电容标志,A、B、C、三角*/
uint dongzuo[4]={0,0,0,0}; /*动作标志, A、B、C、三角*/
uint dzuo_q[4]={0,0,0,0}; /*切动作标志, A B C 三角*/
uint tq_time[4]={0,0,0,0}; /*投切延时时间计数器*/
uint q_time[4]={0,0,0,0}; /*切延时时间计数器*/
/*比例系数*/
//#define ui_xishu 0.0271267361111 /* ((2/36)*(500/1024)) */
//#define ci_xishu 6.5104166667e-4 /* ((2/36)*(12/1024)) */
#define ui_xishu 0.0330682171858 /* 2/(36*2*sin5)*87/1024 */
#define ci_xishu 6.5361322200e-4 /* 2/(36*2*sin5)*2.1/1024 */
/*
float uxb_xishu[16]=
{
0.0405993319,0.027239108301,0.020612821021,0.016681721161,
0.014100000000,0.012291299909,0.010967852979,0.009970205615,
0.009203121389,0.008606460850,0.008140638795,0.007812001869,
0.007534461768,0.007329836238,0.007189299741,0.007107122871,
};
float ixb_xishu[16]=
{
7.81083236e-4,5.24048299e-4,3.96566352e-4,3.20936631e-4,
2.71267361e-4,2.36470106e-4,2.11008546e-4,1.91814991e-4,
0.0001770572,1.65578151e-4,1.56616284e-4,1.49655208e-4,
1.44338348e-4,1.40418319e-4,1.37726049e-4,1.36151779e-4,
};
*/
/*电压谐波系数*/
//#define xbu_xishu 0.02655683003 /* 2/(36*2*sin10)*170/1024 */
#define xbu_xishu 0.03265683003 /* 2/(36*2*sin10)*170/1024 */
#define xbi_xishu 6.24866589e-4 /* 2/(36*2*sin10)*4/1024 */
//#define uer_xishu 0.0405993319 /* 2/(36*2*sin10)*260/1024 */
/*
#define usan_xishu 0.027239108301
#define usi_xishu 0.020612821021
#define uwu_xishu 0.016681721161
#define uliu_xishu 0.014100000000
#define uqi_xishu 0.012291299909
#define uba_xishu 0.010967852979
#define uj_xishu 0.009970205615
#define ushi_xishu 0.009203121389
#define usy_xishu 0.008606460850
#define use_xishu 0.008140638795
#define uss_xishu 0.007812001869
#define uss_xishu 0.007534461768
#define usw_xishu 0.007329836238
#define usl_xishu 0.007189299741
#define usq_xishu 0.007107122871
*/
/*电流谐波系数*/
//#define ier_xishu 7.81083236e-4 /* 2/(36*2*sin10)*5/1024 */
/*
#define isan_xishu 5.24048299e-4
#define isi_xishu 3.96566352e-4
#define iwu_xishu 3.20936631e-4
#define iliu_xishu 2.71267361e-4
#define iqi_xishu 2.36470106e-4
#define iba_xishu 2.11008546e-4
#define ij_xishu 1.91814991e-4
#define ishi_xishu 0.0001770572
#define isy_xishu 1.65578151e-4
#define ise_xishu 1.56616284e-4
#define iss_xishu 1.49655208e-4
#define iss_xishu 1.44338348e-4
#define isw_xishu 1.40418319e-4
#define isl_xishu 1.37726049e-4
#define isq_xishu 1.36151779e-4
*/
/*校正系数*/
uint bl_xishu[6];
long cs0[36]=
{
00000,11380,22415,32768,42126,50203,56756,61584,64540,
65536,64540,61584,56756,50203,42126,32768,22415,11380,
00000,-11380,-22415,-32768,-42126,-50203,-56756,-61584,-64540,
-65536,-64540,-61584,-56756,-50203,-42126,-32768,-22415,-11380
};
long int cs1[36]=
{
65536,64540,61584,56756,50203,42126,32768,22415,11380,
00000,-11380,-22415,-32768,-42126,-50203,-56756,-61584,-64540,
-65536,-64540,-61584,-56756,-50203,-42126,-32768,-22415,-11380,
-00000,11380,22415,32768,42126,50203,56756,61584,64540
};
struct
{
uint avr_u[4]; /* 相电压 */
uint avr_i[4]; /* 相电流 */
uint avr_c[3]; /* 功率因数 */
uint avr_f; /* 频率 */
uint avr_p[3]; /* 有功 */
uint avr_q[3]; /* 无功 */
uint c_status; /* 电容状态 */
}up1_data;
struct
{
uint avr_xb[6][16]; /* 显示谐波数据 */
uint avr_zxb[6]; /*总谐波*/
}up2_data;
/*设置数据*/
/* 密码 ID号 CT变比 有功电能 无功电能 */
/* 电压保护上下限 谐波保护门限 零序保护门限*/
/* 电压统计上限 电压统计下限 投入无功容量 切除无功容量*/
/* 目标功率因数 投切延时 角型电容路数 星型电容路数*/
/* 角型电容编码 星型电容编码 角型电容容量 星型电容容量*/
struct
{
uint set_shuju[19];
}up3_data;
/*设置数据的BCD码*/
uint set_mm[4]={0,0,0,0};
uint input_mm[4]={0,0,0,0};
uint set_id[4]={0,0,0,0};
uint set_yg[4]; /*有功电量*/
uint set_wg[4]; /*无功电量*/
float p_yg=0;
float p_wg=0;
//ulong p_power=0;
//ulong q_power=0;
uint ct_array[19]=
{
100,150,200,250,300,400,500,600,750,800,
1000,1200,1500,2000,2500,3000,4000,5000,6000
};
/*key.c*/
uint p_key=0;
uint p_mode=0;
uint p_screen=0X0FF;
uint enter_flag=0; /*修改参数确认键标志*/
uint screen_flag=0; /*换屏标志*/
/*disp.c*/
uint led_flag=0; /*开背景灯标志*/
uint led_count=0; /*灯光延时计数器*/
/* save.c */
/*************统计数据**************************************************************************/
/*ABC相电压超上限时间、ABC相电压超下限时间、ABC相缺相时间***********************************9***/
/*A相电压最大值、发生时间、B相电压最大值、发生时间、C相电压最大值、发生时间*****************6***/
/*A相电压最小值、发生时间、B相电压最小值、发生时间、C相电压最小值、发生时间*****************6***/
/*A相电流最大值、发生时间、B相电流最大值、发生时间、C相电流最大值、发生时间*****************6***/
/*A相电流最小值、发生时间、B相电流最小值、发生时间、C相电流最小值、发生时间*****************6***/
/*A相15分钟电流最大值、发生时间、B相15分钟电流最大值、发生时间、C相15分钟电流最大值、发生时间*6*/
/*总P最大值、发生时间、总Q最大值、发生时间****************************************************4*/
/*A相电压谐波最大值、发生时间、B相电压谐波最大值、发生时间、C相电压谐波最大值、发生时间******6**/
/*A相电流谐波最大值、发生时间、B相电流谐波最大值、发生时间、C相电流谐波最大值、发生时间******6**/
/*C1--C12电容投入时间、ABC电容投切次数、三相电容投切次数*************************************16*/
/*三相最大电流不平横率、发生时间、三相最大电压不平横率、发生时间******************************4*/
/*ACOS大于0。9时间、BCOS大于0。9时间、CCOS大于0。9时间、**************************************3*/
/*系统运行时间********************************************************************************1*/
/*共158字节*/
/*********************************************************************************************/
struct
{
uint tj_shuju[160]; /* 统计数据 */
}up4_data;
uint minute_15=0; /*15分钟计时*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -