简介:《工业相机丢帧丢包排查手册》面向使用海康工业相机做图像采集的开发者与现场调试人员,针对自研采集软件出现行闪、丢帧丢包而官方 MVS 正常这一典型问题,给出从硬件环境到相机参数的排查路径。包内为 1 个 PDF 文件,约 2.25MB,按 Windows 系统环境、网卡参数、海康驱动、单相机与多相机丢包、网卡型号与驱动、CPU 内存、PCIE 插槽、网卡休眠及电磁干扰等模块展开。读者可逐项核对千兆网卡、屏蔽网线、巨型帧、缓冲区、流控制和节能选项,理解 GEV PAUSE、SCPS 包大小、SCPD 发包间隔及多相机带宽计算,并掌握参数保存与交叉验证思路。已有 6304 人学习,适合需要快速定位采集链路瓶颈、减少现场试错的中高级开发者查阅。
1. 从一闪一闪的横纹说起:工业相机丢帧丢包到底卡在哪一层
某开发者用厂商 SDK 自研采集程序,运动物体过视野时偶尔有几行横纹闪一下,换官方客户端连续预览却干干净净。这种“只在自研程序里冒出来”的工业相机丢帧丢包,十有八九不是代码写错,而是链路、网卡、相机三段参数没对齐:相机按 8164 字节往外发包,网卡巨型帧还关着;或者几路相机挤在一个千兆口,总带宽悄悄越过 1Gbps。手边这份排查手册把现场最容易出问题的位置排了序——从网线、交换机、接地、安全软件,到网卡高级属性里的巨型帧、缓冲区、中断裁决、流控制,再到相机侧 Link Speed、SCPS Packet Size、SCPD 与 User Set 落盘,最后是多相机的带宽预算。它不管算法,只管“数据在路上掉了”。做视觉采集、产线检测、需要长时间稳定取图的人,值得照着走一遍。
2. 链路先立住:千兆网卡选型、巨型帧 9014 与五个必改网卡参数
2.1 从物理层往上数:网线、交换机、接地与安全软件
排查顺序千万不能反。上来就翻相机属性树、把 SCPD 一路往上顶,是最常见的无效操作——链路只有百兆,参数调到天上去也白搭。正确姿势是从最底下往上数。
网线用超五类及以上屏蔽千兆线(Cat.5e 起),厂商随货给的多半就是屏蔽线。现场临时找的扁线、装修剩下的旧线、水晶头压得松松垮垮的线,是丢包的常客。线是不是千兆,不用猜:控制面板 → 网络和 Internet → 网络和共享中心 → 点开对应网卡,看“速度”那一栏是不是 1.0 Gbps。显示的如果是 100 Mbps,立刻停手查这三样:网线、交换机端口、网卡口本身。交叉验证是最省时间的办法——换一根线、换一个交换机口、把相机插到另一台机器上,哪个环节换了就恢复千兆,问题就在那一段。
有交换机的话,确认是千兆交换机,且不要多级串联。两台百兆或者一台千兆串在百兆后面,整条链路会按最慢的那段协商,现场“明明买的是千兆交换机”却只跑百兆,多半就是串联惹的祸。
接地这件事容易被当成玄学跳过。相机金属外壳接地,或者工控机电源/外壳接地,目的是把静电泄掉。静电干扰的典型表现不是持续丢包,而是偶发、无规律、重启就好、过一会儿又来,很容易被误判成软件 bug。
安全软件和防火墙也要处理:第三方杀毒、管家类套件、企业级防护客户端,装上之后会在网卡驱动栈上挂过滤层,相机这种持续大流量小包场景首当其冲。建议卸载而不是“退出”,退出只是停了界面进程,驱动层的钩子还在。Windows 自带防护的实时扫描同样建议在采集机上关掉,防火墙按现场策略关闭。还有一条血泪经验:某些品牌的商务本/轻薄本,网卡和芯片组省电策略激进,相机掉线、不兼容的情况明显偏多,能换工控机就换。
提示:以上都属于“环境不合格”,不是“参数没调好”。环境没确认干净之前,后面所有调参结果都不可信。
2.2 网卡高级属性逐项对照:巨型帧、缓冲区、中断裁决、流控制、节能
网卡这块是丢包排查的主战场,入口在:网络连接 → 右键对应网卡 → 属性 → 配置 → 高级。下面是逐项对照表,照抄即可。
| 高级属性 | 推荐值 | 作用 | 设错后的典型表现 |
|---|---|---|---|
| 巨型帧 / Jumbo Frame | 9KB(9014 字节) | 单包承载更多数据,减少拆包与中断次数 | 相机按 8164 发,网卡按 1514 收,一收就丢 |
| 接收缓冲区 | 最大值 2048 | 抗突发流量 | 高帧率或画面剧烈变化时成片丢 |
| 传输缓冲区 | 最大值 2048 | 控制指令与应答不排队 | 参数写入延迟、偶发超时 |
| 中断裁决率 | 极值(最高档) | 降低中断合并带来的延迟抖动 | 小包场景延迟不稳 |
| 流控制 Flow Control | 开启 | 与相机侧 PAUSE 帧配合做反压 | 拥塞时直接丢,没有缓冲余地 |
| 节能相关(绿色以太网、EEE、唤醒、省电模式) | 全部关闭 | 防止链路降速或休眠 | 跑几小时后掉线,重启恢复 |
表里最容易被忽略的是节能那几项。它们分散在高级属性列表的不同位置,名字各厂商不一样,有的叫 Energy Efficient Ethernet,有的叫 Green Ethernet,还有的叫“允许计算机关闭此设备以节约电源”,这个在“电源管理”页签里,不在高级属性页。全部关掉,一个不留。
如果采集机是批量部署,一项项点太慢,可以先枚举网卡支持的所有高级属性,确认关键字再批量写。常见做法是先读后写:
# 1) 先枚举:看清这块网卡到底支持哪些高级属性,关键字叫什么 # 不同厂商/驱动的命名差异很大,必须以实际输出为准 Get-NetAdapterAdvancedProperty -Name "以太网 2" | Select-Object DisplayName, DisplayValue, RegistryKeyword | Sort-Object DisplayName # 2) 再批量写:下面三条要以第 1 步输出里的 RegistryKeyword 为准 Set-NetAdapterAdvancedProperty -Name "以太网 2" -RegistryKeyword "JumboPacket" -RegistryValue 9014 Set-NetAdapterAdvancedProperty -Name "以太网 2" -RegistryKeyword "*ReceiveBuffers" -RegistryValue 2048 Set-NetAdapterAdvancedProperty -Name "以太网 2" -RegistryKeyword "*FlowControl" -RegistryValue 3 # 3) 写完重启网卡让参数生效 Restart-NetAdapter -Name "以太网 2"这段脚本的用途是把 GUI 里三四十项点选变成可复制的动作。-Name传的是网卡显示名,网络连接里看到什么就填什么;RegistryKeyword是驱动侧的属性名,带星号的通常是微软标准关键字,不带星号的是厂商私有项,所以第 1 步的枚举不能省。JumboPacket的单位是字节,填 9014 而不是 9,填 9 会被驱动当成 9 字节直接拒掉或退化成默认值。*FlowControl的 3 一般对应“接收和发送均开启”,具体枚举值同样以枚举输出为准。改完必须Restart-NetAdapter,否则一部分属性要等下次重启才落地,现场很容易出现“我明明改了怎么没效果”。
改完再回“网络和共享中心”确认速度仍是 1.0 Gbps。有时候巨型帧一开,老网线或者劣质水晶头撑不住,速度反而掉到百兆,这本身就是链路不达标的信号。
2.3 驱动这一层:为什么“驱动没勾上”比参数错更常见
网卡属性里有一项叫“协议绑定”或者直接显示为厂商名称的勾选项,它的作用是把相机的专用传输驱动挂到这块网卡上。这个勾没打上,相机照样能连、能预览,只是走的是通用 TCP/IP 路径,性能差一大截,表现就是“能出图但一直丢”。
确认方式:网卡属性页里看厂商那一项是否已勾选。如果列表里压根没有这一项,说明驱动没装上。安装有四条路,按省事程度倒着排:
- 官方客户端菜单里找驱动安装工具(Driver_Installation_Tool),一键装;
- 在网卡属性 → 安装 → 从磁盘安装,手动指到驱动目录;
- 跑脚本:安装目录下
Common Files\<厂商>\Drivers\GigE\里的install.bat,右键以管理员权限运行; - 卸载整个客户端,以管理员权限重装。
第四条看着粗暴,实际上是成功率最高的,尤其是之前装过旧版本、改过路径、换过网卡的机器。驱动残留导致的丢包,靠调参数是治不好的。
注意:重装驱动和改网卡参数之后,一定重启一次再测。参数生效、驱动挂载、协议绑定这三件事的时机不完全一致,不重启就测等于拿半成品数据下结论。
3. 单相机直连调参:从 Link Speed 1000 到 SCPD 步进加压
3.1 先看两个 Speed:1000 还是 100
环境确认完,用官方客户端连上相机,在相机属性树的 Device Control 下找两个参数:Device Connection Speed(Mbps) 和 Device Link Speed(Mbps)。这两个值必须是 1000。
如果显示 100,说明相机自己都认为链路是百兆。此时不要动相机的任何传输参数,回到第 2 章重查:网线是不是 Cat5e 屏蔽线、交换机端口是不是千兆、网卡是不是千兆网卡、有没有中间转接。现场经常出现的情况是:机器上装了千兆网卡,但插的是主板自带的百兆口,或者网卡插在 PCIe x1 的槽上被限速。这两条都在第 5 章细说。
这一步的意义在于把“相机侧参数问题”和“链路问题”切开。两个 Speed 都是 1000 但依然丢包,才轮到后面几节;只要有一个是 100,后面全部跳过。
3.2 GEV PAUSE Frame Reception 与网卡流控制的配合
在英文属性树里展开 Transport Layer Control,往下拉到中间,找 GEV PAUSE Frame Reception。这个参数的作用是让相机在 SCPD 的基础上自适应调整发包间隔,本质上是一种反压机制:网卡侧缓冲区快满了,通过 PAUSE 帧告诉相机“慢一点”,相机收到后临时拉开包间隔。
打开这个参数相机会自动重启一次,属于正常现象,不要以为崩了。它必须和网卡侧的流控制配合使用——网卡流控制关着,相机这边打开了也没人给它发 PAUSE 帧,等于单相思。所以第 2 章表格里“流控制:开启”这一项不能漏。
什么情况下优先开它?画面内容变化剧烈、帧率高、单帧数据量大,且 SCPD 已经调过一轮仍然偶发丢包的时候。它相当于给系统加了一层动态缓冲,代价是极端拥塞下帧率会有轻微波动,对节拍要求极严的场景要评估一下。
3.3 SCPS Packet Size 8164 与 SCPD 步进调参
重新连上相机,展开 Transport Layer Control 拉到最下面,先看 GEV SCPS Packet Size(B):发包大小。这个值应该是 8164。不是的话手动改成 8164 回车。
改完如果弹提示“建议值 1500”,别急着接受。这个提示的含义是:驱动认为当前链路撑不住 8164 的包,往回退到标准以太网 MTU。它等价于在告诉你——巨型帧没生效、网线不合格、或者驱动没挂上。这时候应该回第 2 章核对巨型帧有没有设成 9014、协议绑定有没有勾、网卡有没有重启。接受 1500 只是把问题藏起来,吞吐会掉,帧率上不去。
然后是 GEV SCPD:发包间隔。这是单个相机场景里最有效的一根旋钮。调法是以 1000 为步进往上加,边加边看。加太大会直接吃掉帧率,所以一定要在连续预览的过程中调,看着实时帧率和丢包情况找平衡点——在满足帧率要求的前提下,尽量取大。
实际操作里我一般这么走:先确认零丢包,然后逐步往下减 SCPD,减到刚开始出现丢包,再往回加两档留余量。这样得到的值既不是拍脑袋的整数,也不是贴着临界点的危险值。不同机器、不同网卡、不同线长,这个最优点都不一样,抄别人的数值没意义。
3.4 参数落盘:User Set 的三步保存顺序
调完不保存,断电全丢,这是新手最常翻的车。保存顺序有讲究,三步不能乱:
- User Set Default 选 User Set 1 —— 决定相机上电时加载哪一套参数;
- User Set Selector 选 User Set 1 —— 决定当前这套参数存到哪个“抽屉”里;
- User Set Save 点 Execute —— 执行写入。
顺序反了会出现“我保存了但重启还是老的”这种诡异现象:Selector 还停在 Default 上,Save 就把当前参数写回了出厂那套的覆盖区,或者干脆没写进你期望的抽屉。三步做完,断电重上电,再连上去看 SCPS 和 SCPD 是不是还是你设的值,这一步验证不能省。
保存完用连续模式预览一段时间,观察是否还有丢包。这里说的“一段时间”不是十秒二十秒,建议至少跑十分钟,最好覆盖一次产线节拍完整的循环。短时间不丢、跑半小时开始丢的情况太常见了,原因是缓冲区逐渐被填满或者网卡进了省电状态。
4. 多相机挤一个网口:用 Payload Size 算出每路该限到几帧
4.1 先分清两种接法:多网口直连 vs 交换机汇聚
多相机丢包的排查,第一步不是调参数,是搞清楚物理接法,因为两种接法的处理逻辑完全不同。
第一种:多网口网卡,每个相机独占一个网口直连 PC。这种情况每个口都是独立的千兆通道,互不干扰,处理方式和单相机直连一模一样,逐个按第 3 章走一遍即可。唯一要注意的是多口网卡的总线带宽,以及各口是否真的都协商到了 1000。
第二种:多个相机通过交换机汇聚到 PC 的一个网口上。这时候进主机只有一根千兆线,所有相机的数据挤在这 1Gbps 里,这是多相机场景丢包的根本原因——不是哪个参数错了,是物理带宽不够。很多人在这里反复调 SCPD,调到最大也没用,因为瓶颈不在包间隔,在总容量。
先确认每个网口是不是都能跑到千兆,是不是共享带宽。有些多口网卡标称四口千兆,实际是 PCIe x1 接口,四口共享一条上行通道,跑满两个相机就开始丢,这种硬件限制靠软件调参绕不过去。
4.2 Payload Size 与帧率:把 1Gbps 拆成可用预算
带宽预算的算法本身很简单,难的是记得把每一项都算进去。
单张图像大小:Payload Size = 分辨率 × 像素位深。像素位深取相机 Pixel Size 节点的值,和像素格式挂钩,常见的对应关系是 Mono8 = 8bit、Bayer8 = 8bit、Yuv = 16bit、RGB8 = 24bit。注意这里用的是 bit,换算成字节要除以 8。
单个相机带宽 = Payload Size × 帧率。
举个具体的例子。两个相机通过交换机接到 PC 的一个千兆口上,算出来单帧带宽分别是 152.296875 Mbps 和 114.75 Mbps(这两个数是在各自满帧率下的占用)。那么 1000 ÷ (152.296875 + 114.75) ≈ 3.745,也就是说两路都限到 3fps,总占用 152.296875×3 + 114.75×3 = 801.14 Mbps,小于 1Gbps,可以稳定跑。
注意:801 Mbps 看着离 1000 还有距离,但这个余量是必须留的。上面算的只是图像数据本身,实际链路上还有心跳包、帧信息、ACK、以及交换机转发的开销。余量留太少,跑起来照样丢。
现场相机型号多、分辨率杂的时候,手算容易出错,我一般写个小脚本一次性把组合算完:
def payload_mbps(w, h, bit_depth, fps): """单路相机在给定帧率下占用的带宽(Mbps) w, h : 分辨率宽高(像素) bit_depth : 像素位深,Mono8/Bayer8 填 8,Yuv 填 16,RGB8 填 24 fps : 帧率 """ payload_bit = w * h * bit_depth # 单帧比特数 return payload_bit * fps / 1e6 # bit/s -> Mbps def plan(cameras, link_mbps=1000, reserve=0.85): """按链路容量反推每路可用帧率上限 cameras : [(名称, 宽, 高, 位深, 期望帧率), ...] reserve : 留给心跳/帧信息/交换机的余量系数,一般 0.8~0.85 """ budget = link_mbps * reserve need = sum(payload_mbps(w, h, b, f) for _, w, h, b, f in cameras) print(f"预算 {budget:.1f} Mbps,满帧需求 {need:.1f} Mbps") if need <= budget: print("带宽充足,无需限帧") return scale = budget / need print(f"需整体降到 {scale*100:.1f}% 帧率:") for name, w, h, b, f in cameras: new_fps = max(1, int(f * scale)) # 向下取整,宁慢勿丢 used = payload_mbps(w, h, b, new_fps) print(f" {name}: {f} -> {new_fps} fps, 占用 {used:.1f} Mbps") # 两个 1440x1080 的 Mono8 相机,期望 12fps,走一个千兆口 plan([("cam1", 1440, 1080, 8, 12), ("cam2", 1440, 1080, 8, 12)])脚本里做了两件事:payload_mbps按公式算单路占用,plan拿链路容量乘余量系数当预算,超了就按比例整体降帧,并用int()向下取整。为什么要向下取整?向上取整很容易正好卡在临界点上,实测下来多丢一帧就够毁掉一次检测。reserve这个系数是要调的,交换机质量差、线长、相机数量多的时候往 0.8 压,直连或者线短可以放到 0.85。
算出目标帧率后,在英文属性树展开 Acquisition Control,找到帧率限制那一项,把每个相机的帧率上限填进去。注意是填上限而不是“目标值”,相机实际出图帧率受曝光时间约束,曝光拉长的时候实际帧率会低于上限,这时候带宽反而更宽松,是安全方向。
4.3 限帧 + SCPD 双管齐下,以及与软触发的取舍
限帧只是把平均流量压下去,瞬时拥塞依然存在:多个相机在同一毫秒内同时出图,交换机端口瞬间排队,缓冲区一满就丢。所以限帧的同时,SCPD 也要调,两者是互补关系,不是二选一。
SCPD 的调法和单相机一样,从 1000 步进往上加,边加边看。多相机场景下的观察点要注意:不能只盯一路,要看所有相机的丢包计数是不是都归零。有时候 cam1 不丢了、cam2 还在丢,说明调整只是把压力转移了,没真正解决。
如果你的应用允许,还有一条更彻底的路:把自由运行改成触发模式,用硬触发或者软触发让几个相机的曝光在时间上错开。带宽的峰值一下就摊平了,比任何参数调整都有效。代价是要引入触发源,节拍设计上多一层约束。这条取舍没有标准答案,看你的产线能不能接受。
4.4 参数保存与复测方法
多相机调完之后,每台相机都要单独走一遍 3.4 节的三步保存:User Set Default 选 User Set 1、User Set Selector 选 User Set 1、User Set Save 执行。多相机最容易犯的错是只保存了第一台,剩下几台直接复制粘贴参数却没点保存,重启后配置全乱,然后怀疑是不是相机坏了。
复测的时候把所有相机同时开连续预览,跑够时间,观察每一路的丢包计数。这时候可以顺手做一次压力测试:让画面里出现剧烈变化的物体(比如快速移动的高对比度目标),看看峰值情况下会不会丢。平均带宽算得再准,峰值才是丢包发生的时刻。
5. 六个现场翻车点:PCIe 插槽、休眠省电与电磁干扰的排查顺序
参数全对、环境也干净,依然丢包的情况不多,但一旦遇上,基本都是硬件或者系统层面的坑。下面六条按我遇到的频率排序。
5.1 硬件与系统层的三个坑
坑一:PCIe 插槽插错,带宽先天不足。现象是单相机直连也丢,且丢得很有规律,帧率一上去就丢。原因是网卡插在了 PCIe x1 或 x2 的槽上,上行带宽被卡死,网卡本身是千兆的,但数据出不了那么快。千兆网卡要插 PCIe x4 及以上,万兆网卡一般建议上 x16。解决方式是翻主板手册确认插槽通道数,把网卡挪到 x8/x16 的物理槽上(注意物理长度够不代表通道数够,得看手册标的 x4/x8/x16)。这个坑最气人的地方在于设备管理器里一切正常,网卡也识别成千兆,只有算带宽的时候才露馅。
坑二:网卡休眠,跑着跑着掉线。现象是刚开机一切正常,放置一段时间或者锁屏回来之后开始丢包、甚至设备消失。原因是系统为了省电把网卡关了。解决:设备管理器 → 网络适配器 → 右键网卡 → 属性 → 电源管理 → 取消勾选“允许计算机关闭此设备以节约电源”。同时把系统的睡眠、休眠、屏幕保护全部设为“从不”,采集机不是办公机,这些功能一律关掉。这条属于典型的后悔药,出问题之前没人想起来配。
坑三:CPU / 内存占用过高,采集线程抢不到时间片。现象是丢包和业务逻辑的负载相关,跑别的程序时丢得更凶。打开任务管理器看 CPU 和内存曲线,如果采集期间长期贴着高位,先把不相关的进程关掉——浏览器、即时通讯、自动更新服务都算。这条经常被忽略,因为大家默认“相机丢包是相机的事”,实际上采集软件拿到数据之后如果来不及取走,驱动侧缓冲区满了照样丢。真要长期跑,采集程序自身的线程优先级和缓冲区策略也得跟着调。
5.2 参数与配置层的三个坑
坑四:网卡型号不匹配或驱动版本过低。现象是明明环境都对,就是丢,而且丢得毫无规律。万兆相机配千兆网卡这种硬伤不用多说,还有一种隐蔽的是网卡驱动版本太老,厂商的新特性没实现。更新方式:计算机管理 → 设备管理器 → 网络适配器 → 右键网卡 → 更新驱动程序,可以手动指定下载好的驱动包,也可以让系统自动搜索。工程机上我更倾向手动指定,自动搜索经常给一个“兼容但非最优”的版本回来,更新完还得再验一遍巨型帧等参数有没有被重置。
坑五:线缆和电磁干扰。现象是偶发、位置随机、换一台机器就好。千兆相机配千兆线,万兆相机配万兆线,这条不能将就。判断线缆是否合适,可以看客户端的传输带宽读数,明显低于理论值就是线不行;也可以用交叉测试法,换线、换口、换机逐一排除。环境干扰的消除手段就三条:屏蔽、滤波、接地。加屏蔽、把网线和动力线分开走线槽、设备可靠接地,这三样做下来能解决大部分“莫名其妙”的丢包。别小看车间里的变频器和伺服,它们和相机线捆在一起走,丢包能丢到你怀疑人生。
坑六:参数保存了但没存对抽屉。现象是重启后参数回到默认,或者只有部分参数生效。原因就是 3.4 节那个三步顺序搞反了,或者保存时 Selector 还停在别的档位上。解决方式很简单,但也最容易被跳过:每次改完参数,断电重上电,重新连上去把关键参数读一遍,确认 SCPS 是 8164、SCPD 是你调的值、流控制和 PAUSE 都还开着。这个动作花两分钟,能省掉后面半天的扯皮。
排查顺序建议:先看两个 Speed 是不是 1000,再看链路速度是不是 1.0 Gbps,再看设备管理器里网卡有没有黄叹号、驱动版本对不对,然后看 PCIe 插槽和电源管理,最后才怀疑线缆和干扰。这个顺序是从“确定性高、成本低”往“确定性低、成本高”排的,能最快收敛。
6. 把“调通了”变成“可验收”:一套 15 分钟复测动作
调通一次不难,难的是让这套配置在客户现场、在三个月后、在换了一根网线之后依然成立。我现在的习惯是:每次交付前跑一套固定的复测动作,不看“现在有没有丢”,看“哪些条件被破坏了会丢”。
复测清单大致是这样一套顺序,全程十五分钟左右:
| 步骤 | 动作 | 判据 | 不过怎么办 |
|---|---|---|---|
| 1 | 网络和共享中心看链路速度 | 1.0 Gbps | 换线/换口/换网卡交叉验证 |
| 2 | 相机 Device Link Speed | 1000 Mbps | 回第 2 章重查链路 |
| 3 | 网卡巨型帧、缓冲区、流控制、节能项 | 与第 2 章表格一致 | 逐项改,重启网卡 |
| 4 | 相机 SCPS Packet Size | 8164,无“建议 1500”提示 | 查巨型帧与驱动绑定 |
| 5 | 连续预览 10 分钟 | 丢包计数为 0 | 调 SCPD,开 PAUSE |
| 6 | 断电重上电后复查 4、5 步 | 参数与丢包均正常 | 重做 User Set 三步保存 |
| 7 | 多相机时复算总带宽 | 峰值 ≤ 链路容量 × 0.85 | 降帧率或改触发错峰 |
第 6 步是整套流程里最值钱的一步,也是最容易省掉的一步。参数在内存里生效和在相机里落盘是两码事,不断电验证一次,你永远不知道 User Set 到底写没写进去。第 7 步的余量系数我一般按 0.85 卡,交换机是杂牌或者线拉得长就压到 0.8,宁可帧率低一点,也不要交付之后再回来擦屁股。
再补一个进阶技巧:把这套复测做成一个可执行的检查脚本或者一张打印出来的核对表,贴在机柜门内侧。现场同事换线、重启、装软件之后,照着表走一遍,能挡掉八成的“回来又不行了”。参数这种东西,记在脑子里靠不住,写在纸上才靠得住。
最后说个教训。早些年我调一台多相机设备,调完当场零丢包,验收也过了,两个月后客户说偶尔闪一下。跑过去一看,机柜里有人加了一台设备,多插了一根网线到同一台交换机上,还顺手把采集机的网卡电源管理打开了——系统更新重置的。从那以后我每次交付,不管多赶,都强制走一遍上面这张表,并且把“网卡电源管理已关闭”“User Set 已落盘”当成签字项,不签不交。丢包这件事,现场永远有新变量,能控的只有自己的流程。希望帮到你。
本文还有配套的精品资源,点击获取