用于工业物联网和自动化的 Apache Kafka、KSQL 和 Apache PLC4

news2024/11/20 8:43:11

由于单一系统和专有协议,数据集成和处理是工业物联网(IIoT,又名工业 4.0 或自动化工业)中的巨大挑战。Apache Kafka、其生态系统(Kafka Connect、KSQL)和 Apache PLC4X 是以可扩展、可靠和灵活的方式实现端到端 IIoT 集成的绝佳开源选择。

这篇博文涵盖了挑战的高级概述以及解决问题的良好、灵活的架构。最后,我分享一段视频记录和相应的幻灯片。这些提供了更多细节和见解。

IIoT/工业 4.0 的挑战

以下是 IIoT/工业 4.0 的一些主要挑战:

  • IoT = IIoT:自动化行业不使用 MQTT 或其他标准,但速度慢、不安全、不可扩展且专有。
  • 产品生命周期很长(数十年),不需要简单的改动或升级
  • IIoT 通常使用不兼容的协议,通常是专有的,并且只是为某个特定供应商构建的
  • 自动化行业使用专有且昂贵的整体架构,这些整体架构不可扩展且不可扩展
  • 机器和 PLC本质上是不安全的,没有身份验证、没有授权、没有加密

这仍然是自动化行业的最先进技术。产品生命周期如此之长,这并不奇怪,但仍然非常令人担忧。

IT与自动化行业融合的演变

构建开放、灵活、可扩展的平台的需求巨大。从业务和技术角度来看,有很多机会:

  • 降低成本
  • 灵活性
  • 基于标准
  • 可扩展性
  • 可扩展性
  • 安全
  • 独立于基础设施

那么,如何从传统技术和专有的工业物联网协议转向云、大数据、机器学习、实时处理?如何构建可靠、可扩展、灵活的架构和基础设施?

用于端到端 IIoT 集成的 Apache Kafka 和 Apache PLC4X

我想您已经知道了:Apache Kafka是实时事件流事实上的标准。它提供

  • 开源(Apache 2.0 许可证)
  • 世界规模
  • 即时的
  • 持久存储
  • 流处理

Kafka Connect 支持 Kafka 与其他系统的可靠且可扩展的集成。Kafka Streams 允许编写标准 Java 应用程序和微服务,以使用轻量级流处理 API 持续实时处理数据。最后,KSQL 使用类似 SQL 的语义支持流处理。

用于 PLC 集成的 Apache PLC4X(西门子 S7、Modbus、Allen Bradley、Beckhoff ADS 等)

Apache PLC4X在市场上的知名度不如 Apache Kafka。与 Kafka 相比,它还“只涵盖了一个利基市场”(当然,这是一个很大的市场),而 Kafka 可以在任何行业中用于许多不同的用例。然而,PLC4X 对于自动化行业来说是一个非常有趣的顶级 Apache 项目。

目标是开放 IIoT 世界到外部世界的 PLC 接口。PCL4X 允许垂直集成,并使用类似 JDBC 的适配器编写独立于 PLC 的软件,适用于各种协议,如西门子 S7、Modbus、Allen Bradley、Beckhoff ADS、OPC-UA、艾默生、Profinet、BACnet、以太网。

PLC4X 提供 Kafka Connect 连接器。因此,您可以利用 Apache Kafka 的优势(高可用性、高吞吐量、高可扩展性可靠性、实时处理)来部署 PLC4X 集成管道。有了这个,您可以构建一个单一的架构和基础设施

  • 使用 PLC4X 和 Kafka Connect 的传统 IIoT 连接
  • 使用 Kafka Streams/KSQL 进行数据处理
  • 使用 Kafka Connect 和任何其他接收器(数据库、大数据分析、机器学习、ERP、CRM、云服务、自定义业务应用程序等)与企业的其他部分集成

适用于 IIoT 自动化行业的 Apache Kafka 和 PLC4X 架构

由于 Kafka 将生产者与消费者分离,您可以使用来自任何应用程序的 IIoT 机器传感器数据 - 有些可能是实时的,有些可能是批量的,有些可能是用于 Web 或移动应用程序上的人机交互的请求响应通信。

Apache PLC4X 对比 OPC-UA

有点题外话:如何在 Apache PLC4X(IIoT 开源框架)和 OPC-UA(IIoT 开放标准)之间进行选择。简而言之,两者是不同的东西,也可以是互补的。这是一个比较:

OPC-UA

  • 开放标准
  • 开放标准的所有优点和缺点(与不同供应商合作;采用缓慢;不灵活等)
  • 供应商往往执行不力
  • 需要 PLC 之上的应用服务器
  • 每台设备都必须进行改造,使其能够使用新协议并使用通用客户端与这些设备进行通信
  • 通常为了读取数据而过度设计
  • 在现有 PLC 上激活 OPC-UA 支持会大大增加 PLC 的负载
  • 每台机器的许可费用

Apache PLC4X

  • 开源框架(Apache 2.0 许可证)
  • 通过实现驱动程序来提供统一的 API,以便按照大多数工​​业控制器本身理解的协议与它们进行通信
  • 无需修改现有硬件
  • 不会增加 PLC 的负载
  • 无需支付许可证即可激活 OPC-UA 支持
  • 驱动程序根据规范或逆向工程协议实现,以获得完全 Apache 2.0 许可
  • 适用于 OPC-UA 的 PLC4X 适配器可用 —> 两者可以一起使用!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1059167.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MATLAB算法实战应用案例精讲-【优化算法】雪融优化器(SAO)(附MATLAB代码实现)

前言 算法原理 算法步骤 ①初始化阶段: 与大多数智能算法相似,就是随机生成一批粒子: ②探索阶段 当雪或由雪转化的液态水转化为蒸汽时,由于不规则的运动,搜索代理呈现出高度分散的特征。在这项研究中,布朗运动被用来模拟这种情况。作为一个随机过程,布朗运动被广…

讲讲项目里的仪表盘编辑器(四)分页卡和布局容器组件

讲讲两个经典布局组件的实现 ① 布局容器组件 配置面板是给用户配置布局容器背景颜色等属性。这里我们不需要关注 定义文件 规定了组件类的类型、标签、图标、默认布局属性、主文件等等。 // index.js import Container from ./container.vue; class ContainerControl extends…

六、vpp 流表+负载均衡

草稿!!! vpp node其实就是三个部分 1、plugin init 2、set command 3、function 实现功能,比如这里的流表 今天我们再用VPP实现一个流表的功能 一、流表 1.1流表----plugin init VLIB_REGISTER_NODE 注册流表节点 // 注册流…

15-自动化测试——理论知识

目录 1.什么是自动化测试? 2.常见的自动化测试分类 2.1.单元测试(Java、Python) 2.2.接口测试(Java、Python) 2.3.UI测试(移动端、网站) 3.如何实施自动化测试? 4.自动化测试…

测开 | Vue速查知识点

文章目录 Vue知识1. Vue 概述2. Vue 代码格式3. Vue 指令3.1 v-bind & v-model3.2 v-on3.3 v-if和v-show3.4 v-for 4. 生命周期 Vue知识 1. Vue 概述 简介: Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架。与其他…

[QT编程系列-44]: Windows + QT软件闪退的检测方法

目录 一、Windows程序闪退的问题定位方法 1.1 Windows程序闪退 1.2 要找到Windows程序的crash点 1.3 当Windows程序崩溃时,可以尝试以下方法获取出错信息: 二、关键工具的进一步分析 2.1 Windows事件查看器(Event Viewer) …

openGauss学习笔记-87 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用简单概述

文章目录 openGauss学习笔记-87 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用简单概述87.1 授予用户权限87.2 创建/删除MOT87.3 为MOT创建索引 openGauss学习笔记-87 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用简单概述 使用…

【python的输入】sys.stdin与sys.argv

在老师的课堂里碰到了sys.stdin与sys.argv,虽然是很简单的东西,还是花了大半天的时间才勉强理解。在这里记录一下学习过程,方便以后用到复习。 一、sys.stdin 根据python3 library里的解释, sys.stdin可用于所有交互式的输入。 …

Vscode爆红Delete `␍`eslintprettier/prettier

一、先看报错 文件中爆红,提示 Delete ␍eslintprettier/prettier 二、解决方案 项目根目录下,.prettierrc.js 文件中: endOfLine: auto,三、重启VsCode 此时不在爆红,问题完美解决

STM32CubeMX学习笔记-USB接口使用(HID按键)

STM32CubeMX学习笔记-USB接口使用(HID按键) 一、USB简介1.1 USB HID简介 二、新建工程1. 打开 STM32CubeMX 软件,点击“新建工程”2. 选择 MCU 和封装3. 配置时钟4. 配置调试模式 三、USB3.1 参数配置3.2 引脚配置3.3 配置时钟3.4 USB Device…

数据分析与挖掘: 红楼梦人物关系(Python)词云图

一: 角色剧本 第一代:水字辈祖宗创下基业 贾源、贾演兄弟二人帮先帝打江山立下战功,贾演被封为宁国公(大约有平定江山安宁天下之意),贾源被封荣国公(大约有强国富民之功)。贾源贾演二兄弟皆是一…

项目进展(五)-修复PCB电路板,学习32位ADC芯片ADS1285

一、前言 上个月29号放假了,和朋友一起去了南京(人是真滴多),师兄晚放假几天,结果在测试时不小心把12V和GND碰触到一起了,导致12V短路,电路板几乎瘫痪了。 今天下午到学校之后就开始着手寻找问题和修复,最…

Kafka日志索引详解以及生产常见问题分析与总结

文章目录 1、Kafka的Log日志梳理1.1、Topic下的消息是如何存储的?1.1.1、 log文件追加记录所有消息1.1.2、 index和timeindex加速读取log消息日志。 1.2、文件清理机制1.2.1、如何判断哪些日志文件过期了1.2.2、过期的日志文件如何处理 1.3、Kafka的文件高效读写机制…

腾讯云服务器南京地域详细介绍、测试IP和Ping值测速

腾讯云服务器南京地域怎么样?南京地域很不错,正好处于中间的位置,南方北方用户均可以选择,网络延迟更低速度更快,并且目前南京地域有活动,南京地域可用区可选南京一区、南京二区和南京三区,腾讯…

软件设计模式系列之二十四——模板方法模式

在软件设计领域,设计模式是一组被反复使用、多次实践验证的经典问题解决方案。其中,模板方法模式是一种行为型设计模式,用于定义一个算法的骨架,将算法中的某些步骤延迟到子类中实现,从而使子类可以重新定义算法的某些…

互联网Java工程师面试题·Zookeeper 篇·第二弹

目录 13. 服务器角色 14. Zookeeper 下 Server 工作状态 15. 数据同步 16. zookeeper 是如何保证事务的顺序一致性的? 17. 分布式集群中为什么会有 Master? 18. zk 节点宕机如何处理? 19. zookeeper 负载均衡和 nginx 负载均衡区别 20…

代码随想录算法训练营第五十七天 | 392.判断子序列 115.不同的子序列

1. 判断子序列 392. 判断子序列 - 力扣(LeetCode) dp[i][j] 表示以下标i-1为结尾的字符串s,和以下标j-1为结尾的字符串t,相同子序列的长度。 class Solution {public boolean isSubsequence(String s, String t) {//dp[i][j] 表示…

Spring MVC:数据绑定

Spring MVC 数据绑定数据类型转换数据格式化数据校验 附 数据绑定 数据绑定,指 Web 页面上请求和响应的数据与 Controller 中对应处理方法上的对象绑定(即是将用户提交的表单数据绑定到 Java 对象中)。 过程如下: ServletRequest…

代数科学计算:LiveMath Maker v3.6.0 cRACK

LiveMath Maker 是一个数学计算机程序,您可以使用它来制作(并探索、实验和创建)LiveMath。您和LiveMath Maker制作的任何LiveMath都可以通过互联网与世界共享。 用LiveMath Maker 来进行数学研究,函数学习,深入探索、实验和创建你的LiveMath…

通用收藏管理器Koillection

什么是 Koillection ? Koillection 是一个自托管的收藏管理器,旨在跟踪任何类型的物理(主要)收藏,如书籍、DVD、邮票、游戏……,由于 Koillection 旨在用于任何类型的收藏,它不支持自动下载元数…