Administrator
3 天以前 8bc65cd3363d7148c356fe2eecca3590a9a3b4e0
修改问题
2个文件已修改
21 ■■■■ 已修改文件
Admin.NET/WCS.Application/PLC/PLCService.cs 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Admin.NET/WCS.Application/PLC/PLCTaskAction.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -8,6 +8,7 @@
using Elastic.Clients.Elasticsearch.Snapshot;
using Furion.Logging;
using IoTClient;
using MessagePack;
using NewLife.Reflection;
using Newtonsoft.Json;
using Org.BouncyCastle.Ocsp;
@@ -193,18 +194,27 @@
                            if (carTask != null && carTask.Status != TaskStatusEnum.Complete)
                            {
                                //查找该任务的上一条子任务完成时间和当前时间间隔,如果间隔时间太短说明有问题,等3秒后再执行
                                var carTaskAfter = _db.Queryable<WcsCarTasks>().First(m => m.IsDelete == false && m.Status == TaskStatusEnum.Complete && m.CarTaskNo != valueTaskStr
                                var carTaskAfter = _db.Queryable<WcsCarTasks>().First(m => m.IsDelete == false && m.Status == TaskStatusEnum.Complete && m.CarTaskNo == valueTaskStr - 1
                                && m.CarNo == modDevice.PlcIdIP && m.TaskNo == carTask.TaskNo);
                                if (carTaskAfter != null && carTaskAfter.UpdateTime != null)
                                if (carTaskAfter != null)
                                {
                                    TimeSpan difference = DateTime.Now - Convert.ToDateTime(carTaskAfter.UpdateTime);
                                    double seconds = difference.TotalSeconds;
                                    if (seconds < 3)
                                    if (carTaskAfter.Status != TaskStatusEnum.Complete || carTaskAfter.UpdateTime == null)
                                    {
                                        Log.Error($"四向车第二条子任务反馈完成时间异常:{carTaskNext.TaskNo}");
                                        Thread.Sleep(3000);
                                        break;
                                    }
                                    else
                                    {
                                        TimeSpan difference = DateTime.Now - Convert.ToDateTime(carTaskAfter.UpdateTime);
                                        double seconds = difference.TotalSeconds;
                                        if (seconds < 3)
                                        {
                                            Log.Error($"四向车第二条子任务反馈完成时间异常:{carTaskNext.TaskNo}");
                                            Thread.Sleep(3000);
                                            break;
                                        }
                                    }
                                }
                                carTask.Status = TaskStatusEnum.Complete;
Admin.NET/WCS.Application/PLC/PLCTaskAction.cs
@@ -431,6 +431,7 @@
                            var (plcResult, palletVal) = modConn.GetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.PlcPos);
                            if (!plcResult.IsSucceed || Convert.ToInt32(palletVal) != 720)
                            {
                                //Log.Error($"放货工位没有读取成功或不是空闲:{waitTask.TaskNo}");
                                continue;//放货工位没有读取成功或不是空闲
                            }