#include "Sub_Sys.h"
// 系统工作处理
void Sub_Sys_Working(void)
{
static uint32_t Fan_Start_Cnt = 0;
// static uint32_t Sys_Run.outFan_end_Cnt = 0;//xg-230814N
static uint16_t Compressor_Allow_Run_Cnt = 0;
static uint32_t Open_Door_Mode_Cnt = 0;
static uint32_t Run_Frq_Change_Cnt = 0;
static uint16_t Compressor_Run_Frq_Level_Old = 0;
int16_t Board_Temp_Aim_Tmp;
Board_Temp_Aim_Tmp = MenuF_Val.MenuF_Struct.MenuF_Board_Temp_Aim * 10;
// 定频模式
if (MenuF_Val.MenuF_Struct.MenuF_INV_Or_No == 0)
{
// 制冷模式
if (Sys_Run.Sys_Run_Mode == Cold_Mode)
{
if (Sys_Run.Sys_Run_Enable == 0 && Sys_Run.Fault_Code == 0) // 未运行
{
// 停机时制冷模式下 柜内温度大于目标温度5度系统启动
if ((Sys_Run.Board_Temp > Board_Temp_Aim_Tmp))
{
if ((Sys_Run.Board_Temp - Board_Temp_Aim_Tmp) > 50)
{
if (Sys_Run.Compressor_Allow_Run_Flag)
{
Sys_Run.Sys_Run_Enable = 1;
}
else
{
Sys_Run.Sys_Run_Enable = 0;
}
// 压缩机速度给定
Sys_Run.Compressor_Run_Speed = MenuF_Val.MenuF_Struct.MenuF_Cold_Compressor_Speed;
}
Sys_Run.Aim_Temp_Arrived_Delay = 0;
}
}
// 定频运行中
else if (Sys_Run.Sys_Run_Enable == 1)
{
// 温度达到目标温度
if (Sys_Run.Board_Temp <= Board_Temp_Aim_Tmp)
{
if (Sys_Run.Aim_Temp_Arrived_Delay < 12000) // 120S
{
Sys_Run.Aim_Temp_Arrived_Delay++;
}
else
{
Sys_Run.Sys_Run_Enable = 0; // 停机
Sys_Run.Compressor_Allow_Run_Flag = 0;
}
}
else
{
Sys_Run.Aim_Temp_Arrived_Delay = 0;
}
Sys_Run.Compressor_Run_Speed = MenuF_Val.MenuF_Struct.MenuF_Cold_Compressor_Speed;
}
// 安全模式
if ((MenuC_Val.MenuC_Struct.MenuC_Warning & 0xfffe) > 0) // xg-230814N (Sys_Run.Warning_Code > 0)
{
Sys_Run.Sys_Run_Mode = Saft_Mode;
}
Open_Door_Mode_Cnt = 0;
}
// 开门模式
else if (Sys_Run.Sys_Run_Mode == Open_Door_Mode)
{
if (Open_Door_Mode_Cnt < (uint32_t)MenuF_Val.MenuF_Struct.MenuF_Open_Door_Time * 6000)
{
Open_Door_Mode_Cnt++;
}
else
{
Sys_Run.Sys_Run_Mode = Cold_Mode;
Open_Door_Mode_Cnt = 0;
}
}
else if (Sys_Run.Sys_Run_Mode == Sys_Waitling) // 待机
{
Sys_Run.Aim_Temp_Arrived_Delay = 0;
Sys_Run.Sys_Run_Enable = 0; // 停机
Open_Door_Mode_Cnt = 0;
}
// 安全模式
else if (Sys_Run.Sys_Run_Mode == Saft_Mode)
{
if (Sys_Run.Sys_Run_Enable == 0) // 未运行
{
// 停机时制冷模式下 柜内温度大于目标温度5度系统启动
if (Sys_Run.Board_Temp > MenuF_Val.MenuF_Struct.MenuF_Board_Temp_Aim)
{
if ((Sys_Run.Board_Temp - MenuF_Val.MenuF_Struct.MenuF_Board_Temp_Aim) >= 50)
{
if (Sys_Run.Compressor_Allow_Run_Flag)
{
Sys_Run.Sys_Run_Enable = 1;
}
else
{
Sys_Run.Sys_Run_Enable = 0;
}
// 压缩机速度给定
Sys_Run.Compressor_Run_Speed = MenuF_Val.MenuF_Struct.MenuF_Saft_Compressor_Speed;
}
Sys_Run.Aim_Temp_Arrived_Delay = 0;
}
}
// 定频运行中
else if (Sys_Run.Sys_Run_Enable == 1)
{
// 压缩机速度给定
Sys_Run.Compressor_Run_Speed = MenuF_Val.MenuF_Struct.MenuF_Saft_Compressor_Speed;
if (MenuC_Val.MenuC_Struct.MenuC_Warning == 0)
{
Sys_Run.Sys_Run_Mode = Cold_Mode;
}
}
}
Run_Frq_Change_Cnt = 0;
Sys_Run.Compressor_Run_Frq_Change_Flag = 0;
}
// 变频模式
else
{
// 制冷模式
if (Sys_Run.Sys_Run_Mode == Cold_Mode)
{
if (Sys_Run.Sys_Run_Enable == 0 && Sys_Run.Fault_Code == 0) // 未运行
{
// 停机时制冷模式下 柜内温度大于目标温度5度系统启动
if (Sys_Run.Board_Temp > Board_Temp_Aim_Tmp)
{
// static uint16_t Sys_Run_Enable = 0;
if ((Sys_Run.Board_Temp - Board_Temp_Aim_Tmp) > 50)
{
if (Sys_Run.Compressor_Allow_Run_Flag)
{
Sys_Run.Sys_Run_Enable = 1;
}
else
{
Sys_Run.Sys_Run_Enable = 0;
}
// 压缩机速度给定
Sys_Run.Compressor_Run_Frq_Level = Compressor_Run_Frq_100;
}
Sys_Run.Aim_Temp_Arrived_Delay = 0;
}
else
{
Sys_Run.Compressor_Run_Frq_Level = Run_Frq_Non;
}
Run_Frq_Change_Cnt = 0;
}
// 变频运行中
else if (Sys_Run.Sys_Run_Enable == 1)
{
// 每次调速后至少运行温区改变时间频率才可以改变
if (Sys_Run.Compressor_Run_Frq_Change_Flag == 1)
{
if (Run_Frq_Change_Cnt < MenuF_Val.MenuF_Struct.MenuF_Temp_Change_Delay_Time * 100)
{
Run_Frq_Change_Cnt++;
}
else
{
Sys_Run.Compressor_Run_Frq_Change_Flag = 0;
Run_Frq_Change_Cnt = 0;
}
if ((Sys_Run.Board_Temp - Board_Temp_Aim_Tmp) <= 0) // 温差小于0度
{
Sys_Run.Compressor_Run_Frq_Change_Flag = 0;
}
}
else
{
if ((Sys_Run.Board_Temp - Board_Temp_Aim_Tmp) > 40) // 温差大于4度
{
Sys_Run.Compressor_Run_Frq_Level = Compressor_Run_Frq_100;
Sys_Run.Aim_Temp_Arrived_Delay = 0;
}
else if ((Sys_Run.Board_Temp - Board_Temp_Aim_Tmp) > 30) // 温差大于3度
{
Sys_Run.Compressor_Run_Frq_Level = Compressor_Run_Frq_95;
Sys_Run.Aim_Temp_Arrived_Delay = 0;
}
else if ((Sys_Run.Board_Temp - Board_Temp_Aim_Tmp) > 20) // 温差大于2度
{
Sys_Run.Compressor_Run_Frq_Level = Compressor_Run_Frq_90;
Sys_Run.Aim_Temp_Arrived_Delay = 0;
}
else if ((Sys_Run.Board_Temp - Board_Temp_Aim_Tmp) > 10) // 温差大于1度
{
Sys_Run.Compressor_Run_Frq_Level = Compressor_Run_Frq_85;
Sys_Run.Aim_Temp_Arrived_Delay = 0;
}
else if ((Sys_Run.Board_Temp - Board_Temp_Aim_Tmp) > 0) // 温差大于0度
{
Sys_Run.Compressor_Run_Frq_Level = Compressor_Run_Frq_80;
Sys_Run.Aim_Temp_Arrived_Delay = 0;
}
else // 停机
{
if (Sys_Run.Aim_Temp_Arrived_Delay < 12000) // 120S
{
Sys_Run.Aim_Temp_Arrived_Delay++;
Sys_Run.Compressor_Run_Frq_Level = Compressor_Run_Frq_Lower; // 温度到达后运行最低速
}
else
{
Sys_Run.Compressor_Run_Frq_Level = Run_Frq_Non;
Sys_Run.Compressor_Run_Frq_Change_Flag = 0;
Sys_Run.Sys_Run_Enable = 0;
Sys_Run.Compressor_Allow_Run_Flag = 0;
}
}
Run_Frq_Change_Cnt = 0;
}
}
// 运行速度改变
if (Sys_Run.Compressor_Run_Frq_Level > Run_Frq_Non)
{
if (Sys_Run.Compressor_Run_Frq_Level != Compressor_Run_Frq_Level_Old)
{
Sys_Run.Compressor_Run_Frq_Change_Flag = 1;
if ((Sys_Run.Board_Temp - Board_Temp_Aim_Tmp) >= 50)
{
Sys_Run.Compressor_Run_Frq_Change_Flag = 0;
}
}
}
Open_Door_Mode_Cnt = 0;
// 安全模式
if ((MenuC_Val.MenuC_Struct.MenuC_Warning & 0xfffe) > 0) // xg-230814N
{
Sys_Run.Sys_Run_Mode = Saft_Mode;
}
}
// 开门模式
else if (Sys_Run.Sys_Run_Mode == Open_Door_Mode)
{
if (Open_Door_Mode_Cnt < (uint32_t)MenuF_Val.MenuF_Struct.MenuF_Open_Door_Time * 6000)
{
Open_Door_Mode_Cnt++;
Sys_Run.Compressor_Run_Frq_Level = Run_Frq_Non;
}
else
{
Sys_Run.Sys_Run_Mode = Cold_Mode;
Open_Door_Mode_Cnt = 0;
}
Sys_Run.Compressor_Run_Frq_Change_Flag = 0;
Run_Frq_Change_Cnt = 0;
// 安全模式
}
else if (Sys_Run.Sys_Run_Mode == Sys_Waitling) // 待机
{
Sys_Run.Aim_Temp_Arrived_Delay = 0;
Sys_Run.Sys_Run_Enable = 0; // 停机
Open_Door_Mode_Cnt = 0;
Run_Frq_Change_Cnt = 0;
}
// 安全模式
else if (Sys_Run.Sys_Run_Mode == Saft_Mode)
{
if (Sys_Run.Sys_Run_Enable == 0) // 未运行
{
// 停机时制冷模式下 柜内温度大于目标温度4度系统启动
if (Sys_Run.Board_Temp > MenuF_Val.MenuF_Struct.MenuF_Board_Temp_Aim)
{
if ((Sys_Run.Board_Temp - MenuF_Val.MenuF_Struct.MenuF_Board_Temp_Aim) >= 40)
{
if (Sys_Run.Compressor_Allow_Run_Flag)
{
Sys_Run.Sys_Run_Enable = 1;
}
else
{
Sys_Run.Sys_Run_Enable = 0;
}
}
Sys_Run.Aim_Temp_Arrived_Delay = 0;
}
}
// 运行中
else if (Sys_Run.Sys_Run_Enable == 1)
{
;
}
if (MenuC_Val.MenuC_Struct.MenuC_Warning == 0)
{
Sys_Run.Sys_Run_Mode = Cold_Mode;
}
}
// 压缩机速度给定
Sys_Run.Compressor_Run_Speed = Compressor_Run_Frq_Adjust(Sys_Run.Compressor_Run_Frq_Level);
// 安全模式频率
if (Sys_Run.Sys_Run_Mode == Saft_Mode)
{
Sys_Run.Compressor_Run_Speed = MenuF_Val.MenuF_Struct.MenuF_Saft_Compressor_Speed;
}
}
//============================================================================
// 最大频率限制为安全模式频率。 板载温度传感器故障、排温传感器故障 //xg-230814N
if (((Sys_Run.Warning_Code & 0x0001) != 0) || ((MenuC_Val.MenuC_Struct.MenuC_Error1 & 0x0004) != 0))
{
if (Sys_Run.Compressor_Run_Speed >= MenuF_Val.MenuF_Struct.MenuF_Saft_Compressor_Speed)
{
Sys_Run.Compressor_Run_Speed = MenuF_Val.MenuF_Struct.MenuF_Saft_Compressor_Speed;
}
}
//============================================================================
// 发生故障时关机
if ((Sys_Run.Fault_Code > 0) // 通讯故障不停机
&& (Sys_Run.Fault_Code != Comm_Error) // 12//Mos温度传感器故障不停机 //xg-230814N
&& ((MenuC_Val.MenuC_Struct.MenuC_Error1 & 0x0002) != 0) //(Sys_Run.Fault_Code != Mos_Temp_Sensor_Error)\
// 柜温传感器故障不停机
&& (Sys_Run.Fault_Code != Board_Temp_Sensor_Error))
{
#if (Sys_Falut_Run_Disable == 1)
// Sys_Run.Sys_Run_Enable = 0;
// Sys_Run.Sys_Run_Mode = Sys_Waitling;
Sys_Run.InDoor_Fan_Run_Enable = 0;
Sys_Run.OUT_Door_Fan_Run_Enable = 0;
Fan_Start_Cnt = 0;
Compressor_Allow_Run_Cnt = 0;
Sys_Run.Compressor_Allow_Run_Flag = 0;
Sys_Run.Sys_Run_Enable = 0;
#else
Fan_Start_Cnt = 0;
#endif
}
if ((Sys_Run.Fault_Code > 0) && (Sys_Run.Fault_Code != 14) && ((Sys_Run.Fault_Code == Over_Voltage_Error) || (Sys_Run.Fault_Code == Under_Voltage_Error)))
{
Sys_Run.InDoor_Fan_Run_Enable = 0;
Sys_Run.OUT_Door_Fan_Run_Enable = 0;
Fan_Start_Cnt = 0;
Sys_Run.outFan_end_Cnt = 1700;
Compressor_Allow_Run_Cnt = 0;
Sys_Run.Compressor_Allow_Run_Flag = 0;
Sys_Run.Sys_Run_Enable = 0;
}
// 风机以及压缩机运行控制
if (Sys_Run.Sys_Run_Enable == 1)
{
Sys_Run.outFan_end_Cnt = 0; // xg-230814N
// 风机先运行
if (Fan_Start_Cnt < 1650) // 风机固定运行30S//3300 xg-230814N
{
Fan_Start_Cnt++;
Sys_Run.InDoor_Fan_Run_Enable = 1;
Sys_Run.OUT_Door_Fan_Run_Enable = 1;
Sys_Run.Compressor_Run_Enable = 0;
}
else
{
Sys_Run.Compressor_Run_Enable = 1;
}
// 压缩机允许运行计时清零
Compressor_Allow_Run_Cnt = 0;
}
else
{
// 停机状态清零运行状态
Fan_Start_Cnt = 0;
Sys_Run.Compressor_Run_Enable = 0;
if (Sys_Run.outFan_end_Cnt < 1650) // xg-230814N
{
Sys_Run.outFan_end_Cnt++;
Sys_Run.OUT_Door_Fan_Run_Enable = 1;
Sys_Run.InDoor_Fan_Run_Enable = 1;
}
else
{
Sys_Run.OUT_Door_Fan_Run_Enable = 0;
Sys_Run.InDoor_Fan_Run_Enable = 0;
}
Sys_Run.Sys_Run_Enable = 0;
// 压缩机允许运行计时
if (Sys_Run.Compressor_Allow_Run_Flag == 0)
{
if (Compressor_Allow_Run_Cnt < ((MenuF_Val.MenuF_Struct.MenuF_Compressor_Run_Delay_Time * 100) + 100)) // 等待延迟后运行
{
Compressor_Allow_Run_Cnt++;
// 当压缩机真正停机后才开始计时
if (Uart1_Val.RS485_OK > 0)
{
if (MenuC_Val.MenuC_Struct.MenuC_Compressor_Speed > 0)
{
Compressor_Allow_Run_Cnt = 0;
}
}
}
else
{
Sys_Run.Compressor_Allow_Run_Flag = 1;
Compressor_Allow_Run_Cnt = 0;
}
}
else
{
Compressor_Allow_Run_Cnt = 0;
}
}
// 开门模式压缩机不运行 内风机停机 外风机运行
if ((Sys_Run.Sys_Run_Mode == Open_Door_Mode) && (Sys_Run.Fault_Code == 0))
{
Sys_Run.Sys_Run_Enable = 0;
Sys_Run.InDoor_Fan_Run_Enable = 0;
Sys_Run.OUT_Door_Fan_Run_Enable = 1;
// Compressor_Allow_Run_Cnt = 0;
Fan_Start_Cnt = 0;
}
Compressor_Run_Frq_Level_Old = Sys_Run.Compressor_Run_Frq_Level;
}
// 变频模式下压缩机运行频率调节
uint16_t Compressor_Run_Frq_Adjust(uint16_t Val)
{
uint16_t Val1;
uint16_t i;
if (Val == Compressor_Run_Frq_100)
{
Val1 = MenuF_Val.MenuF_Struct.MenuF_Cold_Compressor_Speed;
}
else if (Val == Compressor_Run_Frq_95)
{
Val1 = (uint32_t)MenuF_Val.MenuF_Struct.MenuF_Cold_Compressor_Speed * 95 / 100;
}
else if (Val == Compressor_Run_Frq_90)
{
Val1 = (uint32_t)MenuF_Val.MenuF_Struct.MenuF_Cold_Compressor_Speed * 90 / 100;
}
else if (Val == Compressor_Run_Frq_85)
{
Val1 = (uint32_t)MenuF_Val.MenuF_Struct.MenuF_Cold_Compressor_Speed * 85 / 100;
}
else if (Val == Compressor_Run_Frq_80)
{
Val1 = (uint32_t)MenuF_Val.MenuF_Struct.MenuF_Cold_Compressor_Speed * 80 / 100;
}
else if (Val == Compressor_Run_Frq_Lower)
{
Val1 = MenuF_Val.MenuF_Struct.MenuF_P_Compressor_Min_Speed;
}
else if (Val == Run_Frq_Non)
{
Val1 = 0;
}
// 最低频率限制
if (Val > Run_Frq_Non)
{
if (Val1 < MenuF_Val.MenuF_Struct.MenuF_P_Compressor_Min_Speed)
{
Val1 = MenuF_Val.MenuF_Struct.MenuF_P_Compressor_Min_Speed;
}
}
// 共振频率处理 范围±2HZ
for (i = 0; i < 10; i++)
{
if (MenuL_Val.MenuL_Union_Val[i] > 0 && MenuL_Val.MenuL_Union_Val[i] >= MenuF_Val.MenuF_Struct.MenuF_P_Compressor_Min_Speed)
{
if ((Val1 > (MenuL_Val.MenuL_Union_Val[i] - 2)) && (Val1 < (MenuL_Val.MenuL_Union_Val[i] + 2)))
{
Val1 = MenuL_Val.MenuL_Union_Val[i] + 2;
}
}
}
return Val1;
}
// 系统变量传递
void Sys_Val_Exchange(void)
{
uint8_t i;
static uint16_t Fault_Code_Old = 0;
static uint16_t Warning_Code_Old = 0;
static uint32_t Fault_Code_Temp = 0;
static uint16_t Over_Voltage_Cnt = 0;
static uint16_t Over_Voltage_Reset_Cnt = 0;
static uint16_t Under_Voltage_Cnt = 0;
static uint16_t Under_Voltage_Reset_Cnt = 0;
static uint16_t Over_Voltage_Flag = 0;
static uint16_t Under_Voltage_Flag = 0;
//---------------------------
// static uint8_t errcnt,errnumb;
// uint8_t errall[16];
//---------------------------
// 柜内温度
Sys_Run.Board_Temp = MenuC_Val.MenuC_Struct.MenuC_Board_Temp;
if ((MenuC_Val.MenuC_Struct.MenuC_Warning & 0x0002) != 0) // xg-230814N 避免断路无穷低无法启动
{
Sys_Run.Board_Temp = 650;
}
// 故障
Fault_Code_Temp = ((uint32_t)MenuC_Val.MenuC_Struct.MenuC_Error2 << 16) + MenuC_Val.MenuC_Struct.MenuC_Error1;
MenuC_Val.MenuC_Struct.MenuC_Set_Speed = Sys_Run.Compressor_Run_Speed;
// 先清零
Sys_Run.Fault_Code = 0;
Sys_Run.Warning_Code = 0;
Sys_Run.errnumb = 0;
Sys_Run.diserr = 0;
for (i = 0; i < 16; i++)
{
Sys_Run.errall[i] = 0;
}
Sys_Run.Fault_Code = 16; // 电流检测错误
// 面板过压 通讯正常时才判断
if (Uart1_Val.RS485_OK > 0)
{
if (MenuC_Val.MenuC_Struct.MenuC_Udc > MenuF_Val.MenuF_Struct.MenuF_Over_Udc)
{
// 2S
if (Over_Voltage_Cnt < 200)
Over_Voltage_Cnt++;
else
{
Over_Voltage_Flag = 1; // Sys_Run.Fault_Code = 1;//过压
}
Over_Voltage_Reset_Cnt = 0;
}
else if (MenuC_Val.MenuC_Struct.MenuC_Udc <= (MenuF_Val.MenuF_Struct.MenuF_Over_Udc - 2))
{
// 过压恢复
if (Over_Voltage_Reset_Cnt < 250)
Over_Voltage_Reset_Cnt++; // 2.5s
else
{
Over_Voltage_Flag = 0;
}
Over_Voltage_Cnt = 0;
}
// 面板欠压
if (MenuC_Val.MenuC_Struct.MenuC_Udc < MenuF_Val.MenuF_Struct.MenuF_Under_Udc)
{
// 5S
if (Under_Voltage_Cnt < 500)
Under_Voltage_Cnt++;
else
{
Under_Voltage_Flag = 1; // Sys_Run.Fault_Code = 2;//欠压
}
Under_Voltage_Reset_Cnt = 0;
}
else if (MenuC_Val.MenuC_Struct.MenuC_Udc >= (MenuF_Val.MenuF_Struct.MenuF_Under_Udc + 2))
{
// 欠压恢复
if (Under_Voltage_Reset_Cnt < 250)
Under_Voltage_Reset_Cnt++; // 2.5s
else
{
Under_Voltage_Flag = 0;
}
Under_Voltage_Cnt = 0;
}
// 排气断线
if (MenuC_Val.MenuC_Struct.MenuC_Warning & 0x0001)
{
// Sys_Run.Fault_Code = 11;
Sys_Run.Warning_Code = 15;
Sys_Run.errall[Sys_Run.errnumb] = 15; // 排气传感器故障
Sys_Run.errnumb++;
}
// 环温断线
if (MenuC_Val.MenuC_Struct.MenuC_Warning & 0x0002)
{
// Sys_Run.Fault_Code = 11;
Sys_Run.Warning_Code = 11;
}
}
// 过压
if (Over_Voltage_Flag == 1)
{
Sys_Run.Fault_Code = 1;
}
// 欠压
if (Under_Voltage_Flag == 1)
{
Sys_Run.Fault_Code = 2;
}
// 通讯故障
if (Uart1_Val.RS485_Error > 0)
{
Sys_Run.Warning_Code = 8;
}
// xg-230814N ----------------------------------------------------------------
// 故障判断
if ((Fault_Code_Temp & 0x00000001) != 0) // b0
{
Sys_Run.Fault_Code = 4;
Sys_Run.errall[Sys_Run.errnumb] = 4; // 硬件过流
Sys_Run.errnumb++;
}
if ((Fault_Code_Temp & 0x00000002) != 0) // b1
{
Sys_Run.Fault_Code = 7;
Sys_Run.errall[Sys_Run.errnumb] = 7; // 堵转失步
Sys_Run.errnumb++;
}
if ((Fault_Code_Temp & 0x00000004) != 0) // b2
{
Sys_Run.Fault_Code = 14;
Sys_Run.errall[Sys_Run.errnumb] = 14; // mos温度传感器故障
Sys_Run.errnumb++;
}
if ((Fault_Code_Temp & 0x00000008) != 0) // b3
{
Sys_Run.Fault_Code = 5;
Sys_Run.errall[Sys_Run.errnumb] = 5; // mos温度过高
Sys_Run.errnumb++;
}
if (((Fault_Code_Temp & 0x00000010) != 0) || (Under_Voltage_Flag == 1)) // b4
{
Sys_Run.Fault_Code = 2;
Sys_Run.errall[Sys_Run.errnumb] = 2; // 欠压
Sys_Run.errnumb++;
}
if (((Fault_Code_Temp & 0x00000020) != 0) || (Over_Voltage_Flag == 1)) // b5
{
Sys_Run.Fault_Code = 1;
Sys_Run.errall[Sys_Run.errnumb] = 1; // 过压
Sys_Run.errnumb++;
}
if ((Fault_Code_Temp & 0x00000040) != 0) // b6
{
Sys_Run.Fault_Code = 6;
Sys_Run.errall[Sys_Run.errnumb] = 6; // 输出缺相
Sys_Run.errnumb++;
}
if ((Fault_Code_Temp & 0x00000100) != 0) // b8
{
Sys_Run.Fault_Code = 3;
Sys_Run.errall[Sys_Run.errnumb] = 3; // 软件过流
Sys_Run.errnumb++;
}
if (((Fault_Code_Temp & 0x00000200) != 0) || (Sys_Run.Warning_Code == 8)) // b9
{
Sys_Run.Fault_Code = 8;
Sys_Run.errall[Sys_Run.errnumb] = 8; // 通讯故障
Sys_Run.errnumb++;
}
if ((Fault_Code_Temp & 0x00002000) != 0) // b13
{
Sys_Run.Fault_Code = 9;
Sys_Run.errall[Sys_Run.errnumb] = 9; // 压力开关断开
Sys_Run.errnumb++;
}
if ((Fault_Code_Temp & 0x00200000) != 0) // b21
{
Sys_Run.Fault_Code = 10;
Sys_Run.errall[Sys_Run.errnumb] = 10; // 排气过温
Sys_Run.errnumb++;
}
if (((Fault_Code_Temp & 0x00020000) != 0) || (Sys_Run.Warning_Code == 11)) // b17
{
Sys_Run.Fault_Code = 11;
Sys_Run.errall[Sys_Run.errnumb] = 11; // 柜内温度传感器故障
Sys_Run.errnumb++;
}
if ((Fault_Code_Temp & 0x00080000) != 0) // b19
{
Sys_Run.Fault_Code = 17;
Sys_Run.errall[Sys_Run.errnumb] = 17; // 室内风机故障
Sys_Run.errnumb++;
}
if ((Fault_Code_Temp & 0x00100000) != 0) // b20
{
Sys_Run.Fault_Code = 18;
Sys_Run.errall[Sys_Run.errnumb] = 18; // 室外风机故障
Sys_Run.errnumb++;
}
if ((Fault_Code_Temp & 0x04000000) != 0) // b26
{
Sys_Run.Fault_Code = 16;
Sys_Run.errall[Sys_Run.errnumb] = 16; // 电流检测错误
Sys_Run.errnumb++;
}
if (Sys_Run.errcnt >= Sys_Run.errnumb)
{
Sys_Run.errcnt = 0;
}
Sys_Run.diserr = Sys_Run.errall[Sys_Run.errcnt];
//-------------------------------------------------------------//xg-230814N
{
if (((Sys_Run.Fault_Code > 0) && (Fault_Code_Old != Sys_Run.Fault_Code)) || ((Sys_Run.Warning_Code > 0) && (Warning_Code_Old != Sys_Run.Warning_Code)))
{
// Sys_Run.Buzzer_Drv_Time += 100;//每次按键蜂鸣器运行100ms
Sys_Run.Buzzer_Fault_Reset = 1;
Sys_Run.Buzzer_Fault_Run_Flag = 1;
}
Fault_Code_Old = Sys_Run.Fault_Code; // Sys_Run.Fault_Code;
Warning_Code_Old = Sys_Run.Warning_Code;
}
}