| src/main/java/com/zy/core/network/real/ZyStationV4RealConnect.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/core/plugin/NormalProcess.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/core/network/real/ZyStationV4RealConnect.java
@@ -134,7 +134,7 @@ return statusList; } OperateResultExOne<byte[]> result = siemensNet.Read("DB100.0", (short) (statusList.size() * 10)); OperateResultExOne<byte[]> result = siemensNet.Read("DB100.10", (short) (statusList.size() * 10)); if (result.IsSuccess) { byte[] taskBufferRaw = readTaskBufferRaw(); for (int i = 0; i < statusList.size(); i++) { @@ -215,31 +215,30 @@ boolean[] status1 = siemensNet.getByteTransform().TransBool(result4.Content, i * 2, 1); boolean[] status2 = siemensNet.getByteTransform().TransBool(result4.Content, i * 2 + 1, 1); if(status1[0]){ if(status1[0] || status2[0]){ sb.append("左超宽报警;"); } if(status1[1]) { if(status1[1] || status2[1]) { sb.append("右超宽报警;"); } if(status1[2]) { if(status1[2] || status2[2]) { sb.append("前超长报警;"); } if(status1[3]) { if(status1[3] || status2[3]) { sb.append("后超长报警;"); } if(status1[4]) { if(status1[4] || status2[4]) { sb.append("超高报警;"); } if(status1[5]) { if(status1[5] || status2[5]) { sb.append("有货报警,空托入库时检测托盘上有无货物;"); } if(status1[6]) { if(status1[6] || status2[6]) { sb.append("重量异常报警;"); } if(status1[7]) { if(status1[7] || status2[7]) { sb.append("扫码异常;"); } applyAlarmMessage(barcodeEntity, sb.toString()); } } @@ -304,7 +303,7 @@ return commandResponse; } int taskBaseOffset = stationIdx * TASK_AREA_LENGTH + (useTaskWriteIdx * TASK_AREA_SLOT_SIZE); int taskBaseOffset = (stationIdx + 1) * TASK_AREA_LENGTH + (useTaskWriteIdx * TASK_AREA_SLOT_SIZE); OperateResult writeTaskNo = siemensNet.Write("DB13." + taskBaseOffset, command.getTaskNo()); if (!writeTaskNo.IsSuccess) { @@ -347,7 +346,7 @@ return commandResponse; } int slotBaseOffset = stationIdx * TASK_AREA_LENGTH + slotIdx * TASK_AREA_SLOT_SIZE; int slotBaseOffset = (stationIdx + 1) * TASK_AREA_LENGTH + slotIdx * TASK_AREA_SLOT_SIZE; CommandResponse clearTaskNo = sendOriginCommand("DB13." + slotBaseOffset, new short[]{0, 0}); if (clearTaskNo == null || !Boolean.TRUE.equals(clearTaskNo.getResult())) { commandResponse.setMessage(clearTaskNo == null ? "清空任务号失败" : clearTaskNo.getMessage()); src/main/java/com/zy/core/plugin/NormalProcess.java
@@ -9,6 +9,7 @@ import com.zy.common.service.CommonService; import com.zy.common.utils.RedisUtil; import com.zy.core.News; import com.zy.core.cache.MessageQueue; import com.zy.core.cache.SlaveConnection; import com.zy.core.dispatch.StationCommandDispatcher; import com.zy.core.enums.RedisKeyType; @@ -16,6 +17,7 @@ import com.zy.core.enums.StationCommandType; import com.zy.core.enums.WrkIoType; import com.zy.core.model.StationObjModel; import com.zy.core.model.Task; import com.zy.core.model.command.StationCommand; import com.zy.core.model.protocol.StationProtocol; import com.zy.core.plugin.api.MainProcessPluginApi; @@ -30,6 +32,7 @@ import java.util.List; import java.util.Map; import java.util.Objects; @Slf4j @Component @@ -102,6 +105,23 @@ } StationProtocol stationProtocol = stationMap.get(stationId); //扫码异常,退回入库站点 if (stationProtocol.getError() > 0) { Object object = redisUtil.get(RedisKeyType.GENERATE_STATION_BACK_LIMIT.key + stationProtocol.getTaskNo()); if (!Objects.isNull(object)) { continue; } StationObjModel backStation = stationObjModel.getBackStation(); StationCommand command = stationThread.getCommand(StationCommandType.MOVE, commonService.getWorkNo(WrkIoType.STATION_BACK.id), stationId, backStation.getStationId(), 0); if (Objects.isNull(command)) { News.taskInfo(stationProtocol.getTaskNo(), "{}工作,获取输送线命令失败", stationProtocol.getTaskNo()); continue; } MessageQueue.offer(SlaveType.Devp, basDevp.getDevpNo(), new Task(2, command)); News.taskInfo(stationProtocol.getTaskNo(), "{}扫码异常,已退回至{}", backStation.getStationId()); redisUtil.set(RedisKeyType.GENERATE_STATION_BACK_LIMIT.key + stationProtocol.getTaskNo(), 10); } if (!canSubmitGenerateStoreTask(basDevp, stationThread, stationObjModel, stationProtocol)) { continue; }