| | |
| | | var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2"); |
| | | if (retVal.IsSucceed) |
| | | { |
| | | if (modDevice.DbNumber == "DB102")//1L拆跺分拣后需要回传箱码 |
| | | { |
| | | var http = new HttpService(); |
| | | IsBaleModel2 ret1 = http.RequestBoxno(boxNoVal); |
| | | if (ret1.Success == -1) |
| | | { // liudl 此段程序不会执行 确认后直接删除 |
| | | if (modDevice.DbNumber == "DB102")//1L拆跺分拣后需要回传箱码 |
| | | { |
| | | Log.Error("箱码分拣回传失败,需要手动拣货。失败箱码:"+boxNoVal); |
| | | break; |
| | | var http = new HttpService(); |
| | | IsBaleModel2 ret1 = http.RequestBoxno(boxNoVal); |
| | | if (ret1.Success == -1) |
| | | { |
| | | Log.Error("箱码分拣回传失败,需要手动拣货。失败箱码:"+boxNoVal); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | break; |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 拆垛机器人业务处理 |
| | | /// 出库件箱输送和拆垛机器人业务处理 |
| | | /// </summary> |
| | | /// <param name="modDevice"></param> |
| | | private static void StackingRobot(WcsDeviceDto modDevice) |
| | |
| | | // 是否写入成功 |
| | | if (listResult.All(s => s.IsSucceed)) |
| | | { |
| | | var ret1 = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "20"); |
| | | var ret1 = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "30"); |
| | | |
| | | } |
| | | else |
| | | { |
| | | Log.Error(string.Format($"码垛信息未写入!托盘号:"+palletVal+",码垛位:"+modDevice.StationNum)); |
| | | Log.Error(string.Format($"码垛信息未写入!托盘号:" + palletVal + ",码垛位:" + modDevice.StationNum)); |
| | | break; |
| | | } |
| | | } |
| | |
| | | break; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | switch (modDevice.Value.ToString()) |
| | | { |
| | | case "1": |
| | | // 1楼件箱PLC请求WCS读码 |
| | | { |
| | | // 读取plc箱码 |
| | | var modBoxNo = modDevice.listStation.FirstOrDefault(m => m.Text == "主扫条码"); |
| | | var (res, boxNo) = plcConn.GetPlcDBValue(modBoxNo.PosType, modDevice.DbNumber, modBoxNo.PlcPos); |
| | | if (string.IsNullOrWhiteSpace(boxNo.ToString())) |
| | | { |
| | | |
| | | // 箱信息为null写入剔除通道号:0 |
| | | var ret = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "0"); |
| | | if (ret.IsSucceed) |
| | | { |
| | | // 写入流程控制字 2 |
| | | var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2"); |
| | | if (retVal.IsSucceed) |
| | | { |
| | | Log.Error("箱码为null或已绑定托盘,进行剔除。"); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | // 箱码 |
| | | string boxNoVal = boxNo.ToString(); |
| | | // 通道号 |
| | | var modLineNo = modDevice.listStation.FirstOrDefault(m => m.Text == "通道号"); |
| | | |
| | | // 调用wms接口验证箱码是否可拣货并返回装车口 |
| | | var http = new HttpService(); |
| | | RequestloadingAddre requesModel = http.ResultBoxInfoExportWcs(boxNoVal); |
| | | if (requesModel.Success != "0") |
| | | { |
| | | // 箱信息为null写入剔除通道号:0 |
| | | var ret = plcConn.SetPlcDBValue(modLineNo.PosType, modDevice.DbNumber, modLineNo.PlcPos, "0"); |
| | | if (ret.IsSucceed) |
| | | { |
| | | // 写入流程控制字 2 |
| | | var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2"); |
| | | if (retVal.IsSucceed) |
| | | { |
| | | Log.Error("出库分拣根据箱码获取装车口失败,进行剔除。" + requesModel.Message); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | // 写入出库分道号 |
| | | var ret = plcConn.SetPlcDBValue(modLineNo.PosType, modDevice.DbNumber, modLineNo.PlcPos, requesModel.loadingAddre); |
| | | if (ret.IsSucceed) |
| | | { |
| | | // 写入流程控制字 2 |
| | | var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2"); |
| | | if (retVal.IsSucceed) |
| | | { |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | };break; |
| | | case "10": |
| | | // 1楼件箱PLC读码失败,WCS不做处理直接剔除手持拣货。 |
| | | { |
| | | |
| | | };break; |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |