| | |
| | | public class PlcHub : Hub<IPlcHub> |
| | | { |
| | | private readonly IHubContext<PlcHub, IPlcHub> _plcHubContext; |
| | | |
| | | public PlcHub(IHubContext<PlcHub, IPlcHub> plcHubContext) |
| | | private readonly SysConfigService _sysConfigService; |
| | | public PlcHub(IHubContext<PlcHub, IPlcHub> plcHubContext, SysConfigService sysConfigService) |
| | | { |
| | | _plcHubContext = plcHubContext; |
| | | _sysConfigService = sysConfigService; |
| | | } |
| | | /// <summary> |
| | | /// 下发PLC连接状态 |
| | |
| | | PLCTaskAction.Init(); |
| | | else |
| | | PLCTaskAction.Stop(); |
| | | await _sysConfigService.UpdateConfigValue("sys_RunningState", context.BoRunningState.Value); |
| | | } |
| | | //脱机模式 |
| | | if (context.BoOffline.HasValue) |
| | | { |
| | | PLCTaskAction.boOffline = context.BoOffline.Value; |
| | | await _sysConfigService.UpdateConfigValue("sys_Offline", context.BoOffline.Value); |
| | | } |
| | | //自刷新 |
| | | if (context.BoRefresh.HasValue) |
| | | { |
| | | PLCTaskAction.boRefresh = context.BoRefresh.Value; |
| | | await _plcHubContext.Clients.All.UpdateService(context); |
| | | await _sysConfigService.UpdateConfigValue("sys_Refresh", context.BoRefresh.Value); |
| | | } |
| | | //演示模式 |
| | | if (context.BoDemo.HasValue) |
| | | { |
| | | PLCTaskAction.boDemo = context.BoDemo.Value; |
| | | |
| | | //PLC连接 |
| | | var plcStackeConn = PLCTaskAction.listPlcConn.First(m => m.PlcIP == "10.18.51.120"); |
| | | if (plcStackeConn.Connected) |
| | | { |
| | | //写入流程字 |
| | | var ret = plcStackeConn.SetPlcDBValue(PLCDataTypeEnum.Bit, "DB119", "0", PLCTaskAction.boDemo == true ? "1" : "0"); |
| | | if (ret.IsSucceed) |
| | | { |
| | | await _sysConfigService.UpdateConfigValue("sys_demo", context.BoDemo.Value); |
| | | } |
| | | else |
| | | { |
| | | PLCTaskAction.boDemo = !PLCTaskAction.boDemo; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | PLCTaskAction.boDemo = !PLCTaskAction.boDemo; |
| | | } |
| | | } |
| | | //滚筒反转 |
| | | if (context.BoDrumReversal.HasValue) |
| | | { |
| | | PLCTaskAction.boDrumReversal = context.BoDrumReversal.Value; |
| | | |
| | | //PLC连接 |
| | | var plcStackeConn = PLCTaskAction.listPlcConn.First(m => m.PlcIP == "10.18.51.120"); |
| | | if (plcStackeConn.Connected) |
| | | { |
| | | //写入流程字 |
| | | var ret = plcStackeConn.SetPlcDBValue(PLCDataTypeEnum.Bit, "DB119", "0.1", PLCTaskAction.boDemo == true ? "1" : "0"); |
| | | if (ret.IsSucceed) |
| | | { |
| | | await _sysConfigService.UpdateConfigValue("sys_DrumReversal", context.BoDrumReversal.Value); |
| | | } |
| | | else |
| | | { |
| | | PLCTaskAction.boDrumReversal = !PLCTaskAction.boDrumReversal; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | PLCTaskAction.boDrumReversal = !PLCTaskAction.boDrumReversal; |
| | | } |
| | | } |
| | | await _plcHubContext.Clients.All.UpdateService(new PLCServiceModel() { BoRunningState = PLCTaskAction.boRunningState, BoRefresh = PLCTaskAction.boRefresh, BoOffline = PLCTaskAction.boOffline, BoDemo = PLCTaskAction.boDemo, BoDrumReversal = PLCTaskAction.boDrumReversal }); |
| | | } |
| | | } |
| | | public class PLCServiceModel |
| | |
| | | |
| | | |
| | | public bool? BoRefresh { get; set; } |
| | | |
| | | public bool? BoDemo { get; set; } |
| | | |
| | | public bool? BoDrumReversal { get; set; } |
| | | } |