做工厂数据采集最怕遇到这类设备:进口年代久远的专用机床、老款测试仪器、封死了协议的整线进口装备,厂家要么倒闭、要么开价六位数才给通讯授权,设备上唯一"开放"的就是那颗VGA口和一块显示屏。数据明明就显示在屏幕上,却进不了上位机。这种情况下,VGA画面采集加OCR识别的"屏幕取数"方案,是非侵入式数据采集的最后一张王牌。这篇文章讲上位机开发怎么把这条旁路走稳。
先排序:屏幕取数是最后手段,但适用面最广
动手前先确认是否真的只能看屏幕。数据采集的接入优先级建议是:厂家开放协议或OPC UA最理想,其次是串口、并口、总线监听,再其次是外置传感器加IO硬接点,VGA画面识别排在最后。原因很现实:协议直连拿到的是确定数值,屏幕取数本质是"用眼睛猜",准确率天然受画面影响。但屏幕方案也有不可替代的优势——完全旁路,不碰设备控制系统,不需要厂家授权,安装时不用停机拆线,对那些PLC通讯彻底走不通的封闭设备,这是唯一可行的上位机数据采集通道。
可行性先看四件事:目标数据是不是长期显示在固定画面上,而不是藏在三级菜单里;画面布局是否固定、分辨率是否恒定;运行中会不会频繁弹出对话框挡住数值;屏幕字体、对比度是否清晰。拿手机录屏十分钟带回工位模拟识别,准确率心里就有底了,这一步应该在报价前完成,别等合同签了才发现数字半分钟才刷新一次还老被弹窗盖住。
硬件方案:分屏器、采集卡与EDID保活
标准接法是"一进二出":设备VGA输出先接VGA分配器,一路保留给操作工面前的原显示器,一路进视频采集卡,采集卡装在工控机里或用USB采集盒。这样设备侧完全无感,原屏幕不黑不灭,是设备通讯改造的安全底线。采集卡选型注意三点:支持目标分辨率和刷新率,老设备常见640×480、800×600、1024×768且刷新率可能是非标的75Hz,便宜卡自适应不好会丢帧;选带EDID模拟器的分配器或采集头,EDID会持续告诉设备"显示器在线",否则有些设备检测不到显示终端会直接关闭视频输出,采集画面间歇性黑屏,排查起来极其折磨人;工业现场电磁环境差,VGA线和接头选带磁环的,长度超过五米优先用带增益的延长器。
接口并非只有VGA。近年稍新的封闭设备可能是DVI、HDMI,老仪表还有复合视频或S端子,按实际接口选对应采集设备,HDMI还要留意HDCP,但工业设备界面基本不带内容保护。一台工控机插多片多路采集卡,可以同时对四到八台设备做画面数据采集,成本摊下来比买厂家协议授权低一两个数量级。
取数算法:别用通用OCR硬啃七段码
屏幕上的信息分三类,识别策略完全不同。第一类是数字仪表量,温度、压力、计数、转速大多以七段数码管或点阵数字显示,这种不要直接上通用OCR引擎,上位机开发里最稳的做法是在画面上框定ROI固定区域,自己做七段码识别:二值化后按七段亮灭组合判读,带小数点和负号处理,配合笔画区域投票,准确率可以做到小数点后一位长期稳定在四个九。通用OCR为复杂排版设计,对七段码的粘连、反白反而经常误读。
第二类是文字与混合界面,比如报警文本、产品型号、中文菜单,用PaddleOCR这类支持中文的引擎,工业场景建议采集实际界面字体做微调训练,识别率比通用模型高一大截。第三类是状态信息:红黄绿三色灯、运行/停止字样、图标,这类不需要OCR,在固定坐标做HSV颜色空间分割,红色像素比例超阈值即报警状态;弹窗出现则用模板匹配或帧差检测,画面突然大面积变化时截帧留证并在一秒内推送报警,比轮询数值更快发现异常。
稳定性工程:屏幕取数成败全在细节
实验室里识别率百分之九十九,上了现场掉到九十五,差距都在工程细节。第一个坑是画面错位:设备翻页、分辨率切换、弹提示框后,预设ROI整体偏移,读出来全是乱码。对策是锚点配准——选取画面上固定不变的标题栏或图标做特征模板,每帧先匹配锚点位置,算出偏移量后用仿射变换校正画面,再在新坐标里取数,翻页后识别不到锚点则判定"非目标画面",丢弃该帧而不是上报错误数据。
第二个坑是显示本身不稳定:数码管刷新扫描、反白闪烁、CRT横纹、液晶屏老化偏色都会让单帧结果跳动。上位机软件应对的组合拳是:连续多帧识别结果投票,三帧中两帧一致才采信;带置信度阈值,低于阈值标记存疑并保存当时截图;对数值做工艺合理性校验和变化率限制,温度一秒跳三百度显然是误读,自动剔除并累计可疑次数,连续可疑则提示维护人员检查画面。第三个坑是软件自身健壮性:采集进程加看门狗,崩溃自动重启并补心跳;工控机定期自动重启防止长时间运行内存泄漏;采集卡掉线自动重新枚举设备。PLC通讯那套心跳、重连、缓存补传的思路,在画面数据采集中同样适用。
频率、时序与数据组织
视频流虽然每秒三十帧,但取数不需要全量上传。每个识别点位按值变化上报:数值在死区内不动就不产生数据,变化超过死区或到达心跳周期才写一条,和普通数据采集的RBE死区压缩完全一致,一台屏幕上四十个量一天也产生不了多少数据。关键事件类——报警弹窗、状态灯变红、计数加一——靠帧差立即捕获,时间戳统一打在识别出结果的采集机上,全厂NTP对时,保证屏幕取数和PLC通讯采来的数据能在同一条时间轴上对齐分析。
最重要的架构原则是:对上层系统屏蔽数据来源。识别结果在边缘程序里映射成标准点表,命名、单位、量程全部规范,通过MQTT或OPC UA送进统一数据采集平台,报表和看板无需知道这个量是FOCAS读的、Modbus采的、还是从VGA屏幕上"看"来的。同时每条可疑或报警数据附带原始截图路径,供事后复核;再安排操作工或巡检员每天对一两个关键量做人工抽检,把准确率纳入运维指标。需要强调合规边界:画面采集只在自有设备上旁路读取显示信息,不破解、不写入、不干预任何控制逻辑,纯旁观不碰安全,这是方案能被设备管理和EHS部门接受的前提。
总结:VGA画面取数式数据采集的打法是"一进二出加EDID保活"保证物理旁路无感,"七段码自识别、OCR读文字、颜色分割判状态"按信息类型选算法,"锚点配准加多帧投票加合理性校验"把准确率从实验室搬到车间,"死区上报加帧差报警加截图留证"控制数据量并可追溯,最后映射成标准点位汇入上位机平台。当一台老设备的PLC通讯和所有协议路都走不通时,屏幕从来不会说谎——前提是上位机开发学会了怎么稳定地"看"。如果你也有封死接口的老设备需要纳入数据采集,欢迎联系:免费咨询,或致电 13761638786。


