wanghan пре 7 месеци
родитељ
комит
ba15fd9a41
1 измењених фајлова са 114 додато и 79 уклоњено
  1. 114 79
      TeamAAS-VM/Core/Management.cs

+ 114 - 79
TeamAAS-VM/Core/Management.cs

@@ -119,6 +119,9 @@ namespace TeamAAS_VP.Core
         List<LockResult> lockResultsAll = new List<LockResult>();//一个产品的总结果
         List<LockResult> lockResultsAll = new List<LockResult>();//一个产品的总结果
         string productSn = "";//产品sn
         string productSn = "";//产品sn
         DateTime StartScrewTime = DateTime.Now;//开始锁附的时间
         DateTime StartScrewTime = DateTime.Now;//开始锁附的时间
+        List<string> torqueList = new List<string>();//扭力数据集合
+        List<string> pressureList = new List<string>();//压力数据集合
+        List<string> turnList = new List<string>();//圈数数据集合
         #endregion
         #endregion
 
 
         #region 属性
         #region 属性
@@ -1735,7 +1738,7 @@ namespace TeamAAS_VP.Core
                         {
                         {
                             if (TorqueStatus)
                             if (TorqueStatus)
                             {
                             {
-                                
+
                             }
                             }
                             SendTaskMessage(Lang.收到停止锁付信号, MessageLevel.Debug);
                             SendTaskMessage(Lang.收到停止锁付信号, MessageLevel.Debug);
                             //位置编号
                             //位置编号
@@ -1812,6 +1815,16 @@ namespace TeamAAS_VP.Core
                                 lockResult.LockCurveImagePath = System.IO.Path.Combine(dirPath, curveFileName);
                                 lockResult.LockCurveImagePath = System.IO.Path.Combine(dirPath, curveFileName);
                                 var _ = lockResult.SaveToCsvAsync(curveFileFullPath);
                                 var _ = lockResult.SaveToCsvAsync(curveFileFullPath);
                             }
                             }
+                            if (lockResult.Number == 1)
+                            {
+                                torqueList.Clear();
+                                pressureList.Clear();
+                                turnList.Clear();
+                            }
+                            torqueList.Add($"{lockResult.Number}-{lockResult.LockTorque:F2}");
+                            pressureList.Add($"{lockResult.Number}-{lockResult.Pressure:F2}");
+                            turnList.Add($"{lockResult.Number}-{lockResult.LockTurns:F2}");
+                            SendTaskMessage($"螺丝序号:{lockResult.Number},扭力:{lockResult.LockTorque},压力:{lockResult.Pressure},圈数:{lockResult.LockTurns}", MessageLevel.Info);
 
 
                             lockResultsAll.Add(lockResult);
                             lockResultsAll.Add(lockResult);
                             App.Current.Dispatcher.Invoke(() =>
                             App.Current.Dispatcher.Invoke(() =>
@@ -1830,73 +1843,98 @@ namespace TeamAAS_VP.Core
                             // 停止采集压力并保存
                             // 停止采集压力并保存
                             await StopAndSavePressureCollectionAsync(currentProduct.Name, _productService.CurrentProductCode, positionIndex);
                             await StopAndSavePressureCollectionAsync(currentProduct.Name, _productService.CurrentProductCode, positionIndex);
 
 
-                            DFC.Clear();
-                            DFC.Add(new DataFormCtq
-                            {
-                                PPID = productSn,
-                                PROCESS_NAME = cdata.PROCESS_NAME,
-                                PROCESS_START_TIME = StartScrewTime.ToString(),
-                                CTQ_NAME = "Torque",
-                                CTQ_VALUE = lockResult.LockTorque,
-                                CTQ_LSL = lockResult.TargetTorqueLowerLimit,
-                                CTQ_USL = lockResult.TargetTorqueUpperLimit,
-                                PROCESS_END_TIME = DateTime.Now.ToString(),
-                                SUPPLIER_NAME = cdata.SUPPLIER_NAME,
-                                COMMODITY_TYPE = cdata.COMMODITY_TYPE,
-                                REVISION = cdata.REVISION,
-                                WO = cdata.WO,
-                                MFG_LOT = cdata.MFG_LOT,
-                                MFG_ASSY_LINE = cdata.MFG_ASSY_LINE,
-                                PROCESS_OUTCOME = lockResult.LockPassed ? "PASS" : "FAIL",
-                                PROCESS_MACHINE_ID = cdata.PROCESS_MACHINE_ID,
-                                CTQ_UNIT_OF_MEASURE = "kgf.cm",
-                                ERROR_MESSAGE = lockResult.LockPassed ? "" : "Torque_Spec OOS"
-                            });
-                            DFC.Add(new DataFormCtq
-                            {
-                                PPID = productSn,
-                                PROCESS_NAME = cdata.PROCESS_NAME,
-                                PROCESS_START_TIME = StartScrewTime.ToString(),
-                                CTQ_NAME = "Turn",
-                                CTQ_VALUE = lockResult.LockTurns,
-                                CTQ_LSL = lockResult.TargetTurnsLowerLimit,
-                                CTQ_USL = lockResult.TargetTurnsUpperLimit,
-                                PROCESS_END_TIME = DateTime.Now.ToString(),
-                                SUPPLIER_NAME = cdata.SUPPLIER_NAME,
-                                COMMODITY_TYPE = cdata.COMMODITY_TYPE,
-                                REVISION = cdata.REVISION,
-                                WO = cdata.WO,
-                                MFG_LOT = cdata.MFG_LOT,
-                                MFG_ASSY_LINE = cdata.MFG_ASSY_LINE,
-                                PROCESS_OUTCOME = lockResult.LockPassed ? "PASS" : "FAIL",
-                                PROCESS_MACHINE_ID = cdata.PROCESS_MACHINE_ID,
-                                CTQ_UNIT_OF_MEASURE = "圈",
-                                ERROR_MESSAGE = lockResult.LockPassed ? "" : "Turn_Spec OOS"
-                            });
-                            DFC.Add(new DataFormCtq
+                            try
                             {
                             {
-                                PPID = productSn,
-                                PROCESS_NAME = cdata.PROCESS_NAME,
-                                PROCESS_START_TIME = StartScrewTime.ToString(),
-                                CTQ_NAME = "Pressure",
-                                CTQ_VALUE = lockResult.Pressure,
-                                CTQ_LSL = cdata.CTQ_LSL_Pressure,
-                                CTQ_USL = cdata.CTQ_USL_Pressure,
-                                PROCESS_END_TIME = DateTime.Now.ToString(),
-                                SUPPLIER_NAME = cdata.SUPPLIER_NAME,
-                                COMMODITY_TYPE = cdata.COMMODITY_TYPE,
-                                REVISION = cdata.REVISION,
-                                WO = cdata.WO,
-                                MFG_LOT = cdata.MFG_LOT,
-                                MFG_ASSY_LINE = cdata.MFG_ASSY_LINE,
-                                PROCESS_OUTCOME = lockResult.LockPassed ? "PASS" : "FAIL",
-                                PROCESS_MACHINE_ID = cdata.PROCESS_MACHINE_ID,
-                                CTQ_UNIT_OF_MEASURE = "N",
-                                ERROR_MESSAGE = lockResult.LockPassed ? "" : "Pressure_Spec OOS"
-                            });
-                            foreach (var item in DFC)
+                                #region 数据
+                                DFC.Clear();
+                                bool torqueRes, turnRes, pressureRes;
+                                if (lockResult.LockTorque >= lockResult.TargetTorqueLowerLimit && lockResult.LockTorque <= lockResult.TargetTorqueUpperLimit)
+                                {
+                                    torqueRes = true;
+                                }
+                                else torqueRes = false;
+                                if (lockResult.Pressure >= cdata.CTQ_LSL_Pressure && lockResult.Pressure <= cdata.CTQ_USL_Pressure)
+                                {
+                                    pressureRes = true;
+                                }
+                                else pressureRes = false;
+                                if (lockResult.LockTurns >= lockResult.TargetTurnsLowerLimit && lockResult.LockTurns <= lockResult.TargetTurnsUpperLimit)
+                                {
+                                    turnRes = true;
+                                }
+                                else turnRes = false;
+                                DFC.Add(new DataFormCtq
+                                {
+                                    PPID = productSn,
+                                    PROCESS_NAME = cdata.PROCESS_NAME,
+                                    PROCESS_START_TIME = StartScrewTime.ToString(),
+                                    CTQ_NAME = "Torque",
+                                    CTQ_VALUE = lockResult.LockTorque,
+                                    CTQ_LSL = lockResult.TargetTorqueLowerLimit,
+                                    CTQ_USL = lockResult.TargetTorqueUpperLimit,
+                                    PROCESS_END_TIME = DateTime.Now.ToString(),
+                                    SUPPLIER_NAME = cdata.SUPPLIER_NAME,
+                                    COMMODITY_TYPE = cdata.COMMODITY_TYPE,
+                                    REVISION = cdata.REVISION,
+                                    WO = cdata.WO,
+                                    MFG_LOT = cdata.MFG_LOT,
+                                    MFG_ASSY_LINE = cdata.MFG_ASSY_LINE,
+                                    PROCESS_OUTCOME = torqueRes ? "PASS" : "FAIL",
+                                    PROCESS_MACHINE_ID = cdata.PROCESS_MACHINE_ID,
+                                    CTQ_UNIT_OF_MEASURE = "kgf.cm",
+                                    ERROR_MESSAGE = torqueRes ? "" : "Torque_Spec OOS"
+                                });
+                                DFC.Add(new DataFormCtq
+                                {
+                                    PPID = productSn,
+                                    PROCESS_NAME = cdata.PROCESS_NAME,
+                                    PROCESS_START_TIME = StartScrewTime.ToString(),
+                                    CTQ_NAME = "Turn",
+                                    CTQ_VALUE = lockResult.LockTurns,
+                                    CTQ_LSL = lockResult.TargetTurnsLowerLimit,
+                                    CTQ_USL = lockResult.TargetTurnsUpperLimit,
+                                    PROCESS_END_TIME = DateTime.Now.ToString(),
+                                    SUPPLIER_NAME = cdata.SUPPLIER_NAME,
+                                    COMMODITY_TYPE = cdata.COMMODITY_TYPE,
+                                    REVISION = cdata.REVISION,
+                                    WO = cdata.WO,
+                                    MFG_LOT = cdata.MFG_LOT,
+                                    MFG_ASSY_LINE = cdata.MFG_ASSY_LINE,
+                                    PROCESS_OUTCOME = turnRes ? "PASS" : "FAIL",
+                                    PROCESS_MACHINE_ID = cdata.PROCESS_MACHINE_ID,
+                                    CTQ_UNIT_OF_MEASURE = "圈",
+                                    ERROR_MESSAGE = turnRes ? "" : "Turn_Spec OOS"
+                                });
+                                DFC.Add(new DataFormCtq
+                                {
+                                    PPID = productSn,
+                                    PROCESS_NAME = cdata.PROCESS_NAME,
+                                    PROCESS_START_TIME = StartScrewTime.ToString(),
+                                    CTQ_NAME = "Pressure",
+                                    CTQ_VALUE = lockResult.Pressure,
+                                    CTQ_LSL = cdata.CTQ_LSL_Pressure,
+                                    CTQ_USL = cdata.CTQ_USL_Pressure,
+                                    PROCESS_END_TIME = DateTime.Now.ToString(),
+                                    SUPPLIER_NAME = cdata.SUPPLIER_NAME,
+                                    COMMODITY_TYPE = cdata.COMMODITY_TYPE,
+                                    REVISION = cdata.REVISION,
+                                    WO = cdata.WO,
+                                    MFG_LOT = cdata.MFG_LOT,
+                                    MFG_ASSY_LINE = cdata.MFG_ASSY_LINE,
+                                    PROCESS_OUTCOME = pressureRes ? "PASS" : "FAIL",
+                                    PROCESS_MACHINE_ID = cdata.PROCESS_MACHINE_ID,
+                                    CTQ_UNIT_OF_MEASURE = "N",
+                                    ERROR_MESSAGE = pressureRes ? "" : "Pressure_Spec OOS"
+                                });
+                                foreach (var item in DFC)
+                                {
+                                    FileHelper.WriteDataToCSV(item);
+                                }
+                                #endregion
+                            }
+                            catch (Exception ex)
                             {
                             {
-                                FileHelper.WriteDataToCSV(item);
+                                SendTaskMessage("CTQ数据存储时出错"+ex.Message, MessageLevel.Error);
                             }
                             }
                         }
                         }
                         else
                         else
@@ -2123,7 +2161,6 @@ namespace TeamAAS_VP.Core
                                 else
                                 else
                                 {
                                 {
                                     code = plc.ReadNode<string>(string.Format(addressConfig.In_Code.Address, i));
                                     code = plc.ReadNode<string>(string.Format(addressConfig.In_Code.Address, i));
-                                    //code = "JSTEST045";
                                 }
                                 }
                                 productSn = code;
                                 productSn = code;
 
 
@@ -2135,7 +2172,7 @@ namespace TeamAAS_VP.Core
                                     _LastMesCheckTime[i] = DateTime.UtcNow;
                                     _LastMesCheckTime[i] = DateTime.UtcNow;
                                     LogHelper.WriteLogMes($"【mes开始QUERY】");
                                     LogHelper.WriteLogMes($"【mes开始QUERY】");
                                     SendTaskMessage($"mes开始QUERY", MessageLevel.Info);
                                     SendTaskMessage($"mes开始QUERY", MessageLevel.Info);
-                                    (bool isSuccess, string response) = await _mesService.StationGetAsync(code,"", 2);//询问mes
+                                    (bool isSuccess, string response) = await _mesService.StationGetAsync(code, "", 2);//询问mes
                                     if (i == 0)
                                     if (i == 0)
                                     {
                                     {
                                         SendTaskMessage($"收到当前过站检查请求(当站是否生产)...", MessageLevel.Debug);
                                         SendTaskMessage($"收到当前过站检查请求(当站是否生产)...", MessageLevel.Debug);
@@ -2194,19 +2231,17 @@ namespace TeamAAS_VP.Core
                                         });
                                         });
 
 
                                     LogHelper.WriteLogMes($"【mes开始ADD】");
                                     LogHelper.WriteLogMes($"【mes开始ADD】");
-                                    SendTaskMessage($"mes开始ADD", MessageLevel.Info);
+                                    SendTaskMessage($"mes开始ADD", MessageLevel.Info);
                                     //上传mes
                                     //上传mes
                                     string torque = ""; string pressure = ""; string turn = "";
                                     string torque = ""; string pressure = ""; string turn = "";
-                                    //string torque = "1-1.11,2-2.22,3-1.11,4-2.22,5-1.11,6-2.22,7-1.11,8-2.22,9-1.11,10-2.22,1-1.11,2-2.22,3-1.11,4-2.22,5-1.11,6-2.22,7-1.11,8-2.22,9-1.11,10-2.22" +
-                                    //    "1-1.11,2-2.22,3-1.11,4-2.22,5-1.11,6-2.22,7-1.11,8-2.22,9-1.11,10-2.22,1-1.11,2-2.22,3-1.11,4-2.22,5-1.11,6-2.22,7-1.11,8-2.22,9-1.11,10-2.22" +
-                                    //    "1-1.11,2-2.22,3-1.11,4-2.22,5-1.11,6-2.22,7-1.11,8-2.22,9-1.11,10-2.22,1-1.11,2-2.22,3-1.11,4-2.22,5-1.11,6-2.22,7-1.11,8-2.22,9-1.11,10-2.22,61-3.33";
-                                    //string pressure = "1-1.11,2-2.22,3-1.11,4-2.22,5-1.11,6-2.22,7-1.11,8-2.22,9-1.11,10-2.22,1-1.11,2-2.22,3-1.11,4-2.22,5-1.11,6-2.22,7-1.11,8-2.22,9-1.11,10-2.22" +
-                                    //    "1-1.11,2-2.22,3-1.11,4-2.22,5-1.11,6-2.22,7-1.11,8-2.22,9-1.11,10-2.22,1-1.11,2-2.22,3-1.11,4-2.22,5-1.11,6-2.22,7-1.11,8-2.22,9-1.11,10-2.22" +
-                                    //    "1-1.11,2-2.22,3-1.11,4-2.22,5-1.11,6-2.22,7-1.11,8-2.22,9-1.11,10-2.22,1-1.11,2-2.22,3-1.11,4-2.22,5-1.11,6-2.22,7-1.11,8-2.22,9-1.11,10-2.22,61-3.33";
-                                    //string turn = "1-1.11,2-2.22,3-1.11,4-2.22,5-1.11,6-2.22,7-1.11,8-2.22,9-1.11,10-2.22,1-1.11,2-2.22,3-1.11,4-2.22,5-1.11,6-2.22,7-1.11,8-2.22,9-1.11,10-2.22" +
-                                    //    "1-1.11,2-2.22,3-1.11,4-2.22,5-1.11,6-2.22,7-1.11,8-2.22,9-1.11,10-2.22,1-1.11,2-2.22,3-1.11,4-2.22,5-1.11,6-2.22,7-1.11,8-2.22,9-1.11,10-2.22" +
-                                    //    "1-1.11,2-2.22,3-1.11,4-2.22,5-1.11,6-2.22,7-1.11,8-2.22,9-1.11,10-2.22,1-1.11,2-2.22,3-1.11,4-2.22,5-1.11,6-2.22,7-1.11,8-2.22,9-1.11,10-2.22,61-3.33";
-                                    (bool isSuccess, string response) = await _mesService.SubmitGetAsync(code,"",torque,pressure,turn, resultIndex == 1 ? true : false, _LastMesCheckTime[i], DateTime.UtcNow);
+                                    for (int j = 0; j < torqueList.Count; j++)
+                                    {
+                                        torque += torqueList[j] + ",";
+                                        pressure += pressureList[j] + ",";
+                                        turn += turnList[j] + ",";
+                                    }
+
+                                    (bool isSuccess, string response) = await _mesService.SubmitGetAsync(code, "", torque, pressure, turn, resultIndex == 1 ? true : false, _LastMesCheckTime[i], DateTime.UtcNow);
                                     if (isSuccess)
                                     if (isSuccess)
                                     {
                                     {
                                         LogHelper.WriteLogMes($"上传mes成功");
                                         LogHelper.WriteLogMes($"上传mes成功");