9ceb218f80
Co-authored-by: Cursor <cursoragent@cursor.com>
123 lines
5.6 KiB
C
123 lines
5.6 KiB
C
|
||
#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 */
|