先说结论:仓库断网分两种。RF 枪和 WMS 之间断了,叫"断胳膊";WMS 服务器自己挂了,叫"断心脏"。断胳膊靠手持终端的离线模式顶过去,断心脏只能靠纸单加事后对账硬扛。拣选和收货这两个环节必须配离线兜底,看板和报表这种可以赌一把——赌输了大不了晚看一会儿,货照样发得出去。
2021 年,我在加州安大略一个 9 万平方英尺的 3PL 仓库做 WMS 上线,现场 30 台 Zebra TC52 手持终端,旺季一天出 4000 多单,全靠 RF 枪扫码推进。有天下午机房空调故障,核心交换机过热重启,WiFi 断了 40 分钟。终端屏幕上齐刷刷弹"连接失败",拣选员站在通道里干瞪眼。那 40 分钟仓库等于停摆——不是没货,是没人知道该拣什么、拣完往哪放。这次之后,离线兜底成了我每个 WMS 项目的必配项,写进验收清单,不配不上线。
断网了,RF 枪还能继续扫吗?
能,但前提是终端 App 真有离线模式,而不是销售嘴里的离线模式。
很多 WMS 厂商的移动端号称支持离线,实际只是缓存了个登录页,任务数据一条没存。验收时别听介绍,直接拔网线测:断网状态下能不能照常扫码拣选、扫码上架、做盘点,扫完的数据能不能存在本机。能,才叫离线模式。
离线模式要成立,靠两件事。开工前,系统得把当天的波次任务、库位主数据、商品条码库推到终端本地——这点数据量,Zebra TC52 这种安卓机型存几万条任务记录没压力(具体以厂商文档为准)。断网之后,每一次扫描带时间戳存在本地队列里,网络一恢复就按顺序上传。这两件事缺一件,离线模式都是摆设。
这里有个坑我实打实踩过。安大略那次,网络恢复的瞬间,30 台终端同时把积压的扫描记录往服务器灌,直接把 WMS 的数据接口打到超时:一半记录没写进去,另一半写了两遍。后来我们补了两个配置才算收尾。终端侧加上传节流,分批上传、间隔错开;服务端加幂等校验,用设备序列号加时间戳做唯一键,重复上传直接丢弃。这两个配置不写进验收清单,离线模式等于白做。
断点续传也是同一个逻辑。波次拣选拣到一半断网,重连之后任务要从断掉的那一行继续,而不是整个波次重新下发。做法是任务进度实时写本地,上传时带上"已完成行号"。验收时专门测一次:拣到第 20 行拔网线,剩下拣完再恢复,看系统认不认这 20 行。不认的,回去改。
预下载最好做成开工自动触发:拣选员登录打卡,任务和数据就静默推到终端上,别指望人工点同步——忙起来没人记得点,开工十分钟才发现数据是昨天的,这种坑我见过不止一次。
顺带说一句,很多仓库所谓的"断网"其实是 WiFi 死角:高位货架全是金属,信号穿过去就剩一半,叉车一开,终端在两个 AP 之间来回跳,跳着跳着就掉了。这种情况先做全场信号勘测,该加 AP 加 AP,离线模式是兜底,不是拿来替代网络优化的。分不清这两件事,配了离线模式也天天断。

服务器真挂了,纸单兜底怎么做才不乱?
服务器挂了,离线模式也救不了——终端本地那点数据撑不过一个班次。这时候只能上纸单。但纸单不是随便打印几张 A4 就完事,乱发纸单比停工更可怕,账一乱,恢复之后三天都理不清。
纸单兜底要提前备好三样东西,缺一不可。预打印的应急拣选单模板,平时锁在主管办公室的柜子里。模板上每一行预留条码位:库位条码、商品条码、数量栏,全部用条码加数字双显示。为什么?事后补录时,录单员可以用扫码枪扫纸单录入,比手敲 SKU 快得多,也少出错。安大略那次事后抽查,纯手写 SKU 的纸单,录入错误率是平时的 3~5 倍(项目实测约数);带条码的纸单基本没出过错。
模板上还要留操作人签字栏和时间栏:谁拣的、几点几分拣的,当场填上。事后对账时,这两栏能帮你还原每一单的先后顺序,查差异时省一半时间。
纸单编号规则也不能少。每一张应急单必须有唯一编号,类似"EMRG-日期-流水号",谁领走哪几张、拣完交回哪几张,主管手写台账登记。没有编号的纸单,事后对账时你根本不知道少没少单,丢一张就是一笔糊涂账。
事后补录要立双人规则。网络恢复后,纸单数据由专人补录进 WMS,另一人抽查一成左右(约数,各家按自己的容错定)。补录完成前,相关库位的库存状态锁死,不许再动——不然补录和实时作业一交叉,账就永远对不平了。
纸单兜底还有个容易被忽略的环节:收货。服务器挂了,ASN 收不到,来货只能先卸到待检区,纸单记录车牌、件数、唛头,拍照留存,等系统恢复再按纸单做收货。待检区平时就要划出来,别等出事了现找地方堆货。
网络恢复以后,对账先看哪三个地方?
网好了不等于恢复正常了。我的习惯是按顺序看三个地方,顺序不能乱。
先看时间戳。离线期间终端记录的时间戳,和服务器时间对没对上,直接决定库存台账的先后顺序。终端和服务器必须都对 NTP 时间源,差几分钟,离线记录和在线记录的顺序就全乱了,盘点差异能把人逼疯。很多仓库的终端时间是出厂默认,从没对过,平时在线作业看不出来,一断网就露馅。验收离线方案时,我会把一台终端的时间故意调快 10 分钟再断网测试,看系统能不能发现并告警。发现不了的,这套方案不合格。
再看重复和丢失。把离线队列的上传日志导出来,和 WMS 的库存事务表逐条核对:有没有同一条扫描写了两次(幂等没做好),有没有扫了但没写进去(上传超时丢了)。重点查拣选和上架这两个高频动作,收货和盘点相对低频,往后排。
第三个要看的是纸单闭环。应急单一张一张销号:领走多少、交回多少、补录多少,三个数对上才算完。少一张,就顺着主管的手写台账往下查。安大略那次 40 分钟断网,事后对账花了整整一个下午(项目实测)。断网 40 分钟,对账 4 小时——这个比例你要提前跟管理层打好招呼,不然他们以为网一好就万事大吉。
对账报告签字之前,别急着把"已恢复"报上去。我的规矩是:签字之前,仓库状态对外仍是"受限作业"。
本周就能动手的三件事
- 做一次拔网线测试。挑个非高峰时段,断掉拣选区一台 AP,或者直接开一台终端的飞行模式,看终端 App 能不能离线拣完一个波次、重连后数据全不全。测完你就知道自家 WMS 的离线模式是真是假。
- 打印 50 张应急拣选单模板。按上面的条码双显示格式做好,锁进主管办公室。下次服务器宕机,你至少有纸可用。
- 给所有终端和服务器对一次 NTP。登录每台手持看系统时间,和服务器时间差超过 1 分钟的,全部校准。这是成本最低的一次兜底投入。










