| | |
| | | import cn.hutool.core.collection.CollectionUtil; |
| | | import cn.hutool.json.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.github.xingshuangs.iot.protocol.modbus.service.ModbusTcp; |
| | | import com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer; |
| | | import com.kangaroohy.milo.model.ReadWriteEntity; |
| | | import com.kangaroohy.milo.service.MiloService; |
| | |
| | | import com.mes.largenscreen.entity.RunTime; |
| | | import com.mes.s7.entity.S7DataZKDLPOne; |
| | | import com.mes.s7.entity.S7DataZKDLPTwo; |
| | | import com.mes.s7.entity.S7DataZKExtra; |
| | | import com.mes.tools.WebSocketServer; |
| | | import com.mes.utils.RedisUtil; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | @Qualifier("s7SerializerZKDLPTwo") |
| | | private S7Serializer s7SerializerZKDLPTwo; |
| | | |
| | | @Autowired |
| | | @Qualifier("s7SerializerZKQ2") |
| | | private S7Serializer s7SerializerZKQ2; |
| | | |
| | | @Autowired |
| | | @Qualifier("CMJ1ModbusTcp") |
| | | ModbusTcp CMJ1ModbusTcp; |
| | | |
| | | @Autowired |
| | | @Qualifier("CMJ2ModbusTcp") |
| | | ModbusTcp CMJ2ModbusTcp; |
| | | |
| | | private Integer offset = 40001; |
| | | |
| | | @Resource |
| | | RedisUtil redisUtil; |
| | | |
| | | @Scheduled(fixedDelay = 5000) |
| | | public void hollowGlassTaskOne() { |
| | | hollowGlassTaskChild(930, "CMJ1.CMJ1.isFree", "HollowGlassOne"); |
| | | hollowGlassTaskChild(930, CMJ1ModbusTcp.readUInt16(42027 - offset) + "", "HollowGlassOne"); |
| | | } |
| | | |
| | | @Scheduled(fixedDelay = 5000) |
| | | public void hollowGlassTaskTwo() { |
| | | hollowGlassTaskChild(931, "ZKQ2.ZKQ2.isFree", "HollowGlassTwo"); |
| | | S7DataZKExtra s7DataZKExtra = s7SerializerZKQ2.read(S7DataZKExtra.class); |
| | | hollowGlassTaskChild(931, (s7DataZKExtra.getIsFree() ? 1 : 0) + "", "HollowGlassTwo"); |
| | | } |
| | | |
| | | @Scheduled(fixedDelay = 5000) |
| | | public void hollowGlassTaskThree() { |
| | | S7DataZKExtra s7DataZKExtra = s7SerializerZKQ2.read(S7DataZKExtra.class); |
| | | //todo:暂无三线的空闲状态信号,临时标签空闲状态 |
| | | hollowGlassTaskChild(932, "ZKQ3.ZKQ3.isFree", "HollowGlassThree"); |
| | | hollowGlassTaskChild(932, (s7DataZKExtra.getIsFree03() ? 1 : 0) + "", "HollowGlassThree"); |
| | | } |
| | | |
| | | public void hollowGlassTaskChild(int cell, String isFreeTag, String websocketName) { |
| | |
| | | List<HollowGlassQueueInfo> list = hollowGlassQueueInfoService.list(new LambdaQueryWrapper<HollowGlassQueueInfo>().in(HollowGlassQueueInfo::getRelationId, taskIdList)); |
| | | jsonObject.append("queueInfo", list); |
| | | } |
| | | |
| | | try { |
| | | //930空闲信号 |
| | | ReadWriteEntity freeOneRequestEntity = miloService.readFromOpcUa(isFreeTag); |
| | | jsonObject.append("freeRequest", freeOneRequestEntity.getValue()); |
| | | jsonObject.append("freeRequest", isFreeTag); |
| | | } catch (Exception e) { |
| | | log.error("opc存在异常", e); |
| | | } |
| | |
| | | public void queryDataSource1(JSONObject jsonObject) throws Exception { |
| | | S7DataZKDLPOne s7DataZKDLPOne = s7SerializerZKDLPOne.read(S7DataZKDLPOne.class); |
| | | S7DataZKDLPTwo s7DataZKDLPTwo = s7SerializerZKDLPTwo.read(S7DataZKDLPTwo.class); |
| | | S7DataZKExtra s7DataZKExtra = s7SerializerZKQ2.read(S7DataZKExtra.class); |
| | | List<Double> carPostion = new ArrayList<>(); |
| | | carPostion.add(0.25); |
| | | carPostion.add(0.5); |
| | |
| | | List<BigStorageTaskVO> inTaskList = new ArrayList(); |
| | | // ReadWriteEntity fromOpcUa = miloService.readFromOpcUa("DLP2A.DLP2A.FROM1"); |
| | | String fromOpcUa = s7DataZKDLPOne.getFrom1().toString(); |
| | | for (int i = 1; i <= 6; i++) { |
| | | for (int i = 0; i < 6; i++) { |
| | | // ReadWriteEntity requestWord = miloService.readFromOpcUa("DLP2A.DLP2A.DI" + i); |
| | | // ReadWriteEntity targetSlotWord = miloService.readFromOpcUa("DLP2A.DLP2A.TO" + i); |
| | | // ReadWriteEntity stateWord = miloService.readFromOpcUa("DLP2A.DLP2A.STATE" + i); |
| | |
| | | String targetSlotWord = ""; |
| | | switch (i) { |
| | | case 0: |
| | | requestWord = s7DataZKDLPOne.getId1().toString(); |
| | | requestWord = s7DataZKDLPOne.getId1(); |
| | | stateWord = s7DataZKDLPOne.getState1().toString(); |
| | | targetSlotWord = s7DataZKDLPOne.getTo1().toString(); |
| | | break; |
| | | case 1: |
| | | requestWord = s7DataZKDLPOne.getId2().toString(); |
| | | requestWord = s7DataZKDLPOne.getId2(); |
| | | stateWord = s7DataZKDLPOne.getState2().toString(); |
| | | targetSlotWord = s7DataZKDLPOne.getTo2().toString(); |
| | | break; |
| | | case 2: |
| | | requestWord = s7DataZKDLPOne.getId3().toString(); |
| | | requestWord = s7DataZKDLPOne.getId3(); |
| | | stateWord = s7DataZKDLPOne.getState3().toString(); |
| | | targetSlotWord = s7DataZKDLPOne.getTo3().toString(); |
| | | break; |
| | | case 3: |
| | | requestWord = s7DataZKDLPOne.getId4().toString(); |
| | | requestWord = s7DataZKDLPOne.getId4(); |
| | | stateWord = s7DataZKDLPOne.getState4().toString(); |
| | | targetSlotWord = s7DataZKDLPOne.getTo4().toString(); |
| | | break; |
| | | case 4: |
| | | requestWord = s7DataZKDLPOne.getId5().toString(); |
| | | requestWord = s7DataZKDLPOne.getId5(); |
| | | stateWord = s7DataZKDLPOne.getState5().toString(); |
| | | targetSlotWord = s7DataZKDLPOne.getTo5().toString(); |
| | | break; |
| | | case 5: |
| | | requestWord = s7DataZKDLPOne.getId6().toString(); |
| | | requestWord = s7DataZKDLPOne.getId6(); |
| | | stateWord = s7DataZKDLPOne.getState6().toString(); |
| | | targetSlotWord = s7DataZKDLPOne.getTo6().toString(); |
| | | break; |
| | |
| | | String outRequestEntity = s7DataZKDLPTwo.getRequestMes().toString(); |
| | | jsonObject.append("outInkageEntity", outInkageEntity); |
| | | //930空闲信号 |
| | | ReadWriteEntity freeOneRequestEntity = miloService.readFromOpcUa("CMJ1.CMJ1.isFree"); |
| | | jsonObject.append("freeOneRequestEntity", freeOneRequestEntity.getValue()); |
| | | // ReadWriteEntity freeOneRequestEntity = miloService.readFromOpcUa("CMJ1.CMJ1.isFree"); |
| | | // jsonObject.append("freeOneRequestEntity", freeOneRequestEntity.getValue()); |
| | | jsonObject.append("freeOneRequestEntity", CMJ1ModbusTcp.readUInt16(42027 - offset)); |
| | | //931空闲信号 |
| | | ReadWriteEntity freeTwoRequestEntity = miloService.readFromOpcUa("ZKQ2.ZKQ2.isFree"); |
| | | jsonObject.append("freeTwoRequestEntity", freeTwoRequestEntity.getValue()); |
| | | // ReadWriteEntity freeTwoRequestEntity = miloService.readFromOpcUa("ZKQ2.ZKQ2.isFree"); |
| | | // jsonObject.append("freeTwoRequestEntity", freeTwoRequestEntity.getValue()); |
| | | jsonObject.append("freeTwoRequestEntity", s7DataZKExtra.getIsFree()); |
| | | //932空闲信号 |
| | | ReadWriteEntity freeThreeRequestEntity = miloService.readFromOpcUa("ZKQ3.ZKQ3.isFree"); |
| | | jsonObject.append("freeThreeRequestEntity", freeThreeRequestEntity.getValue()); |
| | | // ReadWriteEntity freeThreeRequestEntity = miloService.readFromOpcUa("ZKQ3.ZKQ3.isFree"); |
| | | // jsonObject.append("freeThreeRequestEntity", freeThreeRequestEntity.getValue()); |
| | | jsonObject.append("freeThreeRequestEntity", s7DataZKExtra.getIsFree()); |
| | | } catch (Exception e) { |
| | | //todo:不做任务处理 |
| | | } |
| | | |
| | | //出片任务数据 |
| | | List<BigStorageCageTask> outTaskList = bigStorageCageTaskService.queryTaskMessage("big_storage_cage_out_two_task"); |
| | | // List<BigStorageCageTask> outTaskList = bigStorageCageTaskService.queryTaskMessage("big_storage_cage_out_two_task"); |
| | | // jsonObject.append("bigStorageCageDetailsOutTask", outTaskList); |
| | | List<BigStorageCageTask> outTaskList = new ArrayList<>(); |
| | | for (int i = 0; i < 6; i++) { |
| | | |
| | | BigStorageCageTask bigStorageCageTask = new BigStorageCageTask(); |
| | | String glassId = ""; |
| | | Integer startSlot = 0; |
| | | Integer targetSlot = 0; |
| | | Integer taskState = 0; |
| | | switch (i) { |
| | | case 0: |
| | | glassId = s7DataZKDLPTwo.getId1(); |
| | | startSlot = s7DataZKDLPTwo.getFrom1(); |
| | | targetSlot = s7DataZKDLPTwo.getTo1(); |
| | | taskState = s7DataZKDLPTwo.getState1(); |
| | | ; |
| | | break; |
| | | case 1: |
| | | glassId = s7DataZKDLPTwo.getId2(); |
| | | startSlot = s7DataZKDLPTwo.getFrom2(); |
| | | targetSlot = s7DataZKDLPTwo.getTo2(); |
| | | taskState = s7DataZKDLPTwo.getState2(); |
| | | break; |
| | | case 2: |
| | | glassId = s7DataZKDLPTwo.getId3(); |
| | | startSlot = s7DataZKDLPTwo.getFrom3(); |
| | | targetSlot = s7DataZKDLPTwo.getTo3(); |
| | | taskState = s7DataZKDLPTwo.getState3(); |
| | | break; |
| | | case 3: |
| | | glassId = s7DataZKDLPTwo.getId4(); |
| | | startSlot = s7DataZKDLPTwo.getFrom4(); |
| | | targetSlot = s7DataZKDLPTwo.getTo4(); |
| | | taskState = s7DataZKDLPTwo.getState4(); |
| | | break; |
| | | case 4: |
| | | glassId = s7DataZKDLPTwo.getId5(); |
| | | startSlot = s7DataZKDLPTwo.getFrom5(); |
| | | targetSlot = s7DataZKDLPTwo.getTo5(); |
| | | taskState = s7DataZKDLPTwo.getState5(); |
| | | break; |
| | | case 5: |
| | | glassId = s7DataZKDLPTwo.getId6(); |
| | | startSlot = s7DataZKDLPTwo.getFrom6(); |
| | | targetSlot = s7DataZKDLPTwo.getTo6(); |
| | | taskState = s7DataZKDLPTwo.getState6(); |
| | | break; |
| | | } |
| | | bigStorageCageTask.setGlassId(glassId); |
| | | bigStorageCageTask.setStartSlot(startSlot); |
| | | bigStorageCageTask.setTargetSlot(targetSlot); |
| | | bigStorageCageTask.setTaskState(taskState); |
| | | outTaskList.add(bigStorageCageTask); |
| | | } |
| | | jsonObject.append("bigStorageCageDetailsOutTask", outTaskList); |
| | | |
| | | //调度开关 |