diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/MagicAgvServiceImpl.java b/acs/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/MagicAgvServiceImpl.java index 508db6d..c7021f7 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/MagicAgvServiceImpl.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/MagicAgvServiceImpl.java @@ -448,18 +448,20 @@ public class MagicAgvServiceImpl implements MagicAgvService { lnshStationDeviceDriver = (LnshStationDeviceDriver) addressdevice.getDeviceDriver(); //请求取货 if ("Load".equals(action)) { - if (lnshStationDeviceDriver.getMode() != 0 && lnshStationDeviceDriver.getMove() > 0) { + if (lnshStationDeviceDriver.getMode() != 0 && lnshStationDeviceDriver.getMove() > 0 + && (lnshStationDeviceDriver.getIo_action() == 3 || lnshStationDeviceDriver.getIo_action() == 1)) { inst.setExecute_status("1"); - lnshStationDeviceDriver.setFlag(1); -// lnshStationDeviceDriver.writing(5); +// lnshStationDeviceDriver.setFlag(1); + lnshStationDeviceDriver.writing(5); is_feedback = true; } //请求放货 } else if ("Unload".equals(action)) { - if (lnshStationDeviceDriver.getMode() != 0 && lnshStationDeviceDriver.getMove() == 0) { + if (lnshStationDeviceDriver.getMode() != 0 && lnshStationDeviceDriver.getMove() == 0 + && (lnshStationDeviceDriver.getIo_action() == 3 || lnshStationDeviceDriver.getIo_action() == 1)) { inst.setExecute_status("3"); - lnshStationDeviceDriver.setFlag(3); -// lnshStationDeviceDriver.writing(6); +// lnshStationDeviceDriver.setFlag(3); + lnshStationDeviceDriver.writing(6); is_feedback = true; } } else if ("NOP".equals(action)) { @@ -518,16 +520,20 @@ public class MagicAgvServiceImpl implements MagicAgvService { lnshPalletizingManipulatorSiteDeviceDriver = (LnshPalletizingManipulatorSiteDeviceDriver) addressdevice.getDeviceDriver(); //请求取货 if ("Load".equals(action)) { - if (lnshPalletizingManipulatorSiteDeviceDriver.getMode() != 0 && lnshPalletizingManipulatorSiteDeviceDriver.getMove() > 0) { + if (lnshPalletizingManipulatorSiteDeviceDriver.getMode() != 0 && lnshPalletizingManipulatorSiteDeviceDriver.getMove() > 0 + && (lnshPalletizingManipulatorSiteDeviceDriver.getIo_action() == 3 || lnshPalletizingManipulatorSiteDeviceDriver.getIo_action() == 1)) { inst.setExecute_status("1"); - lnshPalletizingManipulatorSiteDeviceDriver.setFlag(1); +// lnshPalletizingManipulatorSiteDeviceDriver.setFlag(1); + lnshPalletizingManipulatorSiteDeviceDriver.writing(12); is_feedback = true; } //请求放货 } else if ("Unload".equals(action)) { - if (lnshPalletizingManipulatorSiteDeviceDriver.getMode() != 0 && lnshPalletizingManipulatorSiteDeviceDriver.getMove() == 0) { + if (lnshPalletizingManipulatorSiteDeviceDriver.getMode() != 0 && lnshPalletizingManipulatorSiteDeviceDriver.getMove() == 0 + && (lnshPalletizingManipulatorSiteDeviceDriver.getIo_action() == 3 || lnshPalletizingManipulatorSiteDeviceDriver.getIo_action() == 1)) { inst.setExecute_status("3"); - lnshPalletizingManipulatorSiteDeviceDriver.setFlag(3); +// lnshPalletizingManipulatorSiteDeviceDriver.setFlag(3); + lnshPalletizingManipulatorSiteDeviceDriver.writing(13); is_feedback = true; } } @@ -611,15 +617,29 @@ public class MagicAgvServiceImpl implements MagicAgvService { if (lnshLaminatingMachineDeviceDriver.getMode() != 0 && lnshLaminatingMachineDeviceDriver.getMove() == 0) { inst.setExecute_device_code(processingVehicle); inst.setExecute_status("2"); - lnshLaminatingMachineDeviceDriver.setFlag(1); + lnshLaminatingMachineDeviceDriver.writing(3,Integer.parseInt(inst.getInstruction_code())); +// lnshLaminatingMachineDeviceDriver.setFlag(1); is_feedback = true; } //放货完成 } else if ("Unload".equals(action)) { - if (lnshLaminatingMachineDeviceDriver.getMode() != 0 && lnshLaminatingMachineDeviceDriver.getMove() > 0) { + if (lnshLaminatingMachineDeviceDriver.getMode() != 0) { inst.setExecute_device_code(address); inst.setExecute_status("4"); - lnshLaminatingMachineDeviceDriver.setFlag(2); + lnshLaminatingMachineDeviceDriver.writing(1); + } + //如果组盘绑定条码成功,就允许agv离开 + if (lnshLaminatingMachineDeviceDriver.getMode() == 6 && lnshLaminatingMachineDeviceDriver.getResult()) { + is_feedback = true; + } + } else if ("NOP".equals(action)) { + if (lnshLaminatingMachineDeviceDriver.getMode() != 0) { + inst.setExecute_device_code(address); + inst.setExecute_status("4"); + lnshLaminatingMachineDeviceDriver.writing(1); + } + //如果组盘绑定条码成功,就允许agv离开 + if (lnshLaminatingMachineDeviceDriver.getMode() == 6 && lnshLaminatingMachineDeviceDriver.getResult()) { is_feedback = true; } } @@ -784,38 +804,46 @@ public class MagicAgvServiceImpl implements MagicAgvService { // flag = true; log.info("agvstatus:" + lnshStationDeviceDriver.getFlag() + ""); //取货完成离开 - if (lnshStationDeviceDriver.getFlag() == 1) { - if (lnshStationDeviceDriver.getMove() == 0) { +// if (lnshStationDeviceDriver.getFlag() == 1) { + if (lnshStationDeviceDriver.getMove() == 0 && (lnshStationDeviceDriver.getIo_action() == 3 || lnshStationDeviceDriver.getIo_action() == 2)) { flag = true; - lnshStationDeviceDriver.setFlag(2); +// lnshStationDeviceDriver.setFlag(2); + lnshStationDeviceDriver.writing(2); } - } +// } //放货完成离开 - if (lnshStationDeviceDriver.getFlag() == 3) { - if (lnshStationDeviceDriver.getMove() == 1) { +// if (lnshStationDeviceDriver.getFlag() == 3) { + if (lnshStationDeviceDriver.getMove() == 1 && (lnshStationDeviceDriver.getIo_action() == 3 || lnshStationDeviceDriver.getIo_action() == 2)) { flag = true; - lnshStationDeviceDriver.setFlag(4); + lnshStationDeviceDriver.writing(3); +// lnshStationDeviceDriver.setFlag(4); +// Instruction inst = instructionService.findByNextCode(address); +// lnshStationDeviceDriver.setInst(inst); } - } +// } } if (addressdevice.getDeviceDriver() instanceof LnshPalletizingManipulatorSiteDeviceDriver) { lnshPalletizingManipulatorSiteDeviceDriver = (LnshPalletizingManipulatorSiteDeviceDriver) addressdevice.getDeviceDriver(); // flag = true; log.info("agvstatus:" + lnshPalletizingManipulatorSiteDeviceDriver.getFlag() + ""); //取货完成离开 - if (lnshPalletizingManipulatorSiteDeviceDriver.getFlag() == 1) { - if (lnshPalletizingManipulatorSiteDeviceDriver.getMove() == 0) { +// if (lnshPalletizingManipulatorSiteDeviceDriver.getFlag() == 1) { + if (lnshPalletizingManipulatorSiteDeviceDriver.getMove() == 0 + && (lnshPalletizingManipulatorSiteDeviceDriver.getIo_action() == 3 || lnshPalletizingManipulatorSiteDeviceDriver.getIo_action() == 2)) { flag = true; - lnshPalletizingManipulatorSiteDeviceDriver.setFlag(2); +// lnshPalletizingManipulatorSiteDeviceDriver.setFlag(2); + lnshPalletizingManipulatorSiteDeviceDriver.writing(10); } - } +// } //放货完成离开 - if (lnshPalletizingManipulatorSiteDeviceDriver.getFlag() == 3) { - if (lnshPalletizingManipulatorSiteDeviceDriver.getMove() == 1) { +// if (lnshPalletizingManipulatorSiteDeviceDriver.getFlag() == 3) { + if (lnshPalletizingManipulatorSiteDeviceDriver.getMove() == 1 + && (lnshPalletizingManipulatorSiteDeviceDriver.getIo_action() == 3 || lnshPalletizingManipulatorSiteDeviceDriver.getIo_action() == 2)) { flag = true; - lnshPalletizingManipulatorSiteDeviceDriver.setFlag(4); +// lnshPalletizingManipulatorSiteDeviceDriver.setFlag(4); + lnshPalletizingManipulatorSiteDeviceDriver.writing(11); } - } +// } } if (addressdevice.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_Laminating_machine/LnshLaminatingMachineDeviceDriver.java b/acs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_Laminating_machine/LnshLaminatingMachineDeviceDriver.java index 0dc7a31..e7465fd 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_Laminating_machine/LnshLaminatingMachineDeviceDriver.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_Laminating_machine/LnshLaminatingMachineDeviceDriver.java @@ -105,6 +105,8 @@ public class LnshLaminatingMachineDeviceDriver extends AbstractOpcDeviceDriver i //暂定 0就绪 1请求取货 2取货完成 3请求放货 4放货完成 5取货完成离开 6放货完成离开 7请求进入区域 8请求离开区域 int flag; + Boolean result = false; + String device_code; @Override @@ -197,7 +199,7 @@ public class LnshLaminatingMachineDeviceDriver extends AbstractOpcDeviceDriver i break; case 6: //入货架扫码 - if (!requireSucess && this.move != 0 && barcode != 0) { + if (!requireSucess && barcode != 0) { intoKiln(); } break; @@ -321,6 +323,7 @@ public class LnshLaminatingMachineDeviceDriver extends AbstractOpcDeviceDriver i if (result.getStatus() == 200 && StrUtil.equals(jsonObject.get("status").toString(),"200")) { this.writing(mode); this.setRequireSucess(true); + this.setResult(true); } } diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_station/LnshStationDeviceDriver.java b/acs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_station/LnshStationDeviceDriver.java index 6d49295..ac74716 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_station/LnshStationDeviceDriver.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_station/LnshStationDeviceDriver.java @@ -279,7 +279,7 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements //放货完成 case 4: writing(3); - this.writing(2,Integer.parseInt(inst.getInstruction_code())); + this.writing(3,Integer.parseInt(inst.getInstruction_code())); return; } } @@ -295,7 +295,6 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements last_barcode = barcode; last_specifications = specifications; last_batch = batch; - last_flag = flag; } diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/acs/instruction/service/InstructionService.java b/acs/hd/nladmin-system/src/main/java/org/nl/acs/instruction/service/InstructionService.java index e07884a..702989b 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/acs/instruction/service/InstructionService.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/acs/instruction/service/InstructionService.java @@ -2,6 +2,7 @@ package org.nl.acs.instruction.service; import org.nl.acs.instruction.service.dto.Instruction; +import org.nl.acs.task.service.dto.TaskDto; import org.springframework.data.domain.Pageable; import javax.servlet.http.HttpServletResponse; @@ -239,6 +240,13 @@ public interface InstructionService { * @return */ Integer querySameOriginInst(String code); + /** + * 根据目的地设备编号查询当前是否有设备 + * + * @param device_code + * @return + */ + Instruction findByNextCode(String device_code); diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java b/acs/hd/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java index ac98704..af6252f 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java @@ -1049,6 +1049,19 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu return num; } + @Override + public Instruction findByNextCode(String device_code) { + Iterator var3 = instructions.iterator(); + + while (var3.hasNext()) { + Instruction inst = (Instruction) var3.next(); + if (StrUtil.equals(inst.getNext_device_code(), device_code)) { + return inst; + } + } + return null; + } + @Override public boolean removeByCodeFromCache(String code) { diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/QueryMagicAgvTaskStatus.java b/acs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/QueryMagicAgvTaskStatus.java index 28c99a3..2c12844 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/QueryMagicAgvTaskStatus.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/QueryMagicAgvTaskStatus.java @@ -1,6 +1,7 @@ package org.nl.modules.quartz.task; import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONArray; @@ -35,6 +36,9 @@ public class QueryMagicAgvTaskStatus { Instruction inst = instList.get(i); String instcode = inst.getInstruction_code(); HttpResponse response = magicAgvService.queryAgvInstStatus(instcode); + if (response.getStatus() != 200) { + continue; + } JSONObject jo = JSONObject.parseObject(response.body()); if (MapUtil.isEmpty(jo)) continue; //反馈结果状态