Ejemplo n.º 1
0
 // 判断提示报警标记
 /// <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;
         }
     }
 }
Ejemplo n.º 2
0
        // 计算运行优化提示类型
        /// <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();
            }
        }