|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public LocTypeDto(StaProtocol staProtocol) { | 
|---|
|  |  |  | //        if (staProtocol.isHigh() == staProtocol.isLow()) { | 
|---|
|  |  |  | //            throw new CoolException("plc高低检测异常"); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | if (staProtocol.getSiteId() == 106 || staProtocol.getSiteId() == 159){ | 
|---|
|  |  |  | this.locType1 = 2; // 高库位 | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | this.locType1 = 1; // 低库位 | 
|---|
|  |  |  | if (staProtocol.locType.id.shortValue()!=1 && staProtocol.locType.id.shortValue()!=2 && staProtocol.locType.id.shortValue()!=3) { | 
|---|
|  |  |  | throw new CoolException("plc高低检测异常"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.locType1 = staProtocol.locType.id.shortValue(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 复位信号 | 
|---|
|  |  |  | if (!Cools.isEmpty(crnProtocol.getStatusType()) && crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) { | 
|---|
|  |  |  | News.error("---第一步、[堆垛机号:{}, 工作号:{}, 载货台信号:{}]==>> 状态为10,等待确认!!", | 
|---|
|  |  |  | slave.getId(),crnProtocol.getTaskNo(), crnProtocol.getLoaded()==1 ? "有物" : "无物"); | 
|---|
|  |  |  | //                    News.error("---第一步、[堆垛机号:{}, 工作号:{}, 载货台信号:{}]==>> 状态为10,等待确认!!", | 
|---|
|  |  |  | //                            slave.getId(),crnProtocol.getTaskNo(), crnProtocol.getLoaded()==1 ? "有物" : "无物"); | 
|---|
|  |  |  | if (resetFlag) { | 
|---|
|  |  |  | if(crnProtocol.getTaskNo()==9999){ | 
|---|
|  |  |  | backHpFlag = false; | 
|---|
|  |  |  | 
|---|
|  |  |  | crnCommand.setAckFinish((short)1); | 
|---|
|  |  |  | if (write(crnCommand)) { | 
|---|
|  |  |  | resetFlag = false; | 
|---|
|  |  |  | News.error("---第二步、[堆垛机号:{}, 工作号:{}]==>> 复位resetFlag标记成功{}!!", | 
|---|
|  |  |  | slave.getId(), wrkNo, resetFlag); | 
|---|
|  |  |  | //                            News.error("---第二步、[堆垛机号:{}, 工作号:{}]==>> 复位resetFlag标记成功{}!!", | 
|---|
|  |  |  | //                                    slave.getId(), wrkNo, resetFlag); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | add(1000);    add(1001);    add(1002);    add(1003);    add(1004);    add(1005);    add(1006);    add(1007);    add(1008);    add(1009);    add(1010); | 
|---|
|  |  |  | add(1011);    add(1012);    add(1013);    add(1014);    add(1015);    add(1016);    add(1017);    add(1018);    add(1019);    add(1020);    add(1021); | 
|---|
|  |  |  | add(1022);    add(1023);    add(1024);    add(1025);    add(1026);    add(1027);    add(1028);    add(1029);    add(1030); | 
|---|
|  |  |  | add(2000); add(2001); add(2002); add(2003); add(2004);add(2005); add(2006); add(2007); | 
|---|
|  |  |  | //        add(200);add(201);add(202); | 
|---|
|  |  |  | }}; | 
|---|
|  |  |  | public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{ | 
|---|
|  |  |  | add(1400); | 
|---|
|  |  |  | add(1040);add(1041);add(1042);add(1043);add(1044);add(1045);add(1046);add(1047); | 
|---|
|  |  |  | add(2010);add(2011);add(2012);add(2013);add(2014);add(2015);add(2016);add(2017); | 
|---|
|  |  |  | add(3010);add(3011);add(3012);add(3013);add(3014);add(3015);add(3016);add(3017); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //        add(200);add(201);add(202); | 
|---|
|  |  |  | }}; | 
|---|
|  |  |  | 
|---|
|  |  |  | // 写数据 ID+目标站 | 
|---|
|  |  |  | case 2: | 
|---|
|  |  |  | writeD((StaProtocol)task.getData(),1); | 
|---|
|  |  |  | log.error("输送线下发命令:"+((StaProtocol) task.getData()).getWorkNo()+","+((StaProtocol) task.getData()).getStaNo()); | 
|---|
|  |  |  | //                        log.error("输送线下发命令:"+((StaProtocol) task.getData()).getWorkNo()+","+((StaProtocol) task.getData()).getStaNo()); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | default: | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void writeD(StaProtocol staProtocol,Integer count)throws InterruptedException{ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | boolean reset = true; | 
|---|
|  |  |  | if (null == staProtocol) { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | staProtocol = staProtocol.clone(); | 
|---|
|  |  |  | Integer oriWrkNo = staProtocol.getWorkNo(); | 
|---|
|  |  |  | short oriStaNo = staProtocol.getStaNo(); | 
|---|
|  |  |  | ArrayList<Integer> staNos = getStaNo(); | 
|---|
|  |  |  | int index = staNos.indexOf(staProtocol.getSiteId()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(writeWrk(staProtocol,1)){ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | int whileCount = 0; | 
|---|
|  |  |  | OperateResult write3 = siemensS7Net.Write("DB100." + (index*66+6), (short) 1); | 
|---|
|  |  |  | if (write3.IsSuccess){ | 
|---|
|  |  |  | News.info("输送线命令下发[id:"+slave.getId()+"] >>>>>"+"["+1+"]"); | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | do { | 
|---|
|  |  |  | OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB100."+(index*66 +6), (short) 2); | 
|---|
|  |  |  | short mk = siemensS7Net.getByteTransform().TransInt16(result2.Content, 0); | 
|---|
|  |  |  | if (mk == 2){ | 
|---|
|  |  |  | OperateResult write5 = siemensS7Net.Write("DB100." + index*66, 0);    // 工作号 | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | OperateResult write6 = siemensS7Net.Write("DB100." + (index*66+4), (short) 0);    // 目标站 | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | OperateResult write4 = siemensS7Net.Write("DB100." + (index*66+6), (short) 0); | 
|---|
|  |  |  | reset = false; | 
|---|
|  |  |  | if (write4.IsSuccess && write5.IsSuccess && write6.IsSuccess){ | 
|---|
|  |  |  | News.info("输送线命令下发[id:"+slave.getId()+"] >>>>>"+"["+"0,0,0"+"]"); | 
|---|
|  |  |  | OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB100."+(index*66), (short) 8); | 
|---|
|  |  |  | Integer wrkNo1 = siemensS7Net.getByteTransform().TransInt32(result1.Content, 0); | 
|---|
|  |  |  | short staNo1 = siemensS7Net.getByteTransform().TransInt16(result1.Content, 4); | 
|---|
|  |  |  | short mk1 = siemensS7Net.getByteTransform().TransInt16(result1.Content, 6); | 
|---|
|  |  |  | if (wrkNo1 != 0 || staNo1 !=0 || mk1 !=0){ | 
|---|
|  |  |  | whileCount++; | 
|---|
|  |  |  | News.info("复位失败,输送线命令下发[id:"+slave.getId()+"] >>>>>"+"["+"0,0,0"+"]"); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | News.info("输送线复位完成"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else if (reset && mk == 0 ){ | 
|---|
|  |  |  | OperateResult write7 = siemensS7Net.Write("DB100." + (index*66+6), (short) 1); | 
|---|
|  |  |  | News.info("回读1失败,输送线命令下发[id:"+slave.getId()+"] >>>>>"+"["+"1"+"]"); | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | whileCount++; | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | whileCount++; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }while (whileCount <10); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | log.error("输送命令下发失败"+JSON.toJSONString(staProtocol)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private boolean writeWrk(StaProtocol staProtocol,Integer count)throws InterruptedException { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (null == staProtocol) { | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Integer oriWrkNo = staProtocol.getWorkNo(); | 
|---|
|  |  |  | short oriStaNo = staProtocol.getStaNo(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ArrayList<Integer> staNos = getStaNo(); | 
|---|
|  |  |  | int index = staNos.indexOf(staProtocol.getSiteId()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | OperateResult write1 = siemensS7Net.Write("DB100." + index*66, staProtocol.getWorkNo());    // 工作号 | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | OperateResult write2 = siemensS7Net.Write("DB100." + (index*66+4), staProtocol.getStaNo());    // 目标站 | 
|---|
|  |  |  | if(write1.IsSuccess && write2.IsSuccess){ | 
|---|
|  |  |  | OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100."+(index*66), (short) 6); | 
|---|
|  |  |  | Integer wrkNo = siemensS7Net.getByteTransform().TransInt32(result.Content, 0); | 
|---|
|  |  |  | short staNo = siemensS7Net.getByteTransform().TransInt16(result.Content, 4); | 
|---|
|  |  |  | if (!oriWrkNo.equals(wrkNo)  || oriStaNo != staNo){ | 
|---|
|  |  |  | if (count >= 5){ | 
|---|
|  |  |  | log.error("写入输送线命令失败。输送线plc编号={},站点数据={},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), count); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | count++; | 
|---|
|  |  |  | writeD(staProtocol,count); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | int whileCount = 0; | 
|---|
|  |  |  | OperateResult write3 = siemensS7Net.Write("DB100." + (index*66+6), (short) 1); | 
|---|
|  |  |  | if (write3.IsSuccess){ | 
|---|
|  |  |  | Thread.sleep(200); | 
|---|
|  |  |  | do { | 
|---|
|  |  |  | OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB100."+(index*66 +6), (short) 2); | 
|---|
|  |  |  | short mk = siemensS7Net.getByteTransform().TransInt16(result2.Content, 0); | 
|---|
|  |  |  | if (mk == 2){ | 
|---|
|  |  |  | OperateResult write5 = siemensS7Net.Write("DB100." + index*66, 0);    // 工作号 | 
|---|
|  |  |  | OperateResult write6 = siemensS7Net.Write("DB100." + (index*66+4), (short) 0);    // 目标站 | 
|---|
|  |  |  | OperateResult write4 = siemensS7Net.Write("DB100." + (index*66+6), (short) 0); | 
|---|
|  |  |  | if (write4.IsSuccess){ | 
|---|
|  |  |  | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】 输送线命令下发 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol))); | 
|---|
|  |  |  | News.info("SiemensDevp"+" - 5"+" - 输送线命令下发 [id:{}] >>>>> 命令下发: {}",  slave.getId(), JSON.toJSON(staProtocol)); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | whileCount++; | 
|---|
|  |  |  | do { | 
|---|
|  |  |  | log.info("输送递归次数:" + count); | 
|---|
|  |  |  | OperateResult write1 = siemensS7Net.Write("DB100." + index * 66, staProtocol.getWorkNo());    // 工作号 | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | OperateResult write2 = siemensS7Net.Write("DB100." + (index * 66 + 4), staProtocol.getStaNo());    // 目标站 | 
|---|
|  |  |  | if (write1.IsSuccess && write2.IsSuccess) { | 
|---|
|  |  |  | News.info("输送线命令下发[id:" + slave.getId() + "] >>>>>" + "[" + staProtocol.getWorkNo() + "," + staProtocol.getStaNo() + "]"); | 
|---|
|  |  |  | OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100." + (index * 66), (short) 6); | 
|---|
|  |  |  | Integer wrkNo = siemensS7Net.getByteTransform().TransInt32(result.Content, 0); | 
|---|
|  |  |  | short staNo = siemensS7Net.getByteTransform().TransInt16(result.Content, 4); | 
|---|
|  |  |  | if (!oriWrkNo.equals(wrkNo) || oriStaNo != staNo) { | 
|---|
|  |  |  | if (count >= 5) { | 
|---|
|  |  |  | log.error("写入输送线命令失败。输送线plc编号={},站点数据={},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), count); | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }while (whileCount <5); | 
|---|
|  |  |  | count++; | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }while (count <=5); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 更新入出库模式 | 
|---|
|  |  |  | 
|---|
|  |  |  | row: 2 | 
|---|
|  |  |  | bay: 47 | 
|---|
|  |  |  | lev: 1 | 
|---|
|  |  |  | # 堆垛机入库站点 | 
|---|
|  |  |  | crnInStn[1]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[0].id} | 
|---|
|  |  |  | staNo: 2003 | 
|---|
|  |  |  | row: 3 | 
|---|
|  |  |  | bay: 47 | 
|---|
|  |  |  | lev: 2 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 堆垛机出库站点 | 
|---|
|  |  |  | crnOutStn[0]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[0].id} | 
|---|
|  |  |  | 
|---|
|  |  |  | row: 3 | 
|---|
|  |  |  | bay: 47 | 
|---|
|  |  |  | lev: 1 | 
|---|
|  |  |  | # 堆垛机出库站点 | 
|---|
|  |  |  | crnOutStn[1]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[0].id} | 
|---|
|  |  |  | staNo: 2003 | 
|---|
|  |  |  | row: 3 | 
|---|
|  |  |  | bay: 47 | 
|---|
|  |  |  | lev: 2 | 
|---|
|  |  |  | crnInStn[2]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[1].id} | 
|---|
|  |  |  | staNo: 1043 | 
|---|
|  |  |  | row: 3 | 
|---|
|  |  |  | bay: 1 | 
|---|
|  |  |  | lev: 1 | 
|---|
|  |  |  | # 堆垛机出库站点 | 
|---|
|  |  |  | crnOutStn[2]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[1].id} | 
|---|
|  |  |  | staNo: 1043 | 
|---|
|  |  |  | row: 3 | 
|---|
|  |  |  | bay: 1 | 
|---|
|  |  |  | lev: 1 | 
|---|
|  |  |  | crnInStn[3]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[1].id} | 
|---|
|  |  |  | staNo: 2013 | 
|---|
|  |  |  | row: 3 | 
|---|
|  |  |  | bay: 1 | 
|---|
|  |  |  | lev: 2 | 
|---|
|  |  |  | # 堆垛机出库站点 | 
|---|
|  |  |  | crnOutStn[3]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[1].id} | 
|---|
|  |  |  | staNo: 2013 | 
|---|
|  |  |  | row: 3 | 
|---|
|  |  |  | bay: 1 | 
|---|
|  |  |  | lev: 2 | 
|---|
|  |  |  | crnInStn[4]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[1].id} | 
|---|
|  |  |  | staNo: 3013 | 
|---|
|  |  |  | row: 3 | 
|---|
|  |  |  | bay: 1 | 
|---|
|  |  |  | lev: 3 | 
|---|
|  |  |  | # 堆垛机出库站点 | 
|---|
|  |  |  | crnOutStn[4]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[1].id} | 
|---|
|  |  |  | staNo: 3013 | 
|---|
|  |  |  | row: 3 | 
|---|
|  |  |  | bay: 1 | 
|---|
|  |  |  | lev: 3 | 
|---|
|  |  |  | # 堆垛机2 | 
|---|
|  |  |  | crn[1]: | 
|---|
|  |  |  | id: 2 | 
|---|
|  |  |  | 
|---|
|  |  |  | row: 6 | 
|---|
|  |  |  | bay: 47 | 
|---|
|  |  |  | lev: 1 | 
|---|
|  |  |  | # 堆垛机入库站点 | 
|---|
|  |  |  | crnInStn[1]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[0].id} | 
|---|
|  |  |  | staNo: 2004 | 
|---|
|  |  |  | row: 6 | 
|---|
|  |  |  | bay: 47 | 
|---|
|  |  |  | lev: 2 | 
|---|
|  |  |  | # 堆垛机出库站点 | 
|---|
|  |  |  | crnOutStn[1]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[0].id} | 
|---|
|  |  |  | staNo: 2004 | 
|---|
|  |  |  | row: 6 | 
|---|
|  |  |  | bay: 47 | 
|---|
|  |  |  | lev: 2 | 
|---|
|  |  |  | # 堆垛机入库站点 | 
|---|
|  |  |  | crnInStn[2]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[1].id} | 
|---|
|  |  |  | staNo: 1044 | 
|---|
|  |  |  | row: 6 | 
|---|
|  |  |  | bay: 1 | 
|---|
|  |  |  | lev: 1 | 
|---|
|  |  |  | # 堆垛机出库站点 | 
|---|
|  |  |  | crnOutStn[2]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[1].id} | 
|---|
|  |  |  | staNo: 1044 | 
|---|
|  |  |  | row: 6 | 
|---|
|  |  |  | bay: 1 | 
|---|
|  |  |  | lev: 1 | 
|---|
|  |  |  | # 堆垛机入库站点 | 
|---|
|  |  |  | crnInStn[3]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[1].id} | 
|---|
|  |  |  | staNo: 2014 | 
|---|
|  |  |  | row: 6 | 
|---|
|  |  |  | bay: 1 | 
|---|
|  |  |  | lev: 2 | 
|---|
|  |  |  | # 堆垛机出库站点 | 
|---|
|  |  |  | crnOutStn[3]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[1].id} | 
|---|
|  |  |  | staNo: 2014 | 
|---|
|  |  |  | row: 6 | 
|---|
|  |  |  | bay: 1 | 
|---|
|  |  |  | lev: 2 | 
|---|
|  |  |  | # 堆垛机入库站点 | 
|---|
|  |  |  | crnInStn[4]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[1].id} | 
|---|
|  |  |  | staNo: 3014 | 
|---|
|  |  |  | row: 6 | 
|---|
|  |  |  | bay: 1 | 
|---|
|  |  |  | lev: 3 | 
|---|
|  |  |  | # 堆垛机出库站点 | 
|---|
|  |  |  | crnOutStn[4]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[1].id} | 
|---|
|  |  |  | staNo: 3014 | 
|---|
|  |  |  | row: 6 | 
|---|
|  |  |  | bay: 1 | 
|---|
|  |  |  | lev: 3 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 输送线1 | 
|---|
|  |  |  | devp[0]: | 
|---|
|  |  |  | 
|---|
|  |  |  | staNo: 1001 | 
|---|
|  |  |  | backSta: 1000 | 
|---|
|  |  |  | led: ${wcs-slave.led[1].id} | 
|---|
|  |  |  | inSta[1]: | 
|---|
|  |  |  | staNo: 2001 | 
|---|
|  |  |  | backSta: 2000 | 
|---|
|  |  |  | led: ${wcs-slave.led[1].id} | 
|---|
|  |  |  | # 空板入库口1 | 
|---|
|  |  |  | emptyInSta[0]: | 
|---|
|  |  |  | staNo: 1001 | 
|---|
|  |  |  | 
|---|
|  |  |  | emptyInSta[1]: | 
|---|
|  |  |  | staNo: 1025 | 
|---|
|  |  |  | backSta: 1000 | 
|---|
|  |  |  | led: ${wcs-slave.led[1].id} | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 空板入库口1 | 
|---|
|  |  |  | emptyInSta[2]: | 
|---|
|  |  |  | staNo: 2001 | 
|---|
|  |  |  | backSta: 200 | 
|---|
|  |  |  | led: ${wcs-slave.led[1].id} | 
|---|
|  |  |  | # 出库口1 | 
|---|
|  |  |  | outSta[0]: | 
|---|
|  |  |  | 
|---|
|  |  |  | slot: 0 | 
|---|
|  |  |  | # 入库口1 | 
|---|
|  |  |  | inSta[0]: | 
|---|
|  |  |  | staNo: 106 | 
|---|
|  |  |  | backSta: 105 | 
|---|
|  |  |  | staNo: 1041 | 
|---|
|  |  |  | backSta: 1040 | 
|---|
|  |  |  | led: ${wcs-slave.led[1].id} | 
|---|
|  |  |  | # 入库口1 | 
|---|
|  |  |  | inSta[1]: | 
|---|
|  |  |  | staNo: 2011 | 
|---|
|  |  |  | backSta: 2010 | 
|---|
|  |  |  | led: ${wcs-slave.led[1].id} | 
|---|
|  |  |  | # 入库口1 | 
|---|
|  |  |  | inSta[2]: | 
|---|
|  |  |  | staNo: 3011 | 
|---|
|  |  |  | backSta: 3010 | 
|---|
|  |  |  | led: ${wcs-slave.led[1].id} | 
|---|
|  |  |  | # 空板入库口1 | 
|---|
|  |  |  | emptyInSta[0]: | 
|---|
|  |  |  | staNo: 106 | 
|---|
|  |  |  | backSta: 105 | 
|---|
|  |  |  | staNo: 1041 | 
|---|
|  |  |  | backSta: 1040 | 
|---|
|  |  |  | led: ${wcs-slave.led[1].id} | 
|---|
|  |  |  | # 空板入库口1 | 
|---|
|  |  |  | emptyInSta[1]: | 
|---|
|  |  |  | staNo: 2011 | 
|---|
|  |  |  | backSta: 2010 | 
|---|
|  |  |  | led: ${wcs-slave.led[1].id} | 
|---|
|  |  |  | # 空板入库口1 | 
|---|
|  |  |  | emptyInSta[2]: | 
|---|
|  |  |  | staNo: 3011 | 
|---|
|  |  |  | backSta: 3010 | 
|---|
|  |  |  | led: ${wcs-slave.led[1].id} | 
|---|
|  |  |  | # 拣料入库口1 | 
|---|
|  |  |  | pickSta[0]: | 
|---|
|  |  |  | staNo: 159 | 
|---|
|  |  |  | staNo: 1041 | 
|---|
|  |  |  | led: ${wcs-slave.led[5].id} | 
|---|
|  |  |  | backSta: 160 | 
|---|
|  |  |  | backSta: 1040 | 
|---|
|  |  |  | # 拣料入库口1 | 
|---|
|  |  |  | pickSta[1]: | 
|---|
|  |  |  | staNo: 2011 | 
|---|
|  |  |  | led: ${wcs-slave.led[5].id} | 
|---|
|  |  |  | backSta: 2010 | 
|---|
|  |  |  | # 拣料入库口1 | 
|---|
|  |  |  | pickSta[2]: | 
|---|
|  |  |  | staNo: 3011 | 
|---|
|  |  |  | led: ${wcs-slave.led[5].id} | 
|---|
|  |  |  | backSta: 3010 | 
|---|
|  |  |  | # 出库口1 | 
|---|
|  |  |  | outSta[0]: | 
|---|
|  |  |  | staNo: 100 | 
|---|
|  |  |  | staNo: 1040 | 
|---|
|  |  |  | led: ${wcs-slave.led[0].id} | 
|---|
|  |  |  | outSta[1]: | 
|---|
|  |  |  | staNo: 152 | 
|---|
|  |  |  | staNo: 1042 | 
|---|
|  |  |  | led: ${wcs-slave.led[3].id} | 
|---|
|  |  |  | outSta[2]: | 
|---|
|  |  |  | staNo: 156 | 
|---|
|  |  |  | led: ${wcs-slave.led[4].id} | 
|---|
|  |  |  | staNo: 2010 | 
|---|
|  |  |  | led: ${wcs-slave.led[3].id} | 
|---|
|  |  |  | outSta[3]: | 
|---|
|  |  |  | staNo: 2012 | 
|---|
|  |  |  | led: ${wcs-slave.led[3].id} | 
|---|
|  |  |  | outSta[4]: | 
|---|
|  |  |  | staNo: 3010 | 
|---|
|  |  |  | led: ${wcs-slave.led[3].id} | 
|---|
|  |  |  | outSta[5]: | 
|---|
|  |  |  | staNo: 3012 | 
|---|
|  |  |  | led: ${wcs-slave.led[3].id} | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # LED1 | 
|---|
|  |  |  | led[0]: | 
|---|
|  |  |  | 
|---|
|  |  |  | .floorBtn { | 
|---|
|  |  |  | position: absolute; | 
|---|
|  |  |  | border-radius: 5px; | 
|---|
|  |  |  | left: 1750px; | 
|---|
|  |  |  | left: 10px; | 
|---|
|  |  |  | width: 90px; | 
|---|
|  |  |  | height: 40px; | 
|---|
|  |  |  | color: #ffffff; | 
|---|
|  |  |  | 
|---|
|  |  |  | let floor = areas[i].text | 
|---|
|  |  |  | let barcodes = areas[i].barcode | 
|---|
|  |  |  | floorId = areas[i].id | 
|---|
|  |  |  | var position = (i+1)*100 | 
|---|
|  |  |  | var position = (i+1)*100 +400 | 
|---|
|  |  |  | floorBtn = | 
|---|
|  |  |  | "<button class='floorBtn btn-16' onclick='changFloor("+i+")' style='top: "+position+"px;'>" + floor +"</button>" | 
|---|
|  |  |  | "<button class='floorBtn btn-16' onclick='changFloor("+i+")' style='top: "+10+"px;left: "+position+"px;'>" + floor +"</button>" | 
|---|
|  |  |  | if (mapInfo.areas[0].floors.length == 1) { | 
|---|
|  |  |  | floorBtnss = '' | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | 
|---|
|  |  |  | "text": "#16", | 
|---|
|  |  |  | "top": 167, | 
|---|
|  |  |  | "left": 1810, | 
|---|
|  |  |  | "width": 30, | 
|---|
|  |  |  | "height": 23 | 
|---|
|  |  |  | "width": 0, | 
|---|
|  |  |  | "height": 0 | 
|---|
|  |  |  | }, { | 
|---|
|  |  |  | "type": "rackDescs", | 
|---|
|  |  |  | "id": "lb_desc2", | 
|---|
|  |  |  | "text": "#1", | 
|---|
|  |  |  | "top": 596, | 
|---|
|  |  |  | "left": 1810, | 
|---|
|  |  |  | "width": 30, | 
|---|
|  |  |  | "height": 23 | 
|---|
|  |  |  | "width": 0, | 
|---|
|  |  |  | "height": 0 | 
|---|
|  |  |  | }], | 
|---|
|  |  |  | "crns": [{ | 
|---|
|  |  |  | "type": "track", | 
|---|
|  |  |  | 
|---|
|  |  |  | "height": 20 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ] | 
|---|
|  |  |  | },{ | 
|---|
|  |  |  | "type": "floor", | 
|---|
|  |  |  | "id": "page_floor2", | 
|---|
|  |  |  | "text": "2F", | 
|---|
|  |  |  | "top": 4, | 
|---|
|  |  |  | "left": 22, | 
|---|
|  |  |  | "width": 1819, | 
|---|
|  |  |  | "height": 668, | 
|---|
|  |  |  | "stns":[ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | "type": "stn", | 
|---|
|  |  |  | "id": "site-2004", | 
|---|
|  |  |  | "text": "2004", | 
|---|
|  |  |  | "top": 300, | 
|---|
|  |  |  | "left": 1510, | 
|---|
|  |  |  | "width": 80, | 
|---|
|  |  |  | "height": 19 | 
|---|
|  |  |  | },{ | 
|---|
|  |  |  | "type": "stn", | 
|---|
|  |  |  | "id": "site-2006", | 
|---|
|  |  |  | "text": "2006", | 
|---|
|  |  |  | "top": 300, | 
|---|
|  |  |  | "left": 1592, | 
|---|
|  |  |  | "width": 80, | 
|---|
|  |  |  | "height": 19 | 
|---|
|  |  |  | },{ | 
|---|
|  |  |  | "type": "stn", | 
|---|
|  |  |  | "id": "site-2003", | 
|---|
|  |  |  | "text": "2003", | 
|---|
|  |  |  | "top": 239, | 
|---|
|  |  |  | "left": 1510, | 
|---|
|  |  |  | "width": 80, | 
|---|
|  |  |  | "height": 19 | 
|---|
|  |  |  | },{ | 
|---|
|  |  |  | "type": "stn", | 
|---|
|  |  |  | "id": "site-2005", | 
|---|
|  |  |  | "text": "2005", | 
|---|
|  |  |  | "top": 239, | 
|---|
|  |  |  | "left": 1592, | 
|---|
|  |  |  | "width": 80, | 
|---|
|  |  |  | "height": 19 | 
|---|
|  |  |  | },{ | 
|---|
|  |  |  | "type": "track", | 
|---|
|  |  |  | "id": "lb_track9", | 
|---|
|  |  |  | "text": "", | 
|---|
|  |  |  | "top": 180, | 
|---|
|  |  |  | "left": 1680, | 
|---|
|  |  |  | "width": 2, | 
|---|
|  |  |  | "height": 500 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ,{ | 
|---|
|  |  |  | "type": "track", | 
|---|
|  |  |  | "id": "lb_track10", | 
|---|
|  |  |  | "text": "", | 
|---|
|  |  |  | "top": 180, | 
|---|
|  |  |  | "left": 1720, | 
|---|
|  |  |  | "width": 2, | 
|---|
|  |  |  | "height": 500 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ,{ | 
|---|
|  |  |  | "type": "stn", | 
|---|
|  |  |  | "id": "site-2001", | 
|---|
|  |  |  | "text": "2001", | 
|---|
|  |  |  | "top": 239, | 
|---|
|  |  |  | "left": 1756, | 
|---|
|  |  |  | "width": 80, | 
|---|
|  |  |  | "height": 19 | 
|---|
|  |  |  | },{ | 
|---|
|  |  |  | "type": "stn", | 
|---|
|  |  |  | "id": "site-2000", | 
|---|
|  |  |  | "text": "2000", | 
|---|
|  |  |  | "top": 239, | 
|---|
|  |  |  | "left": 1838, | 
|---|
|  |  |  | "width": 80, | 
|---|
|  |  |  | "height": 19 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ,{ | 
|---|
|  |  |  | "type": "stn", | 
|---|
|  |  |  | "id": "site-2007", | 
|---|
|  |  |  | "text": "2007", | 
|---|
|  |  |  | "top": 300, | 
|---|
|  |  |  | "left": 1674, | 
|---|
|  |  |  | "width": 80, | 
|---|
|  |  |  | "height": 19 | 
|---|
|  |  |  | },{ | 
|---|
|  |  |  | "type": "stn", | 
|---|
|  |  |  | "id": "site-2002", | 
|---|
|  |  |  | "text": "2002", | 
|---|
|  |  |  | "top": 350, | 
|---|
|  |  |  | "left": 1756, | 
|---|
|  |  |  | "width": 80, | 
|---|
|  |  |  | "height": 19 | 
|---|
|  |  |  | },{ | 
|---|
|  |  |  | "type": "stn", | 
|---|
|  |  |  | "id": "site-2015", | 
|---|
|  |  |  | "text": "2015", | 
|---|
|  |  |  | "top": 239, | 
|---|
|  |  |  | "left": 365, | 
|---|
|  |  |  | "width": 80, | 
|---|
|  |  |  | "height": 19 | 
|---|
|  |  |  | }, { | 
|---|
|  |  |  | "type": "stn", | 
|---|
|  |  |  | "id": "site-2013", | 
|---|
|  |  |  | "text": "2013", | 
|---|
|  |  |  | "top": 239, | 
|---|
|  |  |  | "left": 448, | 
|---|
|  |  |  | "width": 80, | 
|---|
|  |  |  | "height": 19 | 
|---|
|  |  |  | },  { | 
|---|
|  |  |  | "type": "stn", | 
|---|
|  |  |  | "id": "site-2016", | 
|---|
|  |  |  | "text": "2016", | 
|---|
|  |  |  | "top": 352, | 
|---|
|  |  |  | "left": 365, | 
|---|
|  |  |  | "width": 80, | 
|---|
|  |  |  | "height": 19 | 
|---|
|  |  |  | }, { | 
|---|
|  |  |  | "type": "stn", | 
|---|
|  |  |  | "id": "site-2014", | 
|---|
|  |  |  | "text": "2014", | 
|---|
|  |  |  | "top": 352, | 
|---|
|  |  |  | "left": 448, | 
|---|
|  |  |  | "width": 80, | 
|---|
|  |  |  | "height": 19 | 
|---|
|  |  |  | },{ | 
|---|
|  |  |  | "type": "track", | 
|---|
|  |  |  | "id": "lb_track6", | 
|---|
|  |  |  | "text": "", | 
|---|
|  |  |  | "top": 180, | 
|---|
|  |  |  | "left": 350, | 
|---|
|  |  |  | "width": 2, | 
|---|
|  |  |  | "height": 500 | 
|---|
|  |  |  | },{ | 
|---|
|  |  |  | "type": "track", | 
|---|
|  |  |  | "id": "lb_track7", | 
|---|
|  |  |  | "text": "", | 
|---|
|  |  |  | "top": 180, | 
|---|
|  |  |  | "left": 320, | 
|---|
|  |  |  | "width": 2, | 
|---|
|  |  |  | "height": 500 | 
|---|
|  |  |  | }, { | 
|---|
|  |  |  | "type": "stn", | 
|---|
|  |  |  | "id": "site-2017", | 
|---|
|  |  |  | "text": "2017", | 
|---|
|  |  |  | "top": 352, | 
|---|
|  |  |  | "left": 282, | 
|---|
|  |  |  | "width": 80, | 
|---|
|  |  |  | "height": 19 | 
|---|
|  |  |  | },{ | 
|---|
|  |  |  | "type": "stn", | 
|---|
|  |  |  | "id": "site-2010", | 
|---|
|  |  |  | "text": "2010", | 
|---|
|  |  |  | "top": 239, | 
|---|
|  |  |  | "left": 118, | 
|---|
|  |  |  | "width": 80, | 
|---|
|  |  |  | "height": 19 | 
|---|
|  |  |  | }, { | 
|---|
|  |  |  | "type": "stn", | 
|---|
|  |  |  | "id": "site-2011", | 
|---|
|  |  |  | "text": "2011", | 
|---|
|  |  |  | "top": 239, | 
|---|
|  |  |  | "left": 200, | 
|---|
|  |  |  | "width": 80, | 
|---|
|  |  |  | "height": 19 | 
|---|
|  |  |  | },{ | 
|---|
|  |  |  | "type": "stn", | 
|---|
|  |  |  | "id": "site-2012", | 
|---|
|  |  |  | "text": "2012", | 
|---|
|  |  |  | "top": 400, | 
|---|
|  |  |  | "left": 200, | 
|---|
|  |  |  | "width": 80, | 
|---|
|  |  |  | "height": 19 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | "barcode":[ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | "type": "barcode", | 
|---|
|  |  |  | "id": "barcode-1", | 
|---|
|  |  |  | "text": "", | 
|---|
|  |  |  | "top": 749, | 
|---|
|  |  |  | "left": 470, | 
|---|
|  |  |  | "width": 80, | 
|---|
|  |  |  | "height": 20 | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ] | 
|---|
|  |  |  | },{ | 
|---|
|  |  |  | "type": "floor", | 
|---|
|  |  |  | "id": "page_floor3", | 
|---|
|  |  |  | "text": "3F", | 
|---|
|  |  |  | "top": 4, | 
|---|
|  |  |  | "left": 22, | 
|---|
|  |  |  | "width": 1819, | 
|---|
|  |  |  | "height": 668, | 
|---|
|  |  |  | "stns":[ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | "type": "stn", | 
|---|
|  |  |  | "id": "site-3015", | 
|---|
|  |  |  | "text": "3015", | 
|---|
|  |  |  | "top": 239, | 
|---|
|  |  |  | "left": 365, | 
|---|
|  |  |  | "width": 80, | 
|---|
|  |  |  | "height": 19 | 
|---|
|  |  |  | }, { | 
|---|
|  |  |  | "type": "stn", | 
|---|
|  |  |  | "id": "site-3013", | 
|---|
|  |  |  | "text": "3013", | 
|---|
|  |  |  | "top": 239, | 
|---|
|  |  |  | "left": 448, | 
|---|
|  |  |  | "width": 80, | 
|---|
|  |  |  | "height": 19 | 
|---|
|  |  |  | },  { | 
|---|
|  |  |  | "type": "stn", | 
|---|
|  |  |  | "id": "site-3016", | 
|---|
|  |  |  | "text": "3016", | 
|---|
|  |  |  | "top": 352, | 
|---|
|  |  |  | "left": 365, | 
|---|
|  |  |  | "width": 80, | 
|---|
|  |  |  | "height": 19 | 
|---|
|  |  |  | }, { | 
|---|
|  |  |  | "type": "stn", | 
|---|
|  |  |  | "id": "site-3014", | 
|---|
|  |  |  | "text": "3014", | 
|---|
|  |  |  | "top": 352, | 
|---|
|  |  |  | "left": 448, | 
|---|
|  |  |  | "width": 80, | 
|---|
|  |  |  | "height": 19 | 
|---|
|  |  |  | },{ | 
|---|
|  |  |  | "type": "track", | 
|---|
|  |  |  | "id": "lb_track6", | 
|---|
|  |  |  | "text": "", | 
|---|
|  |  |  | "top": 180, | 
|---|
|  |  |  | "left": 350, | 
|---|
|  |  |  | "width": 2, | 
|---|
|  |  |  | "height": 500 | 
|---|
|  |  |  | },{ | 
|---|
|  |  |  | "type": "track", | 
|---|
|  |  |  | "id": "lb_track7", | 
|---|
|  |  |  | "text": "", | 
|---|
|  |  |  | "top": 180, | 
|---|
|  |  |  | "left": 320, | 
|---|
|  |  |  | "width": 2, | 
|---|
|  |  |  | "height": 500 | 
|---|
|  |  |  | }, { | 
|---|
|  |  |  | "type": "stn", | 
|---|
|  |  |  | "id": "site-3017", | 
|---|
|  |  |  | "text": "3017", | 
|---|
|  |  |  | "top": 352, | 
|---|
|  |  |  | "left": 282, | 
|---|
|  |  |  | "width": 80, | 
|---|
|  |  |  | "height": 19 | 
|---|
|  |  |  | },{ | 
|---|
|  |  |  | "type": "stn", | 
|---|
|  |  |  | "id": "site-3010", | 
|---|
|  |  |  | "text": "3010", | 
|---|
|  |  |  | "top": 239, | 
|---|
|  |  |  | "left": 118, | 
|---|
|  |  |  | "width": 80, | 
|---|
|  |  |  | "height": 19 | 
|---|
|  |  |  | }, { | 
|---|
|  |  |  | "type": "stn", | 
|---|
|  |  |  | "id": "site-3011", | 
|---|
|  |  |  | "text": "3011", | 
|---|
|  |  |  | "top": 239, | 
|---|
|  |  |  | "left": 200, | 
|---|
|  |  |  | "width": 80, | 
|---|
|  |  |  | "height": 19 | 
|---|
|  |  |  | },{ | 
|---|
|  |  |  | "type": "stn", | 
|---|
|  |  |  | "id": "site-3012", | 
|---|
|  |  |  | "text": "3012", | 
|---|
|  |  |  | "top": 400, | 
|---|
|  |  |  | "left": 200, | 
|---|
|  |  |  | "width": 80, | 
|---|
|  |  |  | "height": 19 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | "barcode":[ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | "type": "barcode", | 
|---|
|  |  |  | "id": "barcode-1", | 
|---|
|  |  |  | "text": "", | 
|---|
|  |  |  | "top": 749, | 
|---|
|  |  |  | "left": 470, | 
|---|
|  |  |  | "width": 80, | 
|---|
|  |  |  | "height": 20 | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ] | 
|---|
|  |  |  | }] | 
|---|
|  |  |  | }] | 
|---|
|  |  |  | } | 
|---|