|  |  |  | 
|---|
|  |  |  | updateIoMode(); | 
|---|
|  |  |  | ArrayList<Integer> staNos = getStaNo(); | 
|---|
|  |  |  | int staNoSize = staNos.size(); | 
|---|
|  |  |  | OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) (staNoSize*2)); | 
|---|
|  |  |  | Thread.sleep(200); | 
|---|
|  |  |  | OperateResultExOne<byte[]> result0 = siemensS7Net.Read("DB101.0", (short) (staNoSize*2)); | 
|---|
|  |  |  | OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) (staNoSize*4)); | 
|---|
|  |  |  | //        Thread.sleep(200); | 
|---|
|  |  |  | //        OperateResultExOne<byte[]> result0 = siemensS7Net.Read("DB101.0", (short) (staNoSize*2)); | 
|---|
|  |  |  | if (result.IsSuccess) { | 
|---|
|  |  |  | for (int i = 0; i < staNoSize; i++) { | 
|---|
|  |  |  | Integer siteId = staNos.get(i); // 站点编号 | 
|---|
|  |  |  | 
|---|
|  |  |  | staProtocol.setSiteId(siteId); | 
|---|
|  |  |  | station.put(siteId, staProtocol); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*2));     // 工作号 | 
|---|
|  |  |  | staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*4));     // 工作号 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result0.Content, i*2));   // 目标站 | 
|---|
|  |  |  | staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*4 + 2));   // 目标站 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //        Thread.sleep(200); | 
|---|
|  |  |  | 
|---|
|  |  |  | Thread.sleep(200); | 
|---|
|  |  |  | OperateResultExOne<byte[]> result1 = null; | 
|---|
|  |  |  | if(slave.getId()==1) { | 
|---|
|  |  |  | result1 = siemensS7Net.Read("DB102.100", (short) (staNoSize*2)); | 
|---|
|  |  |  | result1 = siemensS7Net.Read("DB102.0", (short) (staNoSize*2)); | 
|---|
|  |  |  | if (result1.IsSuccess) { | 
|---|
|  |  |  | for (int i = 0; i < staNoSize; i++) { | 
|---|
|  |  |  | Integer siteId = staNos.get(i); // 站点编号 | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Thread.sleep(200); | 
|---|
|  |  |  | if(slave.getId()==1) { | 
|---|
|  |  |  | OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB100.200", (short) (barcodeSize * 8)); | 
|---|
|  |  |  | OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB100.40", (short) (barcodeSize * 8)); | 
|---|
|  |  |  | if (result2.IsSuccess) { | 
|---|
|  |  |  | for (int i = 0; i < barcodeSize; i++) { | 
|---|
|  |  |  | String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 8, "UTF-8"); | 
|---|
|  |  |  | 
|---|
|  |  |  | short[] array = new short[2]; | 
|---|
|  |  |  | array[0] = staProtocol.getWorkNo(); | 
|---|
|  |  |  | array[1] = staProtocol.getStaNo(); | 
|---|
|  |  |  | //        OperateResult write = siemensS7Net.Write("DB100." + index*4, array); | 
|---|
|  |  |  | OperateResult write = siemensS7Net.Write("DB100." + index*4, array); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | OperateResult write = siemensS7Net.Write("DB100." + index*2, staProtocol.getWorkNo());    // 工作号 | 
|---|
|  |  |  | Thread.sleep(500); | 
|---|
|  |  |  | OperateResult write1 = siemensS7Net.Write("DB101." + index*2, staProtocol.getStaNo());    // 目标站 | 
|---|
|  |  |  | //        OperateResult write = siemensS7Net.Write("DB100." + index*2, staProtocol.getWorkNo());    // 工作号 | 
|---|
|  |  |  | //        Thread.sleep(500); | 
|---|
|  |  |  | //        OperateResult write1 = siemensS7Net.Write("DB101." + index*2, staProtocol.getStaNo());    // 目标站 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (!write.IsSuccess) { | 
|---|
|  |  |  | staProtocol = station.get(staProtocol.getSiteId()); | 
|---|
|  |  |  | 
|---|
|  |  |  | // 更新入出库模式 | 
|---|
|  |  |  | private void updateIoMode() throws InterruptedException { | 
|---|
|  |  |  | if (this.ioModeOf1F != IoModeType.NONE) { | 
|---|
|  |  |  | if (!siemensS7Net.Write("DB100.180", this.ioModeOf1F.id).IsSuccess) { | 
|---|
|  |  |  | if (!siemensS7Net.Write("DB100.80", this.ioModeOf1F.id).IsSuccess) { | 
|---|
|  |  |  | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线F1入出库模式失败。输送线plc编号={1}", slave.getId())); | 
|---|
|  |  |  | log.error("写入输送线1F入出库模式失败。输送线plc编号={}", slave.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (this.ioModeOf2F != IoModeType.NONE) { | 
|---|
|  |  |  | if (!siemensS7Net.Write("DB100.182", this.ioModeOf2F.id).IsSuccess) { | 
|---|
|  |  |  | if (!siemensS7Net.Write("DB100.82", this.ioModeOf2F.id).IsSuccess) { | 
|---|
|  |  |  | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线F2入出库模式失败。输送线plc编号={1}", slave.getId())); | 
|---|
|  |  |  | log.error("写入输送线2F入出库模式失败。输送线plc编号={}", slave.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (this.ioModeOf3F != IoModeType.NONE) { | 
|---|
|  |  |  | if (!siemensS7Net.Write("DB100.184", this.ioModeOf3F.id).IsSuccess) { | 
|---|
|  |  |  | if (!siemensS7Net.Write("DB100.84", this.ioModeOf3F.id).IsSuccess) { | 
|---|
|  |  |  | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线F3入出库模式失败。输送线plc编号={1}", slave.getId())); | 
|---|
|  |  |  | log.error("写入输送线3F入出库模式失败。输送线plc编号={}", slave.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (this.ioModeOf4F != IoModeType.NONE) { | 
|---|
|  |  |  | if (!siemensS7Net.Write("DB100.186", this.ioModeOf4F.id).IsSuccess) { | 
|---|
|  |  |  | if (!siemensS7Net.Write("DB100.86", this.ioModeOf4F.id).IsSuccess) { | 
|---|
|  |  |  | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线F4入出库模式失败。输送线plc编号={1}", slave.getId())); | 
|---|
|  |  |  | log.error("写入输送线4F入出库模式失败。输送线plc编号={}", slave.getId()); | 
|---|
|  |  |  | } | 
|---|