随着分布式新能源的大规模并网,电力行业产生的数据量呈井喷式增长。这不仅对数据存储提出了高要求,也对数据实时处理和分析能力构成挑战。传统电网技术在全面、准确地建模和管理数据方面力不从心,传统数据库更难以应对数据的高速增长和实时处理需求。
TDengine 是一款从诞生之初便致力于为工业、物联网领域推动信息化改革的时序大数据平台。电力行业作为工业领域的重要分支,自然也是 TDengine 主攻的领域之一。在TDengine Enterprise/TDengine Cloud 的外部数据源接入组件中,我们提供了诸如:MQTT、OPC UA、OPC DA等数据直采的功能。让用户可以凭借十分简单的 Web 界面配置,无需任何一行代码便可完成数据接入。尽管电力行业用户使用的协议种类繁多,但我们还是希望可以尽可能地帮助大家降低开发成本。
作为IT、OT融合的中介,OPC UA(Open Platform Communications Unified Architecture)有着极其重要的地位,通过对 OPC UA 协议数据的直采接入,TDengine 一举便解决了传统工业实时库性能不足、扩展性差、使用成本高等问题。
在 OPC UA 中,物理量用一个节点(Node)表示。每个节点有一个唯一的标识(NodeId)。通过 TDengine 的数据采集器,我们可以连接到 OPC UA Server,通过一系列配置来完成 OPCUA Node 与 TDengine 表的对应关系。比如:所有浮点类型的采集量,全部写入浮点类型的超级表,每个节点的node id 构成子表的表名,然后通过不同的标签进行子表的区分,比如:电流、电压等。
TDengine 的 OPC UA 数据采集器,还支持对每个 Node 的采集时间戳、接收时间戳、采集指进行简单计算。比如:ts-(ts% 1000),表示:将毫秒精度的采集时间戳取除毫秒数,变为秒级精度。也支持多个 OPCUA Node 写入同一超级表等特性。
总之,TDengine 的 OPC UA 采集器就像是一个翻译官,它能理解 OPC UA 数据结构映射到时序库数据结构的需求,最终把他们巧妙地结合在一起。
整个数据接入流程只需要如下几个简单的步骤:
- 对于非 TDengine Enterprise(企业版)用户,花 3 分钟时间注册 TDengine Cloud ,https://cloud.taosdata.com/auth/login,根据提示兑换 600 元额度的免费使用。
- 在TDengine Cloud 中提前创建好一个数据库,用于存放 OPC UA 数据(具体建库参数值如需自定义,可参阅:https://docs.taosdata.com/reference/taos-sql/database/ ,若为了加速测试可以直接选择默认配置)
- 本次展示将使用 Prosys 的 OPC-UA 模拟器来模拟太阳能电池板的数据。该模拟器是免费的,可以通过Prosys 网站请求下载。
安装完毕之后,便可以自行创建一些简单的模拟数据。
- 确保代理插件和 OPC UA server 处在同一网络,然后根据提示,逐步复制粘贴,安装代理插件并启动,最后选择“添加数据源”。
- 按顺序填写/选择:自定义的任务名称;OPC UA 类型;选择刚刚创建的代理插件;填写 OPC UA server 的 IP 和端口。
在这个例子中,由于是测试,我们不会设置安全以及认证部分的参数。因此在软件中复制如下 URL 填写 OPC UA server 地址之后,点击检查连接以确保代理能够连接到代理就可以了。
- 接下来,点击“下载数据点位”下载 csv 模版,根据下面的规则自定义调整 csv 内容或者不需要调整,最后选择“选取文件”将其上传。
- 本次测试获取 csv 模板内容如下,可以根据上述规则自行调整:
- 订阅模式分为两种:observe(读取点位最新值上报),subscribe,(实时拉取,数据变更时即上报),默认采取后者。
- 填写完成以上信息后,下拉到底部点击“保存并应用”按钮,即可直接启动从 OPC UA 到 TDengine 的数据同步了。
- 在这里看到连接代理和数据源任务都处于正常状态之后,就可以去TDengine 中使用 SQL 语句检查我们的 OPC UA 数据了。
在这个配置过程中,我们还能在 WEB 页面看到很多其他配置项,但是他们都是选填项,这部分用户可以根据实际情况填写。
现在,我们就已经轻松完成了 OPC UA 数据的直采接入。整个过程中,唯一耗时的地方,可能就在于 OPCUA 数据结构和 TDengine 的超级表结构的匹配环节。如果您对 TDengine 的“超级表-子表”的数据模型十分熟悉的话,想必不会花很多时间。