11
cjs
1 天以前 06747ef981873358950982e7a53c6d221ef93ac3
HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs
@@ -759,6 +759,42 @@
        {
            LogHelper.Info($"{plc.deviceName}-{plc.address}-{data}", "瓶坯机");
            var db = new SqlHelper<object>().GetInstance();
            if (data.Length == 8)
            {
                string machinLoc = "";
                if(data.Substring(4,2) == "00")
                {
                    machinLoc = plc.TN_Location[0];
                    LogHelper.Info($"瓶坯机,查询任务终点:{machinLoc}");
                    if (LineState.Keys.Contains(machinLoc))
                    {
                        LogHelper.Info("瓶坯机包含该任务终点");
                        LineState[machinLoc].status = data;
                        LineState[machinLoc].modify = DateTime.Now;
                    }
                    else
                    {
                        LogHelper.Info("瓶坯机未包含该任务终点");
                        LineState.Add(machinLoc, new statemodel { status = data, modify = DateTime.Now });
                    }
                }
                if (data.Substring(6, 2) == "02")
                {
                    machinLoc = plc.TN_Location[1];
                    LogHelper.Info($"瓶坯机,查询任务终点:{machinLoc}");
                    if (LineState.Keys.Contains(machinLoc))
                    {
                        LogHelper.Info("瓶坯机包含该任务终点");
                        LineState[machinLoc].status = data;
                        LineState[machinLoc].modify = DateTime.Now;
                    }
                    else
                    {
                        LogHelper.Info("瓶坯机未包含该任务终点");
                        LineState.Add(machinLoc, new statemodel { status = data, modify = DateTime.Now });
                    }
                }
            }
            var workInfo = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_PLineNo == plc.deviceName).First();
            if (workInfo != null && workInfo.S_WorkState == "执行中")
@@ -802,18 +838,6 @@
        {
            LogHelper.Info($"{type}注塑机任务处理开始");
            LogHelper.Info($"瓶坯机,查询任务终点:{deviceBit}");
            if (LineState.Keys.Contains(deviceBit))
            {
                LogHelper.Info("瓶坯机包含该任务终点");
                LineState[deviceBit].status = data;
                LineState[deviceBit].modify = DateTime.Now;
            }
            else
            {
                LogHelper.Info("瓶坯机未包含该任务终点");
                LineState.Add(deviceBit, new statemodel { status = data, modify = DateTime.Now });
            }
            //再次判断信号
            if (LocationHelper.CheckLocFree(deviceBit))
            {
@@ -862,17 +886,18 @@
                        else
                        {
                            string cntrCode = Guid.NewGuid().ToString("N");
                            string batch = workInfo.S_UsingNow == "Y" ? "即产" : "非即产";
                            var cntrInfo = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == deviceBit).First();
                            if(cntrInfo == null)
                            {
                                LogHelper.Info($"{type}注塑机上未绑定托盘,自动绑定托盘");
                                TaskProcess.BindLocCntr(deviceBit, cntrCode, workInfo.S_ItemCode, "","","",workInfo.S_ItemName);
                                TaskProcess.BindLocCntr(deviceBit, cntrCode, workInfo.S_ItemCode, batch, "","",workInfo.S_ItemName);
                            }
                            else
                            {
                                cntrCode = cntrInfo.S_CNTR_CODE;
                                TaskProcess.BindCntrItem(cntrCode, workInfo.S_ItemCode, "", "",workInfo.S_ItemName);
                                TaskProcess.BindCntrItem(cntrCode, workInfo.S_ItemCode, batch, "",workInfo.S_ItemName);
                            }
                            //创建作业
                            WMSHelper.CreateOpTask(deviceBit, "", "入库", taskType, cntrCode,"","",workInfo.S_WorkNo);
@@ -989,7 +1014,8 @@
                        LogHelper.Info($"查询输送线允许补空信号 允许补空信号={LineState[mst.S_END_LOC.Trim()].status} 时间间隔={DateTime.Now.Subtract(LineState[mst.S_END_LOC.Trim()].modify).TotalSeconds}", "安全交互");
                        if (mst.S_TYPE.Contains("空托上线"))
                        {
                            if ((LineState[mst.S_END_LOC.Trim()].status.Substring(4,2) == "00" || LineState[mst.S_END_LOC.Trim()].status.Substring(4,2) == "02") && DateTime.Now.Subtract(LineState[mst.S_END_LOC.Trim()].modify).TotalSeconds < 10)
                            //if ((LineState[mst.S_END_LOC.Trim()].status.Substring(4,2) == "00" || LineState[mst.S_END_LOC.Trim()].status.Substring(6,2) == "02") && DateTime.Now.Subtract(LineState[mst.S_END_LOC.Trim()].modify).TotalSeconds < 10)
                            if (DateTime.Now.Subtract(LineState[mst.S_END_LOC.Trim()].modify).TotalSeconds < 10)
                            {
                                //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1103, 18);
                                NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 18, "1103");