Files
CCU621M/app/mdu_comm/mdu_uuln_comm.h
T

123 lines
5.6 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#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 11000V 2500V
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 11000V )
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; // 监控地址 地址设定在 0x010x0F,默认 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 */