Files
2026-05-29 10:07:05 +08:00

130 lines
4.4 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using System.Text;
using System.Data;
using System.Collections;
using SystemFramework;
using bizFacade;
namespace bizFacade
{
/// <summary>
/// Alarm 产生报警。
/// </summary>
public class AlarmOpcServer
{
/// <summary>
///
/// </summary>
public static DataTable alarmView;
/// <summary>
/// 产生报警
/// </summary>
private Hashtable table_MSGBIT1;
/// <summary>
/// 解除报警
/// </summary>
private Hashtable table_MSGBIT2;
/// <summary>
/// 报警列表
/// </summary>
private Hashtable table_AlarmStart;
///// <summary>
///// 报警代码
///// </summary>
//private int NR;
///// <summary>
///// 系统启动后,没有解除的报警
///// </summary>
//private static DataTable AlarmStart;
/// <summary>
/// 新产生报警临时表
/// </summary>
private DataTable AlarmTemp;
/// <summary>
/// 解除的报警临时表
/// </summary>
private DataTable AlarmTempOK;
///// <summary>
///// 时时产生的报警文本
///// </summary>
//private DataTable PLC_AlgViewCHT_Temp;
/// <summary>
/// 报警变量基本文本
/// </summary>
private DataTable PLC_MSMsgs_WORK;
//DataRow[] alarmDataRow;
//string strWhere;
/// <summary>
///
/// </summary>
public AlarmOpcServer()
{
//
// TODO: 在此处添加构造函数逻辑
//
table_MSGBIT1 = new Hashtable();
table_MSGBIT2 = new Hashtable();
table_AlarmStart = new Hashtable();
//目的是创建AlarmStart数据表结构
//QualityDataSystem.AlarmStartSelect(out AlarmStart);
QualityDataSystem.PLC_MSMsgs_WORKSelect(out PLC_MSMsgs_WORK);
//Init_table_AlarmStart(AlarmStart);
AlarmTemp = AlarmCommonFunction.BuildDataTablesAlarmView(); // AlarmStart.Clone();
AlarmTempOK = AlarmCommonFunction.BuildDataTablesAlarmView();// AlarmStart.Clone();
alarmView = AlarmCommonFunction.BuildDataTablesAlarmView(); //GetInitAlarmStart(AlarmStart);
}
/// <summary>
/// 产生报警文本
/// </summary>
/// <param name="MSGVAR_Value"></param>
/// <param name="inValue"></param>
/// <param name="dateTimeValue"></param>
/// <returns></returns>
public DataTable AlarmInsert(int MSGVAR_Value, object inValue, DateTime dateTimeValue)
{
try
{
//DataRow dataRow;
DataTable algView ;//= AlarmCommonFunction.BuildDataTablesAlarmView();
int alarmValue;
alarmValue = Convert.ToInt32(inValue);
//获得报警值的报警位
AlarmCommonFunction.GetBit(alarmValue,out table_MSGBIT1,out table_MSGBIT2);
// 新产生报警临时表
// AlarmTemp
AlarmCommonFunction.CraeteAlarmTemp(MSGVAR_Value, inValue, dateTimeValue,
table_MSGBIT1, PLC_MSMsgs_WORK,
ref AlarmTemp, ref table_AlarmStart);
//// 新产生报警临时表
//// AlarmTemp
//CraeteAlarmTemp(MSGVAR_Value, inValue, dateTimeValue);
// 新产生解除报警临时表
// AlarmTempOK
AlarmCommonFunction.ReleaseAlarmTemp(MSGVAR_Value, inValue, dateTimeValue,
table_MSGBIT2, PLC_MSMsgs_WORK,
ref AlarmTempOK, ref table_AlarmStart);
//ReleaseAlarmTemp(MSGVAR_Value, inValue, dateTimeValue);
algView = AlarmCommonFunction.GetAlarmView(AlarmTemp, AlarmTempOK);
return algView;
}
catch (Exception err)
{
ApplicationLog.WriteLog(err, "\r\nAlarmInsert产生报警模块\r\nAlarmInsert\r\nMSGVAR_Value(TagID)=" + MSGVAR_Value.ToString() + "\r\ninValue=" + inValue.ToString());
return null;
}
}
}
}