说实话,我每次走进那些挂着工业大屏的车间,心里都替那屏捏一把汗。画面挺酷,数据也在跳,但你稍微较真一下——这数字哪来的?多久没更新了?为什么和眼前的机器状态对不上?——很多人就支支吾吾了。我做装备数据采集这行快十年了,大屏项目经手过不少,今天抖点干货,聊聊怎么把这块屏从“装饰画”变成真正的“驾驶舱”。
一、数据采集:大屏的第一口饭
别急着做界面,先研究数据从哪来。工业现场最常见的就是PLC,西门子、三菱、罗克韦尔。和PLC打交道,协议是绕不开的坎。OPC UA现在普及度高,自带加密和认证,安全可靠,就是配置复杂,得弄证书,几个来回就让你上火。Modbus TCP倒是简单,开箱即用,但明晃晃裸露在工控网里,要是和办公网没隔离,遇到个ARP攻击就能让你大屏白屏。我的建议是:能上OPC UA就上,省心在前,麻烦在后。
点表核对更是苦活。别信供应商给的地址表,最好自己带着万用表去现场测。我吃过一次亏——测振动用的加速度传感器,安装位置偏离轴承座支撑面十几毫米,高频响应全废了,大屏上显示出的振动值小得可爱,实际设备早就吓人了。还有温度传感器,有的装在电机外壳,有的装在绕组,数值天差地别。所以第一件事:确认每一个信号,它到底在测什么,装在哪儿。
带宽计算也有讲究。假设一百台设备,每台每秒采10个模拟量点,每个点按浮点数4字节算,也就4KB/s还不到。但要是做故障诊断,一秒采20000个振动波形点,一台设备就是80KB/s,十台就800KB/s,已经有点喘了。更别提高频波形还要传输,那网络就炸了。所以得在PLC侧做预处理,算个有效值、峰值,把好数据传上去,原始波形存本地。记住:大屏要的是特征,不是原始数据。

二、中间层:数据加工与缓存
大屏不能直接怼PLC数据库。中间加服务层,把数据“洗干净”再投喂。历史数据用时序数据库存,InfluxDB、TimescaleDB都不错。但存储策略得用心,否则硬盘一年就废。我常用的套路:原始粒度数据存一周,再聚合成分钟均值存一年。这样你要看今天的曲线,拉到毫秒级,看半年的走势,一分钟一个点也够用了。
实时推送就用WebSocket,别用轮询。前端订阅,服务端推,延迟低。但这里有个大坑——断线重连。车间网络时好时坏,光纤被老鼠咬一口就断那么几秒,大屏如果没做重连机制,数据就永远停在那个时刻,可画面上还挂着“实时”二字,真坑人。我们后来在缓存里加了过期时间,比如3秒不更新就标黄,10秒不更新标红,这样值班人员一眼就知道数据是否新鲜。
内存缓存用Redis很方便。把所有实时值放在Redis里,设个TTL,过期就删。前端订阅时用的是Redis发布订阅还是自己写队列?这个无所谓,关键是幂等性和时序性。乱序问题也要处理,别把旧值覆盖新值。这是面试常问,也是真容易出错。

三、可视化:工程师视角,不是美工视角

可视化设计最忌讳花哨。我见过一个大屏,背景是科技感十足的星空,数字带金光闪闪。好看是真好看,可你站在五米外,根本看不清数字。工业大屏的核心是信息传达,不是审美比赛。颜色不要用高饱和的荧光色,太刺眼。状态指示方面,绿色运行、红色故障是通用习惯,但别忘了色盲人群。我亲历过:车间主任是红绿色盲,一个设备状态灯他看不出区别。后来改成运行是绿色加旋转,故障是红色加闪烁,这才解决。
图表的尺度也经常被忽视。比如产量趋势,从0到1000,和从900到1000,给人的感受完全不同。你要展示的是产量水平,还是趋势波动?得先想清楚。别一上来就用百分比饼图,数据接近90%时,饼图看起来全是一个圆,数值反而被削弱了。有时候一个大数字,比如“当前产量 1234 件”,比任何图表都直观。
布局也有学问。重要信息放中央偏上,这是人眼的自然聚焦区。辅助信息放两侧。不要搞全屏滚动播报,人会晕。主屏之外可以加个副屏显示日志。字体用黑体或宋体,别用花体。尺寸要按观看距离来定,一般屏幕高度三倍距离,字起码得高十几毫米。
四、部署与运维:那些容易翻车的细节

大屏硬件,很多项目用拼接屏。每块屏幕可能有物理边框,拼起来会有缝,重要信息别跨缝。分辨率也不能想当然。有的屏是1366×768,三乘二拼起来是4096×2304,前端要做响应式设计,不然字体发虚。而且拼接屏的驱动板性能一般,动画多几层就掉帧。别整太多3D旋转,适可而止。
网络规划上,工业数据大屏建议放在工业隔离区,别和生产网完全打通。加防火墙,白名单限制访问。有一次项目,客户图省事,直接用一条百兆网线连接,结果一到大屏更新高峰,网络延迟就飙到几百毫秒,显示一团糟。后来换上六类线,问题立刻消失。别轻视物理层。
亮度这块也别忘了。车间采光好,屏幕容易反光,装个遮光罩或选高亮屏,不然白天根本看不清。这些小事,不做真不行。
工业数据大屏,说到底不是屏的事。数据质量是根,中间链路是魂,可视化只是皮。别让数据成了大屏上的装饰品,否则还不如挂一幅山水画。