AGV 信号优化复盘报告

迪卡侬燕郊 & 花桥仓库 — AGV 机器人 Wi-Fi 信号优化全记录

📅 2026年4月 — 6月
884
燕郊仓库 2026-06-01 中断次数
191
燕郊 2026-06-01 营业时段 >5秒 有效中断(占营业中断 21.6%)
7
核心最佳实践
2
仓库(燕郊 & 花桥)
🏭 项目背景

燕郊 & 花桥仓库环境与 AP 部署概况

📋 项目范围
燕郊仓库和花桥仓库,部署 Geek+ AGV 机器人执行货架搬运任务。AGV 仅支持 WiFi 4(802.11n),对 Wi-Fi 信号质量高度敏感。

🗺️ AP 部署平面图

燕郊仓库 — 16 个 AP 部署位置(绿色标记),含工作站、叉车充电桩等设施
花桥仓库 — 31 个 AP 部署位置(绿色圆圈标记),含办公区和充电柜区域
仓库AGV 数量AP 数量频段AGV 协议主要挑战
燕郊143162.4G + 5GWiFi 4 (802.11n)货架信号衰减、AP间漫游频繁
花桥166312.4G + 5GWiFi 4 (802.11n)2.4G/5G 混用、配置不统一
🔍 问题发现

通过数据采集与日志分析,量化 AGV 断连问题的严重程度

📊 断连统计总览(2026-05-09)

燕郊断连统计(2026-05-09)— 1,473事件中683次断连(46.4%),143台机器人受影响,1292xxx批次占64.1%

燕郊断连统计(2026-05-09)— 1,473事件中683次断连(46.4%),124台机器人受影响,1292xxx批次占64.1%

花桥断连统计(2026-05-09)— 1,546事件中330次断连(21.3%),166台机器人受影响,1222xxx批次单机故障率最高

花桥断连统计(2026-05-09)— 1,546事件中330次断连(21.3%),81台机器人受影响,1222xxx批次单机故障率最高

指标燕郊花桥
采样时间07:36–12:02(~4.4h)07:30–12:02(~4.5h)
总事件数1,4731,546
断连次数683(46.4%)330(21.3%)
受影响机器人143 台166 台
断连频率2.6 次/分钟1.2 次/分钟
最严重机器人#1291606(19次断连)#1222207(16次断连)
最长单次断联#1293440(57秒)#1292250(402秒 ≈ 7分钟)

📋 RMS 日志证据(Geek+ 机器人管理系统)

RMS 日志记录了 WiFi 断连对 AGV 作业的直接影响:断联 → 无法移动 → 无法到达等待点 → 作业中断

Robot #1293440 — RMS事件日志:机器人无法连接 → 长时间未移动 → 长时间未到达等待点级联故障

Robot #1293440 — RMS事件日志:机器人无法连接 → 长时间未移动 → 长时间未到达等待点级联故障

Robot #1292654 — RMS事件日志:1,451+条「机器人无法连接」记录,纯WiFi故障,排除硬件因素

Robot #1292654 — RMS事件日志:1,451+条「机器人无法连接」记录,纯WiFi故障,排除硬件因素

Case 1 — Meraki 漫游轨迹:AGV 在多个 AP 间频繁切换,RSSI 触发漫游

Case 1 — Meraki 漫游轨迹:AGV 在多个 AP 间频繁切换,RSSI 触发漫游

Case 5 — Meraki 漫游轨迹:断联事件与漫游时间戳对应

Case 5 — Meraki 漫游轨迹:断联事件与漫游时间戳对应

🧬 根因分析

通过 Meraki 漫游分析定位 AGV 断连的根本原因

🔴 核心发现
信道干扰 > 信号覆盖 — AGV 断连的主因不是信号弱,而是同频干扰导致漫游失败。单纯放大功率反而加剧干扰,形成恶性循环。

📡 Meraki 漫游行为分析

以下截图展示了 AGV 在多个 AP 间的漫游行为。绿点 = 正常漫游,红 X = 断联事件。

🔎 根因总结

根因影响证据来源
Auto Channel 分配导致同频干扰AP 间信号互相干扰,AGV 无法稳定漫游Meraki Dashboard 信道分析
AGV 背货架时信号衰减 6~10dBRSSI 跌破漫游阈值,触发频繁切换Kevin 现场点位测试
AGV 连接远处 AP 而非头顶 AP信号质量差,漫游成功率低Meraki 漫游轨迹分析
RSSI Floor 配置不统一(-60/-65)不同机器人漫游行为不一致Geek+ 配置审计
功率放大加剧同频干扰Week 4 负优化:中断数不降反升调整前后数据对比
🗓️ 优化时间线

从问题发现到逐步优化的完整过程记录

4月27日⚠️ 问题暴露

Week 1 — AP 替换部署

  • Jace 前往燕郊仓库实施 AP 替换
  • 采用 Meraki 自动信道分配(Auto Channel)
  • 功率配置:Unit3 -22dBm, Unit1 -19dBm
  • 结果:AGV 机器人在工作日出现大量中断
  • 教训:Auto Channel 在 AGV 场景下不可靠
5月5日✅ 改善

Week 2 — AGV 配置统一

  • 分析发现 AGV 机器人 RSSI Floor 配置不统一:燕郊有 -65 和 -60 两种配置
  • 花桥仓库发现更严重问题:机器人有 2.4G/5G 混用和 2.4G only 的配置
  • 经协商后统一配置
  • 最佳实践:RSSI Floor 统一配置为 -65dBm
  • 结果:燕郊和花桥中断数量均有一定优化
5月11日✅ 关键发现

Week 3 — 信号覆盖问题识别 & Band Steering

  • 燕郊:AGV 在中断点位找不到合适 AP,判断为信号覆盖不佳
  • 关键发现:AGV 背货架时连接的不是头顶上方的 AP,而是较远侧的 AP
  • 花桥:2.4G 中断比 5G 多
  • Lucas 老师建议配置 Meraki 5G Band Steering
  • 最佳实践:AGV 场景必须启用 5G Band Steering
  • 结果:花桥 AGV 被引导至 5G,中断显著优化
5月18日❌ 负优化

Week 4 — 功率放大尝试(负优化)

  • 分析剩余中断,判断为信号覆盖不佳
  • Meraki 建议通过修改 Profile 进一步提升信号功率
  • 周末将大部分 AP 调整至 Unit3 -28dBm
  • 结果:燕郊调整后中断数据显著增加 → 判断为负优化
  • 第二天立即进行配置回退
  • 教训:单纯放大功率不能解决覆盖问题,反而引入更多干扰
5月19日🔧 深度排查

Week 5 — Kevin 现场排查(关键转折)

  • Kevin 抵达燕郊仓库现场,笔记本点位测试
  • 关键发现:货架下方信号衰减 6~10dB
  • AGV RSSI Floor 调整至 -64,Trigger Delta 从 6 改为 4
  • 额外发现:AGV 仅支持 WiFi 4,需关闭 802.11ax
  • 现场发现一台笔记本在 AGV SSID 下开启了 DHCP Server
  • 当晚尝试开启 802.11r 快速漫游 → 效果不理想
  • 最佳实践:关闭 802.11ax、关闭 rogue DHCP Server
5月下旬⚠️ 恢复中

Week 6 — 配置逐步回退

  • 逐步关闭 802.11r 配置
  • 将 RSSI Floor 和 Trigger 配置还原
  • 结果:长时间中断减少,但未回到之前的中断水平
  • 教训:802.11r 在 AGV 场景下是负优化
5月28日⚠️ 关键回退

Week 6.5 — Unit3 统一信道方案回退

  • 前一周将所有 AGV 区 AP 统一切换至 Unit3 信道、功率提至 -23dBm
  • 结果:紫灯消失,但 AGV 上行丢包显著增加
  • 关键认知:信道冲突的影响 > 信号覆盖的影响
  • 执行:凌晨 22:00-02:00 回退至 Unit1+Unit3 混合信道方案
5月29日✅ 显著改善

Week 7 — 核心优化(信道调整)

  • 与 Cisco 原厂和 Geek+ AGV 厂商沟通(参考意大利迪卡侬仓库案例)
  • 关键结论:信道干扰 > 信号覆盖,应优先解决信道干扰
  • 可以启用 DFS 信道规避信道冲突
  • 意大利采用 Meraki MA-ANT-3-E6 定向天线(增益 3.7dBm)
  • 凌晨实施:燕郊 AP 信道调整 + 部分 AP 功率调小至 -19dBm
  • 结果:周末中断降至 500+ 次
6月🔄 进行中

当前状态 — 持续优化中

  • 目前关注:中断时间超过 5s 的情况,日均 100+ 次
  • 分析为 AP 信号覆盖不到位
  • 后续计划:更换定向天线 + 降低 AP 高度
  • 参考:意大利迪卡侬仓库方案(MA-ANT-3-E6 + 6米高度)

📡 信道规划图(5月28日优化后)

5GHz 信道规划图(2026-05-28 优化后)— UNII-1/2A 与 UNII-3 双频段分配

5GHz 信道规划图(2026-05-28 优化后)— UNII-1/2A 与 UNII-3 双频段分配

📘 最佳实践总结

从本次项目中提炼的 7 项核心最佳实践

📡

手动指定信道

❌ Auto Channel 在 AGV 密集场景下不可靠
✅ 手动规划信道分配,避免同频干扰

📏

RSSI Floor 统一 -65dBm

AGV 机器人 RSSI Floor 必须统一配置,推荐 -65dBm 作为阈值。不统一的配置会导致漫游行为不一致。

📶

启用 5G Band Steering

AGV 场景必须启用 5G Band Steering,引导机器人优先使用 5GHz 频段。花桥启用后 2.4G 断连显著减少。

🚫

关闭 802.11ax

AGV 仅支持 WiFi 4(802.11n),开启 802.11ax 会导致日志报错和连接异常。关闭后报错消失。

🔒

关闭 Rogue DHCP Server

现场排查发现非授权 DHCP Server 会导致 AGV 获取错误 IP,必须关闭。建议定期扫描排查。

⚠️

802.11r 慎用

802.11r 快速漫游在 AGV 场景下实测为负优化,不建议开启。配置回退不及时会持续影响。

🎯

信道干扰优先于功率放大

信号覆盖问题不能只靠放大功率解决。应优先解决信道干扰,必要时启用 DFS 信道。

⚙️ 关键配置参考

AGV Wi-Fi 优化相关的 Meraki & AGV 配置参数汇总

🔧 Meraki AP 配置参数

配置项推荐值不推荐值说明
信道分配手动指定Auto ChannelAuto Channel 在 AGV 场景下不可靠
5GHz 信道方案Unit1+Unit3 混合全部 Unit3全部 Unit3 导致同频干扰
Band Steering启用 5G关闭引导 AGV 优先使用 5GHz
802.11ax关闭启用AGV 仅支持 WiFi 4
802.11r关闭启用AGV 场景下实测负优化
AP 功率(主 AP)-22 ~ -19 dBm-28 dBm过高功率加剧同频干扰
定向天线MA-ANT-3-E6(6.3 dBi)全向天线意大利迪卡侬验证方案
AP 安装高度~6 米>8 米降低高度缩小覆盖、提高信号质量

🤖 AGV 机器人配置参数

配置项推荐值说明
RSSI Floor-65 dBm(统一)所有 AGV 必须一致
Trigger Delta6值越小 AGV 越早触发漫游
WiFi 协议WiFi 4 onlyAGV 硬件仅支持 802.11n
频段5GHz 优先通过 Band Steering 实现

📡 漫游参数详解

参数 作用 本项目设置 调优建议
RSSI Floor 漫游触发阈值。当当前 AP 的 RSSI 低于此值时,客户端开始寻找更优 AP。 -65 dBm 值越高(如 -60)漫游越积极,值越低(如 -75)漫游越保守。仓库场景建议 -65 ~ -70 dBm。
Trigger Delta 候选 AP 与当前 AP 的最小 RSSI 差值。仅当候选 AP 信号比当前 AP 好 Δ dB 时才触发切换。 6 dB 值越小切换越快,但可能频繁漫游(ping-pong);值越大切换越稳定,但可能粘连旧 AP。AGV 场景建议 5 ~ 8 dB。
Band Steering 引导双频客户端优先连接 5GHz 频段,减少 2.4GHz 拥挤干扰。 已启用 AGV 场景强烈建议启用,确保设备稳定在 5GHz 频段,避免 2.4GHz 干扰导致漫游失败。
Scan Period 漫游扫描周期。xPico 每隔此时间主动扫描周围 AP 信号,评估是否需要漫游切换。 2 秒(默认) 经 Frank 咨询 xPico 原厂确认,2 秒为最佳实践值,不建议修改
WiFi Protocol xPico 200 网卡硬件支持的 WiFi 协议版本。 802.11n (WiFi 4) xPico 200 硬件限制仅支持 WiFi 4,需确保 AP 端兼容 802.11n 协议并正确配置混合模式。

📖 参数详细说明参考: Lantronix xPico 200 CLI Reference — Roaming Configuration

AGV Wi-Fi 配置截图(xPico 240 漫游参数)— 5GHz Only, TX Power 19dBm, RSSI Floor -65dBm, Band 5GHz Trigger Delta 6 dBm

AGV Wi-Fi 配置截图(xPico 240 漫游参数)— 5GHz Only / TX Power 19dBm / RSSI Floor -65dBm / Band 5GHz Trigger Delta 6 dBm

项目中实际使用的 xPico 200 系列 AGV 网卡管理工具,基于 tkinter 图形界面操作,支持扫描设备、导出配置、批量修改漫游参数、查看实时连接状态。相比命令行版本,GUI 操作更直观高效。下方代码已对密码字段脱敏(实际使用时请填入真实密码)。

启动方式

python xpico_gui.py

启动后图形界面支持以下操作:

  • 扫描设备 — 自动扫描网段内所有在线 xPico 设备并列出
  • 导出配置 — 批量导出所有设备的 Radio/Roaming 配置,支持 CSV
  • 批量修改 — 批量修改漫游参数(RSSI Floor / Trigger Delta)
  • 查看状态 — 实时查看设备连接状态(SSID / BSSID / RSSI / Channel)
  • 单台操作 — 点击设备可查看/修改单台配置

核心代码(xpico_gui.py 精简版)

#!/usr/bin/env python3
"""xPico 200 系列 AGV 网卡批量管理工具 - GUI 版本
功能:图形界面操作,支持扫描/导出/修改/查看单台设备配置
依赖:pip install requests  (tkinter 为 Python 内置)
"""

import csv, ipaddress, re, subprocess, sys, threading, webbrowser
import xml.etree.ElementTree as ET
from concurrent.futures import ThreadPoolExecutor, as_completed
from datetime import datetime
from tkinter import *
import tkinter.ttk as ttk
from tkinter import filedialog, messagebox
from tkinter.scrolledtext import ScrolledText

try:
    import requests
    from requests.auth import HTTPDigestAuth
except ImportError:
    print("[!] 需要安装 requests 库: pip install requests")
    sys.exit(1)

# ============== 配置区 ==============
SUBNET          = "172.21.58.0/23"
DEFAULT_USERNAME = "admin"
DEFAULT_PASSWORD = "********"   # 脱敏:实际部署填入 xPico 密码
TIMEOUT         = 3
MAX_WORKERS     = 30
PING_TIMEOUT    = 1

# ============== xPico HTTP API ==============
class XPicoClient:
    """通过 HTTP Digest Auth 与 xPico 200 通信"""
    def __init__(self, ip, username=DEFAULT_USERNAME, password=DEFAULT_PASSWORD, timeout=TIMEOUT):
        self.ip = ip
        self.base = f"http://{ip}"
        self.auth = HTTPDigestAuth(username, password)
        self.timeout = timeout
        self._session = None

    @property
    def session(self):
        if self._session is None:
            self._session = requests.Session()
        return self._session

    def _post(self, path, data=None, files=None):
        url = f"{self.base}{path}"
        try:
            if files:
                resp = self.session.post(url, auth=self.auth, files=files, timeout=self.timeout)
            elif data:
                resp = self.session.post(url, auth=self.auth, data=data, timeout=self.timeout)
            else:
                resp = self.session.post(url, auth=self.auth, timeout=self.timeout)
            return resp
        except requests.exceptions.RequestException:
            return None

    def is_xpico(self):
        resp = self._post("/export/config", data={"optionalGroupList": "Device"})
        if resp and resp.status_code == 200:
            text = resp.text
            if "configrecord" in text or "xPico" in text:
                return True
        return False

    def export_config(self, group_list=None):
        data = {}
        if group_list:
            data["optionalGroupList"] = group_list
        resp = self._post("/export/config", data=data)
        return resp.text if resp and resp.status_code == 200 else None

    def export_status(self, group_list=None):
        data = {}
        if group_list:
            data["optionalGroupList"] = group_list
        resp = self._post("/export/status", data=data)
        return resp.text if resp and resp.status_code == 200 else None

    def import_config(self, xml_content):
        resp = self._post("/import/config", files={"configrecord": ("config.xml", xml_content)})
        return resp.status_code == 200 if resp else False

    def save_config(self):
        resp = self._post("/action/status", data="group=Device&action=Save")
        return resp.status_code == 200 if resp else False

    def reboot(self):
        resp = self._post("/action/status", data="group=Device&action=Reboot")
        return resp.status_code == 200 if resp else False

# ============== Radio/Roaming 配置提取 ==============
def extract_radio_config(parsed):
    radio = parsed.get("Radio", {})
    wlan  = _find_wlan_profile(parsed)
    return {
        "Radio Mode":           radio.get("Mode", "N/A"),
        "Band":                 radio.get("Band", "N/A"),
        "Roaming State":        radio.get("Roaming:State", "N/A"),
        "Scan Period":          radio.get("Roaming:Scan Period", "N/A"),
        "2.4GHz RSSI Floor":    radio.get("Roaming:Band 2.4GHz RSSI Floor", "N/A"),
        "2.4GHz Trigger Delta": radio.get("Roaming:Band 2.4GHz Trigger Delta", "N/A"),
        "5GHz RSSI Floor":      radio.get("Roaming:Band 5GHz RSSI Floor", "N/A"),
        "5GHz Trigger Delta":   radio.get("Roaming:Band 5GHz Trigger Delta", "N/A"),
        "WLAN TX Power Maximum": wlan.get("Advanced:TX Power Maximum", "N/A"),
    }

# ============== GUI 主窗口 ==============
class XPicoGUI:
    def __init__(self, root):
        self.root = root
        self.root.title("xPico 200 AGV 网卡管理工具")
        self.root.geometry("1100x750")
        self.devices = []        # 已发现的 xPico 设备列表
        self._build_ui()

    def _build_ui(self):
        # 顶部工具栏:扫描 / 导出 / 修改 / 状态 按钮
        toolbar = ttk.Frame(self.root)
        toolbar.pack(fill=X, padx=8, pady=4)
        ttk.Button(toolbar, text="🔍 扫描设备", command=self._scan).pack(side=LEFT, padx=4)
        ttk.Button(toolbar, text="📤 导出配置", command=self._export).pack(side=LEFT, padx=4)
        ttk.Button(toolbar, text="📝 批量修改", command=self._modify).pack(side=LEFT, padx=4)
        ttk.Button(toolbar, text="📊 连接状态", command=self._status).pack(side=LEFT, padx=4)
        ttk.Button(toolbar, text="📄 导出CSV", command=self._export_csv).pack(side=LEFT, padx=4)

        # 左侧设备列表
        left = ttk.Frame(self.root)
        left.pack(side=LEFT, fill=Y, padx=8)
        ttk.Label(left, text="设备列表", font=("", 11, "bold")).pack()
        self.dev_listbox = Listbox(left, width=28, height=30)
        self.dev_listbox.pack(fill=Y, expand=True)
        self.dev_listbox.bind("<<ListboxSelect>>", self._on_select)

        # 右侧详情面板
        right = ttk.Frame(self.root)
        right.pack(side=RIGHT, fill=BOTH, expand=True, padx=8)
        ttk.Label(right, text="设备详情", font=("", 11, "bold")).pack()
        self.detail = ScrolledText(right, wrap=WORD, font=("Consolas", 10))
        self.detail.pack(fill=BOTH, expand=True)

    def _scan(self):
        """扫描网段内所有 xPico 设备(多线程 ping + 验证)"""
        self.detail.delete("1.0", END)
        self.detail.insert(END, "正在扫描网段,请稍候...\n")
        threading.Thread(target=self._do_scan, daemon=True).start()

    def _do_scan(self):
        ips = [str(ip) for ip in ipaddress.ip_network(SUBNET, strict=False).hosts()]
        # 1) 并发 ping
        online = []
        with ThreadPoolExecutor(max_workers=MAX_WORKERS) as pool:
            futs = {pool.submit(ping_check, ip): ip for ip in ips}
            for f in as_completed(futs):
                if f.result():
                    online.append(futs[f])
        # 2) 并发验证是否为 xPico
        self.devices = []
        with ThreadPoolExecutor(max_workers=MAX_WORKERS) as pool:
            futs = {pool.submit(XPicoClient(ip).is_xpico, ): ip for ip in online}
            for f in as_completed(futs):
                if f.result():
                    self.devices.append(futs[f])
        # 3) 更新 UI
        self.root.after(0, self._refresh_list)

    def _on_select(self, event):
        """点击设备 → 加载该设备详细配置"""
        sel = self.dev_listbox.curselection()
        if not sel: return
        ip = self.devices[sel[0]]
        threading.Thread(target=lambda: self._load_device(ip), daemon=True).start()

    def _load_device(self, ip):
        client = XPicoClient(ip)
        xml = client.export_config("Radio")
        if xml:
            parsed = parse_config_xml(xml)
            radio = extract_radio_config(parsed)
            self.root.after(0, lambda: self._show_detail(ip, radio))

    # ... 导出/修改/状态方法类似,均通过 XPicoClient API 操作

💡 实际部署时,DEFAULT_PASSWORD 替换为 xPico 设备密码。GUI 版本相比命令行版本操作更直观,项目中实际使用 GUI 版本进行批量管理。

📸 Meraki Dashboard RF Profile 实际配置

燕郊与花桥仓库当前 RF Profile(功率 / 信道 / Band Steering)实际配置截图。

燕郊仓库 RF Profile 1 — 功率/信道/Band Steering 实际配置

燕郊仓库 RF Profile 1 — 功率/信道/Band Steering 配置

燕郊仓库 RF Profile 2 — 5GHz 信道方案与功率配置

燕郊仓库 RF Profile 2 — 5GHz 信道方案与功率配置

花桥仓库 RF Profile 1 — 功率/信道/Band Steering 实际配置

花桥仓库 RF Profile 1 — 功率/信道/Band Steering 配置

花桥仓库 RF Profile 2 — 5GHz 信道方案与功率配置

花桥仓库 RF Profile 2 — 5GHz 信道方案与功率配置

💡 使用建议
对 AGV 配置要慎重。当前阶段最佳实践是仅调整 RSSI Floor(统一为 -65dBm)。 Trigger Delta 不建议调整,保持默认 6 —— 历史调整曾出现过负优化,频繁的漫游触发实际效果不佳。 新项目部署 AGV Wi-Fi 时,建议以本配置表作为基线参考,先按推荐值配置,观察 1-2 周后再根据实际断连数据判断是否需要进一步微调。
🧠 关键认知

本次项目中最重要的一些认知突破

⚡ AGV Wi-Fi 信号优化的核心认知

  • 信号覆盖 ≠ 放大功率:放大功率会增加同频干扰,反而恶化 AGV 连接质量。Week 4 的功率放大尝试和 Unit3 统一方案都验证了这一点。
  • AGV 背货架时信号衰减 6~10dB:实际工况与空旷环境差异巨大,必须在带载状态下测试。空旷环境测试结果不可用于判断覆盖是否足够。
  • AGV 连接的不是最近的 AP:背货架状态下,AGV 往往连接较远侧的 AP 而非头顶上方的 AP,因为货架遮挡导致头顶 AP 信号衰减更大。
  • 信道冲突 > 信号覆盖:这是本次项目最重要的认知。解决信号覆盖问题时,必须同时评估信道干扰的影响。
  • 定向天线是终极方案:意大利迪卡侬采用 MA-ANT-3-E6 定向天线(6.3 dBi),AGV 回向 AP 也能享受增益,同时减少信号外溢降低干扰。
  • 降低 AP 高度可缩小覆盖范围、提高信号质量:AP 越高覆盖越广,但信号到达 AGV 时衰减也越大。6 米是验证过的合理高度。
  • 配置变更必须可回退:每次变更前备份配置,变更后观察至少 1 个工作日再做下一步。802.11r 的教训说明,配置未及时回退会造成持续影响。
🚀 后续计划

下一阶段的优化方向

1
更换 MA-ANT-3-E6 定向天线
2
降低 AP 安装高度 —— 须先经 Ekahau 模拟,再结合中国仓库实际情况进行调整
3
启用 DFS 信道进一步减少干扰
4
持续监控 5s+ 长时间中断数据
5
花桥仓库优化空间:关闭 802.11ax;Minimum Bitrate 调整至 6;统一花桥 AGV 配置
花桥仓库当前 5GHz 信道分布图 — 31 个 AP 部署位置及信道分配

花桥仓库当前 5GHz 信道分布图 —— 31 个 AP 的信道分配现状(用于支撑后续 802.11ax 关闭、Minimum Bitrate 调整至 6 等优化动作)

← 返回主页