| | |
| | | // ReadWriteEntity mesReplyEntity = miloService.readFromOpcUa("DLP1A.DLP1A.MesReply"); |
| | | // if ("1".equals(mesReplyEntity.getValue() + "")) { |
| | | String mesReplyEntity = s7DataDLPOne.getMesReply().toString(); |
| | | if (!"1".equals(mesReplyEntity)) { |
| | | if ("1".equals(mesReplyEntity)) { |
| | | log.info("有正在执行的任务,结束进片任务"); |
| | | return; |
| | | } |
| | |
| | | // ReadWriteEntity fromOpcUa = miloService.readFromOpcUa("DLP1A.DLP1A.FROM1"); |
| | | String fromOpcUa = s7DataDLPOne.getFrom1().toString(); |
| | | |
| | | List<Short> states = s7DataDLPOne.getStates(); |
| | | List<String> ids = s7DataDLPOne.getIds(); |
| | | List<String> glassIdList = new ArrayList<>(); |
| | | for (int i = 1; i <= 6; i++) { |
| | | for (int i = 0; i < 6; i++) { |
| | | // ReadWriteEntity requestWord = miloService.readFromOpcUa("DLP1A.DLP1A.DI" + i); |
| | | String requestWord = states.get(i).toString(); |
| | | String requestWord = ids.get(i); |
| | | // if (null != requestWord.getValue()) { |
| | | if (null != requestWord) { |
| | | if (null != requestWord && !requestWord.isEmpty()) { |
| | | BigStorageCageTask task = new BigStorageCageTask(); |
| | | // task.setGlassId(requestWord.getValue() + ""); |
| | | task.setGlassId(requestWord); |
| | |
| | | //向plc发送报警:当前大车进片玻璃数量与mes读取到的数量不匹配 |
| | | // miloService.writeToOpcWord(generateReadWriteEntity("DLP1A.DLP1A.alarmSignal", 1)); |
| | | s7DataDLPOne = new S7DataDLPOne(); |
| | | s7DataDLPOne.setAlramSignal((short) 1); |
| | | s7DataDLPOne.setAlarmSignal(1); |
| | | s7SerializerDLPOne.write(s7DataDLPOne); |
| | | return; |
| | | } |
| | |
| | | //向plc发送报警:同一车进片玻璃存在相同 |
| | | // miloService.writeToOpcWord(generateReadWriteEntity("DLP1A.DLP1A.alarmSignal", 2)); |
| | | s7DataDLPOne = new S7DataDLPOne(); |
| | | s7DataDLPOne.setAlramSignal((short) 2); |
| | | s7DataDLPOne.setAlarmSignal(2); |
| | | s7SerializerDLPOne.write(s7DataDLPOne); |
| | | return; |
| | | } |
| | |
| | | //向plc发送报警:理片笼存在相同的进片玻璃 |
| | | // miloService.writeToOpcWord(generateReadWriteEntity("DLP1A.DLP1A.alarmSignal", 4)); |
| | | s7DataDLPOne = new S7DataDLPOne(); |
| | | s7DataDLPOne.setAlramSignal((short) 4); |
| | | s7DataDLPOne.setAlarmSignal(4); |
| | | s7SerializerDLPOne.write(s7DataDLPOne); |
| | | return; |
| | | } |
| | |
| | | //向plc发送报警:进片任务数量与系统查询到的玻璃数量不匹配 |
| | | // miloService.writeToOpcWord(generateReadWriteEntity("DLP1A.DLP1A.alarmSignal", 8)); |
| | | s7DataDLPOne = new S7DataDLPOne(); |
| | | s7DataDLPOne.setAlramSignal((short) 8); |
| | | s7DataDLPOne.setAlarmSignal(8); |
| | | s7SerializerDLPOne.write(s7DataDLPOne); |
| | | return; |
| | | } |
| | |
| | | //向plc发送报警:笼内格子剩余数量不足 |
| | | // miloService.writeToOpcWord(generateReadWriteEntity("DLP1A.DLP1A.alarmSignal", 16)); |
| | | s7DataDLPOne = new S7DataDLPOne(); |
| | | s7DataDLPOne.setAlramSignal((short) 16); |
| | | s7DataDLPOne.setAlarmSignal(16); |
| | | s7SerializerDLPOne.write(s7DataDLPOne); |
| | | return; |
| | | } |
| | |
| | | //向plc发送报警:直通片台存在玻璃,无法继续直通 |
| | | // miloService.writeToOpcWord(generateReadWriteEntity("DLP1A.DLP1A.alarmSignal", 64)); |
| | | s7DataDLPOne = new S7DataDLPOne(); |
| | | s7DataDLPOne.setAlramSignal((short) 64); |
| | | s7DataDLPOne.setAlarmSignal(64); |
| | | s7SerializerDLPOne.write(s7DataDLPOne); |
| | | return; |
| | | } |
| | |
| | | .eq(BigStorageCage::getSlot, bigStorageDTO.getSlot())); |
| | | task.setTargetSlot(bigStorageDTO.getSlot()); |
| | | task.setGlassId(info.getGlassId()); |
| | | bigStorageCageTaskService.updateTaskMessage("big_storage_cage_in_one_task", task); |
| | | // bigStorageCageTaskService.updateTaskMessage("big_storage_cage_in_one_task", task); |
| | | //存放历史任务 |
| | | BigStorageCageHistoryTask historyTask = new BigStorageCageHistoryTask(); |
| | | BeanUtils.copyProperties(task, historyTask); |
| | |
| | | } else { |
| | | BigStorageCageTask task = inTaskList.get(0); |
| | | task.setTargetSlot(THROUGH_SLOT); |
| | | bigStorageCageTaskService.updateTaskMessage("big_storage_cage_in_one_task", task); |
| | | // bigStorageCageTaskService.updateTaskMessage("big_storage_cage_in_one_task", task); |
| | | //存放历史任务 |
| | | BigStorageCageHistoryTask historyTask = new BigStorageCageHistoryTask(); |
| | | BeanUtils.copyProperties(task, historyTask); |
| | |
| | | // list.add(generateReadWriteEntity("DLP1A.DLP1A.MesReply", 1)); |
| | | // miloService.writeToOpcWord(list); |
| | | s7DataDLPOne = new S7DataDLPOne(); |
| | | for (int i = 0; i < inTaskList.size() && i < 6; i++) { |
| | | short value = (short) Integer.parseInt(inTaskList.get(i).getTargetSlot().toString()); |
| | | for (int i = 0; i < inTaskList.size(); i++) { |
| | | Integer value = Integer.parseInt(inTaskList.get(i).getTargetSlot().toString()); |
| | | switch (i) { |
| | | case 0: |
| | | s7DataDLPOne.setTo1(value); |
| | |
| | | } |
| | | } |
| | | s7SerializerDLPOne.write(s7DataDLPOne); |
| | | |
| | | s7DataDLPOne = new S7DataDLPOne(); |
| | | s7DataDLPOne.setMesReply(1); |
| | | s7SerializerDLPOne.write(s7DataDLPOne); |
| | | } |
| | | |
| | | @Scheduled(fixedDelay = 1000) |
| | |
| | | return; |
| | | } |
| | | //获取出片任务表 |
| | | List<BigStorageCageTask> outTaskList = bigStorageCageTaskService.queryTaskMessage("big_storage_cage_out_one_task"); |
| | | List<BigStorageCageTask> outTaskList = getOutTaskList(s7DataWLTwo); |
| | | // List<BigStorageCageTask> outTaskList = bigStorageCageTaskService.queryTaskMessage("big_storage_cage_out_one_task"); |
| | | if (CollectionUtil.isNotEmpty(outTaskList)) { |
| | | log.info("有正在执行的出片任务,结束本次出片任务"); |
| | | return; |
| | |
| | | log.info("完成任务已执行,结束本次完成进片任务"); |
| | | return; |
| | | } |
| | | for (int i = 1; i <= 6; i++) { |
| | | for (int i = 0; i < 6; i++) { |
| | | // ReadWriteEntity requestWord = miloService.readFromOpcUa("DLP1A.DLP1A.DI" + i); |
| | | // ReadWriteEntity statetWord = miloService.readFromOpcUa("DLP1A.DLP1A.STATE" + i); |
| | | // ReadWriteEntity toOpcUa = miloService.readFromOpcUa("DLP1A.DLP1A.TO" + i); |
| | |
| | | String fromOpcUa = ""; |
| | | switch (i) { |
| | | case 0: |
| | | requestWord = s7DataDLPOne.getId1().toString(); |
| | | requestWord = s7DataDLPOne.getId1(); |
| | | statetWord = s7DataDLPOne.getState1().toString(); |
| | | toOpcUa = s7DataDLPOne.getTo1().toString(); |
| | | fromOpcUa = s7DataDLPOne.getFrom1().toString(); |
| | | break; |
| | | case 1: |
| | | requestWord = s7DataDLPOne.getId2().toString(); |
| | | requestWord = s7DataDLPOne.getId2(); |
| | | statetWord = s7DataDLPOne.getState2().toString(); |
| | | toOpcUa = s7DataDLPOne.getTo2().toString(); |
| | | fromOpcUa = s7DataDLPOne.getFrom2().toString(); |
| | | break; |
| | | case 2: |
| | | requestWord = s7DataDLPOne.getId3().toString(); |
| | | requestWord = s7DataDLPOne.getId3(); |
| | | statetWord = s7DataDLPOne.getState3().toString(); |
| | | toOpcUa = s7DataDLPOne.getTo3().toString(); |
| | | fromOpcUa = s7DataDLPOne.getFrom3().toString(); |
| | | break; |
| | | case 3: |
| | | requestWord = s7DataDLPOne.getId4().toString(); |
| | | requestWord = s7DataDLPOne.getId4(); |
| | | statetWord = s7DataDLPOne.getState4().toString(); |
| | | toOpcUa = s7DataDLPOne.getTo4().toString(); |
| | | fromOpcUa = s7DataDLPOne.getFrom4().toString(); |
| | | break; |
| | | case 4: |
| | | requestWord = s7DataDLPOne.getId5().toString(); |
| | | requestWord = s7DataDLPOne.getId5(); |
| | | statetWord = s7DataDLPOne.getState5().toString(); |
| | | toOpcUa = s7DataDLPOne.getTo5().toString(); |
| | | fromOpcUa = s7DataDLPOne.getFrom5().toString(); |
| | | break; |
| | | case 5: |
| | | requestWord = s7DataDLPOne.getId6().toString(); |
| | | requestWord = s7DataDLPOne.getId6(); |
| | | statetWord = s7DataDLPOne.getState6().toString(); |
| | | toOpcUa = s7DataDLPOne.getTo6().toString(); |
| | | fromOpcUa = s7DataDLPOne.getFrom6().toString(); |
| | |
| | | } |
| | | |
| | | // if (null != requestWord.getValue()) { |
| | | if (null != requestWord) { |
| | | if (!requestWord.isEmpty()) { |
| | | BigStorageCageTask task = new BigStorageCageTask(); |
| | | // task.setGlassId(requestWord.getValue() + ""); |
| | | // task.setTargetSlot(Integer.parseInt(toOpcUa.getValue() + "")); |
| | |
| | | .eq(BigStorageCageHistoryTask::getGlassId, item.getGlassId())); |
| | | item.setTargetSlot(0); |
| | | //清空任务表数据 |
| | | bigStorageCageTaskService.updateTaskMessage("big_storage_cage_in_one_task", item); |
| | | // bigStorageCageTaskService.updateTaskMessage("big_storage_cage_in_one_task", item); |
| | | } |
| | | //清空启动状态 |
| | | //向opc发送启动信号 |
| | |
| | | // } |
| | | // list.add(generateReadWriteEntity("DLP1A.DLP1A.MesReply", 0)); |
| | | // miloService.writeToOpcWord(list); |
| | | s7DataDLPOne =new S7DataDLPOne(); |
| | | s7DataDLPOne.setTo1((short)0); |
| | | s7DataDLPOne.setTo2((short)0); |
| | | s7DataDLPOne.setTo3((short)0); |
| | | s7DataDLPOne.setTo4((short)0); |
| | | s7DataDLPOne.setTo5((short)0); |
| | | s7DataDLPOne.setTo6((short)0); |
| | | s7DataDLPOne.setMesReply((short)0); |
| | | s7DataDLPOne = new S7DataDLPOne(); |
| | | s7DataDLPOne.setTo1(0); |
| | | s7DataDLPOne.setTo2(0); |
| | | s7DataDLPOne.setTo3(0); |
| | | s7DataDLPOne.setTo4(0); |
| | | s7DataDLPOne.setTo5(0); |
| | | s7DataDLPOne.setTo6(0); |
| | | s7DataDLPOne.setMesReply(0); |
| | | s7SerializerDLPOne.write(s7DataDLPOne); |
| | | } |
| | | |
| | |
| | | log.info("当前为非联机状态,结束完成出片任务"); |
| | | return; |
| | | } |
| | | //获取进片任务表 |
| | | List<BigStorageCageTask> outTaskList = bigStorageCageTaskService.queryTaskMessage("big_storage_cage_out_one_task"); |
| | | //获取出片任务表 |
| | | List<BigStorageCageTask> outTaskList = getOutTaskList(s7DataWLTwo); |
| | | // List<BigStorageCageTask> outTaskList = bigStorageCageTaskService.queryTaskMessage("big_storage_cage_out_one_task"); |
| | | if (CollectionUtil.isEmpty(outTaskList)) { |
| | | log.info("当前大车无进片玻璃,结束完成进片任务"); |
| | | return; |
| | |
| | | } |
| | | } |
| | | // 重置任务表数据 |
| | | bigStorageCageTaskService.updateOutTaskMessage("big_storage_cage_out_one_task"); |
| | | // bigStorageCageTaskService.updateOutTaskMessage("big_storage_cage_out_one_task"); |
| | | resetOutTask(); |
| | | //清空启动状态 |
| | | //向opc发送启动信号 |
| | | // miloService.writeToOpcWord(generateReadWriteEntity("DLP1B.DLP1B.MesReply", 0)); |
| | | S7DataDLPTwo s7DataDLPTwo=new S7DataDLPTwo(); |
| | | s7DataDLPTwo.setMesReply((short)0); |
| | | S7DataDLPTwo s7DataDLPTwo = new S7DataDLPTwo(); |
| | | s7DataDLPTwo.setMesReply(0); |
| | | s7SerializerDLPTwo.write(s7DataDLPTwo); |
| | | } |
| | | |
| | |
| | | List<String> glassIds = bigStorageCageTaskList.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList()); |
| | | int glassCount = bigStorageCageTaskList.size(); |
| | | //生成出片任务条数不足6补全 |
| | | while (bigStorageCageTaskList.size() < 6) { |
| | | bigStorageCageTaskList.add(new BigStorageCageTask("", 0, 0, 0)); |
| | | } |
| | | // while (bigStorageCageTaskList.size() < 6) { |
| | | // bigStorageCageTaskList.add(new BigStorageCageTask("", 0, 0, 0)); |
| | | // } |
| | | //清空任务表数据 |
| | | bigStorageCageTaskService.removeAll("big_storage_cage_out_one_task"); |
| | | bigStorageCageTaskService.saveTaskMessage(tableName, bigStorageCageTaskList); |
| | | resetOutTask(); |
| | | S7DataDLPTwo s7DataDLPTwo = new S7DataDLPTwo(); |
| | | for (int i = 0; i < bigStorageCageTaskList.size() && i < 6; i++) { |
| | | String glassId = bigStorageCageTaskList.get(i).getGlassId(); |
| | | Integer startSlot = bigStorageCageTaskList.get(i).getStartSlot(); |
| | | Integer target = bigStorageCageTaskList.get(i).getTargetSlot(); |
| | | if (startSlot > 0) { |
| | | switch (i) { |
| | | case 0: |
| | | s7DataDLPTwo.setId1(glassId); |
| | | s7DataDLPTwo.setFrom1(startSlot); |
| | | s7DataDLPTwo.setTo1(target); |
| | | break; |
| | | case 1: |
| | | s7DataDLPTwo.setId2(glassId); |
| | | s7DataDLPTwo.setFrom2(startSlot); |
| | | s7DataDLPTwo.setTo2(target); |
| | | break; |
| | | case 2: |
| | | s7DataDLPTwo.setId3(glassId); |
| | | s7DataDLPTwo.setFrom3(startSlot); |
| | | s7DataDLPTwo.setTo3(target); |
| | | break; |
| | | case 3: |
| | | s7DataDLPTwo.setId4(glassId); |
| | | s7DataDLPTwo.setFrom4(startSlot); |
| | | s7DataDLPTwo.setTo4(target); |
| | | break; |
| | | case 4: |
| | | s7DataDLPTwo.setId5(glassId); |
| | | s7DataDLPTwo.setFrom5(startSlot); |
| | | s7DataDLPTwo.setTo5(target); |
| | | break; |
| | | case 5: |
| | | s7DataDLPTwo.setId6(glassId); |
| | | s7DataDLPTwo.setFrom6(startSlot); |
| | | s7DataDLPTwo.setTo6(target); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | s7SerializerDLPTwo.write(s7DataDLPTwo); |
| | | // bigStorageCageTaskService.removeAll("big_storage_cage_out_one_task"); |
| | | // bigStorageCageTaskService.saveTaskMessage(tableName, bigStorageCageTaskList); |
| | | List<BigStorageCageHistoryTask> historyList = bigStorageCageTaskList.stream().filter(e -> StringUtils.isNotBlank(e.getGlassId())).map(e -> { |
| | | BigStorageCageHistoryTask history = new BigStorageCageHistoryTask(); |
| | | BeanUtils.copyProperties(e, history); |
| | |
| | | .in(BigStorageCageDetails::getGlassId, glassIds)); |
| | | try { |
| | | // miloService.writeToOpcWord(generateReadWriteEntity("DLP1B.DLP1B.MesReply", 1)); |
| | | S7DataDLPTwo s7DataDLPTwo=new S7DataDLPTwo(); |
| | | s7DataDLPTwo.setMesReply((short)1); |
| | | s7DataDLPTwo = new S7DataDLPTwo(); |
| | | s7DataDLPTwo.setMesReply(1); |
| | | s7SerializerDLPTwo.write(s7DataDLPTwo); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | |
| | | .in(BigStorageCageDetails::getGlassId, glassIds)); |
| | | try { |
| | | // miloService.writeToOpcWord(generateReadWriteEntity("DLP1B.DLP1B.MesReply", 1)); |
| | | S7DataDLPTwo s7DataDLPTwo=new S7DataDLPTwo(); |
| | | s7DataDLPTwo.setMesReply((short)1); |
| | | S7DataDLPTwo s7DataDLPTwo = new S7DataDLPTwo(); |
| | | s7DataDLPTwo.setMesReply(1); |
| | | s7SerializerDLPTwo.write(s7DataDLPTwo); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | |
| | | .value(value) |
| | | .build(); |
| | | } |
| | | |
| | | //重置任务表 |
| | | private void resetOutTask() { |
| | | S7DataDLPTwo s7DataDLPTwo = new S7DataDLPTwo(); |
| | | s7DataDLPTwo.setId1(""); |
| | | s7DataDLPTwo.setId2(""); |
| | | s7DataDLPTwo.setId3(""); |
| | | s7DataDLPTwo.setId4(""); |
| | | s7DataDLPTwo.setId5(""); |
| | | s7DataDLPTwo.setId6(""); |
| | | s7DataDLPTwo.setFrom1(0); |
| | | s7DataDLPTwo.setFrom2(0); |
| | | s7DataDLPTwo.setFrom3(0); |
| | | s7DataDLPTwo.setFrom4(0); |
| | | s7DataDLPTwo.setFrom5(0); |
| | | s7DataDLPTwo.setFrom6(0); |
| | | s7DataDLPTwo.setTo1(0); |
| | | s7DataDLPTwo.setTo2(0); |
| | | s7DataDLPTwo.setTo3(0); |
| | | s7DataDLPTwo.setTo4(0); |
| | | s7DataDLPTwo.setTo5(0); |
| | | s7DataDLPTwo.setTo6(0); |
| | | s7DataDLPTwo.setState1(0); |
| | | s7DataDLPTwo.setState2(0); |
| | | s7DataDLPTwo.setState3(0); |
| | | s7DataDLPTwo.setState4(0); |
| | | s7DataDLPTwo.setState5(0); |
| | | s7DataDLPTwo.setState6(0); |
| | | s7SerializerDLPTwo.write(s7DataDLPTwo); |
| | | } |
| | | |
| | | //读取出片地址 |
| | | private List<BigStorageCageTask> getOutTaskList(S7DataDLPTwo s7DataDLPTwo) { |
| | | List<BigStorageCageTask> outTaskList = new ArrayList<>(); |
| | | List<String> glassIds = s7DataDLPTwo.getIds(); |
| | | List<Integer> startSlots = s7DataDLPTwo.getFroms(); |
| | | List<Integer> endSlots = s7DataDLPTwo.getTos(); |
| | | List<Integer> states = s7DataDLPTwo.getStates(); |
| | | for (int i = 0; i < 6; i++) { |
| | | if (glassIds.get(i) != null && !glassIds.get(i).isEmpty()) { |
| | | BigStorageCageTask bigStorageCageTask = new BigStorageCageTask(); |
| | | bigStorageCageTask.setGlassId(glassIds.get(i)); |
| | | bigStorageCageTask.setStartSlot(startSlots.get(i)); |
| | | bigStorageCageTask.setTargetSlot(endSlots.get(i)); |
| | | bigStorageCageTask.setTaskState(states.get(i)); |
| | | outTaskList.add(bigStorageCageTask); |
| | | } |
| | | } |
| | | return outTaskList; |
| | | } |
| | | } |