// 判断提示报警标记 /// <summary> /// 判断提示报警标记 /// </summary> static void JustPromptAlarm(int UnitNO) { m_bIsPromptAlarm = false; m_bIsRefused = false; if (m_RunOptimizePromptTypeCurrent != m_RunOptimizePromptTypeSaved)//报警状态发生改变 { //保存运行优化提示类型改变的时间和新产生的类型 DateTime timeCurrentChanged = DateTime.Now; //保存报警改变的时间 if (m_RunOptimizePromptTypeSaved != RunOptimizePromptType.Optimized) //上次报警结束 { string sSql = "update AlarmYXYH set AlarmState='报警结束',AlarmEndTime='" + PublicFunction.DateTimeToString(timeCurrentChanged) + "',AlarmLasts='" + PublicFunction.GetTimeSpanString(timeCurrentChanged - m_timeChanged) + "' where AlarmTime='" + PublicFunction.DateTimeToString(m_timeChanged) + "'"; try { SQLHelper.ExecuteSql(sSql); } catch { WriteLog.WriteLogs("执行SQL失败:" + sSql); } } if (m_RunOptimizePromptTypeCurrent != RunOptimizePromptType.Optimized)//新报警开始 { m_bIsPromptAlarm = true; string sSql = "insert into AlarmYXYH(AlarmTime,AlarmText,AlarmState,UnitNO) values('" + PublicFunction.DateTimeToString(timeCurrentChanged) + "','" + GetPromptText() + "','正在报警'," + UnitNO + ")"; try { SQLHelper.ExecuteSql(sSql); } catch { WriteLog.WriteLogs("执行SQL失败:" + sSql); } } m_timeChanged = timeCurrentChanged; m_RunOptimizePromptTypeSaved = m_RunOptimizePromptTypeCurrent; } else if (m_RunOptimizePromptTypeCurrent != RunOptimizePromptType.Optimized) { if ((m_timeAccept - m_timeChanged).TotalSeconds > 0 || (m_timeRefuse - m_timeChanged).TotalSeconds > 0) { if ((m_timeAccept - m_timeRefuse).TotalSeconds > 0) //点击“接受”之后的时间判断 { if ((DateTime.Now - m_timeAccept).TotalMinutes > 30) //点击“知道了”按钮30分钟之后,如果未优化调整,则再次报警 { m_bIsPromptAlarm = true; } } else//点击窗口关闭按钮之后的时间判断 { if ((DateTime.Now - m_timeRefuse).TotalHours > 8)//点击窗口关闭按钮8小时之后,如果未优化调整,则再次报警 { m_bIsPromptAlarm = true; } } } else { m_bIsPromptAlarm = true; } } }
// 计算运行优化提示类型 /// <summary> /// 计算运行优化提示类型 /// </summary> public static void CalculateRunOptimizePromptType(int UnitNO) { if (GlobalVariables.YXYH_GBY_CN_JS == false) { m_RunOptimizePromptTypeCurrent = RunOptimizePromptType.CNGK; m_bIsPromptAlarm = false; return; } if (GlobalVariables.YXYHTF) { m_RunOptimizePromptTypeCurrent = RunOptimizePromptType.TFGK; m_bIsPromptAlarm = false; return; } double dF019 = 0; //主汽流量 double dF145 = 0; //发电负荷 double dF3152 = TagValue.GetFinishedTagValueFive("F3152"); //热网供水温度 double dF3150 = TagValue.GetFinishedTagValueFive("F3150"); //凝汽器循环进水温度 double dF3410 = TagValue.GetFinishedTagValueFive("F3410"); //优化出水温度上限 double dF3411 = TagValue.GetFinishedTagValueFive("F3411"); //优化出水温度下限 double dF1110 = TagValue.GetFinishedTagValueFive("F1110"); //1#机抽汽流量 //double dF2110 = TagValue.GetFinishedTagValueFive("F2110");//2#机抽汽流量 double dF3161 = TagValue.GetFinishedTagValueFive("F3161"); //三期热网供水实时流量(至外网) double dF3501 = TagValue.GetFinishedTagValueFive("F3501"); //二期热网供水实时流量(至外网) double dF3222 = TagValue.GetFinishedTagValueFive("F3222"); //优化热网水量 double dF3002 = TagValue.GetFinishedTagValueFive("F3002"); //末级叶片颤振值 dF019 = TagValue.GetFinishedTagValueFive("F1019"); dF145 = TagValue.GetFinishedTagValueFive("F1145"); if (dF145 < 100)//发电负荷小于100相当于停机,退出不做判断 { return; } m_RunOptimizePromptTypeCurrent = RunOptimizePromptType.Optimized; if (dF019 > 1000) //主汽量大于1000吨/小时 { if (dF145 < 260) //负荷小于26万 { if (dF3152 > dF3410 || dF3150 > 50) //供水温度高于计算温度 { //if (dF2110 > 5)//临机有抽气流量 // m_RunOptimizePromptTypeCurrent = RunOptimizePromptType.ReduceThatSteamExtractionCapacity; if (dF1110 > 5)//本机有抽气流量 { m_RunOptimizePromptTypeCurrent = RunOptimizePromptType.ReduceThisSteamExtractionCapacity; } else if (dF3161 + dF3501 < dF3222) { m_RunOptimizePromptTypeCurrent = RunOptimizePromptType.IncreaseHeadingNetworkWaterCapacity; } } } } else { if (dF3161 + dF3501 < dF3222) { m_RunOptimizePromptTypeCurrent = RunOptimizePromptType.IncreaseHeadingNetworkWaterCapacity; } if (m_RunOptimizePromptTypeCurrent == RunOptimizePromptType.Optimized && (dF3152 > dF3410 || dF3150 > 50))//供水温度高,或热网回水温度高于48度 { //if (dF2110 > 5)//临机有抽气流量 // m_RunOptimizePromptTypeCurrent = RunOptimizePromptType.ReduceThatSteamExtractionCapacity; if (dF1110 > 5)//本机有抽气流量 { m_RunOptimizePromptTypeCurrent = RunOptimizePromptType.ReduceThisSteamExtractionCapacity; } else if (dF3161 + dF3501 < dF3222) { m_RunOptimizePromptTypeCurrent = RunOptimizePromptType.IncreaseHeadingNetworkWaterCapacity; } } if (m_RunOptimizePromptTypeCurrent == RunOptimizePromptType.Optimized && (dF3152 < dF3411 || dF3150 < 48))//供水温度低,或热网回水温度低于48度 { m_RunOptimizePromptTypeCurrent = RunOptimizePromptType.IncreaseHeadingLoad; } } if (m_RunOptimizePromptTypeCurrent == RunOptimizePromptType.Optimized & dF1110 > 5 & dF3002 < 80) { m_RunOptimizePromptTypeCurrent = RunOptimizePromptType.TGBY; } if (m_RunOptimizePromptTypeCurrent == RunOptimizePromptType.Optimized & dF1110 < 5 & dF3002 > 92) { m_RunOptimizePromptTypeCurrent = RunOptimizePromptType.JDBY; } //try { WriteLog.WriteLogs("yxyh:" + ((int)m_RunOptimizePromptTypeCurrent) + " ; " + GlobalVariables.dtOneRowDataFive.Rows[0]["F3322"].ToString()); } //catch { } JustPromptAlarm(UnitNO); if (m_bIsPromptAlarm) { timerSound.Start(); } }