1
skyouc
2 天以前 98895616ebf69fb398445dd0d664882349b0761f
1
2个文件已修改
43 ■■■■ 已修改文件
src/main/java/com/zy/core/network/real/ZyStationV4RealConnect.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/plugin/NormalProcess.java 20 ●●●●● 补丁 | 查看 | 原始文档 | 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;
                }