用于工业物联网和自动化的 Apache Kafka、KSQL 和 Apache PLC4
由于单一系统和专有协议,数据集成和处理是工业物联网(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、云服务、自定义业务应用程序等)与企业的其他部分集成

由于 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 适配器可用 —> 两者可以一起使用!
相关文章:
用于工业物联网和自动化的 Apache Kafka、KSQL 和 Apache PLC4
由于单一系统和专有协议,数据集成和处理是工业物联网(IIoT,又名工业 4.0 或自动化工业)中的巨大挑战。Apache Kafka、其生态系统(Kafka Connect、KSQL)和 Apache PLC4X 是以可扩展、可靠和灵活的方式实现端…...
1.1.1开发基础-硬件-万用表
1 万用表 万用表又叫多用表、三用表、复用表,是一种多功能、多量程的测量仪表,一般万用表可测量直流电流、直流电压、交流电压、电阻和音频电平等,有的还可以测交流电流、电容量、电感量及半导体的一些参数,是最常用、最简单的测试设备。 万用表是一种多功能多量程的便…...
Mysql内置函数、复合查询和内外连笔记
目录 一、mysql内置函数 1.1.日期函数 1.2.字符串函数 1.3.数学函数 1.4.其他函数 二、复合查询 2.2 自连接 2.3 子查询 2.3.1单行自查询 2.3.2 多行子查询 2.3.3 多列子查询 2.3.4在from子句中使用子查询 2.3.5合并查询 三、表的内连和外连 3.1内连接 3.2外连接…...
【VUE·疑难问题】定义 table 中每行的高度(使用 element-UI)
一、如何定义 table 中每一行的 height ? 1.table例子 <!-- 二、table --><div style"overflow: hidden;display: block;height: 68vh;width: 100%;"><el-table stripe show-header style"width: 100%" :data"tableData&q…...
【重拾C语言】四、循环程序设计(后判断条件循环、先判断条件循环、多重循环;典例:计算平均成绩、打印素数、百钱百鸡问题)
目录 前言 四、循环程序设计 4.1 计算平均成绩——循环程序 4.1.1 后判断条件的循环 a. 语法 b. 典例 4.1.2 先判断条件的循环 a. 语法 b. 典例 4.1.3 for语句 a. 语法 b. 典例 4.2 计算全班每人平均成绩—多重循环 4.2.1 打印100以内素数 4.2.2 百钱百…...
Linux 安装 Gitlab
1、到官网下载Gitlab安装包 (如果是Centos,到el目录下载)。下载GitLab 2、安装依赖软件 sudo yum install -y policycoreutils-python3、安装gitlab sudo rpm -i gitlab-jh-16.3.4-jh.0.el7.x86_64.rpm 4、修改 gitlab.rb sudo vi /etc/gitlab/gitlab.rb 5、g…...
stm32-SPI协议
SPI协议详解(图文并茂超详细) SPI通讯协议 于是我们想有没有更好一点的串行通讯方式;相比较于UART,SPI的工作方式略有不同。 SPI是一个同步的数据总线,也就是说它是用单独的数据线和一个单独的时钟信号来保证发送端和…...
想要精通算法和SQL的成长之路 - 并查集的运用和案例(省份数量)
想要精通算法和SQL的成长之路 - 并查集的运用 前言一. 并查集的使用和模板1.1 初始化1.2 find 查找函数1.3 union 合并集合1.4 connected 判断相连性1.5 完整代码 二. 运用案例 - 省份数量 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 并查集的使用和模板 先说一下并查集…...
解决内网拉取企微会话存档代理问题的一种办法
问题:客户的服务都是内网的,不能直接访问外网;访问外网的话需要走kong网关才能出去。 会话存档官网说可以使用socket5、http方式拉取会话存档;我这边尝试了直接使用kong网关的ip和端口配置进去,是访问不了的 我后面就…...
二十二,加上各种贴图
使用pbr的各种贴图,albedo,金属度,ao,法线,粗糙度,可以更好的控制各个片元 1,先加上纹理坐标 texCoords->push_back(osg::Vec2(xSegment, ySegment)); geom->setVertexAttribArray(3, texCoords, osg::Array::BI…...
新版校园跑腿独立版小程序源码 多校版本,多模块,适合跑腿,外卖,表白,二手,快递等校园服务
最新校园跑腿小程序源码 多校版本,多模块,适合跑腿,外卖,表白,二手,快递等校园服务 此版本为独立版本,不需要** 直接放入就可以 需要自己准备好后台的服务器,已认证的小程序…...
SpringBoot banner 样式 自动生成
目录 SpringBoot banner 样式 自动生成 图案网站: 1.第一步创建banner.txt文件 2.访问网站Ascii艺术字实现个性化Spring Boot启动banner图案,轻松修改更换banner.txt文件内容,收集了丰富的banner艺术字和图,并且支持中文banner下…...
回收站里面删除的照片如何恢复?
现在拍照已经成为人们生活中的一种方式,照片为我们保留了许多珍贵而美好的回忆。大家通常会把重要的照片保存在硬盘里,但当不小心把照片移入回收站并彻底删除时,情况就有点糟糕了。那么,回收站里删除的照片还有办法恢复吗…...
Qt model/view 理解 2
这是我对 Qt 的 model/view 内容理解的第二篇 blog,在第一篇文章中,介绍 QTableView 和 QAbstractTableModel,实现显示了对数据源的显示,但是显示的格式和修改的模式都是按照 View 控件的自显示方式。在此,使用 Qt 自带…...
【LeetCode热题100】--114.二叉树展开为链表
114.二叉树展开为链表 方法一:对二叉树进行先序遍历,得到各个节点被访问到的顺序,利用数组存储下来,然后在先序遍历之后更新每个节点的左右节点的信息,将二叉树展开为链表 /*** Definition for a binary tree node.* …...
Java | Maven(知识点查询)
文章目录 Maven知识速查1. Maven概述2. Maven的作用3. Maven的下载4. Maven的环境配置5. Maven 的基础组成5.1 Maven仓库5.1.1 本地仓库配置:5.1.2 中央仓库配置:5.1.3 镜像仓库配置 5.2 Maven坐标 6. Maven项目6.1 手工创建Maven项目6.2 自动构建项目 7…...
Vmware 静态网络配置
概述 仅主机模式(VMware1):使用host-only的方式是不能和外界通信的,只能够和本机的物理网卡通信 桥接(VMnet0):使用桥接的方式使得自己的虚拟机和自己的真实机网卡在同一个网段 NAT࿰…...
【数据结构--八大排序】之希尔排序
💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …...
Linux中生成so库的文件引用另一个so库问题的解决
文章目录 一、问题介绍二、问题解决 一、问题介绍 由于项目需求,需要将一个“编译时引用了另一个动态链接库”的文件(名为main.c),再编译成一个动态链接库。 简要说明一下,即原本的项目代码里,包含main.c…...
EDI是连接原始电子商务和现代电子商务的纽带
EDI是连接原始电子商务和现代电子商务的纽带。 EDI(Electronic Data Interchange,电子数据交换)是一种电子通信技术,用于在不同组织之间以结构化和标准化的方式交换业务文档和数据。EDI使企业能够更有效地与供应商、客户和合作伙…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
接口自动化测试:HttpRunner基础
相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...
