自动化立体仓库 - WCS系统
#1
luxiaotao1123
2021-01-03 fb9405a0482b22cd9411ab3e24163f4fb17a5260
#1
3个文件已修改
50 ■■■■■ 已修改文件
src/main/java/com/zy/core/enums/CrnTaskModeType.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/model/command/CrnCommand.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensCrnThread.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/CrnTaskModeType.java
@@ -8,9 +8,7 @@
    LOC_MOVE(3),    // 库位移转
    SITE_MOVE(4),    // 站位移转
    GO_ORIGIN(5),    // 回原点
    OFFSET_MOVE(7),    // 坐标移行
    TIMING(90),     // 校时
    CANCEL(99),     // 取消当前任务
    CLEAR(7),       // 清错
    ;
    public Integer id;
src/main/java/com/zy/core/model/command/CrnCommand.java
@@ -18,7 +18,7 @@
    private Integer crnNo = 0;
    // 任务完成确认位
    private Short ackFinish = 0;
//    private Short ackFinish = 0;
    // 任务号
    private Short taskNo = 0;
@@ -50,6 +50,12 @@
    // 源位置层号
    private Short sourcePosZ = 0;
    // 源站
    private Short sourceStaNo = 0;
    // 源巷道
    private Short sourceLane = 0;
    // 目标位置排号
    private Short destinationPosX = 0;
@@ -59,7 +65,11 @@
    // 目标位置层号
    private Short destinationPosZ = 0;
    private Short taskSend = 0;
    // 目标站
    private Short destinationStaNo = 0;
    // 目标巷道
    private Short destinationLane = 0;
    public void setTaskMode(Short taskMode){
        this.taskMode = taskMode;
src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -73,7 +73,7 @@
                        }
                        command.setCrnNo(slave.getId()); // 堆垛机编号
                        command.setTaskNo((short) 0); // 工作号
                        command.setAckFinish((short) 1);  // 任务完成确认位
//                        command.setAckFinish((short) 1);  // 任务完成确认位
                        command.setTaskMode(CrnTaskModeType.NONE); // 任务模式
                        command.setSourcePosX((short)0);     // 源库位排
                        command.setSourcePosY((short)0);     // 源库位列
@@ -97,7 +97,7 @@
    @Override
    public boolean connect() {
        boolean result = false;
        siemensNet = new SiemensS7Net(SiemensPLCS.S300, slave.getIp());
        siemensNet = new SiemensS7Net(SiemensPLCS.S1200, slave.getIp());
        siemensNet.setRack(slave.getRack().byteValue());
        siemensNet.setSlot(slave.getSlot().byteValue());
        OperateResult connect = siemensNet.ConnectServer();
@@ -117,7 +117,7 @@
     * 读取状态
     */
    private void readStatus(){
        OperateResultExOne<byte[]> result = siemensNet.Read("DB8.18", (short) 62);
        OperateResultExOne<byte[]> result = siemensNet.Read("DB11.2", (short) 90);
        if (result.IsSuccess) {
            if (null == crnProtocol) {
                crnProtocol = new CrnProtocol();
@@ -187,17 +187,25 @@
            return false;
        }
        command.setCrnNo(slave.getId());
        short[] array = new short[9];
        array[0] = command.getAckFinish();
        array[1] = command.getTaskNo();
        array[2] = command.getTaskMode();
        short[] array = new short[13];
        if (!command.getTaskModeType().equals(CrnTaskModeType.CLEAR)) {
            array[0] = 5;
        } else {
            array[0] = 7;
        }
        array[1] = command.getSourcePosZ();
        array[2] = command.getSourcePosY();
        array[3] = command.getSourcePosX();
        array[4] = command.getSourcePosY();
        array[5] = command.getSourcePosZ();
        array[4] = command.getDestinationPosZ();
        array[5] = command.getDestinationPosY();
        array[6] = command.getDestinationPosX();
        array[7] = command.getDestinationPosY();
        array[8] = command.getDestinationPosZ();
        OperateResult result = siemensNet.Write("DB8.0", array);
        array[7] = command.getSourceStaNo();
        array[8] = command.getDestinationStaNo();
        array[9] = command.getSourceLane();
        array[10] = command.getDestinationLane();
        array[11] =
        OperateResult result = siemensNet.Write("DB10.0", array);
        if (result.IsSuccess) {
            try {