| | |
| | | import com.zy.core.enums.SlaveType; |
| | | import com.zy.core.model.JarSlave; |
| | | import com.zy.core.model.Task; |
| | | import com.zy.core.model.command.CrnCommand; |
| | | import com.zy.core.model.command.JarCommand; |
| | | import com.zy.core.model.protocol.JarProtocol; |
| | | import lombok.Data; |
| | |
| | | break; |
| | | // 写数据 ID+目标站 |
| | | case 2: |
| | | write(null); |
| | | write((JarCommand) task.getData()); |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | private void readStatus(){ |
| | | try { |
| | | if (slave.getId()>4){ |
| | | if (null == jarProtocol) { |
| | | jarProtocol = new JarProtocol(); |
| | | jarProtocol.setJarNo(slave.getId()); |
| | | } |
| | | jarProtocol.setMode(2);//模式 |
| | | jarProtocol.setStatus((short)0);//状态 |
| | | jarProtocol.setAutoing(true);//自动 |
| | | |
| | | jarProtocol.setRightDoor(true);//左门状态 //出料门 |
| | | jarProtocol.setLeftDoor(true);//右门状态 //进料门 |
| | | |
| | | jarProtocol.setLeftDoorOpen(0);//open the left door //进料门 |
| | | jarProtocol.setLeftDoorClose(0);//close the left door //进料门 |
| | | jarProtocol.setRightDoorOpen(0);//open the right door //出料门 |
| | | jarProtocol.setRightDoorClose(0);//close the right door //出料门 |
| | | |
| | | jarProtocol.setJarTemperature(0.0F); |
| | | return; |
| | | } |
| | | OperateResultExOne<byte[]> result = siemensS7Net.Read("V300", (short) 26); |
| | | OperateResultExOne<byte[]> result = siemensS7Net.Read("V300", (short) 30); |
| | | if (result.IsSuccess) { |
| | | if (null == jarProtocol) { |
| | | jarProtocol = new JarProtocol(); |
| | |
| | | jarProtocol.setMode((int)siemensS7Net.getByteTransform().TransInt16(result.Content, 12));//模式 |
| | | jarProtocol.setJarErr((int)siemensS7Net.getByteTransform().TransInt16(result.Content, 14));//异常码 |
| | | jarProtocol.setStatus(siemensS7Net.getByteTransform().TransInt16(result.Content, 16));//状态 |
| | | jarProtocol.setJarTemperature(siemensS7Net.getByteTransform().TransSingle(result.Content, 26));//温度 |
| | | |
| | | jarProtocol.setAutoing(siemensS7Net.getByteTransform().TransInt16(result.Content, 12) == 2);//自动 |
| | | |
| | | // |
| | | // jarProtocol.setMode(2);//模式 |
| | | // jarProtocol.setStatus((short)6);//状态 |
| | | // jarProtocol.setLeftDoorOpen(0);//open the left door //进料门 |
| | | // jarProtocol.setLeftDoorClose(0);//close the left door //进料门 |
| | | // jarProtocol.setRightDoorOpen(0);//open the right door //出料门 |
| | | // jarProtocol.setRightDoorClose(0);//close the right door //出料门 |
| | | |
| | | |
| | | // 根据实时信息更新数据库 |
| | | BasJarService service = SpringUtils.getBean(BasJarService.class); |
| | | if (null != service) { |
| | |
| | | String resultV2 = null; |
| | | short resultS2 = 0; |
| | | |
| | | switch (command.getTaskMode()){ |
| | | switch (command.getTaskModeType().id){ |
| | | case 1: |
| | | case 2: |
| | | case 3: |
| | |
| | | do { |
| | | try{ |
| | | if(!result1.IsSuccess){ |
| | | log.error("写入硫化罐plc数据失败,重新下发任务 写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(command),writeCount); |
| | | log.error("写入硫化罐plc数据失败,重新下发任务 写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(command),writeCount); |
| | | result1 = siemensS7Net.Write(resultV1, resultS1); |
| | | Thread.sleep(100); |
| | | writeCount++; |
| | |
| | | if (transInt16 == resultS1 || transInt16 == (short) 2 || transInt16 == (short) 3){ |
| | | break; |
| | | } else { |
| | | log.error("写入硫化罐plc数据失败,重新下发任务 写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(command),writeCount); |
| | | log.error("写入硫化罐plc数据失败,重新下发任务 写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(command),writeCount); |
| | | result1 = siemensS7Net.Write(resultV1, resultS1); |
| | | Thread.sleep(100); |
| | | writeCount++; |
| | | continue; |
| | | } |
| | | } else { |
| | | log.error("写入硫化罐plc数据失败,重新下发任务 写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(command),writeCount); |
| | | log.error("写入硫化罐plc数据失败,重新下发任务 写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(command),writeCount); |
| | | result1 = siemensS7Net.Write(resultV1, resultS1); |
| | | Thread.sleep(100); |
| | | writeCount++; |
| | |
| | | do { |
| | | try{ |
| | | if(!result2.IsSuccess){ |
| | | log.error("写入硫化罐plc数据失败,重新下发任务 写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(command),writeCount); |
| | | log.error("写入硫化罐plc数据失败,重新下发任务 写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(command),writeCount); |
| | | result2 = siemensS7Net.Write(resultV2, resultS2); |
| | | Thread.sleep(100); |
| | | writeCount++; |
| | |
| | | if (transInt16 == resultS1 || transInt16 == (short) 3){ |
| | | break; |
| | | } else { |
| | | log.error("写入硫化罐plc数据失败,重新下发任务 写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(command),writeCount); |
| | | log.error("写入硫化罐plc数据失败,重新下发任务 写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(command),writeCount); |
| | | result2 = siemensS7Net.Write(resultV2, resultS2); |
| | | Thread.sleep(100); |
| | | writeCount++; |
| | | continue; |
| | | } |
| | | } else { |
| | | log.error("写入硫化罐plc数据失败,重新下发任务 写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(command),writeCount); |
| | | log.error("写入硫化罐plc数据失败,重新下发任务 写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(command),writeCount); |
| | | result2 = siemensS7Net.Write(resultV2, resultS2); |
| | | Thread.sleep(100); |
| | | writeCount++; |