You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

95 lines
3.7 KiB
C#

using DevExpress.XtraBars.Alerter;
using Mesnac.Action.ChemicalWeighing.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Mesnac.Action.ChemicalWeighing.FinishBatch.SaveHelper
{
public class AlarmSaveHelper
{
/// <summary>
/// 报警保存事件定义
/// </summary>
public static event EventHandler OnAlarmSave;
public static event EventHandler OnAlarmSaveExtend;
public static object sender = null;
public static object senderExtend = null;
private static int WordLength = 16; //定义字长
static List<SimpleAlarmInfo> _alarmBlockWordList;
/// <summary>
/// 保存报警信息 2023
/// </summary>
public static void Save()
{
#region 读取PLC的报警数据
#region 保存报警数据
_alarmBlockWordList = Alarm.AlarmHelper.QueryAlarmLog();
if (_alarmBlockWordList == null) return;
foreach (Entity.SimpleAlarmInfo sai in _alarmBlockWordList)
{
DataKeyValue plt_param = new DataKeyValue(sai.Alarm_Alias);
if (plt_param.NowValue.ToInt() == 1)
{
//保存到数据库
//数据保存
// Entity.PmtAlarmInfo alarmInfo = Cache.CacheHelper.GetPmtAlarmInfoFromCache(sai.AlramPLC, sai.AlarmBlock, sai.Alarm_Alias);
if (!Alarm.AlarmHelper.IsExist(sai.Alarm_ID))
{
LR_Alarmlog alarmLogData = new LR_Alarmlog();
alarmLogData.Equip_Code = "01";
alarmLogData.Alarm_ID = sai.Alarm_ID;
alarmLogData.Alarm_OccurTime = DateTime.Now.ToString();
alarmLogData.Alarm_ClearTime = String.Empty;
alarmLogData.Alarm_Status = 1;
alarmLogData.Alarm_GUID = Guid.NewGuid().ToString().ToUpper();
Alarm.AlarmHelper.InsertAlarmLogData(alarmLogData);
}
else
{
LR_Alarmlog alarmLog = new LR_Alarmlog();
alarmLog.Equip_Code = "01";
alarmLog.Alarm_ID = sai.Alarm_ID;
alarmLog.Alarm_OccurTime = DateTime.Now.ToString();
alarmLog.Alarm_ClearTime = String.Empty;
alarmLog.Alarm_Status = 0;
Alarm.AlarmHelper.UpdateAlarmLogData(sai.Alarm_ID, DateTime.Now.ToString());
}
}
else
{
LR_Alarmlog alarmLog = new LR_Alarmlog();
alarmLog.Equip_Code = "01";
alarmLog.Alarm_ID = sai.Alarm_ID;
alarmLog.Alarm_OccurTime = DateTime.Now.ToString();
alarmLog.Alarm_ClearTime = String.Empty;
alarmLog.Alarm_Status = 0;
Alarm.AlarmHelper.UpdateAlarmLogData(sai.Alarm_ID, DateTime.Now.ToString());
}
}
#region 触发事件
//if (OnAlarmSave != null && Global.PublicVar.Instance.isFlashFlag)
//{
// OnAlarmSave(sender, System.EventArgs.Empty);
//}
//if (OnAlarmSaveExtend != null && Global.PublicVar.Instance.isFlashFlagExtend)
//{
// OnAlarmSaveExtend(senderExtend, System.EventArgs.Empty);
//}
#endregion
#endregion 保存报警数据
#endregion 保存报警数据
}
}
}