| | |
| | | @Autowired |
| | | private BasRgvService basRgvService; |
| | | |
| | | public static final ArrayList<Integer> barcodeNos = new ArrayList<Integer>() {{ |
| | | add(1112);add(1114);add(1122);add(1124); |
| | | |
| | | }}; |
| | | |
| | | @PostMapping("/system/running/status") |
| | | @ManagerAuth(memo = "系统运行状态") |
| | | public R systemRunningStatus(){ |
| | |
| | | stations.putAll(devpThread.getStation()); |
| | | } |
| | | } |
| | | List<BasRgv> basRgvs = basRgvService.selectList(new EntityWrapper<BasRgv>()); |
| | | |
| | | for (Map.Entry<Integer, StaProtocol> entry : stations.entrySet()) { |
| | | SiteLatestDataVo vo = new SiteLatestDataVo(); |
| | | StaProtocol staProtocol = entry.getValue(); |
| | | vo.setSiteId(String.valueOf(entry.getKey())); // 站点编号 |
| | | for (BasRgv basRgv: basRgvs){ |
| | | if (basRgv.getRgvNo().equals(entry.getKey()) ){ |
| | | staProtocol.setWorkNo(basRgv.getWrkNo1()); |
| | | } |
| | | } |
| | | vo.setWorkNo(staProtocol.getWorkNo()); // 工作号 |
| | | vo.setWorkNo(staProtocol.getWorkNo().intValue()); // 工作号 |
| | | vo.setSiteStatus(SiteStatusType.process(staProtocol)); // 状态 |
| | | vo.setNearbySta(staProtocol.getNearbySta()); |
| | | vos.add(vo); |
| | |
| | | @ManagerAuth(memo = "条码扫描仪实时数据") |
| | | public R barcodeLatestData(){ |
| | | List<BarcodeDataVo> list = new ArrayList<>(); |
| | | for (Slave barcode : slaveProperties.getBarcode()) { |
| | | BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcode.getId()); |
| | | if (null == barcodeThread) { |
| | | List<SiteLatestDataVo> vos = new ArrayList<>(); |
| | | Map<Integer, StaProtocol> stations = new HashMap<>(); |
| | | for (DevpSlave devp : slaveProperties.getDevp()) { |
| | | DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); |
| | | if (null != devpThread) { |
| | | stations.putAll(devpThread.getStation()); |
| | | } |
| | | } |
| | | |
| | | for (Map.Entry<Integer, StaProtocol> entry : stations.entrySet()) { |
| | | int index = barcodeNos.indexOf(entry.getValue().getSiteId()); |
| | | if (index == -1) { |
| | | continue; |
| | | } |
| | | BarcodeDataVo vo = new BarcodeDataVo(); |
| | | vo.setBarcodeId(barcode.getId()); |
| | | vo.setCodeValue(barcodeThread.getBarcode()); |
| | | vo.setBarcodeId(index); |
| | | vo.setCodeValue(entry.getValue().getBarcode()); |
| | | list.add(vo); |
| | | } |
| | | |
| | | return R.ok().add(list); |
| | | } |
| | | |
| | |
| | | return R.error("数据库维护异常"); |
| | | } |
| | | vo.setSiteId(siteId); // 站点编号 |
| | | vo.setWorkNo(staProtocol.getWorkNo()); // 工作号 |
| | | vo.setWorkNo(staProtocol.getWorkNo().intValue()); // 工作号 |
| | | |
| | | if (staProtocol.getWorkNo() > 0) { |
| | | WrkMast wrkMast = wrkMastService.selectById(staProtocol.getWorkNo()); |
| | |
| | | list.add(vo); |
| | | StaProtocol staProtocol = station.get(devp.getDevNo()); |
| | | if (null == staProtocol) { continue; } |
| | | vo.setWorkNo(staProtocol.getWorkNo().intValue()); |
| | | vo.setAutoing(staProtocol.isAutoing()?"Y":"N"); // 自动 |
| | | vo.setLoading(staProtocol.isLoading()?"Y":"N"); // 有物 |
| | | vo.setInEnable(staProtocol.isInEnable()?"Y":"N"); // 可入 |
| | |
| | | vo.setStaNo(staProtocol.getStaNo()); // 目标站 |
| | | // vo.setLocType1(staProtocol.isHigh() != staProtocol.isLow() && staProtocol.isLow() ? "低" : "高"); //高低库位 |
| | | vo.setLocType1(devp.getDevNo()==102 ? "高" : "低"); |
| | | vo.setIn(staProtocol.isIn()?"Y":"N"); |
| | | vo.setOut(staProtocol.isOut()?"Y":"N"); |
| | | vo.setIdle(staProtocol.isIdle()?"Y":"N"); |
| | | vo.setFinishWorkNo(staProtocol.getFinishWorkNo().toString()); |
| | | } |
| | | |
| | | return R.ok().add(list); |
| | |
| | | if (siteId.equals(entry.getKey())) { |
| | | StaProtocol staProtocol = entry.getValue(); |
| | | vo.setDevNo(entry.getKey()); // 站点编号 |
| | | vo.setWorkNo(staProtocol.getWorkNo()); // 工作号 |
| | | vo.setWorkNo(staProtocol.getWorkNo().intValue()); // 工作号 |
| | | vo.setAutoing(staProtocol.isAutoing()?"Y":"N"); // 自动 |
| | | vo.setLoading(staProtocol.isLoading()?"Y":"N"); // 有物 |
| | | vo.setInEnable(staProtocol.isInEnable()?"Y":"N"); // 可入 |
| | |
| | | staProtocol = staProtocol.clone(); |
| | | } |
| | | if (workNo != null) { |
| | | staProtocol.setWorkNo(workNo); |
| | | staProtocol.setWorkNo(workNo.shortValue()); |
| | | } |
| | | if (staNo != null) { |
| | | staProtocol.setStaNo(staNo); |
| | |
| | | |
| | | //高低库位 |
| | | private String locType1 = "-"; |
| | | //入库模式 |
| | | private String in = "-"; |
| | | //出库模式 |
| | | private String out = "-"; |
| | | //空闲 |
| | | private String idle = "-"; |
| | | //已完成工作号 |
| | | private String finishWorkNo = "-"; |
| | | } |
| | |
| | | staProtocol = staProtocol.clone(); |
| | | } |
| | | |
| | | if (barcodeThread == null) { |
| | | continue; |
| | | } |
| | | |
| | | if (barcodeThreadMat == null) { |
| | | continue; |
| | | } |
| | | |
| | | String barcode = barcodeThread.getBarcode(); |
| | | |
| | | String barcodeMat = barcodeThreadMat.getBarcode(); |
| | | // 尺寸检测异常 |
| | | boolean back = false; |
| | | String errMsg = ""; |
| | |
| | | } |
| | | // 退回 |
| | | if (back) { |
| | | // News.warn("扫码入库失败,{}入库站因{}异常,托盘已被退回", inSta.getStaNo(), errMsg); |
| | | MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg)); |
| | | |
| | | if (!staProtocol.isLoading()){ |
| | | continue; |
| | | } |
| | |
| | | if (ledThread != null) { |
| | | MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg)); |
| | | } |
| | | staProtocol.setWorkNo(wrkNo); |
| | | News.info("{}入库回退:{},任务号:{}", inSta.getStaNo(), errMsg,wrkNo); |
| | | wrkNo++; |
| | | staProtocol.setStaNo(inSta.getBackSta().shortValue()); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | log.error("输送线下发1:"+wrkNo+","+inSta.getBackSta()); |
| | | } |
| | | |
| | | // 判断是否满足入库条件 |
| | |
| | | && staProtocol.isInEnable() |
| | | && !staProtocol.isEmptyMk() |
| | | && staProtocol.isPakMk()) { |
| | | String barcode = staProtocol.getBarcode(); |
| | | if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode)) { |
| | | News.info("{}号条码扫描器检测条码信息:{}", inSta.getBarcode(), barcode); |
| | | // led 异常显示 |
| | |
| | | String errorMsg = "扫码失败,请重试"; |
| | | MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg)); |
| | | } |
| | | staProtocol.setWorkNo(wrkNo); |
| | | News.info("{}入库回退:{},任务号:{}", inSta.getStaNo(), errMsg,wrkNo); |
| | | wrkNo++; |
| | | staProtocol.setStaNo(inSta.getBackSta().shortValue()); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | log.error("输送线下发1:"+wrkNo+","+inSta.getBackSta()); |
| | | continue; |
| | | } |
| | | if (staProtocol.getSiteId()!= 159){ |
| | | if( Cools.isEmpty(barcodeMat) || "NG".endsWith(barcodeMat) || "NoRead".equals(barcodeMat) || "00000000".equals(barcodeMat)) { |
| | | News.info("{}号条码扫描器检测条码信息:{}", inSta.getBarcodeMat(), barcodeMat); |
| | | |
| | | staProtocol.setWorkNo(wrkNo); |
| | | News.info("{}入库回退:{},任务号:{}", inSta.getStaNo(), errMsg,wrkNo); |
| | | wrkNo++; |
| | | staProtocol.setStaNo(inSta.getBackSta().shortValue()); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | log.error("输送线下发1:"+wrkNo+","+inSta.getBackSta()); |
| | | continue; |
| | | } |
| | | } |
| | | // 判断重复工作档 |
| | | WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode); |
| | |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | if (jsonObject.getInteger("code").equals(200)) { |
| | | StartupDto dto = jsonObject.getObject("data", StartupDto.class); |
| | | barcodeThread.setBarcode(""); |
| | | staProtocol.setWorkNo(dto.getWorkNo().shortValue()); |
| | | staProtocol.setStaNo(RouteUtils.SouStaEnd(dto.getStaNo(),dto.getSourceStaNo())); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | |
| | | |
| | | throw new CoolException("更新plc站点信息失败"); |
| | | } |
| | | } else if (jsonObject.getInteger("code").equals(700)) { |
| | | SearchLocParam param2 = new SearchLocParam(); |
| | | param2.setBarcode(barcode); |
| | | param2.setBarcodeMat(barcodeMat); |
| | | param2.setSourceStaNo(inSta.getStaNo()); |
| | | param2.setLocType1(locTypeDto.getLocType1()); |
| | | String response2 = new HttpHandler.Builder() |
| | | .setUri(wmsUrl) |
| | | .setPath("/rpc/pakin/yk/loc/v33") |
| | | .setJson(JSON.toJSONString(param2)) |
| | | .build() |
| | | .doPost(); |
| | | JSONObject jsonObject2 = JSON.parseObject(response2); |
| | | if (jsonObject2.getInteger("code").equals(200)) { |
| | | log.info("自动组托成功!!"); |
| | | MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, "自动组托成功")); |
| | | } else { |
| | | MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, "自动组托失败!!!barcodeMat==>"+barcodeMat)); |
| | | News.error(methodName + "==>组托失败:请求接口失败!!!url:{};request:{};response:{}", wmsUrl + "/rpc/pakin/yk/loc/v33", JSON.toJSONString(param), response2); |
| | | }else { |
| | | String errorMsg = jsonObject.getString("msg"); |
| | | if (!Cools.isEmpty(errorMsg)) { |
| | | MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg)); |
| | | } |
| | | try{ |
| | | Thread.sleep(500); |
| | | } catch (Exception e){ |
| | | |
| | | } |
| | | } else { |
| | | staProtocol.setWorkNo(wrkNo); |
| | | wrkNo++; |
| | | staProtocol.setStaNo(inSta.getBackSta().shortValue()); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | // |
| | | // if (ledThread != null) { |
| | | String errorMsg = jsonObject.getString("msg"); |
| | | if (!Cools.isEmpty(errorMsg)) { |
| | | MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg)); |
| | | } |
| | | // } |
| | | // News.error(methodName + ":请求接口失败!!!url:{};request:{};response:{}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response); |
| | | } |
| | | |
| | | |
| | |
| | | crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 源库位排 |
| | | crnCommand.setSourcePosY(crnStn.getBay().shortValue()); // 源库位列 |
| | | crnCommand.setSourcePosZ(crnStn.getLev().shortValue()); // 源库位层 |
| | | crnCommand.setDestinationPosX(locMast.getRow1().shortValue()); // 目标库位排 |
| | | crnCommand.setDestinationPosX((short) (locMast.getRow1().shortValue()-13)); // 目标库位排 |
| | | crnCommand.setDestinationPosY(locMast.getBay1().shortValue()); // 目标库位列 |
| | | crnCommand.setDestinationPosZ(locMast.getLev1().shortValue()); // 目标库位层 |
| | | crnCommand.setTraySize(locMast.getLocType1() == 2); |
| | |
| | | crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 工作号 |
| | | // crnCommand.setAckFinish((short) 0); // 任务完成确认位 |
| | | crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 任务模式: 库位移转 |
| | | crnCommand.setSourcePosX(sourceSta.getRow1().shortValue()); // 源库位排 |
| | | crnCommand.setSourcePosX((short) (sourceSta.getRow1().shortValue()-13)); // 源库位排 |
| | | crnCommand.setSourcePosY(sourceSta.getBay1().shortValue()); // 源库位列 |
| | | crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue()); // 源库位层 |
| | | crnCommand.setDestinationPosX(crnStn.getRow().shortValue()); // 目标库位排 |
| | |
| | | crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 工作号 |
| | | crnCommand.setAckFinish((short) 0); // 任务完成确认位 |
| | | crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 任务模式: 库位移转 |
| | | crnCommand.setSourcePosX(sourceSta.getRow1().shortValue()); // 源库位排 |
| | | crnCommand.setSourcePosX((short) (sourceSta.getRow1().shortValue()-13)); // 源库位排 |
| | | crnCommand.setSourcePosY(sourceSta.getBay1().shortValue()); // 源库位列 |
| | | crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue()); // 源库位层 |
| | | crnCommand.setDestinationPosX(sta.getRow1().shortValue()); // 目标库位排 |
| | | crnCommand.setDestinationPosX((short) (sta.getRow1().shortValue()-13)); // 目标库位排 |
| | | crnCommand.setDestinationPosY(sta.getBay1().shortValue()); // 目标库位列 |
| | | crnCommand.setDestinationPosZ(sta.getLev1().shortValue()); // 目标库位层 |
| | | crnCommand.setTraySize(sourceSta.getLocType1() == 2); //库位类型 |
| | |
| | | //lfd入库印记 当stamp>=2时才入库 |
| | | private Integer stamp = 0; |
| | | |
| | | private boolean in = false; |
| | | |
| | | private boolean out = false; |
| | | |
| | | // 外形检测 ------------------------------------------------------------------------ |
| | | |
| | | // 前超限 |
| | |
| | | add(1131);add(1132);add(1133);add(1134);add(1135); |
| | | }}; |
| | | |
| | | public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{ |
| | | add(1112);add(1114);add(1122);add(1124);add(1131); |
| | | |
| | | }}; |
| | | |
| | | public static final ArrayList<Integer> BarcodeList = new ArrayList<Integer>() {{ |
| | | add(1112); add(1122); |
| | | }}; |
| | |
| | | staProtocol.setAutoing(status[0]); // 自动 |
| | | staProtocol.setIdle(status[1]); //空闲 |
| | | staProtocol.setLoading(status[2]); // 有物 |
| | | // staProtocol.setInEnable(status[2]); // 可入 |
| | | // staProtocol.setOutEnable(status[3]);// 可出 |
| | | staProtocol.setIn(status[3]); |
| | | staProtocol.setOut(status[4]); |
| | | staProtocol.setBackErr(status[5]); |
| | | staProtocol.setLeftErr(status[6]); |
| | | staProtocol.setRightErr(status[7]); |
| | |
| | | staProtocol.setWeightErr(status[9]); |
| | | staProtocol.setLow(status[10]); |
| | | staProtocol.setHigh(status[11]); |
| | | |
| | | staProtocol.setInEnable(status[13]); // 可入 |
| | | staProtocol.setOutEnable(status[14]);// 可出 |
| | | |
| | | |
| | | staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*26+2)); // 工作号 |
| | |
| | | if (null == staProtocol) { |
| | | return; |
| | | } |
| | | ArrayList<Integer> staNos = getStaNo(); |
| | | int index = staNos.indexOf(staProtocol.getSiteId()); |
| | | int index = staNos2.indexOf(staProtocol.getSiteId()); |
| | | OperateResult write = null; |
| | | OperateResult write1 = null; |
| | | //任务下发次数 |
| | | int writeCount = 0; |
| | | do { |
| | | write = siemensS7Net.Write("DB83." + index*8+6, staProtocol.getWorkNo()); // 工作号 |
| | | write = siemensS7Net.Write("DB83." + (index*8+6), staProtocol.getWorkNo()); // 工作号 |
| | | Thread.sleep(200); |
| | | write1 = siemensS7Net.Write("DB83." + (index*8+4), staProtocol.getStaNo()); // 目标站 |
| | | if(write.IsSuccess && write1.IsSuccess){ |
| | |
| | | enable: false |
| | | |
| | | wms: |
| | | url: 127.0.0.1:9090/ykwms |
| | | url: 127.0.0.1:8080/fyxcwms |
| | | |
| | | # 下位机配置 |
| | | wcs-slave: |
| | | # 双深 |
| | | doubleDeep: true |
| | | # 双深库位排号 |
| | | doubleLocs: 1,4 |
| | | doubleLocs: 14,16 |
| | | # 一个堆垛机负责的货架排数 |
| | | groupCount: 4 |
| | | # 堆垛机1 |
| | | crn[0]: |
| | | id: 1 |
| | | ip: 10.10.10.10 |
| | | ip: 192.168.10.10 |
| | | port: 102 |
| | | rack: 0 |
| | | slot: 0 |
| | |
| | | row: 2 |
| | | bay: 2 |
| | | lev: 1 |
| | | # 堆垛机入库站点 |
| | | crnInStn[1]: |
| | | devpPlcId: ${wcs-slave.devp[0].id} |
| | | staNo: 1114 |
| | | row: 2 |
| | | bay: 2 |
| | | lev: 1 |
| | | # 堆垛机入库站点 |
| | | crnInStn[2]: |
| | | devpPlcId: ${wcs-slave.devp[0].id} |
| | | staNo: 1122 |
| | | row: 2 |
| | | bay: 2 |
| | | lev: 1 |
| | | # 堆垛机入库站点 |
| | | crnInStn[3]: |
| | | devpPlcId: ${wcs-slave.devp[0].id} |
| | | staNo: 1124 |
| | | row: 2 |
| | | bay: 2 |
| | | lev: 1 |
| | | # 堆垛机出库站点 |
| | | crnOutStn[0]: |
| | | devpPlcId: ${wcs-slave.devp[0].id} |
| | |
| | | row: 2 |
| | | bay: 2 |
| | | lev: 1 |
| | | # 堆垛机入库站点 |
| | | crnInStn[1]: |
| | | devpPlcId: ${wcs-slave.devp[0].id} |
| | | staNo: 1114 |
| | | row: 3 |
| | | bay: 30 |
| | | lev: 1 |
| | | # 堆垛机出库站点 |
| | | crnOutStn[1]: |
| | | devpPlcId: ${wcs-slave.devp[0].id} |
| | | staNo: 1114 |
| | | row: 3 |
| | | bay: 30 |
| | | lev: 1 |
| | | # 堆垛机入库站点 |
| | | crnInStn[2]: |
| | | devpPlcId: ${wcs-slave.devp[0].id} |
| | | staNo: 1122 |
| | | row: 2 |
| | | bay: 2 |
| | | lev: 1 |
| | | lev: 4 |
| | | # 堆垛机出库站点 |
| | | crnOutStn[2]: |
| | | devpPlcId: ${wcs-slave.devp[0].id} |
| | | staNo: 1122 |
| | | row: 2 |
| | | bay: 2 |
| | | lev: 1 |
| | | lev: 4 |
| | | # 堆垛机入库站点 |
| | | crnInStn[3]: |
| | | devpPlcId: ${wcs-slave.devp[0].id} |
| | | staNo: 1124 |
| | | row: 3 |
| | | bay: 30 |
| | | lev: 4 |
| | | # 堆垛机出库站点 |
| | | crnOutStn[3]: |
| | | devpPlcId: ${wcs-slave.devp[0].id} |
| | | staNo: 1124 |
| | | row: 2 |
| | | bay: 2 |
| | | lev: 1 |
| | | row: 3 |
| | | bay: 30 |
| | | lev: 4 |
| | | # 堆垛机入库站点 |
| | | crnInStn[4]: |
| | | devpPlcId: ${wcs-slave.devp[0].id} |
| | | staNo: 1131 |
| | | row: 3 |
| | | bay: 30 |
| | | lev: 8 |
| | | # 堆垛机出库站点 |
| | | crnOutStn[4]: |
| | | devpPlcId: ${wcs-slave.devp[0].id} |
| | | staNo: 1131 |
| | | row: 3 |
| | | bay: 30 |
| | | lev: 8 |
| | | # 输送线1 |
| | | devp[0]: |
| | | id: 1 |
| | | ip: 10.10.10.50 |
| | | ip: 192.168.10.66 |
| | | port: 102 |
| | | rack: 0 |
| | | slot: 0 |
| | | # 入库口1 |
| | | inSta[0]: |
| | | staNo: 106 |
| | | staNo: 1112 |
| | | barcode: ${wcs-slave.barcode[0].id} |
| | | barcodeMat: ${wcs-slave.barcode[3].id} |
| | | backSta: 105 |
| | | backSta: 1111 |
| | | led: ${wcs-slave.led[1].id} |
| | | # 入库口1 |
| | | inSta[1]: |
| | | staNo: 1114 |
| | | barcode: ${wcs-slave.barcode[0].id} |
| | | backSta: 1113 |
| | | led: ${wcs-slave.led[1].id} |
| | | # 入库口1 |
| | | inSta[2]: |
| | | staNo: 1122 |
| | | barcode: ${wcs-slave.barcode[0].id} |
| | | backSta: 1121 |
| | | led: ${wcs-slave.led[1].id} |
| | | # 入库口1 |
| | | inSta[3]: |
| | | staNo: 1124 |
| | | barcode: ${wcs-slave.barcode[0].id} |
| | | backSta: 1123 |
| | | led: ${wcs-slave.led[1].id} |
| | | outSta[0]: |
| | | staNo: 1111 |
| | | led: ${wcs-slave.led[1].id} |
| | | outSta[1]: |
| | | staNo: 1121 |
| | | led: ${wcs-slave.led[1].id} |
| | | outSta[2]: |
| | | staNo: 1113 |
| | | led: ${wcs-slave.led[1].id} |
| | | outSta[3]: |
| | | staNo: 1123 |
| | | led: ${wcs-slave.led[1].id} |
| | | |
| | | |
| | |
| | | track = '', |
| | | tracks = '', |
| | | stn = '', |
| | | stns = '', |
| | | barcode = '', |
| | | barcodeArr = [], |
| | | hoist = '', |
| | | stns = '', |
| | | stnArr = [], |
| | | barcodeArr = [], |
| | | hoistArr = [], |
| | | floorBtn = '', |
| | | floorBtns = '', |
| | | floorBtnss = '', |
| | |
| | | var index = i |
| | | var n = 1 |
| | | stnArr[index] = '' |
| | | total[index] = '' |
| | | barcodeArr[index] = '' |
| | | hoistArr[index] = '' |
| | | total[index] = '' |
| | | for (let j = 0; j < stnss.length; j++) { |
| | | if (stnss[j].type == "stn") { |
| | | stn = "<div class='site' id='" + stnss[j].id + |
| | |
| | | "px'>" + stnss[j].text + "</div>" |
| | | stnArr[i] = stnArr[i] + stn |
| | | } |
| | | |
| | | } |
| | | for (let k = 0; k < barcodes.length; k++) { |
| | | barcode = "<div class='barcode' id='" + barcodes[k].id + |
| | |
| | | "px;left: "+ barcodes[k].left + "px'>" + "</div>" |
| | | barcodeArr[i] = barcodeArr[i] + barcode |
| | | } |
| | | |
| | | } |
| | | floorInfo = racks + rackDescs + tracks + crns + stnArr[0] + floorBtnss+ barcodeArr[0] |
| | | floorInfo = racks + rackDescs + tracks + crns + stnArr[0] + floorBtnss + barcodeArr[0] |
| | | |
| | | $(".main-part").append(floorInfo) |
| | | $("#line-total").html(total[0]) |
| | |
| | | } |
| | | function changFloor(e) { |
| | | $(".main-part").empty() // 清空节点 |
| | | floorInfo = racks + stnArr[e] +rackDescs + crns + tracks + floorBtnss+ barcodeArr[0] |
| | | floorInfo = racks + stnArr[e] +rackDescs + crns + tracks + floorBtnss + barcodeArr[e] |
| | | $(".main-part").append(floorInfo) |
| | | $("#line-total").empty() |
| | | $("#line-total").html(total[e]) |
| | |
| | | "left": 529, |
| | | "width": 1280, |
| | | "height": 22, |
| | | "minBayNo": 2, |
| | | "maxBayNo": 56 |
| | | "minBayNo": 1, |
| | | "maxBayNo": 31 |
| | | }, { |
| | | "type": "rack", |
| | | "id": "rack11", |
| | |
| | | "left": 529, |
| | | "width": 1280, |
| | | "height": 22, |
| | | "minBayNo": 2, |
| | | "maxBayNo": 56 |
| | | "minBayNo": 1, |
| | | "maxBayNo": 31 |
| | | }, { |
| | | "type": "rack", |
| | | "id": "rack10", |
| | |
| | | "left": 529, |
| | | "width": 1280, |
| | | "height": 22, |
| | | "minBayNo": 2, |
| | | "maxBayNo": 56 |
| | | "minBayNo": 1, |
| | | "maxBayNo": 31 |
| | | }, { |
| | | "type": "rack", |
| | | "id": "rack9", |
| | |
| | | "left": 529, |
| | | "width": 1280, |
| | | "height": 22, |
| | | "minBayNo": 2, |
| | | "maxBayNo": 56 |
| | | "minBayNo": 1, |
| | | "maxBayNo": 31 |
| | | }], |
| | | "rackDescs": [{ |
| | | "type": "rackDescs", |
| | |
| | | "top": 167, |
| | | "left": 1810, |
| | | "width": 30, |
| | | "height": 23 |
| | | "height": 0 |
| | | }, { |
| | | "type": "rackDescs", |
| | | "id": "lb_desc2", |
| | |
| | | "top": 596, |
| | | "left": 1810, |
| | | "width": 30, |
| | | "height": 23 |
| | | "height": 0 |
| | | }], |
| | | "crns": [{ |
| | | "type": "track", |
| | |
| | | "height": 2 |
| | | }, { |
| | | "type": "crane", |
| | | "id": "crn-3", |
| | | "text": "3", |
| | | "id": "crn-1", |
| | | "text": "1", |
| | | "top": 325, |
| | | "left": 490, |
| | | "width": 93, |
| | |
| | | "height": 668, |
| | | "stns": [{ |
| | | "type": "stn", |
| | | "id": "site-144", |
| | | "text": "144", |
| | | "top": 239, |
| | | "left": 468, |
| | | "id": "site-1112", |
| | | "text": "1112", |
| | | "top": 280, |
| | | "left": 580, |
| | | "width": 60, |
| | | "height": 19 |
| | | "height": 40 |
| | | },{ |
| | | "type": "stn", |
| | | "id": "site-1111", |
| | | "text": "1111", |
| | | "top": 238, |
| | | "left": 580, |
| | | "width": 60, |
| | | "height": 40 |
| | | },{ |
| | | "type": "stn", |
| | | "id": "site-1114", |
| | | "text": "1114", |
| | | "top": 352, |
| | | "left": 1740, |
| | | "width": 60, |
| | | "height": 40 |
| | | },{ |
| | | "type": "stn", |
| | | "id": "site-1113", |
| | | "text": "1113", |
| | | "top": 394, |
| | | "left": 1740, |
| | | "width": 60, |
| | | "height": 40 |
| | | }], |
| | | "barcode":[ |
| | | { |
| | | "type": "barcode", |
| | | "id": "barcode-1", |
| | | "id": "barcode-0", |
| | | "text": "", |
| | | "top": 749, |
| | | "left": 470, |
| | | "top": 210, |
| | | "left": 570, |
| | | "width": 80, |
| | | "height": 20 |
| | | }, |
| | | { |
| | | "type": "barcode", |
| | | "id": "barcode-2", |
| | | "id": "barcode-1", |
| | | "text": "", |
| | | "top": 684, |
| | | "left": 470, |
| | | "top": 436, |
| | | "left": 1730, |
| | | "width": 80, |
| | | "height": 20 |
| | | } , |
| | | } |
| | | ] |
| | | },{ |
| | | "type": "floor", |
| | | "id": "page_floor2", |
| | | "text": "2库", |
| | | "top": 4, |
| | | "left": 22, |
| | | "width": 1819, |
| | | "height": 668, |
| | | "stns": [{ |
| | | "type": "stn", |
| | | "id": "site-1122", |
| | | "text": "1122", |
| | | "top": 280, |
| | | "left": 580, |
| | | "width": 60, |
| | | "height": 40 |
| | | },{ |
| | | "type": "stn", |
| | | "id": "site-1121", |
| | | "text": "1121", |
| | | "top": 238, |
| | | "left": 580, |
| | | "width": 60, |
| | | "height": 40 |
| | | },{ |
| | | "type": "stn", |
| | | "id": "site-1124", |
| | | "text": "1124", |
| | | "top": 352, |
| | | "left": 1740, |
| | | "width": 60, |
| | | "height": 40 |
| | | },{ |
| | | "type": "stn", |
| | | "id": "site-1123", |
| | | "text": "1123", |
| | | "top": 394, |
| | | "left": 1740, |
| | | "width": 60, |
| | | "height": 40 |
| | | }], |
| | | "barcode":[ |
| | | { |
| | | "type": "barcode", |
| | | "id": "barcode-2", |
| | | "text": "", |
| | | "top": 210, |
| | | "left": 570, |
| | | "width": 80, |
| | | "height": 20 |
| | | }, |
| | | { |
| | | "type": "barcode", |
| | | "id": "barcode-3", |
| | | "text": "", |
| | | "top": 64.5, |
| | | "left": 470, |
| | | "top": 436, |
| | | "left": 1730, |
| | | "width": 80, |
| | | "height": 20 |
| | | } |
| | | , |
| | | { |
| | | "type": "barcode", |
| | | "id": "barcode-4", |
| | | "text": "", |
| | | "top": 749, |
| | | "left": 560, |
| | | "width": 150, |
| | | "height": 20 |
| | | } |
| | | , |
| | | { |
| | | "type": "barcode", |
| | | "id": "barcode-5", |
| | | "text": "", |
| | | "top": 684, |
| | | "left": 560, |
| | | "width": 150, |
| | | "height": 20 |
| | | } |
| | | ] |
| | |
| | | <h6>AUTOMATIC WAREHOUSE WCS MONITORING DIAGRAM</h6> |
| | | </div> |
| | | <div class="head-right"> |
| | | <img src="../static/images/zy-logo.png" alt="中扬" height="44" width="80"> |
| | | <img src="../static/images/logo-dark.png" alt="中扬" height="44"> |
| | | </div> |
| | | </div> |
| | | <!-- 货架 + 堆垛机 + 入库站点 --> |
| | |
| | | <li><a id="console" onclick="nav(this.id)" class="nav-select" href="#">主控图</a></li> |
| | | <li><a id="pipeline" onclick="nav(this.id)" class="nav-unselect" href="#">输送设备</a></li> |
| | | <li><a id="crn" onclick="nav(this.id)" class="nav-unselect" href="#">堆垛机</a></li> |
| | | <li><a id="rgv" onclick="nav(this.id)" class="nav-unselect" href="#">RGV</a></li> |
| | | <!-- <li><a id="rgv" onclick="nav(this.id)" class="nav-unselect" href="#">RGV</a></li>--> |
| | | </ul> |
| | | </div> |
| | | </div> |
| | |
| | | <th>可出</th> |
| | | <th>入库标记</th> |
| | | <th>空板信号</th> |
| | | <th>目标站</th> |
| | | <th>已完成任务</th> |
| | | <th>高低库位</th> |
| | | </tr> |
| | | </thead> |
| | |
| | | setVal(tr.children("td").eq(5), table[i-1].outEnable); |
| | | setVal(tr.children("td").eq(6), table[i-1].pakMk); |
| | | setVal(tr.children("td").eq(7), table[i-1].emptyMk); |
| | | setVal(tr.children("td").eq(8), table[i-1].staNo); |
| | | setVal(tr.children("td").eq(8), table[i-1].finishWorkNo); |
| | | setVal(tr.children("td").eq(9), table[i-1].locType1); |
| | | } |
| | | } else if (res.code === 403){ |