public override ExecutionResult Check(object dataParam) { var exeResult = (ExecutionResult)dataParam; try { string sn = exeResult.Sn; string stationName = exeResult.StationName; bool mode = exeResult.IsAlive; if (sn == "") { exeResult.Status = false; exeResult.Message = "管号为空!"; return(exeResult); } if (stationName == "") { exeResult.Status = false; exeResult.Message = "站点名为空!"; return(exeResult); } exeResult = _routeController.CheckSn(stationName, sn, mode); if (exeResult.Status) { exeResult = _updateStationController.UpdateStationInfo(sn, stationName, "0"); if (exeResult.Status) { exeResult.Message = "管号:" + sn + "过站成功!"; } } } catch (Exception e) { exeResult.Status = false; exeResult.Message = e.Message; } return(exeResult); }
public override ExecutionResult SaveSn(object dataParam) { var exeResult = (ExecutionResult)dataParam; string stationName = exeResult.StationName; var sn = KepController.KepHelper.Read(Sn).ToString(); var productType = KepController.KepHelper.Read(ProductType).ToString(); //var testValue = double.Parse(KepController.KepHelper.Read(FirstVacuumValue ?? "").ToString()); var testValue = KepController.KepHelper.Read(FirstVacuumValue ?? "").ToString(); var userName = (KepController.KepHelper.Read(UserName ?? "")).ToString(); int a = Convert.ToInt16(testValue.Substring(testValue.LastIndexOf("E") + 2)); decimal b = Convert.ToDecimal(testValue.Substring(0, 4)); testValue = (b / (Convert.ToInt64(Math.Pow(10, a)))).ToString(); var errorFlag = (KepController.KepHelper.Read(FirstTestQuality) ?? 0).ToString(); if (errorFlag == "False") { errorFlag = "0"; } if (errorFlag == "True") { errorFlag = "1"; } if (!string.IsNullOrEmpty(sn) && sn != "0") { exeResult = UpdateOrInsertTestData(sn, productType, stationName, testValue, userName); if (exeResult.Status) { exeResult = _updateStationController.UpdateStationInfo(sn, stationName, errorFlag); if (exeResult.Status) { exeResult = UpdateOrInsertLeakageData(sn, productType, testValue); if (exeResult.Status) { if (errorFlag == "0") { errorFlag = "Y"; } if (errorFlag == "1") { errorFlag = "N"; } exeResult = _dao.UpdateP1Quality(sn, errorFlag); } if (exeResult.Status) { //给第一个管号发送保存完成信号 KepController.KepHelper.Write(SaveFinish, 1); } if (exeResult.Status) { exeResult.Message = "管号:" + sn + "过站成功!"; } } } } else { exeResult.Message = "管号为空,请重新扫描!"; exeResult.Status = false; } return(exeResult); }
public override ExecutionResult LableViewSave(object dataParam) { var exeResult = (ExecutionResult)dataParam; try { exeResult = _dao.GetPfDataInfo(); var dsPf = (DataSet)exeResult.Anything; if (dsPf != null && dsPf.Tables[0].Rows.Count > 0 && dsPf.Tables[0].Rows.Count > 0) { string[] msgList = new string[6]; bool allStatus = true; for (int i = 0; i < dsPf.Tables[0].Rows.Count; i++) { string sn = dsPf.Tables[0].Rows[i]["SERIAL_NUMBER"].ToString(); string productType = dsPf.Tables[0].Rows[i]["PRODUCT_TYPE"].ToString(); string stationName = dsPf.Tables[0].Rows[i]["STATION_NAME"].ToString(); string firstDischargeValue = dsPf.Tables[0].Rows[i]["FIRST_DISCHARGE_VALUE"].ToString(); string errorFlag = dsPf.Tables[0].Rows[i]["ERROR_FLAG"].ToString(); string userName = dsPf.Tables[0].Rows[i]["USER_NAME"].ToString(); DateTime testTime = DateTime.Parse(dsPf.Tables[0].Rows[i]["TEST_TIME"].ToString()); if (errorFlag != "1") { errorFlag = "0"; exeResult = _dao.UpdateQualityHighDischargeInfo(sn, firstDischargeValue, errorFlag); if (!exeResult.Status) { allStatus = false; exeResult.Message = "插入首次击穿电压值失败"; } exeResult = _updateStationController.UpdateStationInfo(sn, stationName, errorFlag); if (exeResult.Status) { exeResult.Message = "管号:" + sn + "过站成功!"; } } else { exeResult = _updateStationController.UpdateStationInfo(sn, stationName, errorFlag); if (exeResult.Status) { allStatus = false; exeResult.Message = "管号:" + sn + "标记不良!";; } } msgList[i] = exeResult.Message ?? ""; exeResult.Status = allStatus; } exeResult.Message = msgList[0] + msgList[1] + msgList[2] + msgList[3] + msgList[4] + msgList[5]; exeResult.Status = allStatus; } else { exeResult.Message = "没查询到老炼测试完成数据"; exeResult.Status = false; } } catch (Exception e) { exeResult.Status = false; exeResult.Message = e.Message; } return(exeResult); }
public override ExecutionResult Check(object dataParam) { var exeResult = (ExecutionResult)dataParam; try { string sn = exeResult.Sn; string stationName = exeResult.StationName; bool mode = exeResult.IsAlive; if (sn == "") { exeResult.Status = false; exeResult.Message = "管号为空!"; return(exeResult); } if (stationName == "") { exeResult.Status = false; exeResult.Message = "站点名为空!"; return(exeResult); } exeResult = _routeController.CheckSn(stationName, sn, mode); if (exeResult.Status) { #region 查询管型编号 string productSerial = ""; if (exeResult.Status) { exeResult = _routeController.GetProductSerial(sn); if (exeResult.Status) { productSerial = (string)exeResult.Anything; } if (!exeResult.Status) { return(exeResult); } } #endregion if (KepController.KepHelper != null && KepController.KepHelper.State) { KepController.KepHelper.Write(ProductSerial, productSerial); var productSerialok = (KepController.KepHelper.Read(ProductSerial) ?? "").ToString(); if (productSerial != productSerialok) { exeResult.Status = false; exeResult.Message = "发送管型序号失败!"; return(exeResult); } exeResult = _updateStationController.UpdateStationInfo(sn, stationName, "0"); if (exeResult.Status) { KepController.KepHelper.Write(ScanFinish, 1);//资料更新成功,发送扫描完成 exeResult.Message = "管号:" + sn + "过站成功!"; } } else { exeResult.Status = false; exeResult.Message = "未连接KEP服务器!"; return(exeResult); } } else { KepController.KepHelper.Write(GoPallet, 1); //流程正确回托盘 exeResult.Status = false; exeResult.Message = exeResult.Message; } } catch (Exception e) { exeResult.Status = false; exeResult.Message = e.Message; } return(exeResult); }
public override ExecutionResult SaveSn(object dataParam) { var exeResult = (ExecutionResult)dataParam; string stationName = exeResult.StationName; var sn = KepController.KepHelper.Read(Sn).ToString(); var productType = KepController.KepHelper.Read(ProductType).ToString(); var dianZuValue = Convert.ToDouble(KepController.KepHelper.Read(DianZuValue ?? "")).ToString("0.00"); var dianZuIsOk = (KepController.KepHelper.Read(DianZuIsOk ?? "")).ToString(); if (dianZuIsOk == "True") { dianZuIsOk = "N"; } else { dianZuIsOk = "Y"; } var ziBiLiValue = (KepController.KepHelper.Read(ZiBiLiValue) ?? 0).ToString(); var ziBiLiIsOk = (KepController.KepHelper.Read(ZiBiLiIsOk ?? "")).ToString(); if (ziBiLiIsOk == "True") { ziBiLiIsOk = "N"; } else { ziBiLiIsOk = "Y"; } var fanLiValue = (KepController.KepHelper.Read(FanLiValue) ?? 0).ToString(); var fanLiIsOk = (KepController.KepHelper.Read(FanLiIsOk ?? "")).ToString(); if (fanLiIsOk == "True") { fanLiIsOk = "N"; } else { fanLiIsOk = "Y"; } var userName = (KepController.KepHelper.Read(UserName ?? "")).ToString(); var mode = (KepController.KepHelper.Read(Mode ?? "")).ToString(); if (mode == "True") { mode = "全部测试"; } else { mode = "只测电阻"; } var errorFlag = "0"; if (!string.IsNullOrEmpty(sn) && sn != "0") { exeResult = UpdateOrInsertTouchDataAll(sn, productType, dianZuValue, dianZuIsOk, ziBiLiValue, ziBiLiIsOk, fanLiValue, fanLiIsOk, mode, userName); if (exeResult.Status) { exeResult = UpdateOrInsertQualityAll(sn, dianZuValue, ziBiLiValue, fanLiValue, mode); if (exeResult.Status) { //判断是否为完全测试模式 为true是部分测试模式 if (exeResult.IsAlive == false) { exeResult = _updateStationController.UpdateStationInfo(sn, stationName, errorFlag); } if (exeResult.Status) { //发送保存完成信号 KepController.KepHelper.Write(SaveFinish, 1); } if (exeResult.Status) { exeResult.Message = "管号:" + sn + "过站成功!"; } } else { exeResult.Message = "质量测试报表插入接触电阻数据失败!"; exeResult.Status = false; } } else { exeResult.Message = "接触电阻表数据更新失败!"; exeResult.Status = false; } } else { exeResult.Message = "管号为空,请重新扫描!"; exeResult.Status = false; } return(exeResult); }
public override ExecutionResult LableViewSave(object dataParam) { var exeResult = (ExecutionResult)dataParam; try { exeResult = _dao.GetIvcTestDataInfo(); var dsIvc = (DataSet)exeResult.Anything; if (dsIvc != null && dsIvc.Tables[0].Rows.Count > 0 && dsIvc.Tables[0].Rows.Count > 0) { string[] msgList = new string[3]; bool allStatus = true; for (int i = 0; i < dsIvc.Tables[0].Rows.Count; i++) { string sn = dsIvc.Tables[0].Rows[i]["SERIAL_NUMBER"].ToString(); string errorFlag = dsIvc.Tables[0].Rows[i]["ERROR_FLAG"].ToString(); string productType = dsIvc.Tables[0].Rows[i]["PRODUCT_TYPE"].ToString(); int mode = int.Parse(dsIvc.Tables[0].Rows[i]["MODE"].ToString()); string positiveValue = dsIvc.Tables[0].Rows[i]["POSITIVE_VALUE"].ToString(); string negativeValue = dsIvc.Tables[0].Rows[i]["NEGATIVE_VALUE"].ToString(); string pDischargeNumber = dsIvc.Tables[0].Rows[i]["P_DISCHARGE_NUMBER"].ToString(); string nDischargeNumber = dsIvc.Tables[0].Rows[i]["N_DISCHARGE_NUMBER"].ToString(); string userName = dsIvc.Tables[0].Rows[i]["USER_NAME"].ToString(); string stationName = dsIvc.Tables[0].Rows[i]["STATION_NAME"].ToString(); DateTime testTime = DateTime.Parse(dsIvc.Tables[0].Rows[i]["TEST_TIME"].ToString()); string positiveValueF = ""; string negativeValueF = ""; #region 插入服务器150雷电冲击测试数据 for (int j = 0; j < mode; j++) { string number = (j + 1).ToString(); string[] positiveValueC = positiveValue.Split(','); string[] negativeValueC = negativeValue.Split(','); if (positiveValueC.Length == mode) { positiveValueF = positiveValueC[j]; } if (positiveValueC.Length == mode) { negativeValueF = negativeValueC[j]; } exeResult = _dao.InsertLightingImpulseInfo(sn, productType, number, positiveValueF, negativeValueF, userName, testTime); } #endregion if (errorFlag != "1") { exeResult = _dao.UpdateQualityImpluseInfo(sn, pDischargeNumber, nDischargeNumber); if (!exeResult.Status) { allStatus = false; exeResult.Message = "插入雷电冲击正负极击穿次数失败"; } exeResult = _updateStationController.UpdateStationInfo(sn, stationName, errorFlag); if (exeResult.Status) { exeResult.Message = "管号:" + sn + "过站成功!"; } } else { exeResult = _updateStationController.UpdateStationInfo(sn, stationName, errorFlag); if (exeResult.Status) { allStatus = false; exeResult.Message = "管号:" + sn + "标记不良!";; } } msgList[i] = exeResult.Message ?? ""; exeResult.Status = allStatus; } exeResult.Message = msgList[0] + msgList[1] + msgList[2]; exeResult.Status = allStatus; } } catch (Exception e) { exeResult.Status = false; exeResult.Message = e.Message; } return(exeResult); }
public override ExecutionResult SaveSn(object dataParam) { var exeResult = (ExecutionResult)dataParam; bool mode = exeResult.IsAlive; exeResult.Status = true; string flag = (string)exeResult.Anything; string stationName = exeResult.StationName; string [] msgList = new string[3]; bool allStatus = true; bool ng1, ng2, ng3; bool warn1, warn2, warn3; var snA = KepController.KepHelper.Read(SN1).ToString() ?? "0"; var snB = KepController.KepHelper.Read(SN2).ToString() ?? "0"; var snC = KepController.KepHelper.Read(SN3).ToString() ?? "0"; var userName = KepController.KepHelper.Read(UserName).ToString(); #region 第一个Sn处理过程 if (!string.IsNullOrWhiteSpace(snA) && !snA.Equals("0")) { #region 查询x射线工位不良描述 if (ErrorCodeHelper.ErrorCodeDic.Count <= 0 || ErrorCodeHelper.DescAddrDic.Count <= 0) { exeResult = ErrorCodeHelper.GetErrorCodeInfo("X射线工位"); } #endregion string strA = snA; if (exeResult.Status) { if (exeResult.Status) { ng1 = bool.Parse(KepController.KepHelper.Read(NG1).ToString()); warn1 = bool.Parse(KepController.KepHelper.Read(WARN1).ToString()); if (ng1 || warn1) { //读取各个不良信息 List <string> errorCodelistA = new List <string>(); foreach (var key in ErrorCodeHelper.ValueAddrDic1.Keys) { bool errorCodeKep = bool.Parse(KepController.KepHelper.Read(ErrorCodeHelper.ValueAddrDic1[key]).ToString()); if (errorCodeKep.Equals(true)) { errorCodelistA.Add(key); } } if (errorCodelistA.Count > 0) { //为真插入log记录 if (ng1.Equals(true)) { exeResult = _dao.InsertErrorLogInfo(strA, stationName, errorCodelistA, userName); if (exeResult.Status) { exeResult.ErrorFlag = 1; } } //为真插入警告记录 if (warn1.Equals(true)) { exeResult = _dao.InsertWarningInfo(strA, stationName, errorCodelistA); if (exeResult.Status) { exeResult.ErrorFlag = 0; } } } } flag = exeResult.ErrorFlag.ToString(); //跟新工位名称和错误标记 exeResult = _updateStationController.UpdateStationInfo(strA, stationName, flag); //exeResult.Status = true; if (exeResult.Status) { if (flag == "1") { flag = "N"; } if (flag == "0") { flag = "Y"; } } exeResult = _dao.UpdateXrayQuality(strA, flag); if (exeResult.Status) { //给第一个管号发送保存完成信号 KepController.KepHelper.Write(SaveA, 1); } if (exeResult.Status && flag == "0") { exeResult.Message = "管号:" + snA + "过站成功!"; } if (exeResult.Status && flag == "1") { exeResult.Message = "管号:" + snA + "存在不良,请下线处理!"; allStatus = false; } } } } else { exeResult.Message = "第一列管号不存在!"; allStatus = false; } msgList[0] = exeResult.Message ?? ""; #endregion #region 第二个Sn处理过程 if (!string.IsNullOrWhiteSpace(snB) && !snB.Equals("0")) { #region 查询x射线工位不良描述 if (ErrorCodeHelper.ErrorCodeDic.Count <= 0 || ErrorCodeHelper.DescAddrDic.Count <= 0) { exeResult = ErrorCodeHelper.GetErrorCodeInfo("X射线工位"); } #endregion string strB = snB; if (exeResult.Status) { exeResult = _routeController.CheckSn(stationName, strB, mode); if (exeResult.Status) { ng2 = bool.Parse(KepController.KepHelper.Read(NG2).ToString()); warn2 = bool.Parse(KepController.KepHelper.Read(WARN2).ToString()); if (ng2 || warn2) { //读取各个不良信息 List <string> errorCodelistB = new List <string>(); foreach (var key in ErrorCodeHelper.ValueAddrDic2.Keys) { bool errorCodeKep = bool.Parse(KepController.KepHelper.Read(ErrorCodeHelper.ValueAddrDic2[key]).ToString()); if (errorCodeKep.Equals(true)) { errorCodelistB.Add(key); } } if (errorCodelistB.Count > 0) { //为真插入log记录 if (ng2.Equals(true)) { exeResult = _dao.InsertErrorLogInfo(strB, stationName, errorCodelistB, userName); if (exeResult.Status) { exeResult.ErrorFlag = 1; } } //为真插入警告记录 if (warn2.Equals(true)) { exeResult = _dao.InsertWarningInfo(strB, stationName, errorCodelistB); if (exeResult.Status) { exeResult.ErrorFlag = 0; } } } } flag = exeResult.ErrorFlag.ToString(); //跟新工位名称和错误标记 exeResult = _updateStationController.UpdateStationInfo(strB, stationName, flag); //exeResult.Status = true; if (exeResult.Status) { if (flag == "1") { flag = "N"; } if (flag == "0") { flag = "Y"; } } exeResult = _dao.UpdateXrayQuality(strB, flag); if (exeResult.Status) { //给第二个管号发送保存完成信号 KepController.KepHelper.Write(SaveB, 1); } if (exeResult.Status && flag == "0") { exeResult.Message = exeResult.Message + "管号:" + snB + "过站成功!"; } if (exeResult.Status && flag == "1") { exeResult.Message = exeResult.Message + "管号:" + snB + "存在不良,请下线处理!"; allStatus = false; } } } } else { exeResult.Message = "第二列管号不存在!"; allStatus = false; } msgList[1] = exeResult.Message ?? ""; #endregion #region 第三个Sn处理过程 if (!string.IsNullOrWhiteSpace(snC) && !snC.Equals("0")) { #region 查询x射线工位不良描述 if (ErrorCodeHelper.ErrorCodeDic.Count <= 0 || ErrorCodeHelper.DescAddrDic.Count <= 0) { exeResult = ErrorCodeHelper.GetErrorCodeInfo("X射线工位"); } if (!exeResult.Status) { return(exeResult); } #endregion string strC = snC; exeResult = _routeController.CheckSn(stationName, strC, mode); if (exeResult.Status) { ng3 = bool.Parse(KepController.KepHelper.Read(NG3).ToString()); warn3 = bool.Parse(KepController.KepHelper.Read(WARN3).ToString()); if (ng3 || warn3) { //读取各个不良信息 List <string> errorCodelistC = new List <string>(); foreach (var key in ErrorCodeHelper.ValueAddrDic3.Keys) { bool errorCodeKep = bool.Parse(KepController.KepHelper.Read(ErrorCodeHelper.ValueAddrDic3[key]).ToString()); if (errorCodeKep.Equals(true)) { errorCodelistC.Add(key); } } if (errorCodelistC.Count > 0) { //为真插入log记录 if (ng3.Equals(true)) { exeResult = _dao.InsertErrorLogInfo(strC, stationName, errorCodelistC, userName); if (exeResult.Status) { exeResult.ErrorFlag = 1; } } //为真插入警告记录 if (warn3.Equals(true)) { exeResult = _dao.InsertWarningInfo(strC, stationName, errorCodelistC); if (exeResult.Status) { exeResult.ErrorFlag = 0; } } } } flag = exeResult.ErrorFlag.ToString(); //跟新工位名称和错误标记 exeResult = _updateStationController.UpdateStationInfo(strC, stationName, flag); //exeResult.Status = true; if (exeResult.Status) { if (flag == "1") { flag = "N"; } if (flag == "0") { flag = "Y"; } } exeResult = _dao.UpdateXrayQuality(strC, flag); if (exeResult.Status) { //给第三个管号发送保存完成信号 KepController.KepHelper.Write(SaveC, 1); } if (exeResult.Status && flag == "0") { exeResult.Message = exeResult.Message + "管号:" + snC + "过站成功!"; } if (exeResult.Status && flag == "1") { exeResult.Message = exeResult.Message + "管号:" + snC + "存在不良,请下线处理!"; allStatus = false; } } } else { exeResult.Message = "第三列管号不存在!"; allStatus = false; } #endregion exeResult.Status = allStatus; msgList[2] = exeResult.Message ?? ""; exeResult.Message = msgList[0] + msgList[1] + msgList[2]; return(exeResult); }
public override ExecutionResult Check(object dataParam) { _exeResult = (ExecutionResult)dataParam; try { string sn = _exeResult.Sn; string stationName = _exeResult.StationName; bool mode = _exeResult.IsAlive; string cproductType = _exeResult.ProductType; if (sn == "") { _exeResult.Status = false; _exeResult.Message = "管号为空!"; return(_exeResult); } if (stationName == "") { _exeResult.Status = false; _exeResult.Message = "站点名为空!"; return(_exeResult); } _exeResult = _routeController.CheckSn(stationName, sn, mode); if (_exeResult.Status) { #region 查询x射线工位不良描述 if (ErrorCodeHelper.ErrorCodeDic.Count <= 0 || ErrorCodeHelper.DescAddrDic.Count <= 0) { _exeResult = ErrorCodeHelper.GetErrorCodeInfo("X射线工位"); } if (!_exeResult.Status) { return(_exeResult); } #endregion #region 查询是否墩粗、喷漆 string isUpsetting = "False"; string isSprayPainting = "False"; string isXray = "True"; string isFirstVacuum = "True"; if (_exeResult.Status) { _exeResult = RouteDAO.GetRouteInfo(sn); DataSet ds = _exeResult.Anything as DataSet; if (ds != null && ds.Tables[0].Rows.Count > 0) { foreach (DataRow dr in ds.Tables[0].Rows) { string name = dr["STATION_NAME"].ToString(); if (name == "喷漆") { isSprayPainting = "True"; } if (name == "墩粗") { isUpsetting = "True"; } if (name == "第一次真空度测试") { isFirstVacuum = "False"; } if (name == "X射线工位") { isXray = "False"; } } } if (!_exeResult.Status) { _exeResult.Status = false; _exeResult.Message = "未找到管号:" + sn + "对应的流程!"; return(_exeResult); } } #endregion #region 查询管型编号 string productSerial = ""; if (_exeResult.Status) { _exeResult = _routeController.GetProductSerial(sn); if (_exeResult.Status) { productSerial = (string)_exeResult.Anything; } if (!_exeResult.Status) { return(_exeResult); } } #endregion #region 查询管型 string productType = ""; if (_exeResult.Status) { _exeResult = _routeController.GetProductType(sn); if (_exeResult.Status) { productType = (string)_exeResult.Anything; if (productType != cproductType) { _exeResult.Message = "产线管型:" + cproductType + "与上线维护管型:" + productType + "不一致"; _exeResult.Status = false; return(_exeResult); } } if (!_exeResult.Status) { return(_exeResult); } } #endregion #region 查询托盘大小 string pallet = ""; if (_exeResult.Status) { _exeResult = _routeController.GetPalletByProductType(productType); if (_exeResult.Status) { pallet = (string)_exeResult.Anything; if (pallet == "1") { pallet = "True"; } else { pallet = "False"; } } if (!_exeResult.Status) { return(_exeResult); } } #endregion if (KepController.KepHelper != null && KepController.KepHelper.State) { //给pLC发送管型、管号、管型编号、是否墩粗、是否喷漆 var autorun = (KepController.KepHelper.Read(AutoRun) ?? "").ToString(); if (autorun == "False") { _exeResult.Status = false; _exeResult.Message = "线体不在自动运行模式,无法扫描录入!"; return(_exeResult); } var badMode = (KepController.KepHelper.Read(BadMode) ?? "").ToString(); if (badMode == "True") { _exeResult.Status = false; _exeResult.Message = "线体在废品上线模式,无法扫描录入!"; return(_exeResult); } var productSerialIsOk = (KepController.KepHelper.Read(ProductSerial) ?? "").ToString(); if (productSerialIsOk == productSerial) { var palletisok = (KepController.KepHelper.Read(Pallet) ?? "").ToString(); if (palletisok == "True") { int scanCount = int.Parse(KepController.KepHelper.Read(ScanCount).ToString()); if (scanCount >= 12) { _exeResult.Status = false; _exeResult.Message = "大托盘已装满" + scanCount + "支,无法再次扫描录入!"; return(_exeResult); } } if (palletisok == "False") { int scanCount = int.Parse(KepController.KepHelper.Read(ScanCount).ToString()); if (scanCount >= 24) { _exeResult.Status = false; _exeResult.Message = "小托盘已装满" + scanCount + "支,无法再次扫描录入!"; return(_exeResult); } } } if (productSerialIsOk != productSerial) { int scanCount = int.Parse(KepController.KepHelper.Read(ScanCount).ToString()); if (scanCount != 0) { _exeResult.Status = false; _exeResult.Message = "一个托盘内不允许放不同管型!"; return(_exeResult); } } KepController.KepHelper.Write(ProductSerial, productSerial); KepController.KepHelper.Write(ProductType, productType); KepController.KepHelper.Write(Pallet, pallet); KepController.KepHelper.Write(IsSprayPainting, isSprayPainting); KepController.KepHelper.Write(IsUpsetting, isUpsetting); KepController.KepHelper.Write(IsFirstVacuum, isFirstVacuum); KepController.KepHelper.Write(IsXray, isXray); //给PLC发送不良信息描述 foreach (var key in ErrorCodeHelper.ErrorCodeDic.Keys) { string wkey = ErrorCodeHelper.DescAddrDic[key]; // string wval = ErrorCodeHelper.ErrorCodekeyDic[key]; string wval = key.Substring(key.LastIndexOf('-') + 1); KepController.KepHelper.Write(wkey, wval); } KepController.KepHelper.Write(ErrorCodeDescCount, ErrorCodeHelper.ErrorCodeDic.Count); #region 判断发送PLC值是否正确 var productSerialok = (KepController.KepHelper.Read(ProductSerial) ?? "").ToString(); if (productSerial != productSerialok) { _exeResult.Status = false; _exeResult.Message = "发送管型序号失败!"; return(_exeResult); } var productTypeok = (KepController.KepHelper.Read(ProductType) ?? "").ToString(); if (productType != productTypeok) { _exeResult.Status = false; _exeResult.Message = "发送管型失败!"; return(_exeResult); } var palletok = (KepController.KepHelper.Read(Pallet) ?? "").ToString(); if (pallet != palletok) { _exeResult.Status = false; _exeResult.Message = "发送托盘类型失败!"; return(_exeResult); } var isSprayPaintingok = (KepController.KepHelper.Read(IsSprayPainting) ?? "").ToString(); if (isSprayPainting != isSprayPaintingok) { _exeResult.Status = false; _exeResult.Message = "发送是否喷漆失败!"; return(_exeResult); } var isUpsettingok = (KepController.KepHelper.Read(IsUpsetting) ?? "").ToString(); if (isUpsetting != isUpsettingok) { _exeResult.Status = false; _exeResult.Message = "发送是否墩粗失败!"; return(_exeResult); } var isFirstVacuumok = (KepController.KepHelper.Read(IsFirstVacuum) ?? "").ToString(); if (isFirstVacuum != isFirstVacuumok) { _exeResult.Status = false; _exeResult.Message = "发送是否第一次真空度失败!"; return(_exeResult); } var isXrayok = (KepController.KepHelper.Read(IsXray) ?? "").ToString(); if (isXray != isXrayok) { _exeResult.Status = false; _exeResult.Message = "发送是否x射线失败!"; return(_exeResult); } var errorCodeDescCountok = (KepController.KepHelper.Read(ErrorCodeDescCount) ?? "").ToString(); if (ErrorCodeHelper.ErrorCodeDic.Count.ToString() != errorCodeDescCountok) { _exeResult.Status = false; _exeResult.Message = "发送不良描述总数失败!"; return(_exeResult); } #endregion if (_exeResult.Status) { _exeResult = _updateStationController.InsertSnToQulity(sn, isSprayPainting, isUpsetting); } if (_exeResult.Status) { _exeResult = _updateStationController.UpdateStationInfo(sn, stationName, "0"); } KepController.KepHelper.Write(ScanFinish, 1); if (_exeResult.Status) { _exeResult.Message = "管号:" + sn + "过站成功!"; } } else { _exeResult.Status = false; _exeResult.Message = "未连接KEP服务器!"; return(_exeResult); } } } catch (Exception e) { _exeResult.Status = false; _exeResult.Message = e.Message; } return(_exeResult); }
public override ExecutionResult Check(object dataParam) { var exeResult = (ExecutionResult)dataParam; try { string sn = exeResult.Sn; string stationName = exeResult.StationName; bool mode = exeResult.IsAlive; if (sn == "") { exeResult.Status = false; exeResult.Message = "管号为空!"; return(exeResult); } if (stationName == "") { exeResult.Status = false; exeResult.Message = "站点名为空!"; return(exeResult); } exeResult = _routeController.CheckSn(stationName, sn, mode); if (exeResult.Status) { var productType = (string)exeResult.Anything; string nextStation = ""; exeResult = _routeController.GetNextStation(sn, stationName); if (exeResult.Status) { nextStation = (string)exeResult.Anything; } else { return(exeResult); } if (KepController.KepHelper != null && KepController.KepHelper.State) { KepController.KepHelper.Write(ProductType, productType); KepController.KepHelper.Write(NextStation, nextStation); var type = (KepController.KepHelper.Read(ProductType) ?? "").ToString(); var station = (KepController.KepHelper.Read(NextStation) ?? "").ToString(); //if (productType != type) //{ // _exeResult.Status = false; // _exeResult.Message = "发送管型失败!"; // return _exeResult; //} //if (nextStation != station) //{ // _exeResult.Status = false; // _exeResult.Message = "发送下一站失败!"; // return _exeResult; //} exeResult = _updateStationController.UpdateStationInfo(sn, stationName, "0"); if (exeResult.Status) { exeResult.Message = "管号:" + sn + "过站成功!"; } } else { exeResult.Status = false; exeResult.Message = "未连接KEP服务器!"; return(exeResult); } } } catch (Exception e) { exeResult.Status = false; exeResult.Message = e.Message; } return(exeResult); }
public override ExecutionResult Check(object dataParam) { var exeResult = (ExecutionResult)dataParam; try { string sn = exeResult.Sn; string stationName = exeResult.StationName; bool mode = exeResult.IsAlive; string cproductType = exeResult.ProductType; if (sn == "") { exeResult.Status = false; exeResult.Message = "管号为空!"; return(exeResult); } if (stationName == "") { exeResult.Status = false; exeResult.Message = "站点名为空!"; return(exeResult); } exeResult = _routeController.CheckSn(stationName, sn, mode); if (exeResult.Status) { #region 查询管型编号 string productSerial = ""; if (exeResult.Status) { exeResult = _routeController.GetProductSerial(sn); if (exeResult.Status) { productSerial = (string)exeResult.Anything; } if (!exeResult.Status) { return(exeResult); } } #endregion #region 查询管型 string productType = ""; if (exeResult.Status) { exeResult = _routeController.GetProductType(sn); if (exeResult.Status) { productType = (string)exeResult.Anything; if (productType != cproductType) { exeResult.Message = "产线管型:" + cproductType + "与上线维护管型:" + productType + "不一致"; exeResult.Status = false; return(exeResult); } } if (!exeResult.Status) { return(exeResult); } } #endregion #region 查询托盘大小 string pallet = ""; if (exeResult.Status) { exeResult = _routeController.GetPalletByProductType(productType); if (exeResult.Status) { pallet = (string)exeResult.Anything; if (pallet == "1") { pallet = "True"; } else { pallet = "False"; } } if (!exeResult.Status) { return(exeResult); } } #endregion if (KepController.KepHelper != null && KepController.KepHelper.State) { var autorun = (KepController.KepHelper.Read(AutoRun) ?? "").ToString(); if (autorun == "False") { exeResult.Status = false; exeResult.Message = "线体不在自动运行模式,无法扫描录入!"; return(exeResult); } var badMode = (KepController.KepHelper.Read(BadMode) ?? "").ToString(); if (badMode == "True") { exeResult.Status = false; exeResult.Message = "线体在废品上线模式,无法扫描录入!"; return(exeResult); } var productSerialIsOk = (KepController.KepHelper.Read(ProductSerial) ?? "").ToString(); if (productSerialIsOk == productSerial) { var palletisok = (KepController.KepHelper.Read(Pallet) ?? "").ToString(); if (palletisok == "True") { int scanCount = int.Parse(KepController.KepHelper.Read(ScanCount).ToString()); if (scanCount >= 12) { exeResult.Status = false; exeResult.Message = "大托盘已装满" + scanCount + "支,无法再次扫描录入!"; return(exeResult); } } if (palletisok == "False") { int scanCount = int.Parse(KepController.KepHelper.Read(ScanCount).ToString()); if (scanCount >= 24) { exeResult.Status = false; exeResult.Message = "小托盘已装满" + scanCount + "支,无法再次扫描录入!"; return(exeResult); } } } if (productSerialIsOk != productSerial) { int scanCount = int.Parse(KepController.KepHelper.Read(ScanCount).ToString()); if (scanCount != 0) { exeResult.Status = false; exeResult.Message = "一个托盘内不允许放不同管型!"; return(exeResult); } } KepController.KepHelper.Write(ProductSerial, productSerial); KepController.KepHelper.Write(Pallet, pallet); var productSerialok = (KepController.KepHelper.Read(ProductSerial) ?? "").ToString(); if (productSerial != productSerialok) { exeResult.Status = false; exeResult.Message = "发送管型序号失败!"; return(exeResult); } var palletok = (KepController.KepHelper.Read(Pallet) ?? "").ToString(); if (pallet != palletok) { exeResult.Status = false; exeResult.Message = "发送托盘类型失败!"; return(exeResult); } KepController.KepHelper.Write(ScanFinish, 1); exeResult = _updateStationController.UpdateStationInfo(sn, stationName, "0"); if (exeResult.Status) { exeResult.Message = "管号:" + sn + "过站成功!"; } } else { exeResult.Status = false; exeResult.Message = "未连接KEP服务器!"; return(exeResult); } } } catch (Exception e) { exeResult.Status = false; exeResult.Message = e.Message; } return(exeResult); }