| | |
| | | import com.core.common.Cools; |
| | | import com.core.common.DateUtils; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.entity.*; |
| | | import com.zy.mapper.*; |
| | | import com.zy.service.*; |
| | | import com.zy.utils.RouteUtils; |
| | | import com.zy.utils.Utils; |
| | | import com.zy.utils.VersionUtils; |
| | | import com.zy.common.model.LocTypeDto; |
| | | import com.zy.common.model.MatDto; |
| | | import com.zy.common.model.SearchLocParam; |
| | | import com.zy.common.model.StartupDto; |
| | | import com.zy.common.service.CommonService; |
| | | import com.zy.utils.CollectionUtils; |
| | | import com.zy.utils.HttpHandler; |
| | | import com.zy.utils.News; |
| | | import com.zy.core.CrnThread; |
| | | import com.zy.core.DevpThread; |
| | | import com.zy.core.cache.MessageQueue; |
| | | import com.zy.core.cache.SlaveConnection; |
| | | import com.zy.core.enums.*; |
| | | import com.zy.core.model.*; |
| | | import com.zy.core.model.CrnSlave; |
| | | import com.zy.core.model.DevpSlave; |
| | | import com.zy.core.model.LedSlave; |
| | | import com.zy.core.model.Task; |
| | | import com.zy.core.model.command.CrnCommand; |
| | | import com.zy.core.model.command.LedCommand; |
| | | import com.zy.core.model.command.RgvCommand; |
| | |
| | | import com.zy.core.thread.LedThread; |
| | | import com.zy.core.thread.RgvThread; |
| | | import com.zy.core.thread.SiemensDevpThread; |
| | | import com.zy.entity.*; |
| | | import com.zy.mapper.*; |
| | | import com.zy.service.*; |
| | | import com.zy.utils.*; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | |
| | | @Value("${wms.url}") |
| | | private String wmsUrl; |
| | | |
| | | public Integer wrkNo = 10000; |
| | | public Integer wrkNo = 9901; |
| | | |
| | | /** |
| | | * 组托 |
| | |
| | | // 尺寸检测异常 |
| | | boolean back = false; |
| | | String errMsg = ""; |
| | | if ((staProtocol.getSiteId() == 101 && devpThread.ioModeOf101 == IoModeType.PAKOUT_MODE) |
| | | ||(staProtocol.getSiteId() == 103 && devpThread.ioModeOf103 == IoModeType.PAKOUT_MODE) |
| | | ||(staProtocol.getSiteId() == 305 && devpThread.ioModeOf305 == IoModeType.PAKOUT_MODE)) { |
| | | errMsg = "当前为出库模式"; |
| | | back = true; |
| | | } |
| | | if (!back && staProtocol.isFrontErr()) { |
| | | // if ((staProtocol.getSiteId() == 101 && devpThread.ioModeOf101 == IoModeType.PAKOUT_MODE) |
| | | // ||(staProtocol.getSiteId() == 103 && devpThread.ioModeOf103 == IoModeType.PAKOUT_MODE) |
| | | // ||(staProtocol.getSiteId() == 305 && devpThread.ioModeOf305 == IoModeType.PAKOUT_MODE)) { |
| | | // errMsg = "当前为出库模式"; |
| | | // back = true; |
| | | // } |
| | | // if (!back && staProtocol.isFrontErr()) { |
| | | if (staProtocol.isFrontErr()) { |
| | | errMsg = "前超限"; |
| | | back = true; |
| | | } |
| | |
| | | } |
| | | staProtocol.setWorkNo(wrkNo); |
| | | News.info("{}入库回退:{},任务号:{}", inSta.getStaNo(), errMsg,wrkNo); |
| | | wrkNo++; |
| | | staProtocol.setStaNo(inSta.getBackSta().shortValue()); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | log.error("输送线下发1:"+wrkNo+","+inSta.getBackSta()); |
| | | return; |
| | | } |
| | | |
| | | // 判断是否满足入库条件 |
| | |
| | | && !staProtocol.isEmptyMk() |
| | | && staProtocol.isPakMk()) { |
| | | if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode)) { |
| | | News.info("{}号条码扫描器检测条码信息:{}", inSta.getBarcode(), barcode); |
| | | |
| | | staProtocol.setWorkNo(wrkNo); |
| | | News.info("{}入库回退:{},任务号:{}", inSta.getStaNo(), errMsg,wrkNo); |
| | | wrkNo++; |
| | | staProtocol.setStaNo(inSta.getBackSta().shortValue()); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | log.error("输送线下发1:"+wrkNo+","+inSta.getBackSta()); |
| | | // News.info("{}号条码扫描器检测条码信息:{}", inSta.getBarcode(), barcode); |
| | | // |
| | | // staProtocol.setWorkNo(wrkNo); |
| | | // News.info("{}入库回退:{},任务号:{}", inSta.getStaNo(), errMsg,wrkNo); |
| | | // staProtocol.setStaNo(inSta.getBackSta().shortValue()); |
| | | // devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | // MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | // log.error("输送线下发1:"+wrkNo+","+inSta.getBackSta()); |
| | | continue; |
| | | } |
| | | // 判断重复工作档 |
| | |
| | | .build() |
| | | .doPost(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | log.info("组托wms返回:" + jsonObject); |
| | | if (jsonObject.getInteger("code").equals(200)) { |
| | | StartupDto dto = jsonObject.getObject("data", StartupDto.class); |
| | | barcodeThread.setBarcode(""); |
| | |
| | | } |
| | | } else { |
| | | staProtocol.setWorkNo(wrkNo); |
| | | wrkNo++; |
| | | staProtocol.setStaNo(inSta.getBackSta().shortValue()); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | |
| | | StaDesc staDesc = staDescService.selectOne(wrapper); |
| | | if (Cools.isEmpty(staDesc)) { |
| | | News.error(""+mark+" - 2"+" - 入库路径不存在!type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo()); |
| | | staProtocol.setWorkNo(wrkNo++); |
| | | staProtocol.setWorkNo(wrkNo); |
| | | staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue()-(short)1)); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | |
| | | if(!Cools.isEmpty(barcode)) { |
| | | // log.info("{}号条码扫描器检测条码信息:{}", pickSta.getBarcode(), barcode); |
| | | if("NG".endsWith(barcode) || "NoRead".equals(barcode) || "empty".equals(barcode)) { |
| | | staProtocol.setWorkNo(wrkNo++); |
| | | staProtocol.setWorkNo(wrkNo); |
| | | staProtocol.setStaNo(pickSta.getBackSta().shortValue()); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | |
| | | continue; |
| | | } |
| | | } else { |
| | | staProtocol.setWorkNo(wrkNo++); |
| | | staProtocol.setWorkNo(wrkNo); |
| | | staProtocol.setStaNo(pickSta.getBackSta().shortValue()); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | |
| | | } |
| | | } |
| | | } else { |
| | | staProtocol.setWorkNo(wrkNo++); |
| | | staProtocol.setWorkNo(wrkNo); |
| | | staProtocol.setStaNo(pickSta.getBackSta().shortValue()); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | |
| | | |
| | | // 命令下发区 -------------------------------------------------------------------------- |
| | | |
| | | // 更新工作档状态为14失败 |
| | | |
| | | // 下发站点信息 |
| | | |
| | | if (wrkMast.getSourceStaNo() == 106 && wrkMast.getWrkSts() == 12L) { |
| | | wrkMast.setWrkSts(16L); |
| | | wrkMast.setCrnNo(1); |
| | | if (wrkMast.getStaNo() == 107) { |
| | | wrkMast.setSourceStaNo(107); |
| | | } else if(wrkMast.getStaNo()==104) { |
| | | wrkMast.setSourceStaNo(105); |
| | | } |
| | | staProtocol.setStaNo((short) 106); |
| | | |
| | | log.info("----------106移库标识---------"); |
| | | }else if(wrkMast.getSourceStaNo() == 105 && wrkMast.getWrkSts() == 16L) { |
| | | staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); |
| | | log.info("106移库完成,输送线发送105到104,源站为:" + staProtocol.getSiteId()); |
| | | wrkMast.setWrkSts(14L); |
| | | }else { |
| | | staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); |
| | | wrkMast.setWrkSts(14L); |
| | | } |
| | | |
| | | staProtocol.setWorkNo(wrkMast.getWrkNo()); |
| | | staProtocol.setStaNo(RouteUtils.CrnStaEnd(wrkMast.getStaNo(),wrkMast.getSourceStaNo())); |
| | | if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) { |
| | | continue; |
| | | } |
| | | |
| | | // 更新工作档状态为14失败 |
| | | wrkMast.setWrkSts(14L); |
| | | wrkMast.setCrnEndTime(new Date()); |
| | | if (wrkMastMapper.updateById(wrkMast) != 0) { |
| | | // 复位堆垛机 |
| | |
| | | // 获取工作状态为11(生成出库ID)的出库工作档 |
| | | // WrkMast wrkMast = wrkMastMapper.selectPakOutStep1(slave.getId(), crnStn.getStaNo()); |
| | | List<WrkMast> wrkMasts = wrkMastMapper.selectPakOutStep11(slave.getId(), crnStn.getStaNo()); |
| | | // todo 限制出库到305的工作档,如果配置outModel不等于Y,则跳过 |
| | | for (WrkMast wrkMast : wrkMasts) { |
| | | if (wrkMast == null) { |
| | | continue; |
| | |
| | | // continue; |
| | | // } |
| | | // 入出库模式判断 |
| | | if ((staProtocol.getSiteId() == 101 && devpThread.ioModeOf101 != IoModeType.PAKOUT_MODE) |
| | | || (staProtocol.getSiteId() == 103 && devpThread.ioModeOf103 != IoModeType.PAKOUT_MODE) |
| | | || (staProtocol.getSiteId() == 305 && devpThread.ioModeOf305 != IoModeType.PAKOUT_MODE)) { |
| | | continue; |
| | | } |
| | | // if ((staProtocol.getSiteId() == 101 && devpThread.ioModeOf101 != IoModeType.PAKOUT_MODE) |
| | | // || (staProtocol.getSiteId() == 103 && devpThread.ioModeOf103 != IoModeType.PAKOUT_MODE) |
| | | // || (staProtocol.getSiteId() == 305 && devpThread.ioModeOf305 != IoModeType.PAKOUT_MODE)) { |
| | | // continue; |
| | | // } |
| | | |
| | | // 查询站点详细信息 |
| | | BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo()); |
| | |
| | | break; |
| | | // continue; |
| | | } |
| | | // 107无物才能出,其他有转运架才能出 |
| | | boolean loading = (staProtocol.getSiteId() == 107) != staProtocol.isLoading(); |
| | | // 判断堆垛机出库站状态 |
| | | if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") |
| | | if (staProtocol.isAutoing() && loading && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") |
| | | && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) { |
| | | // 命令下发区 -------------------------------------------------------------------------- |
| | | |
| | | log.warn("堆垛机出库命令下发:"+staProtocol.getWorkNo()+","+staProtocol.isOutEnable()+","+staProtocol.getSiteId()); |
| | | // 堆垛机控制过滤 |
| | | if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { |
| | | // continue; |
| | |
| | | break; |
| | | // return; |
| | | } |
| | | // if(crnStn.getStaNo() == 105) { |
| | | // continue; |
| | | // } |
| | | |
| | | News.warnNoLog(""+mark+" - 2"+" - 12"+" - 命令下发 : 工作号={},源排={},源列={},源层={},目标排={},目标列={},目标层={}",wrkMast.getWrkNo().shortValue() |
| | | ,sourceSta.getRow1().shortValue(),sourceSta.getBay1().shortValue(),sourceSta.getLev1().shortValue() |
| | |
| | | ledCommand.setStaNo(wrkMast.getStaNo()); |
| | | ledCommand.setBarcode(wrkMast.getBarcode()); |
| | | if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) { |
| | | List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo()); |
| | | |
| | | wrkDetls.forEach(wrkDetl -> { |
| | | Double total = 0.0; |
| | | EntityWrapper<LocDetl> wrapper = new EntityWrapper<>(); |
| | | LocDetl locDetl = locDetlService.selectOne(wrapper.eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr())); |
| | | if (Cools.isEmpty(locDetl)) { |
| | | total = wrkDetl.getAnfme(); |
| | | } else { |
| | | total = locDetl.getAnfme(); |
| | | } |
| | | if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1) { |
| | | ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total)); |
| | | } |
| | | if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) { |
| | | ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total)); |
| | | } |
| | | if (wrkMast.getIoType() == 107) { |
| | | ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total)); |
| | | } |
| | | }); |
| | | List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); |
| | | // List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo()); |
| | | wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getSpecs(),wrkDetl.getManuDate(),wrkDetl.getModel(),wrkDetl.getWeight(),wrkDetl.getLength(),wrkDetl.getVolume()))); |
| | | // wrkDetls.forEach(wrkDetl -> { |
| | | // Double total = 0.0; |
| | | // EntityWrapper<LocDetl> wrapper = new EntityWrapper<>(); |
| | | // LocDetl locDetl = locDetlService.selectOne(wrapper.eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr())); |
| | | // if (Cools.isEmpty(locDetl)) { |
| | | // total = wrkDetl.getAnfme(); |
| | | // } else { |
| | | // total = locDetl.getAnfme(); |
| | | // } |
| | | // if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1) { |
| | | // ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total)); |
| | | // } |
| | | // if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) { |
| | | // ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total)); |
| | | // } |
| | | // if (wrkMast.getIoType() == 107) { |
| | | // ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total)); |
| | | // } |
| | | // }); |
| | | } |
| | | commands.add(ledCommand); |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | public synchronized void autoMoveLoc() { |
| | | WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_sts", 16L)); |
| | | if (wrkMast == null || wrkMast.getStaNo() != 104 && wrkMast.getStaNo() != 107) { |
| | | return; |
| | | } |
| | | // 判断源站点情况 有任务号,有物,自动 |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); |
| | | StaProtocol staProtocol106 = devpThread.getStation().get(106); |
| | | StaProtocol staProtocol105 = devpThread.getStation().get(105); |
| | | StaProtocol staProtocol107 = devpThread.getStation().get(107); |
| | | if (staProtocol106 == null) { |
| | | return; |
| | | } else { |
| | | staProtocol106 = staProtocol106.clone(); |
| | | } |
| | | if (staProtocol105 == null) { |
| | | return; |
| | | } else { |
| | | staProtocol105 = staProtocol105.clone(); |
| | | } |
| | | if (staProtocol107 == null) { |
| | | return; |
| | | } else { |
| | | staProtocol107 = staProtocol107.clone(); |
| | | } |
| | | |
| | | if (wrkMast.getStaNo() == 104) { |
| | | // 判断出库站点情况,可入,堆垛机可以取货,可出,堆垛机可以放货 |
| | | if (!staProtocol106.isInEnable() || !staProtocol105.isOutEnable() || !staProtocol105.isLoading()) { |
| | | return; |
| | | } |
| | | } else if (wrkMast.getStaNo() == 107) { |
| | | if (!staProtocol106.isInEnable() || !staProtocol107.isOutEnable() || staProtocol107.isLoading()) { |
| | | return; |
| | | } |
| | | } |
| | | |
| | | // 获取堆垛机信息 并 判断是否可入出 |
| | | CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, 1); |
| | | CrnProtocol crnProtocol = crnThread.getCrnProtocol(); |
| | | if (crnProtocol == null) { |
| | | return; |
| | | } |
| | | BasCrnp basCrnp = basCrnpService.selectById(1); |
| | | if (!basCrnp.getInEnable().equals("Y") && !basCrnp.getOutEnable().equals("Y")) { |
| | | return; |
| | | } |
| | | |
| | | // 堆垛机控制过滤 |
| | | if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { |
| | | return; |
| | | } |
| | | |
| | | // 已经存在吊车执行任务时,则过滤 |
| | | if (wrkMastMapper.selectWorking(1) != null) { |
| | | return; |
| | | } |
| | | // 命令下发区 -------------------------------------------------------------------------- |
| | | CrnCommand crnCommand = new CrnCommand(); |
| | | crnCommand.setCrnNo(1); // 堆垛机编号 |
| | | crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 工作号 |
| | | crnCommand.setAckFinish((short) 0); // 任务完成确认位 |
| | | crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 任务模式: 库位移转 |
| | | crnCommand.setSourcePosX((short) 3); // 源库位排 |
| | | crnCommand.setSourcePosY((short) 28); // 源库位列 |
| | | crnCommand.setSourcePosZ((short) 1); // 源库位层 |
| | | crnCommand.setDestinationPosX((short) 1); // 目标库位排 |
| | | crnCommand.setDestinationPosY((short) 28); // 目标库位列 |
| | | crnCommand.setDestinationPosZ((short) 1); // 目标库位层 |
| | | if(wrkMast.getStaNo() == 104) { // 目标站104,出到105位置 |
| | | crnCommand.setDestinationPosX((short) 2); // 目标库位排 |
| | | crnCommand.setDestinationPosY((short) 4); // 目标库位列 |
| | | crnCommand.setDestinationPosZ((short) 1); // 目标库位层 |
| | | } |
| | | crnCommand.setCommand((short)1); |
| | | crnCommand.setTraySize(true); //库位类型 |
| | | if (!MessageQueue.offer(SlaveType.Crn, 1, new Task(2, crnCommand))) { |
| | | News.error("106移库1号堆垛机命令下发失败,堆垛机号={},任务数据={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand)); |
| | | } |
| | | // else { |
| | | // wrkMast.setCrnNo(2); |
| | | // wrkMastMapper.updateById(wrkMast); |
| | | // } |
| | | News.infoNoLog("106移库给1号堆垛机下发完成"); |
| | | } |
| | | |
| | | public synchronized void writePlc305() { |
| | | BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 305)); |
| | | if (basDevp.getWrkNo() != 0 && basDevp.getWrkNo() != 9999) { |
| | | WrkMast wrkMast = wrkMastService.selectById(basDevp.getWrkNo()); |
| | | if(wrkMast != null && wrkMast.getWhsType() != null && wrkMast.getWhsType() == 2) { |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); |
| | | StaProtocol staProtocol305 = devpThread.getStation().get(305); |
| | | if (!staProtocol305.getOpenAskDoor() && !staProtocol305.getIfOpenDoor()) { // 没请求打开 |
| | | // 请求打开 |
| | | if(!MessageQueue.offer(SlaveType.Devp, 1, new Task(3, 1))){ |
| | | log.error("请求开门失败"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | public synchronized void readPlc305() { |
| | | WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_sts", 16L)); |
| | | |
| | | } |
| | | |
| | | public synchronized void invokingBase() { |
| | | WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_sts", 1L).eq("io_type", 1) |
| | | .eq("source_sta_no", 305)); |
| | | if (wrkMast != null) { |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); |
| | | StaProtocol staProtocol= devpThread.getStation().get(wrkMast.getStaNo()); |
| | | if (staProtocol == null) { |
| | | return; |
| | | } else { |
| | | staProtocol = staProtocol.clone(); |
| | | } |
| | | if(staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() == 0) { |
| | | staProtocol.setWorkNo(wrkMast.getWrkNo()); |
| | | staProtocol.setStaNo(wrkMast.getSourceStaNo().shortValue()); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp,1, new Task(2, staProtocol)); |
| | | log.info("入库请求底座------"); |
| | | } |
| | | } |
| | | } |
| | | } |