| | |
| | | public static ArrayList<BasConveyorSta> stationList = new ArrayList<>(); |
| | | |
| | | public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{ |
| | | add(1012);add(1014);add(1015);add(1022); |
| | | add(1023);add(1025);add(1026);add(1031); |
| | | add(1012); |
| | | add(1014); |
| | | add(1015); |
| | | add(1022); |
| | | add(1023); |
| | | add(1025); |
| | | add(1026); |
| | | add(1031); |
| | | add(1032); |
| | | }}; |
| | | |
| | | |
| | | public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{ |
| | | add(1011); |
| | | add(1012); |
| | | add(1013); |
| | | add(1014); |
| | | add(1015); |
| | | add(1021); |
| | | add(1022); |
| | | add(1023); |
| | | add(1024); |
| | | add(1025); |
| | | add(1026); |
| | | add(1031); |
| | | add(1032); |
| | | }}; |
| | | |
| | | /** |
| | |
| | | |
| | | |
| | | staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*26+2)); // 工作号 |
| | | staProtocol.setStaNo((short) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 26 + 4)); // 目标站 |
| | | staProtocol.setFinishWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*26+6)); //已完成工作号 |
| | | staProtocol.setBarcode(siemensS7Net.getByteTransform().TransString(result.Content,i*26+10,12, "UTF-8").trim()); //条码 |
| | | staProtocol.setWeight(siemensS7Net.getByteTransform().TransInt32(result.Content, i*26+22)); //重量 |
| | | |
| | | |
| | | // staProtocol.setWorkMode((int) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 40 + 8));// 工作模式 |
| | | staProtocol.setWorkNo((short) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 18 + 10)); // 工作号 |
| | | staProtocol.setStaNo((short) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 18 + 12)); // 目标站 |
| | | //staProtocol.setWorkNo((short) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 18 + 10)); // 工作号 |
| | | |
| | | if (!staProtocol.isPakMk() && !staProtocol.isLoading()) { |
| | | staProtocol.setPakMk(true); |
| | |
| | | return false; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public boolean writeWorkSta(int siteId, short workNo, short staNo) { |
| | | int index = staNos1.indexOf(siteId); |
| | |
| | | array[0] = workNo; |
| | | array[1] = staNo; |
| | | |
| | | String workNoAddress = "DB83." + (index * 8 + 6); |
| | | String staNoAddress = "DB83." + (index * 8 + 4); |
| | | String workNoAddress = "DB83." + (index * 8 + 6); |
| | | OperateResult write1 = null; // 工作号 |
| | | OperateResult write2 = null; // 目标站 |
| | | |
| | |
| | | write1 = siemensS7Net.Write(workNoAddress, workNo); // 工作号 |
| | | write2 = siemensS7Net.Write(staNoAddress, staNo); |
| | | if ((write1.IsSuccess && write2.IsSuccess)) { |
| | | OperateResultExOne<byte[]> readResult = siemensS7Net.Read(staNoAddress, (short) 8); |
| | | if (readResult.IsSuccess) { |
| | | int staNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0); |
| | | int workNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 4); |
| | | if (workNo == workNo2 && staNo == staNo2) { |
| | | //任务命令写入成功 |
| | | log.info("写入输送线命令后返回成功,并且回读成功。输送线plc编号={},{},{},写入次数={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount); |
| | | return true; |
| | | } else {//返回结果是成功了,但是真实值不相同 |
| | | writeCount++; |
| | | log.error("写入输送线命令后返回成功,但是读取任务值不一致。输送线plc编号={},{},{},写入次数={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount); |
| | | } |
| | | } else { |
| | | writeCount++; |
| | | log.error("写入输送线命令后读取失败。输送线plc编号={},站点数据={},{},写入次数={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount); |
| | | } |
| | | // OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB82.14", (short) (staNos2.indexOf(siteId) * 26)); |
| | | // //OperateResultExOne<byte[]> readResult = siemensS7Net.Read(staNoAddress, (short) 8); |
| | | // if (readResult.IsSuccess) { |
| | | // int workNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 2); // 工作号 |
| | | // int staNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 4); // 目标站 |
| | | // // int staNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0); |
| | | // //int workNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0); |
| | | // if (workNo == workNo2 && staNo == staNo2) { |
| | | // //任务命令写入成功 |
| | | // log.info("写入输送线命令后返回成功,并且回读成功。输送线plc编号={},{},{},写入次数={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount); |
| | | // return true; |
| | | // } else {//返回结果是成功了,但是真实值不相同 |
| | | // writeCount++; |
| | | // log.error("写入输送线命令后返回成功,但是读取任务值不一致。输送线plc编号={},{},{},写入次数={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount); |
| | | // } |
| | | // } else { |
| | | // writeCount++; |
| | | // log.error("写入输送线命令后读取失败。输送线plc编号={},站点数据={},{},写入次数={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount); |
| | | // } |
| | | }else { |
| | | writeCount++; |
| | | } |