近年来,数据大屏已经广泛应用于政府、企业和工业场景,生产、设备、环保、能耗以及经营等数据,都可以通过统一的可视化界面集中展示。从技术架构来看,数据大屏本身并不复杂,基本链路通常是:
数据采集 → 服务端 → Web端 → 可视化展示
其实我很早就做过类似的数据大屏。
2015 年,我给一家企业开发过“互联网渠道交易所询盘情报系统”,将不同渠道的询盘信息按国家地区、产品类型等维度汇总,并实时动态展示在地图上。那时候可视化方案还没有现在这么成熟,很多东西都是自己一点点手搓出来的。这个项目后来还登上了郑州新闻联播。
工业场景下的数据逻辑
而到了工业场景,数据的来源就不一样了。它可能来自传感器、PLC、SCADA 或其他现场系统。相比互联网应用,首先要解决的,是怎么把这些现场数据可靠地采集出来,并传输到服务端。
2023 年,我供职公司中标了浙江宁波一个生活垃圾处理项目,负责其中一条垃圾处理生产线的相关设备和系统建设。项目推进到后期,项目方进一步提出了信息化要求,需要将这条生产线上的部分传感器数据采集出来,并按照要求持续发送到其信息化部门指定的数据接口,作为后续平台汇总和数据大屏展示的数据来源。
在现代的工业自动化项目里,已经有比较成熟的数据采集和控制架构。比较常见的是:
传感器 → PLC → HMI / SCADA
传感器负责采集现场数据,PLC负责控制,HMI或SCADA负责监控和展示。简单来说,就是传感器产生数据,PLC处理数据,上层系统负责把这些数据呈现出来。
这条生产线采用的是西门子的控制系统,现场的数据通过 PLC 采集,并进一步汇集到 WinCC。WinCC 是西门子的一套工业监控与数据采集软件,可以连接 PLC,在 Windows 环境下对现场数据进行监控和记录,并提供进一步的数据交互能力。
所以到了这个项目,我们其实不需要再从传感器开始做数据采集,直接利用 WinCC 已经采集好的数据即可。
当时使用的 WinCC 已经提供了 MQTT 和 REST 等对外数据交互方式。
物联网项目中,MQTT 是非常常见的选择,西门子相关的参考资料也比较多。但如果采用 MQTT,我还需要自己实现一套 MQTT Broker,让 WinCC 将数据发布出来,再由程序接收、处理,最后转换成信息化部门要求的接口格式。
对于这个项目来说,这样做并不经济。
相比之下,REST 要简单得多。我只需要在现场工控机上增加一个轻量的 HTTP Server,就可以直接和 WinCC 配合使用。程序可以与 WinCC 一样部署在工控机上,不需要额外增加服务器或其他硬件,资源占用也很小,实现起来也更加直接。
所以最后,我选择了 REST。
程序的职责也很明确:接收 WinCC 发送的数据,进行缓存和处理,再将需要的数据转发到信息化部门指定的接口。
为了让数据接收、处理和发送相互独立,我又把程序设计成多个任务,分别负责数据接收、当前数据展示,以及数据变化判断和转发。
整个系统最终形成了一条比较简单的数据链路:

数据中间层
方案确定后,实际实现并不复杂。
在 WinCC 中配置好 REST 接口地址、用户名和密码,WinCC 就会按照设定的周期,将采集到的传感器数据自动发送到我开发的中间模块。
中间模块接收到数据后,一方面进行本地缓存和存储,另一方面判断数据变化情况,将发生变化的数据按照项目方要求的格式,转发到指定接口。
最终,这些来自生产线的传感器数据被汇总到平台,成为宁波当地环保信息化数据大屏的一部分。

这个项目并不算大,却让我第一次真正走进了工业数据的采集与传输过程。从 WinCC 中的数据,到本地存储、转换、接口传输,再到最终呈现在数据平台上,也算是完整经历了一遍。
这些年,越来越多的工厂开始做数字化,也有不少企业希望把已有设备的数据集中起来,做一个属于自己的数据大屏。
我把这次项目记录下来,希望给有类似需求的朋友提供一个实际案例和思路,少走一些弯路。
评论0
欢迎分享你的看法,也欢迎补充不同的实践经验。