|
@@ -297,7 +297,7 @@ namespace MainForm
|
|
|
AddMessage(LogType.Info, "小米IOT MQTT初始连接成功!");
|
|
|
|
|
|
// 设置回调函数
|
|
|
- XiaomiMqttClient_Extend.SetCallbackWithDataId(CallbackWithDataId);
|
|
|
+ //XiaomiMqttClient_Extend.SetCallbackWithDataId(CallbackWithDataId);
|
|
|
// 配置参数
|
|
|
XiaomiMqttLoginFunAndParam param = new XiaomiMqttLoginFunAndParam();
|
|
|
// fds
|
|
@@ -444,7 +444,7 @@ namespace MainForm
|
|
|
task.Start();
|
|
|
}
|
|
|
|
|
|
- //// 开启“获取线体报警数据”的线程
|
|
|
+ //// 开启iot的线程
|
|
|
TaskReadAlarm.Start();
|
|
|
////下传MES信息给1工位(先判断下plc对象数量)
|
|
|
//if (Funs.Count > 1)
|
|
@@ -674,333 +674,345 @@ namespace MainForm
|
|
|
// UpdatePLCMonitor(1, -2, 0);
|
|
|
// continue;
|
|
|
//}
|
|
|
- if (plc1Alarm.IsConnected) // 检查PLC是否已连接上
|
|
|
+ foreach (Inovance_EIP plcEIP in FunsEip.Values)
|
|
|
{
|
|
|
- #region 主页展示设备运行状态并上传到IOT中
|
|
|
- switch (xmDeviceState)
|
|
|
+ if (plcEIP != null)
|
|
|
{
|
|
|
- case XiaomiDeviceState.Uninitialized: // 未初始化状态(未初始状态,需先初始化装备才能运行)
|
|
|
- _DeviceStates = "未初始化状态";
|
|
|
- lblDeviceStates.Text = _DeviceStates;
|
|
|
- break;
|
|
|
- case XiaomiDeviceState.Initializing: // 初始化状态(初始化进行中)
|
|
|
- _DeviceStates = "初始化状态";
|
|
|
- lblDeviceStates.Text = _DeviceStates;
|
|
|
- break;
|
|
|
- case XiaomiDeviceState.Initialized: // 初始化完成状态(初始化完成)
|
|
|
- _DeviceStates = "初始化完成状态";
|
|
|
- lblDeviceStates.Text = _DeviceStates;
|
|
|
- break;
|
|
|
- case XiaomiDeviceState.Running: // 运行状态(正常运行中)
|
|
|
- _DeviceStates = "运行状态";
|
|
|
- lblDeviceStates.Text = _DeviceStates;
|
|
|
- break;
|
|
|
- case XiaomiDeviceState.Paused: // 暂停状态(设备运行中人工操作暂停,进入此状态)
|
|
|
- _DeviceStates = "暂停状态";
|
|
|
- lblDeviceStates.Text = _DeviceStates;
|
|
|
- break;
|
|
|
- case XiaomiDeviceState.Fault: // 故障状态(发生故障后进入此状态,同时停止运行)
|
|
|
- _DeviceStates = "故障状态";
|
|
|
- lblDeviceStates.Text = _DeviceStates;
|
|
|
- break;
|
|
|
- case XiaomiDeviceState.Alarm: // 警报状态(产生报警后进入此状态,同时停止运行)
|
|
|
- _DeviceStates = "警报状态";
|
|
|
- lblDeviceStates.Text = _DeviceStates;
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
- if (!_DeviceStates.Equals(_DeviceStates_Old))
|
|
|
- {
|
|
|
- var iotResult = SaveDeviceStateData(stationNameStr, xmDeviceState); // 上传+保存
|
|
|
- if (iotResult.Item1 == 1)
|
|
|
+ if (plcEIP.IsConnected)
|
|
|
{
|
|
|
- _DeviceStates_Old = _DeviceStates;
|
|
|
- AddMessage_Station(stationNameStr, LogType.Info, stationNameStr + $"_上传设备状态到Iot成功!");
|
|
|
- }
|
|
|
- else
|
|
|
- AddMessage_Station(stationNameStr, LogType.Info, stationNameStr + $"_上传设备状态到Iot失败!报错信息:[{iotResult.Item1}]_{iotResult.Item2}");
|
|
|
- }
|
|
|
- #endregion 主页展示设备运行状态并上传到IOT中
|
|
|
-
|
|
|
- DateTime dtNow = DateTime.Now;
|
|
|
- //#region 获取设备运行信息
|
|
|
- //try
|
|
|
- //{
|
|
|
- // LineWorkingData_ThisTime lineWorkingData1 = new LineWorkingData_ThisTime();
|
|
|
- // lineWorkingData1.GUID = Guid.NewGuid().ToString();
|
|
|
- // lineWorkingData1.LineName = GlobalContext.LineCode;
|
|
|
-
|
|
|
- // //
|
|
|
- // lineWorkingData1.BootTimeLong = plc1Alarm.ReadHoldingRegisters<float>(5500); // 本次开机时间(整线)D5500 h
|
|
|
- // lineWorkingData1.NormalTimeLong = plc1Alarm.ReadHoldingRegisters<float>(5502); // 本次开机运行时间(整线)D5502 h
|
|
|
- // lineWorkingData1.StandbyTimeLong = plc1Alarm.ReadHoldingRegisters<float>(5504); // 本次开机待机时间(整线)D5504 h
|
|
|
- // lineWorkingData1.FaultTimeLong = plc1Alarm.ReadHoldingRegisters<float>(5506); // 本次开机故障时间(整线)D5506 h
|
|
|
- // lineWorkingData1.MaterialShortageTimeLong = plc1Alarm.ReadHoldingRegisters<float>(5508); // 本次开机缺料时间(整线)D5508 h
|
|
|
- // lineWorkingData1.MaintenanceTimeLong = plc1Alarm.ReadHoldingRegisters<float>(5510); // 本次开机维修时间(整线)D5510 h
|
|
|
- // lineWorkingData1.FaultNumber = plc1Alarm.ReadHoldingRegisters<short>(5514); // 本次开机故障停机次数(整线)D5514
|
|
|
- // lineWorkingData1.OutputNumber = plc1Alarm.ReadHoldingRegisters<short>(5700); // 本次开机产量(整线) D5700
|
|
|
- // lineWorkingData1.QualifiedNumber = plc1Alarm.ReadHoldingRegisters<short>(5704); // 本次开机合格数量(整线) D5704
|
|
|
- // lineWorkingData1.QualifiedRate = plc1Alarm.ReadHoldingRegisters<float>(5710); // 本次开机合格率(整线) D5710
|
|
|
- // lineWorkingData1.DesignRhythm = plc1Alarm.ReadHoldingRegisters<float>(5714); // 设计节拍(整线) D5714
|
|
|
- // lineWorkingData1.RealityRhythm = plc1Alarm.ReadHoldingRegisters<float>(5716); // 本次开机实际节拍(整线) D5716
|
|
|
- // lineWorkingData1.CreateTime = DateTime.Now;
|
|
|
-
|
|
|
- // string lineWorkingData1_Str = JsonConvert.SerializeObject(lineWorkingData1);
|
|
|
-
|
|
|
- // // UI展示-展示到设备状态页
|
|
|
- // if (string.IsNullOrEmpty(lineWorkingData1_OldStr)) // 软件启动后第一次运行
|
|
|
- // {
|
|
|
- // // 查询数据库最新一条数据,确定是不是更新
|
|
|
- // string qSql = @"SELECT top(1) [GUID]
|
|
|
- // ,[LineName]
|
|
|
- // ,[BootTimeLong]
|
|
|
- // ,[NormalTimeLong]
|
|
|
- // ,[StandbyTimeLong]
|
|
|
- // ,[FaultTimeLong]
|
|
|
- // ,[MaterialShortageTimeLong]
|
|
|
- // ,[MaintenanceTimeLong]
|
|
|
- // ,[FaultNumber]
|
|
|
- // ,[OutputNumber]
|
|
|
- // ,[QualifiedNumber]
|
|
|
- // ,[QualifiedRate]
|
|
|
- // ,[DesignRhythm]
|
|
|
- // ,[RealityRhythm]
|
|
|
- // ,[CreateTime]
|
|
|
- // FROM [LineWorkingData]
|
|
|
- // where [CreateTime] > '{0}'
|
|
|
- // and [LineName]='{1}'
|
|
|
- // order by [CreateTime] desc
|
|
|
- // ";
|
|
|
- // qSql = string.Format(qSql, DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00", lineWorkingData1.LineName);
|
|
|
-
|
|
|
- // var ds = SQLHelper_New.Query(qSql, null);
|
|
|
- // if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
|
|
|
- // {
|
|
|
- // var dataDBlast = new LineWorkingData_ThisTime();
|
|
|
- // dataDBlast.GUID = ds.Tables[0].Rows[0][0].ToString(); // 主键
|
|
|
- // dataDBlast.LineName = ds.Tables[0].Rows[0][1].ToString(); // 线体名称
|
|
|
- // dataDBlast.BootTimeLong = Convert.ToSingle(ds.Tables[0].Rows[0][2].ToString()); // 本次开机时间(整线)
|
|
|
- // dataDBlast.CreateTime = Convert.ToDateTime(ds.Tables[0].Rows[0][14].ToString()); // 创建时间
|
|
|
-
|
|
|
- // if (lineWorkingData1.BootTimeLong > dataDBlast.BootTimeLong) // 需要更新的情况;不需要更新的走后面的插入
|
|
|
- // {
|
|
|
- // dataDBlast.BootTimeLong = lineWorkingData1.BootTimeLong; // 本次开机时间(整线)
|
|
|
- // dataDBlast.NormalTimeLong = lineWorkingData1.NormalTimeLong; // 本次开机运行时间(整线)
|
|
|
- // dataDBlast.StandbyTimeLong = lineWorkingData1.StandbyTimeLong; // 本次开机待机时间(整线)
|
|
|
- // dataDBlast.FaultTimeLong = lineWorkingData1.FaultTimeLong; // 本次开机故障时间(整线)
|
|
|
- // dataDBlast.MaterialShortageTimeLong = lineWorkingData1.MaterialShortageTimeLong; // 本次开机缺料时间(整线)
|
|
|
- // dataDBlast.MaintenanceTimeLong = lineWorkingData1.MaintenanceTimeLong; // 本次开机维修时间(整线)
|
|
|
- // dataDBlast.FaultNumber = lineWorkingData1.FaultNumber; // 本次开机故障停机次数(整线)
|
|
|
- // dataDBlast.OutputNumber = lineWorkingData1.OutputNumber; // 本次开机产量(整线)
|
|
|
- // dataDBlast.QualifiedNumber = lineWorkingData1.QualifiedNumber; // 本次开机合格数量(整线)
|
|
|
- // dataDBlast.QualifiedRate = lineWorkingData1.QualifiedRate; // 本次开机合格率(整线)
|
|
|
- // dataDBlast.DesignRhythm = lineWorkingData1.DesignRhythm; // 设计节拍(整线)
|
|
|
- // dataDBlast.RealityRhythm = lineWorkingData1.RealityRhythm; // 本次开机实际节拍(整线)
|
|
|
-
|
|
|
- // string usql = dataDBlast.ToStringUpdate();
|
|
|
- // SQLHelper_New.ExecuteSQL(usql, null);
|
|
|
- // lineWorkingData1_OldStr = JsonConvert.SerializeObject(dataDBlast);
|
|
|
-
|
|
|
- // AddMessage_Station(stationNameStr, LogType.Info, $"更新{BodyRun}完毕![{lineWorkingData1_OldStr}]");
|
|
|
- // //AddMessage_Station(stationNameStr, LogType.Info, $"更新{BodyRun}完毕!");
|
|
|
- // }
|
|
|
- // }
|
|
|
- // else
|
|
|
- // {
|
|
|
- // // 插入
|
|
|
- // SQLHelper_New.ExecuteSQL(lineWorkingData1.ToStringInsert(), null);
|
|
|
- // lineWorkingData1_OldStr = String.Copy(lineWorkingData1_Str);
|
|
|
- // AddMessage_Station(stationNameStr, LogType.Info, $"保存{BodyRun}完毕![{lineWorkingData1_OldStr}]");
|
|
|
- // //AddMessage_Station(stationNameStr, LogType.Info, $"保存{BodyRun}完毕!");
|
|
|
- // }
|
|
|
- // }
|
|
|
- // else if (!lineWorkingData1_Str.Equals(lineWorkingData1_OldStr)) // 非“软件启动后第一次运行”
|
|
|
- // {
|
|
|
- // LineWorkingData_ThisTime lineWorkingData1_Old = string.IsNullOrEmpty(lineWorkingData1_OldStr) ? lineWorkingData1 : JsonConvert.DeserializeObject<LineWorkingData_ThisTime>(lineWorkingData1_OldStr); // 上次的状态信息
|
|
|
-
|
|
|
- // //// 本次开机设备运行情况
|
|
|
- // //LineWorkingData1_ThisTime lineWorkingData_UI = JsonConvert.DeserializeObject<LineWorkingData1_ThisTime>(lineWorkingData1_OldStr);
|
|
|
- // //Task.Run(() =>
|
|
|
- // //{
|
|
|
- // // if (Form_Main.formDevAlarm != null && !Form_Main.formDevAlarm.IsDisposed && Form_Main.formDevAlarm.Visible)
|
|
|
- // // {
|
|
|
- // // Form_Main.formDevAlarm.UpdDeviceStatus_ThisTime(lineWorkingData_UI); // UI更新
|
|
|
- // // }
|
|
|
- // //});
|
|
|
-
|
|
|
- // // 本日设备运行情况
|
|
|
- // // 存数据库(开机时间>上次的开机时间,则更新上次记录;<则作为新数据插入)
|
|
|
- // if (lineWorkingData1.BootTimeLong > lineWorkingData1_Old.BootTimeLong)
|
|
|
- // {
|
|
|
- // // 更新
|
|
|
- // lineWorkingData1_Old.BootTimeLong = lineWorkingData1.BootTimeLong; // 本次开机时间(整线)
|
|
|
- // lineWorkingData1_Old.NormalTimeLong = lineWorkingData1.NormalTimeLong; // 本次开机运行时间(整线)
|
|
|
- // lineWorkingData1_Old.StandbyTimeLong = lineWorkingData1.StandbyTimeLong; // 本次开机待机时间(整线)
|
|
|
- // lineWorkingData1_Old.FaultTimeLong = lineWorkingData1.FaultTimeLong; // 本次开机故障时间(整线)
|
|
|
- // lineWorkingData1_Old.MaterialShortageTimeLong = lineWorkingData1.MaterialShortageTimeLong; // 本次开机缺料时间(整线)
|
|
|
- // lineWorkingData1_Old.MaintenanceTimeLong = lineWorkingData1.MaintenanceTimeLong; // 本次开机维修时间(整线)
|
|
|
- // lineWorkingData1_Old.FaultNumber = lineWorkingData1.FaultNumber; // 本次开机故障停机次数(整线)
|
|
|
- // lineWorkingData1_Old.OutputNumber = lineWorkingData1.OutputNumber; // 本次开机产量(整线)
|
|
|
- // lineWorkingData1_Old.QualifiedNumber = lineWorkingData1.QualifiedNumber; // 本次开机合格数量(整线)
|
|
|
- // lineWorkingData1_Old.QualifiedRate = lineWorkingData1.QualifiedRate; // 本次开机合格率(整线)
|
|
|
- // lineWorkingData1_Old.DesignRhythm = lineWorkingData1.DesignRhythm; // 设计节拍(整线)
|
|
|
- // lineWorkingData1_Old.RealityRhythm = lineWorkingData1.RealityRhythm; // 本次开机实际节拍(整线)
|
|
|
-
|
|
|
- // SQLHelper_New.ExecuteSQL(lineWorkingData1_Old.ToStringUpdate(), null);
|
|
|
- // lineWorkingData1_OldStr = JsonConvert.SerializeObject(lineWorkingData1_Old);
|
|
|
- // AddMessage_Station(stationNameStr, LogType.Info, $"更新{BodyRun}完毕![{lineWorkingData1_OldStr}]");
|
|
|
- // //AddMessage_Station(stationNameStr, LogType.Info, $"更新{BodyRun}完毕!");
|
|
|
- // }
|
|
|
- // else if (lineWorkingData1.BootTimeLong < lineWorkingData1_Old.BootTimeLong)
|
|
|
- // {
|
|
|
- // // 插入
|
|
|
- // SQLHelper_New.ExecuteSQL(lineWorkingData1.ToStringInsert(), null);
|
|
|
- // lineWorkingData1_OldStr = String.Copy(lineWorkingData1_Str);
|
|
|
- // AddMessage_Station(stationNameStr, LogType.Info, $"保存{BodyRun}完毕![{lineWorkingData1_OldStr}]");
|
|
|
- // //AddMessage_Station(stationNameStr, LogType.Info, $"保存{BodyRun}完毕!");
|
|
|
- // }
|
|
|
-
|
|
|
- // await Task.Run(() =>
|
|
|
- // {
|
|
|
- // try
|
|
|
- // {
|
|
|
- // if (Form_Main.formDevAlarm != null && !Form_Main.formDevAlarm.IsDisposed && Form_Main.formDevAlarm.Visible)
|
|
|
- // {
|
|
|
- // Form_Main.formDevAlarm.UpdDeviceStatus_Today(); // UI更新
|
|
|
- // }
|
|
|
- // }
|
|
|
- // catch { }
|
|
|
- // });
|
|
|
- // }
|
|
|
- //}
|
|
|
- //catch (Exception ex)
|
|
|
- //{
|
|
|
- // string str = ex.StackTrace;
|
|
|
- // AddMessage_Station(stationNameStr, LogType.Error, $"PLC1_{stationNameStr}_获取设备运行信息出错!错误信息:" + ex.Message.ToString() + "异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1));
|
|
|
- //}
|
|
|
- //#endregion 获取设备运行信息
|
|
|
-
|
|
|
- #region 报警数据
|
|
|
- try
|
|
|
- {
|
|
|
- List<DeviceAlarm_Cur> deviceAlarm_Curs = new List<DeviceAlarm_Cur>(); // 同步到报警页面用传输载体
|
|
|
- bool isNeedUpdUI = false; // 是否需要更新历史报警UI
|
|
|
-
|
|
|
- // 同步“设备报警信息”到“设备报警临时字典DicAlarms_Cur”
|
|
|
- var dicAlarms_Cur_PLC1 = DicAlarms_Cur[GlobalContext.LineCode];
|
|
|
- for (int i = 0; i < dicAlarms_Cur_PLC1.Count; i++) // 读取
|
|
|
- {
|
|
|
- short shortBuf = plc1Alarm.ReadHoldingRegisters<short>(dicAlarms_Cur_PLC1[i].关联的PLC地址);
|
|
|
-
|
|
|
- dicAlarms_Cur_PLC1[i].是否报警 = shortBuf != 0;
|
|
|
- if (dicAlarms_Cur_PLC1[i].上次的运行状态 != dicAlarms_Cur_PLC1[i].是否报警)
|
|
|
+ #region 主页展示设备运行状态并上传到IOT中
|
|
|
+ switch (xmDeviceState)
|
|
|
{
|
|
|
- isNeedUpdUI = true; // 需要更新历史报警UI信息
|
|
|
- // 记录
|
|
|
- dicAlarms_Cur_PLC1[i].上次的运行状态 = dicAlarms_Cur_PLC1[i].是否报警;
|
|
|
-
|
|
|
- switch (dicAlarms_Cur_PLC1[i].是否报警)
|
|
|
- {
|
|
|
- case true: // 报警
|
|
|
- dicAlarms_Cur_PLC1[i].报警数据 = new AlarmData()
|
|
|
- {
|
|
|
- GUID = Guid.NewGuid().ToString(),
|
|
|
- LineName = GlobalContext.LineCode, // 线体
|
|
|
- AlarmType = dicAlarms_Cur_PLC1[i].报警类型, // 报警类型
|
|
|
- AlarmDesc = dicAlarms_Cur_PLC1[i].报警详情, // 报警内容
|
|
|
- StartTime = dtNow // 开始时间
|
|
|
- };
|
|
|
-
|
|
|
- // 传输到页面
|
|
|
- deviceAlarm_Curs.Add(new DeviceAlarm_Cur()
|
|
|
- {
|
|
|
- 线体名称 = dicAlarms_Cur_PLC1[i].报警数据.LineName,
|
|
|
- 报警类型 = dicAlarms_Cur_PLC1[i].报警数据.AlarmType,
|
|
|
- 报警内容 = dicAlarms_Cur_PLC1[i].报警数据.AlarmDesc,
|
|
|
- 开始时间 = dtNow
|
|
|
- });
|
|
|
-
|
|
|
- // 新增到数据库
|
|
|
- var data1 = dicAlarms_Cur_PLC1[i].报警数据;
|
|
|
- SaveAlarmDataByDB(stationNameStr, data1, false);
|
|
|
- AddMessage_Station(stationNameStr, LogType.Info, $"更新{BodyAlarm}完毕!");
|
|
|
- break;
|
|
|
- case false: // 消除报警
|
|
|
- if (dicAlarms_Cur_PLC1[i].报警数据 == null || string.IsNullOrEmpty(dicAlarms_Cur_PLC1[i].报警数据.GUID))
|
|
|
- {
|
|
|
- dicAlarms_Cur_PLC1[i].报警数据 = new AlarmData()
|
|
|
- {
|
|
|
- GUID = Guid.NewGuid().ToString(),
|
|
|
- LineName = GlobalContext.LineCode, // 线体
|
|
|
- AlarmType = dicAlarms_Cur_PLC1[i].报警类型, // 报警类型
|
|
|
- AlarmDesc = dicAlarms_Cur_PLC1[i].报警详情, // 报警内容
|
|
|
- StartTime = dtNow, // 开始时间
|
|
|
- EndTime = dtNow, // 开始时间
|
|
|
- PersistTime = 1, // 耗时1s
|
|
|
- };
|
|
|
-
|
|
|
- // 新增
|
|
|
- var data2 = dicAlarms_Cur_PLC1[i].报警数据;
|
|
|
- SaveAlarmDataByDB(stationNameStr, data2, false);
|
|
|
- AddMessage_Station(stationNameStr, LogType.Info, $"更新{BodyAlarm}完毕!");
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- dicAlarms_Cur_PLC1[i].报警数据.EndTime = dtNow; // 开始时间
|
|
|
- dicAlarms_Cur_PLC1[i].报警数据.PersistTime = Convert.ToInt32((dicAlarms_Cur_PLC1[i].报警数据.EndTime
|
|
|
- - dicAlarms_Cur_PLC1[i].报警数据.StartTime).TotalSeconds); // 耗时s
|
|
|
-
|
|
|
- // 修改
|
|
|
- var data3 = dicAlarms_Cur_PLC1[i].报警数据;
|
|
|
- SaveAlarmDataByDB(stationNameStr, data3, true);
|
|
|
- AddMessage_Station(stationNameStr, LogType.Info, $"更新{BodyAlarm}完毕!");
|
|
|
- }
|
|
|
- break;
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
+ case XiaomiDeviceState.Uninitialized: // 未初始化状态(未初始状态,需先初始化装备才能运行)
|
|
|
+ _DeviceStates = "未初始化状态";
|
|
|
+ lblDeviceStates.Text = _DeviceStates;
|
|
|
+ break;
|
|
|
+ case XiaomiDeviceState.Initializing: // 初始化状态(初始化进行中)
|
|
|
+ _DeviceStates = "初始化状态";
|
|
|
+ lblDeviceStates.Text = _DeviceStates;
|
|
|
+ break;
|
|
|
+ case XiaomiDeviceState.Initialized: // 初始化完成状态(初始化完成)
|
|
|
+ _DeviceStates = "初始化完成状态";
|
|
|
+ lblDeviceStates.Text = _DeviceStates;
|
|
|
+ break;
|
|
|
+ case XiaomiDeviceState.Running: // 运行状态(正常运行中)
|
|
|
+ _DeviceStates = "运行状态";
|
|
|
+ lblDeviceStates.Text = _DeviceStates;
|
|
|
+ break;
|
|
|
+ case XiaomiDeviceState.Paused: // 暂停状态(设备运行中人工操作暂停,进入此状态)
|
|
|
+ _DeviceStates = "暂停状态";
|
|
|
+ lblDeviceStates.Text = _DeviceStates;
|
|
|
+ break;
|
|
|
+ case XiaomiDeviceState.Fault: // 故障状态(发生故障后进入此状态,同时停止运行)
|
|
|
+ _DeviceStates = "故障状态";
|
|
|
+ lblDeviceStates.Text = _DeviceStates;
|
|
|
+ break;
|
|
|
+ case XiaomiDeviceState.Alarm: // 警报状态(产生报警后进入此状态,同时停止运行)
|
|
|
+ _DeviceStates = "警报状态";
|
|
|
+ lblDeviceStates.Text = _DeviceStates;
|
|
|
+ break;
|
|
|
}
|
|
|
- }
|
|
|
- DicAlarms_Cur[GlobalContext.LineCode] = dicAlarms_Cur_PLC1;
|
|
|
|
|
|
- // 有新报警则更新
|
|
|
- if (isNeedUpdUI)
|
|
|
- {
|
|
|
- // UI展示 - 展示到设备状态页
|
|
|
- await Task.Run(() =>
|
|
|
+ if (!_DeviceStates.Equals(_DeviceStates_Old))
|
|
|
{
|
|
|
- try
|
|
|
+ var iotResult = SaveDeviceStateData(stationNameStr, xmDeviceState); // 上传+保存
|
|
|
+ if (iotResult.Item1 == 1)
|
|
|
{
|
|
|
- if (Form_Main.formDevAlarm != null && !Form_Main.formDevAlarm.IsDisposed)
|
|
|
- {
|
|
|
- Form_Main.formDevAlarm.UpdDeviceAlarm_Cur(deviceAlarm_Curs); // 报警UI 更新
|
|
|
- if (Form_Main.formDevAlarm.Visible)
|
|
|
- {
|
|
|
- Form_Main.formDevAlarm.UpdDeviceAlarm_History_48H(); // 历史报警UI 更新
|
|
|
- }
|
|
|
- }
|
|
|
+ _DeviceStates_Old = _DeviceStates;
|
|
|
+ AddMessage_Station(stationNameStr, LogType.Info, stationNameStr + $"_上传设备状态到Iot成功!");
|
|
|
}
|
|
|
- catch { }
|
|
|
- });
|
|
|
+ else
|
|
|
+ AddMessage_Station(stationNameStr, LogType.Info, stationNameStr + $"_上传设备状态到Iot失败!报错信息:[{iotResult.Item1}]_{iotResult.Item2}");
|
|
|
+ }
|
|
|
+ #endregion 主页展示设备运行状态并上传到IOT中
|
|
|
}
|
|
|
}
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- string str = ex.StackTrace;
|
|
|
- AddMessage_Station(stationNameStr, LogType.Error, $"PLC1_{stationNameStr}_获取报警数据出错!错误信息:" + ex.Message.ToString() + "异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1));
|
|
|
- }
|
|
|
- #endregion 报警数据
|
|
|
-
|
|
|
- UpdatePLCMonitor(1, -2, 1);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- UpdatePLCMonitor(1, -2, 0);
|
|
|
}
|
|
|
+
|
|
|
+ //if (plc1Alarm.IsConnected) // 检查PLC是否已连接上
|
|
|
+ //{
|
|
|
+
|
|
|
+
|
|
|
+ // DateTime dtNow = DateTime.Now;
|
|
|
+ // //#region 获取设备运行信息
|
|
|
+ // //try
|
|
|
+ // //{
|
|
|
+ // // LineWorkingData_ThisTime lineWorkingData1 = new LineWorkingData_ThisTime();
|
|
|
+ // // lineWorkingData1.GUID = Guid.NewGuid().ToString();
|
|
|
+ // // lineWorkingData1.LineName = GlobalContext.LineCode;
|
|
|
+
|
|
|
+ // // //
|
|
|
+ // // lineWorkingData1.BootTimeLong = plc1Alarm.ReadHoldingRegisters<float>(5500); // 本次开机时间(整线)D5500 h
|
|
|
+ // // lineWorkingData1.NormalTimeLong = plc1Alarm.ReadHoldingRegisters<float>(5502); // 本次开机运行时间(整线)D5502 h
|
|
|
+ // // lineWorkingData1.StandbyTimeLong = plc1Alarm.ReadHoldingRegisters<float>(5504); // 本次开机待机时间(整线)D5504 h
|
|
|
+ // // lineWorkingData1.FaultTimeLong = plc1Alarm.ReadHoldingRegisters<float>(5506); // 本次开机故障时间(整线)D5506 h
|
|
|
+ // // lineWorkingData1.MaterialShortageTimeLong = plc1Alarm.ReadHoldingRegisters<float>(5508); // 本次开机缺料时间(整线)D5508 h
|
|
|
+ // // lineWorkingData1.MaintenanceTimeLong = plc1Alarm.ReadHoldingRegisters<float>(5510); // 本次开机维修时间(整线)D5510 h
|
|
|
+ // // lineWorkingData1.FaultNumber = plc1Alarm.ReadHoldingRegisters<short>(5514); // 本次开机故障停机次数(整线)D5514
|
|
|
+ // // lineWorkingData1.OutputNumber = plc1Alarm.ReadHoldingRegisters<short>(5700); // 本次开机产量(整线) D5700
|
|
|
+ // // lineWorkingData1.QualifiedNumber = plc1Alarm.ReadHoldingRegisters<short>(5704); // 本次开机合格数量(整线) D5704
|
|
|
+ // // lineWorkingData1.QualifiedRate = plc1Alarm.ReadHoldingRegisters<float>(5710); // 本次开机合格率(整线) D5710
|
|
|
+ // // lineWorkingData1.DesignRhythm = plc1Alarm.ReadHoldingRegisters<float>(5714); // 设计节拍(整线) D5714
|
|
|
+ // // lineWorkingData1.RealityRhythm = plc1Alarm.ReadHoldingRegisters<float>(5716); // 本次开机实际节拍(整线) D5716
|
|
|
+ // // lineWorkingData1.CreateTime = DateTime.Now;
|
|
|
+
|
|
|
+ // // string lineWorkingData1_Str = JsonConvert.SerializeObject(lineWorkingData1);
|
|
|
+
|
|
|
+ // // // UI展示-展示到设备状态页
|
|
|
+ // // if (string.IsNullOrEmpty(lineWorkingData1_OldStr)) // 软件启动后第一次运行
|
|
|
+ // // {
|
|
|
+ // // // 查询数据库最新一条数据,确定是不是更新
|
|
|
+ // // string qSql = @"SELECT top(1) [GUID]
|
|
|
+ // // ,[LineName]
|
|
|
+ // // ,[BootTimeLong]
|
|
|
+ // // ,[NormalTimeLong]
|
|
|
+ // // ,[StandbyTimeLong]
|
|
|
+ // // ,[FaultTimeLong]
|
|
|
+ // // ,[MaterialShortageTimeLong]
|
|
|
+ // // ,[MaintenanceTimeLong]
|
|
|
+ // // ,[FaultNumber]
|
|
|
+ // // ,[OutputNumber]
|
|
|
+ // // ,[QualifiedNumber]
|
|
|
+ // // ,[QualifiedRate]
|
|
|
+ // // ,[DesignRhythm]
|
|
|
+ // // ,[RealityRhythm]
|
|
|
+ // // ,[CreateTime]
|
|
|
+ // // FROM [LineWorkingData]
|
|
|
+ // // where [CreateTime] > '{0}'
|
|
|
+ // // and [LineName]='{1}'
|
|
|
+ // // order by [CreateTime] desc
|
|
|
+ // // ";
|
|
|
+ // // qSql = string.Format(qSql, DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00", lineWorkingData1.LineName);
|
|
|
+
|
|
|
+ // // var ds = SQLHelper_New.Query(qSql, null);
|
|
|
+ // // if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
|
|
|
+ // // {
|
|
|
+ // // var dataDBlast = new LineWorkingData_ThisTime();
|
|
|
+ // // dataDBlast.GUID = ds.Tables[0].Rows[0][0].ToString(); // 主键
|
|
|
+ // // dataDBlast.LineName = ds.Tables[0].Rows[0][1].ToString(); // 线体名称
|
|
|
+ // // dataDBlast.BootTimeLong = Convert.ToSingle(ds.Tables[0].Rows[0][2].ToString()); // 本次开机时间(整线)
|
|
|
+ // // dataDBlast.CreateTime = Convert.ToDateTime(ds.Tables[0].Rows[0][14].ToString()); // 创建时间
|
|
|
+
|
|
|
+ // // if (lineWorkingData1.BootTimeLong > dataDBlast.BootTimeLong) // 需要更新的情况;不需要更新的走后面的插入
|
|
|
+ // // {
|
|
|
+ // // dataDBlast.BootTimeLong = lineWorkingData1.BootTimeLong; // 本次开机时间(整线)
|
|
|
+ // // dataDBlast.NormalTimeLong = lineWorkingData1.NormalTimeLong; // 本次开机运行时间(整线)
|
|
|
+ // // dataDBlast.StandbyTimeLong = lineWorkingData1.StandbyTimeLong; // 本次开机待机时间(整线)
|
|
|
+ // // dataDBlast.FaultTimeLong = lineWorkingData1.FaultTimeLong; // 本次开机故障时间(整线)
|
|
|
+ // // dataDBlast.MaterialShortageTimeLong = lineWorkingData1.MaterialShortageTimeLong; // 本次开机缺料时间(整线)
|
|
|
+ // // dataDBlast.MaintenanceTimeLong = lineWorkingData1.MaintenanceTimeLong; // 本次开机维修时间(整线)
|
|
|
+ // // dataDBlast.FaultNumber = lineWorkingData1.FaultNumber; // 本次开机故障停机次数(整线)
|
|
|
+ // // dataDBlast.OutputNumber = lineWorkingData1.OutputNumber; // 本次开机产量(整线)
|
|
|
+ // // dataDBlast.QualifiedNumber = lineWorkingData1.QualifiedNumber; // 本次开机合格数量(整线)
|
|
|
+ // // dataDBlast.QualifiedRate = lineWorkingData1.QualifiedRate; // 本次开机合格率(整线)
|
|
|
+ // // dataDBlast.DesignRhythm = lineWorkingData1.DesignRhythm; // 设计节拍(整线)
|
|
|
+ // // dataDBlast.RealityRhythm = lineWorkingData1.RealityRhythm; // 本次开机实际节拍(整线)
|
|
|
+
|
|
|
+ // // string usql = dataDBlast.ToStringUpdate();
|
|
|
+ // // SQLHelper_New.ExecuteSQL(usql, null);
|
|
|
+ // // lineWorkingData1_OldStr = JsonConvert.SerializeObject(dataDBlast);
|
|
|
+
|
|
|
+ // // AddMessage_Station(stationNameStr, LogType.Info, $"更新{BodyRun}完毕![{lineWorkingData1_OldStr}]");
|
|
|
+ // // //AddMessage_Station(stationNameStr, LogType.Info, $"更新{BodyRun}完毕!");
|
|
|
+ // // }
|
|
|
+ // // }
|
|
|
+ // // else
|
|
|
+ // // {
|
|
|
+ // // // 插入
|
|
|
+ // // SQLHelper_New.ExecuteSQL(lineWorkingData1.ToStringInsert(), null);
|
|
|
+ // // lineWorkingData1_OldStr = String.Copy(lineWorkingData1_Str);
|
|
|
+ // // AddMessage_Station(stationNameStr, LogType.Info, $"保存{BodyRun}完毕![{lineWorkingData1_OldStr}]");
|
|
|
+ // // //AddMessage_Station(stationNameStr, LogType.Info, $"保存{BodyRun}完毕!");
|
|
|
+ // // }
|
|
|
+ // // }
|
|
|
+ // // else if (!lineWorkingData1_Str.Equals(lineWorkingData1_OldStr)) // 非“软件启动后第一次运行”
|
|
|
+ // // {
|
|
|
+ // // LineWorkingData_ThisTime lineWorkingData1_Old = string.IsNullOrEmpty(lineWorkingData1_OldStr) ? lineWorkingData1 : JsonConvert.DeserializeObject<LineWorkingData_ThisTime>(lineWorkingData1_OldStr); // 上次的状态信息
|
|
|
+
|
|
|
+ // // //// 本次开机设备运行情况
|
|
|
+ // // //LineWorkingData1_ThisTime lineWorkingData_UI = JsonConvert.DeserializeObject<LineWorkingData1_ThisTime>(lineWorkingData1_OldStr);
|
|
|
+ // // //Task.Run(() =>
|
|
|
+ // // //{
|
|
|
+ // // // if (Form_Main.formDevAlarm != null && !Form_Main.formDevAlarm.IsDisposed && Form_Main.formDevAlarm.Visible)
|
|
|
+ // // // {
|
|
|
+ // // // Form_Main.formDevAlarm.UpdDeviceStatus_ThisTime(lineWorkingData_UI); // UI更新
|
|
|
+ // // // }
|
|
|
+ // // //});
|
|
|
+
|
|
|
+ // // // 本日设备运行情况
|
|
|
+ // // // 存数据库(开机时间>上次的开机时间,则更新上次记录;<则作为新数据插入)
|
|
|
+ // // if (lineWorkingData1.BootTimeLong > lineWorkingData1_Old.BootTimeLong)
|
|
|
+ // // {
|
|
|
+ // // // 更新
|
|
|
+ // // lineWorkingData1_Old.BootTimeLong = lineWorkingData1.BootTimeLong; // 本次开机时间(整线)
|
|
|
+ // // lineWorkingData1_Old.NormalTimeLong = lineWorkingData1.NormalTimeLong; // 本次开机运行时间(整线)
|
|
|
+ // // lineWorkingData1_Old.StandbyTimeLong = lineWorkingData1.StandbyTimeLong; // 本次开机待机时间(整线)
|
|
|
+ // // lineWorkingData1_Old.FaultTimeLong = lineWorkingData1.FaultTimeLong; // 本次开机故障时间(整线)
|
|
|
+ // // lineWorkingData1_Old.MaterialShortageTimeLong = lineWorkingData1.MaterialShortageTimeLong; // 本次开机缺料时间(整线)
|
|
|
+ // // lineWorkingData1_Old.MaintenanceTimeLong = lineWorkingData1.MaintenanceTimeLong; // 本次开机维修时间(整线)
|
|
|
+ // // lineWorkingData1_Old.FaultNumber = lineWorkingData1.FaultNumber; // 本次开机故障停机次数(整线)
|
|
|
+ // // lineWorkingData1_Old.OutputNumber = lineWorkingData1.OutputNumber; // 本次开机产量(整线)
|
|
|
+ // // lineWorkingData1_Old.QualifiedNumber = lineWorkingData1.QualifiedNumber; // 本次开机合格数量(整线)
|
|
|
+ // // lineWorkingData1_Old.QualifiedRate = lineWorkingData1.QualifiedRate; // 本次开机合格率(整线)
|
|
|
+ // // lineWorkingData1_Old.DesignRhythm = lineWorkingData1.DesignRhythm; // 设计节拍(整线)
|
|
|
+ // // lineWorkingData1_Old.RealityRhythm = lineWorkingData1.RealityRhythm; // 本次开机实际节拍(整线)
|
|
|
+
|
|
|
+ // // SQLHelper_New.ExecuteSQL(lineWorkingData1_Old.ToStringUpdate(), null);
|
|
|
+ // // lineWorkingData1_OldStr = JsonConvert.SerializeObject(lineWorkingData1_Old);
|
|
|
+ // // AddMessage_Station(stationNameStr, LogType.Info, $"更新{BodyRun}完毕![{lineWorkingData1_OldStr}]");
|
|
|
+ // // //AddMessage_Station(stationNameStr, LogType.Info, $"更新{BodyRun}完毕!");
|
|
|
+ // // }
|
|
|
+ // // else if (lineWorkingData1.BootTimeLong < lineWorkingData1_Old.BootTimeLong)
|
|
|
+ // // {
|
|
|
+ // // // 插入
|
|
|
+ // // SQLHelper_New.ExecuteSQL(lineWorkingData1.ToStringInsert(), null);
|
|
|
+ // // lineWorkingData1_OldStr = String.Copy(lineWorkingData1_Str);
|
|
|
+ // // AddMessage_Station(stationNameStr, LogType.Info, $"保存{BodyRun}完毕![{lineWorkingData1_OldStr}]");
|
|
|
+ // // //AddMessage_Station(stationNameStr, LogType.Info, $"保存{BodyRun}完毕!");
|
|
|
+ // // }
|
|
|
+
|
|
|
+ // // await Task.Run(() =>
|
|
|
+ // // {
|
|
|
+ // // try
|
|
|
+ // // {
|
|
|
+ // // if (Form_Main.formDevAlarm != null && !Form_Main.formDevAlarm.IsDisposed && Form_Main.formDevAlarm.Visible)
|
|
|
+ // // {
|
|
|
+ // // Form_Main.formDevAlarm.UpdDeviceStatus_Today(); // UI更新
|
|
|
+ // // }
|
|
|
+ // // }
|
|
|
+ // // catch { }
|
|
|
+ // // });
|
|
|
+ // // }
|
|
|
+ // //}
|
|
|
+ // //catch (Exception ex)
|
|
|
+ // //{
|
|
|
+ // // string str = ex.StackTrace;
|
|
|
+ // // AddMessage_Station(stationNameStr, LogType.Error, $"PLC1_{stationNameStr}_获取设备运行信息出错!错误信息:" + ex.Message.ToString() + "异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1));
|
|
|
+ // //}
|
|
|
+ // //#endregion 获取设备运行信息
|
|
|
+
|
|
|
+ // #region 报警数据
|
|
|
+ // try
|
|
|
+ // {
|
|
|
+ // List<DeviceAlarm_Cur> deviceAlarm_Curs = new List<DeviceAlarm_Cur>(); // 同步到报警页面用传输载体
|
|
|
+ // bool isNeedUpdUI = false; // 是否需要更新历史报警UI
|
|
|
+
|
|
|
+ // // 同步“设备报警信息”到“设备报警临时字典DicAlarms_Cur”
|
|
|
+ // var dicAlarms_Cur_PLC1 = DicAlarms_Cur[GlobalContext.LineCode];
|
|
|
+ // for (int i = 0; i < dicAlarms_Cur_PLC1.Count; i++) // 读取
|
|
|
+ // {
|
|
|
+ // short shortBuf = plc1Alarm.ReadHoldingRegisters<short>(dicAlarms_Cur_PLC1[i].关联的PLC地址);
|
|
|
+
|
|
|
+ // dicAlarms_Cur_PLC1[i].是否报警 = shortBuf != 0;
|
|
|
+ // if (dicAlarms_Cur_PLC1[i].上次的运行状态 != dicAlarms_Cur_PLC1[i].是否报警)
|
|
|
+ // {
|
|
|
+ // isNeedUpdUI = true; // 需要更新历史报警UI信息
|
|
|
+ // // 记录
|
|
|
+ // dicAlarms_Cur_PLC1[i].上次的运行状态 = dicAlarms_Cur_PLC1[i].是否报警;
|
|
|
+
|
|
|
+ // switch (dicAlarms_Cur_PLC1[i].是否报警)
|
|
|
+ // {
|
|
|
+ // case true: // 报警
|
|
|
+ // dicAlarms_Cur_PLC1[i].报警数据 = new AlarmData()
|
|
|
+ // {
|
|
|
+ // GUID = Guid.NewGuid().ToString(),
|
|
|
+ // LineName = GlobalContext.LineCode, // 线体
|
|
|
+ // AlarmType = dicAlarms_Cur_PLC1[i].报警类型, // 报警类型
|
|
|
+ // AlarmDesc = dicAlarms_Cur_PLC1[i].报警详情, // 报警内容
|
|
|
+ // StartTime = dtNow // 开始时间
|
|
|
+ // };
|
|
|
+
|
|
|
+ // // 传输到页面
|
|
|
+ // deviceAlarm_Curs.Add(new DeviceAlarm_Cur()
|
|
|
+ // {
|
|
|
+ // 线体名称 = dicAlarms_Cur_PLC1[i].报警数据.LineName,
|
|
|
+ // 报警类型 = dicAlarms_Cur_PLC1[i].报警数据.AlarmType,
|
|
|
+ // 报警内容 = dicAlarms_Cur_PLC1[i].报警数据.AlarmDesc,
|
|
|
+ // 开始时间 = dtNow
|
|
|
+ // });
|
|
|
+
|
|
|
+ // // 新增到数据库
|
|
|
+ // var data1 = dicAlarms_Cur_PLC1[i].报警数据;
|
|
|
+ // SaveAlarmDataByDB(stationNameStr, data1, false);
|
|
|
+ // AddMessage_Station(stationNameStr, LogType.Info, $"更新{BodyAlarm}完毕!");
|
|
|
+ // break;
|
|
|
+ // case false: // 消除报警
|
|
|
+ // if (dicAlarms_Cur_PLC1[i].报警数据 == null || string.IsNullOrEmpty(dicAlarms_Cur_PLC1[i].报警数据.GUID))
|
|
|
+ // {
|
|
|
+ // dicAlarms_Cur_PLC1[i].报警数据 = new AlarmData()
|
|
|
+ // {
|
|
|
+ // GUID = Guid.NewGuid().ToString(),
|
|
|
+ // LineName = GlobalContext.LineCode, // 线体
|
|
|
+ // AlarmType = dicAlarms_Cur_PLC1[i].报警类型, // 报警类型
|
|
|
+ // AlarmDesc = dicAlarms_Cur_PLC1[i].报警详情, // 报警内容
|
|
|
+ // StartTime = dtNow, // 开始时间
|
|
|
+ // EndTime = dtNow, // 开始时间
|
|
|
+ // PersistTime = 1, // 耗时1s
|
|
|
+ // };
|
|
|
+
|
|
|
+ // // 新增
|
|
|
+ // var data2 = dicAlarms_Cur_PLC1[i].报警数据;
|
|
|
+ // SaveAlarmDataByDB(stationNameStr, data2, false);
|
|
|
+ // AddMessage_Station(stationNameStr, LogType.Info, $"更新{BodyAlarm}完毕!");
|
|
|
+ // }
|
|
|
+ // else
|
|
|
+ // {
|
|
|
+ // dicAlarms_Cur_PLC1[i].报警数据.EndTime = dtNow; // 开始时间
|
|
|
+ // dicAlarms_Cur_PLC1[i].报警数据.PersistTime = Convert.ToInt32((dicAlarms_Cur_PLC1[i].报警数据.EndTime
|
|
|
+ // - dicAlarms_Cur_PLC1[i].报警数据.StartTime).TotalSeconds); // 耗时s
|
|
|
+
|
|
|
+ // // 修改
|
|
|
+ // var data3 = dicAlarms_Cur_PLC1[i].报警数据;
|
|
|
+ // SaveAlarmDataByDB(stationNameStr, data3, true);
|
|
|
+ // AddMessage_Station(stationNameStr, LogType.Info, $"更新{BodyAlarm}完毕!");
|
|
|
+ // }
|
|
|
+ // break;
|
|
|
+ // default:
|
|
|
+ // break;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // DicAlarms_Cur[GlobalContext.LineCode] = dicAlarms_Cur_PLC1;
|
|
|
+
|
|
|
+ // // 有新报警则更新
|
|
|
+ // if (isNeedUpdUI)
|
|
|
+ // {
|
|
|
+ // // UI展示 - 展示到设备状态页
|
|
|
+ // await Task.Run(() =>
|
|
|
+ // {
|
|
|
+ // try
|
|
|
+ // {
|
|
|
+ // if (Form_Main.formDevAlarm != null && !Form_Main.formDevAlarm.IsDisposed)
|
|
|
+ // {
|
|
|
+ // Form_Main.formDevAlarm.UpdDeviceAlarm_Cur(deviceAlarm_Curs); // 报警UI 更新
|
|
|
+ // if (Form_Main.formDevAlarm.Visible)
|
|
|
+ // {
|
|
|
+ // Form_Main.formDevAlarm.UpdDeviceAlarm_History_48H(); // 历史报警UI 更新
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // catch { }
|
|
|
+ // });
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // catch (Exception ex)
|
|
|
+ // {
|
|
|
+ // string str = ex.StackTrace;
|
|
|
+ // AddMessage_Station(stationNameStr, LogType.Error, $"PLC1_{stationNameStr}_获取报警数据出错!错误信息:" + ex.Message.ToString() + "异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1));
|
|
|
+ // }
|
|
|
+ // #endregion 报警数据
|
|
|
+
|
|
|
+ // UpdatePLCMonitor(1, -2, 1);
|
|
|
+ //}
|
|
|
+ //else
|
|
|
+ //{
|
|
|
+ // UpdatePLCMonitor(1, -2, 0);
|
|
|
+ //}
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- AddMessage_Station(stationNameStr, LogType.Error, $"PLC1_{stationNameStr}运行出错!错误信息:" + ex.Message.ToString());
|
|
|
+ //AddMessage_Station(stationNameStr, LogType.Error, $"PLC1_{stationNameStr}运行出错!错误信息:" + ex.Message.ToString());
|
|
|
+ AddMessage_Station(stationNameStr, LogType.Error, $"PLC1_{stationNameStr}_采集运行数据与报警数据出错!错误信息:" + ex.Message.ToString());
|
|
|
}
|
|
|
|
|
|
Thread.Sleep(IntervalAlarm);
|