3、软件系统验收:视觉算法库、UI界面、通信接口的功能完整性及稳定性
软件系统验收,说白了就是看你的视觉系统能不能「听话地干活」。
我见过太多项目,硬件装得漂漂亮亮,一跑软件就崩。算法库报错、界面卡死、通信断连……这些坑,我年轻时都踩过。今天咱们就聊聊,验收时到底该盯哪些地方。
3.1 视觉算法库:别光看结果,要看「怎么扛」
算法库是视觉系统的大脑。验收时,很多人只关心「能不能检出缺陷」。这远远不够。
核心验收维度:
- 功能完整性:所有算法接口是否按需求文档实现?比如模板匹配、边缘检测、OCR识别,一个都不能少。
- 稳定性:连续跑1000次,会不会有一次结果异常?我曾在项目中遇到算法偶尔「抽风」,查了三天发现是内存泄漏。
- 边界处理:输入空图像、超大图像、全黑图像时,算法会不会崩溃?
我个人习惯,验收算法库时会准备三组数据:
- 标准样本:正常产品,验证基本功能
- 极限样本:光照极暗、角度偏移、遮挡严重,看算法鲁棒性
- 异常样本:空图像、损坏图像、格式错误,看容错能力
我的经验: 验收时一定要跑「压力测试」。我曾经验收一个OCR算法,单张图没问题,但连续处理1000张后,识别率从99%掉到了85%。原因是缓存没清理。这种问题,不跑长周期测试根本发现不了。
3.2 UI界面:别让操作员骂娘
UI界面是操作员每天面对的东西。验收标准就两条:该有的都有,不该有的别乱跳。
具体来说,我建议从这几个角度检查:
| 检查项 | 验收标准 | 常见问题 |
|---|---|---|
| 功能按钮 | 所有按钮响应正常,无错位、无重复 | 按钮点了没反应,或弹出错误对话框 |
| 图像显示 | 实时画面无延迟、无花屏、缩放正常 | 画面卡顿、颜色失真、缩放后图像模糊 |
| 参数配置 | 所有参数可保存、可加载、可恢复默认 | 参数改了重启后丢失,或保存后无法加载 |
| 日志记录 | 操作日志、报警日志完整,时间戳准确 | 日志不记录、时间错乱、日志文件无限增长 |
| 多语言支持 | 切换语言后所有文字正确显示,无乱码 | 部分按钮还是英文,或中文显示为方框 |
注意: UI验收一定要让实际的操作员来测。我见过开发人员觉得「挺好用的」界面,操作员一上手就骂「这按钮藏这么深,谁找得到?」。说白了,UI是给人用的,不是给代码看的。
3.3 通信接口:数据能不能「说到做到」
视觉系统不是孤岛。它要和PLC、MES、机器人通信。TCP/IP、Modbus、Profinet……不管用什么协议,验收核心就三点:连得上、传得对、断得开。
3.3.1 TCP/IP 通信验收
TCP/IP是最常用的。验收时我一般做这几步:
- 连接测试:客户端/服务器能否正常建立连接?
- 数据收发:发送1000次数据,检查接收端是否完整收到,有无丢包、乱序?
- 异常处理:突然断网、服务器重启、客户端崩溃,系统能否自动重连?
- 压力测试:每秒发送100条消息,系统会不会卡死?
我曾经踩过的坑: 一个项目验收时,TCP通信单次测试没问题。但生产时发现,如果PLC发送频率突然变高,视觉系统就会丢包。查到最后,是接收缓冲区设得太小。所以我现在验收,一定会做「突发流量测试」。
3.3.2 Modbus 通信验收
Modbus在工业现场很常见。验收要点:
- 寄存器读写:所有地址的读写操作是否正确?
- 数据格式:整数、浮点数、字符串的编码解码是否一致?
- 超时处理:从站无响应时,主站能否正确超时并报错?
- 多主站冲突:多个设备同时读写同一寄存器,会不会数据错乱?
嗯,这里要注意。Modbus的地址映射表,一定要和PLC工程师对清楚。我见过因为地址偏移算错,导致读到的数据全是错的,查了两天才发现是文档写错了。
3.4 稳定性验收:跑它个三天三夜
功能验收通过后,必须做稳定性测试。我个人习惯的做法:
- 72小时连续运行:系统不重启,模拟真实生产节拍
- 内存监控:记录内存占用曲线,看有没有持续增长(内存泄漏)
- CPU占用:峰值不超过70%,平均不超过50%
- 异常恢复:人为制造断网、断电、图像丢失,看系统能否自动恢复
一个小技巧: 验收时在代码里埋几个「探针」,记录每次算法执行时间、通信延迟。如果某次执行时间突然变长,那肯定有问题。我靠这个办法,抓到过好几次「偶尔卡顿」的bug。
3.5 知识体系结构图
下面这张图,是我自己总结的软件系统验收核心逻辑。你验收时,按这个框架走,基本不会漏项。
你想想看,这三个模块其实环环相扣。算法库出问题,UI显示的结果就是错的;通信断了,数据传不出去,算法再好也没用。验收时,一定要做「联调测试」——让算法跑起来,UI显示结果,同时通过通信接口把数据发出去,看整个链路是否通畅。
最后提醒一句: 验收报告一定要写清楚「测试环境」和「测试条件」。我见过有人拿着实验室环境的数据去验收,结果现场温度高、振动大,算法直接罢工。环境不同,结果可能天差地别。
公众号:蓝海资料掘金营,微信deep3321