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.
205 lines
3.4 KiB
205 lines
3.4 KiB
3 months ago
|
|
||
|
|
||
|
#ifndef _ECATMAIN_H_
|
||
|
#define _ECATMAIN_H_
|
||
|
|
||
|
#include <string.h>
|
||
|
#include "./config.h"
|
||
|
#include "./network.h"
|
||
|
#include "./pcc.h"
|
||
|
|
||
|
#define NET_STATUS_OP 8
|
||
|
#define NET_TIMEOUT 300
|
||
|
#define NET_TIMES 3
|
||
|
|
||
|
#define SLAVE_NUM_MAX 128
|
||
|
#define PCC_NUM_MAX 16
|
||
|
#define EAU_NUM_MAX 16
|
||
|
#define CCU_NUM_MAX 64
|
||
|
#define PCS_NUM_MAX 4
|
||
|
|
||
|
typedef union _CCM_ENABLE_ {
|
||
|
uint16_t value;
|
||
|
struct {
|
||
|
uint16_t remote :1;
|
||
|
uint16_t ccs :1;
|
||
|
uint16_t ffr :1;
|
||
|
uint16_t fvr :1;
|
||
|
uint16_t fpu :1;
|
||
|
|
||
|
// 备用
|
||
|
uint16_t bak :11;
|
||
|
}sub;
|
||
|
}uCCMEnable;
|
||
|
|
||
|
typedef union _SYS_ENABLE__ {
|
||
|
uint16_t value;
|
||
|
struct {
|
||
|
//精切负荷(FPU)功能投入允许
|
||
|
uint16_t fpu_enable :1;
|
||
|
|
||
|
//精切负荷(FPU)功能投入
|
||
|
uint16_t fpu_is_enable :1;
|
||
|
|
||
|
//精切负荷(FPU)信号单双接点模式
|
||
|
uint16_t fpu_is_double_signal :1;
|
||
|
|
||
|
//精切负荷(FPU)指令脉冲
|
||
|
uint16_t fpu_command_pulse :1;
|
||
|
|
||
|
//精切负荷(FPU)动作
|
||
|
uint16_t fpu_is_action :1;
|
||
|
|
||
|
//一次调频(FFR)功能投入允许
|
||
|
uint16_t ffr_enable :1;
|
||
|
|
||
|
//一次调频(FFR)功能投入
|
||
|
uint16_t ffr_is_enable :1;
|
||
|
|
||
|
//一次调频(FFR)动作
|
||
|
uint16_t ffr_is_action :1;
|
||
|
|
||
|
//一次调频测试(FFR_S)投入/退出
|
||
|
uint16_t ffr_test_enable :1;
|
||
|
|
||
|
//一次调频模拟(FFR_S)频率测试
|
||
|
uint16_t ffr_test_analog_frequency :1;
|
||
|
|
||
|
//一次调频特性参数测试(一次调频特性曲线模式(FFR_WT)
|
||
|
uint16_t ffr_test_start :1;
|
||
|
|
||
|
//一次调频增负荷测试中
|
||
|
uint16_t ffr_test_load_add :1;
|
||
|
|
||
|
//一次调频减负荷测试中
|
||
|
uint16_t ffr_test_load_dec :1;
|
||
|
|
||
|
uint16_t bak :3;
|
||
|
}Bits;
|
||
|
}uSysEnable;
|
||
|
|
||
|
typedef union _SYS_STATUS__ {
|
||
|
uint16_t value;
|
||
|
struct {
|
||
|
//CCM总故障状态
|
||
|
uint16_t ccm_total_error :1;
|
||
|
|
||
|
//CCM总告警状态
|
||
|
uint16_t ccm_total_warn :1;
|
||
|
|
||
|
//CCM自检故障
|
||
|
uint16_t ccm_self_test_error :1;
|
||
|
|
||
|
//ECM通讯故障
|
||
|
uint16_t ecm_connect_error :1;
|
||
|
|
||
|
//EAU通讯故障
|
||
|
uint16_t eau_connect_error :1;
|
||
|
|
||
|
//CCU通讯故障
|
||
|
uint16_t ccu_connect_error :1;
|
||
|
|
||
|
//PCS通讯故障
|
||
|
uint16_t pcs_connect_error :1;
|
||
|
|
||
|
//CCM硬允许状态
|
||
|
uint16_t ccm_hard_enable :1;
|
||
|
|
||
|
//CCM主备机状态
|
||
|
uint16_t ccm_is_host :1;
|
||
|
|
||
|
//CCS使能状态
|
||
|
uint16_t ccs_enable :1;
|
||
|
|
||
|
//CCS就绪状态
|
||
|
uint16_t ccs_is_ready :1;
|
||
|
|
||
|
//EAU有DI断开
|
||
|
uint16_t eau_di_cut :1;
|
||
|
|
||
|
uint16_t bak :4;
|
||
|
}Bits;
|
||
|
}uSysStatus;
|
||
|
|
||
|
typedef enum __TASK_STATUS__ {
|
||
|
T_NONE = 0,
|
||
|
T_EMS,
|
||
|
T_FFR,
|
||
|
T_FVR,
|
||
|
T_FPU,
|
||
|
T_EXIT
|
||
|
}eTaskStatus;
|
||
|
|
||
|
|
||
|
typedef struct __ECAT_DATA__ {
|
||
|
|
||
|
sCCSConfig cfg ;
|
||
|
|
||
|
int ptct ;
|
||
|
|
||
|
//STM32
|
||
|
uint16_t another_heart ;
|
||
|
|
||
|
uint16_t ccm_mode ;
|
||
|
uint16_t ccm_type ;
|
||
|
|
||
|
uCCMEnable enable ;
|
||
|
|
||
|
uint16_t fpu_signal_mask ;
|
||
|
|
||
|
uSysStatus sys_status;
|
||
|
uSysEnable sys_enable;
|
||
|
|
||
|
int32_t t_pcs_active_power;
|
||
|
int32_t t_pcs_reactive_power;
|
||
|
int32_t t_pcs_active_power_cmd;
|
||
|
int32_t t_pcs_reactive_power_cmd;
|
||
|
|
||
|
eTaskStatus task_status;
|
||
|
|
||
|
uint16_t pcc_mode[PCC_NUM_MAX];
|
||
|
|
||
|
NetNode netNode[SLAVE_NUM_MAX] ;
|
||
|
|
||
|
sPCC *pccHead ;
|
||
|
|
||
|
uint16_t pccIndex ;
|
||
|
sPCC *pccArray[16] ;
|
||
|
|
||
|
uint16_t eauIndex ;
|
||
|
sEAU *eauArray[16] ;
|
||
|
|
||
|
uint16_t ccuIndex ;
|
||
|
sCCU *ccuArray[64] ;
|
||
|
|
||
|
}sECatData;
|
||
|
|
||
|
typedef struct __RESET_TASK_ {
|
||
|
int timeout;
|
||
|
uint32_t timestart;
|
||
|
bool enable;
|
||
|
}sResetNode;
|
||
|
|
||
|
|
||
|
class ECatMain{
|
||
|
|
||
|
public :
|
||
|
ECatMain() ;
|
||
|
~ECatMain() ;
|
||
|
|
||
|
int loadConfig(const char *xml);
|
||
|
|
||
|
sECatData *getData(void);
|
||
|
sEAU *getEAUByAddress(int para_addr);
|
||
|
sCCU *getCCUByAddress(int para_addr);
|
||
|
|
||
|
private :
|
||
|
sECatData mData ;
|
||
|
|
||
|
|
||
|
};
|
||
|
|
||
|
#endif
|
||
|
|
||
|
|