| | |
| | | using System.Drawing.Drawing2D; |
| | | using WCS.Application.Entity; |
| | | using WCS.Application.Service.WcsDevice.Dto; |
| | | using static SKIT.FlurlHttpClient.Wechat.Api.Models.CgibinComponentApiGetAuthorizerInfoResponse.Types.Authorizer.Types; |
| | | |
| | | namespace WCS.Application; |
| | | |
| | |
| | | modPlc = plcList.FirstOrDefault(m => m.Text == "1层托盘输送线"); |
| | | if (modPlc == null) |
| | | throw Oops.Bah($"未查询到{input.Layer}楼层PLC信息"); |
| | | DbNum = ""; |
| | | DbNum = "DB91"; |
| | | break; |
| | | case "2": |
| | | modPlc = plcList.FirstOrDefault(m => m.Text == "2层托盘输送线"); |
| | |
| | | modPlc = plcList.FirstOrDefault(m => m.Text == "3层托盘输送线"); |
| | | if (modPlc == null) |
| | | throw Oops.Bah($"未查询到{input.Layer}楼层PLC信息"); |
| | | DbNum = ""; |
| | | DbNum = "DB91"; |
| | | break; |
| | | default: |
| | | throw Oops.Bah("楼层信息错误"); |
| | |
| | | modPlc = plcList.FirstOrDefault(m => m.Text == "1层托盘输送线"); |
| | | if (modPlc == null) |
| | | throw Oops.Bah($"未查询到{input.Layer}楼层PLC信息"); |
| | | DbNum = ""; |
| | | DbNum = "DB1100"; |
| | | break; |
| | | case "2": |
| | | modPlc = plcList.FirstOrDefault(m => m.Text == "2层托盘输送线"); |
| | |
| | | modPlc = plcList.FirstOrDefault(m => m.Text == "3层托盘输送线"); |
| | | if (modPlc == null) |
| | | throw Oops.Bah($"未查询到{input.Layer}楼层PLC信息"); |
| | | DbNum = ""; |
| | | DbNum = "DB1100"; |
| | | break; |
| | | default: |
| | | throw Oops.Bah("楼层信息错误"); |
| | |
| | | modPlc = plcList.FirstOrDefault(m => m.Text == "1层托盘输送线"); |
| | | if (modPlc == null) |
| | | throw Oops.Bah($"未查询到{input.Layer}楼层PLC信息"); |
| | | DbNum = ""; |
| | | DbNum = "DB91"; |
| | | TaskDbNum = "DB1100"; |
| | | break; |
| | | case "2": |
| | | modPlc = plcList.FirstOrDefault(m => m.Text == "2层托盘输送线"); |
| | |
| | | modPlc = plcList.FirstOrDefault(m => m.Text == "3层托盘输送线"); |
| | | if (modPlc == null) |
| | | throw Oops.Bah($"未查询到{input.Layer}楼层PLC信息"); |
| | | DbNum = ""; |
| | | DbNum = "DB91"; |
| | | TaskDbNum = "DB1100"; |
| | | break; |
| | | default: |
| | | throw Oops.Bah("楼层信息错误"); |
| | |
| | | Thread.Sleep(1000); |
| | | modUtil.SetPlcDBValue(PLCDataTypeEnum.Bit, DbNum, "50.2", "false"); |
| | | break; |
| | | case "applyTask": |
| | | modUtil.SetPlcDBValue(PLCDataTypeEnum.Bit, DbNum, "50.1", "true"); |
| | | Thread.Sleep(1000); |
| | | modUtil.SetPlcDBValue(PLCDataTypeEnum.Bit, DbNum, "50.1", "false"); |
| | | break; |
| | | |
| | | default: |
| | | break; |
| | |
| | | modPlc = plcList.FirstOrDefault(m => m.Text == "1层托盘输送线"); |
| | | if (modPlc == null) |
| | | throw Oops.Bah($"未查询到1楼层PLC信息"); |
| | | DbNum = ""; |
| | | DbNum = "DB91"; |
| | | PLCUtil modUtil = new PLCUtil(modPlc); |
| | | switch (input.Type) |
| | | { |
| | | case "OnePalletStart": |
| | | if (input.FuncName == "true") |
| | | { |
| | | modUtil.SetPlcDBValue(PLCDataTypeEnum.Bit, DbNum, "46.0", "true"); |
| | | } |
| | | else if (input.FuncName == "false") |
| | | { |
| | | modUtil.SetPlcDBValue(PLCDataTypeEnum.Bit, DbNum, "46.0", "false"); |
| | | } |
| | | else |
| | | { |
| | | throw Oops.Bah("事件结果错误"); |
| | | } |
| | | break; |
| | | case "OnePalletStop": |
| | | if (input.FuncName == "true") |
| | | { |
| | | modUtil.SetPlcDBValue(PLCDataTypeEnum.Bit, DbNum, "46.1", "true"); |
| | | } |
| | | else if (input.FuncName == "false") |
| | | { |
| | | modUtil.SetPlcDBValue(PLCDataTypeEnum.Bit, DbNum, "46.1", "false"); |
| | | } |
| | | else |
| | | { |
| | | throw Oops.Bah("事件结果错误"); |
| | | } |
| | | break; |
| | | case "OneBoxStart": |
| | | if (input.FuncName == "true") |
| | | { |
| | | modUtil.SetPlcDBValue(PLCDataTypeEnum.Bit, DbNum, "46.2", "true"); |
| | | } |
| | | else if (input.FuncName == "false") |
| | | { |
| | | modUtil.SetPlcDBValue(PLCDataTypeEnum.Bit, DbNum, "46.2", "false"); |
| | | } |
| | | else |
| | | { |
| | | throw Oops.Bah("事件结果错误"); |
| | | } |
| | | break; |
| | | case "OneBoxStop": |
| | | |
| | | if (input.FuncName == "true") |
| | | { |
| | | modUtil.SetPlcDBValue(PLCDataTypeEnum.Bit, DbNum, "46.3", "true"); |
| | | } |
| | | else if (input.FuncName == "false") |
| | | { |
| | | modUtil.SetPlcDBValue(PLCDataTypeEnum.Bit, DbNum, "46.3", "false"); |
| | | } |
| | | else |
| | | { |
| | | throw Oops.Bah("事件结果错误"); |
| | | } |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | modUtil.Close(); |
| | | } |
| | | else if (input.Layer == "2") |
| | | { |
| | |
| | | modPlc = plcList.FirstOrDefault(m => m.Text == "3层托盘输送线"); |
| | | if (modPlc == null) |
| | | throw Oops.Bah($"未查询到3楼层PLC信息"); |
| | | DbNum = ""; |
| | | DbNum = "DB91"; |
| | | PLCUtil modUtil = new PLCUtil(modPlc); |
| | | switch (input.Type) |
| | | { |
| | | case "ThreePalletStart": |
| | | if (input.FuncName == "true") |
| | | { |
| | | modUtil.SetPlcDBValue(PLCDataTypeEnum.Bit, DbNum, "46.0", "true"); |
| | | } |
| | | else if (input.FuncName == "false") |
| | | { |
| | | modUtil.SetPlcDBValue(PLCDataTypeEnum.Bit, DbNum, "46.0", "false"); |
| | | } |
| | | else |
| | | { |
| | | throw Oops.Bah("事件结果错误"); |
| | | } |
| | | break; |
| | | case "ThreePalletStop": |
| | | if (input.FuncName == "true") |
| | | { |
| | | modUtil.SetPlcDBValue(PLCDataTypeEnum.Bit, DbNum, "46.1", "true"); |
| | | } |
| | | else if (input.FuncName == "false") |
| | | { |
| | | modUtil.SetPlcDBValue(PLCDataTypeEnum.Bit, DbNum, "46.1", "false"); |
| | | } |
| | | else |
| | | { |
| | | throw Oops.Bah("事件结果错误"); |
| | | } |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | modUtil.Close(); |
| | | } |
| | | else |
| | | { |
| | |
| | | .WhereIF(input.PlcId > 0, u => u.PlcId == input.PlcId) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(input.StationNum), u => u.StationNum.Contains(input.StationNum.Trim())) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(input.Text), u => u.Text.Contains(input.Text.Trim())) |
| | | .WhereIF(input.DeviceType.HasValue, u => u.DeviceType == input.DeviceType) |
| | | //处理外键和TreeSelector相关字段的连接 |
| | | .LeftJoin<WcsPlc>((u, plcid) => u.PlcId == plcid.Id) |
| | | .Select((u, plcid) => new WcsDeviceOutput |