|  |  | 
 |  |  |     /** | 
 |  |  |      * 入出库  ===>>  堆垛机入出库作业下发 | 
 |  |  |      */ | 
 |  |  |     public synchronized void crnIoExecuteTwoExecute() { | 
 |  |  |     public synchronized void crnIoExecuteTwoExecute(Integer i) { | 
 |  |  |         for (CrnSlave crn : slaveProperties.getCrn()) { | 
 |  |  |             try{ | 
 |  |  |                 switch (crn.getId()){ | 
 |  |  |                     case 3: | 
 |  |  |                     case 4: | 
 |  |  |                     case 5: | 
 |  |  |                         crnWrkMastSplitTwinExecute(crn); | 
 |  |  |                         crnWrkMastSplitTwinExecute(crn,i); | 
 |  |  |                         continue; | 
 |  |  |                     default: | 
 |  |  |                         continue; | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     public synchronized boolean crnWrkMastSplitTwinExecute(CrnSlave crn){ | 
 |  |  |     public synchronized boolean crnWrkMastSplitTwinExecute(CrnSlave crn,Integer i){ | 
 |  |  |         try{ | 
 |  |  |             // 获取堆垛机信息 | 
 |  |  |             CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); | 
 |  |  | 
 |  |  |             // 只有当堆垛机自动时才继续执行 | 
 |  |  |             if (crnProtocol.getModeType() == CrnModeType.AUTO) { | 
 |  |  |                 // 只有当堆垛机工位1取货或者有物 并且 工位2无任务时才继续执行 | 
 |  |  |                 if (crnProtocol.getStatusType() == CrnStatusType.IDLE | 
 |  |  |                         && crnProtocol.getTaskNo() == 0 | 
 |  |  |                         && crnProtocol.getLoaded() == 0 | 
 |  |  |                         && crnProtocol.getForkPos() == 0) { | 
 |  |  |                     sign[0] = 1; | 
 |  |  |                     sign[1] = 1; | 
 |  |  |                 } else if (crnProtocol.getStatusType() == CrnStatusType.SEPARATE_IDLE | 
 |  |  |                         && crnProtocol.getTaskNo() == 0 | 
 |  |  |                         && crnProtocol.getLoaded() == 1 | 
 |  |  |                         && crnProtocol.getForkPos() == 0) { | 
 |  |  |                     sign[0] = 2; | 
 |  |  |                     sign[1] = 1; | 
 |  |  |                 } else if (crnProtocol.getStatusTypeTwo() == CrnStatusType.IDLE | 
 |  |  |                         && crnProtocol.getTaskNoTwo() == 0 | 
 |  |  |                         && crnProtocol.getLoadedTwo() == 0 | 
 |  |  |                         && crnProtocol.getForkPosTwo() == 0){ | 
 |  |  |                     sign[0] = 1; | 
 |  |  |                     sign[1] = 2; | 
 |  |  |                 } else if (crnProtocol.getStatusTypeTwo() == CrnStatusType.SEPARATE_IDLE | 
 |  |  |                         && crnProtocol.getTaskNoTwo() == 0 | 
 |  |  |                         && crnProtocol.getLoadedTwo() == 1 | 
 |  |  |                         && crnProtocol.getForkPosTwo() == 0){ | 
 |  |  |                     sign[0] = 2; | 
 |  |  |                     sign[1] = 2; | 
 |  |  |                 switch (i){ | 
 |  |  |                     case 1: | 
 |  |  |                         if (crnProtocol.getStatusType() == CrnStatusType.IDLE | 
 |  |  |                                 && crnProtocol.getTaskNo() == 0 | 
 |  |  |                                 && crnProtocol.getLoaded() == 0 | 
 |  |  |                                 && crnProtocol.getForkPos() == 0) { | 
 |  |  |                             sign[0] = 1; | 
 |  |  |                             sign[1] = 1; | 
 |  |  |                         } | 
 |  |  |                         break; | 
 |  |  |                     case 2: | 
 |  |  |                         if (crnProtocol.getStatusType() == CrnStatusType.SEPARATE_IDLE | 
 |  |  |                                 && crnProtocol.getTaskNo() == 0 | 
 |  |  |                                 && crnProtocol.getLoaded() == 1 | 
 |  |  |                                 && crnProtocol.getForkPos() == 0) { | 
 |  |  |                             sign[0] = 2; | 
 |  |  |                             sign[1] = 1; | 
 |  |  |                         } | 
 |  |  |                         break; | 
 |  |  |                     case 3: | 
 |  |  |                         if (crnProtocol.getStatusTypeTwo() == CrnStatusType.IDLE | 
 |  |  |                                 && crnProtocol.getTaskNoTwo() == 0 | 
 |  |  |                                 && crnProtocol.getLoadedTwo() == 0 | 
 |  |  |                                 && crnProtocol.getForkPosTwo() == 0){ | 
 |  |  |                             sign[0] = 1; | 
 |  |  |                             sign[1] = 2; | 
 |  |  |                         } | 
 |  |  |                         break; | 
 |  |  |                     case 4: | 
 |  |  |                         if (crnProtocol.getStatusTypeTwo() == CrnStatusType.SEPARATE_IDLE | 
 |  |  |                                 && crnProtocol.getTaskNoTwo() == 0 | 
 |  |  |                                 && crnProtocol.getLoadedTwo() == 1 | 
 |  |  |                                 && crnProtocol.getForkPosTwo() == 0){ | 
 |  |  |                             sign[0] = 2; | 
 |  |  |                             sign[1] = 2; | 
 |  |  |                         } | 
 |  |  |                         break; | 
 |  |  |                     default: | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |  |