You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

358 lines
6.9 KiB

#ifndef _CONFIG_H_
#define _CONFIG_H_
#include <stdint.h>
/////////////////////////////////////////stype.h文件中的内容/////////////////////////////////////////
#define uint8to16(a,b) (((uint16_t)a) << 8 | b)
#pragma pack(2)
typedef union _BIT_U16_ {
uint16_t value;
struct {
uint16_t b0 :1;
uint16_t b1 :1;
uint16_t b2 :1;
uint16_t b3 :1;
uint16_t b4 :1;
uint16_t b5 :1;
uint16_t b6 :1;
uint16_t b7 :1;
uint16_t b8 :1;
uint16_t b9 :1;
uint16_t b10 :1;
uint16_t b11 :1;
uint16_t b12 :1;
uint16_t b13 :1;
uint16_t b14 :1;
uint16_t b15 :1;
}Bits;
}ubit16_t;
typedef struct _MD_U16_ {
uint16_t addr;
uint16_t ischange;
union {
uint16_t val_u16;
int16_t val_i16;
};
}sMD16_t;
#pragma pack()
/////////////////////////////////////////stype.h文件内容结束/////////////////////////////////////////
/////////////////////////////////////////sys.h文件中的内容/////////////////////////////////////////
#define EAU_TYPE 265
//#define EAU_AI_NUM 0
//#define EAU_AO_NUM 0
#define CCU_TYPE 0x0000//4369
//#define CCU_AI_NUM 0
//#define CCU_AO_NUM 0
//ECAT网络地址偏移
#define NET_ADDR_BASE 0x1000
/////////////////////////////////////////sys.h文件内容结束/////////////////////////////////////////
/////////////////////////////////////////config.h文件中的内容/////////////////////////////////////////
typedef struct __SIGNAL_BIND__ {
//就地远程开关信号关联DI编号
uint16_t remote_local_switch_related_di_address;
uint16_t ccs_enable_switch_related_di_address;
//一次调频投入信号关联DI编号
uint16_t ffr_enable_switch_related_di_address;
//动态无功投入信号关联DI编号
uint16_t fvr_enable_switch_related_di_address;
//精切负荷投入信号关联DI编号
uint16_t fpu_enable_switch_related_di_address;
//精切负荷接点1信号关联DI编号
uint16_t fpu_start_signal_1_related_di_address;
//精切负荷接点2信号关联DI编号
uint16_t fpu_start_signal_2_related_di_address;
}sBindSignal;
#if 0
typedef struct __FFR_CFG__ {
//一次调频额定频率
uint16_t rated_frequency;
//一次调频死区频率
uint16_t frequency_frozen_zone;
//一次调频调差系数
uint16_t power_regulate_ratio;
//一次调频限幅系数
uint16_t power_limit_ratio;
//一次调频频率回差
uint16_t frequency_return_difference;
//一次调频持续时间
uint16_t hold_time;
//一次调频模拟测试超时时间
uint16_t simulate_timeout_time;
//一次调频特性曲线功能起始频率
uint16_t wavetest_start_frequency;
//一次调频特性曲线功能截止频率
uint16_t wavetest_end_frequency;
//一次调频特性曲线功能步长频率
uint16_t wavetest_step_frequency;
//一次调频特性曲线功能步长时间
uint16_t wavetest_step_time;
}sFFRConfig;
#else
typedef struct __FFR_CFG__ {
bool enable;
//一次调频额定频率
float rated_frequency;
//一次调频死区频率
float frequency_frozen_zone;
//一次调频调差系数
float power_regulate_ratio;
//一次调频限幅系数
float power_limit_ratio;
//一次调频频率回差
float frequency_return_difference;
//一次调频持续时间
//uint16_t hold_time;
float hold_time;
//频率偏移回差
uint16_t frequency_offset_difference;
//一次调频模拟测试超时时间
uint16_t simulate_timeout_time;
//一次调频特性曲线功能起始频率
float wavetest_start_frequency;
//一次调频特性曲线功能截止频率
float wavetest_end_frequency;
//一次调频特性曲线功能步长频率
float wavetest_step_frequency;
//一次调频特性曲线功能步长时间
uint16_t wavetest_step_time;
}sFFRConfig;
#endif
typedef struct __FVR_CFG__ {
bool enable;
//动态无功额定电压
uint16_t rated_voltage;
//动态无功死区电压
uint16_t voltage_frozen_zone;
//动态无功调差系数
float power_regulate_ratio;
//动态无功限幅系数
float power_limit_ratio;
//动态无功电压回差
uint16_t voltage_return_difference;
//动态无功持续时间
uint16_t hold_time;
//动态无功模拟测试超时时间
uint16_t simulate_timeout_time;
//动态无功特性曲线功能起始电压
uint16_t wavetest_start_voltage;
//动态无功特性曲线功能截止电压
uint16_t wavetest_end_voltage;
//动态无功特性曲线功能步长电压
uint16_t wavetest_step_voltage;
//动态无功特性曲线功能步长时间
uint16_t wavetest_step_time;
}sFVRConfig;
typedef struct __FPU_CFG__ {
bool enable;
//精切负荷信号模式
uint16_t start_signal_mode;
//精切负荷持续时间
uint16_t hold_time;
}sFPUConfig;
typedef struct __IP_CFG__ {
//CCM0_A IP地址
uint16_t ccm0_a_ip_address;
//CCM0_B IP地址
uint16_t ccm0_b_ip_address;
uint16_t ccm0_a_104_port;
uint16_t ccm0_a_modbus_port;
uint16_t ccm0_b_104_port;
uint16_t ccm0_b_modbus_port;
//CCM1_A IP地址
uint16_t ccm1_a_ip_address;
//CCM1_B IP地址
uint16_t ccm1_b_ip_address;
uint16_t ccm1_a_104_port;
uint16_t ccm1_a_modbus_port;
uint16_t ccm1_b_104_port;
uint16_t ccm1_b_modbus_port;
}sIPConfig;
typedef struct __CCS_CFG__ {
//CT变比
uint16_t ct_signal_ratio;
//PT变比
uint16_t pt_signal_ratio;
//总额定有功功率
uint16_t rated_active_power;
//总额定无功功率
uint16_t rated_reactive_power;
//PCS额定有功功率
uint16_t pcs_rated_active_power;
//PCS额定无功功率
uint16_t pcs_rated_reactive_power;
//EMS数据来源
char bms_info_source[8];
uint16_t ffr_bind_eau;
//EAU数量
uint16_t eau_number;
//CCU数量
uint16_t ccu_number;
//PCS数量
uint16_t pcs_number;
uint16_t ccm_number;
uint16_t fvr_pcc_number;
sBindSignal signal;
sFFRConfig ffr;
sFVRConfig fvr;
sFPUConfig fpu;
sIPConfig ip;
}sCCSConfig;
typedef struct __EAU_CFG__ {
//EAU编号
uint16_t address;
//额定有功功率
uint16_t rated_active_power;
//额定无功功率
uint16_t rated_reactive_power;
//CCU数量
uint16_t ccu_number;
//PCS数量
uint16_t pcs_number;
}sEAUConfig;
typedef struct __PCC_CFG__ {
//PCC编号
uint16_t address;
//EAU数量
uint16_t eau_number;
//CCU数量
uint16_t ccu_number;
//PCS数量
uint16_t pcs_number;
uint16_t bind_eau;
//额定有功功率
int16_t rated_active_power;
//额定无功功率
int16_t rated_reactive_power;
//动态无功 功率调节比
float fvr_power_regulate_ratio;
}sPCCConfig;
typedef struct __CCU_CFG__ {
//PCS数量
uint16_t address;
uint16_t pcs_address[4];
uint16_t pcs_enable[4];
}sCCUConfig;
typedef struct __SYS_CFG__ {
sCCSConfig ccs;
sEAUConfig eau[16];
sPCCConfig pcc[3];
sCCUConfig ccu;
}sSysConfig;
extern sSysConfig gSysConfig;
//int parse_xml(const char* name, sECATNet *p);
#if 0
class SysConfig {
public:
SysConfig();
~SysConfig();
int parse_xml(const char *fxml);
private:
};
#endif
/////////////////////////////////////////config.h文件内容结束/////////////////////////////////////////
#endif