public void Dispose() { if (m_DataAccess != null) { m_DataAccess.Dispose(); } m_DataAccess = null; }
public static void TagTest() { String[] tags = { @"\mjdc\DCS2\TE_32254D_PV", @"\mjdc\DCS2\TE_32254E_PV", @"\mjdc\DCS2\TE_32254F_PV" }; Dictionary <String, TagValue> lttvs = new Dictionary <String, TagValue>(); foreach (String tag in tags) { lttvs.Add(tag.ToUpper(), new TagValue(tag.ToUpper())); } String strError = ""; RTInterface RTDataAccess = DBAccess.GetRealTime(); RTDataAccess.SetPointList(lttvs, out strError); if (!String.IsNullOrEmpty(strError)) { Console.WriteLine(strError); Console.ReadLine(); } RTDataAccess.GetSnapshotListData(ref lttvs, out strError); if (!String.IsNullOrEmpty(strError)) { Console.WriteLine(strError); return; } foreach (String tag in lttvs.Keys) { Console.WriteLine(tag + "=" + lttvs[tag].TagSnapshot); } Console.ReadLine(); }
private Double ExpCurrentValue(String expression) { RTInterface RTDataAccess = DBAccess.GetRealTime(); try { if (String.IsNullOrEmpty(expression)) { return(Double.MinValue); } int pos = expression.LastIndexOf("'") - 1; if (pos <= 0) { return(double.MinValue); } String tagName = expression.Substring(1, pos); double tagValue = RTDataAccess.GetSnapshotValue(tagName); String Token = expression.Substring(pos + 2, 1); pos = expression.IndexOf(Token) + 1; String Val = expression.Substring(pos, expression.Length - pos); double targetValue = Convert.ToDouble(Val); return(tagValue - targetValue); } catch (Exception ex) { m_Loger.Error("解析机组运行条件处发生错误", ex); return(double.MinValue); } }
public void Dispose() { if (m_DataAccess != null) { m_DataAccess.Dispose(); } m_DataAccess = null; }
public WS_KPISubMethod() { m_RTDataAccess = DBAccess.GetRealTime(); m_KPIVar = new WS_KPIVar(); m_ExpressionParse = new ExpDone(); m_DBClient = new WS_KPIDBClient(); m_KPIValueTable = m_DBClient.GetTableSchema("kpivalue"); m_TagValueTable = m_DBClient.GetTableSchema("tagvalue"); }
private static void GetArchiveData() { RTInterface RTDataAccess = DBAccess.GetRealTime(); String TagID = @"\mjdc\DCS2\TE_32254E_PV"; DateTime endTime = DateTime.Now; DateTime beginTime = endTime.AddMinutes(-10); List <TagValue> TagValues = RTDataAccess.GetHistoryDataList(TagID, beginTime, endTime); Console.WriteLine(""); foreach (TagValue tagvalue in TagValues) { Console.WriteLine(String.Format("测点{0}监测时间:{1}—值是:{2}", TagID, tagvalue.TimeStamp, tagvalue.TagStringValue)); } }
private static void GetUnitLoad() { RTInterface m_RTDataAccess = DBAccess.GetRealTime(); DateTime StartTime = new DateTime(2014, 2, 14, 2, 45, 0), EndTime = new DateTime(2014, 2, 14, 3, 1, 0); double UnitLoad = 0; Console.WriteLine(""); while (StartTime <= EndTime) { UnitLoad = m_RTDataAccess.GetArchiveValue(@"\mjdc\DCS1\HIC_31MW", StartTime); Console.WriteLine(StartTime.ToString("yyyy-MM-dd HH:mm:00") + "1#机组负荷:" + UnitLoad); StartTime = StartTime.AddMinutes(1); } Console.Read(); }
public void InitCalculate(RTInterface mdataAccess, OverLimitConfigEntity overLimitConfig, DateTime startDate, DateTime endDate) { m_DataAccess = mdataAccess; if (CheckUnitIsRunning(overLimitConfig.UnitID) == false) return; List<TagValue> tagAttributeList = RTDataAccess.GetHistoryDataList(overLimitConfig.TagCode, startDate, endDate); if (tagAttributeList == null || tagAttributeList.Count <= 0) { m_Logger.InfoFormat("读取测点{0}{1}信息失败!", overLimitConfig.TagCode, overLimitConfig.TagDesc); return; } tagAttributeList = tagAttributeList.OrderBy(p => p.TimeStamp).ToList<TagValue>(); Calculate(overLimitConfig, tagAttributeList); }
public void InitCalculate(RTInterface mdataAccess, OverLimitConfigEntity overLimitConfig, DateTime startDate, DateTime endDate) { m_DataAccess = mdataAccess; if (CheckUnitIsRunning(overLimitConfig.UnitID) == false) { return; } List <TagValue> tagAttributeList = RTDataAccess.GetHistoryDataList(overLimitConfig.TagCode, startDate, endDate); if (tagAttributeList == null || tagAttributeList.Count <= 0) { m_Logger.InfoFormat("读取测点{0}{1}信息失败!", overLimitConfig.TagCode, overLimitConfig.TagDesc); return; } tagAttributeList = tagAttributeList.OrderBy(p => p.TimeStamp).ToList <TagValue>(); Calculate(overLimitConfig, tagAttributeList); }
private RTInterface m_DataAccess; //= DBAccess.GetRealTime(); internal AlarmProductor() { m_DataAccess = DBAccess.GetRealTime(); }
private static void RTTest() { RTInterface m_RTDataAccess = DBAccess.GetRealTime(); m_RTDataAccess.ExpCurrentValue("'\\mjdc\\DCS2\\HIC_32MW'>300"); }
public bool SnapshotCalc() { bool bGood = false; bool bIDL = false; //DataTable dtUnit = KPI_UnitDal.GetUnitIDs(""); //if (dtUnit == null || dtUnit.Rows.Count <= 0) { // return true; //} //else { List <KPI_UnitEntity> UnitList; using (KPI_UnitDal DataAccess = new KPI_UnitDal()) { UnitList = DataAccess.GetUnitIDs(""); } foreach (KPI_UnitEntity Unit in UnitList) { //string UnitID = Unit.UnitID; //string UnitName = KPI_UnitDal.GetUnitName(UnitID); if (string.IsNullOrEmpty(Unit.UnitID)) { continue; } //DataTable tags = Race_TagDal.GetTags(Unit.UnitID); List <Race_TagEntity> RaceTagList; using (Race_TagDal DataAccess = new Race_TagDal()) { RaceTagList = DataAccess.GetTagList(Unit.UnitID); } //if (tags == null || tags.Rows.Count <= 0) { // return true; //} if (RaceTagList.Count <= 0) { return(true); } string WorkID = Unit.WorkID; string CurrentTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); string ShiftName = ""; string PeriodName = ""; string StartTime = ""; string EndTime = ""; bGood = KPI_WorkDal.GetShiftAndPeriod(WorkID, CurrentTime, ref ShiftName, ref PeriodName, ref StartTime, ref EndTime); if (!bGood) { return(false); } DateTime dts = DateTime.Parse(StartTime); DateTime dte = DateTime.Parse(EndTime); //从当前值的开始时间到当前时间的统计 DateTime dtc = DateTime.Parse(CurrentTime); ////////////////////////////////////////////////////////////////////////////////// //是否需要补算上一班的数据 //并将数据写入到Archive中 TimeSpan tspan = dtc - dts; if (tspan.TotalMinutes < 10) { //刚好在交班时间内,需要将历史统计一下 bIDL = true; } if (bIDL) { string HStartTime = dts.AddMinutes(-2 * tspan.TotalMinutes).ToString("yyyy-MM-dd HH:mm:ss"); string HEndTime = dtc.ToString("yyyy-MM-dd HH:mm:ss"); LastShiftCalc(Unit.UnitID, HStartTime, HEndTime); } //////////////////////////////////////////////////////////////////////// //判断时间是否太小 TimeSpan tscs = dtc - dts; if (tscs.TotalMinutes < 5) { //间隔太小,不计算 continue; } //////////////////////////////////////////////////////////////////////// //string PeriodID = KPI_PeriodDal.GetPeriodID(PeriodName); //string ShiftID = KPI_ShiftDal.GetShiftID(ShiftName); RTInterface RTDB = DBAccess.GetRealTime(); //实时计算 foreach (Race_TagEntity RaceTag in RaceTagList) { //string TagID = tags.Rows[i]["TagID"].ToString(); decimal TagValue = decimal.MinValue; //Race_TagEntity tentity = Race_TagDal.GetEntity(TagID); if (RaceTag.TagCalcExpType == 0) { TagValue = Convert.ToDecimal(RTDB.TagCalculatedData(RaceTag.TagCalcExp, dts, dtc, RaceTag.TagFilterExp, GetRaceTagCalcType(RaceTag.TagCalcType))); //Random rdm = new Random(); //TagValue = rdm.NextDouble() * 100; if (TagValue == decimal.MinValue) { LogUtil.LogMessage(RaceTag.TagDesc + "数据出现错误!"); continue; } TagValue = Convert.ToDecimal(TagValue) * RaceTag.TagFactor + RaceTag.TagOffset; } else if (RaceTag.TagCalcExpType == 1) { TagValue = Convert.ToDecimal(RTDB.ExpCalculatedData(RaceTag.TagCalcExp, dts, dtc, RaceTag.TagFilterExp, GetRaceTagCalcType(RaceTag.TagCalcType))); //Random rdm = new Random(); //TagValue = rdm.NextDouble() * 100; if (TagValue == decimal.MinValue) { LogUtil.LogMessage(RaceTag.TagDesc + "数据出现错误!"); continue; } TagValue = TagValue * RaceTag.TagFactor + RaceTag.TagOffset; } else if (RaceTag.TagCalcExpType == 2) { Random rdm = new Random(); TagValue = Convert.ToDecimal(rdm.NextDouble() * 100); if (TagValue == decimal.MinValue) { LogUtil.LogMessage(RaceTag.TagDesc + "数据出现错误!"); continue; } TagValue = TagValue * RaceTag.TagFactor + RaceTag.TagOffset; } //update and insert if (GetSnapshotExits(RaceTag.TagID, ShiftName)) { //update //Race_SnapshotEntity sse = new Race_SnapshotEntity(); ////sse.TagID = TagID; ////sse.UnitID = UnitID; ////sse.TagType = tentity.TagType; //sse.TagShift = ShiftID; //sse.TagPeriod = PeriodID; //sse.TagStartTime = StartTime; //sse.TagEndTime = EndTime; //sse.TagValue = TagValue; string sql = @"update Race_Snapshot set TagPeriod='{0}', TagStartTime='{1}', TagEndTime='{2}', TagValue={3} where TagID='{4}' and TagShift='{5}'"; sql = string.Format(sql, PeriodName, StartTime, EndTime, TagValue.ToString(), RaceTag.TagID, ShiftName); DBAccess.GetRelation().ExecuteNonQuery(sql); } else { //insert Race_SnapshotEntity sse = new Race_SnapshotEntity(); sse.TagID = RaceTag.TagID; sse.UnitID = Unit.UnitID; sse.TagType = RaceTag.TagType; sse.TagShift = ShiftName; sse.TagPeriod = PeriodName; sse.TagStartTime = StartTime; sse.TagEndTime = EndTime; sse.TagValue = Convert.ToDouble(TagValue); Race_SnapshotDal.Insert(sse); } //update and insert if (GetArchiveExits(RaceTag.TagID, ShiftName, StartTime)) { //update //Race_ArchiveEntity sse = new Race_ArchiveEntity(); ////sse.TagID = TagID; ////sse.UnitID = UnitID; ////sse.TagType = tentity.TagType; //sse.TagShift = ShiftID; //sse.TagPeriod = PeriodID; //sse.TagStartTime = StartTime; //sse.TagEndTime = EndTime; //sse.TagValue = TagValue; string sql = @"update Race_Archive set TagPeriod='{0}', TagEndTime='{1}', TagValue={2} where TagID='{3}' and TagShift='{4}' and TagStartTime='{5}'"; sql = string.Format(sql, PeriodName, EndTime, TagValue.ToString(), RaceTag.TagID, ShiftName, StartTime); DBAccess.GetRelation().ExecuteNonQuery(sql); } else { //insert Race_ArchiveEntity sse = new Race_ArchiveEntity(); sse.TagID = RaceTag.TagID; sse.UnitID = Unit.UnitID; sse.TagType = RaceTag.TagType; sse.TagShift = ShiftName; sse.TagPeriod = PeriodName; sse.TagStartTime = StartTime; sse.TagEndTime = EndTime; sse.TagValue = Convert.ToDouble(TagValue); Race_ArchiveDal.Insert(sse); } } } return(true); }
/// <summary> /// Race_Archive的操作 /// </summary> /// <returns></returns> public static bool HistoryCalc(DateTime dtSTime, DateTime dtETime) { bool bGood = false; //bool bIDL = false; //DataTable dtUnit = KPI_UnitDal.GetUnitIDs(""); List <KPI_UnitEntity> UnitList; using (KPI_UnitDal DataAccess = new KPI_UnitDal()) { UnitList = DataAccess.GetUnitIDs(""); } //if (dtUnit == null || dtUnit.Rows.Count <= 0) { // return true; //} //else { // for (int k = 0; k < dtUnit.Rows.Count; k++) { foreach (KPI_UnitEntity Unit in UnitList) { //string UnitID = dtUnit.Rows[k]["UnitID"].ToString(); //string UnitName = KPI_UnitDal.GetUnitName(UnitID); string HStartTime = dtSTime.ToString("yyyy-MM-dd HH:mm:ss"); string HEndTime = dtETime.ToString("yyyy-MM-dd HH:mm:ss"); if (string.IsNullOrEmpty(Unit.UnitID)) { continue; } //DataTable tags = Race_TagDal.GetTags(Unit.UnitID); //if (tags == null || tags.Rows.Count <= 0) { // return true; //} List <Race_TagEntity> RaceTagList; using (Race_TagDal DataAccess = new Race_TagDal()) { RaceTagList = DataAccess.GetTagList(Unit.UnitID); } if (RaceTagList.Count <= 0) { return(true); } //delete string sql = @"delete Race_Archive where UnitID='{0}' and (TagStartTime>'{1}' and TagStartTime<'{2}') "; sql = string.Format(sql, Unit.UnitID, HStartTime, HEndTime); DBAccess.GetRelation().ExecuteNonQuery(sql); //insert string WorkID = KPI_UnitDal.GetWorkIDByID(Unit.UnitID); bool bCalc = true; while (bCalc) { string ShiftName = ""; string PeriodName = ""; string StartTime = ""; string EndTime = ""; bGood = KPI_WorkDal.GetShiftAndPeriod(WorkID, HStartTime, ref ShiftName, ref PeriodName, ref StartTime, ref EndTime); if (!bGood) { return(false); } if (DateTime.Parse(EndTime) > DateTime.Parse(HEndTime)) { //While 循环结束 bCalc = false; continue; } DateTime dts = DateTime.Parse(StartTime); DateTime dte = DateTime.Parse(EndTime); //string PeriodID = KPI_PeriodDal.GetPeriodID(PeriodName); //string ShiftID = KPI_ShiftDal.GetShiftID(ShiftName); //历史计算 foreach (Race_TagEntity RaceTag in RaceTagList) { //string TagID = tags.Rows[i]["TagID"].ToString(); decimal TagValue = decimal.MinValue; RTInterface RTDB = DBAccess.GetRealTime(); //Race_TagEntity tentity = Race_TagDal.GetEntity(RaceTag.TagID); if (RaceTag.TagCalcExpType == 0) { TagValue = Convert.ToDecimal(RTDB.TagCalculatedData(RaceTag.TagCalcExp, dts, dte, RaceTag.TagFilterExp, GetRaceTagCalcType(RaceTag.TagCalcType))); //Random rdm = new Random(); //TagValue = rdm.NextDouble() * 100; if (TagValue == decimal.MinValue) { LogUtil.LogMessage(RaceTag.TagDesc + "数据出现错误!"); continue; } TagValue = TagValue * RaceTag.TagFactor + RaceTag.TagOffset; } else if (RaceTag.TagCalcExpType == 1) { TagValue = Convert.ToDecimal(RTDB.ExpCalculatedData(RaceTag.TagCalcExp, dts, dte, RaceTag.TagFilterExp, GetRaceTagCalcType(RaceTag.TagCalcType))); //Random rdm = new Random(); //TagValue = rdm.NextDouble() * 100; if (TagValue == decimal.MinValue) { LogUtil.LogMessage(RaceTag.TagDesc + "数据出现错误!"); continue; } TagValue = TagValue * RaceTag.TagFactor + RaceTag.TagOffset; } else if (RaceTag.TagCalcExpType == 2) { Random rdm = new Random(); TagValue = Convert.ToDecimal(rdm.NextDouble() * 100); if (TagValue == decimal.MinValue) { LogUtil.LogMessage(RaceTag.TagDesc + "数据出现错误!"); continue; } TagValue = TagValue * RaceTag.TagFactor + RaceTag.TagOffset; } //insert Archive //insert Race_ArchiveEntity sae = new Race_ArchiveEntity(); sae.TagID = RaceTag.TagID; sae.UnitID = Unit.UnitID; sae.TagType = RaceTag.TagType; sae.TagShift = ShiftName; sae.TagPeriod = PeriodName; sae.TagStartTime = StartTime; sae.TagEndTime = EndTime; sae.TagValue = Convert.ToDouble(TagValue); Race_ArchiveDal.Insert(sae); } HStartTime = EndTime; } } return(true); }
public void Dispose() { m_DataAccess.Dispose(); m_DataAccess = null; }
internal WS_RaceSubMethod() { m_DB = DBAccess.GetRelation(); m_RTDB = DBAccess.GetRealTime(); }
internal AlarmProductor() { m_DataAccess = DBAccess.GetRealTime(); m_Cache = new Dictionary<string, bool>(); }
public void Dispose() { m_DataAccess.Dispose(); m_DataAccess = null; }
internal AlarmProductor() { m_DataAccess = DBAccess.GetRealTime(); m_Cache = new Dictionary <string, bool>(); }
internal WS_RaceSubMethod() { m_DB = DBAccess.GetRelation(); m_RTDB = DBAccess.GetRealTime(); }
/// <summary> /// Race_Archive的操作 /// </summary> /// <returns></returns> public static bool LastShiftCalc(string UnitID, string HStartTime, string HEndTime) { bool bGood = false; if (UnitID == "") { return(false); } string UnitName = KPI_UnitDal.GetUnitName(UnitID); //DataTable tags = Race_TagDal.GetTags(UnitID); List <Race_TagEntity> RaceTagList; using (Race_TagDal DataAccess = new Race_TagDal()) { RaceTagList = DataAccess.GetTagList(UnitID); } if (RaceTagList.Count <= 0) { return(true); } //if (tags == null || tags.Rows.Count <= 0) { // return true; //} //delete string sql = @"delete Race_Archive where UnitID='{0}' and (TagStartTime>'{1}' and TagStartTime<'{2}') "; sql = string.Format(sql, UnitID, HStartTime, HEndTime); DBAccess.GetRelation().ExecuteNonQuery(sql); //insert string WorkID = KPI_UnitDal.GetWorkIDByID(UnitID); string ShiftName = ""; string PeriodName = ""; string StartTime = ""; string EndTime = ""; bGood = KPI_WorkDal.GetShiftAndPeriod(WorkID, HStartTime, ref ShiftName, ref PeriodName, ref StartTime, ref EndTime); if (!bGood) { return(false); } DateTime dts = DateTime.Parse(StartTime); DateTime dte = DateTime.Parse(EndTime); //string PeriodID = KPI_PeriodDal.GetPeriodID(PeriodName); //string ShiftID = KPI_ShiftDal.GetShiftID(ShiftName); //历史计算 foreach (Race_TagEntity RaceTag in RaceTagList) { //string TagID = tags.Rows[i]["TagID"].ToString(); decimal TagValue = decimal.MinValue; RTInterface RTDB = DBAccess.GetRealTime(); //Race_TagEntity tentity = Race_TagDal.GetEntity(RaceTag.TagID); if (RaceTag.TagCalcExpType == 0) { TagValue = Convert.ToDecimal(RTDB.TagCalculatedData(RaceTag.TagCalcExp, dts, dte, RaceTag.TagFilterExp, GetRaceTagCalcType(RaceTag.TagCalcType))); //Random rdm = new Random(); //TagValue = rdm.NextDouble() * 100; if (TagValue == decimal.MinValue) { LogUtil.LogMessage(RaceTag.TagDesc + "数据出现错误!"); continue; } TagValue = TagValue * RaceTag.TagFactor + RaceTag.TagOffset; } else if (RaceTag.TagCalcExpType == 1) { TagValue = Convert.ToDecimal(RTDB.ExpCalculatedData(RaceTag.TagCalcExp, dts, dte, RaceTag.TagFilterExp, GetRaceTagCalcType(RaceTag.TagCalcType))); //Random rdm = new Random(); //TagValue = rdm.NextDouble() * 100; if (TagValue == decimal.MinValue) { LogUtil.LogMessage(RaceTag.TagDesc + "数据出现错误!"); continue; } TagValue = TagValue * RaceTag.TagFactor + RaceTag.TagOffset; } else if (RaceTag.TagCalcExpType == 2) { Random rdm = new Random(); TagValue = Convert.ToDecimal(rdm.NextDouble() * 100); if (TagValue == decimal.MinValue) { LogUtil.LogMessage(RaceTag.TagDesc + "数据出现错误!"); continue; } TagValue = TagValue * RaceTag.TagFactor + RaceTag.TagOffset; } //update Snapshot if (GetSnapshotExits(RaceTag.TagID, ShiftName)) { //update //Race_SnapshotEntity sse = new Race_SnapshotEntity(); ////sse.TagID = TagID; ////sse.UnitID = UnitID; ////sse.TagType = tentity.TagType; //sse.TagShift = ShiftID; //sse.TagPeriod = PeriodID; //sse.TagStartTime = StartTime; //sse.TagEndTime = EndTime; //sse.TagValue = TagValue; sql = @"update Race_Snapshot set TagPeriod='{0}', TagStartTime='{1}', TagEndTime='{2}', TagValue={3} where TagID='{4}' and TagShift='{5}'"; sql = string.Format(sql, PeriodName, StartTime, EndTime, TagValue.ToString(), RaceTag.TagID, ShiftName); DBAccess.GetRelation().ExecuteNonQuery(sql); } else { //insert Race_SnapshotEntity sse = new Race_SnapshotEntity(); sse.TagID = RaceTag.TagID; sse.UnitID = UnitID; sse.TagType = RaceTag.TagType; sse.TagShift = ShiftName; sse.TagPeriod = PeriodName; sse.TagStartTime = StartTime; sse.TagEndTime = EndTime; sse.TagValue = Convert.ToDouble(TagValue); Race_SnapshotDal.Insert(sse); } //insert Archive //insert Race_ArchiveEntity sae = new Race_ArchiveEntity(); sae.TagID = RaceTag.TagID; sae.UnitID = UnitID; // sae.TagType = tentity.TagType; sae.TagShift = ShiftName; sae.TagPeriod = PeriodName; sae.TagStartTime = StartTime; sae.TagEndTime = EndTime; sae.TagValue = Convert.ToDouble(TagValue); Race_ArchiveDal.Insert(sae); } return(true); }
private RTInterface m_DataAccess; //= DBAccess.GetRealTime(); #endregion Fields #region Constructors internal AlarmProductor() { m_DataAccess = DBAccess.GetRealTime(); }