| | |
| | | if (PLCTaskAction.boDemo) |
| | | { |
| | | //判断分拣码垛有没有绑定任务 |
| | | var checkTask = await _wcsCheckTaskRep.Context.Queryable<WcsCheckTask>().Where(w => w.Status == "1").ToListAsync(); |
| | | var checkTask = await _wcsCheckTaskRep.Context.Queryable<WcsCheckTask>().Where(w => w.Status == "1" && w.RoboatType == PLCTypeEnum.RobotPalletizer).ToListAsync(); |
| | | if (checkTask.Count > 0) |
| | | { |
| | | throw Oops.Oh("分拣码垛已绑定任务,不支持开启演示模式!"); |
| | | PLCTaskAction.boDemo = false; |
| | | await _plcHubContext.Clients.All.UpdateService( |
| | | new PLCServiceModel() |
| | | { |
| | | BoRunningState = PLCTaskAction.boRunningState, |
| | | BoRefresh = PLCTaskAction.boRefresh, |
| | | BoOffline = PLCTaskAction.boOffline, |
| | | BoDemo = PLCTaskAction.boDemo, |
| | | BoDrumReversal = PLCTaskAction.boDrumReversal, |
| | | Error = "分拣码垛已绑定任务,不支持开启演示模式!" |
| | | }); |
| | | return; |
| | | } |
| | | } |
| | | } |
| | | //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); |
| | | if (PLCTaskAction.boDemo) |
| | | { |
| | | // 写入plc抓箱品种 |
| | | var rett = plcStackeConn.SetPlcDBValue(PLCDataTypeEnum.Short, "DB111", "0", "1"); |
| | | if (rett.IsSucceed) |
| | | { |
| | | await _sysConfigService.UpdateConfigValue("sys_demo", context.BoDemo.Value); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | var rett = plcStackeConn.SetPlcDBValue(PLCDataTypeEnum.Short, "DB111", "0", "0"); |
| | | if (rett.IsSucceed) |
| | | { |
| | | await _sysConfigService.UpdateConfigValue("sys_demo", context.BoDemo.Value); |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | PLCTaskAction.boDemo = !PLCTaskAction.boDemo; |
| | | |
| | | await _plcHubContext.Clients.All.UpdateService( |
| | | new PLCServiceModel() |
| | | { |
| | | BoRunningState = PLCTaskAction.boRunningState, |
| | | BoRefresh = PLCTaskAction.boRefresh, |
| | | BoOffline = PLCTaskAction.boOffline, |
| | | BoDemo = PLCTaskAction.boDemo, |
| | | BoDrumReversal = PLCTaskAction.boDrumReversal, |
| | | BoOutLock=PLCTaskAction.boOutLock, |
| | | BoEnterLock=PLCTaskAction.boEnterLock, |
| | | Error = "与PCL交互失败,操作失败!" |
| | | }); |
| | | return; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | PLCTaskAction.boDemo = !PLCTaskAction.boDemo; |
| | | |
| | | await _plcHubContext.Clients.All.UpdateService( |
| | | new PLCServiceModel() |
| | | { |
| | | BoRunningState = PLCTaskAction.boRunningState, |
| | | BoRefresh = PLCTaskAction.boRefresh, |
| | | BoOffline = PLCTaskAction.boOffline, |
| | | BoDemo = PLCTaskAction.boDemo, |
| | | BoDrumReversal = PLCTaskAction.boDrumReversal, |
| | | BoOutLock = PLCTaskAction.boOutLock, |
| | | BoEnterLock = PLCTaskAction.boEnterLock, |
| | | Error = "PCL未连接,操作失败!" |
| | | }); |
| | | return; |
| | | } |
| | | } |
| | | //滚筒反转 |
| | |
| | | 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, |
| | | BoOutLock=PLCTaskAction.boOutLock, |
| | | BoEnterLock=PLCTaskAction.boEnterLock, |
| | | Error = "与PCL交互失败,操作失败!" |
| | | }); |
| | | return; |
| | | } |
| | | } |
| | | else |
| | | 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, |
| | | BoOutLock = PLCTaskAction.boOutLock, |
| | | BoEnterLock = PLCTaskAction.boEnterLock, |
| | | Error = "PCL未连接,操作失败!" |
| | | }); |
| | | return; |
| | | } |
| | | } |
| | | await _plcHubContext.Clients.All.UpdateService(new PLCServiceModel() { BoRunningState = PLCTaskAction.boRunningState, BoRefresh = PLCTaskAction.boRefresh, BoOffline = PLCTaskAction.boOffline, BoDemo = PLCTaskAction.boDemo, BoDrumReversal = PLCTaskAction.boDrumReversal }); |
| | | //出库锁定 |
| | | if (context.BoOutLock.HasValue) |
| | | { |
| | | PLCTaskAction.boOutLock = context.BoOutLock.Value; |
| | | await _sysConfigService.UpdateConfigValue("sys_BoOutLock", context.BoOutLock.Value); |
| | | } |
| | | //入库锁定 |
| | | if (context.BoEnterLock.HasValue) |
| | | { |
| | | PLCTaskAction.boEnterLock = context.BoEnterLock.Value; |
| | | await _sysConfigService.UpdateConfigValue("sys_BoEnterLock", context.BoEnterLock.Value); |
| | | } |
| | | await _plcHubContext.Clients.All.UpdateService(new PLCServiceModel() { BoRunningState = PLCTaskAction.boRunningState, BoRefresh = PLCTaskAction.boRefresh, BoOffline = PLCTaskAction.boOffline, BoDemo = PLCTaskAction.boDemo, BoDrumReversal = PLCTaskAction.boDrumReversal, BoOutLock = PLCTaskAction.boOutLock, BoEnterLock = PLCTaskAction.boEnterLock }); |
| | | } |
| | | } |
| | | public class PLCServiceModel |
| | | { |
| | | public bool? BoRunningState { get; set; } |
| | | |
| | | |
| | | public bool? BoOffline { get; set; } |
| | | |
| | | |
| | | public bool? BoRefresh { get; set; } |
| | | |
| | | public bool? BoDemo { get; set; } |
| | | |
| | | public bool? BoDrumReversal { get; set; } |
| | | |
| | | public bool? BoOutLock { get; set; } |
| | | |
| | | public bool? BoEnterLock { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 错误信息 |
| | | /// </summary> |
| | | public string Error { get; set; } |
| | | } |