| | |
| | | if (modTask.TaskType == TaskTypeEnum.Move) |
| | | { |
| | | // 移库目标地址 |
| | | taskInfo = PLCCommon.GetEndPai(modTask.EndLocate.Substring(1, 2), modTask.EndLocate.Substring(2, 2), |
| | | taskInfo = PLCCommon.GetEndPai(modTask.EndRoadway.Substring(1, 2), modTask.EndLocate.Substring(2, 2), |
| | | modTask.EndLocate.Substring(0, 2), modTask.EndLocate.Substring(4, 2), |
| | | modTask.EndLocate.Substring(6, 2)); |
| | | |
| | |
| | | // 写入跺机任务下发完成 |
| | | var ret = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "830"); |
| | | |
| | | // 将移库任务待执行改为正在执行 |
| | | // 将任务待执行改为正在执行 |
| | | _db.Updateable<WcsTask>() |
| | | .SetColumns(s => s.Status == TaskStatusEnum.Doing) |
| | | .Where(s => s.Id == modTask.Id) |
| | |
| | | var retc = plcConveyorConn.SetPlcDBValue(ConveyorMod.PosType, ConveyorMod.DbNumber, ConveyorMod.WcsPos, "640"); |
| | | if (retc.IsSucceed) |
| | | { |
| | | // 再次读取wcs控制字,确保写入成功640 |
| | | var (ress2, va1s2) = plcConveyorConn.GetPlcDBValue(ConveyorMod.PosType, ConveyorMod.DbNumber, ConveyorMod.WcsPos); |
| | | if (va1s2.ToString() == "630")//还是等于630说明640没有写入成功,再次写入640 |
| | | { |
| | | retc = plcConveyorConn.SetPlcDBValue(ConveyorMod.PosType, ConveyorMod.DbNumber, ConveyorMod.WcsPos, "640"); |
| | | Log.Information($"840垛机取货完成写入640失败后再次写入,DbNumber:{ConveyorMod.DbNumber}"); |
| | | } |
| | | |
| | | modcTaskMonitor.InteractiveMsg = string.Format("工位:{0},写入取货完成:640", startStationVal); |
| | | // 插入交互日志 |
| | | _db.Insertable(modcTaskMonitor).ExecuteCommand(); |
| | |
| | | break; |
| | | case TaskTypeEnum.Move: // 移库任务 |
| | | { |
| | | var modPosTask = modDevice.listStation.FirstOrDefault(s => s.Text == "任务号"); |
| | | var result = plcConn.SetPlcDBValueRepeat(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, modTask.TaskNo); |
| | | if (!result.IsSucceed) |
| | | { |
| | | Log.Error($"{modDevice.Text}写入任务号失败"); |
| | | break; |
| | | } |
| | | result = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "870"); |
| | | //var modPosTask = modDevice.listStation.FirstOrDefault(s => s.Text == "任务号"); |
| | | //var result = plcConn.SetPlcDBValueRepeat(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, modTask.TaskNo); |
| | | //if (!result.IsSucceed) |
| | | //{ |
| | | // Log.Error($"{modDevice.Text}写入任务号失败"); |
| | | // break; |
| | | //} |
| | | var result = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "870"); |
| | | if (!result.IsSucceed) |
| | | { |
| | | Log.Error($"{modDevice.Text}控制字写入870失败"); |