2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

使用 KEPServerEX 将不同的工业设备和应用程序从工厂车间连接到 AWS

  • 2019-09-25
  • 本文字数:5812 字

    阅读完需:约 19 分钟

使用 KEPServerEX 将不同的工业设备和应用程序从工厂车间连接到 AWS

在管理工业物联网 (IIoT) 数据时,收集这些数据并将其发送到云进行处理和高级分析(例如,预测质量或设备故障)可能具有挑战性。制造车间可能有许多不同的设备,每个设备都有自己的协议。在这篇博文中,我们将讨论客户如何通过在边缘使用 KepServerEX 进行工业协议转换来解决工业协议挑战、将 AWS IoT Greengrass 用于边缘处理以及使用 AWS IoT 将数据摄取到 AWS。在阅读完本文后,您应该能够掌握足够的知识来为实时工业数据创建安全可靠的流程,以便从车间到高级管理层的每个人都可以做出更明智的决策。


首先,我们将向您演示如何连接 KEPServerEX 与 AWS IoT Greengrass Core 并进行配置 。如果您的应用程序需要使用 AWS IoT Core 证书链连接到 AWS IoT Greengrass Core,则此信息非常有用。大多数应用程序不需要根 CA 来验证服务器 (AWS IoT Greengrass) 证书,但 KEPServerEX 要求它验证证书链。


AWS IoT Greengrass Core 软件提供以下功能:


  • 允许部署和执行使用 AWS Lambda 函数创建并通过部署 API 管理的本地应用程序。

  • 通过 MQTT 协议使用托管订阅方案,在安全网络上实现设备之间的本地消息传递。

  • 使用设备身份验证和授权确保设备与云之间的安全连接。

  • 提供对用户定义的 AWS Lambda 函数的安全、无线软件更新。

  • 使用 Greengrass ML Inference 部署针对在 AWS IoT Greengrass 上运行优化的机器学习模型。

先决条件

在本文中,我们建议您在同一 VPC 中的 EC2 实例上安装以下软件。


  • 在 Windows Amazon EC2 实例上从 Kepware 网站安装 KEPServerEX。要运行 Kepware IoT 网关,服务器需要一个可正常工作的 32 位 JRE。您可以从此处下载并安装当前的 JRE。

  • 按照 AWS IoT Greengrass 开发人员指南中的说明在 Linux 或 Rasberry Pi 上安装 AWS IoT Greengrass Core 软件:

  • 模块 1:AWS IoT Greengrass 的环境设置

  • 模块 2:安装 AWS IoT Greengrass 核心软件

  • KEPServerEX 支持 OPC UA 和 MQTT(库存实现)。我们使用 MQTT 消息与 AWS IoT Greengrass 进行通信。

  • 确保 KEPServerEX 和 AWS IoT Greengrass Core 软件在同一网络中运行。

  • 按照 AWS CLI 文档中的说明在您的个人计算机上安装 AWS CLI,然后使用您的 AWS 访问密钥和密钥对其进行配置。

架构图

入门

现在 AWS IoT Greengrass Core 软件应该已在网关上运行。如果您按照“开始使用”模块中的步骤操作,则还应该配置具有一个核心设备(例如 MyFirstGroup_Core)的 Greengrass 组(例如 MyFirstGroup)。核心设备应该能够与 AWS IoT Core 通信。


在这些过程中创建的资源应在同一 AWS 区域中创建。


  1. 打开 AWS IoT 控制台并选择 Greengrass,组,MyFirstGroup,然后选择核心,您应该能够看到您的核心设备:

  2. 选择您的核心设备,然后在左侧窗格中选择连接。记下终端节点地址和端口。

在 AWS IoT Greengrass 组中创建 AWS IoT 设备

现在我们将 KEPServerEx 设备添加到 AWS IoT Greengrass 组中。


  1. 在 AWS IoT 控制台中,选择 Greengrass,选择组,然后选择您的组以打开其配置页。接下来,选择设备,然后选择添加您的第一台设备(或添加设备)。

  2. 选择创建新设备。

  3. 要为此设备创建注册表项,请在名称中输入 KepServer,然后选择下一步。

  4. 在设置安全性页面上,选择使用默认值以使用 1-Click 选项。此选项使用 AWS IoT 根 CA 生成所需的密钥和证书,并使用默认权限创建默认策略和 IAM 角色。

  5. 在下载安全凭证页面上,将设备的证书下载到 kepserver_certificates 文件夹中,然后解压缩。请注意,在整个过程中您仅能够在该步骤下载密钥(因此请确保您在此处下载密钥,否则您必须创建新的 AWS IoT 设备)。选择完成。

  6. KepServer 现在应该会出现在 Greengrass 组的 Devices 列表中。

配置订阅

现在我们让 KEPServerEx 设备可以将消息发送到 AWS IoT 云。


  1. 在组配置页面上,选择订阅,然后选择添加订阅。


  • 对于选择源,请选择选择,设备,然后选择 KepServer。

  • 对于选择目标,选择选择,服务,然后选择 IoT Cloud。然后选择下一步。

  • 对于可选主题筛选器,输入 iotgateway,选择下一步,然后选择完成。


  1. 在组配置页面上,从操作菜单中,选择部署以将更新的组配置部署到 Greengrass 核心设备:

  2. 要确认部署成功,选择部署。您应该能够在接近启动部署的时间的状态列中看到已成功完成字样。

配置 KEPServer IoT 网关

复制先前下载和提取的设备证书。您可以使用 Microsoft 远程桌面连接软件的本地文件共享功能。


现在我们配置 MQTT 代理和 IoT 网关以将 Kepware 连接到 Greengrass 核心设备。

配置 IoT 网关

  1. 要访问 IoT 网关系统设置,请右键单击系统托盘中的“管理”图标,然后选择设置。选择 IoT Gateway 选项卡。

  2. 要配置 MQTT 代理,请选择管理证书。

  3. 在 MQTT 代理证书上,选择导入新证书。

  4. 浏览到您的 kepserver_certificates 文件夹,选择

  5. kepserverID.cert.pem 文件和 kepserverID.private.key。

  6. 如果系统提示您输入密码,请将其留空,然后选择确定。

  7. 验证公用名是 AWS IoT 证书,然后选择关闭。

检索 AWS IoT Greengrass Core 证书颁发机构 (CA)

要为 Greengrass 组检索 CA,请在终端中键入以下命令:


aws greengrass list-groups
复制代码


查找 MyFirstGroup,并复制 ID(此处称为 group-id)。


aws greengrass list-group-certificate-authorities --group-id [your_group_id]aws greengrass get-group-certificate-authority --certificate-authority-id [the_cert_auth_id_returned_above] --group-id [your_group_id] | awk -v beg='-----BEGIN CERTIFICATE-----' -v end='-----END CERTIFICATE-----' 'sub(".*"beg,beg){f=1} f; sub(end".*",end){exit}' | awk '{gsub(/\\n/,"\n")}1' | sed '$d' > greengrassgroupCA.pem
复制代码


输出为:


{"GroupCertificateAuthorityArn": "arn:aws:greengrass:[AWSregion]:[accountID]:/greengrass/groups/[group-id]/certificateauthorities/[certificate-authority-id]","GroupCertificateAuthorityId": "[certificate-authority-id]","PemEncodedCertificate": "-----BEGIN CERTIFICATE-----\nMIIEFTCCAv2gAwIBAgIVAJq6/DGtiKHvt96VZSPDRe/UCbRyMA0GCSqGSIb3DQEB\nCwUAMIGoMQswCQYDVQQGEwJVUzEYMBYGA1UECgwPQW1hem9uLmNvbSBJbmMuMRww\nGgYDVQQLDBNBbWF6b24gV2ViIFNlcnZpY2VzMRMwEQYDVQQIDApXYXNoaW5ndG9u\nMRAwDgYDVQQHDAdTZWF0dGxlMTowOAYDVQQDDDE3NTM0NTE0NTIwMTI6NDVjODhk\nZGYtOTE4MC00OGFmLWI2NzAtZDRmN2Q2ODQ4NzBhMCAXDTE4MTAyODAzMjU1MFoY\nDzIwOTgxMDI4MDMyNTQ5WjCBqDELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD0FtYXpv\nbi5jb20gSW5jLjEcMBoGA1UECwwTQW1hem9uIFdlYiBTZXJ2aWNlczETMBEGA1UE\nCAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTE6MDgGA1UEAwwxNzUzNDUx\nNDUyMDEyOjQ1Yzg4ZGRmLTkxODAtNDhhZi1iNjcwLWQ0ZjdkNjg0ODcwYTCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJtpEpUd4UQNf8w401nwuOxy0U7H\nCIMXidsMQMUz7reKCkNd36RYi/fk3L8I0HjJQV4FeqSEgrn0R0+5/tTUsnLKWL2v\nhD1uoeYokQ093hOKXJ8sdZQX6+1C+5Cg2rzw5Z+yloebiaRuJ/1kBYBL48rhQOuj\nl/A9/hqRnK8MTratjFvvgLwens1LEFuEFECqgrAo8WcxyJH5mn2FpIi6+k1MY0Cu\njnASU44HbsGcWPEXf3wYCVJkXJdGJpDMT0HSIVY6t1ssDGqYv0N05Ho9jRU57qgc\nAfsWCVMf48ENwrcgJpV100R7t05vl8fBGR4Aw5fX89YPmm2fLSOII/wO3h8CAwEA\nAaMyMDAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUh1qliQIyct02aaLJDTTq\n0iaEOy4wDQYJKoZIhvcNAQELBQADggEBACPQruUOeGr+O/ulUc2TjX3gHxK58JhJ\n9P0SMKW/Gm/mRFQQsRG/fkvLl2ypmBfyxCYcJjXAYyKuu94HaB0+qmwastdbeLCI\niD8ytR66SoREKPtIKXHCczNIy5x7HLwfnmD97Vmr+WsDUp9jA/xAGmNE8vKuTil8\nzYh0KssxU0QpifzjqnEmaqjvIJQLWj9dP8AZGyv5UPT4fcG5VvNnBG6nTEaEIOzR\nSlzP0MPF88RfArVKV4MYLT/bfGIGF9m0JmOYIPkO1zuoEjEmag+IEAA2xCgubbEn\nkDOxT1ZC906HZsYP3krOf216BW9PBeF82S/S0XYDp+9+TvWpz2wcNv8=\n-----END CERTIFICATE-----\n"}
复制代码


复制 PemEncodedCertificate 值并将其粘贴到文本编辑器中。编辑内容,用回车符 (Enter) 替换任何换行符 (\n)。


您的文件应具有以下模板:


-----BEGIN CERTIFICATE-----MIIEFTCCAv2gAwIBAgIVAJq6/DGtiKHvt96VZSPDRe/UCbRyMA0GCSqGSIb3DQEBCwUAMIGoMQswCQYDVQQGEwJVUzEYMBYGA1UECgwPQW1hem9uLmNvbSBJbmMuMRwwGgYDVQQLDBNBbWF6b24gV2ViIFNlcnZpY2VzMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMTowOAYDVQQDDDE3NTM0NTE0NTIwMTI6NDVjODhkZGYtOTE4MC00OGFmLWI2NzAtZDRmN2Q2ODQ4NzBhMCAXDTE4MTAyODAzMjU1MFoYDzIwOTgxMDI4MDMyNTQ5WjCBqDELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD0FtYXpvbi5jb20gSW5jLjEcMBoGA1UECwwTQW1hem9uIFdlYiBTZXJ2aWNlczETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTE6MDgGA1UEAwwxNzUzNDUxNDUyMDEyOjQ1Yzg4ZGRmLTkxODAtNDhhZi1iNjcwLWQ0ZjdkNjg0ODcwYTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJtpEpUd4UQNf8w401nwuOxy0U7HCIMXidsMQMUz7reKCkNd36RYi/fk3L8I0HjJQV4FeqSEgrn0R0+5/tTUsnLKWL2vhD1uoeYokQ093hOKXJ8sdZQX6+1C+5Cg2rzw5Z+yloebiaRuJ/1kBYBL48rhQOujl/A9/hqRnK8MTratjFvvgLwens1LEFuEFECqgrAo8WcxyJH5mn2FpIi6+k1MY0CujnASU44HbsGcWPEXf3wYCVJkXJdGJpDMT0HSIVY6t1ssDGqYv0N05Ho9jRU57qgcAfsWCVMf48ENwrcgJpV100R7t05vl8fBGR4Aw5fX89YPmm2fLSOII/wO3h8CAwEAAaMyMDAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUh1qliQIyct02aaLJDTTq0iaEOy4wDQYJKoZIhvcNAQELBQADggEBACPQruUOeGr+O/ulUc2TjX3gHxK58JhJ9P0SMKW/Gm/mRFQQsRG/fkvLl2ypmBfyxCYcJjXAYyKuu94HaB0+qmwastdbeLCIiD8ytR66SoREKPtIKXHCczNIy5x7HLwfnmD97Vmr+WsDUp9jA/xAGmNE8vKuTil8zYh0KssxU0QpifzjqnEmaqjvIJQLWj9dP8AZGyv5UPT4fcG5VvNnBG6nTEaEIOzRSlzP0MPF88RfArVKV4MYLT/bfGIGF9m0JmOYIPkO1zuoEjEmag+IEAA2xCgubbEnkDOxT1ZC906HZsYP3krOf216BW9PBeF82S/S0XYDp+9+TvWpz2wcNv8=-----END CERTIFICATE-----
复制代码


将文件另存为 greengrassgroupCA.pem。

将 AWS IoT Greengrass Core 证书颁发机构 (CA) 添加到 Windows

  1. 从 Windows 开始菜单中,打开运行。

  2. 键入 mmc,然后选择确定。

  3. 在控制台窗口中,从文件菜单中选择添加/删除管理单元。

  4. 选择证书,然后选择添加。选择计算机帐户,然后选择下一步。

  5. 选择完成,然后选择确定。

  6. 展开证书,受信任的根证书颁发机构,然后选择证书。

  7. 在右侧菜单中,选择证书,选择更多操作,所有任务,然后选择导入。

  8. 在导入向导页面上,选择下一步。浏览您的本地文件夹或保存 greengrassgroupCA.pem 文件的共享文件夹,然后选择打开。

  9. 注意:如果看不到该文件,请在文件名中输入通配符*并选择打开以查看扩展名为 *.pem 的所有文件。

  10. 选择下一步,然后选择完成。这时,您应该能名看到一条确认证书已成功导入的消息。如果系统提示您保存模板,请关闭控制台窗口并选择否。

配置代理

必须至少为一个代理配置一个活动标签才能启动网关服务。在 IoT Gateway 部分中配置代理和标签。


  1. 在 IoT Gateway 下,选择添加代理。


  • 使用以下参数配置代理:


  • 名称:Kepserver

  • 类型:MQTT 客户端,选择下一步。


  • 使用先前保存的连接参数,使用以下参数配置 MQTT 客户端代理:


  • URL:ssl://Greengrass_Core IPAddress:8883

  • 主题:iotgateway

  • QOS:0(最多一次),将其他参数保持为默认值,然后选择下一步。


  • 按如下方式配置 MQTT 客户端安全性:


  • 客户端 ID:KepServer

  • 用户名:<留空>

  • 密码:<留空>,客户端 ID 必须与 AWS IoT 控制台中的设备名称相匹配。选择完成。


  • 右键单击刚刚创建的 KEPServer 代理,然后选择属性。


  • 转到安全性,然后修改 TLS 配置,以便 KEPServer 客户端发送其证书:

  • 客户端证书:启用


  • 转到消息,然后自定义默认模板,如下所示:


  • 消息格式:高级模板

  • 模板:


{"timestamp": |SERVERTIMESTAMP|,"values": Hello IoT Cloud}
复制代码


选择确定。


您的 MQTT 代理配置应如下所示:



  • 选择 KEPServer 代理,然后选择添加 IoT 项:


  • 选择 IoT_Gateway_ / Kepserver 分支,然后选择 _PublishesSent 标签。选择应用。

  • 在发布下,选择每次扫描。

将 KEPServer 连接到 Greengrass 核心

KEPServerEX 和 Greengrass 组现在都已配置完成。在这个步骤中,我们验证来自 KEPServer 的连接是否成功,然后订阅 AWS IoT Core 中的主题。


验证连接是否成功


在 KEPServer 中:


  • 从运行时菜单中,选择重新初始化。

  • 在事件日志窗口中,您应该能够看到一条确认 MQTT 代理程序 KEPServer 已连接到 Greengrass 核心设备的消息:



如果事件日志窗口中出现以下错误之一:


  • 'Software caused connection abort: recv failed'.

  • 检查您是否在安全选项中启用了客户端证书选项,并查看 AWS IoT Greengrass 日志以解决连接问题。

  • 您还可以启用 Amazon CloudWatch logs 并查看。

  • 'unable to find valid certification path to requested target'

  • 检查 Greengrass Core 证书颁发机构 (CA) 是否已添加到 Windows 证书存储区。

测试主题订阅

要测试主题订阅,请在 AWS IoT 控制台的左侧窗格中,选择测试。


  • 选择订阅主题,在订阅主题中,输入iotgateway,然后选择订阅主题。

  • 您应该能够看到 KEPServer 发布的消息:


总结

在本文中,我们研究了如何连接 KEPServerEX 与 AWS IoT Greengrass Core 并进行配置 。我们安装了 AWS IoT Core 证书链,以允许这些服务相互通信。


我们现在能够处理 AWS 环境中不同工业设备的物联网消息。

小结和其他资源

通过本文中的步骤,您可以从可编程逻辑控制器 (PLC)、SCADA 系统、工厂历史记录和其他制造系统中收集工业数据,并在几个小时内安全、高效且具成本效益地让数据进入 AWS。在工业数据摄取到 AWS 后,可用于各种智能制造用例,包括构建用于预测性维护的机器学习模型。自己来看吧。立即开始将工厂资产和应用程序从工厂车间连接到 AWS。


相关文章:



本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/connecting-disparate-industrial-devices-and-applications-from-the-plant-floor-to-aws-using-kepserverex/


2019-09-25 15:522147
用户头像

发布了 1963 篇内容, 共 168.5 次阅读, 收获喜欢 82 次。

关注

评论

发布
暂无评论
发现更多内容

【IT运维】多台海外主机运维用什么工具好?

行云管家

服务器 IT运维 服务器运维 海外主机

喜讯!openGauss社区入选2021年 “科创中国”榜单

TiDB 可观测性方案落地探索 | “我们这么菜评委不会生气吧”团队访谈

PingCAP

企业知识管理的目标是什么?

小炮

Gitlab-ci 替代 webhook 触发Jenkins job

网易云信

gitlab

APICloud平台使用融云模块实现音视频通话实践经验总结分享

YonBuilder低代码开发平台

前端开发 APP开发 APICloud 融云 跨端开发

三级等保是最高的吗?有什么用?

行云管家

网络安全 等保 等保2.0

ICASSP 2022 | 前沿音视频成果分享:基于可变形卷积的压缩视频质量增强网络

阿里云CloudImagine

阿里云 计算机视觉 音视频 视频编码 视频云

【51单片机】室友用一把王者时间,学会了去使用数码管

謓泽

3月月更

数字化时代下,智能运维全栈监控解决方案及案例盘点

云智慧AIOps社区

运维 解决方案 场景应用 自动化运维 运维安全

WebRTC 简单入门

ZEGO即构

WebRTC 动手实践 音视频开发 即构科技

如何使用OKR管理团队?

优秀

OceanBase 社区版 运维管控平台 OCP 功能解读

OceanBase 数据库

OCP oceanbase OceanBase 开源 OceanBase 社区版

低代码实现探索(三十七)业务的流程,开发的框架

零道云-混合式低代码平台

java培训:SpringBoot高频面试考点分享

@零度

JAVA开发 springboot

中国AI的下一站:从两会高地奔涌向产业河谷

脑极体

Go HTTP Server 基于OpenTelemetry 使用Jaeger - 代码实操

非晓为骁

Go Docker Trace Jaeger OpenTelemetry

打造优质的车联网体验,仍需注意数据安全保护

FinClip

向工程腐化开炮 | Java代码治理

阿里巴巴终端技术

Java android JVM 代码治理

N个技巧,编写更高效 Dockerfile|云效工程师指北

阿里云云效

阿里云 云原生 Dockerfile 部署与维护 构建工具

Jaeger docker部署实操

非晓为骁

Docker Jaeger Go 语言 http client

实用机器学习笔记二十五:超参数优化

打工人!

学习笔记 超参数调优 机器学习算法 3月月更

移动域全链路可观测架构和关键技术

阿里巴巴终端技术

架构 App 移动端 体验优化

如何从头到脚彻底解决一个MySQL Bug?华为云数据库高级专家带你看

华为云数据库小助手

bug GaussDB 华为云数据库 GaussDB(for MySQL)

企业内PAAS建设的经验与教训

Crazy

中间件 PaaS 经验 云原生应用

如何进行数据挖掘?

郑州埃文科技

数据挖掘 数据库

JavaScript深入理解之闭包

锋享前端

大数据培训:Hadoop和MPP有什么区别

@零度

hadoop MPP 大数据开发

云计算及国内主流云厂商概述

穿过生命散发芬芳

3月月更

【直播回顾】OpenHarmony知识赋能第四期直播——标准系统HDF开发

OpenHarmony开发者

直播 HDF OpenHarmony

hexo+github搭建个人博客前期部署工作

静Yu

Hexo

使用 KEPServerEX 将不同的工业设备和应用程序从工厂车间连接到 AWS_文化 & 方法_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章