From 10a65bdb100ea964d5eff3b67198c89c6c3ba9e7 Mon Sep 17 00:00:00 2001 From: bklLiudl <673013083@qq.com> Date: 星期三, 11 九月 2024 16:15:05 +0800 Subject: [PATCH] Merge branch 'master' into liudl --- Admin.NET/WCS.Application/PLC/PLCTaskAction.cs | 35 +++++++++++++++++++++++++---------- 1 files changed, 25 insertions(+), 10 deletions(-) diff --git a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs index 69e9e93..d2ab908 100644 --- a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs +++ b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs @@ -19,10 +19,11 @@ private static readonly ISqlSugarClient _db = SqlSugarSetup.ITenant.GetConnectionScope(SqlSugarConst.MainConfigId); private static readonly SysCacheService sysCacheService = App.GetRequiredService<SysCacheService>(); private static readonly IHubContext<PlcHub, IPlcHub> _plcHubContext = App.GetService<IHubContext<PlcHub, IPlcHub>>(); + private static readonly SysConfigService _sysConfigService = App.GetService<SysConfigService>(); private static List<WcsPlc> listPlc = new List<WcsPlc>(); private static List<WcsDevice> listPlcDevice = new List<WcsDevice>(); - private static List<WcsPosition> listPlcStation = new List<WcsPosition>(); + private static List<WcsPosition> listPlcPosition = new List<WcsPosition>(); private static List<WcsAlarmInfo> listAlarmInfo = new List<WcsAlarmInfo>(); private static List<PLCUtil> listPlcUtil = new List<PLCUtil>(); @@ -32,11 +33,23 @@ { get { return listPlcUtil; } } + // 浜や簰鐐归泦鍚� + public static List<WcsDevice> plcDevices + { + get { return listPlcDevice; } + } + public static List<WcsPosition> plcPositions + { + get { return listPlcPosition; } + } public static event EventHandler DeviceValueChangeEvent; static PLCTaskAction() { //璁㈤槄浜嬩欢 DeviceValueChangeEvent += PLCService.OnChangeEvent; + boRunningState = _sysConfigService.GetConfigValue<bool>("sys_RunningState").Result; + boOffline = _sysConfigService.GetConfigValue<bool>("sys_Offline").Result; + boRefresh = _sysConfigService.GetConfigValue<bool>("sys_Refresh").Result; } /// <summary> /// 鍒濆鍖朠LC杩炴帴 @@ -46,7 +59,7 @@ cts.Cancel(); listPlc = _db.Queryable<WcsPlc>().Where(s => s.Type == PLCTypeEnum.StackingMachine || s.Type == PLCTypeEnum.ConveyorLine || s.Type == PLCTypeEnum.BoxConveyorLine).ToList(); listPlcDevice = _db.Queryable<WcsDevice>().ToList(); - listPlcStation = _db.Queryable<WcsPosition>().ToList(); + listPlcPosition = _db.Queryable<WcsPosition>().ToList(); listAlarmInfo = _db.Queryable<WcsAlarmInfo>().ToList(); //绛夊緟鍑犵閽燂紝鎶婂凡鏈夌嚎绋嬪彇娑堟帀鍐嶈繛鎺� //Thread.Sleep(5000); @@ -60,18 +73,20 @@ var plc = new PLCUtil(modPlc); listPlcUtil.Add(plc); } - cts = new CancellationTokenSource(); - boRunningState = true; _plcHubContext.Clients.All.UpdateService(new PLCServiceModel() { BoRunningState = boRunningState, BoOffline = boOffline, BoRefresh = boRefresh }); - StartRead(); - ConnectionStatus(); - StartWatchAlarm(); - StartWatchPosition(); + if (boRunningState) + { + cts = new CancellationTokenSource(); + StartRead(); + ConnectionStatus(); + StartWatchAlarm(); + StartWatchPosition(); + } } /// <summary> /// 寮�鍚鍙杙lc绾跨▼ @@ -136,10 +151,10 @@ dto.Value = value; dto.Type = _modplc.Type; dto.PLCUtil = modPlcUtil; - dto.listStation = listPlcStation.Where(s => s.DeviceId == modDevice.Id).ToList(); + dto.listStation = listPlcPosition.Where(s => s.DeviceId == modDevice.Id).ToList(); dto.listDevice = listDevice.Where(s => s.StationNum == modDevice.StationNum && s.Level == DeviceLevelEnum.Station).ToList(); //杩欓噷瑙﹀彂鍊煎彉鏇翠簨浠� - //DeviceValueChangeEvent?.Invoke(dto, EventArgs.Empty); + DeviceValueChangeEvent?.Invoke(dto, EventArgs.Empty); } else if (!modPlcUtil.Connected) { -- Gitblit v1.8.0