| | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.baomidou.mybatisplus.mapper.Wrapper; |
| | | import com.core.common.Cools; |
| | | import com.core.common.DateUtils; |
| | | import com.core.common.SpringUtils; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.mapper.*; |
| | |
| | | import com.zy.common.utils.CollectionUtils; |
| | | import com.zy.common.utils.HttpHandler; |
| | | import com.zy.common.utils.RedisUtil; |
| | | import com.zy.common.utils.RgvUtils; |
| | | import com.zy.core.CrnThread; |
| | | import com.zy.core.DevpThread; |
| | | import com.zy.core.cache.MessageQueue; |
| | |
| | | @Autowired |
| | | private LocMastService locMastService; |
| | | @Autowired |
| | | private StaDescService staDescService; |
| | | @Autowired |
| | | private BasCrnpService basCrnpService; |
| | | @Autowired |
| | | private BasRgvService basRgvService; |
| | |
| | | private BasRgvErrLogService basRgvErrLogService; |
| | | @Autowired |
| | | private BasRgvPathService basRgvPathService; |
| | | @Autowired |
| | | private RedisUtil redisUtil; |
| | | @Autowired |
| | | private WrkMastStaMapper wrkMastStaMapper; |
| | | @Autowired |
| | |
| | | } |
| | | //退库模式跳过118、119出库任务 |
| | | if (wrkMast.getStaNo()==118 || wrkMast.getStaNo()==119){ |
| | | RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign(); |
| | | RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("oneSign"); |
| | | if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){ |
| | | continue; |
| | | } |
| | |
| | | */ |
| | | public synchronized void storeEmptyPlt3() { |
| | | try{ |
| | | RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign(); |
| | | RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("oneSign"); |
| | | if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){ |
| | | return; |
| | | } |
| | |
| | | // return; |
| | | continue; |
| | | } |
| | | if (!rgvProtocol.getRgvPosI().equals(108) && !rgvProtocol.getRgvPosI().equals(119)){ |
| | | if (!rgvProtocol.getRgvPosI().equals(110) && !rgvProtocol.getRgvPosI().equals(108) && !rgvProtocol.getRgvPosI().equals(119)){ |
| | | continue; |
| | | } |
| | | Integer count108Y = wrkMastStaMapper.selectAllWrkCount108Y(); |
| | | if (count108Y==0){ |
| | | if (count108Y!=0){ |
| | | continue; |
| | | } |
| | | Integer count108 = wrkMastStaMapper.selectAllWrkCount108(); |
| | | if (count108==0){ |
| | | continue; |
| | | } |
| | | // Integer count108 = wrkMastStaMapper.selectAllWrkCount108(); |
| | | // if (count108!=0){ |
| | | // continue; |
| | | // } |
| | | rgvAvoidanceXY(rgvProtocol.getRgvNo()); |
| | | continue; |
| | | // BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); |
| | |
| | | rgvCommand.setTaskNo1((short)32222); // 工位1工作号 |
| | | rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 工位1任务模式: 回原点 |
| | | //basRgvMap.getLockStartRoute().shortValue() |
| | | rgvCommand.setSourceStaNo1( (short)107); |
| | | rgvCommand.setSourceStaNo1( (short)104); |
| | | rgvCommand.setCommand((short) 1); //工位1任务确认 |
| | | if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) { |
| | | //step=2,工位1、2写任务; step=4,工位1写任务; step=5,工位2写任务 step=9,回原点 9999任务号 |
| | |
| | | rgvCommand.setAckFinish2((short) 0); // 工位2任务完成确认位 |
| | | rgvCommand.setTaskNo2((short)32222); // 工位2工作号 |
| | | rgvCommand.setTaskMode2(RgvTaskModeType.X_MOVE); // 工位2任务模式: 回原点 |
| | | rgvCommand.setSourceStaNo2((short)113); |
| | | rgvCommand.setSourceStaNo2((short)114); |
| | | rgvCommand.setCommand((short) 2); //工位2任务确认 |
| | | if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) { |
| | | //step=2,工位1、2写任务; step=4,工位1写任务; step=5,工位2写任务 step=9,回原点 9999任务号 |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * ste充电任务创建 //完成 |
| | | */ |
| | | public synchronized void armNoStartTwoLo() { |
| | | int[] staNos =new int[]{215,219}; |
| | | for (int staNo : staNos){ |
| | | try{ |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2); |
| | | StaProtocol staProtocol = devpThread.getStation().get(staNo); |
| | | if (staProtocol == null) { |
| | | continue; |
| | | } else { |
| | | staProtocol = staProtocol.clone(); |
| | | } |
| | | |
| | | if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() == 0){ |
| | | RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("armNo"+staNo); |
| | | if (!Cools.isEmpty(rgvOneSign) && rgvOneSign.getRgvOneSign() == 1){ |
| | | int workNo = commonService.getWorkNo(6); |
| | | StaProtocol staProtocolnew = new StaProtocol(); |
| | | staProtocolnew.setSiteId(staNo); |
| | | staProtocolnew.setWorkNo(workNo); |
| | | staProtocolnew.setStaNo(staNo==215? 217:221); |
| | | boolean result2 = MessageQueue.offer(SlaveType.Devp, 2, new Task(2, staProtocolnew)); |
| | | if (!result2) { |
| | | log.error("发布命令至输送线队列失败!!! [plc编号:{}]", 2); |
| | | } |
| | | if (!staProtocol.isLoading()){ |
| | | updateRgvOneSign("armNo"+staNo,0); |
| | | } |
| | | } |
| | | } |
| | | }catch (Exception e){ |
| | | log.error("站点"+staNo+"2楼机械臂码垛后标记清除失败,异常信息:"+e); |
| | | } |
| | | } |
| | | } |
| | | |
| | | public synchronized void armNoCleanUpTwoLo() { |
| | | int[] staNos =new int[]{215,219}; |
| | | for (int staNo : staNos){ |
| | | try{ |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2); |
| | | StaProtocol staProtocol = devpThread.getStation().get(staNo); |
| | | if (staProtocol == null) { |
| | | continue; |
| | | } else { |
| | | staProtocol = staProtocol.clone(); |
| | | } |
| | | if (!staProtocol.isLoading()){ |
| | | updateRgvOneSign("armNo"+staNo,0); |
| | | } |
| | | }catch (Exception e){ |
| | | log.error("站点"+staNo+"2楼机械臂码垛后标记清除失败,异常信息:"+e); |
| | | } |
| | | } |
| | | } |
| | | |
| | | public void updateRgvOneSign(String signType,Integer oneSign){ |
| | | try{ |
| | | RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign(signType); |
| | | if (!Cools.isEmpty(rgvOneSign)){ |
| | | rgvOneSign.setRgvOneSign(oneSign); |
| | | rgvOneSignMapper.updateById(rgvOneSign); |
| | | } |
| | | } catch (Exception e){ |
| | | RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign(signType); |
| | | if (!Cools.isEmpty(rgvOneSign)){ |
| | | rgvOneSign.setRgvOneSign(999); |
| | | rgvOneSignMapper.updateById(rgvOneSign); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |