Explorar el Código

plc交互方式、移除设备状态多工位上传的功能

WIN-GH9CEESPLTB\Administrator hace 5 meses
padre
commit
3582532e3f
Se han modificado 2 ficheros con 76 adiciones y 352 borrados
  1. 60 338
      MainForm/FaForm/Form_Home.cs
  2. 16 14
      MainForm/FaForm/Form_Home_SaveData.cs

+ 60 - 338
MainForm/FaForm/Form_Home.cs

@@ -542,10 +542,10 @@ namespace MainForm
 
                     if (GlobalContext.IsUsePLC3 || GlobalContext.IsUsePLC7)
                     {
-                        state_l.Text = "设备状态(左):";
-                        state_r.Text = "设备状态(右):";
-                        state_r.Visible = true;
-                        lblDeviceStates2.Visible = true;
+                        //state_l.Text = "设备状态(左):";
+                        //state_r.Text = "设备状态(右):";
+                        //state_r.Visible = true;
+                        //lblDeviceStates2.Visible = true;
                     }
 
                     //上传操作记录
@@ -784,12 +784,14 @@ namespace MainForm
         /// 采集到的设备状态
         /// </summary>
         private string _DeviceStates = "未知状态";
-
         private string _DeviceStates_Old = "未知状态";
 
         private string _DeviceStates2 = "未知状态";
         private string _DeviceStates_Old2 = "未知状态";
 
+        private static string AlarmStateCode=""; //记录出发故障时的其中一笔警报,上传设备状态用
+        private static string AlarmStateName = ""; //记录出发故障时的其中一笔警报,上传设备状态用
+
         /// <summary>
         /// 获取设备报警数据与获取设备运行信息
         /// </summary>
@@ -903,56 +905,56 @@ namespace MainForm
 
                                 #region 右工位
 
-                                if (GlobalContext.IsUsePLC3 || GlobalContext.IsUsePLC7)
-                                {
-                                    switch (xmDeviceStateData.right)
-                                    {
-                                        case XiaomiDeviceState.Uninitialized: // 未初始化状态(未初始状态,需先初始化装备才能运行)
-                                            _DeviceStates2 = "未初始化状态";
-                                            lblDeviceStates2.Text = _DeviceStates2;
-                                            break;
-                                        case XiaomiDeviceState.Initializing: // 初始化状态(初始化进行中)
-                                            _DeviceStates2 = "初始化状态";
-                                            lblDeviceStates2.Text = _DeviceStates2;
-                                            break;
-                                        case XiaomiDeviceState.Initialized: // 初始化完成状态(初始化完成)
-                                            _DeviceStates2 = "初始化完成状态";
-                                            lblDeviceStates2.Text = _DeviceStates2;
-                                            break;
-                                        case XiaomiDeviceState.Running: // 运行状态(正常运行中)
-                                            _DeviceStates2 = "运行状态";
-                                            lblDeviceStates2.Text = _DeviceStates2;
-                                            break;
-                                        case XiaomiDeviceState.Paused: // 暂停状态(设备运行中人工操作暂停,进入此状态)
-                                            _DeviceStates2 = "暂停状态";
-                                            lblDeviceStates2.Text = _DeviceStates2;
-                                            break;
-                                        case XiaomiDeviceState.Fault: // 故障状态(发生故障后进入此状态,同时停止运行)
-                                            _DeviceStates2 = "故障状态";
-                                            lblDeviceStates2.Text = _DeviceStates2;
-                                            break;
-                                        case XiaomiDeviceState.Alarm: // 警报状态(产生报警后进入此状态,同时停止运行)
-                                            _DeviceStates2 = "警报状态";
-                                            lblDeviceStates2.Text = _DeviceStates2;
-                                            break;
-                                    }
-
-                                    if (!_DeviceStates2.Equals(_DeviceStates_Old2))
-                                    {
-                                        var iotResult = SaveDeviceStateData(stationNameStr, xmDeviceStateData.left,
-                                            "right"); // 上传+保存
-                                        if (iotResult.Item1 == 1)
-                                        {
-                                            _DeviceStates_Old2 = _DeviceStates2;
-                                            AddMessage_Station(stationNameStr, LogType.Info,
-                                                "【设备状态】" + stationNameStr + $"_上传Iot成功!");
-                                        }
-                                        else
-                                            AddMessage_Station(stationNameStr, LogType.Info,
-                                                "【设备状态】" + stationNameStr +
-                                                $"_上传Iot失败!报错信息:[{iotResult.Item1}]_{iotResult.Item2}");
-                                    }
-                                }
+                                //if (GlobalContext.IsUsePLC3 || GlobalContext.IsUsePLC7)
+                                //{
+                                //    switch (xmDeviceStateData.right)
+                                //    {
+                                //        case XiaomiDeviceState.Uninitialized: // 未初始化状态(未初始状态,需先初始化装备才能运行)
+                                //            _DeviceStates2 = "未初始化状态";
+                                //            lblDeviceStates2.Text = _DeviceStates2;
+                                //            break;
+                                //        case XiaomiDeviceState.Initializing: // 初始化状态(初始化进行中)
+                                //            _DeviceStates2 = "初始化状态";
+                                //            lblDeviceStates2.Text = _DeviceStates2;
+                                //            break;
+                                //        case XiaomiDeviceState.Initialized: // 初始化完成状态(初始化完成)
+                                //            _DeviceStates2 = "初始化完成状态";
+                                //            lblDeviceStates2.Text = _DeviceStates2;
+                                //            break;
+                                //        case XiaomiDeviceState.Running: // 运行状态(正常运行中)
+                                //            _DeviceStates2 = "运行状态";
+                                //            lblDeviceStates2.Text = _DeviceStates2;
+                                //            break;
+                                //        case XiaomiDeviceState.Paused: // 暂停状态(设备运行中人工操作暂停,进入此状态)
+                                //            _DeviceStates2 = "暂停状态";
+                                //            lblDeviceStates2.Text = _DeviceStates2;
+                                //            break;
+                                //        case XiaomiDeviceState.Fault: // 故障状态(发生故障后进入此状态,同时停止运行)
+                                //            _DeviceStates2 = "故障状态";
+                                //            lblDeviceStates2.Text = _DeviceStates2;
+                                //            break;
+                                //        case XiaomiDeviceState.Alarm: // 警报状态(产生报警后进入此状态,同时停止运行)
+                                //            _DeviceStates2 = "警报状态";
+                                //            lblDeviceStates2.Text = _DeviceStates2;
+                                //            break;
+                                //    }
+
+                                //    if (!_DeviceStates2.Equals(_DeviceStates_Old2))
+                                //    {
+                                //        var iotResult = SaveDeviceStateData(stationNameStr, xmDeviceStateData.left,
+                                //            "right"); // 上传+保存
+                                //        if (iotResult.Item1 == 1)
+                                //        {
+                                //            _DeviceStates_Old2 = _DeviceStates2;
+                                //            AddMessage_Station(stationNameStr, LogType.Info,
+                                //                "【设备状态】" + stationNameStr + $"_上传Iot成功!");
+                                //        }
+                                //        else
+                                //            AddMessage_Station(stationNameStr, LogType.Info,
+                                //                "【设备状态】" + stationNameStr +
+                                //                $"_上传Iot失败!报错信息:[{iotResult.Item1}]_{iotResult.Item2}");
+                                //    }
+                                //}
 
                                 #endregion 右工位
                             }
@@ -961,286 +963,6 @@ namespace MainForm
 
                     #endregion
 
-
-                    //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)
                 {
@@ -3118,7 +2840,7 @@ namespace MainForm
                     iotData.machineState = iot_data.machineState;
                     iotData.work_type = iot_data.work_type;
                     iotData.testStatus = iot_data.testStatus;
-                    iotData.beatAction = iot_data.beatAction;
+                    iotData.beatAction = 0;
                     iotData.beatReturn = 1; //OK
                     iotData.fault_codes = iot_data.fault_codes;
                     (int, string) PLCresult = WriteResultToPlc(plcNo, stationNameStr, tagMesCommName, 1, iotData);
@@ -3141,7 +2863,7 @@ namespace MainForm
                     iotData.machineState = iot_data.machineState;
                     iotData.work_type = iot_data.work_type;
                     iotData.testStatus = iot_data.testStatus;
-                    iotData.beatAction = iot_data.beatAction;
+                    iotData.beatAction = 0;
                     iotData.beatReturn = 2; //NG
                     iotData.fault_codes = iot_data.fault_codes;
                     (int, string) PLCresult = WriteResultToPlc(plcNo, stationNameStr, tagMesCommName, 1, iotData);
@@ -3159,7 +2881,7 @@ namespace MainForm
                 iotData.machineState = iot_data.machineState;
                 iotData.work_type = iot_data.work_type;
                 iotData.testStatus = iot_data.testStatus;
-                iotData.beatAction = iot_data.beatAction;
+                iotData.beatAction = 0;
                 iotData.beatReturn = 2; //NG
                 iotData.fault_codes = iot_data.fault_codes;
                 (int, string) PLCresult = WriteResultToPlc(plcNo, stationNameStr, tagMesCommName, 1, iotData);

+ 16 - 14
MainForm/FaForm/Form_Home_SaveData.cs

@@ -750,24 +750,24 @@ namespace MainForm
                         request.station = GlobalContext.S1_station;    // 工位ID(可配置)
                     if (GlobalContext.IsUsePLC2)
                         request.station = GlobalContext.S2_station;    // 工位ID(可配置)
-                    if (GlobalContext.IsUsePLC3) {
-                        if (flag == "left")
-                            request.station = GlobalContext.s3_1_station;    // 工位ID(可配置)
-                        else
-                            request.station = GlobalContext.s3_2_station;  // ⼯位ID(可配置)
-                    }
+                    //if (GlobalContext.IsUsePLC3) {
+                    //    if (flag == "left")
+                    //        request.station = GlobalContext.s3_1_station;    // 工位ID(可配置)
+                    //    else
+                    //        request.station = GlobalContext.s3_2_station;  // ⼯位ID(可配置)
+                    //}
                     if (GlobalContext.IsUsePLC4)
                         request.station = GlobalContext.s4_station;    // 工位ID(可配置)
                     if (GlobalContext.IsUsePLC5)
                         request.station = GlobalContext.s5_station;    // 工位ID(可配置)
                     if (GlobalContext.IsUsePLC6)
                         request.station = GlobalContext.s6_station;    // 工位ID(可配置)
-                    if (GlobalContext.IsUsePLC7) {
-                        if (flag == "left")
-                            request.station = GlobalContext.s7_1_station;  // ⼯位ID(可配置)
-                        else
-                            request.station = GlobalContext.s7_2_station;  // ⼯位ID(可配置)
-                    }
+                    //if (GlobalContext.IsUsePLC7) {
+                    //    if (flag == "left")
+                    //        request.station = GlobalContext.s7_1_station;  // ⼯位ID(可配置)
+                    //    else
+                    //        request.station = GlobalContext.s7_2_station;  // ⼯位ID(可配置)
+                    //}
                     if (GlobalContext.IsUsePLC8)
                         request.station = GlobalContext.s8_station;  // ⼯位ID(可配置)
                     if (GlobalContext.IsUsePLC9)
@@ -777,8 +777,8 @@ namespace MainForm
                     request.time = dtNow.ToString("yyyy-MM-dd HH:mm:ss.fff");  // 状态切换时的时间 2022-06-01 14:27:57.283
                     if (deviceState == XiaomiDeviceState.Fault || deviceState == XiaomiDeviceState.Alarm)
                     {
-                        request.fault_code = fault_code;  // 对应的故障编码
-                        request.fault_tm = fault_tm;      // 故障发⽣时间(需要实际的发生时间)
+                        request.fault_code = AlarmStateCode;  // 对应的故障编码
+                        request.fault_tm = AlarmStateName;      // 故障发⽣时间(需要实际的发生时间)
                     }
                     // 上传
                     (int, string) iotResult = XiaomiMqttClient_Extend.Write_DeviceStateData(request);
@@ -848,6 +848,8 @@ namespace MainForm
                     string sql = alarmData.ToStringInsert();
                     SQLHelper_New.ExecuteSQL(sql, null);
                     //OnMessage(LogType.Info, "【报警日志】发生了报警[" + alarmData.LineName + "-" + alarmData.AlarmDesc + "]!");
+                    Form_Home.AlarmStateCode= alarmData.AlarmDesc;
+                    Form_Home.AlarmStateName = alarmData.AlarmType;
 
                     FaultLogRequest request = new FaultLogRequest();
                     request.station = stationId;   // ⼯位