| | |
| | | } |
| | | |
| | | // 空桶出库信号 |
| | | OperateResultExOne<byte[]> readCall = siemensS7Net.Read("DB102", (short) 4); |
| | | OperateResultExOne<byte[]> readCall = siemensS7Net.Read("DB102.0", (short) 8); |
| | | if (readCall.IsSuccess){ |
| | | Integer isNeed = siemensS7Net.getByteTransform().TransInt32(result.Content, 0); // IBC要桶信号 |
| | | Integer isFinish = siemensS7Net.getByteTransform().TransInt32(result.Content, 2); // IBC灌装完成信号 |
| | | Integer weight = siemensS7Net.getByteTransform().TransInt32(result.Content, 4); // IBC灌装重里 |
| | | Integer isAHalf = siemensS7Net.getByteTransform().TransInt32(result.Content, 6); // IBC半桶标记 |
| | | |
| | | int isNeed = siemensS7Net.getByteTransform().TransInt16(readCall.Content, 0); // IBC要桶信号 |
| | | int Finish = siemensS7Net.getByteTransform().TransInt16(readCall.Content, 2); // IBC灌装完成信号 |
| | | int weight1 = siemensS7Net.getByteTransform().TransInt16(readCall.Content, 4); // IBC灌装重里 |
| | | int isAHalf = siemensS7Net.getByteTransform().TransInt16(readCall.Content, 6); // IBC半桶标记 |
| | | isCalled = isNeed; |
| | | isFinish = isFinish; |
| | | weight = weight; |
| | | isFinish = Finish; |
| | | weight = weight1; |
| | | isHalf = isAHalf; |
| | | } |
| | | |
| | | // 完成罐装信号 |
| | | OperateResultExOne<byte[]> finish = siemensS7Net.Read("DB105.240", (short) 4); |
| | | if (finish.IsSuccess){ |
| | | short amount = siemensS7Net.getByteTransform().TransInt16(result.Content, 0); |
| | | // isCalled = amount; |
| | | } |
| | | // OperateResultExOne<byte[]> finish = siemensS7Net.Read("DB105.240", (short) 4); |
| | | // if (finish.IsSuccess){ |
| | | // short amount = siemensS7Net.getByteTransform().TransInt16(finish.Content, 0); |
| | | //// isCalled = amount; |
| | | // } |
| | | |
| | | // if (isCalled == 1) { |
| | | // writeIsCalled(); |
| | |
| | | boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i*4, 1); |
| | | // short tongType = siemensS7Net.getByteTransform().TransInt16(result.Content, i * 4 + 2); |
| | | short amount = siemensS7Net.getByteTransform().TransInt16(result.Content, i * 4 + 6); |
| | | String batch = siemensS7Net.getByteTransform().TransString(result.Content,i * 4+ 8, 20, "UTF-8"); |
| | | String batch = siemensS7Net.getByteTransform().TransString(result.Content,i * 4+ 8, 20, "UTF-8").trim(); |
| | | short ban = siemensS7Net.getByteTransform().TransInt16(result.Content, i * 4 + 28); |
| | | Integer w1 = siemensS7Net.getByteTransform().TransInt32(result.Content, i * 4 + 30); |
| | | String orderNo = siemensS7Net.getByteTransform().TransString(result.Content, i * 4 + 34,22, "UTF-8"); |
| | | String matnr = siemensS7Net.getByteTransform().TransString(result.Content, i * 4 + 56,22, "UTF-8"); |
| | | String matnr = siemensS7Net.getByteTransform().TransString(result.Content, i * 4 + 56,22, "UTF-8").trim(); |
| | | |
| | | |
| | | StaProtocol staProtocol = station.get(siteId); |
| | |
| | | } |
| | | ArrayList<Integer> staNos = getWriteStaNo(); |
| | | int index = staNos.indexOf(staProtocol.getSiteId()); |
| | | OperateResult write = siemensS7Net.Write("DB100." + index*6, staProtocol.getWorkNo().intValue()); // 工作号 |
| | | Thread.sleep(500); |
| | | OperateResult write1 = siemensS7Net.Write("DB100." + (index*6+4), staProtocol.getStaNo()); // 目标站 |
| | | OperateResult write = null; |
| | | OperateResult write1 = null; |
| | | //任务下发次数 |
| | | int writeCount = 0; |
| | | do { |
| | | write = siemensS7Net.Write("DB100." + index*6, staProtocol.getWorkNo().intValue()); // 工作号 |
| | | Thread.sleep(200); |
| | | write1 = siemensS7Net.Write("DB100." + (index*6+4), staProtocol.getStaNo().shortValue()); // 目标站 |
| | | if(write.IsSuccess && write1.IsSuccess){ |
| | | log.error("写入输送线命令成功。输送线plc编号={},站点数据={},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); |
| | | break; |
| | | } |
| | | else { |
| | | writeCount++; |
| | | log.error("写入输送线命令失败。输送线plc编号={},站点数据={},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); |
| | | } |
| | | }while (writeCount<5); |
| | | |
| | | if (!write.IsSuccess || !write1.IsSuccess) { |
| | | staProtocol = station.get(staProtocol.getSiteId()); |
| | |
| | | } |
| | | ArrayList<Integer> staNos = getWriteStaNo(); |
| | | int index = staNos.indexOf(staProtocol.getSiteId()); |
| | | OperateResult write = siemensS7Net.Write("DB100." + index*10, staProtocol.getWorkNo().intValue()); // 工作号 |
| | | OperateResult write1 = siemensS7Net.Write("DB100." + (index*10+4), staProtocol.getStaNo()); // 目标站 |
| | | OperateResult write2 = siemensS7Net.Write("DB100." + (index*10+6), staProtocol.getMatnr()); // 目标站 |
| | | |
| | | OperateResult write = null; |
| | | OperateResult write1 = null; |
| | | OperateResult write2 = null; |
| | | //任务下发次数 |
| | | int writeCount = 0; |
| | | do { |
| | | write = siemensS7Net.Write("DB100." + index*10, staProtocol.getWorkNo().intValue()); // 工作号 |
| | | Thread.sleep(100); |
| | | write1 = siemensS7Net.Write("DB100." + (index*10+4), staProtocol.getStaNo()); // 目标站 |
| | | Thread.sleep(100); |
| | | write2 = siemensS7Net.Write("DB100." + (index*10+6), staProtocol.getMatnr()); // 目标站 |
| | | |
| | | // write = siemensS7Net.Write("DB100." + index*6, staProtocol.getWorkNo()); // 工作号 |
| | | |
| | | // write1 = siemensS7Net.Write("DB100." + (index*6+4), staProtocol.getStaNo().shortValue()); // 目标站 |
| | | |
| | | // write2 = siemensS7Net.Write("DB100." + (index*10+6), staProtocol.getMatnr()); // 目标站 |
| | | if(write.IsSuccess && write1.IsSuccess && write2.IsSuccess){ |
| | | log.error("写入输送线命令成功。输送线plc编号={},站点数据={},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); |
| | | break; |
| | | } |
| | | else { |
| | | writeCount++; |
| | | log.error("写入输送线命令失败。输送线plc编号={},站点数据={},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); |
| | | } |
| | | }while (writeCount<5); |
| | | |
| | | if (!write.IsSuccess || !write1.IsSuccess || !write2.IsSuccess) { |
| | | staProtocol = station.get(staProtocol.getSiteId()); |
| | |
| | | } |
| | | |
| | | private void writeIsCalled() throws InterruptedException { |
| | | OperateResult write = siemensS7Net.Write("DB102.0" , 0); // 工作号 |
| | | OperateResult write = siemensS7Net.Write("DB102.0" , (short) 0); // 工作号 |
| | | } |
| | | |
| | | private void writeIsFinish() throws InterruptedException { |
| | | OperateResult finish = siemensS7Net.Write("DB102.2" , 0); // 工作号 |
| | | OperateResult half = siemensS7Net.Write("DB102.6" , 0); // 工作号 |
| | | OperateResult finish = siemensS7Net.Write("DB102.2" , (short)0); // 工作号 |
| | | OperateResult half = siemensS7Net.Write("DB102.6" , (short)0); // 工作号 |
| | | } |
| | | |
| | | /** |