using System;
using System.Text;
using System.Data;
using System.Collections;
using SystemFramework;
using bizFacade;
namespace bizFacade
{
///
/// Alarm 产生报警。
///
public class AlarmOpcServer
{
///
///
///
public static DataTable alarmView;
///
/// 产生报警
///
private Hashtable table_MSGBIT1;
///
/// 解除报警
///
private Hashtable table_MSGBIT2;
///
/// 报警列表
///
private Hashtable table_AlarmStart;
/////
///// 报警代码
/////
//private int NR;
/////
///// 系统启动后,没有解除的报警
/////
//private static DataTable AlarmStart;
///
/// 新产生报警临时表
///
private DataTable AlarmTemp;
///
/// 解除的报警临时表
///
private DataTable AlarmTempOK;
/////
///// 时时产生的报警文本
/////
//private DataTable PLC_AlgViewCHT_Temp;
///
/// 报警变量基本文本
///
private DataTable PLC_MSMsgs_WORK;
//DataRow[] alarmDataRow;
//string strWhere;
///
///
///
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);
}
///
/// 产生报警文本
///
///
///
///
///
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;
}
}
}
}