|  |  | 
 |  |  |     private SiemensS7Net siemensS7Net; | 
 |  |  |     private Map<Integer, StaProtocol> station = new ConcurrentHashMap<>(); | 
 |  |  |  | 
 |  |  |     public IoModeType ioModeOf2_5 = IoModeType.PAKIN_MODE; | 
 |  |  |     public IoModeType ioModeOf2_5 = IoModeType.PAKOUT_MODE; | 
 |  |  |  | 
 |  |  |     private short heartBeatVal = 1; | 
 |  |  |     private int barcodeSize = 10; | 
 |  |  | 
 |  |  |                     case 2: | 
 |  |  |                         write((StaProtocol) task.getData()); | 
 |  |  |                         read(); | 
 |  |  |                         break; | 
 |  |  |                     // 报警 | 
 |  |  |                     case 3: | 
 |  |  |                         writeError((Integer) task.getData()); | 
 |  |  |                         break; | 
 |  |  |                     default: | 
 |  |  |                         break; | 
 |  |  | 
 |  |  |                 staProtocol.setInEnable(status[3]); // 可入 | 
 |  |  |                 staProtocol.setOutEnable(status[4]);// 可出 | 
 |  |  |  | 
 |  |  |  | 
 |  |  |                 staProtocol.setBackErr(status[5]); | 
 |  |  |                 staProtocol.setLeftErr(status[6]); | 
 |  |  |                 staProtocol.setRightErr(status[7]); | 
 |  |  | 
 |  |  |                 staProtocol.setWeightErr(status2[1]); | 
 |  |  |                 staProtocol.setLow(status2[2]); | 
 |  |  |                 staProtocol.setHigh(status2[3]); | 
 |  |  |                 staProtocol.setBarcodeErr(status2[4]); | 
 |  |  | //                staProtocol.setInEnable(status[13]); // 可入 | 
 |  |  | //                staProtocol.setOutEnable(status[14]);// 可出 | 
 |  |  |  | 
 |  |  | 
 |  |  |                     BasDevp sqlModel = staProtocol.toSqlModel(); | 
 |  |  |                     stations.add(sqlModel); | 
 |  |  |  | 
 |  |  |                     //暂时写入数据库 | 
 |  |  |                     BasDevp basDevp = basConveyorStaService.selectById(sta); | 
 |  |  |                     if (basDevp == null) { | 
 |  |  |                         basConveyorStaService.insert(sqlModel); | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                 } | 
 |  |  |                 if (!stations.isEmpty()) { | 
 |  |  |                     if (null != basConveyorStaService && !basConveyorStaService.updateBatchById(stations)) { | 
 |  |  | 
 |  |  |         } | 
 |  |  |         OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线站点数据成功。输送线plc编号={1},站点数据={2}", slave.getId(), JSON.toJSON(array))); | 
 |  |  |         log.info("写入输送线站点数据成功。输送线plc编号={},站点数据={}", slave.getId(), JSON.toJSON(array)); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 报警 | 
 |  |  |      */ | 
 |  |  |     private void writeError(Integer staNo) throws InterruptedException { | 
 |  |  |         if (null == staNo) { | 
 |  |  |             return; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         ArrayList<Integer> lift1 = new ArrayList<Integer>() {{ | 
 |  |  |             add(1011); | 
 |  |  |             add(1012); | 
 |  |  |         }}; | 
 |  |  |  | 
 |  |  |         ArrayList<Integer> lift2 = new ArrayList<Integer>() {{ | 
 |  |  |             add(1021); | 
 |  |  |             add(1022); | 
 |  |  |             add(1023); | 
 |  |  |         }}; | 
 |  |  |  | 
 |  |  |         ArrayList<Integer> devp1 = new ArrayList<Integer>() {{ | 
 |  |  |             add(1013); | 
 |  |  |             add(1014); | 
 |  |  |             add(1015); | 
 |  |  |         }}; | 
 |  |  |  | 
 |  |  |         ArrayList<Integer> devp2 = new ArrayList<Integer>() {{ | 
 |  |  |             add(1024); | 
 |  |  |             add(1025); | 
 |  |  |             add(1026); | 
 |  |  |         }}; | 
 |  |  |  | 
 |  |  |         String dbAddress = "DB82.48"; | 
 |  |  |         if (lift1.contains(staNo)) { | 
 |  |  |             dbAddress = "DB82.48"; | 
 |  |  |         } else if (lift2.contains(staNo)) { | 
 |  |  |             dbAddress = "DB82.178"; | 
 |  |  |         } else if (devp1.contains(staNo)) { | 
 |  |  |             dbAddress = "DB82.100"; | 
 |  |  |         } else if (devp2.contains(staNo)) { | 
 |  |  |             dbAddress = "DB82.256"; | 
 |  |  |         }else { | 
 |  |  |             return; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         OperateResult write1 = siemensS7Net.Write(dbAddress, (short) 1); | 
 |  |  |         if (!write1.IsSuccess) { | 
 |  |  |             OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线站点报警数据失败。输送线plc编号={1},站点数据={2}", slave.getId(), JSON.toJSON(true))); | 
 |  |  |             log.error("写入输送线站点报警数据失败。输送线plc编号={},站点数据={}", slave.getId(), JSON.toJSON(true)); | 
 |  |  |             return; | 
 |  |  |         } | 
 |  |  |         OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线站点报警数据成功。输送线plc编号={1},站点数据={2}", slave.getId(), JSON.toJSON(true))); | 
 |  |  |         log.info("写入输送线站点报警数据成功。输送线plc编号={},站点数据={}", slave.getId(), JSON.toJSON(true)); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     // 更新入出库模式 | 
 |  |  |     private void updateIoMode() throws InterruptedException { | 
 |  |  |     private void updateIoMode() { | 
 |  |  |         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) { | 
 |  |  |             short[] array = new short[1]; | 
 |  |  |             array[0] = this.ioModeOf2_5.id; | 
 |  |  |             if (!siemensS7Net.Write("DB83.80", this.ioModeOf2_5.id == 1).IsSuccess) { | 
 |  |  |                 OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线2.5F入出库模式失败", this.ioModeOf2_5)); | 
 |  |  |                 log.error("【{0}】写入输送线2.5F入出库模式失败。输送线plc编号={}", this.ioModeOf2_5); | 
 |  |  |             } else { |