| | |
| | | |
| | | |
| | | // staProtocol.setWorkMode((int) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 40 + 8));// 工作模式 |
| | | staProtocol.setWorkNo((short) siemensS7Net.getByteTransform().TransInt32(result.Content, i * 18 + 10)); // 工作号 |
| | | staProtocol.setStaNo((short) siemensS7Net.getByteTransform().TransInt32(result.Content, i * 18 + 14)); // 目标站 |
| | | |
| | | staProtocol.setWorkNo((short) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 18 + 10)); // 工作号 |
| | | staProtocol.setStaNo((short) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 18 + 12)); // 目标站 |
| | | |
| | | if (!staProtocol.isPakMk() && !staProtocol.isLoading()) { |
| | | staProtocol.setPakMk(true); |
| | |
| | | @Override |
| | | public boolean writeWorkNo(int siteId, short workNo) { |
| | | int index = staNos1.indexOf(siteId); |
| | | index += 1; |
| | | |
| | | OperateResult write = siemensS7Net.Write("DB83." + (index *8+6),(int) workNo); // 工作号 |
| | | |
| | |
| | | @Override |
| | | public boolean writeStaNo(int siteId,short staNo) { |
| | | int index = staNos1.indexOf(siteId); |
| | | index += 1; |
| | | |
| | | OperateResult write = siemensS7Net.Write("DB101." + (index * 8 + 4),(int) staNo); // 目标站 |
| | | |
| | |
| | | @Override |
| | | public boolean writeWorkSta(int siteId, short workNo, short staNo) { |
| | | int index = staNos1.indexOf(siteId); |
| | | index += 1; |
| | | |
| | | short[] array = new short[2]; |
| | | array[0] = workNo; |
| | | array[1] = staNo; |
| | | |
| | | |
| | | String workNoAddress = "DB101." + (index * 8 + 6); |
| | | String staNoAddress = "DB101." + (index * 8 + 4); |
| | | String workNoAddress = "DB83." + (index * 8 + 6); |
| | | String staNoAddress = "DB83." + (index * 8 + 4); |
| | | OperateResult write1 = null; // 工作号 |
| | | OperateResult write2 = null; // 目标站 |
| | | |
| | | //任务下发次数 |
| | | int writeCount = 0; |
| | | do { |
| | | write1 = siemensS7Net.Write(workNoAddress, (int) workNo); // 工作号 |
| | | write2 = siemensS7Net.Write(staNoAddress, (int) staNo); |
| | | 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().TransInt32(readResult.Content, 0); |
| | | int workNo2 = siemensS7Net.getByteTransform().TransInt32(readResult.Content, 4); |
| | | 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); |