111
cjs
2025-06-19 ad678d0d42f126e5c0d0e2f22f373d9727fb37a5
HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs
@@ -514,14 +514,13 @@
            {
                LogHelper.Info($"查询到执行中的工单,工单类型:{workInfo.S_PLineNo}");
                string startArea = "";
                string endArea = "";
                string fullTaskType = "";
                string emptyTaskType = "";
                if (workInfo.S_UsingNow == "Y")
                {
                    LogHelper.Info("即产即用工单");
                    //即产即用在起点为线边
                    var bcpInfo = Settings.areaInfos.Where(a => a.areaName == "瓶坯即产即用A" && a.enable == 1).FirstOrDefault();
                    var bcpInfo = Settings.areaInfos.Where(a => a.areaName == "瓶胚即产即用满框" && a.enable == 1).FirstOrDefault();
                    if (bcpInfo != null)
                    {
                        startArea = bcpInfo.areaCode;
@@ -533,7 +532,8 @@
                {
                    LogHelper.Info("非即产即用工单");
                    //非即产即用起点为库区
                    var bcpInfo = Settings.areaInfos.Where(a => a.areaName == "瓶坯非即产即用" && a.enable == 1).FirstOrDefault();
                    string areaName = plc.deviceName.Split('-')[1].Substring(0, 1) + "号瓶胚翻斗机非即产满框";
                    var bcpInfo = Settings.areaInfos.Where(a => a.areaName == areaName && a.enable == 1).FirstOrDefault();
                    if (bcpInfo != null)
                    {
                        startArea = bcpInfo.areaCode;
@@ -541,8 +541,6 @@
                    fullTaskType = "翻斗机库存满托上线(瓶坯)";
                    emptyTaskType = "翻斗机库存空托下线(瓶坯)";
                }
                endArea = Settings.areaInfos.Where(a => a.areaName == "瓶坯空托" && a.enable == 1).FirstOrDefault().areaCode;
                if (data.Length == 6)
                {
@@ -576,16 +574,12 @@
                                    //初始状态,无托盘,直接上满托(非即产即用需要校验 套袋完成,即产即用直接使用)
                                    if (workInfo.S_UsingNow == "Y")
                                    {
                                        LogHelper.Info($"瓶坯即产即用A库区查找");
                                        LogHelper.Info($"瓶胚即产即用满框 查找");
                                        startLoca = getFDSXArea(db, workInfo, startArea);
                                        if (startLoca == null)
                                        {
                                            LogHelper.Info($"瓶坯即产即用A库区未找到满托,去瓶坯即产即用B库区查找");
                                            startLoca = TaskProcess.BCPInOrOut(db, false, "瓶坯即产即用B", workInfo.S_ItemCode);
                                        }
                                    }
                                    else
                                    {
                                        LogHelper.Info($"瓶胚非即产库区 查找");
                                        startLoca = getFDSXArea(db, workInfo, startArea);
                                    }
@@ -643,12 +637,11 @@
            {
                LogHelper.Info($"查询到执行中的工单,工单类型:{workInfo.S_PLineNo}");
                string startArea = "";
                string endArea = "";
                string fullTaskType = "";
                string emptyTaskType = "";
                LogHelper.Info("非即产即用工单");
                //非即产即用起点为库区
                var bcpInfo = Settings.areaInfos.Where(a => a.areaName == "瓶盖非即产即用" && a.enable == 1).FirstOrDefault();
                var bcpInfo = Settings.areaInfos.Where(a => a.areaName == "瓶盖非即产满框" && a.enable == 1).FirstOrDefault();
                if (bcpInfo != null)
                {
                    startArea = bcpInfo.areaCode;
@@ -657,7 +650,6 @@
                fullTaskType = "翻斗机库存满托上线(瓶盖)";
                emptyTaskType = "翻斗机库存空托下线(瓶盖)";
                endArea = Settings.areaInfos.Where(a => a.areaName == "瓶盖空托" && a.enable == 1).FirstOrDefault().areaCode;
                if (data.Length == 6)
                {
                    if (data.Substring(0, 2) == "11")
@@ -695,9 +687,9 @@
                                }
                                else
                                {
                                    LogHelper.Info($"瓶盖翻斗机上有空托盘,生成空托下线任务,瓶盖翻斗机点位:{plc.TN_Location[0]}");
                                    LogHelper.Info($"瓶盖翻斗机上有空托盘,生成空托下线任务,瓶盖翻斗机点位:{locCode}");
                                    //创建作业
                                    WMSHelper.CreateOpTask(plc.TN_Location[0],"", "入库", emptyTaskType, plcLoca.S_CNTR_CODE);
                                    WMSHelper.CreateOpTask(locCode, "", "入库", emptyTaskType, plcLoca.S_CNTR_CODE);
                                }
                            }
                        }
@@ -841,7 +833,7 @@
                                taskType = $"注塑库存空托上线({machine})";
                            }
                            
                            Location startLoca = TaskProcess.getMStartLoc(db);
                            Location startLoca = TaskProcess.getMStartLoc(db,workInfo.S_UsingNow);
                            if (startLoca != null)
                            {
                                //创建作业
@@ -930,7 +922,8 @@
                    LogHelper.Info($"查询翻斗机允许取空信号 允许取空信号={LineState[mst.S_START_LOC.Trim()].status} 时间间隔={DateTime.Now.Subtract(LineState[mst.S_START_LOC.Trim()].modify).TotalSeconds}", "安全交互");
                    if ((LineState[mst.S_START_LOC.Trim()].status == "112100" || LineState[mst.S_START_LOC.Trim()].status == "112200") && DateTime.Now.Subtract(LineState[mst.S_START_LOC.Trim()].modify).TotalSeconds < 10)
                    {
                        NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1101, 18);
                        //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1101, 18);
                        NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 1101, "18");
                        TaskProcess.sendSing(mst, 1101);
                    }
                }
@@ -941,7 +934,8 @@
                    {
                        if ((LineState[mst.S_START_LOC.Trim()].status == "1122" || LineState[mst.S_START_LOC.Trim()].status == "1221") && DateTime.Now.Subtract(LineState[mst.S_START_LOC.Trim()].modify).TotalSeconds < 10)
                        {
                            NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1101, 18);
                            //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1101, 18);
                            NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 1101, "18");
                            TaskProcess.sendSing(mst, 1101);
                        }
                    }
@@ -949,7 +943,8 @@
                    {
                        if (LineState[mst.S_START_LOC.Trim()].status == "1220" && DateTime.Now.Subtract(LineState[mst.S_START_LOC.Trim()].modify).TotalSeconds < 10)
                        {
                            NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1101, 18);
                            //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1101, 18);
                            NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 1101, "18");
                            TaskProcess.sendSing(mst, 1101);
                        }
                    }
@@ -972,7 +967,8 @@
                        LogHelper.Info($"查询翻斗机允许上满信号 允许上满信号={LineState[mst.S_END_LOC.Trim()].status} 时间间隔={DateTime.Now.Subtract(LineState[mst.S_END_LOC.Trim()].modify).TotalSeconds}", "安全交互");
                        if ((LineState[mst.S_END_LOC.Trim()].status == "112100" || LineState[mst.S_END_LOC.Trim()].status == "112200") && DateTime.Now.Subtract(LineState[mst.S_END_LOC.Trim()].modify).TotalSeconds < 10)
                        {
                            NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1103, 18);
                            //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1103, 18);
                            NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 1103, "18");
                            TaskProcess.sendSing(mst, 1103);
                        }
                    }
@@ -983,7 +979,8 @@
                        {
                            if ((LineState[mst.S_END_LOC.Trim()].status == "1122" || LineState[mst.S_END_LOC.Trim()].status == "1221") && DateTime.Now.Subtract(LineState[mst.S_END_LOC.Trim()].modify).TotalSeconds < 10)
                            {
                                NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1103, 18);
                                //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1103, 18);
                                NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 1103, "18");
                                TaskProcess.sendSing(mst, 1103);
                            }
                        }
@@ -991,7 +988,8 @@
                        {
                            if (LineState[mst.S_END_LOC.Trim()].status == "1021" && DateTime.Now.Subtract(LineState[mst.S_END_LOC.Trim()].modify).TotalSeconds < 10)
                            {
                                NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1103, 18);
                                //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1103, 18);
                                NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 1103, "18");
                                TaskProcess.sendSing(mst, 1103);
                            }
                        }