From c56d28d684cee010f291295dbe851bab64c1b6a6 Mon Sep 17 00:00:00 2001 From: hwh <332078369@qq.com> Date: 星期二, 03 九月 2024 09:52:22 +0800 Subject: [PATCH] 设备监控绑定plc数据 --- Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 52 insertions(+), 2 deletions(-) diff --git a/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs b/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs index 6dd80ee..8a5e853 100644 --- a/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs +++ b/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs @@ -1,5 +1,6 @@ 锘� using Admin.NET.Core.Service; +using Elastic.Clients.Elasticsearch; namespace WCS.Application; @@ -203,20 +204,69 @@ { var list = await _wcsDeviceRep.AsQueryable() .LeftJoin<WcsPlc>((a, b) => a.PlcId == b.Id) + .Where((a, b) => a.DeviceType == DeviceTypeEnum.Business) .Select<WcsDeviceOutput>((a, b) => new WcsDeviceOutput() { Type = b.Type }, true) .ToListAsync(); //鑾峰彇璺烘満鐨勭姸鎬� foreach (var modDevice in list) { - if (_sysCacheService.ExistKey("PlcConn" + modDevice.PlcId)) + if (_sysCacheService.ExistKey("PLCCONN" + modDevice.PlcId)) { - var cachePlc = _sysCacheService.Get<WcsPlc>("PlcConn" + modDevice.PlcId); + var cachePlc = _sysCacheService.Get<WcsPlc>("PLCCONN" + modDevice.PlcId); modDevice.Status = cachePlc.IsConn; + if (modDevice.Status) + { + //璇诲彇plc鐨勫�� + var modConn = PLCTaskAction.listPlcConn.FirstOrDefault(s => s != null && s.PlcId == modDevice.PlcId); + if (modConn == null) + break; + try + { + var listPosition = await _wcsDeviceRep.Context.Queryable<WcsPosition>().Where(s => s.DeviceId == modDevice.Id).ToListAsync(); + (var result, var plc) = modConn.GetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.PlcPos); + modDevice.Plc = Convert.ToString(plc); + (result, var wcs) = modConn.GetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos); + modDevice.Wcs = Convert.ToString(wcs); + //浠诲姟鍙� + var modPositionTask = listPosition.FirstOrDefault(s => s.Text == "浠诲姟鍙�"); + (result, var taskNo) = modConn.GetPlcDBValue(modPositionTask.PosType, modDevice.DbNumber, modPositionTask.PlcPos); + modDevice.TaskNo = Convert.ToString(taskNo); + //浠诲姟绫诲瀷 + var modPositionTaskType = listPosition.FirstOrDefault(s => s.Text == "浠诲姟绫诲瀷"); + (result, var taskType) = modConn.GetPlcDBValue(modPositionTaskType.PosType, modDevice.DbNumber, modPositionTaskType.PlcPos); + modDevice.TaskType = (TaskTypeEnum)Convert.ToInt32(taskType); + //璧峰宸ヤ綅 + var modPositionStartLocatNo = listPosition.FirstOrDefault(s => s.Text == "璧峰宸ヤ綅"); + (result, var startLocatNo) = modConn.GetPlcDBValue(modPositionStartLocatNo.PosType, modDevice.DbNumber, modPositionStartLocatNo.PlcPos); + modDevice.StartLocatNo = Convert.ToString(startLocatNo); + //鐩殑宸ヤ綅 + var modPositionEndLocatNo = listPosition.FirstOrDefault(s => s.Text == "鐩殑宸ヤ綅"); + (result, var endLocatNo) = modConn.GetPlcDBValue(modPositionEndLocatNo.PosType, modDevice.DbNumber, modPositionEndLocatNo.PlcPos); + modDevice.EndLocatNo = Convert.ToString(endLocatNo); + //鎵樼洏鐮� + var modPositionPalletNo = listPosition.FirstOrDefault(s => s.Text == "鎵樼洏鐮�"); + (result, var palletNo) = modConn.GetPlcDBValue(modPositionPalletNo.PosType, modDevice.DbNumber, modPositionPalletNo.PlcPos); + modDevice.PalletNo = Convert.ToString(palletNo); + } + catch (Exception) + { + + } + } } else { modDevice.Status = false; } + + //modDevice.TaskNo = "TK00001"; + //modDevice.TaskType = TaskTypeEnum.In; + //modDevice.PalletNo = "2024209032"; + //modDevice.StartLocatNo = "010101"; + //modDevice.EndLocatNo = "020202"; + //modDevice.Wcs = new Random().Next(100).ToString(); + //modDevice.Plc = new Random().Next(100).ToString(); + //modDevice.Status = true; } return list; -- Gitblit v1.8.0