zjj
2023-11-21 16441fe63adf04e0c434377f7da0fd05ba155eb6
#联机
4个文件已修改
57 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/CrnController.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/model/command/CrnCommand.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensCrnThread.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/deviceOperate/crnOperate.html 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/CrnController.java
@@ -1,5 +1,6 @@
package com.zy.asrs.controller;
import HslCommunication.Profinet.Siemens.SiemensS7Net;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
@@ -50,6 +51,8 @@
@Slf4j
@RestController
public class CrnController {
    @Autowired
    private SlaveProperties slaveProperties;
@@ -576,6 +579,27 @@
        return R.error();
    }
    @ManagerAuth(memo = "切换联机模式")
    @PostMapping("/crn/operator/auto")
    public R crnAuto(CrnOperatorParam param){
        short[] array = new short[9];
        CrnCommand command = new CrnCommand();
        command.setCrnNo(param.getCrnNo()); // 堆垛机编号
        command.setTaskNo((short) 0); // 工作号
//        command.setAckFinish((short) 0);  // 任务完成确认位
//        command.setTaskMode(CrnTaskModeType.PAKIN); // 任务模式
//        command.setSourcePosX(param.getSourceRow());     // 源库位排
//        command.setSourcePosY(param.getSourceBay());     // 源库位列
//        command.setSourcePosZ(param.getSourceLev());     // 源库位层
//        command.setDestinationPosX(param.getRow());     // 目标库位排
//        command.setDestinationPosY(param.getBay());     // 目标库位列
//        command.setDestinationPosZ(param.getLev());     // 目标库位层
        command.setAuto((short)1);
        return crnControl(command)?R.ok():R.error();
    }
    private boolean crnControl(CrnCommand command){
        if (command.getCrnNo() == null) {
            throw new CoolException("请选择堆垛机");
src/main/java/com/zy/core/model/command/CrnCommand.java
@@ -72,6 +72,9 @@
    // 目标巷道
    private Short destinationLane = 0;
    //联机模式
    private Short auto = 0;
    // 任务确认 0:未确认 1:已确认
    private Short command = 0;
src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -5,6 +5,7 @@
import HslCommunication.Profinet.Siemens.SiemensPLCS;
import HslCommunication.Profinet.Siemens.SiemensS7Net;
import com.alibaba.fastjson.JSON;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.SpringUtils;
import com.zy.asrs.entity.*;
@@ -388,7 +389,7 @@
        }
        command.setCrnNo(slave.getId());
        short[] array = new short[9];
        short[] array = new short[12];
        if (command.getAckFinish() == 0) {
            array[0] = 5;
        } else {
@@ -424,19 +425,23 @@
            array[7] = command.getDestinationPosX();
        }
        array[8] = command.getDestinationPosY();
        if (!Cools.isEmpty(command.getAuto())){
            array[10] = command.getAuto();
        }
        // 作业信息
        OperateResult result = siemensNet.Write("DB100.0", array);
        // 任务号 + 完成位
        short[] array2 = new short[2];
        array2[0] = command.getTaskNo();
        array2[1] = command.getAckFinish();
        OperateResult result1 = siemensNet.Write("DB10.24", array2);
        // 结束位
        if (command.getAckFinish() == 0) {
            OperateResult result2 = siemensNet.Write("DB10.28.1", true);
        }
//        // 任务号 + 完成位
//        short[] array2 = new short[2];
//        array2[0] = command.getTaskNo();
//        array2[1] = command.getAckFinish();
//        OperateResult result1 = siemensNet.Write("DB10.24", array2);
//
//        // 结束位
//        if (command.getAckFinish() == 0) {
//            OperateResult result2 = siemensNet.Write("DB10.28.1", true);
//        }
        // 日志记录
        try {
@@ -470,7 +475,7 @@
        CommandInfoLog commandInfoLog = JSON.parseObject(JSON.toJSONString(commandInfo), CommandInfoLog.class);
        commandInfoLog.setId(null);
        if (result.IsSuccess && result1.IsSuccess) {
        if (result.IsSuccess) {
            log.warn("堆垛机命令下发[id:{},时间:{}] >>>>> {}", slave.getId(), DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmsssss_F), JSON.toJSON(command));
            OutputQueue.CRN.offer(MessageFormat.format("【{0}】[id:{1}] >>>>> 命令下发: {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
src/main/webapp/views/deviceOperate/crnOperate.html
@@ -80,6 +80,7 @@
                            <el-button @click="requestOperate('taskComplete')" type="primary">任务完成</el-button>
                            <el-button @click="requestOperate('clearCommand')" type="primary">清除命令</el-button>
                            <el-button @click="requestOperate('handleReset')" type="primary">复位</el-button>
                            <el-button @click="requestOperate('auto')" type="primary">联机</el-button>
                        </div>
                    </div>
                </el-card>