| | |
| | | }}; |
| | | |
| | | public static final ArrayList<Integer> rgvSiteBackWrkNo2= new ArrayList<Integer>() {{ |
| | | add(1044); |
| | | add(1044);add(1090); |
| | | }}; |
| | | |
| | | public static final ArrayList<Integer> rgvSiteBackWrkNo3= new ArrayList<Integer>() {{ |
| | |
| | | public static final ArrayList<Integer> gzxResultSite = new ArrayList<Integer>() {{ |
| | | add(1081); add(1084);add(1087); |
| | | }}; |
| | | |
| | | private static long lastLogTime = 0; |
| | | |
| | | public SiemensDevpThread(DevpSlave slave) { |
| | | this.slave = slave; |
| | |
| | | // 读罐装线反馈信息 |
| | | if (slave.getId() > 3) { |
| | | // log.info("读取{}号罐装线plc信息成功",slave.getId()); |
| | | OperateResultExOne<byte[]> read = siemensS7Net.Read("DB101.0", (short) 58); |
| | | OperateResultExOne<byte[]> read = siemensS7Net.Read("DB101.0", (short) 64); |
| | | if (read.IsSuccess) { |
| | | // 15秒打印一下日志 |
| | | if (System.currentTimeMillis() - lastLogTime >= 15000) { |
| | | OperateResultExOne<byte[]> readKc = siemensS7Net.Read("DB100.6", (short) 2); |
| | | if(readKc.IsSuccess){ |
| | | short i = siemensS7Net.getByteTransform().TransInt16(readKc.Content, 0); |
| | | log.info("读{}号罐装线可出信号成功,值:{}", slave.getId() -3, i); |
| | | } |
| | | lastLogTime = System.currentTimeMillis(); |
| | | } |
| | | // 成品信息反馈到罐装线出口站点 |
| | | DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2); |
| | | StaProtocol staProtocol = devpThread.getStation().get(gzxResultSite.get(slave.getId()-4)); |
| | | if (staProtocol != null) { |
| | | staProtocol.setWantBucketFlag(siemensS7Net.getByteTransform().TransInt16(read.Content, 0));// 罐装线要桶型信号 |
| | | staProtocol.setWrkNo(siemensS7Net.getByteTransform().TransInt16(read.Content, 2)); |
| | | double weight208l1 = siemensS7Net.getByteTransform().TransInt32(read.Content, 4); // 200L桶1净重 |
| | | double weight208l2 = siemensS7Net.getByteTransform().TransInt32(read.Content, 8); // 200L桶2净重 |
| | | double weight208l3 = siemensS7Net.getByteTransform().TransInt32(read.Content, 12); // 200L桶3净重 |
| | | double weight208l4 = siemensS7Net.getByteTransform().TransInt32(read.Content, 16); // 200L桶4净重 |
| | | double weight1T = siemensS7Net.getByteTransform().TransInt32(read.Content, 20); // 1T桶净重 |
| | | double weight208l1 = siemensS7Net.getByteTransform().TransSingle(read.Content, 4); // 200L桶1净重 |
| | | double weight208l2 = siemensS7Net.getByteTransform().TransSingle(read.Content, 8); // 200L桶2净重 |
| | | double weight208l3 = siemensS7Net.getByteTransform().TransSingle(read.Content, 12); // 200L桶3净重 |
| | | double weight208l4 = siemensS7Net.getByteTransform().TransSingle(read.Content, 16); // 200L桶4净重 |
| | | double weight1T = siemensS7Net.getByteTransform().TransSingle(read.Content, 20); // 1T桶净重 |
| | | // log.info("读取工罐装线净重 200l桶1:{},200l桶2:{},200l桶3:{},200l桶4:{},1t桶:{}",weight208l1,weight208l2,weight208l3,weight208l4,weight1T); |
| | | staProtocol.setWeight(weight208l1 + weight208l2 + weight208l3 + weight208l4 + weight1T); |
| | | staProtocol.setGrossWeight(siemensS7Net.getByteTransform().TransInt32(read.Content, 24)); |
| | | staProtocol.setGrossWeight(siemensS7Net.getByteTransform().TransSingle(read.Content, 24)); |
| | | staProtocol.setMatnr(siemensS7Net.getByteTransform().TransString(read.Content, 28,12,"UTF-8")); |
| | | staProtocol.setBatch(siemensS7Net.getByteTransform().TransString(read.Content, 40,10,"UTF-8")); |
| | | staProtocol.setManuDate(siemensS7Net.getByteTransform().TransString(read.Content, 50,8,"UTF-8")); |
| | | staProtocol.setReinspection(siemensS7Net.getByteTransform().TransInt16(read.Content, 58) == 1); |
| | | staProtocol.setCannedVolume(siemensS7Net.getByteTransform().TransSingle(read.Content, 60)); |
| | | } |
| | | return; |
| | | } |
| | |
| | | do { |
| | | write = siemensS7Net.Write("DB100.0", common); |
| | | Thread.sleep(200); |
| | | if(write.IsSuccess){ |
| | | OperateResultExOne<byte[]> read = siemensS7Net.Read("DB100.0", (short) 6); |
| | | if(write.IsSuccess && read.IsSuccess){ |
| | | short bucketType = siemensS7Net.getByteTransform().TransInt16(read.Content, 0); |
| | | short bucketCount = siemensS7Net.getByteTransform().TransInt16(read.Content, 2); |
| | | short workNo = siemensS7Net.getByteTransform().TransInt16(read.Content, 4); |
| | | if ( workNo != common[2] || bucketCount != common[1] || bucketType != common[0]) { |
| | | writeCount++; |
| | | log.error("给罐装线写入桶型信息成功,但回读失败:写入任务号:{},回读任务号:{},输送线plc编号={},写入次数={}", Arrays.toString(common), bucketType +"-" + bucketCount + "-" + workNo, slave.getId(), writeCount); |
| | | continue; |
| | | } |
| | | log.info("给罐装线写入桶型信息成功,回读成功:任务号:{},回读任务号:{},输送线plc编号={},写入次数={}",staProtocol.getWorkNo().shortValue(), Arrays.toString(common), slave.getId(), writeCount); |
| | | break; |
| | | } |
| | | else { |