使用InfluxDB作为现代过程历史记录器
作者:Sam Dillard / 产品,用例,开发者
2021年10月21日
导航至
在工业物联网(IIoT)环境中实现互联性可能会很困难,特别是在考虑到商业和IT部门的不同需求时。OPC,或称为开放式平台通信,允许跨设备的数据连接和监控。实施OPC可以解决重大的物联网互联性挑战;然而,将OPC的OT侧与企业商业和IT侧之间的差距连接起来并不总是容易或直接,尤其是当你没有兴趣、时间、人力资源或预算来实施传统的过程历史记录器和其商业应用程序集成时。
解决方案
ThingWorx Kepware是一个领先的OPC服务器和网关应用程序,它将遗留的工业资产与应用程序、数据库和云服务连接起来。自2018年以来,PTC公司作为值得信赖的Influx Data合作伙伴,其产品ThingWorx Kepware允许您直接将OPC标签数据流式传输到InfluxDB。您的过程历史记录器的过时架构和用户界面已经一去不复返。使用ThingWorx Kepware和InfluxDB大规模收集和存储标签数据变得简单、快速且易于实施。
实施
现代工业物联网(IIoT)和工业4.0应用程序通常围绕一个或多个消息或数据交换平台构建。以下是对三种最常见类型的快速总结
- OPC: OPC包括OPC-DA、OPC-UA以及经常使用的OPC-AE。这些在工厂地面和工业组织的数据中心最为常见。
- MQTT: MQTT相对于OPC来说不那么特定于OT,但它提供了低延迟方法来在资产和应用程序之间传递数据,非常适合混合资产/应用程序网络。
- RESTful APIs: RESTful APIs是一种以Web为首要技术的技术,用于应用程序到应用程序或客户端/服务器交互。RESTful APIs非常适合边缘到云架构或由IT或Web开发者构建和管理。
幸运的是,ThingWorx Kepware和InfluxDB支持所有这些方法,提供了对您选择的集成的灵活性和支持。
使用Telegraf,还是不使用Telegraf?
Telegraf是一个由插件驱动的代理,它可以收集、处理、聚合并写入指标。它支持包括输入、输出、聚合器和处理器在内的四个类别的插件。它由InfluxData团队和社区构建,作为开源软件提供,可以帮助简化您的集成过程。
在构建数据管道以将指标存储到InfluxDB时,首先要考虑的是消息内容是有结构的、半结构的还是非结构的。对于那些不熟悉这些术语的人
结构化:结构化数据依赖于数据模型,通常以表格和行表示,其中每一行和每一列都代表已知的语义和格式。一个很好的例子是csv,其中有一个用于ISO 8601时间戳的列,一个用于每个归一化OPC标签名称的列,以及一个表示该时间点标签的数值的列。
半结构化:这是不能总是用表格格式表示的结构化数据,可能以分层方式表示关系。考虑JSON或XML——结构和内容是灵活的,但解释信息的规则通常编码在格式中——字段名称、段落组等。OPC数据的半结构化表示可能包括一个JSON文档,它将标签名称和值分组在一个单一的时间戳和服务器名称下。
非结构化:虽然这个桶也包含图像、PDF文档等数据类型,但就我们的目的而言,非结构化数据是指格式和内容未预先定义的数据。MQTT消息(msg)体不受内容限制,因此可以携带任何格式的文本或二进制信息。非结构化数据需要模式建模——要么在存储之前(从而将其转换为结构化),要么在存储后通过解析(例如正则表达式字段提取)进行。
最终,在您将PTC Kepware标签插入InfluxDB之前,您需要将您的数据转换为行协议(LP)。行协议是一种高效的文本格式,类似于CSV,它针对InfluxDB中的数据解析进行了优化。有关行协议的所需了解的一切都包含在我们的文档中:https://docs.influxdb.org.cn/influxdb/v1.8/write_protocols/line_protocol_tutorial/
如何以及在哪里转换为行协议是架构决策。在PTC Kepware中或在外部解决方案(如Flow Director或HighByte)中格式化非结构化MQTT或半结构化OPC是可行的,但强烈建议您考虑实施Telegraf网关,因为它提供了一种集中数据收集、处理、重新格式化的方法,甚至可以提供写入其他服务或返回到MQTT代理等应用程序的途径。Telegraf中的Influxdb_v2输出插件将处理与InfluxDB云和InfluxDB 2的连接配置的大部分工作,这在管理HTTPS连接时可以带来很大的好处。Telegraf几乎总是在您的PTC Kepware Kepserver或MQTT代理相同的机器上运行,或在许多工业软件和硬件供应商提供的边缘网关产品上运行。
无论您是否使用Telegraf(我们再次强烈推荐您使用),以下方法都可用于PTC Kepware用户将标签历史存储在InfluxDB中,并使这些历史对用户和应用程序可用
MQTT客户端
使用Kepware IoT网关高级插件,直接将工业数据流式传输到您选择的MQTT代理或InfluxData合作伙伴(如HiveMQ或Flow Director)的代理。Telegraf的MQTT消费者插件将监视您的MQTT主题,并自动存储Kepware发送到这些主题的数据。您可以通过使用InfluxDB任务处理这些数据并将其写回代理,以便Kepware与其他下游操作应用程序集成,使其更加强大。
REST客户端
使用Kepware IoT网关高级插件,您可以将标签数据转换为行协议,并在数据变化、轮询间隔或每个标签端逻辑时发送到InfluxDB的写入端点。这种方法还可以让您使用InfluxDB标签和字段丰富标签数据,这将使InfluxDB中的所有未来分析和可视化都变得非常强大。注意 - 使用PTC Kepware REST客户端直接将数据发送到InfluxData写入端点是实验性的,尤其是当从本地KepserverEX实例发送到InfluxDB云时。这是Telegraf真正能有所作为的场景之一 - 您可以直接写入InfluxDB V2监听器输入插件,并通过额外的可靠性、可扩展性和安全性将其中继到InfluxDB云。
Kepware OPC服务器
您还可以选择使用Telegraf OPC UA客户端输入插件直接连接到Kepware的OPC服务器。这是特定高级用户的首选选项,他们需要在InfluxDB中利用OPC命名空间,并愿意花额外的时间在Telegraf中配置和管理OPC连接。
您准备好了吗?
如果您已经是PTC Kepware用户,您可以从此处下载Telegraf,将其安装在可以安全访问KepserverEX应用程序的位置,并使用上述链接的文档来配置您首选的集成路径。我们还创建了一个InfluxDB社区Slack频道来讨论技巧、窍门,并向InfluxDB IoT团队和我们的Influxers社区提问。期待在那里见到您!