wxw
4 天以前 b77481bae4d7c5e2d5baddfaadc16bd085e071d1
Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -94,7 +94,7 @@
                    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));
                        
@@ -265,7 +265,7 @@
                        // 写入跺机任务下发完成
                        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)
@@ -384,6 +384,14 @@
                                        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();
@@ -830,14 +838,14 @@
                                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失败");