#
vincent
2020-08-18 526f1f59497e3b00905df2a2a838a08f0a110bc7
src/main/java/com/zy/core/thread/CrnThread.java
@@ -9,6 +9,7 @@
import com.zy.core.ThreadHandler;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.OutputQueue;
import com.zy.core.enums.CrnStatusType;
import com.zy.core.enums.CrnTaskModeType;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.CrnSlave;
@@ -138,6 +139,16 @@
            crnProtocol.setYDistance(siemensNet.getByteTransform().TransSingle(result.Content, 44));
            crnProtocol.setXDuration(siemensNet.getByteTransform().TransSingle(result.Content, 48));
            crnProtocol.setYDuration(siemensNet.getByteTransform().TransSingle(result.Content, 52));
            /**
             *   当读到status == 90.任务完成等待WCS确认 时
             *   下发任务完成指令
             */
            if (crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) {
                CrnCommand crnCommand = new CrnCommand();
                crnCommand.setAckFinish((short)1);
                write(crnCommand);
            }
        } else {
            OutputQueue.CRN.offer(MessageFormat.format("【{0}】读取堆垛机plc状态信息失败 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
            log.error("读取堆垛机plc状态信息失败 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
@@ -167,7 +178,7 @@
        if (result.IsSuccess) {
            System.out.println(MessageFormat.format("【{0}】[id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
            OutputQueue.CRN.offer(MessageFormat.format("【{0}】[id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
            readStatus();
//            readStatus();
        } else {
            System.out.println(MessageFormat.format("【{0}】写入堆垛机plc数据失败 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
            OutputQueue.CRN.offer(MessageFormat.format("【{0}】写入堆垛机plc数据失败 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
@@ -191,7 +202,7 @@
    /******************************************************************************************/
    /**************************************** 测试专用 *****************************************/
    /*****************************************************************************************/
    public static void main(String[] args) {
    public static void main(String[] args) throws InterruptedException {
        CrnSlave slave = new CrnSlave();
        slave.setId(1);
        slave.setIp("192.168.6.9");
@@ -203,6 +214,7 @@
        System.out.println(JSON.toJSONString(crnThread.crnProtocol));
        Thread.sleep(5000L);
        CrnCommand command = new CrnCommand();
        command.setCrnNo(1); // 堆垛机编号
        command.setTaskNo((short) 0); // 工作号
@@ -212,8 +224,8 @@
        command.setSourcePosY((short) 0);     // 源库位列
        command.setSourcePosZ((short) 0);     // 源库位层
        command.setDestinationPosX((short) 1);     // 目标库位排
        command.setDestinationPosY((short) 5);     // 目标库位列
        command.setDestinationPosZ((short) 3);     // 目标库位层
        command.setDestinationPosY((short) 7);     // 目标库位列
        command.setDestinationPosZ((short) 2);     // 目标库位层
        crnThread.write(command);