| | |
| | | // updateIoMode(); |
| | | ArrayList<Integer> staNos = getStaNo(); |
| | | int staNoSize = staNos.size(); |
| | | OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize*4)); |
| | | OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize * 4)); |
| | | // OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB100.2", (short) (staNoSize*2)); |
| | | if (result.IsSuccess) { |
| | | for (int i = 0; i < staNoSize; i++) { |
| | |
| | | staProtocol.setSiteId(siteId); |
| | | station.put(siteId, staProtocol); |
| | | } |
| | | staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*4)); // 工作号 |
| | | staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 4)); // 工作号 |
| | | |
| | | staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*4 + 2)); // 目标站 |
| | | staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 4 + 2)); // 目标站 |
| | | } |
| | | } |
| | | |
| | |
| | | if (result1.IsSuccess) { |
| | | for (int i = 0; i < staNoSize; i++) { |
| | | Integer siteId = staNos.get(i); // 站点编号 |
| | | boolean[] status = siemensS7Net.getByteTransform().TransBool(result1.Content, i*4, 1); |
| | | boolean[] status = siemensS7Net.getByteTransform().TransBool(result1.Content, i * 4, 1); |
| | | StaProtocol staProtocol = station.get(siteId); |
| | | staProtocol.setAutoing(status[0]); // 自动 |
| | | staProtocol.setLoading(status[1]); // 有物 |
| | |
| | | staProtocol.setPakMk(true); |
| | | } |
| | | |
| | | if (staProtocol.getStamp()>=2 && !staProtocol.isLoading()){ |
| | | if (staProtocol.getStamp() >= 2 && !staProtocol.isLoading()) { |
| | | staProtocol.setStamp(0); |
| | | }else if (staProtocol.getStamp()<2 && staProtocol.isLoading()){ |
| | | } else if (staProtocol.getStamp() < 2 && staProtocol.isLoading()) { |
| | | //lfd入库印记 当stamp>=2时才入库 |
| | | staProtocol.setStamp(staProtocol.getStamp()+1); |
| | | staProtocol.setStamp(staProtocol.getStamp() + 1); |
| | | } |
| | | } |
| | | } |
| | |
| | | // } |
| | | //条码扫描器 |
| | | Thread.sleep(200); |
| | | OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.2",(short)(barcodeSize*8)); |
| | | if (result2.IsSuccess && 1!=1) { |
| | | if (slave.getId()==1){ |
| | | for (int i = 0; i < barcodeSize/3; i++) { |
| | | String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*8,8, "UTF-8"); |
| | | OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.2", (short) (barcodeSize * 8)); |
| | | if (result2.IsSuccess && 1 != 1) { |
| | | if (slave.getId() == 1) { |
| | | for (int i = 0; i < barcodeSize / 3; i++) { |
| | | String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 8, "UTF-8"); |
| | | BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1); |
| | | if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)){ |
| | | if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) { |
| | | // && !Cools.isEmpty(barcode) && Cools.isEmpty(barcodeThread.getBarcode())) { |
| | | barcodeThread.setBarcode(barcode); |
| | | } |
| | | } |
| | | }else if (slave.getId()==2){ |
| | | for (int i = barcodeSize/3; i < barcodeSize; i++) { |
| | | String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,(i-barcodeSize/3)*8,8, "UTF-8"); |
| | | } else if (slave.getId() == 2) { |
| | | for (int i = barcodeSize / 3; i < barcodeSize; i++) { |
| | | String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, (i - barcodeSize / 3) * 8, 8, "UTF-8"); |
| | | BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1); |
| | | if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)){ |
| | | if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) { |
| | | // && !Cools.isEmpty(barcode) && Cools.isEmpty(barcodeThread.getBarcode())) { |
| | | barcodeThread.setBarcode(barcode); |
| | | } |
| | | } |
| | | }else if (slave.getId()==3){ |
| | | for (int i = barcodeSize/3+1; i < barcodeSize; i++) { |
| | | String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,(i-(barcodeSize/3)*2)*8,8, "UTF-8"); |
| | | } else if (slave.getId() == 3) { |
| | | for (int i = barcodeSize / 3 + 1; i < barcodeSize; i++) { |
| | | String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, (i - (barcodeSize / 3) * 2) * 8, 8, "UTF-8"); |
| | | BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1); |
| | | if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)){ |
| | | if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) { |
| | | // && !Cools.isEmpty(barcode) && Cools.isEmpty(barcodeThread.getBarcode())) { |
| | | barcodeThread.setBarcode(barcode); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | // 外形检测 - 1楼 |
| | | Thread.sleep(50); |
| | | OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB101.1", (short)48); |
| | | if (result4.IsSuccess) { |
| | | StaProtocol staProtocol100 = station.get(100); |
| | | StaProtocol staProtocol110 = station.get(110); |
| | | for (int i=0 ;i<6;i++){ |
| | | boolean[] status = siemensS7Net.getByteTransform().TransBool(result4.Content, i, 1); |
| | | if (i==0){ |
| | | }else if (i==1){ |
| | | staProtocol100.setFrontErr(status[3]);// 前超限 |
| | | staProtocol100.setBackErr(status[4]);// 后超限 |
| | | staProtocol100.setHighErr(status[5]); // 高超限 |
| | | staProtocol100.setLeftErr(status[6]);// 左超限 |
| | | }else if (i==2){ |
| | | staProtocol100.setRightErr(status[0]);// 右超限 |
| | | |
| | | staProtocol110.setFrontErr(status[1]); |
| | | staProtocol110.setBackErr(status[2]); |
| | | staProtocol110.setHighErr(status[3]); |
| | | staProtocol110.setLeftErr(status[4]); |
| | | staProtocol110.setRightErr(status[5]); |
| | | }else if (i==3){ |
| | | }else if (i==4){ |
| | | staProtocol100.setBarcodeErr(status[2]); |
| | | staProtocol110.setBarcodeErr(status[3]); |
| | | }else if (i==5){ |
| | | staProtocol100.setWeightErr(status[0]); |
| | | staProtocol110.setWeightErr(status[1]); |
| | | staProtocol100.setBarcodeErr(status[2]); |
| | | staProtocol110.setBarcodeErr(status[3]); |
| | | Thread.sleep(200); |
| | | OperateResultExOne<byte[]> resultError = siemensS7Net.Read("DB101.102", (short) (8)); |
| | | if (resultError.IsSuccess) { |
| | | ArrayList<Integer> staNoError = new ArrayList<Integer>() {{ |
| | | add(102); |
| | | add(201); |
| | | add(211); |
| | | }}; |
| | | for (int i = 0; i < staNoError.size(); i++) { |
| | | Integer siteId = staNoError.get(i); // 站点编号 |
| | | StaProtocol staProtocol = station.get(siteId); |
| | | if (null == staProtocol) { |
| | | staProtocol = new StaProtocol(); |
| | | staProtocol.setSiteId(siteId); |
| | | station.put(siteId, staProtocol); |
| | | } |
| | | |
| | | boolean[] status = siemensS7Net.getByteTransform().TransBool(resultError.Content, i * 4 + 2, 1); |
| | | staProtocol.setFrontErr(status[0]);// 前超限 |
| | | staProtocol.setBackErr(status[1]);// 后超限 |
| | | staProtocol.setHighErr(status[2]);// 高超限 |
| | | staProtocol.setLeftErr(status[3]);// 左超限 |
| | | staProtocol.setRightErr(status[4]);// 右超限 |
| | | staProtocol.setWeightErr(status[5]); // 超重 |
| | | staProtocol.setBarcodeErr(status[6]);// 扫码失败 |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | if (result.IsSuccess && result1.IsSuccess) { |
| | | |
| | | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】[id:{1}] <<<<< 实时数据更新成功",DateUtils.convert(new Date()), slave.getId())); |
| | | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】[id:{1}] <<<<< 实时数据更新成功", DateUtils.convert(new Date()), slave.getId())); |
| | | |
| | | // 根据实时信息更新数据库 |
| | | try { |
| | |
| | | initSite(); |
| | | e.printStackTrace(); |
| | | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】更新数据库数据失败 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); |
| | | News.error("SiemensDevp"+" - 3"+" - 更新数据库数据失败 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); |
| | | News.error("SiemensDevp" + " - 3" + " - 更新数据库数据失败 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); |
| | | } |
| | | |
| | | } else { |