| | |
| | | import com.mes.edgstoragecage.service.EdgStorageCageService; |
| | | import com.mes.glassinfo.entity.GlassInfo; |
| | | import com.mes.glassinfo.service.GlassInfoService; |
| | | import com.mes.opctask.entity.EdgStorageDeviceTask; |
| | | import com.mes.opctask.entity.EdgStorageDeviceTaskHistory; |
| | | import com.mes.opctask.service.EdgStorageDeviceTaskHistoryService; |
| | | import com.mes.opctask.service.EdgStorageDeviceTaskService; |
| | |
| | | import com.mes.s7.entity.S7DataWL; |
| | | import com.mes.s7.entity.S7DataWLExtra; |
| | | import com.mes.sysconfig.service.SysConfigService; |
| | | import io.swagger.models.auth.In; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang.StringUtils; |
| | | import org.springframework.beans.BeanUtils; |
| | |
| | | public void startOneOpcTask() throws Exception { |
| | | S7DataWL s7DataWLTwo = s7SerializerWLTwo.read(S7DataWL.class); |
| | | S7DataWL s7DataWLOne = s7SerializerWLOne.read(S7DataWL.class); |
| | | log.info("二线卧理: {}", s7DataWLTwo); |
| | | log.info("一线卧理: {}", s7DataWLOne); |
| | | //获取第二条线路的卧式理片笼状态 |
| | | // ReadWriteEntity twoInkageEntity = miloService.readFromOpcUa("WL2.WL2.deviceState"); |
| | | Boolean twoInkageEntity = s7DataWLTwo.getDeviceState(); |
| | | // Boolean twoInkageEntity = Boolean.FALSE; |
| | | //默认只跑一台卧式理片,两条线路都可以走 |
| | | int cellFlag = 1; |
| | | //如果两条线都启动则只能跑一条线 |
| | |
| | | public void startTwoOpcTask() throws Exception { |
| | | S7DataWL s7DataWLOne = s7SerializerWLOne.read(S7DataWL.class); |
| | | S7DataWL s7DataWLTwo = s7SerializerWLTwo.read(S7DataWL.class); |
| | | log.info("一线卧理: {}", s7DataWLOne); |
| | | log.info("二线卧理: {}", s7DataWLTwo); |
| | | // ReadWriteEntity oneInkageEntity = miloService.readFromOpcUa("WL1.WL1.deviceState"); |
| | | Boolean oneInkageEntity = s7DataWLOne.getDeviceState(); |
| | | int cellFlag = 1; |
| | |
| | | // task.setTaskRunning(Const.GLASS_CACHE_TYPE_RUNNING); |
| | | // edgStorageDeviceTaskService.updateTaskMessage(tableName, task); |
| | | if (device == 2) { |
| | | s7SerializerWLTwo.write(S7DataWL.builder().taskRunning(Const.GLASS_CACHE_TYPE_RUNNING.shortValue()).build()); |
| | | task.setTaskRunning(Const.GLASS_CACHE_TYPE_RUNNING); |
| | | s7SerializerWLTwo.write(S7DataWL.builder().taskRunning(Const.GLASS_CACHE_TYPE_RUNNING).build()); |
| | | } else { |
| | | s7SerializerWLOne.write(S7DataWL.builder().taskRunning(Const.GLASS_CACHE_TYPE_RUNNING.shortValue()).build()); |
| | | task.setTaskRunning(Const.GLASS_CACHE_TYPE_RUNNING); |
| | | s7SerializerWLOne.write(S7DataWL.builder().taskRunning(Const.GLASS_CACHE_TYPE_RUNNING).build()); |
| | | } |
| | | |
| | | } else if (request == 5) { |
| | |
| | | // String glassId = task.getGlassId(); |
| | | S7DataWL s7DataWLOne = s7SerializerWLOne.read(S7DataWL.class); |
| | | String glassId = s7DataWLOne.getGlassId(); |
| | | log.info("1号线玻璃id{},历史id{}", glassId, glassIdOne); |
| | | if (StringUtils.isBlank(glassId) || glassId.equals(glassIdOne)) { |
| | | log.info("{}号线磨边前玻璃未就位,结束本次任务", 1); |
| | | return; |
| | |
| | | // EdgStorageDeviceTask task = edgStorageDeviceTaskService.queryTaskMessage(EDG_STORAGE_DEVICE_TWO_TASK); |
| | | // String glassId = task.getGlassId(); |
| | | S7DataWL s7DataWLTwo = s7SerializerWLTwo.read(S7DataWL.class); |
| | | // S7DataMB s7DataMB = s7SerializerMBOne.read(S7DataMB.class); |
| | | // log.info("磨边数据{}", s7DataMB); |
| | | String glassId = s7DataWLTwo.getGlassId(); |
| | | log.info("2号线玻璃id{},历史id{}", glassId, glassIdTwo); |
| | | if (StringUtils.isBlank(glassId) || glassId.equals(glassIdTwo)) { |
| | | log.info("{}号线磨边前玻璃未就位,结束本次任务", 2); |
| | | return; |
| | |
| | | // |
| | | // miloService.writeToOpcUa(list); |
| | | // miloService.writeToOpcWord(generateReadWriteEntity("MB" + cell + ".MB" + cell + ".thickness", (int) glassInfo.getThickness() * ratio)); |
| | | |
| | | S7DataMB s7DataMB = new S7DataMB(); |
| | | s7DataMB.setToEdingId(Integer.parseInt(toEndingId)); |
| | | s7DataMB.setGlassId(Integer.parseInt(toEndingId)); |
| | | s7DataMB.setWidth((int) Math.max(glassInfo.getWidth() * ratio, glassInfo.getHeight() * ratio)); |
| | | s7DataMB.setHeight((int) Math.min(glassInfo.getWidth() * ratio, glassInfo.getHeight() * ratio)); |
| | | s7SerializerMBOne.write(s7DataMB); |
| | | |
| | | log.info("玻璃id:{},{}线向PLC发送宽高数据{}", glassId, cell, s7DataMB); |
| | | if (cell == 1) { |
| | | s7SerializerMBOne.write(s7DataMB); |
| | | } else { |
| | | s7SerializerMBTwo.write(s7DataMB); |
| | | } |
| | | s7DataMB = new S7DataMB(); |
| | | s7DataMB.setThickness((short) (glassInfo.getThickness() * ratio)); |
| | | s7DataMB.setThickness((int) (glassInfo.getThickness() * ratio)); |
| | | log.info("{}线向PLC发送厚度数据{}", cell, s7DataMB); |
| | | if (cell == 1) { |
| | | s7SerializerMBOne.write(s7DataMB); |
| | | } else { |
| | |
| | | // task.setStartCell(edgStorageCage.getSlot()); |
| | | // task.setTaskRunning(Const.GLASS_CACHE_TYPE_IN); |
| | | // edgStorageDeviceTaskService.updateTaskMessage(tableName, task); |
| | | task.setStartCell(edgStorageCage.getSlot().shortValue()); |
| | | task.setTaskRunning(Const.GLASS_CACHE_TYPE_IN.shortValue()); |
| | | task.setStartCell(edgStorageCage.getSlot()); |
| | | task.setTaskRunning(Const.GLASS_CACHE_TYPE_IN); |
| | | if (deviceId == 1) { |
| | | s7SerializerWLOne.write( |
| | | S7DataWL.builder().startCell(edgStorageCage.getSlot().shortValue()) |
| | | .taskRunning(Const.GLASS_CACHE_TYPE_IN.shortValue()).build() |
| | | S7DataWL.builder().startCell(edgStorageCage.getSlot()) |
| | | .taskRunning(Const.GLASS_CACHE_TYPE_IN).build() |
| | | ); |
| | | } else { |
| | | s7SerializerWLTwo.write( |
| | | S7DataWL.builder().startCell(edgStorageCage.getSlot().shortValue()) |
| | | .taskRunning(Const.GLASS_CACHE_TYPE_IN.shortValue()).build() |
| | | S7DataWL.builder().startCell(edgStorageCage.getSlot()) |
| | | .taskRunning(Const.GLASS_CACHE_TYPE_IN).build() |
| | | ); |
| | | } |
| | | saveHistoryTask(task, deviceId); |
| | |
| | | S7DataWL s7DataWLOne = s7SerializerWLOne.read(S7DataWL.class); |
| | | S7DataWL s7DataWLTwo = s7SerializerWLTwo.read(S7DataWL.class); |
| | | S7DataWLExtra s7DataWLExtraTwo = s7SerializerWLTwo.read(S7DataWLExtra.class); |
| | | Short oneOutStateEntity = s7DataWLOne.getSlotState(); |
| | | Short twoOutStateEntity = s7DataWLTwo.getSlotState(); |
| | | Short d06OutStateEntity = s7DataWLExtraTwo.getD06SlotState(); |
| | | Integer oneOutStateEntity = s7DataWLOne.getSlotState(); |
| | | Integer twoOutStateEntity = s7DataWLTwo.getSlotState(); |
| | | Integer d06OutStateEntity = s7DataWLExtraTwo.getD06SlotState(); |
| | | //状态有3中情况:0空闲 1忙碌 2禁用 |
| | | String oneOutState = Const.OUT_DISABLE; |
| | | String twoOutState = Const.OUT_DISABLE; |
| | |
| | | log.info("5、更新出片玻璃的状态为{}", Const.GLASS_STATE_OUT); |
| | | } |
| | | //生成出片任务 |
| | | // task.setGlassIdOut(edgStorageCageDetails.getGlassId()); |
| | | // task.setStartCell(edgStorageCageDetails.getSlot()); |
| | | // task.setTaskRunning(taskType); |
| | | // task.setEndCell(cell); |
| | | task.setGlassIdOut(edgStorageCageDetails.getGlassId()); |
| | | task.setStartCell(edgStorageCageDetails.getSlot()); |
| | | task.setTaskRunning(taskType); |
| | | task.setEndCell(cell); |
| | | // edgStorageDeviceTaskService.updateTaskMessage(tableName, task); |
| | | if (deviceId == 1) { |
| | | s7SerializerWLOne.write( |
| | | S7DataWL.builder() |
| | | .glassIdOut(edgStorageCageDetails.getGlassId()) |
| | | .startCell(edgStorageCageDetails.getSlot().shortValue()) |
| | | .taskRunning((short) taskType) |
| | | .endCell((short) cell) |
| | | .startCell(edgStorageCageDetails.getSlot()) |
| | | .taskRunning(taskType) |
| | | .endCell(cell) |
| | | .build() |
| | | ); |
| | | } else { |
| | | s7SerializerWLTwo.write( |
| | | S7DataWL.builder() |
| | | .glassIdOut(edgStorageCageDetails.getGlassId()) |
| | | .startCell(edgStorageCageDetails.getSlot().shortValue()) |
| | | .taskRunning((short) taskType) |
| | | .endCell((short) cell) |
| | | .startCell(edgStorageCageDetails.getSlot()) |
| | | .taskRunning(taskType) |
| | | .endCell(cell) |
| | | .build() |
| | | ); |
| | | } |
| | |
| | | if (device == 1) { |
| | | s7SerializerWLOne.write( |
| | | S7DataWL.builder() |
| | | .taskRunning(Const.GLASS_CACHE_TYPE_EMPTY.shortValue()) |
| | | .taskRunning(Const.GLASS_CACHE_TYPE_EMPTY) |
| | | .glassIdOut("") |
| | | .startCell((short) 0) |
| | | .endCell((short) 0) |
| | | .startCell(0) |
| | | .endCell(0) |
| | | .build() |
| | | ); |
| | | } else { |
| | | s7SerializerWLTwo.write( |
| | | S7DataWL.builder() |
| | | .taskRunning(Const.GLASS_CACHE_TYPE_EMPTY.shortValue()) |
| | | .taskRunning(Const.GLASS_CACHE_TYPE_EMPTY) |
| | | .glassIdOut("") |
| | | .startCell((short) 0) |
| | | .endCell((short) 0) |
| | | .startCell(0) |
| | | .endCell(0) |
| | | .build() |
| | | ); |
| | | } |
| | |
| | | if (device == 1) { |
| | | s7SerializerWLOne.write( |
| | | S7DataWL.builder() |
| | | .taskRunning(Const.GLASS_CACHE_TYPE_EMPTY.shortValue()) |
| | | .taskRunning(Const.GLASS_CACHE_TYPE_EMPTY) |
| | | .glassIdOut("") |
| | | .startCell((short) 0) |
| | | .endCell((short) 0) |
| | | .startCell(0) |
| | | .endCell(0) |
| | | .build() |
| | | ); |
| | | } else { |
| | | s7SerializerWLTwo.write( |
| | | S7DataWL.builder() |
| | | .taskRunning(Const.GLASS_CACHE_TYPE_EMPTY.shortValue()) |
| | | .taskRunning(Const.GLASS_CACHE_TYPE_EMPTY) |
| | | .glassIdOut("") |
| | | .startCell((short) 0) |
| | | .endCell((short) 0) |
| | | .startCell(0) |
| | | .endCell(0) |
| | | .build() |
| | | ); |
| | | } |
| | |
| | | EdgStorageDeviceTaskHistory taskHistory = new EdgStorageDeviceTaskHistory(); |
| | | BeanUtils.copyProperties(task, taskHistory); |
| | | // taskHistory.setTaskType(task.getTaskRunning()); |
| | | taskHistory.setTaskType(Integer.parseInt(task.getTaskRunning().toString())); |
| | | taskHistory.setTaskType(task.getTaskRunning()); |
| | | taskHistory.setCreateTime(new Date()); |
| | | taskHistory.setTaskState(Const.RAW_GLASS_TASK_NEW); |
| | | taskHistory.setDeviceId(deviceId); |