|
|
@@ -119,6 +119,9 @@ namespace TeamAAS_VP.Core
|
|
|
List<LockResult> lockResultsAll = new List<LockResult>();//一个产品的总结果
|
|
|
string productSn = "";//产品sn
|
|
|
DateTime StartScrewTime = DateTime.Now;//开始锁附的时间
|
|
|
+ List<string> torqueList = new List<string>();//扭力数据集合
|
|
|
+ List<string> pressureList = new List<string>();//压力数据集合
|
|
|
+ List<string> turnList = new List<string>();//圈数数据集合
|
|
|
#endregion
|
|
|
|
|
|
#region 属性
|
|
|
@@ -1735,7 +1738,7 @@ namespace TeamAAS_VP.Core
|
|
|
{
|
|
|
if (TorqueStatus)
|
|
|
{
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
SendTaskMessage(Lang.收到停止锁付信号, MessageLevel.Debug);
|
|
|
//位置编号
|
|
|
@@ -1812,6 +1815,16 @@ namespace TeamAAS_VP.Core
|
|
|
lockResult.LockCurveImagePath = System.IO.Path.Combine(dirPath, curveFileName);
|
|
|
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);
|
|
|
App.Current.Dispatcher.Invoke(() =>
|
|
|
@@ -1830,73 +1843,98 @@ namespace TeamAAS_VP.Core
|
|
|
// 停止采集压力并保存
|
|
|
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
|
|
|
@@ -2123,7 +2161,6 @@ namespace TeamAAS_VP.Core
|
|
|
else
|
|
|
{
|
|
|
code = plc.ReadNode<string>(string.Format(addressConfig.In_Code.Address, i));
|
|
|
- //code = "JSTEST045";
|
|
|
}
|
|
|
productSn = code;
|
|
|
|
|
|
@@ -2135,7 +2172,7 @@ namespace TeamAAS_VP.Core
|
|
|
_LastMesCheckTime[i] = DateTime.UtcNow;
|
|
|
LogHelper.WriteLogMes($"【mes开始QUERY】");
|
|
|
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)
|
|
|
{
|
|
|
SendTaskMessage($"收到当前过站检查请求(当站是否生产)...", MessageLevel.Debug);
|
|
|
@@ -2194,19 +2231,17 @@ namespace TeamAAS_VP.Core
|
|
|
});
|
|
|
|
|
|
LogHelper.WriteLogMes($"【mes开始ADD】");
|
|
|
- SendTaskMessage($"mes开始ADD", MessageLevel.Info);
|
|
|
+ SendTaskMessage($"【mes开始ADD】", MessageLevel.Info);
|
|
|
//上传mes
|
|
|
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)
|
|
|
{
|
|
|
LogHelper.WriteLogMes($"上传mes成功");
|