dubin
4 天以前 635c92468df74c81b066d98f812af1f03166aa90
src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -10,8 +10,10 @@
import com.core.common.SpringUtils;
import com.zy.asrs.entity.BasCrnOpt;
import com.zy.asrs.entity.BasCrnp;
import com.zy.asrs.entity.DeviceDataLog;
import com.zy.asrs.service.BasCrnOptService;
import com.zy.asrs.service.BasCrnpService;
import com.zy.asrs.service.DeviceDataLogService;
import com.zy.common.utils.News;
import com.zy.core.CrnThread;
import com.zy.core.cache.MessageQueue;
@@ -27,6 +29,7 @@
import lombok.extern.slf4j.Slf4j;
import java.text.MessageFormat;
import java.util.Base64;
import java.util.Date;
/**
@@ -75,6 +78,7 @@
                    // 写入数据 1号工位
                    case 2:
                        CrnCommand data = (CrnCommand) task.getData();
                        crnProtocol.setLastCommandTime(System.currentTimeMillis());
                        if (data.getPltType() == null || data.getPltType() == 1) {
                            write(data);
                        } else if (data.getPltType() == 2) {
@@ -225,7 +229,7 @@
                OutputQueue.CRN.offer(MessageFormat.format("【{0}】[id:{1}] <<<<< 实时数据更新成功", DateUtils.convert(new Date()), slave.getId()));
                // 复位信号
                if (!Cools.isEmpty(crnProtocol.getStatusType()) && crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) {
                if (!Cools.isEmpty(crnProtocol.getStatusType()) && crnProtocol.getStatusType().equals(CrnStatusType.WAITING) && crnProtocol.getTaskNo() != null && crnProtocol.getTaskNo() != 0) {
//                    if (crnProtocol.getTaskNo() == 0){
//                        News.error("堆垛机工位1工作号为0,不予确认,工位1{}",crnProtocol.getLoaded() == 1 ? "有物" : "无物");
//                        return;
@@ -248,7 +252,7 @@
                }
                // 复位信号
                if (!Cools.isEmpty(crnProtocol.getStatusType()) && crnProtocol.getStatusTypeTwo().equals(CrnStatusType.WAITING)) {
                else if (!Cools.isEmpty(crnProtocol.getStatusType()) && crnProtocol.getStatusTypeTwo().equals(CrnStatusType.WAITING) && crnProtocol.getTaskNoTwo() != null && crnProtocol.getTaskNoTwo() != 0) {
//                    if (crnProtocol.getTaskNoTwo() == 0){
//                        News.error("堆垛机工位2工作号为0,不予确认,工位2{}",crnProtocol.getLoadedTwo() == 1 ? "有物" : "无物");
//                        return;
@@ -268,6 +272,22 @@
                                    slave.getId(), wrkNo, resetFlag);
                        }
                    }
                }
                if (System.currentTimeMillis() - crnProtocol.getDeviceDataLog() > 200) {
                    //采集时间超过5s,保存一次数据记录
                    //保存数据记录
                    DeviceDataLogService deviceDataLogService = SpringUtils.getBean(DeviceDataLogService.class);
                    DeviceDataLog deviceDataLog = new DeviceDataLog();
                    deviceDataLog.setOriginData(Base64.getEncoder().encodeToString(result.Content));
                    deviceDataLog.setWcsData(JSON.toJSONString(crnProtocol));
                    deviceDataLog.setType("crn");
                    deviceDataLog.setDeviceNo(crnProtocol.getCrnNo());
                    deviceDataLog.setCreateTime(new Date());
                    deviceDataLogService.insert(deviceDataLog);
                    //更新采集时间
                    crnProtocol.setDeviceDataLog(System.currentTimeMillis());
                }
                try {
@@ -606,6 +626,12 @@
//                        if (!resetFlag){
                        News.error("写入堆垛机工位2plc数据失败,重新下发任务  回读不一致 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(command), writeCount1);
                        result = siemensNet.Write("DB100.20", array);
                        try {
                            Thread.sleep(100);
                        } catch (Exception e) {
                        }
                        result2 = siemensNet.Write("DB100.0", array2);
//                        }
                        writeCount1++;
                        continue;