| | |
| | | PrimitiveTaskMapper primitiveTaskMapper; |
| | | |
| | | LineConfigurationService lineConfigurationService; |
| | | |
| | | public Long machineId = 2L; |
| | | public Machine thisMachine; |
| | | //public Long machineId = 2L; |
| | | public List<Map> sendRecords = new ArrayList<>(); |
| | | public MachineLoad(TaskingMapper taskingMapper, MachineMapper machineMapper, TaskingService taskingService, PrimitiveTaskService primitiveTaskService, LineConfigurationService lineConfigurationService){ |
| | | public MachineLoad(Machine machine,PrimitiveTaskMapper primitiveTaskMapper,TaskingMapper taskingMapper, MachineMapper machineMapper, TaskingService taskingService, PrimitiveTaskService primitiveTaskService, LineConfigurationService lineConfigurationService){ |
| | | this.thisMachine = machine; |
| | | this.primitiveTaskMapper = primitiveTaskMapper; |
| | | this.taskingMapper = taskingMapper; |
| | | this.machineMapper = machineMapper; |
| | | this.taskingService = taskingService; |
| | |
| | | this.lineConfigurationService = lineConfigurationService; |
| | | } |
| | | public void plcStart() { |
| | | Machine machine=machineMapper.selectById(machineId); |
| | | ModbusTcp modbusTcp1 =new ModbusTcp(machine.getIp(),machine.getPort(),"PlcLoad"); |
| | | Machine machine=machineMapper.selectById(thisMachine.getId()); |
| | | ModbusTcp modbusTcp1 =new ModbusTcp(machine.getIp(),machine.getPort(),machine.getFileName()); |
| | | modbusTcp1.connect(); |
| | | PlcAgreement plcAgreement=modbusTcp1.getPlcAgreement("PlcLoad"); |
| | | try { |
| | | if(!modbusTcp1.read(plcAgreement)){ |
| | | log.info("通讯读取新数据失败"); |
| | | if(!"关机".equals(machine.getStatePowerOn())){ |
| | | machine.setStatePowerOn("关机"); |
| | | machineMapper.updateById(machine); |
| | | } |
| | | modbusTcp1.close(); |
| | | return; |
| | | } |
| | | if(!"开机".equals(machine.getStatePowerOn())){ |
| | | machine.setStatePowerOn("开机"); |
| | | machineMapper.updateById(machine); |
| | | } |
| | | PlcParameter plcRequest =plcAgreement.getPlcParameter("plcRequest");//请求字 |
| | | PlcParameter mesSend =plcAgreement.getPlcParameter("mesSend");//发送字 |
| | |
| | | LineConfiguration lineConfiguration=lineConfigurationService.machineLineConfiguration(machine); |
| | | List<PrimitiveTask> findPrimitiveTasking=primitiveTaskService.findPrimitiveTasking(machine,lineConfiguration.getLineId()); |
| | | for(PrimitiveTask primitiveTask:findPrimitiveTasking){ |
| | | primitiveTask.setReportCount(primitiveTask.getReportCount()+plcReportID.getValueInt()); |
| | | primitiveTask.setLoadCount(primitiveTask.getLoadCount()+1); |
| | | primitiveTaskMapper.updateById(primitiveTask); |
| | | break; |
| | | } |
| | | }else if(machine.getMode()==3){ |
| | | machine.setFinshCount(machine.getFinshCount()+plcReportID.getValueInt()); |
| | | machineMapper.updateById(machine); |
| | | } |
| | | String send = HexUtil.intTo2ByteHex(1); |
| | | modbusTcp1.writeString(send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart()/ 2)); |
| | |
| | | LineConfiguration lineConfiguration=lineConfigurationService.machineLineConfiguration(machine); |
| | | List<PrimitiveTask> findPrimitiveTasking=primitiveTaskService.findPrimitiveTasking(machine,lineConfiguration.getLineId()); |
| | | for(PrimitiveTask primitiveTask:findPrimitiveTasking){ |
| | | //任务数>已上数量 |
| | | List<Tasking> taskingTopList=taskingMapper.selectList(new QueryWrapper<Tasking>().lambda() |
| | | .eq(Tasking::getScanId,primitiveTask.getScanId()) |
| | | .eq(Tasking::getState,"线上") |
| | | .eq(Tasking::getGlassState,"正常") |
| | | ); |
| | | if (primitiveTask.getTaskQuantity()>primitiveTask.getReportCount()){ |
| | | loadCount=primitiveTask.getTaskQuantity()-taskingTopList.size(); |
| | | loadCount=(loadCount>0?loadCount:0); |
| | | //任务数-已上数量>0 返回1 |
| | | if((primitiveTask.getTaskQuantity()-primitiveTask.getLoadCount())>0){ |
| | | loadCount=1; |
| | | } |
| | | break; |
| | | } |
| | | }else{ |
| | | }else if(machine.getMode()==2){ |
| | | //定制模式 |
| | | loadCount=1; |
| | | }else if (machine.getMode()==3){ |
| | | loadCount=machine.getTaskCount()-machine.getFinshCount(); |
| | | loadCount=(loadCount>0?1:0); |
| | | } |
| | | if(loadCount>0){ |
| | | log.info("4、发送任务 任务数据:{}, 设备状态:{}, ",loadCount,machine); |