| | |
| | | //package com.mes.plcTaskThread; |
| | | // |
| | | //import com.mes.md.entity.Machine; |
| | | //import com.mes.md.entity.Tasking; |
| | | //import com.mes.md.mapper.MachineMapper; |
| | | //import com.mes.md.service.TaskingService; |
| | | //import com.mes.service.ModbusTcp; |
| | | //import com.mes.service.PlcAgreement; |
| | | //import com.mes.service.PlcParameter; |
| | | //import com.mes.utils.HexUtil; |
| | | //import lombok.extern.slf4j.Slf4j; |
| | | // |
| | | //import java.text.SimpleDateFormat; |
| | | //import java.util.*; |
| | | // |
| | | //@Slf4j |
| | | //public class MachineDispensing extends Thread { |
| | | // |
| | | // |
| | | // private MachineMapper machineMapper; |
| | | // private TaskingService taskingService; |
| | | // public static Long machineId = 16L; |
| | | // public List<Map> sendRecords = new ArrayList<>(); |
| | | // public Machine thisMachine; |
| | | // |
| | | // public MachineDispensing(Machine machine, MachineMapper machineMapper, TaskingService taskingService) { |
| | | // this.thisMachine = machine; |
| | | // this.machineMapper = machineMapper; |
| | | // this.taskingService = taskingService; |
| | | // } |
| | | // |
| | | // public void plcStart() { |
| | | // Machine machine = machineMapper.selectById(thisMachine.getId()); |
| | | // String fileName = machine.getFileName(); |
| | | // ModbusTcp modbusTcp1 = new ModbusTcp(machine.getIp(), machine.getPort(), fileName); |
| | | // modbusTcp1.connect(); |
| | | // PlcAgreement plcAgreement = modbusTcp1.getPlcAgreement(fileName); |
| | | // try { |
| | | // if (!modbusTcp1.read(plcAgreement)) { |
| | | // log.info("通讯读取新数据失败"); |
| | | // modbusTcp1.close(); |
| | | // return; |
| | | // } |
| | | // PlcParameter plcRequest = plcAgreement.getPlcParameter("plcRequest");//请求字 |
| | | // PlcParameter plcRequestID = plcAgreement.getPlcParameter("plcRequestID");//请求ID |
| | | // PlcParameter mesSend = plcAgreement.getPlcParameter("mesSend");//发送字 |
| | | // PlcParameter mesSendID = plcAgreement.getPlcParameter("mesSendID");//发送ID |
| | | //// PlcParameterInfo drawingMark =plcParameterObject.getPlcParameter("drawingGlue");//点胶图纸地址 |
| | | // PlcParameter JPZX = plcAgreement.getPlcParameter("JPZX");//类型 |
| | | // PlcParameter thickness = plcAgreement.getPlcParameter("thickness");//厚 |
| | | // PlcParameter side1 = plcAgreement.getPlcParameter("side1");//下边 |
| | | // PlcParameter side2 = plcAgreement.getPlcParameter("side2");//右边 |
| | | // PlcParameter side3 = plcAgreement.getPlcParameter("side3");//上边 |
| | | // PlcParameter side4 = plcAgreement.getPlcParameter("side4");//左边 |
| | | // PlcParameter R_angle1_1 = plcAgreement.getPlcParameter("R_angle1_1");//R角1-1 |
| | | // PlcParameter R_angle1_2 = plcAgreement.getPlcParameter("R_angle1_2");//R角1-2 |
| | | // PlcParameter R_angle2_1 = plcAgreement.getPlcParameter("R_angle2_1");//R角2-1 |
| | | // PlcParameter R_angle2_2 = plcAgreement.getPlcParameter("R_angle2_2");//R角2-2 |
| | | // PlcParameter R_angle3_1 = plcAgreement.getPlcParameter("R_angle3_1");//R角3-1 |
| | | // PlcParameter R_angle3_2 = plcAgreement.getPlcParameter("R_angle3_2");//R角3-2 |
| | | // PlcParameter R_angle4_1 = plcAgreement.getPlcParameter("R_angle4_1");//R角4-1 |
| | | // PlcParameter R_angle4_2 = plcAgreement.getPlcParameter("R_angle4_2");//R角4-2 |
| | | // |
| | | // PlcParameter plcReport = plcAgreement.getPlcParameter("plcReport");//汇报字 |
| | | // PlcParameter plcReportID = plcAgreement.getPlcParameter("plcReportID");//汇报ID |
| | | // PlcParameter mesConfirm = plcAgreement.getPlcParameter("mesConfirm");//确认字 |
| | | // PlcParameter mesConfirmID = plcAgreement.getPlcParameter("mesConfirmID");//确认ID |
| | | // PlcParameter machineStatusWord = plcAgreement.getPlcParameter("machineStatusWord"); |
| | | // if (machine.getIsLog() > 0) { |
| | | // modbusTcp1.consoleLogInfo(plcAgreement); |
| | | // } |
| | | // |
| | | // if (0 == plcRequest.getValueInt() && 1 == mesSend.getValueInt()) { |
| | | // log.info("1.发送字置零"); |
| | | // //发送字置0 |
| | | // String send = HexUtil.intTo2ByteHex(0); |
| | | // modbusTcp1.writeString(send, HexUtil.intTo2ByteHex(mesSend.getAddressStart() / 2)); |
| | | // log.info("发送字 清空成功;内容:{},发送起始地址:{}", send, HexUtil.intTo2ByteHex(mesSend.getAddressStart())); |
| | | // modbusTcp1.close(); |
| | | // return; |
| | | // } |
| | | // if (0 == plcReport.getValueInt() && 0 != mesConfirm.getValueInt()) { |
| | | // log.info("2.确认字置零"); |
| | | // //发送字置0 |
| | | // String send = HexUtil.intTo2ByteHex(0); |
| | | // modbusTcp1.writeString(send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart() / 2)); |
| | | // log.info("任务完成 清空成功;内容:{},发送起始地址:{}", send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart())); |
| | | // modbusTcp1.close(); |
| | | // return; |
| | | // } |
| | | // if (1 == plcReport.getValueInt() && 0 == mesConfirm.getValueInt()) { |
| | | // int finishCount = taskingService.finishMachineTask(machine); |
| | | // log.info("3、任务完成"); |
| | | // if (finishCount > 0) {//有任务 |
| | | // String send = HexUtil.intTo2ByteHex(1); |
| | | // modbusTcp1.writeString(send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart() / 2)); |
| | | // log.info("任务完成 成功 内容:{},发送起始地址:{}", send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart())); |
| | | // modbusTcp1.close(); |
| | | // return; |
| | | // } |
| | | // String send = HexUtil.intTo2ByteHex(1); |
| | | // modbusTcp1.writeString(send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart() / 2)); |
| | | // log.info("任务完成 异常成功 内容:{},发送起始地址:{}", send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart())); |
| | | // modbusTcp1.close(); |
| | | // return; |
| | | // } |
| | | // if (4 == plcReport.getValueInt() && 0 == mesConfirm.getValueInt()) { |
| | | // int finishCount = taskingService.glassDownLineOne(machine); |
| | | // if (finishCount > 0) {//有任务 |
| | | // log.info("4、人工拿走"); |
| | | // String send = HexUtil.intTo2ByteHex(4); |
| | | // modbusTcp1.writeString(send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart() / 2)); |
| | | // log.info("人工拿走发送报文内容:{},发送起始地址:{}", send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart())); |
| | | // modbusTcp1.close(); |
| | | // return; |
| | | // } |
| | | // String send = HexUtil.intTo2ByteHex(4); |
| | | // modbusTcp1.writeString(send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart() / 2)); |
| | | // log.info("人工拿走异常 发送报文内容:{},发送起始地址:{}", send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart())); |
| | | // modbusTcp1.close(); |
| | | // return; |
| | | // } |
| | | // if (2 == plcReport.getValueInt() && 0 == mesConfirm.getValueInt()) { |
| | | // int finishCount = taskingService.loseMachineTask(machine); |
| | | // if (finishCount > 0) {//有任务 |
| | | // log.info("2、重发"); |
| | | // String send = HexUtil.intTo2ByteHex(2); |
| | | // modbusTcp1.writeString(send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart() / 2)); |
| | | // log.info("重发发送报文内容:{},发送起始地址:{}", send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart())); |
| | | // modbusTcp1.close(); |
| | | // return; |
| | | // } else { |
| | | // log.info("2、异常重发"); |
| | | // String send = HexUtil.intTo2ByteHex(2); |
| | | // modbusTcp1.writeString(send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart() / 2)); |
| | | // log.info("异常重发发送报文内容:{},发送起始地址:{}", send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart())); |
| | | // modbusTcp1.close(); |
| | | // return; |
| | | // } |
| | | // } |
| | | // |
| | | // if (3 == plcReport.getValueInt() && 0 == mesConfirm.getValueInt()) { |
| | | // int finishCount = taskingService.finishMachineTask(machine); |
| | | // if (finishCount > 0) {//有任务 |
| | | // log.info("3、设备上人工点破损"); |
| | | // String send = HexUtil.intTo2ByteHex(3); |
| | | // modbusTcp1.writeString(send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart() / 2)); |
| | | // log.info("人工点破损发送报文内容:{},发送起始地址:{}", send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart())); |
| | | // modbusTcp1.close(); |
| | | // return; |
| | | // } else { |
| | | // //是否自动清除破损 |
| | | // log.info("3、无效破损 (没有找到此ID的玻璃)"); |
| | | // String send = HexUtil.intTo2ByteHex(3); |
| | | // modbusTcp1.writeString(send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart() / 2)); |
| | | // log.info("发送报文内容:{},发送起始地址:{}", send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart())); |
| | | // modbusTcp1.close(); |
| | | // //modbusTcp1.close(); |
| | | // return; |
| | | // } |
| | | // } |
| | | // List<Tasking> taskingCount = taskingService.findMachineWorkStateTask(machine, "正在工作"); |
| | | // if ((1 == plcRequest.getValueInt() && 0 == mesSend.getValueInt()) |
| | | // && "开工".equals(machine.getState()) |
| | | // && taskingCount.size() < machine.getMaxTaskCount()) { |
| | | // Tasking tasking = taskingService.startMachineTask(machine); |
| | | // if (tasking != null) { |
| | | // log.info("4、发送任务 任务数据:{}, 设备状态:{}, ", machine, tasking); |
| | | // String send = |
| | | // HexUtil.intTo2ByteHex(1) + |
| | | // HexUtil.intTo2ByteHex(tasking.getTaskSequence().intValue())+ |
| | | // HexUtil.intTo2ByteHex(tasking.getJPZX()) + |
| | | // HexUtil.intTo2ByteHex(tasking.getThickness().intValue()) + |
| | | // HexUtil.intTo2ByteHex(tasking.getWidth().intValue()) + // side1 下边 = 宽度 |
| | | // HexUtil.intTo2ByteHex(tasking.getLength().intValue()) + // side2 右边 = 长度 |
| | | // HexUtil.intTo2ByteHex(tasking.getWidth().intValue()) + // side3 上边 = 宽度 |
| | | // HexUtil.intTo2ByteHex(tasking.getLength().intValue()) + // side4 左边 = 长度 |
| | | // HexUtil.intTo2ByteHex((int) ((tasking.getR_1_1() != null ? tasking.getR_1_1() : 0.0) * 10)) + |
| | | // HexUtil.intTo2ByteHex((int) ((tasking.getR_1_2() != null ? tasking.getR_1_2() : 0.0) * 10)) + |
| | | // HexUtil.intTo2ByteHex((int) ((tasking.getR_2_1() != null ? tasking.getR_2_1() : 0.0) * 10)) + |
| | | // HexUtil.intTo2ByteHex((int) ((tasking.getR_2_2() != null ? tasking.getR_2_2() : 0.0) * 10)) + |
| | | // HexUtil.intTo2ByteHex((int) ((tasking.getR_3_1() != null ? tasking.getR_3_1() : 0.0) * 10)) + |
| | | // HexUtil.intTo2ByteHex((int) ((tasking.getR_3_2() != null ? tasking.getR_3_2() : 0.0) * 10)) + |
| | | // HexUtil.intTo2ByteHex((int) ((tasking.getR_4_1() != null ? tasking.getR_4_1() : 0.0) * 10)) + |
| | | // HexUtil.intTo2ByteHex((int) ((tasking.getR_4_2() != null ? tasking.getR_4_2() : 0.0) * 10)) ; |
| | | // modbusTcp1.writeString(send, HexUtil.intTo2ByteHex(mesSend.getAddressStart() / 2)); |
| | | // log.info("发送任务发送报文内容:{},发送起始地址:{}", send, HexUtil.intTo2ByteHex(mesSend.getAddressStart())); |
| | | // modbusTcp1.close(); |
| | | // SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | // String sendRecord = df.format(new Date()) + " " + |
| | | // tasking.getGlassId() + "-" + |
| | | // tasking.getLength() + "-" + |
| | | // tasking.getWidth() + "-" + |
| | | // tasking.getThickness() + "-" + |
| | | // tasking.getR_1_1() + "-" + |
| | | // tasking.getR_1_2() + "-" + |
| | | // tasking.getR_2_1() + "-" + |
| | | // tasking.getR_2_2() + "-" + |
| | | // tasking.getR_3_1() + "-" + |
| | | // tasking.getR_3_2() + "-" + |
| | | // tasking.getR_4_1() + "-" + |
| | | // tasking.getR_4_2() + "-" + |
| | | // tasking.getJPZX(); |
| | | // if (sendRecords.size() > 7) { |
| | | // sendRecords.remove(0); |
| | | // } |
| | | // Map sendContentMap = new HashMap(); |
| | | // sendContentMap.put("sendContent", sendRecord); |
| | | // sendRecords.add(sendContentMap); |
| | | // return; |
| | | // } |
| | | // } |
| | | // //} |
| | | // |
| | | // } catch (Exception e) { |
| | | // log.info("交互逻辑错误"); |
| | | // } |
| | | // |
| | | // modbusTcp1.close(); |
| | | // //log.info("无可执行的条件"); |
| | | // } |
| | | // |
| | | // |
| | | // @Override |
| | | // public void run() { |
| | | // while (this != null) { |
| | | // try { |
| | | // Thread.sleep(1000); |
| | | // plcStart(); |
| | | // } catch (InterruptedException e) { |
| | | // e.printStackTrace(); |
| | | // } |
| | | // } |
| | | // } |
| | | //} |
| | | package com.mes.plcTaskThread; |
| | | |
| | | import com.mes.md.entity.Machine; |
| | | import com.mes.md.entity.Tasking; |
| | | import com.mes.md.mapper.MachineMapper; |
| | | import com.mes.md.service.TaskingService; |
| | | import com.mes.service.ModbusTcp; |
| | | import com.mes.service.PlcAgreement; |
| | | import com.mes.service.PlcParameter; |
| | | import com.mes.utils.HexUtil; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | |
| | | @Slf4j |
| | | public class MachineDispensing extends Thread { |
| | | |
| | | |
| | | private MachineMapper machineMapper; |
| | | private TaskingService taskingService; |
| | | public static Long machineId = 16L; |
| | | public List<Map> sendRecords = new ArrayList<>(); |
| | | public Machine thisMachine; |
| | | |
| | | public MachineDispensing(Machine machine, MachineMapper machineMapper, TaskingService taskingService) { |
| | | this.thisMachine = machine; |
| | | this.machineMapper = machineMapper; |
| | | this.taskingService = taskingService; |
| | | } |
| | | |
| | | public void plcStart() { |
| | | Machine machine = machineMapper.selectById(thisMachine.getId()); |
| | | String fileName = machine.getFileName(); |
| | | ModbusTcp modbusTcp1 = new ModbusTcp(machine.getIp(), machine.getPort(), fileName); |
| | | modbusTcp1.connect(); |
| | | PlcAgreement plcAgreement = modbusTcp1.getPlcAgreement(fileName); |
| | | try { |
| | | if (!modbusTcp1.read(plcAgreement)) { |
| | | log.info("通讯读取新数据失败"); |
| | | modbusTcp1.close(); |
| | | return; |
| | | } |
| | | PlcParameter plcRequest = plcAgreement.getPlcParameter("plcRequest");//请求字 |
| | | PlcParameter plcRequestID = plcAgreement.getPlcParameter("plcRequestID");//请求ID |
| | | PlcParameter mesSend = plcAgreement.getPlcParameter("mesSend");//发送字 |
| | | PlcParameter mesSendID = plcAgreement.getPlcParameter("mesSendID");//发送ID |
| | | // PlcParameterInfo drawingMark =plcParameterObject.getPlcParameter("drawingGlue");//点胶图纸地址 |
| | | PlcParameter JPZX = plcAgreement.getPlcParameter("JPZX");//类型 |
| | | PlcParameter thickness = plcAgreement.getPlcParameter("thickness");//厚 |
| | | PlcParameter side1 = plcAgreement.getPlcParameter("side1");//下边 |
| | | PlcParameter side2 = plcAgreement.getPlcParameter("side2");//右边 |
| | | PlcParameter side3 = plcAgreement.getPlcParameter("side3");//上边 |
| | | PlcParameter side4 = plcAgreement.getPlcParameter("side4");//左边 |
| | | PlcParameter R_angle1_1 = plcAgreement.getPlcParameter("R_angle1_1");//R角1-1 |
| | | PlcParameter R_angle1_2 = plcAgreement.getPlcParameter("R_angle1_2");//R角1-2 |
| | | PlcParameter R_angle2_1 = plcAgreement.getPlcParameter("R_angle2_1");//R角2-1 |
| | | PlcParameter R_angle2_2 = plcAgreement.getPlcParameter("R_angle2_2");//R角2-2 |
| | | PlcParameter R_angle3_1 = plcAgreement.getPlcParameter("R_angle3_1");//R角3-1 |
| | | PlcParameter R_angle3_2 = plcAgreement.getPlcParameter("R_angle3_2");//R角3-2 |
| | | PlcParameter R_angle4_1 = plcAgreement.getPlcParameter("R_angle4_1");//R角4-1 |
| | | PlcParameter R_angle4_2 = plcAgreement.getPlcParameter("R_angle4_2");//R角4-2 |
| | | |
| | | PlcParameter plcReport = plcAgreement.getPlcParameter("plcReport");//汇报字 |
| | | PlcParameter plcReportID = plcAgreement.getPlcParameter("plcReportID");//汇报ID |
| | | PlcParameter mesConfirm = plcAgreement.getPlcParameter("mesConfirm");//确认字 |
| | | PlcParameter mesConfirmID = plcAgreement.getPlcParameter("mesConfirmID");//确认ID |
| | | PlcParameter machineStatusWord = plcAgreement.getPlcParameter("machineStatusWord"); |
| | | if (machine.getIsLog() > 0) { |
| | | modbusTcp1.consoleLogInfo(plcAgreement); |
| | | } |
| | | |
| | | if (0 == plcRequest.getValueInt() && 1 == mesSend.getValueInt()) { |
| | | log.info("1.发送字置零"); |
| | | //发送字置0 |
| | | String send = HexUtil.intTo2ByteHex(0); |
| | | modbusTcp1.writeString(send, HexUtil.intTo2ByteHex(mesSend.getAddressStart() / 2)); |
| | | log.info("发送字 清空成功;内容:{},发送起始地址:{}", send, HexUtil.intTo2ByteHex(mesSend.getAddressStart())); |
| | | modbusTcp1.close(); |
| | | return; |
| | | } |
| | | if (0 == plcReport.getValueInt() && 0 != mesConfirm.getValueInt()) { |
| | | log.info("2.确认字置零"); |
| | | //发送字置0 |
| | | String send = HexUtil.intTo2ByteHex(0); |
| | | modbusTcp1.writeString(send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart() / 2)); |
| | | log.info("任务完成 清空成功;内容:{},发送起始地址:{}", send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart())); |
| | | modbusTcp1.close(); |
| | | return; |
| | | } |
| | | if (1 == plcReport.getValueInt() && 0 == mesConfirm.getValueInt()) { |
| | | int finishCount = taskingService.finishMachineTask(machine); |
| | | log.info("3、任务完成"); |
| | | if (finishCount > 0) {//有任务 |
| | | String send = HexUtil.intTo2ByteHex(1); |
| | | modbusTcp1.writeString(send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart() / 2)); |
| | | log.info("任务完成 成功 内容:{},发送起始地址:{}", send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart())); |
| | | modbusTcp1.close(); |
| | | return; |
| | | } |
| | | String send = HexUtil.intTo2ByteHex(1); |
| | | modbusTcp1.writeString(send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart() / 2)); |
| | | log.info("任务完成 异常成功 内容:{},发送起始地址:{}", send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart())); |
| | | modbusTcp1.close(); |
| | | return; |
| | | } |
| | | if (4 == plcReport.getValueInt() && 0 == mesConfirm.getValueInt()) { |
| | | int finishCount = taskingService.glassDownLineOne(machine); |
| | | if (finishCount > 0) {//有任务 |
| | | log.info("4、人工拿走"); |
| | | String send = HexUtil.intTo2ByteHex(4); |
| | | modbusTcp1.writeString(send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart() / 2)); |
| | | log.info("人工拿走发送报文内容:{},发送起始地址:{}", send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart())); |
| | | modbusTcp1.close(); |
| | | return; |
| | | } |
| | | String send = HexUtil.intTo2ByteHex(4); |
| | | modbusTcp1.writeString(send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart() / 2)); |
| | | log.info("人工拿走异常 发送报文内容:{},发送起始地址:{}", send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart())); |
| | | modbusTcp1.close(); |
| | | return; |
| | | } |
| | | if (2 == plcReport.getValueInt() && 0 == mesConfirm.getValueInt()) { |
| | | int finishCount = taskingService.loseMachineTask(machine); |
| | | if (finishCount > 0) {//有任务 |
| | | log.info("2、重发"); |
| | | String send = HexUtil.intTo2ByteHex(2); |
| | | modbusTcp1.writeString(send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart() / 2)); |
| | | log.info("重发发送报文内容:{},发送起始地址:{}", send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart())); |
| | | modbusTcp1.close(); |
| | | return; |
| | | } else { |
| | | log.info("2、异常重发"); |
| | | String send = HexUtil.intTo2ByteHex(2); |
| | | modbusTcp1.writeString(send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart() / 2)); |
| | | log.info("异常重发发送报文内容:{},发送起始地址:{}", send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart())); |
| | | modbusTcp1.close(); |
| | | return; |
| | | } |
| | | } |
| | | |
| | | if (3 == plcReport.getValueInt() && 0 == mesConfirm.getValueInt()) { |
| | | int finishCount = taskingService.finishMachineTask(machine); |
| | | if (finishCount > 0) {//有任务 |
| | | log.info("3、设备上人工点破损"); |
| | | String send = HexUtil.intTo2ByteHex(3); |
| | | modbusTcp1.writeString(send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart() / 2)); |
| | | log.info("人工点破损发送报文内容:{},发送起始地址:{}", send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart())); |
| | | modbusTcp1.close(); |
| | | return; |
| | | } else { |
| | | //是否自动清除破损 |
| | | log.info("3、无效破损 (没有找到此ID的玻璃)"); |
| | | String send = HexUtil.intTo2ByteHex(3); |
| | | modbusTcp1.writeString(send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart() / 2)); |
| | | log.info("发送报文内容:{},发送起始地址:{}", send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart())); |
| | | modbusTcp1.close(); |
| | | //modbusTcp1.close(); |
| | | return; |
| | | } |
| | | } |
| | | List<Tasking> taskingCount = taskingService.findMachineWorkStateTask(machine, "正在工作"); |
| | | if ((1 == plcRequest.getValueInt() && 0 == mesSend.getValueInt()) |
| | | && "开工".equals(machine.getState()) |
| | | && taskingCount.size() < machine.getMaxTaskCount()) { |
| | | Tasking tasking = taskingService.startMachineTask(machine); |
| | | if (tasking != null) { |
| | | log.info("4、发送任务 任务数据:{}, 设备状态:{}, ", machine, tasking); |
| | | String send = |
| | | HexUtil.intTo2ByteHex(1) + |
| | | HexUtil.intTo2ByteHex(tasking.getTaskSequence().intValue())+ |
| | | HexUtil.intTo2ByteHex(tasking.getJPZX()) + |
| | | HexUtil.intTo2ByteHex(tasking.getThickness().intValue()) + |
| | | HexUtil.intTo2ByteHex(tasking.getWidth().intValue()) + // side1 下边 = 宽度 |
| | | HexUtil.intTo2ByteHex(tasking.getLength().intValue()) + // side2 右边 = 长度 |
| | | HexUtil.intTo2ByteHex(tasking.getWidth().intValue()) + // side3 上边 = 宽度 |
| | | HexUtil.intTo2ByteHex(tasking.getLength().intValue()) + // side4 左边 = 长度 |
| | | HexUtil.intTo2ByteHex((int) ((tasking.getR_1_1() != null ? tasking.getR_1_1() : 0.0) * 10)) + |
| | | HexUtil.intTo2ByteHex((int) ((tasking.getR_1_2() != null ? tasking.getR_1_2() : 0.0) * 10)) + |
| | | HexUtil.intTo2ByteHex((int) ((tasking.getR_2_1() != null ? tasking.getR_2_1() : 0.0) * 10)) + |
| | | HexUtil.intTo2ByteHex((int) ((tasking.getR_2_2() != null ? tasking.getR_2_2() : 0.0) * 10)) + |
| | | HexUtil.intTo2ByteHex((int) ((tasking.getR_3_1() != null ? tasking.getR_3_1() : 0.0) * 10)) + |
| | | HexUtil.intTo2ByteHex((int) ((tasking.getR_3_2() != null ? tasking.getR_3_2() : 0.0) * 10)) + |
| | | HexUtil.intTo2ByteHex((int) ((tasking.getR_4_1() != null ? tasking.getR_4_1() : 0.0) * 10)) + |
| | | HexUtil.intTo2ByteHex((int) ((tasking.getR_4_2() != null ? tasking.getR_4_2() : 0.0) * 10)) ; |
| | | modbusTcp1.writeString(send, HexUtil.intTo2ByteHex(mesSend.getAddressStart() / 2)); |
| | | log.info("发送任务发送报文内容:{},发送起始地址:{}", send, HexUtil.intTo2ByteHex(mesSend.getAddressStart())); |
| | | modbusTcp1.close(); |
| | | SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | String sendRecord = df.format(new Date()) + " " + |
| | | tasking.getGlassId() + "-" + |
| | | tasking.getLength() + "-" + |
| | | tasking.getWidth() + "-" + |
| | | tasking.getThickness() + "-" + |
| | | tasking.getR_1_1() + "-" + |
| | | tasking.getR_1_2() + "-" + |
| | | tasking.getR_2_1() + "-" + |
| | | tasking.getR_2_2() + "-" + |
| | | tasking.getR_3_1() + "-" + |
| | | tasking.getR_3_2() + "-" + |
| | | tasking.getR_4_1() + "-" + |
| | | tasking.getR_4_2() + "-" + |
| | | tasking.getJPZX(); |
| | | if (sendRecords.size() > 7) { |
| | | sendRecords.remove(0); |
| | | } |
| | | Map sendContentMap = new HashMap(); |
| | | sendContentMap.put("sendContent", sendRecord); |
| | | sendRecords.add(sendContentMap); |
| | | return; |
| | | } |
| | | } |
| | | //} |
| | | |
| | | } catch (Exception e) { |
| | | log.info("交互逻辑错误"); |
| | | } |
| | | |
| | | modbusTcp1.close(); |
| | | //log.info("无可执行的条件"); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void run() { |
| | | while (this != null) { |
| | | try { |
| | | Thread.sleep(1000); |
| | | plcStart(); |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | | } |