#ifndef MDU_YYLN_COMM_H #define MDU_YYLN_COMM_H #ifdef __cplusplus /*C++编译环境下兼容C语言*/ extern "C" { #endif /*------ Exported includes(头文件) ----------------------*/ #include "main.h" #include "publicdata/public_define.h" /*------ Exported macro(宏定义) -------------------------*/ #define D_MDU_UULN_VER (0x01) //协议号 0x01 表示整流模块与监控之间的通讯协议号 #define FAULT_MASK 0xB035FBFF // 定义故障掩码:所有故障点位为1,非故障点位为0 /*------ Exported struct(结构体定义) --------------------*/ typedef enum { E_MAG_TYPE_SET_PARA = 0, // 0x00 设置模块参数 E_MAG_TYPE_SET_ACK, // 0x01 模块设置应答 E_MAG_TYPE_READ_DATA, // 0x02 读模块信息 E_MAG_TYPE_READ_ACK, // 0x03 模块读信息应答 E_MAG_TYPE_READ_SERIAL, // 0x04 模块读序列号应答 }E_UULN_MAG_TYPE; typedef enum { E_MODULE_OUTPUT_VOLTAGE = 0, // 0x00 模块输出电压 R N E_MODULE_OUTPUT_CURRENT, // 0x01 模块输出电流 R N E_MODULE_VOLTAGE_SETPOINT, // 0x02 模块输出电压设定值 R/W N E_MODULE_CURRENT_LIMIT_SETPOINT, // 0x03 模块输出限流点设定值 R/W N E_DCDC_MODULE_POWER_CONTROL, // 0x04 DCDC模块开关机 W N 模块开关机(0 开机,1 关机) E_MODULE_SERIAL_NUMBER, // 0x05 读取模块序列号 R Y E_MODULE_STATUS_FLAGS = 8, // 0x08 模块状态标志位 R N E_LINE_VOLTAGE_AB = 20, // 0x14 线电压AB R N E_LINE_VOLTAGE_BC, // 0x15 线电压BC R N E_LINE_VOLTAGE_CA, // 0x16 线电压CA R N E_INLET_AIR_TEMPERATURE = 30, // 0x1E 进风口温度 R N E_GROUP_ADDRESS = 89, // 0x59 组地址 R/W Y E_MODULE_HIGH_LOW_VOLTAGE_MODE = 95,// 0x5F 模块高低压模式 W Y (1:1000V 2:500V ) E_MODULE_HIGH_LOW_VOLTAGE_STATUS, // 0x60 读取模块高低压模式状态 R N E_MODULE_OUTPUT_CURRENT_CAPABILITY = 104, // 0x68 读取模块输出电流能力 R N E_MODULE_CURRENT_AND_CAPABILITY = 114, // 0x72 读取模块输出电流和输出电流能力 R N 单位:0.1A(高十六位:模块的实际输出电流,低十六位:实际的电流能力) }E_UULN_CMD_TYPE; //type 1 typedef enum { E_TrueHiLo_H = 1, //模块高低压模式 W Y (1:1000V ) E_TrueHiLo_L //模块高低压模式 W Y (2:500V ) }E_TrueHiLo_Status; typedef union { U32_T u32_ID; struct { U32_T SerialNumberLowPart : 9; // 产品序列号低位(默认填 0)。 U32_T ProductionDay : 5; // 产品生产日期(01-31)。 U32_T ModuleAddres : 7; // 整流模块地址 为整流模块地址,地址确定在 0x01-0x7F。 0x00:代表广播通信 U32_T MonitorAddress : 4; // 监控地址 地址设定在 0x01~0x0F,默认 0x01 0x00:代表广播通信 U32_T Protocol : 4; // 协议号 0x01 表示整流模块与监控之间的通讯协议号 U32_T res : 3; }bit; }U_UULN_CAN_ID_TYPE; typedef union { U8_T u8_data; struct { U8_T MessageType : 4; // 信息类型 详看枚举 E_UULN_MAG_TYPE U8_T GroupAddress : 4; // 组地址 组地址范围为 0x01~0x0F,0x00 为广播通信; }bit; }U_UULN_DATA1_TYPE; typedef union { U32_T all; struct MODULE_STATUS_BITS { U32_T AcOV:1; // 0 交流输入过压 U32_T AcUV:1; // 1 交流输入欠压 U32_T AcOVDisconnected:1; // 2 交流输入过压脱离 U32_T PfcOV:1; // 3 PFC母线过压 U32_T PfcUV:1; // 4 PFC母线欠压 U32_T PfcUnbalance:1; // 5 PFC母线不平衡 U32_T DcOV:1; // 6 直流输出过压 U32_T DcOVShutDown:1; // 7 直流输出过压关机 U32_T DcUV:1; // 8 直流输出欠压 U32_T FanNotRun:1; // 9 风扇故障 U32_T Reserved_10:1; // 10 保留 U32_T FanDriverFail:1; // 11 风扇电压驱动电路损坏 U32_T AmbientOT:1; // 12 环境温度过温保护 U32_T AmbientUT:1; // 13 环境温度过低 U32_T Pfc1_OT:1; // 14 PFC过温保护1 U32_T OutputRelayFault:1; // 15 输出继电器故障 U32_T Dcdc1_OT:1; // 16 DC过温保护1 U32_T Reserved_17:1; // 17 保留 U32_T SciIsNotOK:1; // 18 原副边通信故障 U32_T Reserved_19:1; // 19 保留 U32_T PfcFail:1; // 20 原边故障 U32_T DcdcFail:1; // 21 副边故障 U32_T Reserved_22:1; // 22 保留 U32_T Reserved_23:1; // 23 保留 U32_T Reserved_24:1; // 24 保留 U32_T DcdcNotRun:1; // 25 开关机状态 U32_T OutputMode:2; // 26:27 输出环路状态 U32_T DcVoltageUnbalance:1; // 28 DC输出电压不平衡 U32_T GetSameSN:1; // 29 发现相同序列号的模块 U32_T Reserved_30:1; // 30 保留 U32_T BleederNotWork:1; // 31 泄放电路损坏 }bit; }U_UULN_MDU_STATUS; /*------ Exported variables(变量定义) -------------------*/ /*------ Exported function prototypes (函数声明) -------*/ void v_mdu_comm_uuln_action(U16_T u16_leep_time); #ifdef __cplusplus } #endif #endif /* MDU_YYLN_COMM_H */