| | |
| | | </dependencies> |
| | | |
| | | <build> |
| | | <finalName>fnwcs</finalName> |
| | | <finalName>tlfwcs</finalName> |
| | | <plugins> |
| | | <plugin> |
| | | <groupId>org.springframework.boot</groupId> |
| | |
| | | import com.zy.core.cache.MessageQueue; |
| | | import com.zy.core.cache.SlaveConnection; |
| | | import com.zy.core.enums.*; |
| | | import com.zy.core.enums.DevpType.DevpWorkType; |
| | | import com.zy.core.model.CrnSlave; |
| | | import com.zy.core.model.DevpSlave; |
| | | import com.zy.core.model.LedSlave; |
| | |
| | | for (DevpSlave.Sta inSta : devp.getInSta()) { |
| | | // 获取条码扫描仪信息 |
| | | BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode()); |
| | | if (barcodeThread == null) { |
| | | continue; |
| | | } |
| | | String barcode = barcodeThread.getBarcode(); |
| | | // barcode="ILY0127 0001"; |
| | | if(!Cools.isEmpty(barcode)) { |
| | | log.info("{}号条码扫描器检测条码信息:{}", inSta.getBarcode(), barcode); |
| | | if("NG".endsWith(barcode) || "NoRead".equals(barcode)) { |
| | | continue; |
| | | } |
| | | } else { |
| | | continue; |
| | | } |
| | | |
| | | // 获取入库站信息 |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); |
| | | DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); |
| | | StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo()); |
| | | if (staProtocol == null) { |
| | | continue; |
| | | } else { |
| | | staProtocol = staProtocol.clone(); |
| | | } |
| | | //staProtocol.setPakMk(true); |
| | | // // 入出库模式判断 |
| | | // if ( inSta.getStaNo()==180 && devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; } |
| | | // 判断是否满足入库条件 |
| | | Short workNo = staProtocol.getWorkNo(); |
| | | // 尺寸检测异常 |
| | | boolean back = false; |
| | | String errMsg = "异常:"; |
| | | if (staProtocol.isFrontErr()) { |
| | | errMsg = errMsg+"前超限;"; |
| | | back = true; |
| | | } |
| | | if (staProtocol.isBackErr()) { |
| | | errMsg = errMsg+"后超限"; |
| | | back = true; |
| | | } |
| | | if (staProtocol.isHighErr()) { |
| | | errMsg = errMsg+"高超限"; |
| | | back = true; |
| | | } |
| | | if (staProtocol.isLeftErr()) { |
| | | errMsg = errMsg+"左超限"; |
| | | back = true; |
| | | } |
| | | if (staProtocol.isRightErr()) { |
| | | errMsg = errMsg+"右超限"; |
| | | back = true; |
| | | } |
| | | if (staProtocol.isWeightErr()) { |
| | | errMsg = errMsg+"超重"; |
| | | back = true; |
| | | } |
| | | if (staProtocol.isBarcodeErr()) { |
| | | errMsg = errMsg+"扫码失败"; |
| | | back = true; |
| | | } |
| | | // 退回 |
| | | if (back) { |
| | | // led 异常显示 |
| | | LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); |
| | | if (ledThread != null) { |
| | | MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg)); |
| | | } |
| | | continue; |
| | | } |
| | | String barcode = barcodeThread.getBarcode(); |
| | | if (!Cools.isEmpty(barcode)&&!barcode.equals("00000000")) { |
| | | log.info("{}号条码扫描器检测条码信息:{}", inSta.getBarcode(), barcode); |
| | | if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) { |
| | | continue; |
| | | } |
| | | } else { |
| | | // led 异常显示 |
| | | // LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); |
| | | // if (ledThread != null) { |
| | | // String errorMsg = "扫码失败,请重试"; |
| | | // MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg)); |
| | | // } |
| | | continue; |
| | | } |
| | | |
| | | if (staProtocol.isAutoing() && staProtocol.isLoading() |
| | | && staProtocol.isInEnable() |
| | | && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999) |
| | | && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() >= 9992 && staProtocol.getWorkNo() <= 9999) |
| | | && staProtocol.isPakMk()){// && !Cools.isEmpty(barcode)) { |
| | | |
| | | // if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode)) { |
| | |
| | | // } |
| | | |
| | | // 判断重复工作档 |
| | | WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode.substring(0,6)); |
| | | WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode); |
| | | if (wrkMast != null) { |
| | | News.error("工作档中已存在该站状态为( 2.设备上走 )的数据,工作号={}", wrkMast.getWrkNo()); |
| | | continue; |
| | | } |
| | | // // 获取入库通知档 |
| | | // List<WaitPakin> waitPakins = waitPakinMapper.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode).eq("io_status", "N")); |
| | | // if (waitPakins.isEmpty()) { |
| | | // log.error("无此入库条码数据。条码号={}", barcode); |
| | | // continue; |
| | | // } |
| | | // 获取入库通知档 |
| | | List<WaitPakin> waitPakins = waitPakinMapper.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode).eq("io_status", "N")); |
| | | if (waitPakins.isEmpty()) { |
| | | log.error("无此入库条码数据。条码号={}", barcode); |
| | | continue; |
| | | } |
| | | |
| | | try { |
| | | String pack =null;//pack码 |
| | | if(barcode.length()>6){ |
| | | pack=barcode.substring(6); |
| | | if(pack.equals("00000000000000000000")){ |
| | | News.error("没有获得Pack码",pack); |
| | | continue; |
| | | } |
| | | } |
| | | //String pack="MJY0136 0400"; |
| | | barcode=barcode.substring(0,6);//托盘码 |
| | | if(barcode.equals("000000")){ |
| | | News.error("没有获得条码",barcode); |
| | | continue; |
| | | } |
| | | LocTypeDto locTypeDto = new LocTypeDto(staProtocol); |
| | | locTypeDto.setLocType1((short)1); |
| | | SearchLocParam param = new SearchLocParam(); |
| | |
| | | param.setIoType(1); |
| | | param.setSourceStaNo(inSta.getStaNo()); |
| | | param.setLocType1(locTypeDto.getLocType1()); |
| | | param.setPackNo(pack); |
| | | // param.setPackNo(pack); |
| | | String response = new HttpHandler.Builder() |
| | | .setUri(wmsUrl) |
| | | .setPath("/rpc/pakin/loc/v1") |
| | |
| | | } else if (jsonObject.getInteger("code").equals(700) && (!barcodeThread.getBarcode().equals("NG"))){ |
| | | StartupDto dto = jsonObject.getObject("data", StartupDto.class); |
| | | barcodeThread.setBarcode(""); |
| | | staProtocol.setWorkNo((short)9999); |
| | | staProtocol.setStaNo((short)201); |
| | | staProtocol.setWorkNo((short)9991); |
| | | staProtocol.setStaNo(inSta.getBackSta().shortValue()); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), true); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | News.error("url:{};request:{};response:{}", wmsUrl+"/rpc/pakin/loc/v1", JSON.toJSONString(param), response); |
| | | }else { |
| | | StartupDto dto = jsonObject.getObject("data", StartupDto.class); |
| | | barcodeThread.setBarcode(""); |
| | | staProtocol.setWorkNo((short)9999); |
| | | staProtocol.setStaNo((short)201); |
| | | staProtocol.setWorkNo((short)9991); |
| | | staProtocol.setStaNo(inSta.getBackSta().shortValue()); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), true); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | News.error("请求接口失败!!!url:{};request:{};response:{}", wmsUrl+"/rpc/pakin/loc/v1", JSON.toJSONString(param), response); |
| | | } |
| | | |
| | | |
| | | // // 检索库位 |
| | | // LocTypeDto locTypeDto = new LocTypeDto(staProtocol); |
| | | // List<String> matNos = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList()); |
| | | // StartupDto startupDto = commonService.getLocNo(1, 1, inSta.getStaNo(), matNos, locTypeDto, 0); |
| | | // // 工作号 |
| | | // int workNo = startupDto.getWorkNo(); |
| | | // // 插入工作明细档 |
| | | // wrkDetlService.createWorkDetail(workNo, waitPakins, barcode); |
| | | // |
| | | // // 插入工作主档 |
| | | // wrkMast = new WrkMast(); |
| | | // wrkMast.setWrkNo(workNo); |
| | | // wrkMast.setIoTime(new Date()); |
| | | // wrkMast.setWrkSts(2L); // 工作状态:2.设备上走 |
| | | // wrkMast.setIoType(1); // 入出库状态:1.入库 |
| | | // wrkMast.setIoPri(10D); // 优先级:10 |
| | | // wrkMast.setCrnNo(startupDto.getCrnNo()); |
| | | // wrkMast.setSourceStaNo(startupDto.getSourceStaNo()); |
| | | // wrkMast.setStaNo(startupDto.getStaNo()); |
| | | // wrkMast.setLocNo(startupDto.getLocNo()); |
| | | // wrkMast.setBarcode(barcode); // 托盘码 |
| | | // wrkMast.setFullPlt("Y"); // 满板:Y |
| | | // wrkMast.setPicking("N"); // 拣料 |
| | | // wrkMast.setExitMk("N"); // 退出 |
| | | // wrkMast.setEmptyMk("N"); // 空板 |
| | | // wrkMast.setLinkMis("N"); |
| | | // // 操作人员数据 |
| | | // wrkMast.setAppeTime(new Date()); |
| | | // wrkMast.setModiTime(new Date()); |
| | | // Integer insert = wrkMastMapper.insert(wrkMast); |
| | | // if (insert == 0) { |
| | | // throw new CoolException("保存工作档失败"); |
| | | // } |
| | | // // 更新目标库位状态 |
| | | // LocMast locMast = locMastService.selectById(startupDto.getLocNo()); |
| | | // locMast.setLocSts("S"); // S.入库预约 |
| | | // locMast.setModiTime(new Date()); |
| | | // if (!locMastService.updateById(locMast)){ |
| | | // throw new CoolException("改变库位状态失败"); |
| | | // } |
| | | // // 将入库通知档修改为已启动 |
| | | // if (wrkMastMapper.updateWaitPakInStep1(barcode) == 0) { |
| | | // throw new CoolException("修改入库通知档状态为已启动失败"); |
| | | // } |
| | | // |
| | | // // 命令下发区 -------------------------------------------------------------------------- |
| | | // |
| | | // // 更新站点信息 且 下发plc命令 |
| | | // barcodeThread.setBarcode(""); |
| | | // staProtocol.setWorkNo((short) workNo); |
| | | // staProtocol.setStaNo(startupDto.getStaNo().shortValue()); |
| | | // devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | // boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | // if (!result) { |
| | | // throw new CoolException("更新plc站点信息失败"); |
| | | // } |
| | | |
| | | } catch (Exception e) { |
| | | News.error("扫码入库报错,错误信息",e); |
| | | e.printStackTrace(); |
| | |
| | | * 库位移转 |
| | | */ |
| | | public void locToLoc(CrnSlave slave, CrnProtocol crnProtocol){ |
| | | log.info("开始移库任务程序"); |
| | | // log.info("开始移库任务程序"); |
| | | //获取所有移库任务 |
| | | List<WrkMast> wrkMasts=wrkMastMapper.selectLocMoves(slave.getId()); |
| | | // 获取工作档信息 |
| | |
| | | * 出库 ===>> 工作档信息写入led显示器 |
| | | */ |
| | | @Async |
| | | public void ledExecute() { |
| | | public synchronized void ledExecute() { |
| | | for (LedSlave led : slaveProperties.getLed()) { |
| | | // 获取输送线plc线程 |
| | | DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId()); |
| | |
| | | for (Integer staNo : led.getStaArr()) { |
| | | // 获取叉车站点 |
| | | StaProtocol staProtocol = devpThread.getStation().get(staNo); |
| | | if (null == staProtocol || null == staProtocol.getWorkNo() || 0 == staProtocol.getWorkNo() || !staProtocol.isLoading()) { |
| | | if (null == staProtocol || null == staProtocol.getWorkNo() || 0 == staProtocol.getWorkNo()) { |
| | | continue; |
| | | } else { |
| | | staProtocol = staProtocol.clone(); |
| | | } |
| | | // 获取工作档数据 |
| | | WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo()); |
| | | if (null == wrkMast || wrkMast.getWrkSts() < 14 || wrkMast.getIoType() < 100) { continue; } |
| | | if (null == wrkMast) { continue; } |
| | | wrkMasts.add(wrkMast); |
| | | // 组装命令 |
| | | LedCommand ledCommand = new LedCommand(); |
| | | ledCommand.setWorkNo(wrkMast.getWrkNo()); |
| | | ledCommand.setIoType(wrkMast.getIoType()); |
| | | // 出库模式 |
| | | switch (wrkMast.getIoType()) { |
| | | case 1: |
| | | ledCommand.setTitle("全板入库"); |
| | | break; |
| | | case 10: |
| | | ledCommand.setTitle("空板入库"); |
| | | break; |
| | | case 101: |
| | | ledCommand.setTitle("全板出库"); |
| | | break; |
| | |
| | | ledCommand.setEmptyMk(true); |
| | | break; |
| | | default: |
| | | log.error("任务入出库类型错误!!![工作号:{}] [入出库类型:{}]", wrkMast.getWrkNo(), wrkMast.getIoType()); |
| | | News.error("任务入出库类型错误!!![工作号:{}] [入出库类型:{}]", wrkMast.getWrkNo(), wrkMast.getIoType()); |
| | | break; |
| | | } |
| | | ledCommand.setSourceLocNo(wrkMast.getSourceLocNo()); |
| | | ledCommand.setStaNo(wrkMast.getStaNo()); |
| | | if (wrkMast.getIoType() != 110) { |
| | | ledCommand.setBarcode(wrkMast.getBarcode()); |
| | | if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) { |
| | | List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo()); |
| | | wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme()))); |
| | | |
| | | wrkDetls.forEach(wrkDetl -> { |
| | | Double total = 0.0; |
| | | EntityWrapper<LocDetl> wrapper = new EntityWrapper<>(); |
| | | LocDetl locDetl = locDetlService.selectOne(wrapper.eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr())); |
| | | if (Cools.isEmpty(locDetl)) { |
| | | total = wrkDetl.getAnfme(); |
| | | } else { |
| | | total = locDetl.getAnfme(); |
| | | } |
| | | if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1) { |
| | | ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total)); |
| | | } |
| | | if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) { |
| | | ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total)); |
| | | } |
| | | if (wrkMast.getIoType() == 107 || wrkMast.getIoType() == 104) { |
| | | ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total)); |
| | | } |
| | | }); |
| | | } |
| | | commands.add(ledCommand); |
| | | } |
| | | if(Cools.isEmpty(wrkMasts)){ |
| | | continue; |
| | | } |
| | | Set<Integer> workNos = wrkMasts.stream().map(WrkMast::getWrkNo).collect(Collectors.toSet()); |
| | | // 获取LED线程 |
| | |
| | | // 命令下发 ------------------------------------------------------------------------------- |
| | | if (!commands.isEmpty()) { |
| | | if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(1, commands))) { |
| | | log.error("{}号LED命令下发失败!!![ip:{}] [port:{}]", led.getId(), led.getIp(), led.getPort()); |
| | | News.error("{}号LED显示内容命令下发失败!!![ip:{}] [port:{}]", led.getId(), led.getIp(), led.getPort()); |
| | | continue; |
| | | } else { |
| | | ledThread.setLedMk(false); |
| | | } |
| | | } |
| | | |
| | |
| | | // 获取led线程 |
| | | LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId()); |
| | | // led显示默认内容 |
| | | if (reset && !ledThread.isLedMk()) { |
| | | ledThread.setLedMk(true); |
| | | if (reset) { |
| | | if (ledThread == null) { |
| | | continue; |
| | | } |
| | | if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(2, new ArrayList<>()))) { |
| | | log.error("{}号LED命令下发失败!!![ip:{}] [port:{}]", led.getId(), led.getIp(), led.getPort()); |
| | | } else { |
| | | |
| | | News.error("{}号LED显示默认命令下发失败!!![ip:{}] [port:{}]", led.getId(), led.getIp(), led.getPort()); |
| | | } |
| | | } |
| | | } |
| | |
| | | public class MatDto { |
| | | |
| | | // 物料编号 |
| | | private String matNo; |
| | | private String matnr; |
| | | |
| | | // 物料名称 |
| | | private String maknx; |
| | | |
| | | private String batch; |
| | | |
| | | private String specs; |
| | | |
| | | // 客户信息 |
| | | private String manu; |
| | | |
| | | // 备注 |
| | | private String memo; |
| | | |
| | | // 物料数量 |
| | | private Double count; |
| | | |
| | | private Double total; |
| | | |
| | | public MatDto() { |
| | | } |
| | | public MatDto(String matnr, String maknx, String batch, String specs, String manu, String memo, Double count, Double total) { |
| | | this.matnr = matnr; |
| | | this.maknx = maknx; |
| | | this.batch = batch; |
| | | this.specs = specs; |
| | | this.manu = manu; |
| | | this.memo = memo; |
| | | this.count = count; |
| | | this.total = total; |
| | | } |
| | | |
| | | public MatDto(String matNo, String maknx, Double count) { |
| | | this.matNo = matNo; |
| | | this.matnr = matNo; |
| | | this.maknx = maknx; |
| | | this.count = count; |
| | | } |
| | | public MatDto(String matNo, String maknx, Double count,String specs) { |
| | | this.specs = specs; |
| | | this.matnr = matNo; |
| | | this.maknx = maknx; |
| | | this.count = count; |
| | | } |
| | | public MatDto(String matNo, String maknx, Double count,Double total,String specs) { |
| | | this.specs = specs; |
| | | this.matnr = matNo; |
| | | this.maknx = maknx; |
| | | this.count = count; |
| | | this.total = total; |
| | | } |
| | | } |
| | |
| | | // 入库 ===>> 空栈板初始化入库,叉车入库站放货 |
| | | mainService.storeEmptyPlt(); |
| | | // 出库 ===>> 工作档信息写入led显示器 |
| | | // mainService.ledExecute(); |
| | | mainService.ledExecute(); |
| | | // 其他 ===>> LED显示器复位,显示默认信息 |
| | | // mainService.ledReset(); |
| | | mainService.ledReset(); |
| | | // mainService.outOfDevp(); |
| | | |
| | | //启动、完成、暂停测试系统测试 |
| | | mainService.packTest1(); |
| | | // mainService.packTest1(); |
| | | // //火警,给堆垛机发送火警警报 |
| | | mainService.fierCrn(); |
| | | // mainService.fierCrn(); |
| | | |
| | | //103站点有物下发pack码 |
| | | mainService.packDevp(); |
| | | // mainService.packDevp(); |
| | | |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | |
| | | |
| | | private Integer barcode; |
| | | |
| | | private Integer backSta; |
| | | |
| | | private Integer led; |
| | | |
| | | } |
| | | |
| | | } |
| | |
| | | |
| | | private boolean emptyMk = false; |
| | | |
| | | private Integer ioType; |
| | | private String barcode; |
| | | |
| | | } |
| | |
| | | // 入库暂存数 |
| | | private Short inQty; |
| | | |
| | | // 外形检测 ------------------------------------------------------------------------ |
| | | |
| | | // 前超限 |
| | | private boolean frontErr; |
| | | |
| | | // 后超限 |
| | | private boolean backErr; |
| | | |
| | | // 高超限 |
| | | private boolean highErr; |
| | | |
| | | // 左超限 |
| | | private boolean leftErr; |
| | | |
| | | // 右超限 |
| | | private boolean rightErr; |
| | | |
| | | // 超重 |
| | | private boolean weightErr; |
| | | |
| | | // 扫码失败 |
| | | private boolean barcodeErr; |
| | | |
| | | //出入库模式 |
| | | private Short outInModel; |
| | | |
| | | public BasDevp toSqlModel(){ |
| | | BasDevp basDevp = new BasDevp(); |
| | | basDevp.setDevNo(siteId); |
| | |
| | | private Map<Integer, StaProtocol> station = new ConcurrentHashMap<>(); |
| | | private short heartBeatVal = 1; |
| | | public static final ArrayList<Integer> staNos = new ArrayList<Integer>() {{ |
| | | add(101);add(102);add(103);add(104); |
| | | add(201);add(202);add(203);add(204);add(205);add(206); |
| | | add(207);add(208);add(209);add(210);add(211);add(212); |
| | | add(213);add(105);add(1000); |
| | | add(101); |
| | | add(102); |
| | | add(103); |
| | | add(104); |
| | | add(201); |
| | | add(202); |
| | | add(203); |
| | | add(204); |
| | | add(205); |
| | | add(206); |
| | | }}; |
| | | |
| | | /** |
| | | * 条码数量 |
| | | */ |
| | | private int barcodeSize = 2; |
| | | private int barcodeSize = 1; |
| | | public IoModeType ioMode = IoModeType.NONE; |
| | | |
| | | public int[][] startSignal = new int[48][3]; |
| | |
| | | break; |
| | | // 写数据 ID+目标站 |
| | | case 2: |
| | | write((StaProtocol)task.getData()); |
| | | write((StaProtocol) task.getData()); |
| | | break; |
| | | // 写数据 103站点写入PACK码 |
| | | case 4: |
| | | write103((String)task.getData()); |
| | | break; |
| | | // case 4: |
| | | // write103((String)task.getData()); |
| | | // break; |
| | | // 火警信号 |
| | | case 5: |
| | | StaProtocol staProtocol2 = (StaProtocol)task.getData(); |
| | | siemensS7Net.Write("DB108.0" + staProtocol2.getSiteId(), staProtocol2.getStaNo()==1); |
| | | break; |
| | | // case 5: |
| | | // StaProtocol staProtocol2 = (StaProtocol)task.getData(); |
| | | // siemensS7Net.Write("DB108.0" + staProtocol2.getSiteId(), staProtocol2.getStaNo()==1); |
| | | // break; |
| | | //测试库出库,库位状态改为8 |
| | | case 6: |
| | | String data = task.getData()+""; |
| | | Byte coun=8; |
| | | siemensS7Net.Write("DB38.0" + data, coun); |
| | | break; |
| | | // case 6: |
| | | // String data = task.getData()+""; |
| | | // Byte coun=8; |
| | | // siemensS7Net.Write("DB38.0" + data, coun); |
| | | // break; |
| | | //复位测试信号 |
| | | case 3: |
| | | StaProtocol staProtocol = (StaProtocol) task.getData(); |
| | | siemensS7Net.Write("DB102.0" + staProtocol.getSiteId(), staProtocol.getStaNo()); |
| | | break; |
| | | // case 3: |
| | | // StaProtocol staProtocol = (StaProtocol) task.getData(); |
| | | // siemensS7Net.Write("DB102.0" + staProtocol.getSiteId(), staProtocol.getStaNo()); |
| | | // break; |
| | | default: |
| | | break; |
| | | } |
| | | // 心跳 |
| | | } |
| | | // 心跳 |
| | | // heartbeat(); |
| | | Thread.sleep(400); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public boolean connect() { |
| | | @Override |
| | | public boolean connect() { |
| | | boolean result = false; |
| | | siemensS7Net = new SiemensS7Net(SiemensPLCS.S1200, slave.getIp()); |
| | | siemensS7Net.setRack(slave.getRack().byteValue()); |
| | | siemensS7Net.setSlot(slave.getSlot().byteValue()); |
| | | OperateResult connect = siemensS7Net.ConnectServer(); |
| | | if(connect.IsSuccess){ |
| | | result = true; |
| | | OutputQueue.DEVP.offer(MessageFormat.format( "【{0}】输送线plc连接成功 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); |
| | | log.info("输送线plc连接成功 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); |
| | | if (connect.IsSuccess) { |
| | | result = true; |
| | | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】输送线plc连接成功 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); |
| | | log.info("输送线plc连接成功 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); |
| | | } else { |
| | | OutputQueue.DEVP.offer(MessageFormat.format( "【{0}】输送线plc连接失败!!! ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); |
| | | log.error("输送线plc连接失败!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); |
| | | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】输送线plc连接失败!!! ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); |
| | | log.error("输送线plc连接失败!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); |
| | | } |
| | | siemensS7Net.ConnectClose(); |
| | | return result; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 读取状态 ====> 整块plc |
| | | */ |
| | | private void read() throws InterruptedException { |
| | | /** |
| | | * 读取状态 ====> 整块plc |
| | | */ |
| | | private void read() throws InterruptedException { |
| | | // // 更新入出库模式 |
| | | // updateIoMode(); |
| | | int staNoSize = staNos.size(); |
| | | OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) (staNoSize*4)); |
| | | OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) (staNoSize * 4)); |
| | | if (result.IsSuccess) { |
| | | for (int i = 0; i < staNoSize; i++) { |
| | | Integer siteId = staNos.get(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)); // 目标站 |
| | | } |
| | | } |
| | | // Thread.sleep(200); |
| | |
| | | // } |
| | | // } |
| | | Thread.sleep(200); |
| | | OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB101.0", (short) (staNoSize*2)); |
| | | OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB101.0", (short) (staNoSize * 2)); |
| | | if (result1.IsSuccess) { |
| | | for (int i = 0; i < staNoSize; i++) { |
| | | Integer siteId = staNos.get(i); // 站点编号 |
| | | boolean[] status = siemensS7Net.getByteTransform().TransBool(result1.Content, i*2, 1); |
| | | boolean[] status = siemensS7Net.getByteTransform().TransBool(result1.Content, i * 2, 1); |
| | | StaProtocol staProtocol = station.get(siteId); |
| | | staProtocol.setAutoing(status[0]); // 自动 |
| | | staProtocol.setLoading(status[1]); // 有物 |
| | |
| | | } |
| | | |
| | | Thread.sleep(200); |
| | | OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB100.190",(short)(26)); |
| | | OperateResultExOne<byte[]> result5 = siemensS7Net.Read("DB100.216",(short)(6)); |
| | | OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB100.190", (short) 8); |
| | | // OperateResultExOne<byte[]> result5 = siemensS7Net.Read("DB100.216",(short)(6)); |
| | | if (result2.IsSuccess) { |
| | | String barcode =siemensS7Net.getByteTransform().TransString(result2.Content,0,26, "UTF-8"); |
| | | String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, 0, 8, "UTF-8"); |
| | | // String barcode=new String(result2.Content,i*12,12); |
| | | BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, 1); |
| | | if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) { |
| | | barcodeThread.setBarcode(barcode); |
| | | } |
| | | } |
| | | if (result5.IsSuccess) { |
| | | String barcode =siemensS7Net.getByteTransform().TransString(result5.Content,0,6, "UTF-8"); |
| | | // String barcode=new String(result2.Content,i*12,12); |
| | | BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, 2); |
| | | if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) { |
| | | BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, 1); |
| | | if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) { |
| | | barcodeThread.setBarcode(barcode); |
| | | } |
| | | } |
| | | // if (result5.IsSuccess) { |
| | | // String barcode =siemensS7Net.getByteTransform().TransString(result5.Content,0,6, "UTF-8"); |
| | | //// String barcode=new String(result2.Content,i*12,12); |
| | | // BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, 2); |
| | | // if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) { |
| | | // barcodeThread.setBarcode(barcode); |
| | | // } |
| | | // } |
| | | |
| | | Thread.sleep(200); |
| | | //测试柜状态获取 |
| | |
| | | OperateResultExOne<byte[]> result6 = siemensS7Net.Read("DB102.0", (short) 96); |
| | | //消防报警 |
| | | OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB108.0", (short) 48); |
| | | if(result3.IsSuccess) { |
| | | for(int i=0; i<48; i++){ |
| | | if (result3.IsSuccess) { |
| | | for (int i = 0; i < 48; i++) { |
| | | startSignal[i][0] = siemensS7Net.getByteTransform().TransByte(result3.Content, i);//测试柜状态 |
| | | startSignal[i][1] = siemensS7Net.getByteTransform().TransBool(result4.Content, i)?1:0;//消防状态 |
| | | startSignal[i][2] = siemensS7Net.getByteTransform().TransInt16(result6.Content, i*2);//启动按钮状态 |
| | | startSignal[i][1] = siemensS7Net.getByteTransform().TransBool(result4.Content, i) ? 1 : 0;//消防状态 |
| | | startSignal[i][2] = siemensS7Net.getByteTransform().TransInt16(result6.Content, i * 2);//启动按钮状态 |
| | | } |
| | | } |
| | | // OperateResultExOne<Short> result2 = siemensS7Net.ReadInt16("DB200.0"); |
| | | // if (result2.IsSuccess) { |
| | | // this.ioMode = IoModeType.get(result2.Content); |
| | | // } |
| | | OperateResultExOne<byte[]> result202 = siemensS7Net.Read("DB101.806", (short) 8); |
| | | if (result202.IsSuccess) { |
| | | //出入库模式 |
| | | boolean[] status = siemensS7Net.getByteTransform().TransBool(result202.Content, 0, 1); |
| | | StaProtocol staProtocol = station.get(202); |
| | | 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 { |
| | |
| | | /** |
| | | * 写入 pack码 =====> 单站点写入 |
| | | */ |
| | | private void write103(String packNo){ |
| | | try{ |
| | | private void write103(String packNo) { |
| | | try { |
| | | |
| | | OperateResult write = siemensS7Net.Write("DB109.0", packNo); |
| | | if (!write.IsSuccess) { |
| | |
| | | log.error("写入输送线站点数据失败。输送线plc编号={},站点数据={}", slave.getId(), JSON.toJSON(packNo)); |
| | | } else { |
| | | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】 输送线命令下发 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(packNo))); |
| | | log.info("输送线命令下发 [id:{}] >>>>> 命令下发: {}", slave.getId(), JSON.toJSON(packNo)); |
| | | log.info("输送线命令下发 [id:{}] >>>>> 命令下发: {}", slave.getId(), JSON.toJSON(packNo)); |
| | | } |
| | | }catch (Exception e){ |
| | | } catch (Exception e) { |
| | | log.error("103站点写入数据失败,输送线线程write103"); |
| | | } |
| | | } |
| | |
| | | int idCount = 0; |
| | | boolean idFlag = false; |
| | | OperateResult write; |
| | | while(idCount < 5){ |
| | | while (idCount < 5) { |
| | | |
| | | write = siemensS7Net.Write("DB100." + index*4, array); // 写 |
| | | if(write.IsSuccess){ |
| | | write = siemensS7Net.Write("DB100." + index * 4, array); // 写 |
| | | if (write.IsSuccess) { |
| | | Thread.sleep(200); |
| | | OperateResultExOne<byte[]> readId = siemensS7Net.Read("DB100." + index*4, (short) (staNoSize*2)); |
| | | if(readId.IsSuccess){ |
| | | if(staProtocol.getWorkNo()!=0&&staProtocol.getWorkNo()!=9999){ |
| | | if(!staProtocol.isInEnable()&&(staProtocol.getSiteId()==201||staProtocol.getSiteId()==206)){ |
| | | OperateResultExOne<byte[]> readId = siemensS7Net.Read("DB100." + index * 4, (short) (staNoSize * 2)); |
| | | if (readId.IsSuccess) { |
| | | if (staProtocol.getWorkNo() != 0 && staProtocol.getWorkNo() != 9999) { |
| | | if (!staProtocol.isInEnable() && (staProtocol.getSiteId() == 201 || staProtocol.getSiteId() == 206)) { |
| | | break; |
| | | } |
| | | } |
| | | short workNo = siemensS7Net.getByteTransform().TransInt16(readId.Content, 0); |
| | | if(staProtocol.getWorkNo().equals(workNo)){ |
| | | if (staProtocol.getWorkNo().equals(workNo)) { |
| | | //工作号写入成功 |
| | | idFlag = true; |
| | | break; |
| | | } else {//返回结果是成功了,但是真实值不相同 |
| | | idCount++; |
| | | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线工作号后返回成功,但是读取工作号值不一致。输送线plc编号={1},站点数据={2},写入次数={3}", |
| | | slave.getId(), JSON.toJSON(staProtocol),idCount)); |
| | | slave.getId(), JSON.toJSON(staProtocol), idCount)); |
| | | log.error("写入输送线工作号后返回成功,但是读取工作号值不一致。输送线plc编号={},{},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), idCount); |
| | | } |
| | | } else { |
| | |
| | | } else { |
| | | idCount++; |
| | | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线工作号失败。输送线plc编号={1},站点数据={2},写入次数={3}", |
| | | slave.getId(), JSON.toJSON(staProtocol),idCount)); |
| | | slave.getId(), JSON.toJSON(staProtocol), idCount)); |
| | | log.error("写入输送线工作号失败。输送线plc编号={},站点数据={},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), idCount); |
| | | } |
| | | Thread.sleep(200); |
| | | } |
| | | //写ID尝试了5次还是失败了 |
| | | if(!idFlag){ |
| | | if (!idFlag) { |
| | | staProtocol = station.get(staProtocol.getSiteId()); |
| | | if (staProtocol.getWorkNo() == 9999 && staProtocol.getStaNo() ==0) { |
| | | if (staProtocol.getWorkNo() == 9999 && staProtocol.getStaNo() == 0) { |
| | | staProtocol.setPakMk(true); |
| | | } |
| | | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线工作号尝试5次失败。输送线plc编号={1},站点数据={2}", slave.getId(), JSON.toJSON(staProtocol))); |
| | |
| | | // OperateResult write1 = siemensS7Net.Write("DB101." + index*2, staProtocol.getStaNo()); // 目标站 |
| | | |
| | | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】 输送线命令下发成功 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol))); |
| | | log.info("输送线命令下发 [id:{}] >>>>> 命令下发成功: {}", slave.getId(), JSON.toJSON(staProtocol)); |
| | | log.info("输送线命令下发 [id:{}] >>>>> 命令下发成功: {}", slave.getId(), JSON.toJSON(staProtocol)); |
| | | } |
| | | |
| | | // 更新入出库模式 |
| | |
| | | /** |
| | | * 心跳 |
| | | */ |
| | | private void heartbeat(){ |
| | | private void heartbeat() { |
| | | if (heartBeatVal == 1) { |
| | | heartBeatVal = 2; |
| | | } else { |
| | |
| | | public static void main(String[] args) { |
| | | System.out.println(staNos.indexOf(129)); |
| | | System.out.println(staNos.size()); |
| | | for (int i = 0; i<staNos.size(); i++) { |
| | | for (int i = 0; i < staNos.size(); i++) { |
| | | // System.out.println(i*2); |
| | | // System.out.println(i*2 + 200); |
| | | // System.out.println(i); |
| | | } |
| | | int index = staNos.indexOf(128); |
| | | System.out.println(index*2); |
| | | System.out.println(index*2 + 200); |
| | | System.out.println(index * 2); |
| | | System.out.println(index * 2 + 200); |
| | | } |
| | | |
| | | // public static void main(String[] args) throws Exception { |
| | |
| | | name: @pom.build.finalName@ |
| | | datasource: |
| | | driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver |
| | | url: jdbc:sqlserver://10.12.55.200:1433;databasename=zjfnasrs |
| | | #url: jdbc:sqlserver://127.0.0.1:1433;databasename=zjfnasrs |
| | | # url: jdbc:sqlserver://10.12.55.200:1433;databasename=zjfnasrs |
| | | url: jdbc:sqlserver://127.0.0.1:1433;databasename=jxtlfasrs |
| | | username: sa |
| | | password: sa@123 |
| | | mvc: |
| | |
| | | row: 2 |
| | | bay: 0 |
| | | lev: 1 |
| | | # 堆垛机2 |
| | | crn[1]: |
| | | id: 2 |
| | | ip: 10.12.55.60 |
| | | port: 8888 |
| | | rack: 0 |
| | | slot: 0 |
| | | # 偏移量,当堆垛机站点列号=1时,偏移量=2 |
| | | offset: 2 |
| | | demo: false |
| | | # 堆垛机入库站点 |
| | | crnInStn[0]: |
| | | devpPlcId: ${wcs-slave.devp[0].id} |
| | | staNo: 209 |
| | | row: 3 |
| | | bay: 0 |
| | | lev: 1 |
| | | # 堆垛机出库站点 |
| | | crnOutStn[0]: |
| | | devpPlcId: ${wcs-slave.devp[0].id} |
| | | staNo: 210 |
| | | row: 4 |
| | | bay: 0 |
| | | lev: 1 |
| | | |
| | | # 输送线 |
| | | devp[0]: |
| | |
| | | slot: 0 |
| | | # 入库口1 |
| | | inSta[0]: |
| | | staNo: 201 |
| | | staNo: 101 |
| | | barcode: ${wcs-slave.barcode[0].id} |
| | | # 入库口2 |
| | | inSta[1]: |
| | | staNo: 206 |
| | | barcode: ${wcs-slave.barcode[1].id} |
| | | backSta: 100 |
| | | led: ${wcs-slave.led[0].id} |
| | | # 空板入库口1 |
| | | emptyInSta[0]: |
| | | staNo: 201 |
| | |
| | | id: 1 |
| | | ip: 172.28.15.235 |
| | | port: 51236 |
| | | # 条码扫描仪2 |
| | | barcode[1]: |
| | | id: 2 |
| | | ip: 172.28.15.235 |
| | | port: 51236 |
| | | # # LED1 |
| | | # led[0]: |
| | | # id: 1 |
| | | # ip: 10.10.10.60 |
| | | # port: 5005 |
| | | # devpPlcId: ${wcs-slave.devp[0].id} |
| | | # staArr: 110 |
| | | # # 条码扫描仪2 |
| | | # barcode[1]: |
| | | # id: 2 |
| | | # ip: 172.28.15.235 |
| | | # port: 51236 |
| | | # LED1 |
| | | led[0]: |
| | | id: 1 |
| | | ip: 10.10.10.60 |
| | | port: 5005 |
| | | devpPlcId: ${wcs-slave.devp[0].id} |
| | | staArr: 101 |
| | | # LED2 |
| | | led[1]: |
| | | id: 1 |
| | | ip: 10.10.10.60 |
| | | port: 5005 |
| | | devpPlcId: ${wcs-slave.devp[0].id} |
| | | staArr: 110 |
| | | # |
| | | # #socket |
| | | # socket[0]: |
| | |
| | | var baseUrl = "/fnwcs"; |
| | | var baseUrl = "/tlfwcs"; |
| | | |
| | | // 赋值 |
| | | function setVal(el, val) { |
| | |
| | | "floors": 1, |
| | | "racks": [{ |
| | | "type": "rack", |
| | | "id": "rack4", |
| | | "top": 260, |
| | | "left": 196, |
| | | "width": 765, |
| | | "height": 23, |
| | | "minBayNo": 1, |
| | | "maxBayNo": 24 |
| | | }, { |
| | | "type": "rack", |
| | | "id": "rack1", |
| | | "top": 95, |
| | | "top": 260, |
| | | "left": 167, |
| | | "width": 794, |
| | | "height": 23, |
| | | "minBayNo": 1, |
| | | "maxBayNo": 25 |
| | | "maxBayNo": 14 |
| | | }, { |
| | | "type": "rack", |
| | | "id": "rack2", |
| | | "top": 152, |
| | | "left": 167, |
| | | "width": 794, |
| | | "height": 23, |
| | | "minBayNo": 1, |
| | | "maxBayNo": 25 |
| | | }, { |
| | | "type": "rack", |
| | | "id": "rack3", |
| | | "top": 200, |
| | | "left": 167, |
| | | "width": 794, |
| | | "height": 23, |
| | | "minBayNo": 1, |
| | | "maxBayNo": 25 |
| | | }], |
| | | "maxBayNo": 14 |
| | | },{ |
| | | "type": "rack", |
| | | "id": "rack3", |
| | | "top": 177, |
| | | "left": 167, |
| | | "width": 794, |
| | | "height": 23, |
| | | "minBayNo": 1, |
| | | "maxBayNo": 14 |
| | | },], |
| | | "rackDescs": [{ |
| | | "type": "rackDescs", |
| | | "id": "lb_desc1", |
| | | "text": "#4", |
| | | "top": 93, |
| | | "text": "#3", |
| | | "top": 177, |
| | | "left": 129, |
| | | "width": 30, |
| | | "height": 23 |
| | |
| | | "top": 259, |
| | | "left": 129, |
| | | "width": 33, |
| | | "height": 23 |
| | | }, { |
| | | "type": "rackDescs", |
| | | "id": "lb_desc16", |
| | | "text": "#一楼机械臂位置==》", |
| | | "top": 40, |
| | | "left": 750, |
| | | "width": 270, |
| | | "height": 23 |
| | | }], |
| | | "crns": [{ |
| | |
| | | "height": 22 |
| | | }, { |
| | | "type": "track", |
| | | "id": "lb_track4", |
| | | "text": "", |
| | | "top": 136, |
| | | "left": 180, |
| | | "width": 830, |
| | | "height": 2 |
| | | }, { |
| | | "type": "track", |
| | | "id": "lb_track5", |
| | | "text": "", |
| | | "top": 243, |
| | | "left": 180, |
| | | "width": 830, |
| | | "height": 2 |
| | | }, { |
| | | "type": "crane", |
| | | "id": "crn-2", |
| | | "text": "2", |
| | | "top": 127, |
| | | "left": 441, |
| | | "width": 93, |
| | | "height": 22 |
| | | }], |
| | | "areas": [{ |
| | | "type": "Control_floor", |
| | |
| | | "width": 1412, |
| | | "height": 505, |
| | | "stns": [{ |
| | | "type": "stn", |
| | | "id": "site-212", |
| | | "text": "212", |
| | | "top": 119, |
| | | "left": 1122, |
| | | "width": 65, |
| | | "height": 23 |
| | | }, { |
| | | "type": "stn", |
| | | "id": "site-105", |
| | | "text": "105", |
| | | "top": 47, |
| | | "left": 1188, |
| | | "width": 65, |
| | | "height": 23 |
| | | }, { |
| | | "type": "stn", |
| | | "id": "site-0", |
| | | "text": "升降", |
| | | "top": 70, |
| | | "left": 1203, |
| | | "width": 35, |
| | | "height": 49, |
| | | }, { |
| | | "type": "stn", |
| | | "id": "site-101", |
| | | "text": "101", |
| | | "top": 119, |
| | | "left": 1188, |
| | | "width": 65, |
| | | "height": 23 |
| | | }, { |
| | | "type": "stn", |
| | | "id": "site-211", |
| | | "text": "211", |
| | | "top": 95, |
| | | "left": 1122, |
| | | "width": 60, |
| | | "height": 23 |
| | | }, { |
| | | "type": "stn", |
| | | "id": "site-207", |
| | | "text": "207", |
| | | "top": 119, |
| | | "left": 1041, |
| | | "width": 80, |
| | | "height": 32 |
| | | }, { |
| | | "type": "stn", |
| | | "id": "site-205", |
| | | "text": "205", |
| | | "top": 176, |
| | | "left": 1041, |
| | | "width": 80, |
| | | "height": 23 |
| | | }, { |
| | | "type": "stn", |
| | | "id": "site-206", |
| | | "text": "206", |
| | | "top": 152, |
| | | "left": 1041, |
| | | "width": 80, |
| | | "height": 23 |
| | | }, { |
| | | "type": "stn", |
| | | "id": "site-202", |
| | | "text": "202", |
| | |
| | | "top": 200, |
| | | "left": 1041, |
| | | "width": 80, |
| | | "height": 23 |
| | | }, { |
| | | "type": "stn", |
| | | "id": "site-209", |
| | | "text": "209", |
| | | "top": 152, |
| | | "left": 960, |
| | | "width": 80, |
| | | "height": 23 |
| | | }, { |
| | | "type": "stn", |
| | | "id": "site-210", |
| | | "text": "210", |
| | | "top": 95, |
| | | "left": 960, |
| | | "width": 80, |
| | | "height": 23 |
| | | }, { |
| | | "type": "stn", |
| | | "id": "site-208", |
| | | "text": "208", |
| | | "top": 95, |
| | | "left": 1041, |
| | | "width": 80, |
| | | "height": 23 |
| | | }, { |
| | | "type": "stn", |
| | | "id": "site-213", |
| | | "text": "213", |
| | | "top": 119, |
| | | "left": 1254, |
| | | "width": 65, |
| | | "height": 23 |
| | | }, { |
| | | "type": "stn", |
| | | "id": "site-104", |
| | | "text": "104", |
| | | "top": 23, |
| | | "left": 1122, |
| | | "width": 65, |
| | | "height": 23 |
| | | }, { |
| | | "type": "stn", |
| | | "id": "site-102", |
| | | "text": "102", |
| | | "top": 47, |
| | | "left": 1122, |
| | | "width": 65, |
| | | "height": 23 |
| | | }, { |
| | | "type": "stn", |
| | | "id": "site-103", |
| | | "text": "103", |
| | | "top": 47, |
| | | "left": 1056, |
| | | "width": 65, |
| | | "height": 23 |
| | | }] |
| | | }] |
| | |
| | | <!-- 货架 + 堆垛机 + 入库站点 --> |
| | | <div class="main-part"> |
| | | </div> |
| | | <div class="" > |
| | | <div id="loc-0100105" class="loc" style="top:400px; left:200px; width:70px; height: 22px;line-height: 22px;">1-1-5</div> |
| | | <div id="loc-0100205" class="loc" style="top:400px; left:272px; width:70px; height: 22px;line-height: 22px;">1-2-5</div> |
| | | <div id="loc-0100305" class="loc" style="top:400px; left:344px; width:70px; height: 22px;line-height: 22px;">1-3-5</div> |
| | | <div id="loc-0100405" class="loc" style="top:400px; left:416px; width:70px; height: 22px;line-height: 22px;">1-4-5</div> |
| | | <div id="loc-0100505" class="loc" style="top:400px; left:488px; width:70px; height: 22px;line-height: 22px;">1-5-5</div> |
| | | <div id="loc-0100605" class="loc" style="top:400px; left:560px; width:70px; height: 22px;line-height: 22px;">1-6-5</div> |
| | | <div id="loc-0100705" class="loc" style="top:400px; left:632px; width:70px; height: 22px;line-height: 22px;">1-7-5</div> |
| | | <div id="loc-0100805" class="loc" style="top:400px; left:704px; width:70px; height: 22px;line-height: 22px;">1-8-5</div> |
| | | <div id="loc-0100905" class="loc" style="top:400px; left:776px; width:70px; height: 22px;line-height: 22px;">1-9-5</div> |
| | | <div id="loc-0101005" class="loc" style="top:400px; left:848px; width:70px; height: 22px;line-height: 22px;">1-10-5</div> |
| | | <div id="loc-0101105" class="loc" style="top:400px; left:920px; width:70px; height: 22px;line-height: 22px;">1-11-5</div> |
| | | <div id="loc-0101205" class="loc" style="top:400px; left:992px; width:70px; height: 22px;line-height: 22px;">1-12-5</div> |
| | | <div id="loc-0101305" class="loc" style="top:400px; left:1064px; width:70px; height: 22px;line-height: 22px;">1-13-5</div> |
| | | <div id="loc-0101405" class="loc" style="top:400px; left:1136px; width:70px; height: 22px;line-height: 22px;">1-14-5</div> |
| | | <div id="loc-0101505" class="loc" style="top:400px; left:1208px; width:70px; height: 22px;line-height: 22px;">1-15-5</div> |
| | | <div id="loc-0101605" class="loc" style="top:400px; left:1280px; width:70px; height: 22px;line-height: 22px;">1-16-5</div> |
| | | <div id="loc-0101705" class="loc" style="top:400px; left:1352px; width:70px; height: 22px;line-height: 22px;">1-17-5</div> |
| | | <div id="loc-0101805" class="loc" style="top:400px; left:1424px; width:70px; height: 22px;line-height: 22px;">1-18-5</div> |
| | | <div id="loc-0101905" class="loc" style="top:400px; left:1496px; width:70px; height: 22px;line-height: 22px;">1-19-5</div> |
| | | <div id="loc-0102005" class="loc" style="top:400px; left:1568px; width:70px; height: 22px;line-height: 22px;">1-20-5</div> |
| | | <div id="loc-0102105" class="loc" style="top:400px; left:1640px; width:70px; height: 22px;line-height: 22px;">1-21-5</div> |
| | | <div id="loc-0102205" class="loc" style="top:400px; left:1712px; width:70px; height: 22px;line-height: 22px;">1-22-5</div> |
| | | <div id="loc-0102305" class="loc" style="top:400px; left:1784px; width:70px; height: 22px;line-height: 22px;">1-23-5</div> |
| | | <div id="loc-0102405" class="loc" style="top:400px; left:1856px; width:70px; height: 22px;line-height: 22px;">1-24-5</div> |
| | | </div> |
| | | <!-- <div class="" >--> |
| | | <!-- <div id="loc-0100105" class="loc" style="top:400px; left:200px; width:70px; height: 22px;line-height: 22px;">1-1-5</div>--> |
| | | <!-- <div id="loc-0100205" class="loc" style="top:400px; left:272px; width:70px; height: 22px;line-height: 22px;">1-2-5</div>--> |
| | | <!-- <div id="loc-0100305" class="loc" style="top:400px; left:344px; width:70px; height: 22px;line-height: 22px;">1-3-5</div>--> |
| | | <!-- <div id="loc-0100405" class="loc" style="top:400px; left:416px; width:70px; height: 22px;line-height: 22px;">1-4-5</div>--> |
| | | <!-- <div id="loc-0100505" class="loc" style="top:400px; left:488px; width:70px; height: 22px;line-height: 22px;">1-5-5</div>--> |
| | | <!-- <div id="loc-0100605" class="loc" style="top:400px; left:560px; width:70px; height: 22px;line-height: 22px;">1-6-5</div>--> |
| | | <!-- <div id="loc-0100705" class="loc" style="top:400px; left:632px; width:70px; height: 22px;line-height: 22px;">1-7-5</div>--> |
| | | <!-- <div id="loc-0100805" class="loc" style="top:400px; left:704px; width:70px; height: 22px;line-height: 22px;">1-8-5</div>--> |
| | | <!-- <div id="loc-0100905" class="loc" style="top:400px; left:776px; width:70px; height: 22px;line-height: 22px;">1-9-5</div>--> |
| | | <!-- <div id="loc-0101005" class="loc" style="top:400px; left:848px; width:70px; height: 22px;line-height: 22px;">1-10-5</div>--> |
| | | <!-- <div id="loc-0101105" class="loc" style="top:400px; left:920px; width:70px; height: 22px;line-height: 22px;">1-11-5</div>--> |
| | | <!-- <div id="loc-0101205" class="loc" style="top:400px; left:992px; width:70px; height: 22px;line-height: 22px;">1-12-5</div>--> |
| | | <!-- <div id="loc-0101305" class="loc" style="top:400px; left:1064px; width:70px; height: 22px;line-height: 22px;">1-13-5</div>--> |
| | | <!-- <div id="loc-0101405" class="loc" style="top:400px; left:1136px; width:70px; height: 22px;line-height: 22px;">1-14-5</div>--> |
| | | <!-- <div id="loc-0101505" class="loc" style="top:400px; left:1208px; width:70px; height: 22px;line-height: 22px;">1-15-5</div>--> |
| | | <!-- <div id="loc-0101605" class="loc" style="top:400px; left:1280px; width:70px; height: 22px;line-height: 22px;">1-16-5</div>--> |
| | | <!-- <div id="loc-0101705" class="loc" style="top:400px; left:1352px; width:70px; height: 22px;line-height: 22px;">1-17-5</div>--> |
| | | <!-- <div id="loc-0101805" class="loc" style="top:400px; left:1424px; width:70px; height: 22px;line-height: 22px;">1-18-5</div>--> |
| | | <!-- <div id="loc-0101905" class="loc" style="top:400px; left:1496px; width:70px; height: 22px;line-height: 22px;">1-19-5</div>--> |
| | | <!-- <div id="loc-0102005" class="loc" style="top:400px; left:1568px; width:70px; height: 22px;line-height: 22px;">1-20-5</div>--> |
| | | <!-- <div id="loc-0102105" class="loc" style="top:400px; left:1640px; width:70px; height: 22px;line-height: 22px;">1-21-5</div>--> |
| | | <!-- <div id="loc-0102205" class="loc" style="top:400px; left:1712px; width:70px; height: 22px;line-height: 22px;">1-22-5</div>--> |
| | | <!-- <div id="loc-0102305" class="loc" style="top:400px; left:1784px; width:70px; height: 22px;line-height: 22px;">1-23-5</div>--> |
| | | <!-- <div id="loc-0102405" class="loc" style="top:400px; left:1856px; width:70px; height: 22px;line-height: 22px;">1-24-5</div>--> |
| | | <!-- </div>--> |
| | | |
| | | <!-- <div class="">--> |
| | | <!-- <div id="loc-0100104" class="loc" style="top:424px; left:200px; width:70px; height: 22px;line-height: 22px;">1-1-4</div>--> |
| | | <!-- <div id="loc-0100204" class="loc" style="top:424px; left:272px; width:70px; height: 22px;line-height: 22px;">1-2-4</div>--> |
| | | <!-- <div id="loc-0100304" class="loc" style="top:424px; left:344px; width:70px; height: 22px;line-height: 22px;">1-3-4</div>--> |
| | | <!-- <div id="loc-0100404" class="loc" style="top:424px; left:416px; width:70px; height: 22px;line-height: 22px;">1-4-4</div>--> |
| | | <!-- <div id="loc-0100504" class="loc" style="top:424px; left:488px; width:70px; height: 22px;line-height: 22px;">1-5-4</div>--> |
| | | <!-- <div id="loc-0100604" class="loc" style="top:424px; left:560px; width:70px; height: 22px;line-height: 22px;">1-6-4</div>--> |
| | | <!-- <div id="loc-0100704" class="loc" style="top:424px; left:632px; width:70px; height: 22px;line-height: 22px;">1-7-4</div>--> |
| | | <!-- <div id="loc-0100804" class="loc" style="top:424px; left:704px; width:70px; height: 22px;line-height: 22px;">1-8-4</div>--> |
| | | <!-- <div id="loc-0100904" class="loc" style="top:424px; left:776px; width:70px; height: 22px;line-height: 22px;">1-9-4</div>--> |
| | | <!-- <div id="loc-0101004" class="loc" style="top:424px; left:848px; width:70px; height: 22px;line-height: 22px;">1-10-4</div>--> |
| | | <!-- <div id="loc-0101104" class="loc" style="top:424px; left:920px; width:70px; height: 22px;line-height: 22px;">1-11-4</div>--> |
| | | <!-- <div id="loc-0101204" class="loc" style="top:424px; left:992px; width:70px; height: 22px;line-height: 22px;">1-12-4</div>--> |
| | | <!-- <div id="loc-0101304" class="loc" style="top:424px; left:1064px; width:70px; height: 22px;line-height: 22px;">1-13-4</div>--> |
| | | <!-- <div id="loc-0101404" class="loc" style="top:424px; left:1136px; width:70px; height: 22px;line-height: 22px;">1-14-4</div>--> |
| | | <!-- <div id="loc-0101504" class="loc" style="top:424px; left:1208px; width:70px; height: 22px;line-height: 22px;">1-15-4</div>--> |
| | | <!-- <div id="loc-0101604" class="loc" style="top:424px; left:1280px; width:70px; height: 22px;line-height: 22px;">1-16-4</div>--> |
| | | <!-- <div id="loc-0101704" class="loc" style="top:424px; left:1352px; width:70px; height: 22px;line-height: 22px;">1-17-4</div>--> |
| | | <!-- <div id="loc-0101804" class="loc" style="top:424px; left:1424px; width:70px; height: 22px;line-height: 22px;">1-18-4</div>--> |
| | | <!-- <div id="loc-0101904" class="loc" style="top:424px; left:1496px; width:70px; height: 22px;line-height: 22px;">1-19-4</div>--> |
| | | <!-- <div id="loc-0102004" class="loc" style="top:424px; left:1568px; width:70px; height: 22px;line-height: 22px;">1-20-4</div>--> |
| | | <!-- <div id="loc-0102104" class="loc" style="top:424px; left:1640px; width:70px; height: 22px;line-height: 22px;">1-21-4</div>--> |
| | | <!-- <div id="loc-0102204" class="loc" style="top:424px; left:1712px; width:70px; height: 22px;line-height: 22px;">1-22-4</div>--> |
| | | <!-- <div id="loc-0102304" class="loc" style="top:424px; left:1784px; width:70px; height: 22px;line-height: 22px;">1-23-4</div>--> |
| | | <!-- <div id="loc-0102404" class="loc" style="top:424px; left:1856px; width:70px; height: 22px;line-height: 22px;">1-24-4</div>--> |
| | | <!-- </div>--> |
| | | <!-- <div class="">--> |
| | | <!-- <div id="loc-0100103" class="loc" style="top:448px; left:200px; width:70px; height: 22px;line-height: 22px;">1-1-3</div>--> |
| | | <!-- <div id="loc-0100203" class="loc" style="top:448px; left:272px; width:70px; height: 22px;line-height: 22px;">1-2-3</div>--> |
| | | <!-- <div id="loc-0100303" class="loc" style="top:448px; left:344px; width:70px; height: 22px;line-height: 22px;">1-3-3</div>--> |
| | | <!-- <div id="loc-0100403" class="loc" style="top:448px; left:416px; width:70px; height: 22px;line-height: 22px;">1-4-3</div>--> |
| | | <!-- <div id="loc-0100503" class="loc" style="top:448px; left:488px; width:70px; height: 22px;line-height: 22px;">1-5-3</div>--> |
| | | <!-- <div id="loc-0100603" class="loc" style="top:448px; left:560px; width:70px; height: 22px;line-height: 22px;">1-6-3</div>--> |
| | | <!-- <div id="loc-0100703" class="loc" style="top:448px; left:632px; width:70px; height: 22px;line-height: 22px;">1-7-3</div>--> |
| | | <!-- <div id="loc-0100803" class="loc" style="top:448px; left:704px; width:70px; height: 22px;line-height: 22px;">1-8-3</div>--> |
| | | <!-- <div id="loc-0100903" class="loc" style="top:448px; left:776px; width:70px; height: 22px;line-height: 22px;">1-9-3</div>--> |
| | | <!-- <div id="loc-0101003" class="loc" style="top:448px; left:848px; width:70px; height: 22px;line-height: 22px;">1-10-3</div>--> |
| | | <!-- <div id="loc-0101103" class="loc" style="top:448px; left:920px; width:70px; height: 22px;line-height: 22px;">1-11-3</div>--> |
| | | <!-- <div id="loc-0101203" class="loc" style="top:448px; left:992px; width:70px; height: 22px;line-height: 22px;">1-12-3</div>--> |
| | | <!-- <div id="loc-0101303" class="loc" style="top:448px; left:1064px; width:70px; height: 22px;line-height: 22px;">1-13-3</div>--> |
| | | <!-- <div id="loc-0101403" class="loc" style="top:448px; left:1136px; width:70px; height: 22px;line-height: 22px;">1-14-3</div>--> |
| | | <!-- <div id="loc-0101503" class="loc" style="top:448px; left:1208px; width:70px; height: 22px;line-height: 22px;">1-15-3</div>--> |
| | | <!-- <div id="loc-0101603" class="loc" style="top:448px; left:1280px; width:70px; height: 22px;line-height: 22px;">1-16-3</div>--> |
| | | <!-- <div id="loc-0101703" class="loc" style="top:448px; left:1352px; width:70px; height: 22px;line-height: 22px;">1-17-3</div>--> |
| | | <!-- <div id="loc-0101803" class="loc" style="top:448px; left:1424px; width:70px; height: 22px;line-height: 22px;">1-18-3</div>--> |
| | | <!-- <div id="loc-0101903" class="loc" style="top:448px; left:1496px; width:70px; height: 22px;line-height: 22px;">1-19-3</div>--> |
| | | <!-- <div id="loc-0102003" class="loc" style="top:448px; left:1568px; width:70px; height: 22px;line-height: 22px;">1-20-3</div>--> |
| | | <!-- <div id="loc-0102103" class="loc" style="top:448px; left:1640px; width:70px; height: 22px;line-height: 22px;">1-21-3</div>--> |
| | | <!-- <div id="loc-0102203" class="loc" style="top:448px; left:1712px; width:70px; height: 22px;line-height: 22px;">1-22-3</div>--> |
| | | <!-- <div id="loc-0102303" class="loc" style="top:448px; left:1784px; width:70px; height: 22px;line-height: 22px;">1-23-3</div>--> |
| | | <!-- <div id="loc-0102403" class="loc" style="top:448px; left:1856px; width:70px; height: 22px;line-height: 22px;">1-24-3</div>--> |
| | | <!-- </div>--> |
| | | <div class=""> |
| | | <div id="loc-0100104" class="loc" style="top:424px; left:200px; width:70px; height: 22px;line-height: 22px;">1-1-4</div> |
| | | <div id="loc-0100204" class="loc" style="top:424px; left:272px; width:70px; height: 22px;line-height: 22px;">1-2-4</div> |
| | | <div id="loc-0100304" class="loc" style="top:424px; left:344px; width:70px; height: 22px;line-height: 22px;">1-3-4</div> |
| | | <div id="loc-0100404" class="loc" style="top:424px; left:416px; width:70px; height: 22px;line-height: 22px;">1-4-4</div> |
| | | <div id="loc-0100504" class="loc" style="top:424px; left:488px; width:70px; height: 22px;line-height: 22px;">1-5-4</div> |
| | | <div id="loc-0100604" class="loc" style="top:424px; left:560px; width:70px; height: 22px;line-height: 22px;">1-6-4</div> |
| | | <div id="loc-0100704" class="loc" style="top:424px; left:632px; width:70px; height: 22px;line-height: 22px;">1-7-4</div> |
| | | <div id="loc-0100804" class="loc" style="top:424px; left:704px; width:70px; height: 22px;line-height: 22px;">1-8-4</div> |
| | | <div id="loc-0100904" class="loc" style="top:424px; left:776px; width:70px; height: 22px;line-height: 22px;">1-9-4</div> |
| | | <div id="loc-0101004" class="loc" style="top:424px; left:848px; width:70px; height: 22px;line-height: 22px;">1-10-4</div> |
| | | <div id="loc-0101104" class="loc" style="top:424px; left:920px; width:70px; height: 22px;line-height: 22px;">1-11-4</div> |
| | | <div id="loc-0101204" class="loc" style="top:424px; left:992px; width:70px; height: 22px;line-height: 22px;">1-12-4</div> |
| | | <div id="loc-0101304" class="loc" style="top:424px; left:1064px; width:70px; height: 22px;line-height: 22px;">1-13-4</div> |
| | | <div id="loc-0101404" class="loc" style="top:424px; left:1136px; width:70px; height: 22px;line-height: 22px;">1-14-4</div> |
| | | <div id="loc-0101504" class="loc" style="top:424px; left:1208px; width:70px; height: 22px;line-height: 22px;">1-15-4</div> |
| | | <div id="loc-0101604" class="loc" style="top:424px; left:1280px; width:70px; height: 22px;line-height: 22px;">1-16-4</div> |
| | | <div id="loc-0101704" class="loc" style="top:424px; left:1352px; width:70px; height: 22px;line-height: 22px;">1-17-4</div> |
| | | <div id="loc-0101804" class="loc" style="top:424px; left:1424px; width:70px; height: 22px;line-height: 22px;">1-18-4</div> |
| | | <div id="loc-0101904" class="loc" style="top:424px; left:1496px; width:70px; height: 22px;line-height: 22px;">1-19-4</div> |
| | | <div id="loc-0102004" class="loc" style="top:424px; left:1568px; width:70px; height: 22px;line-height: 22px;">1-20-4</div> |
| | | <div id="loc-0102104" class="loc" style="top:424px; left:1640px; width:70px; height: 22px;line-height: 22px;">1-21-4</div> |
| | | <div id="loc-0102204" class="loc" style="top:424px; left:1712px; width:70px; height: 22px;line-height: 22px;">1-22-4</div> |
| | | <div id="loc-0102304" class="loc" style="top:424px; left:1784px; width:70px; height: 22px;line-height: 22px;">1-23-4</div> |
| | | <div id="loc-0102404" class="loc" style="top:424px; left:1856px; width:70px; height: 22px;line-height: 22px;">1-24-4</div> |
| | | <div id="loc-0100102" class="loc" style="top:372px; left:200px; width:70px; height: 22px;line-height: 22px;">1-1-2</div> |
| | | <div id="loc-0100202" class="loc" style="top:372px; left:272px; width:70px; height: 22px;line-height: 22px;">1-2-2</div> |
| | | <div id="loc-0100302" class="loc" style="top:372px; left:344px; width:70px; height: 22px;line-height: 22px;">1-3-2</div> |
| | | <div id="loc-0100402" class="loc" style="top:372px; left:416px; width:70px; height: 22px;line-height: 22px;">1-4-2</div> |
| | | <div id="loc-0100502" class="loc" style="top:372px; left:488px; width:70px; height: 22px;line-height: 22px;">1-5-2</div> |
| | | <div id="loc-0100602" class="loc" style="top:372px; left:560px; width:70px; height: 22px;line-height: 22px;">1-6-2</div> |
| | | <div id="loc-0100702" class="loc" style="top:372px; left:632px; width:70px; height: 22px;line-height: 22px;">1-7-2</div> |
| | | <div id="loc-0100802" class="loc" style="top:372px; left:704px; width:70px; height: 22px;line-height: 22px;">1-8-2</div> |
| | | <div id="loc-0100902" class="loc" style="top:372px; left:776px; width:70px; height: 22px;line-height: 22px;">1-9-2</div> |
| | | <div id="loc-0101002" class="loc" style="top:372px; left:848px; width:70px; height: 22px;line-height: 22px;">1-10-2</div> |
| | | <div id="loc-0101102" class="loc" style="top:372px; left:920px; width:70px; height: 22px;line-height: 22px;">1-11-2</div> |
| | | <div id="loc-0101202" class="loc" style="top:372px; left:992px; width:70px; height: 22px;line-height: 22px;">1-12-2</div> |
| | | <div id="loc-0101302" class="loc" style="top:372px; left:1064px; width:70px; height: 22px;line-height: 22px;">1-13-2</div> |
| | | <div id="loc-0101402" class="loc" style="top:372px; left:1136px; width:70px; height: 22px;line-height: 22px;">1-14-2</div> |
| | | <!-- <div id="loc-0101502" class="loc" style="top:472px; left:1208px; width:70px; height: 22px;line-height: 22px;">1-15-2</div>--> |
| | | <!-- <div id="loc-0101602" class="loc" style="top:472px; left:1280px; width:70px; height: 22px;line-height: 22px;">1-16-2</div>--> |
| | | <!-- <div id="loc-0101702" class="loc" style="top:472px; left:1352px; width:70px; height: 22px;line-height: 22px;">1-17-2</div>--> |
| | | <!-- <div id="loc-0101802" class="loc" style="top:472px; left:1424px; width:70px; height: 22px;line-height: 22px;">1-18-2</div>--> |
| | | <!-- <div id="loc-0101902" class="loc" style="top:472px; left:1496px; width:70px; height: 22px;line-height: 22px;">1-19-2</div>--> |
| | | <!-- <div id="loc-0102002" class="loc" style="top:472px; left:1568px; width:70px; height: 22px;line-height: 22px;">1-20-2</div>--> |
| | | <!-- <div id="loc-0102102" class="loc" style="top:472px; left:1640px; width:70px; height: 22px;line-height: 22px;">1-21-2</div>--> |
| | | <!-- <div id="loc-0102202" class="loc" style="top:472px; left:1712px; width:70px; height: 22px;line-height: 22px;">1-22-2</div>--> |
| | | <!-- <div id="loc-0102302" class="loc" style="top:472px; left:1784px; width:70px; height: 22px;line-height: 22px;">1-23-2</div>--> |
| | | <!-- <div id="loc-0102402" class="loc" style="top:472px; left:1856px; width:70px; height: 22px;line-height: 22px;">1-24-2</div>--> |
| | | </div> |
| | | <div class=""> |
| | | <div id="loc-0100103" class="loc" style="top:448px; left:200px; width:70px; height: 22px;line-height: 22px;">1-1-3</div> |
| | | <div id="loc-0100203" class="loc" style="top:448px; left:272px; width:70px; height: 22px;line-height: 22px;">1-2-3</div> |
| | | <div id="loc-0100303" class="loc" style="top:448px; left:344px; width:70px; height: 22px;line-height: 22px;">1-3-3</div> |
| | | <div id="loc-0100403" class="loc" style="top:448px; left:416px; width:70px; height: 22px;line-height: 22px;">1-4-3</div> |
| | | <div id="loc-0100503" class="loc" style="top:448px; left:488px; width:70px; height: 22px;line-height: 22px;">1-5-3</div> |
| | | <div id="loc-0100603" class="loc" style="top:448px; left:560px; width:70px; height: 22px;line-height: 22px;">1-6-3</div> |
| | | <div id="loc-0100703" class="loc" style="top:448px; left:632px; width:70px; height: 22px;line-height: 22px;">1-7-3</div> |
| | | <div id="loc-0100803" class="loc" style="top:448px; left:704px; width:70px; height: 22px;line-height: 22px;">1-8-3</div> |
| | | <div id="loc-0100903" class="loc" style="top:448px; left:776px; width:70px; height: 22px;line-height: 22px;">1-9-3</div> |
| | | <div id="loc-0101003" class="loc" style="top:448px; left:848px; width:70px; height: 22px;line-height: 22px;">1-10-3</div> |
| | | <div id="loc-0101103" class="loc" style="top:448px; left:920px; width:70px; height: 22px;line-height: 22px;">1-11-3</div> |
| | | <div id="loc-0101203" class="loc" style="top:448px; left:992px; width:70px; height: 22px;line-height: 22px;">1-12-3</div> |
| | | <div id="loc-0101303" class="loc" style="top:448px; left:1064px; width:70px; height: 22px;line-height: 22px;">1-13-3</div> |
| | | <div id="loc-0101403" class="loc" style="top:448px; left:1136px; width:70px; height: 22px;line-height: 22px;">1-14-3</div> |
| | | <div id="loc-0101503" class="loc" style="top:448px; left:1208px; width:70px; height: 22px;line-height: 22px;">1-15-3</div> |
| | | <div id="loc-0101603" class="loc" style="top:448px; left:1280px; width:70px; height: 22px;line-height: 22px;">1-16-3</div> |
| | | <div id="loc-0101703" class="loc" style="top:448px; left:1352px; width:70px; height: 22px;line-height: 22px;">1-17-3</div> |
| | | <div id="loc-0101803" class="loc" style="top:448px; left:1424px; width:70px; height: 22px;line-height: 22px;">1-18-3</div> |
| | | <div id="loc-0101903" class="loc" style="top:448px; left:1496px; width:70px; height: 22px;line-height: 22px;">1-19-3</div> |
| | | <div id="loc-0102003" class="loc" style="top:448px; left:1568px; width:70px; height: 22px;line-height: 22px;">1-20-3</div> |
| | | <div id="loc-0102103" class="loc" style="top:448px; left:1640px; width:70px; height: 22px;line-height: 22px;">1-21-3</div> |
| | | <div id="loc-0102203" class="loc" style="top:448px; left:1712px; width:70px; height: 22px;line-height: 22px;">1-22-3</div> |
| | | <div id="loc-0102303" class="loc" style="top:448px; left:1784px; width:70px; height: 22px;line-height: 22px;">1-23-3</div> |
| | | <div id="loc-0102403" class="loc" style="top:448px; left:1856px; width:70px; height: 22px;line-height: 22px;">1-24-3</div> |
| | | </div> |
| | | <div class=""> |
| | | <div id="loc-0100102" class="loc" style="top:472px; left:200px; width:70px; height: 22px;line-height: 22px;">1-1-2</div> |
| | | <div id="loc-0100202" class="loc" style="top:472px; left:272px; width:70px; height: 22px;line-height: 22px;">1-2-2</div> |
| | | <div id="loc-0100302" class="loc" style="top:472px; left:344px; width:70px; height: 22px;line-height: 22px;">1-3-2</div> |
| | | <div id="loc-0100402" class="loc" style="top:472px; left:416px; width:70px; height: 22px;line-height: 22px;">1-4-2</div> |
| | | <div id="loc-0100502" class="loc" style="top:472px; left:488px; width:70px; height: 22px;line-height: 22px;">1-5-2</div> |
| | | <div id="loc-0100602" class="loc" style="top:472px; left:560px; width:70px; height: 22px;line-height: 22px;">1-6-2</div> |
| | | <div id="loc-0100702" class="loc" style="top:472px; left:632px; width:70px; height: 22px;line-height: 22px;">1-7-2</div> |
| | | <div id="loc-0100802" class="loc" style="top:472px; left:704px; width:70px; height: 22px;line-height: 22px;">1-8-2</div> |
| | | <div id="loc-0100902" class="loc" style="top:472px; left:776px; width:70px; height: 22px;line-height: 22px;">1-9-2</div> |
| | | <div id="loc-0101002" class="loc" style="top:472px; left:848px; width:70px; height: 22px;line-height: 22px;">1-10-2</div> |
| | | <div id="loc-0101102" class="loc" style="top:472px; left:920px; width:70px; height: 22px;line-height: 22px;">1-11-2</div> |
| | | <div id="loc-0101202" class="loc" style="top:472px; left:992px; width:70px; height: 22px;line-height: 22px;">1-12-2</div> |
| | | <div id="loc-0101302" class="loc" style="top:472px; left:1064px; width:70px; height: 22px;line-height: 22px;">1-13-2</div> |
| | | <div id="loc-0101402" class="loc" style="top:472px; left:1136px; width:70px; height: 22px;line-height: 22px;">1-14-2</div> |
| | | <div id="loc-0101502" class="loc" style="top:472px; left:1208px; width:70px; height: 22px;line-height: 22px;">1-15-2</div> |
| | | <div id="loc-0101602" class="loc" style="top:472px; left:1280px; width:70px; height: 22px;line-height: 22px;">1-16-2</div> |
| | | <div id="loc-0101702" class="loc" style="top:472px; left:1352px; width:70px; height: 22px;line-height: 22px;">1-17-2</div> |
| | | <div id="loc-0101802" class="loc" style="top:472px; left:1424px; width:70px; height: 22px;line-height: 22px;">1-18-2</div> |
| | | <div id="loc-0101902" class="loc" style="top:472px; left:1496px; width:70px; height: 22px;line-height: 22px;">1-19-2</div> |
| | | <div id="loc-0102002" class="loc" style="top:472px; left:1568px; width:70px; height: 22px;line-height: 22px;">1-20-2</div> |
| | | <div id="loc-0102102" class="loc" style="top:472px; left:1640px; width:70px; height: 22px;line-height: 22px;">1-21-2</div> |
| | | <div id="loc-0102202" class="loc" style="top:472px; left:1712px; width:70px; height: 22px;line-height: 22px;">1-22-2</div> |
| | | <div id="loc-0102302" class="loc" style="top:472px; left:1784px; width:70px; height: 22px;line-height: 22px;">1-23-2</div> |
| | | <div id="loc-0102402" class="loc" style="top:472px; left:1856px; width:70px; height: 22px;line-height: 22px;">1-24-2</div> |
| | | </div> |
| | | <div class=""> |
| | | <div id="loc-0100101" class="loc" style="top:496px; left:200px; width:70px; height: 22px;line-height: 22px;">1-1-1</div> |
| | | <div id="loc-0100201" class="loc" style="top:496px; left:272px; width:70px; height: 22px;line-height: 22px;">1-2-1</div> |
| | | <div id="loc-0100301" class="loc" style="top:496px; left:344px; width:70px; height: 22px;line-height: 22px;">1-3-1</div> |
| | | <div id="loc-0100401" class="loc" style="top:496px; left:416px; width:70px; height: 22px;line-height: 22px;">1-4-1</div> |
| | | <div id="loc-0100501" class="loc" style="top:496px; left:488px; width:70px; height: 22px;line-height: 22px;">1-5-1</div> |
| | | <div id="loc-0100601" class="loc" style="top:496px; left:560px; width:70px; height: 22px;line-height: 22px;">1-6-1</div> |
| | | <div id="loc-0100701" class="loc" style="top:496px; left:632px; width:70px; height: 22px;line-height: 22px;">1-7-1</div> |
| | | <div id="loc-0100801" class="loc" style="top:496px; left:704px; width:70px; height: 22px;line-height: 22px;">1-8-1</div> |
| | | <div id="loc-0100901" class="loc" style="top:496px; left:776px; width:70px; height: 22px;line-height: 22px;">1-9-1</div> |
| | | <div id="loc-0101001" class="loc" style="top:496px; left:848px; width:70px; height: 22px;line-height: 22px;">1-10-1</div> |
| | | <div id="loc-0101101" class="loc" style="top:496px; left:920px; width:70px; height: 22px;line-height: 22px;">1-11-1</div> |
| | | <div id="loc-0101201" class="loc" style="top:496px; left:992px; width:70px; height: 22px;line-height: 22px;">1-12-1</div> |
| | | <div id="loc-0101301" class="loc" style="top:496px; left:1064px; width:70px; height: 22px;line-height: 22px;">1-13-1</div> |
| | | <div id="loc-0101401" class="loc" style="top:496px; left:1136px; width:70px; height: 22px;line-height: 22px;">1-14-1</div> |
| | | <div id="loc-0101501" class="loc" style="top:496px; left:1208px; width:70px; height: 22px;line-height: 22px;">1-15-1</div> |
| | | <div id="loc-0101601" class="loc" style="top:496px; left:1280px; width:70px; height: 22px;line-height: 22px;">1-16-1</div> |
| | | <div id="loc-0101701" class="loc" style="top:496px; left:1352px; width:70px; height: 22px;line-height: 22px;">1-17-1</div> |
| | | <div id="loc-0101801" class="loc" style="top:496px; left:1424px; width:70px; height: 22px;line-height: 22px;">1-18-1</div> |
| | | <div id="loc-0101901" class="loc" style="top:496px; left:1496px; width:70px; height: 22px;line-height: 22px;">1-19-1</div> |
| | | <div id="loc-0102001" class="loc" style="top:496px; left:1568px; width:70px; height: 22px;line-height: 22px;">1-20-1</div> |
| | | <div id="loc-0102101" class="loc" style="top:496px; left:1640px; width:70px; height: 22px;line-height: 22px;">1-21-1</div> |
| | | <div id="loc-0102201" class="loc" style="top:496px; left:1712px; width:70px; height: 22px;line-height: 22px;">1-22-1</div> |
| | | <div id="loc-0102301" class="loc" style="top:496px; left:1784px; width:70px; height: 22px;line-height: 22px;">1-23-1</div> |
| | | <div id="loc-0102401" class="loc" style="top:496px; left:1856px; width:70px; height: 22px;line-height: 22px;">1-24-1</div> |
| | | <div id="loc-0100101" class="loc" style="top:396px; left:200px; width:70px; height: 22px;line-height: 22px;">1-1-1</div> |
| | | <div id="loc-0100201" class="loc" style="top:396px; left:272px; width:70px; height: 22px;line-height: 22px;">1-2-1</div> |
| | | <div id="loc-0100301" class="loc" style="top:396px; left:344px; width:70px; height: 22px;line-height: 22px;">1-3-1</div> |
| | | <div id="loc-0100401" class="loc" style="top:396px; left:416px; width:70px; height: 22px;line-height: 22px;">1-4-1</div> |
| | | <div id="loc-0100501" class="loc" style="top:396px; left:488px; width:70px; height: 22px;line-height: 22px;">1-5-1</div> |
| | | <div id="loc-0100601" class="loc" style="top:396px; left:560px; width:70px; height: 22px;line-height: 22px;">1-6-1</div> |
| | | <div id="loc-0100701" class="loc" style="top:396px; left:632px; width:70px; height: 22px;line-height: 22px;">1-7-1</div> |
| | | <div id="loc-0100801" class="loc" style="top:396px; left:704px; width:70px; height: 22px;line-height: 22px;">1-8-1</div> |
| | | <div id="loc-0100901" class="loc" style="top:396px; left:776px; width:70px; height: 22px;line-height: 22px;">1-9-1</div> |
| | | <div id="loc-0101001" class="loc" style="top:396px; left:848px; width:70px; height: 22px;line-height: 22px;">1-10-1</div> |
| | | <div id="loc-0101101" class="loc" style="top:396px; left:920px; width:70px; height: 22px;line-height: 22px;">1-11-1</div> |
| | | <div id="loc-0101201" class="loc" style="top:396px; left:992px; width:70px; height: 22px;line-height: 22px;">1-12-1</div> |
| | | <div id="loc-0101301" class="loc" style="top:396px; left:1064px; width:70px; height: 22px;line-height: 22px;">1-13-1</div> |
| | | <div id="loc-0101401" class="loc" style="top:396px; left:1136px; width:70px; height: 22px;line-height: 22px;">1-14-1</div> |
| | | <!-- <div id="loc-0101501" class="loc" style="top:496px; left:1208px; width:70px; height: 22px;line-height: 22px;">1-15-1</div>--> |
| | | <!-- <div id="loc-0101601" class="loc" style="top:496px; left:1280px; width:70px; height: 22px;line-height: 22px;">1-16-1</div>--> |
| | | <!-- <div id="loc-0101701" class="loc" style="top:496px; left:1352px; width:70px; height: 22px;line-height: 22px;">1-17-1</div>--> |
| | | <!-- <div id="loc-0101801" class="loc" style="top:496px; left:1424px; width:70px; height: 22px;line-height: 22px;">1-18-1</div>--> |
| | | <!-- <div id="loc-0101901" class="loc" style="top:496px; left:1496px; width:70px; height: 22px;line-height: 22px;">1-19-1</div>--> |
| | | <!-- <div id="loc-0102001" class="loc" style="top:496px; left:1568px; width:70px; height: 22px;line-height: 22px;">1-20-1</div>--> |
| | | <!-- <div id="loc-0102101" class="loc" style="top:496px; left:1640px; width:70px; height: 22px;line-height: 22px;">1-21-1</div>--> |
| | | <!-- <div id="loc-0102201" class="loc" style="top:496px; left:1712px; width:70px; height: 22px;line-height: 22px;">1-22-1</div>--> |
| | | <!-- <div id="loc-0102301" class="loc" style="top:496px; left:1784px; width:70px; height: 22px;line-height: 22px;">1-23-1</div>--> |
| | | <!-- <div id="loc-0102401" class="loc" style="top:496px; left:1856px; width:70px; height: 22px;line-height: 22px;">1-24-1</div>--> |
| | | |
| | | <div class="rackDescs" id="lb_desc11" style="top:530px; left:1450px; width:150px;height: 23px;line-height: 23px">1排货架侧视图</div> |
| | | <div class="rackDescs" id="lb_desc11" style="top:430px; left:850px; width:150px;height: 23px;line-height: 23px">1排货架侧视图</div> |
| | | </div> |
| | | |
| | | <div class="button item-group"> |
| | | <span class="site machine-auto-flag" style="color:#FFFFFF; top:550px; left:300px">空库位</span> |
| | | <span class="site machine-stock-move-flag" style="color:#FFFFFF; top:550px; left:364px">在库待测</span> |
| | | <span class="site machine-site-move-flag" style="color:#FFFFFF; top:550px; left:442px">在库测试中</span> |
| | | <span class="site machine-take-flag" style="color:#FFFFFF; top:550px; left:534px">测试成功OK</span> |
| | | <span class="site machine-put-flag" style="color:#FFFFFF; top:550px; left:626px">测试失败NG</span> |
| | | <span class="site machine-error-flag" style="color:#FFFFFF; top:550px; left:716px">异常报警</span> |
| | | <span class="site machine-auto-flag" style="color:#FFFFFF; top:450px; left:300px">空库位</span> |
| | | <span class="site machine-stock-move-flag" style="color:#FFFFFF; top:450px; left:364px">在库待测</span> |
| | | <span class="site machine-site-move-flag" style="color:#FFFFFF; top:450px; left:442px">在库测试中</span> |
| | | <span class="site machine-take-flag" style="color:#FFFFFF; top:450px; left:534px">测试成功OK</span> |
| | | <span class="site machine-put-flag" style="color:#FFFFFF; top:450px; left:626px">测试失败NG</span> |
| | | <span class="site machine-error-flag" style="color:#FFFFFF; top:450px; left:716px">异常报警</span> |
| | | </div> |
| | | |
| | | <div id="body"> |
| | |
| | | <!-- <span> </span>--> |
| | | <input id="crn1" disabled="disabled"> |
| | | </div> |
| | | <div class="crn-command-item"> |
| | | <label>2#</label> |
| | | <button id="demoBtn-2" class="demoBtn" onclick="demoSwitch(this.id)"> - </button> |
| | | <!-- <span> </span>--> |
| | | <input id="crn2" disabled="disabled"> |
| | | </div> |
| | | </div> |
| | | <!-- 堆垛机状态位信息 --> |
| | | <div class="crn-state"> |
| | |
| | | <span class="select-title">堆垛机号</span> |
| | | <div class="select-container"> |
| | | <label><input type="radio" name="crnSelect" value="1" checked> 1号堆垛机</label> |
| | | <label><input type="radio" name="crnSelect" value="2"> 2号堆垛机</label> |
| | | </div> |
| | | </div> |
| | | <!-- 源站/源库位 选择 --> |