WCS 联调这事,我先扔一个现场给你。2023 年秋天,华东一个 5 万平的电商仓,WCS 上线第三天,分拣线开始批量错分:400 多件货进了错的格口,现场三个人站在格口前"捞货"捞到半夜。查了一整天,根因是一个光电开关的信号在 PLC 程序里取反了——有货报无货,无货报有货。改过来只用了 10 分钟。但前面三天的错分、复核、客诉,加起来够买半台 PLC。
这就是 WCS 联调的真相:上线后九成的灵异故障,根子都在联调阶段没测透的信号上。线转起来不叫联调完,信号对上了才叫。
WCS 联调到底在调什么:三层"翻译"不断、不错、不延迟
你可以理解为,WCS 联调调的不是设备,是三层翻译。
第一层是设备层:光电、编码器、变频器、电机,把物理世界翻译成 DI、DO、AI、AO 信号。光电被纸箱挡住,DI 从 0 跳到 1,这就是翻译。
第二层是控制层:PLC 读信号、跑逻辑,把"有货"翻译成"启动分拣""顶出格口"。PLC 的扫描周期一般是几十毫秒,这一层的延迟就卡在这里。
第三层是系统层:WCS 从 PLC 拿状态、给 PLC 下指令,再往上对 WMS 交代任务完成没完成。WCS 和 PLC 之间一般走标准工业协议对接,延迟再多个几十毫秒。
联调,就是一层一层验这条翻译链:不断(信号通路是通的)、不错(0 和 1 别反了)、不延迟(从遮挡光电到 WCS 看到变化,超时就要查)。这就像新房装修验收:不是看灯亮不亮,是查每一根线从空开到开关到灯头,线号对不对、火零有没有接反。灯亮了也可能是零火反了,能用,但漏电开关一跳你就傻眼了。WCS 上线后的灵异故障,全是这种"灯亮着但线接反了"的问题。
点位表:信号的"户口本",错一个字后患无穷
点位表(IO List)是整个联调的总纲。写法上我只认一个标准:一个点位一行,以下字段一个不能少——点位编号、信号名称、信号类型(DI/DO/AI/AO)、所属设备、PLC 站号、模块槽位、通道号、WCS 侧变量名、正常状态、备注。
命名规范是命。我见过最坑的一张表:同一个光电,电气图上叫 PE-101,PLC 程序里叫 Photo_1,WCS 变量叫 sensor_A。对点的时候三个人拿着三张表互相猜,猜错一个,上线就错分一批货。所以我的铁律是:点位编号全局唯一,PLC 变量名、WCS 变量名、电气图代号,三处必须同一个名字。谁改名,谁负责把三处全改掉并签字。
反常识的判断来了:点位表不是越细越好。有些项目把"电柜门开了""风扇转了"这种状态也做到 WCS 报警里,一个站 400 多个点,测到天荒地老,真正关键的信号反而淹没在里面。我的分界线是:进 WCS 点位表的信号,必须同时满足两个条件——第一,WCS 的逻辑要用它做判断;第二,它的异常会导致停线或错分。两个都不占的,留在 PLC 本地报警就行,别进点位表。每个多余的点位,都是以后半夜两点把你从床上叫起来的嫌疑人。
信号映射测试:最枯燥,也最值钱
信号映射,就是把 PLC 的每一个 IO 点,和 WCS 里的变量一一对应上,并且逐点实测。做法很笨,但没有捷径:一个人拿着点位表在现场拨信号——遮挡光电、按按钮、拔网线模拟通讯中断;另一个人在 WCS 监控画面前看变量跳不跳、跳得对不对。
三个必测项,一个不能少:
第一,通断对不对。DI 有信号时 WCS 显示 1,无信号显示 0。别笑,取反这种错我一年能见三回,全是"以为不会错"的地方错。
第二,延时大不大。从现场遮挡光电,到 WCS 变量变化,正常应该在几十毫秒内(PLC 扫描周期加通讯周期)。超过 200 毫秒就要查:是网络抖动,是 PLC 程序里加了不该加的延时,还是 WCS 轮询周期设得太长。分拣线跑 2 米/秒的速度,200 毫秒就是 40 厘米——格口顶出晚 40 厘米,货就进错格口了。
第三,抖动滤不滤得掉。纸箱边缘"扫"过光电,0.1 秒内信号跳 3 次,WCS 会不会误触发一次分拣?滤波时间设多少,联调时就要定死写进文档,不能留到上线后"看情况调"。上线后调一次滤波要停线,联调时调,拧个参数就行。

伪需求开炮时间:有些甲方要求"所有信号做 100% 冗余映射",听起来很高级,纯属烧钱。DI 信号做冗余,意味着双倍点位、双倍测试时间,联调周期直接翻倍。真正需要冗余的是安全回路——急停、安全门,那是安全 PLC 的活,有专门的安全标准管。把普通 IO 信号和安全回路混为一谈的方案,看到就打回。一个急停回路的可靠性,靠的不是信号冗余,是安全 PLC 的双通道架构,这钱要花在刀刃上。
WCS 空跑测试:三级递进,缺一级都是赌
空跑测试最容易被糊弄。很多人理解的空跑是"线转起来,电机不异响,完事"。这种空跑测了等于没测——它只证明设备会转,没证明 WCS 会指挥。这就像试飞机只滑行不离地,然后宣布试飞成功。
我做的空跑分三级,一级都不能跳:
第一级,单机空跑。不带货,单台设备正反转、启停、急停,确认电机转向、变频器参数、机械无干涉。通过标准:连续跑 2 小时无报警。
第二级,带单空跑。WCS 下发真实任务,线上跑空纸箱,全流程走分拣逻辑:扫码(可以贴假条码)、分配格口、顶出动作。这是测 WCS 逻辑对不对的核心环节。通过标准:连续 5000 件,错分率为 0。注意,是 0,不是 0.1%。联调阶段错 1 件,上线后就是每天几百件。
第三级,满负荷加异常空跑。按设计节拍把线"喂饱",空箱按节拍连续上货,再随机插异常:急停拍下、光电长时间遮挡、网络断 10 秒、WCS 服务重启。看系统能不能自己恢复,不用人跑到现场"救"。通过标准:异常注入 20 次,100% 自动恢复,零人工干预。
2024 年初,华南一个 3 万平的鞋服仓,联调只做了第一级和第二级,第三级"没时间"跳过了。上线第一周赶大促,WCS 服务半夜自动更新重启,重启后 PLC 里一半的任务状态丢了,输送线上有 2000 多件货"没人管",人工扒货扒了整整一夜。事后复盘:如果第三级做过"服务重启"这一项,这个坑在联调时 10 分钟就能发现,代价是一次重启测试;上线后发现,代价是一夜人工加一堆客诉。
算账:联调多花的 10 天,值不值
| 项目 | 联调时做透的成本 | 上线后补救的代价 |
|---|---|---|
| 3000 个 IO 点逐点测试 | 2 人 × 10 天,约 3 万元人工 | 一个取反信号导致错分:错分率 1%,日均 5 万件就是 500 件/天,每件找货加改派约 20 元,每天烧 1 万元 |
| 三级空跑(含异常注入) | 多 3~5 天 | 一次 WCS 重启丢任务:停线 4 小时加人工扒货一夜,5 万元起步 |
账算到这里就清楚了:联调多花的 10 天人工,换的是上线后每天可能烧掉的 1 万块。这笔账项目经理看得懂,甲方也看得懂。砍联调时间的人,砍的不是成本,是把成本从"可控的人工"变成了"不可控的事故"。
最后说个维护的坑,也是一线最常见的死法:联调时定死的滤波时间、延时阈值、报警分级,一定要写进移交文档,并且让甲方的运维签字画押。半年后换了个运维,看到报警只会"重启试试",你当年调好的参数就全白费了。WCS 上线不是终点,是这台设备 10 年寿命的起点——联调时偷的懒,运维期加倍还。
这钱花得值不值,看这一个数:上线第一个月,非计划停机有没有超过 4 小时。超过了,说明联调时有人偷了懒;没超过,这 10 天人工就是全项目 ROI 最高的一笔投入。
作者:大刘|自动化设备工程师





