czw
2025-07-06 f317e966ce0872e04d1455305845c3e19fb4a532
HH.WCS.QingXiNongfu/process/DeviceProcess.cs
@@ -1733,18 +1733,51 @@
               状态2   送空完成之后为状态2
               状态3   满托取走,送空之前为状态3,开机默认状态也为状态3
           */
            //3F 00 12 22 0D 0A--无任务信号
            //3F 00 11 22 0D 0A--A口工作信号
            //3F 00 12 21 0D 0A--B口信号
            //3F 00 11 21 0D 0A--A、B口工作信号
            //A口复位信号 - 3F 00 10 0D 0A
            //B口复位信号 - 3F 00 20 0D 0A
            if (data.Length == 4)
            {
                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]))
@@ -1753,13 +1786,13 @@
                //    }
                //}
                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]))
@@ -1964,6 +1997,54 @@
                }
            }
        }
        private static object locko = new object();
        static bool BottlePEMInfoFullTwo(Settings.deviceInfo plc, string location)
        {
            try
            {
                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)
                    {
                        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;
                }
            }
            catch (Exception ex)
            {
                LogHelper.Info(plc.deviceName + $" 报错: {ex.Message}");
                return false;
            }
        }
        //瓶坯满入库