forked from gary/ems
2
0
Fork 0
sun_ems/ems_c/bsp/bsp_data_mode.h

812 lines
40 KiB
C
Raw Normal View History

2025-05-13 17:49:49 +08:00
/*
* @Author: Err: Err: git config user.name & please set dead value or install git && Err: git config user.email & please set dead value or install git & please set dead value or install git
* @Date: 2024-09-03 16:49:03
* @LastEditors: Err: Err: git config user.name & please set dead value or install git && Err: git config user.email & please set dead value or install git & please set dead value or install git
* @LastEditTime: 2024-09-06 14:09:00
* @FilePath: /_kEms_C_V1.0.0/bsp/bsp_data_mode.h
* @Description: ,`customMade`, koroFileHeader查看配置 : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
/*****************************************************************************
2025-05-24 17:16:28 +08:00
* @copyright Copyright (c) 2025-2055 Gary. All rights reserved.
2025-05-13 17:49:49 +08:00
* @file bsp_data_mode.h
* @brief
* @author Gary
* @date 2024-09-03
* @remark
*****************************************************************************/
#ifndef BSP_DATA_MODE_H
#define BSP_DATA_MODE_H
#include <stdio.h>
#include <string.h>
#include <stdint.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdbool.h>
#include "kit_data.h"
#include "bsp_comm.h"
#define DEV_IS_USE 0 /*所有设备是否启用,属于设备的第一个点*/
2025-05-24 17:16:28 +08:00
#define DEV_IS_ONLINE 0 /*所有设备是否离线,属于设备的第一个点*/
2025-05-13 17:49:49 +08:00
typedef struct
{
uint16_t devNum;
uint16_t devPointNum;
} devModeAttr_t;
// 接入EMS的所有设备类型数量-用数据替换方便获取
extern uint16_t gStDevTypeNum[kDev_Type_End];
extern uint16_t gStDevTypePointNum[kDev_Type_End];
extern devModeAttr_t gStModeInfo[kDev_Type_End];
//-------------------------本机信息------------------------------
typedef enum
{
kEms_Start = 0, // 开始
2025-05-24 17:16:28 +08:00
kEms_SysFaultLed = kEms_Start, // 本机硬件故障
kEms_CpuTotalUsage, // CPU总利用率
kEms_ProcessCpuUsage, // 当前进程CPU占用
kEms_MemTotalSize, // 内存总大小
kEms_MemUsageRate, // 内存占用率
kEms_ProcessMemUsage, // 当前进程内存占用
kEms_netStatus, // 网络状态 1:连接外网0:未连接外网
kEms_RunHeartCount, // 运行心跳 自增
2025-05-13 17:49:49 +08:00
kEms_Di_Start, // DI开始
kEms_Di1 = kEms_Di_Start, // DI1信号
kEms_Di40 = kEms_Di_Start + 39, // DI40信号
kEms_Di_End, // DI结束
kEms_Do_Start = kEms_Di_End, // DO信号起始
kEms_Do1 = kEms_Do_Start, // DO1输出
kEms_Do39 = kEms_Do_Start + 39, // DO40输出
kEms_Do_End, // DO信号结束
2025-05-24 17:16:28 +08:00
kEms_Rererve_Start = kEms_Do_End, // 控制预留开始
kEms_Rv1 = kEms_Rererve_Start + 9, // 预留测点
kEms_Rererve_End, // 控制预留结束
2025-05-13 17:49:49 +08:00
/*设备数量需要入库----切记此索引不能改变同时用于web*/
2025-05-24 17:16:28 +08:00
kEms_DevNumStart = kEms_Rererve_End,
2025-05-13 17:49:49 +08:00
kEms_EmsNum = kEms_DevNumStart, // EMS本机数量
kEms_PccmeterNum, // PCC电表数量
kEms_BsmeterNum, // 储能电表数量
kEms_BSUNum, // 电池堆数量
kEms_BCUNum, // 电池簇数量
2025-05-24 17:16:28 +08:00
kEms_PCSNum, // PCS 数量数量
kEms_AirCondNum, // 空调/液冷机组数量
2025-05-13 17:49:49 +08:00
kEms_ThsensorNum, // 温湿度传感器数量
2025-05-24 17:16:28 +08:00
kEms_WaterThsenorNum, // 水浸数量
kEms_YGThsenorNum, // 烟感
kEms_XfxtNum, // 消防系统
2025-05-13 17:49:49 +08:00
kEms_DI_Num, // DI/DO设备设备数量
kEms_UPSNum, // UPS设备数量
kEms_Rv1Num, // 预留设备类型1数量
kEms_Rv2Num, // 预留设备类型2数量
kEms_Rv3Num, // 预留设备类型3数量
kEms_Rv4Num, // 预留设备类型4数量
kEms_DevNumEnd,
/*添加预留即可*/
kEms_Reserve_Start = kEms_DevNumEnd, // 控制预留开始
kEms_Rv6Num = kEms_Reserve_Start, // 预留设备类型1数量
kEms_Rv7Num, // 预留设备类型2数量
kEms_Rv8Num, // 预留设备类型3数量
kEms_Rv9Num, // 预留设备类型4数量
kEms_Rv10Num, // 预留设备类型5数量
kEms_LogicMode, // 运行模式 work_mode_e
kEms_RunState, // 运行状态 state_e
kEms_Reserve_End = kEms_Reserve_Start + 32,
kEms_CtrlEnable, // 控制详细日志打印开关 0:日志输出不使能1:日志输出使能
// 预留2段控制预留1~99起始
kEms_Reserve2_Start, // 控制预留1~99起始
kEms_TcpLog_Enable = kEms_Reserve2_Start, // 网口通讯报文日志开关
kEms_UartLog_Enable, // 串口通讯报文日志开关
kEms_ModBusLog_Enable, // modbus通讯点位日志开关
kEms_LogicLog_Enable, // 保护日志开关
kEms_MqttLog_Enable, // MQTT日志开关
2025-05-24 17:16:28 +08:00
kEms_Reserve2_End = kEms_Reserve2_Start + 50,
2025-05-13 17:49:49 +08:00
kEms_DataEnd,
} devEms_E;
//-------------------------PCC电表------------------------------
typedef enum
{
kPCC_Start = 0, // 开始
kPCC_IsOnline = DEV_IS_ONLINE, // 设备是否在线
kPCC_VoltA, // A相电压 (精度: 0.1V)
kPCC_VoltB, // B相电压 (精度: 0.1V)
kPCC_VoltC, // C相电压 (精度: 0.1V)
kPCC_VoltAB, // AB线电压 (精度: 0.1V)
kPCC_VoltBC, // BC线电压 (精度: 0.1V)
kPCC_VoltCA, // CA线电压 (精度: 0.1V)
kPCC_CurA, // A相电流 (精度: 0.1A)
kPCC_CurB, // B相电流 (精度: 0.1A)
kPCC_CurC, // C相电流 (精度: 0.1A)
kPCC_ActivePwrA, // A相有功功率 (精度: 0.1kW)
kPCC_ActivePwrB, // B相有功功率 (精度: 0.1kW)
kPCC_ActivePwrC, // C相有功功率 (精度: 0.1kW)
kPCC_TotalActivePwr, // 总有功功率 (精度: 0.1kW)
kPCC_ReactivePwrA, // A相无功功率 (精度: 0.1kVar)
kPCC_ReactivePwrB, // B相无功功率 (精度: 0.1kVar)
kPCC_ReactivePwrC, // C相无功功率 (精度: 0.1kVar)
kPCC_TotalReactivePwr, // 总无功功率 (精度: 0.1kVar)
kPCC_ApparentPwrA, // A相视在功率 (精度: 0.1kVA)
kPCC_ApparentPwrB, // B相视在功率 (精度: 0.1kVA)
kPCC_ApparentPwrC, // C相视在功率 (精度: 0.1kVA)
kPCC_TotalApparentPwr, // 总视在功率 (精度: 0.1kVA)
kPCC_PwrFactorA, // A相功率因数 (精度: 0.001)
kPCC_PwrFactorB, // B相功率因数 (精度: 0.001)
kPCC_PwrFactorC, // C相功率因数 (精度: 0.001)
kPCC_TotalPwrFactor, // 总功率因数 (精度: 0.001)
kPCC_Frequency, // 电网频率 (精度: 0.01Hz)
kPCC_VoltTransformerRatio, // 电压互感比 (精度: 0.01)
kPCC_CurTransformerRatio, // 电流互感比 (精度: 0.01)
kPCC_ActiveENFwd, // 正向有功电度 (精度: 1kWh)
kPCC_ActiveENRvs, // 反向有功电度 (精度: 1kWh)
kPCC_ReactiveENFwd, // 正向无功电度 (精度: 1kVar)
kPCC_ReactiveENRvs, // 反向无功电度 (精度: 1kVar)
kPCC_ActiveENFwdVertex, // 尖正向有功电度 (精度: 1kWh)
kPCC_ActiveENRvsVertex, // 尖反向有功电度 (精度: 1kWh)
kPCC_ActiveENFwdPeak, // 峰正向有功电度 (精度: 1kWh)
kPCC_ActiveENRvsPeak, // 峰反向有功电度 (精度: 1kWh)
kPCC_ActiveENFwdsteady, // 平正向有功电度 (精度: 1kWh)
kPCC_ActiveENRvssteady, // 平反向有功电度 (精度: 1kWh)
kPCC_ActiveENFwdValley, // 谷正向有功电度 (精度: 1kWh)
kPCC_ActiveENRvsValley, // 谷反向有功电度 (精度: 1kWh)
kPCC_MaxDemandActiveFwd, // 当月正向有功最大需量 (精度: 0.1kW)
kPCC_MaxDemandActiveRvs, // 当月反向有功最大需量 (精度: 0.1kW)
/* 预留20个点位 */
kPCC_Reserve_Start, //
kPCC_Reserve1 = kPCC_Reserve_Start, // 预留
2025-05-24 17:16:28 +08:00
kPCC_Reserve16 = kPCC_Reserve1 + 17, // 预留
2025-05-13 17:49:49 +08:00
kPCC_Reserve_End, // 预留结束
kPccMeter_DataEnd = kPCC_Reserve_End // 数据结束
} devPCC_E;
//-------------------------储能电表------------------------------
typedef enum
{
kBs_Start = 0, // 开始
kBs_IsOnline = DEV_IS_ONLINE, // 设备是否在线
kBs_VoltA, // A相电压 (精度: 0.1V)
kBs_VoltB, // B相电压 (精度: 0.1V)
kBs_VoltC, // C相电压 (精度: 0.1V)
kBs_VoltAB, // AB线电压 (精度: 0.1V)
kBs_VoltBC, // BC线电压 (精度: 0.1V)
kBs_VoltCA, // CA线电压 (精度: 0.1V)
kBs_CurA, // A相电流 (精度: 0.1A)
kBs_CurB, // B相电流 (精度: 0.1A)
kBs_CurC, // C相电流 (精度: 0.1A)
kBs_ActivePwrA, // A相有功功率 (精度: 0.1kW)
kBs_ActivePwrB, // B相有功功率 (精度: 0.1kW)
kBs_ActivePwrC, // C相有功功率 (精度: 0.1kW)
kBs_TotalActivePwr, // 总有功功率 (精度: 0.1kW)
kBs_ReactivePwrA, // A相无功功率 (精度: 0.1kVar)
kBs_ReactivePwrB, // B相无功功率 (精度: 0.1kVar)
kBs_ReactivePwrC, // C相无功功率 (精度: 0.1kVar)
kBs_TotalReactivePwr, // 总无功功率 (精度: 0.1kVar)
kBs_ApparentPwrA, // A相视在功率 (精度: 0.1kVA)
kBs_ApparentPwrB, // B相视在功率 (精度: 0.1kVA)
kBs_ApparentPwrC, // C相视在功率 (精度: 0.1kVA)
kBs_TotalApparentPwr, // 总视在功率 (精度: 0.1kVA)
kBs_PwrFactorA, // A相功率因数 (精度: 0.001)
kBs_PwrFactorB, // B相功率因数 (精度: 0.001)
kBs_PwrFactorC, // C相功率因数 (精度: 0.001)
kBs_TotalPwrFactor, // 总功率因数 (精度: 0.001)
kBs_Frequency, // 电网频率 (精度: 0.01Hz)
kBs_VoltTransformerRatio, // 电压互感比 (精度: 0.01)
kBs_CurTransformerRatio, // 电流互感比 (精度: 0.01)
kBs_ActiveENFwd, // 正向有功电度 (精度: 1kWh)
kBs_ActiveENRvs, // 反向有功电度 (精度: 1kWh)
kBs_ReactiveENFwd, // 正向无功电度 (精度: 1kVar)
kBs_ReactiveENRvs, // 反向无功电度 (精度: 1kVar)
kBs_ActiveENFwdVertex, // 尖正向有功电度 (精度: 1kWh)
kBs_ActiveENRvsVertex, // 尖反向有功电度 (精度: 1kWh)
kBs_ActiveENFwdPeak, // 峰正向有功电度 (精度: 1kWh)
kBs_ActiveENRvsPeak, // 峰反向有功电度 (精度: 1kWh)
kBs_ActiveENFwdsteady, // 平正向有功电度 (精度: 1kWh)
kBs_ActiveENRvssteady, // 平反向有功电度 (精度: 1kWh)
kBs_ActiveENFwdValley, // 谷正向有功电度 (精度: 1kWh)
kBs_ActiveENRvsValley, // 谷反向有功电度 (精度: 1kWh)
kBs_MaxDemandActiveFwd, // 当月正向有功最大需量 (精度: 0.1kW)
kBs_MaxDemandActiveRvs, // 当月反向有功最大需量 (精度: 0.1kW)
/* 预留20个点位 */
kBs_Reserve_Start, // Adjust 'previousEnumValue_End' to the last value from your preceding enumeration
kBs_Reserve1 = kBs_Reserve_Start, // 预留1
2025-05-24 17:16:28 +08:00
kBs_Reserve18 = kBs_Reserve1 + 17, // 预留16
2025-05-13 17:49:49 +08:00
kBs_Reserve_End, // 预留结束
kBsMeter_DataEnd = kBs_Reserve_End // 数据结束
} devBsMeter_E;
//-------------------------BSU堆------------------------------
typedef enum
{
2025-05-24 17:16:28 +08:00
kBsu_IsOnline = DEV_IS_ONLINE, ///< 设备在线 kBs_IsOnline = DEV_IS_ONLINE, // 设备是否在线
kBsu_TotalAlarm, // 总告警
kBsu_TotalFault, // 总故障
kBsu_SysVolt, ///< 总压
kBsu_SysCur, ///< 总电流
kBsu_SOC, ///< SOC (State of Charge)
kBsu_SOH, ///< SOH (State of Health)
kBsu_SOE, ///< SOE (State of Energy)
kBsu_RatedTotalVoltage, ///< 额定总压
kBsu_RatedCapacity, ///< 额定容量 (Ah)
kBsu_RemainingCapacity, ///< 剩余容量 (Ah)
kBsu_RatedEnergy, ///< 额定电量 (kWh)
kBsu_RemainingEnergy, ///< 剩余电量 (kWh)
kBsu_TotalSlaveDevices, ///< 从机总数 (BMU)
kBsu_OnlineSlaveDevices, ///< 在线从机总数 (BMU)
kBsu_TotalBatteryCells, ///< 电池总数
kBsu_OnlineBatteryCells, ///< 在线电池总数
kBsu_TotalTempSensors, ///< 温感总数
kBsu_OnlineTempSensors, ///< 在线温感总数
kBsu_MaxAllowedDischargeCurrent, ///< 最大允许放电电流 (A)
kBsu_MaxAllowedDischargePower, ///< 最大允许放电功率 (kW)
kBsu_MaxAllowedChargeCurrent, ///< 最大允许充电电流 (A)
kBsu_MaxAllowedChargePower, ///< 最大允许充电功率 (kW)
kBsu_PositiveInsulationRes, ///< 正极绝缘阻值 (Ω)
kBsu_NegativeInsulationRes, ///< 负极绝缘阻值 (Ω)
kBsu_CellAvgVoltage, ///< 单体平均电压 (V)
kBsu_CellMaxVoltageDiff, ///< 单体最大压差 (V)
kBsu_CellMaxVoltage, ///< 最高单体电压 (V)
kBsu_CellMaxVoltageSlaveId, ///< 最高单体电压从机号
kBsu_CellMaxVoltageCellId, ///< 最高单体电压编号
kBsu_CellMinVoltage, ///< 最低单体电压 (V)
kBsu_CellMinVoltageSlaveId, ///< 最低单体电压从机号
kBsu_CellMinVoltageCellId, ///< 最低单体电压编号
kBsu_CellAvgTemperature, ///< 单体平均温度 (°C)
kBsu_CellMaxTemperatureDiff, ///< 最大温差 (°C)
kBsu_MaxCellTemp, ///< 最高单体温度 (°C)
kBsu_CellMaxTempSlaveId, ///< 最高单体温度从机号
kBsu_CellMaxTempCellId, ///< 最高单体温度编号
kBsu_MinCellTemp, ///< 最低单体温度 (°C)
kBsu_CellMinTempSlaveId, ///< 最低单体温度从机号
kBsu_CellMinTempCellId, ///< 最低单体温度编号
kBsu_DailyChargeCapacity, ///< 日充电容量 (Ah)
kBsu_DailyChargeEnergy, ///< 日充电电量 (kWh)
kBsu_DailyDischargeCapacity, ///< 日放电容量 (Ah)
kBsu_DailyDischargeEnergy, ///< 日放电电量 (kWh)
kBsu_DailyChargeTime, ///< 日充电时间 (s)
kBsu_DailyDischargeTime, ///< 日放电时间 (s)
kBsu_TotalChargeCapacity, ///< 累计充电容量 (Ah)
kBsu_TotalChgE, ///< 累计充电电量 (kWh)
kBsu_TotalDChgE, ///< 累计放电容量 (Ah)
kBsu_TotalDischargeEnergy, ///< 累计放电电量 (kWh)
kBsu_Reverse_Start, ///< 预留开始
kBsu_Reserve = kBsu_Reverse_Start + 48, ///< 预留1
2025-05-13 17:49:49 +08:00
kBsu_DataEnd
} devBsu_E;
//-------------------------电池簇BCU------------------------------
typedef enum
{
kBcu_Start = 0, // 开始
kBcu_IsOnline = DEV_IS_ONLINE, // 设备是否在线
2025-05-24 17:16:28 +08:00
kBcu_pointid1 = 1, ///< 设备在线
kBcu_TotalAlarm = 2, ///< 总告警
kBcu_TotalFault = 3, ///< 总故障
/*----- 一级告警 (4-13) -----*/
kBcu_CellOverVoltageAlarm1 = 4, ///< 单体过压告警一级
kBcu_CellUnderVoltageAlarm1 = 5, ///< 单体欠压告警一级
kBcu_CellOverTempAlarm1 = 6, ///< 单体过温告警一级
kBcu_CellLowTempAlarm1 = 7, ///< 单体低温告警一级
kBcu_CellVoltageDiffAlarm1 = 8, ///< 单体压差告警一级
kBcu_ChargeOverCurrentAlarm1 = 9, ///< 充电过流告警一级
kBcu_DischargeOverCurrentAlarm1 = 10, ///< 放电过流告警一级
kBcu_SOCLowAlarm1 = 11, ///< SOC过低告警一级
kBcu_SOCDiffAlarm1 = 12, ///< SOC差异过大告警一级
kBcu_InsulationLowAlarm1 = 13, ///< 绝缘过低告警一级
/*----- 二级告警 (14-23) -----*/
kBcu_CellOverVoltageAlarm2 = 14, ///< 单体过压告警二级
kBcu_CellUnderVoltageAlarm2 = 15, ///< 单体欠压告警二级
kBcu_CellOverTempAlarm2 = 16, ///< 单体过温告警二级
kBcu_CellLowTempAlarm2 = 17, ///< 单体低温告警二级
kBcu_CellVoltageDiffAlarm2 = 18, ///< 单体压差告警二级
kBcu_ChargeOverCurrentAlarm2 = 19, ///< 充电过流告警二级
kBcu_DischargeOverCurrentAlarm2 = 20, ///< 放电过流告警二级
kBcu_SOCLowAlarm2 = 21, ///< SOC过低告警二级
kBcu_SOCDiffAlarm2 = 22, ///< SOC差异过大告警二级
kBcu_InsulationLowAlarm2 = 23, ///< 绝缘过低告警二级
/*----- 三级告警 (24-33) -----*/
kBcu_CellOverVoltageAlarm3 = 24, ///< 单体过压告警三级
kBcu_CellUnderVoltageAlarm3 = 25, ///< 单体欠压告警三级
kBcu_CellOverTempAlarm3 = 26, ///< 单体过温告警三级
kBcu_CellLowTempAlarm3 = 27, ///< 单体低温告警三级
kBcu_CellVoltageDiffAlarm3 = 28, ///< 单体压差告警三级
kBcu_ChargeOverCurrentAlarm3 = 29, ///< 充电过流告警三级
kBcu_DischargeOverCurrentAlarm3 = 30, ///< 放电过流告警三级
kBcu_SOCLowAlarm3 = 31, ///< SOC过低告警三级
kBcu_SOCDiffAlarm3 = 32, ///< SOC差异过大告警三级
kBcu_InsulationLowAlarm3 = 33, ///< 绝缘过低告警三级
/*----- 特殊告警 (34-54) -----*/
kBcu_CellTempLimitAlarm = 34, ///< 电芯温度极限告警
kBcu_CellVoltageLimitAlarm = 35, ///< 电芯电压极限告警
kBcu_ClusterCurrent1Alarm = 36, ///< 簇间环流1级告警
kBcu_ClusterCurrent2Alarm = 37, ///< 簇间环流2级告警
kBcu_ClusterCurrent3Alarm = 38, ///< 簇间环流3级告警
kBcu_ClusterCurrentDiff1Alarm = 39, ///< 簇间电流差1级告警
kBcu_ClusterCurrentDiff2Alarm = 40, ///< 簇间电流差2级告警
kBcu_ClusterCurrentDiff3Alarm = 41, ///< 簇间电流差3级告警
kBcu_PackOverVoltage1Alarm = 42, ///< 组端过压1级告警
kBcu_PackOverVoltage2Alarm = 43, ///< 组端过压2级告警
kBcu_PackOverVoltage3Alarm = 44, ///< 组端过压3级告警
kBcu_PackUnderVoltage1Alarm = 45, ///< 组端欠压1级告警
kBcu_PackUnderVoltage2Alarm = 46, ///< 组端欠压2级告警
kBcu_PackUnderVoltage3Alarm = 47, ///< 组端欠压3级告警
kBcu_TerminalOverTemp1Alarm = 48, ///< 极柱过温1级告警
kBcu_TerminalOverTemp2Alarm = 49, ///< 极柱过温2级告警
kBcu_TerminalOverTemp3Alarm = 50, ///< 极柱过温3级告警
kBcu_AFETempWireFault = 51, ///< AFE温感排线异常
kBcu_AFEVoltageWireFault = 52, ///< AFE电压排线异常
kBcu_ClusterCommAlarm = 53, ///< 与电池簇通信告警
kBcu_MasterSlaveCommAlarm = 54, ///< 主从通讯告警
/*----- 硬件故障 (55-69) -----*/
kBcu_FuseFault = 55, ///< 熔丝故障
kBcu_CircuitBreakerFault = 56, ///< 断路器故障
kBcu_AirConditionerFault = 57, ///< 空调故障
kBcu_FireEquipmentFault = 58, ///< 消防设备故障
kBcu_FireAlarm = 59, ///< 消防火警
kBcu_FireSprinkler = 60, ///< 消防喷洒
kBcu_AFEFault = 61, ///< AFE故障
kBcu_HighVoltageAbnormal = 62, ///< 高压异常
kBcu_PrechargeAlarm = 63, ///< 预充告警
kBcu_OpenCircuitFault = 64, ///< 开路故障
kBcu_RelayStickAlarm = 65, ///< 继电器粘连告警
kBcu_BatteryLimitFault = 66, ///< 电池极限故障
kBcu_PrechargeRelayStatus = 67, ///< 预充继电器状态
kBcu_PositiveRelayStatus = 68, ///< 总正继电器状态
kBcu_NegativeRelayStatus = 69, ///< 总负继电器状态
/*----- 预留扩展 (70-100) -----*/
kBcu_ReservedAlarmStart = 70, ///< 告警+状态保留起始
kBcu_ReservedAlarmEnd = 100, ///< 告警+状态保留结束
/*----- 电池数据 (101-150) -----*/
kBcu_TotalVolt = 101, ///< 总压
kBcu_TotalCur = 102, ///< 总电流
kBcu_SOC = 103, ///< SOC
kBcu_SOH = 104, ///< SOH
kBcu_SOE = 105, ///< SOE
kBcu_RatedTotalVoltage = 106, ///< 额定总压
kBcu_RatedCapacity = 107, ///< 额定容量
kBcu_RemainingCapacity = 108, ///< 剩余容量
kBcu_RatedEnergy = 109, ///< 额定电量
kBcu_RemainingEnergy = 110, ///< 剩余电量
kBcu_TotalSlaveDevices = 111, ///< 从机总数(BMU)
kBcu_OnlineSlaveDevices = 112, ///< 在线从机总数(BMU)
kBcu_TotalBatteryCells = 113, ///< 电池总数
kBcu_OnlineBatteryCells = 114, ///< 在线电池总数
kBcu_TotalTempSensors = 115, ///< 温感总数
kBcu_OnlineTempSensors = 116, ///< 在线温感总数
kBcu_MaxAllowedDischargeCurrent = 117, ///< 最大允许放电电流
kBcu_MaxAllowedDischargePower = 118, ///< 最大允许放电功率
kBcu_MaxAllowedChargeCurrent = 119, ///< 最大允许充电电流
kBcu_MaxAllowedChargePower = 120, ///< 最大允许充电功率
kBcu_PositiveInsulationRes = 121, ///< 正极绝缘阻值
kBcu_NegativeInsulationRes = 122, ///< 负极绝缘阻值
kBcu_CellAvgVoltage = 123, ///< 单体平均电压
kBcu_CellMaxVoltageDiff = 124, ///< 单体最大压差
kBcu_CellMaxVoltage = 125, ///< 最高单体电压
kBcu_CellMaxVoltageSlaveId = 126, ///< 最高单体电压从机号
kBcu_CellMaxVoltageCellId = 127, ///< 最高单体电压编号
kBcu_CellMinVoltage = 128, ///< 最低单体电压
kBcu_CellMinVoltageSlaveId = 129, ///< 最低单体电压从机号
kBcu_CellMinVoltageCellId = 130, ///< 最低单体电压编号
kBcu_CellAvgTemperature = 131, ///< 单体平均温度
kBcu_CellMaxTemperatureDiff = 132, ///< 最大温差
kBcu_MaxCellTemp = 133, ///< 最高单体温度
kBcu_CellMaxTempSlaveId = 134, ///< 最高单体温度从机号
kBcu_CellMaxTempCellId = 135, ///< 最高单体温度编号
kBcu_MinCellTemp = 136, ///< 最低单体温度
kBcu_CellMinTempSlaveId = 137, ///< 最低单体温度从机号
kBcu_CellMinTempCellId = 138, ///< 最低单体温度编号
kBcu_DailyChargeCapacity = 139, ///< 日充电容量
kBcu_DailyChargeEnergy = 140, ///< 日充电电量
kBcu_DailyDischargeCapacity = 141, ///< 日放电容量
kBcu_DailyDischargeEnergy = 142, ///< 日放电电量
kBcu_DailyChargeTime = 143, ///< 日充电时间
kBcu_DailyDischargeTime = 144, ///< 日放电时间
kBcu_TotalChargeCapacity = 145, ///< 累计充电容量
kBcu_TotalChgCap = 146, ///< 累计充电电量
kBcu_TotalDischargeCapacity = 147, ///< 累计放电容量
kBcu_TotalDisChgCap = 148, ///< 累计放电电量
kBcu_TotalChargeTime = 149, ///< 累计充电时间
kBcu_TotalDischargeTime = 150, ///< 累计放电时间
/*----- 系统状态 (151-160) -----*/
kBcu_BCUWorkStatus = 151, ///< BCU工作状态
kBcu_FaultWord1 = 152, ///< 故障字1
kBcu_FaultWord2 = 153, ///< 故障字2
kBcu_FaultWord3 = 154, ///< 故障字3
kBcu_FaultWord4 = 155, ///< 故障字4
kBcu_FaultWord5 = 156, ///< 故障字5
kBcu_FaultWord6 = 157, ///< 故障字6
kBcu_FaultWord7 = 158, ///< 故障字7
kBcu_FaultWord8 = 159, ///< 故障字8
kBcu_FaultWord9 = 160, ///< 故障字9
/*----- PACK均衡状态 (161-190) -----*/
kBcu_Pack1BalanceStatus = 161, ///< 1#PACK均衡状态
kBcu_Pack30BalanceStatus = 190, ///< 30#PACK均衡状态
/*----- 电池电压 (191-610) -----*/
kBcu_Cell1Voltage = 191, ///< 1号电池电压
kBcu_Cell420Voltage = 610, ///< 420号电池电压
/*----- 电池温度 (611-810) -----*/
kBcu_Cell1Temperature = 611, ///< 1号电池温度
kBcu_Cell200Temperature = 810, ///< 200号电池温度
/*----- 预留段 (811-1000) -----*/
kBcu_ReservedDataStart = 811, ///< 预留数据起始
kBcu_ReservedDataEnd = 1000, ///< 预留数据结束
/*----- 控制指令 (1001+) -----*/
kBcu_HighVoltageShutdownCmd = 1001, ///< 高压下电指令
/*----- 阈值及参数预留 (1002-1999) -----*/
kBcu_ReservedParamStart = 1002, ///< 预留阈值及参数起始
kBcu_ReservedParamEnd = 1999, ///< 预留阈值及参数结束
kBcu_DataEnd
2025-05-13 17:49:49 +08:00
} devBcu_E;
2025-05-24 17:16:28 +08:00
//-------------------------PCS------------------------------
2025-05-13 17:49:49 +08:00
typedef enum
{
2025-05-24 17:16:28 +08:00
/*----- 设备基础状态 (0-3) -----*/
kPcs_IsOnline = 0, ///< 是否在线
kPcs_Reserved1 = 1, ///< 预留
kPcs_TotalFault = 2, ///< 总故障
kPcs_TotalAlarm = 3, ///< 总告警
/*----- 硬件故障 (4-14) -----*/
kPcs_PhaseAOverCurrent = 4, ///< A相硬件过流
kPcs_PhaseBOverCurrent = 5, ///< B相硬件过流
kPcs_PhaseCOverCurrent = 6, ///< C相硬件过流
kPcs_PhaseNOverCurrent = 7, ///< N相硬件过流
kPcs_UnitDCVoltageFault = 8, ///< 单元直压故障
kPcs_PowerSupplyUnderVoltage = 9, ///< 开关电源欠压
kPcs_PhaseAIGBTFault = 10, ///< A相IGBT故障
kPcs_PhaseBIGBTFault = 11, ///< B相IGBT故障
kPcs_PhaseCIGBTFault = 12, ///< C相IGBT故障
kPcs_PhaseNIGBTFault = 13, ///< N相IGBT故障
kPcs_OverTemperatureFault = 14, ///< 过温故障
/*----- 输出保护 (15-22) -----*/
kPcs_PhaseAOutputOverCurrent = 15, ///< A相输出过流
kPcs_PhaseAOutputQuickBreak = 16, ///< A相输出速断
kPcs_PhaseBOutputOverCurrent = 17, ///< B相输出过流
kPcs_PhaseBOutputQuickBreak = 18, ///< B相输出速断
kPcs_PhaseCOutputOverCurrent = 19, ///< C相输出过流
kPcs_PhaseCOutputQuickBreak = 20, ///< C相输出速断
kPcs_PhaseNOutputOverCurrent = 21, ///< N相输出过流
kPcs_PhaseNOutputQuickBreak = 22, ///< N相输出速断
/*----- 电网异常 (23-34) -----*/
kPcs_ACOverVoltage = 23, ///< 交流过压
kPcs_ACUnderVoltage = 24, ///< 交流欠压
kPcs_ACOverFrequency = 25, ///< 交流过频
kPcs_ACUnderFrequency = 26, ///< 交流欠频
kPcs_VoltageTHDULimit = 27, ///< 电压THDU超限
kPcs_SystemPhaseLoss = 28, ///< 系统缺相
kPcs_SystemPhaseSequenceError = 29, ///< 系统相序错误
kPcs_DCPolarityReverse = 30, ///< 直流极性反接
kPcs_DCBusUnderVoltage = 31, ///< 直流母线欠压
kPcs_DCBusOverVoltage = 32, ///< 直流母线过压
kPcs_SystemOverFrequency = 33, ///< 系统过频
kPcs_SystemUnderFrequency = 34, ///< 系统欠频
/*----- 直流保护 (35-37) -----*/
kPcs_DCChargeOverCurrent = 35, ///< 直流充电过流
kPcs_DCDischargeOverCurrent = 36, ///< 直流放电过流
kPcs_IslandingProtection = 37, ///< 孤岛保护
/*----- 预留故障与状态 (38-150) -----*/
kPcs_ReservedFaultStart = 38, ///< 预留故障起始
kPcs_ReservedFaultEnd = 143, ///< 预留故障结束
/* 状态 */
kPcs_Stopped = 144, // 停机状态
kPcs_Standby = 145, // 待机状态
kPcs_Running = 146, // 运行状态
kPcs_GridConnected = 147, // 并网状态
kPcs_OffGrid = 148, // 离网状态
2025-05-13 17:49:49 +08:00
2025-05-24 17:16:28 +08:00
/* 信号 */
kPcs_BMSDryNodeSignal = 149, // BMS干节点信号
kPcs_LocalRemote = 150, // 本地/远程
/*----- 实时电参量 (151-187) -----*/
kPcs_PhaseAVoltage = 151, ///< A相电压 (V)
kPcs_PhaseBVoltage = 152, ///< B相电压 (V)
kPcs_PhaseCVoltage = 153, ///< C相电压 (V)
kPcs_PhaseACurrent = 154, ///< A相电流 (A)
kPcs_PhaseBCurrent = 155, ///< B相电流 (A)
kPcs_PhaseCCurrent = 156, ///< C相电流 (A)
kPcs_GridFrequency = 157, ///< 电网频率 (Hz)
kPcs_PhaseAActivePower = 158, ///< A相有功功率 (kW)
kPcs_PhaseBActivePower = 159, ///< B相有功功率 (kW)
kPcs_PhaseCActivePower = 160, ///< C相有功功率 (kW)
kPcs_TotalActivePwr = 161, ///< 总有功功率 (kW)
kPcs_PhaseAReactivePower = 162, ///< A相无功功率 (kVar)
kPcs_PhaseBReactivePower = 163, ///< B相无功功率 (kVar)
kPcs_PhaseCReactivePower = 164, ///< C相无功功率 (kVar)
kPcs_TotalReactivePwr = 165, ///< 总无功功率 (kVar)
kPcs_PhaseAApparentPower = 166, ///< A相视在功率 (kVA)
kPcs_PhaseBApparentPower = 167, ///< B相视在功率 (kVA)
kPcs_PhaseCApparentPower = 168, ///< C相视在功率 (kVA)
kPcs_TotalApparentPwr = 169, ///< 总视在功率 (kVA)
kPcs_PhaseAPowerFactor = 170, ///< A相功率因数
kPcs_PhaseBPowerFactor = 171, ///< B相功率因数
kPcs_PhaseCPowerFactor = 172, ///< C相功率因数
kPcs_TotalPwrFactor = 173, ///< 总功率因数
kPcs_InputPower = 174, ///< PCS输入功率 (kW)
kPcs_InputVoltage = 175, ///< PCS输入电压 (V)
kPcs_InputCurrent = 176, ///< PCS输入电流 (A)
kPcs_DailyChargeEnergy = 177, ///< 日充电量 (kWh)
kPcs_DailyDischargeEnergy = 178, ///< 日放电量 (kWh)
kPcs_TotalACChargeEnergy = 179, ///< 交流累计充电量 (kWh)
kPcs_TotalACDischargeEnergy = 180, ///< 交流累计放电量 (kWh)
kPcs_TotalDCChargeEnergy = 181, ///< 直流累计充电量 (kWh)
kPcs_TotalDCDischargeEnergy = 182, ///< 直流累计放电量 (kWh)
kPcs_MaxAllowedChgCur, // 最大允许充电电流(精度: 1A)
kPcs_MaxAllowedDisChgCur, // 最大允许放电电流(精度: 1A)
kPcs_MaxAllowedChgPwr, // 最大允许充电功率(精度: 1kW)
kPcs_MaxAllowedDisChgPwr, // 最大允许放电功率(精度: 1kW)
kPcs_IGBTTemperature = 187, ///< IGBT温度 (°C)
/*----- 故障字与系统时间 (188-199) -----*/
kPcs_FaultWord1 = 188, ///< PCS故障字1
kPcs_FaultWord2 = 189, ///< PCS故障字2
kPcs_FaultWord3 = 190, ///< PCS故障字3
kPcs_FaultWord4 = 191, ///< PCS故障字4
kPcs_FaultWord5 = 192, ///< PCS故障字5
kPcs_FaultWord6 = 193, ///< PCS故障字6
kPcs_SystemTimeSecond = 194, ///< 系统时钟-秒
kPcs_SystemTimeMinute = 195, ///< 系统时钟-分
kPcs_SystemTimeHour = 196, ///< 系统时钟-时
kPcs_SystemTimeDay = 197, ///< 系统时钟-日
kPcs_SystemTimeMonth = 198, ///< 系统时钟-月
kPcs_SystemTimeYear = 199, ///< 系统时钟-年
/*----- 预留段 (200-250) -----*/
kPcs_ReservedDataStart = 200, ///< 预留数据起始
kPcs_ReservedDataEnd = 250, ///< 预留数据结束
/*----- 控制指令与设置 (251-259) -----*/
/* 远程控制设置 */
kPcs_RemoteLocalSet, // 远程本地设置
kPcs_OperationModeSet, // 运行模式设置
kPcs_GridConnectionSet, // 并网离网设置
kPcs_DeviceStartup, // 设备开机
kPcs_DeviceShutdown, // 设备停机
kPcs_ConstantActivePwrSet, // 恒功率有功功率设置(精度: 1kW)
kPcs_ConstantReactPwrSet, // 恒功率无功功率设置(精度: 1kVar)
kPcs_ConstantPFSet, // 功率因数控制
kPcs_DeviceSwitchCommand, // 设备开关机指令
/*----- 预留遥调与遥控 (260-299) -----*/
kPcs_ReservedControlStart = 260, ///< 预留遥调+遥控起始
kPcs_APhaseAPSet = kPcs_ReservedControlStart,
kPcs_BPhaseAPSet,
kPcs_CPhaseAPSet,
kPcs_ReservedControlEnd = 299, ///< 预留遥调+遥控结束
kPcs_DataEnd
} devPcs_E;
2025-05-13 17:49:49 +08:00
//-------------------------液冷机组------------------------------
typedef enum
{
kAcLiquidMac_Start = 0, // 开始
kAcLiquidMac_IsOnline = DEV_IS_ONLINE, // 设备是否在线
kAcLiquidMac_DataStart,
/* 故障告警 */
kAcLiquidMac_Alarm_Start = kAcLiquidMac_DataStart,
kAcLiquidMac_TotalAlarm = kAcLiquidMac_Alarm_Start, // 总故障
2025-05-24 17:16:28 +08:00
kAcLiquidMac_Alarm_Reserve = kAcLiquidMac_Alarm_Start + 39, // 告警预留 3~40
2025-05-13 17:49:49 +08:00
kAcLiquidMac_Alarm_End,
/* 实时数据*/
kAcLiquidMac_YC_Start = kAcLiquidMac_Alarm_End,
kAcLiquidMac_Temp = kAcLiquidMac_YC_Start, // 当前温度
kAcLiquidMac_Humidity, // 当前湿度
kAcLiquidMac_YC_Reserve = kAcLiquidMac_YC_Start + 29, // 遥测数据预留43~70
kAcLiquidMac_YC_End,
/* 设置类数据*/
kAcLiquidMac_YT_Start = kAcLiquidMac_YC_End,
kAcLiquidMac_SetCoolTemp = kAcLiquidMac_YT_Start, // 制冷温度
kAcLiquidMac_SetHeatTemp, // 制热温度
kAcLiquidMac_SetCoolDiff, // 制冷回差
kAcLiquidMac_SetHeatDiff, // 制热回差
kAcLiquidMac_SetRunMode, // 运行模式
kAcLiquidMac_SetOnOff, // 设备开关、制冷制热
kAcLiquidMac_SetCellMaxTemp, // 电芯最高温度
kAcLiquidMac_SetCellMInTemp, // 电芯最低温度
kAcLiquidMac_SetCellAvgTemp, // 电芯平均温度
kAcLiquidMac_Lc_RunMode, // 液冷机组运行模式
kAcLiquidMac_Lc_Switch, // 液冷机组开关机
kAcLiquidMac_Lc_RunTemp, // 液冷运行温度
kAcLiquidMac_YT_Reserve = kAcLiquidMac_YT_Start + 27, // 遥调预留 82~101
kAcLiquidMac_YT_End,
2025-05-24 17:16:28 +08:00
kAcLiquidMac_DataEnd, //
2025-05-13 17:49:49 +08:00
} devAcLiquidMac_E;
//-------------------------水浸传感器------------------------------
typedef enum
{
kWater_IsOnline = DEV_IS_ONLINE, // 设备是否在线
/* 故障告警 */
kWater_DataStart,
2025-05-24 17:16:28 +08:00
kWater_WaterAlarmI = kWater_DataStart,
2025-05-13 17:49:49 +08:00
kWater_WaterAlarmII,
kWater_WaterAlarmIII,
kWater_CutAlarm,
2025-05-24 17:16:28 +08:00
kWater_DataEnd = kWater_DataStart + 19, //
} devWaterThsensor;
2025-05-13 17:49:49 +08:00
2025-05-24 17:16:28 +08:00
//-------------------------烟感传感器------------------------------
typedef enum
{
kYg_IsOnline = DEV_IS_ONLINE, // 设备是否在线
/* 故障告警 */
kYg_DataStart,
kYg_WaterAlarmI = kYg_DataStart,
kYg_WaterAlarmII,
kYg_WaterAlarmIII,
kYg_CutAlarm,
kYg_DataEnd = kYg_DataStart + 19, //
} devYgThsensor;
//-------------------------温湿度传感器------------------------------
typedef enum
{
kTHSenor_Start = 0, // 开始
kTHSenor_IsOnline = DEV_IS_ONLINE, // 设备是否在线
kTHSenor_Temp, // 温度(精度: 1℃)
kTHSenor_Humidity, // 湿度(精度: 1%RH)
kTHSenor_Rerverse = kTHSenor_Start + 19, // 预留
kTHSenor_DataEnd, //
} devTHSenor_E;
//-------------------------DIDO设备-代表IO模块枚举------------------------------
typedef enum
{
kDiDoSign_Start = 0, // 开始
kDiDoSign_IsOnline = kDiDoSign_Start, // 设备是否在线
kDiDoSign_DIStart,
kDiDoSign_DI1 = kDiDoSign_DIStart,
kDiDoSign_DI40 = kDiDoSign_DIStart + 39,
kDiDoSign_DIEnd,
kDiDoSign_DOtart = kDiDoSign_DIEnd,
kDiDoSign_DO1 = kDiDoSign_DOtart,
kDiDoSign_DO40 = kDiDoSign_DOtart + 39,
kDiDoSign_DOEnd,
kDIDoSign_Reverse = kDiDoSign_DOEnd + 18, // 预留
kDiDoSign_DataEnd //
} devDIDOSign_E;
//-------------------------UPS------------------------------
typedef enum
{
kUps_Start = 0, // 开始
kUps_IsUse = DEV_IS_USE, // 设备启用
kUps_IsOnline = DEV_IS_ONLINE, // 设备是否在线
kUps_DataStart,
kUps_Data1 = kUps_DataStart,
/* 故障告警 */
2025-05-13 17:49:49 +08:00
/* 实时数据*/
/* 设置类数据*/
2025-05-24 17:16:28 +08:00
kUps_Data100 = kUps_DataStart + 98,
kUps_DataEnd, //
} devUps_E;
//-------------------------预留设备1------------------------------
typedef enum
{
kFireprotect_Start = 0, // 开始
kFireprotect_IsUse = DEV_IS_USE, // 设备启用
kFireprotect_IsOnline = DEV_IS_ONLINE, // 设备是否在线
kFireprotect_DataStart,
kFireprotect_Data1 = kFireprotect_DataStart,
/* 故障告警 */
/* 实时数据*/
/* 设置类数据*/
kFireprotect_Data100 = kFireprotect_DataStart + 98,
kFireprotect_DataEnd, //
} devFireProtect_E;
2025-05-13 17:49:49 +08:00
//-------------------------预留设备1------------------------------
typedef enum
{
kRev1_Start = 0, // 开始
kRev1_IsUse = DEV_IS_USE, // 设备启用
kRev1_IsOnline = DEV_IS_ONLINE, // 设备是否在线
kRev1_DataStart,
kRev1_Data1 = kRev1_DataStart,
/* 故障告警 */
/* 实时数据*/
/* 设置类数据*/
2025-05-24 17:16:28 +08:00
kRev1_Data100 = kRev1_DataStart + 98,
2025-05-13 17:49:49 +08:00
kRev1_DataEnd, //
} devRev1_E;
//-------------------------预留设备2------------------------------
typedef enum
{
kRev2_Start = 0, // 开始
kRev2_IsUse = DEV_IS_USE, // 设备启用
kRev2_IsOnline = DEV_IS_ONLINE, // 设备是否在线
kRev2_DataStart,
kRev2_Data1 = kRev2_DataStart,
/* 故障告警 */
/* 实时数据*/
/* 设置类数据*/
2025-05-24 17:16:28 +08:00
kRev2_Data100 = kRev2_DataStart + 98,
2025-05-13 17:49:49 +08:00
kRev2_DataEnd, //
} devRev2_E;
//-------------------------预留设备3------------------------------
typedef enum
{
kRev3_Start, // 开始
kRev3_IsUse = DEV_IS_USE, // 设备启用
kRev3_IsOnline = DEV_IS_ONLINE, // 设备是否在线
kRev3_DataStart,
kRev3_Data1 = kRev3_DataStart,
/* 故障告警 */
/* 实时数据*/
/* 设置类数据*/
2025-05-24 17:16:28 +08:00
kRev3_Data100 = kRev3_DataStart + 98,
2025-05-13 17:49:49 +08:00
kRev3_DataEnd, //
} devRev3_E;
//-------------------------预留设备4------------------------------
typedef enum
{
kRev4_Start, // 开始
kRev4_IsUse = DEV_IS_USE, // 设备启用
kRev4_IsOnline = DEV_IS_ONLINE, // 设备是否在线
kRev4_DataStart,
kRev4_Data1 = kRev4_DataStart,
/* 故障告警 */
/* 实时数据*/
/* 设置类数据*/
2025-05-24 17:16:28 +08:00
kRev4_Data100 = kRev4_DataStart + 98,
2025-05-13 17:49:49 +08:00
kRev4_DataEnd, //
} devRev4_E;
//-------------------------预留设备5------------------------------
typedef enum
{
kRev5_Start = 0, // 开始
kRev5_IsUse = DEV_IS_USE, // 设备启用
kRev5_IsOnline = DEV_IS_ONLINE, // 设备是否在线
kRev5_DataStart,
kRev5_Data1 = kRev5_DataStart,
/* 故障告警 */
/* 实时数据*/
/* 设置类数据*/
2025-05-24 17:16:28 +08:00
kRev5_Data100 = kRev5_DataStart + 98,
2025-05-13 17:49:49 +08:00
kRev5_DataEnd, //
} devRev5_E;
#endif // BSP_DATA_MODE_H