| | |
| | | import com.zy.core.News; |
| | | import com.zy.core.cache.MessageQueue; |
| | | import com.zy.core.cache.OutputQueue; |
| | | import com.zy.core.enums.IoModeType; |
| | | import com.zy.core.enums.SlaveType; |
| | | import com.zy.core.model.DevpSlave; |
| | | import com.zy.core.model.Task; |
| | |
| | | private SiemensS7Net siemensS7Net; |
| | | private Map<Integer, StaProtocol> station = new ConcurrentHashMap<>(); |
| | | |
| | | public Integer ioModeOf1F1. |
| | | public IoModeType ioModeOf2_5 = IoModeType.PAKIN_MODE; |
| | | |
| | | private short heartBeatVal = 1; |
| | | private int barcodeSize = 10; |
| | |
| | | * 读取状态 ====> 整块plc |
| | | */ |
| | | private void read() throws InterruptedException { |
| | | // 更新入出库模式 |
| | | updateIoMode(); |
| | | int staNoSize = staNos2.size(); |
| | | OperateResultExOne<byte[]> result = siemensS7Net.Read("DB82.14", (short) (staNoSize * 26)); |
| | | if (result.IsSuccess) { |
| | |
| | | if (null == staProtocol) { |
| | | staProtocol = new StaProtocol(); |
| | | staProtocol.setSiteId(siteId); |
| | | |
| | | if (siteId == 1015) { |
| | | staProtocol.setLocNo("1200301"); |
| | | } else if (siteId == 1026) { |
| | | staProtocol.setLocNo("1200305"); |
| | | } |
| | | |
| | | station.put(siteId, staProtocol); |
| | | } |
| | | Thread.sleep(300); |
| | |
| | | staProtocol.setBackErr(status[5]); |
| | | staProtocol.setLeftErr(status[6]); |
| | | staProtocol.setRightErr(status[7]); |
| | | staProtocol.setHighErr(status[8]); |
| | | staProtocol.setWeightErr(status[9]); |
| | | staProtocol.setLow(status[10]); |
| | | staProtocol.setHigh(status[11]); |
| | | // staProtocol.setHighErr(status[8]); |
| | | // staProtocol.setWeightErr(status[9]); |
| | | // staProtocol.setLow(status[10]); |
| | | // staProtocol.setHigh(status[11]); |
| | | |
| | | boolean[] status2 = siemensS7Net.getByteTransform().TransBool(result.Content, i * 26 + 1, 2); |
| | | staProtocol.setHighErr(status2[0]); |
| | | staProtocol.setWeightErr(status2[1]); |
| | | staProtocol.setLow(status2[2]); |
| | | staProtocol.setHigh(status2[3]); |
| | | // staProtocol.setInEnable(status[13]); // 可入 |
| | | // staProtocol.setOutEnable(status[14]);// 可出 |
| | | |
| | | |
| | | staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 26 + 2)); // 工作号 |
| | | staProtocol.setStaNo((short) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 26 + 4)); // 目标站 |
| | | staProtocol.setStaNo(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)); //重量 |
| | |
| | | } |
| | | |
| | | |
| | | // 更新入出库模式 |
| | | private void updateIoMode() throws InterruptedException { |
| | | if (this.ioModeOf2_5 != null && (this.ioModeOf2_5.id == 0 || this.ioModeOf2_5.id == 1)) { |
| | | if (!siemensS7Net.Write("DB83.80", this.ioModeOf2_5.id).IsSuccess) { |
| | | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线2.5F入出库模式失败", this.ioModeOf2_5)); |
| | | log.error("【{0}】写入输送线2.5F入出库模式失败。输送线plc编号={}", this.ioModeOf2_5); |
| | | } else { |
| | | if (station.get(1031) != null) { |
| | | station.get(1031).setOutInModel(this.ioModeOf2_5.id); |
| | | station.get(1032).setOutInModel(this.ioModeOf2_5.id); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | } |