| | |
| | | |
| | | if (data.Length == 4) |
| | | { |
| | | //if (data == "1122")//A口工作信号 |
| | | //{ |
| | | // if (BottlePEMInfoFullTwo(plc, plc.location[0])) |
| | | // { |
| | | |
| | | // } |
| | | //} |
| | | //else if (data == "1221")//B口工作信号 |
| | | //{ |
| | | // if (BottlePEMInfoFullTwo(plc, plc.location[1])) |
| | | // { |
| | | |
| | | // } |
| | | //} |
| | | //else if (data == "1121")//B口工作信号 |
| | | //{ |
| | | // if (BottlePEMInfoFullTwo(plc, plc.location[0])) |
| | | // { |
| | | |
| | | // } |
| | | // if (BottlePEMInfoFullTwo(plc, plc.location[1])) |
| | | // { |
| | | |
| | | // } |
| | | //} |
| | | |
| | | if (data.Substring(1, 1) == "1") |
| | | if (data == "1122")//A口工作信号 |
| | | { |
| | | if (BottlePEMInfoFull(plc, plc.location[0])) |
| | | if (BottlePEMInfoFullTwo(plc, plc.location[0])) |
| | | { |
| | | //设备没有托盘,或者已经有任务,不处理满托信号,返回已经取货完成 |
| | | //3F 00 11 0d 0a |
| | | //PlcHelper.SendHex(plc.address, "3F00110d0a"); |
| | | |
| | | } |
| | | } |
| | | else if (data == "1221")//B口工作信号 |
| | | { |
| | | if (BottlePEMInfoFullTwo(plc, plc.location[1])) |
| | | { |
| | | |
| | | } |
| | | } |
| | | else if (data == "1121")//B口工作信号 |
| | | { |
| | | if (BottlePEMInfoFullTwo(plc, plc.location[0])) |
| | | { |
| | | |
| | | } |
| | | if (BottlePEMInfoFullTwo(plc, plc.location[1])) |
| | | { |
| | | |
| | | } |
| | | } |
| | | |
| | | //if (data.Substring(1, 1) == "1") |
| | | //{ |
| | | // if (BottlePEMInfoFull(plc, plc.location[0])) |
| | | // { |
| | | // //设备没有托盘,或者已经有任务,不处理满托信号,返回已经取货完成 |
| | | // //3F 00 11 0d 0a |
| | | // //PlcHelper.SendHex(plc.address, "3F00110d0a"); |
| | | // } |
| | | //} |
| | | //else if (data.Substring(1, 1) == "3") |
| | | //{ |
| | | // if (BottleCapInfoEmpty(plc, plc.location[0])) |
| | |
| | | // } |
| | | //} |
| | | |
| | | if (data.Substring(3, 1) == "1") |
| | | { |
| | | if (BottlePEMInfoFull(plc, plc.location[1])) |
| | | { |
| | | //PlcHelper.SendHex(plc.address, "3F00210d0a"); |
| | | } |
| | | } |
| | | //if (data.Substring(3, 1) == "1") |
| | | //{ |
| | | // if (BottlePEMInfoFull(plc, plc.location[1])) |
| | | // { |
| | | // //PlcHelper.SendHex(plc.address, "3F00210d0a"); |
| | | // } |
| | | //} |
| | | //else if (data.Substring(3, 1) == "3") |
| | | //{ |
| | | // if (BottleCapInfoEmpty(plc, plc.location[1])) |
| | |
| | | } |
| | | } |
| | | } |
| | | private static object locko = new object(); |
| | | |
| | | static bool BottlePEMInfoFullTwo(Settings.deviceInfo plc, string location) |
| | | { |
| | | |
| | | |
| | | try |
| | | { |
| | | if (location != "") |
| | | lock (locko) |
| | | { |
| | | var chi = new SqlHelper<object>().GetInstance(); |
| | | var newDb = chi.CopyNew(); |
| | | Location endBit = null; |
| | | if (location == "") |
| | | { |
| | | throw new Exception("货位为空"); |
| | | } |
| | | var workOrder = WCSHelper.GetWorkOrder(plc.deviceName); |
| | | if (workOrder == null) |
| | | { |
| | | LogHelper.Info(plc.deviceName + "没有【执行中】的工单"); |
| | | return false; |
| | | throw new Exception("没有【执行中】的工单"); |
| | | } |
| | | if (workOrder.SQL_UsingNow == "Y")//即产即用 |
| | | { |
| | | //查询 半成品区域表 BcpQyOrder |
| | | |
| | | } |
| | | else//非即产即用 |
| | | { |
| | | |
| | | } |
| | | if (endBit != null) |
| | | { |
| | | var _ctrl = LocationHelper.GetLocCntrRel(location); |
| | | int endLayer = endBit.N_CURRENT_NUM + 1; |
| | | var carryCntrs = new List<string> { _ctrl.FirstOrDefault().S_CNTR_CODE };//DateTime.Now.ToString("yyMMddHHmmss") }; |
| | | var bb = TaskProcess.CreateTransport(workOrder.SQL_WorkNo, location, endBit.S_LOC_CODE, "满瓶坯-入库", carryCntrs, 1, endLayer, carryCntrs.Count, plc.taskPri); |
| | | } |
| | | return true; |
| | | } |
| | | return false; |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Info(plc.deviceName + $" 报错: {ex.Message}"); |
| | | return false; |
| | | } |
| | | } |