| | |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 手动写入PLC启停信息 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | [ApiDescriptionSettings(Name = "WriteStartStop")] |
| | | [DisplayName("写入PLC启停信息")] |
| | | public async Task WriteStartStop(WcsDeviceStartStop input) |
| | | { |
| | | WcsPlc modPlc; |
| | | string DbNum = "";// DB块 |
| | | |
| | | |
| | | var plcList = await _wcsPlcRep.Context.Queryable<WcsPlc>().Where(s => s.Type == PLCTypeEnum.ConveyorLine && s.IsDelete == false).ToListAsync(); |
| | | if (input.Layer == "1") |
| | | { |
| | | modPlc = plcList.FirstOrDefault(m => m.Text == "1层托盘输送线"); |
| | | if (modPlc == null) |
| | | throw Oops.Bah($"未查询到1楼层PLC信息"); |
| | | DbNum = ""; |
| | | } |
| | | else if (input.Layer == "2") |
| | | { |
| | | modPlc = plcList.FirstOrDefault(m => m.Text == "2层托盘输送线"); |
| | | if (modPlc == null) |
| | | throw Oops.Bah($"未查询到2楼层PLC信息"); |
| | | DbNum = "91"; |
| | | PLCUtil modUtil = new PLCUtil(modPlc); |
| | | switch (input.Type) |
| | | { |
| | | case "TwoPalletStart": |
| | | modUtil.SetPlcDBValue(PLCDataTypeEnum.Bit, DbNum, "46.0", "true"); |
| | | break; |
| | | case "OnePalletStop": |
| | | modUtil.SetPlcDBValue(PLCDataTypeEnum.Bit, DbNum, "46.1", "true"); |
| | | break; |
| | | case "TwoMaStart": |
| | | modUtil.SetPlcDBValue(PLCDataTypeEnum.Bit, DbNum, "58.0", "true"); |
| | | break; |
| | | case "TwoMaStop": |
| | | modUtil.SetPlcDBValue(PLCDataTypeEnum.Bit, DbNum, "58.1", "true"); |
| | | break; |
| | | case "TwoMaTwoStart": |
| | | modUtil.SetPlcDBValue(PLCDataTypeEnum.Bit, DbNum, "58.2", "true"); |
| | | break; |
| | | case "TwoMaTwoStop": |
| | | modUtil.SetPlcDBValue(PLCDataTypeEnum.Bit, DbNum, "58.3", "true"); |
| | | break; |
| | | case "TwoBoxStart": |
| | | modUtil.SetPlcDBValue(PLCDataTypeEnum.Bit, DbNum, "46.2", "true"); |
| | | break; |
| | | case "TwoBoxStop": |
| | | modUtil.SetPlcDBValue(PLCDataTypeEnum.Bit, DbNum, "46.3", "true"); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | modUtil.Close(); |
| | | } |
| | | else if (input.Layer == "3") |
| | | { |
| | | modPlc = plcList.FirstOrDefault(m => m.Text == "3层托盘输送线"); |
| | | if (modPlc == null) |
| | | throw Oops.Bah($"未查询到3楼层PLC信息"); |
| | | DbNum = ""; |
| | | } |
| | | else |
| | | { |
| | | throw Oops.Bah("操作类型信息错误"); |
| | | } |
| | | |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | /// <summary> |