| | |
| | | { |
| | | 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 == "执行中") |
| | |
| | | { |
| | | 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)) |
| | | { |
| | |
| | | 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); |
| | |
| | | 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"); |