NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

使用 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:521386
用户头像

发布了 1835 篇内容, 共 92.4 次阅读, 收获喜欢 73 次。

关注

评论

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

TypeScript 中的 Index Signatures

Regan Yue

typescript ReganYue 10月月更

字节总监毕生心血总结:收获,不止SQL优化抓住SQL的本质

Java 程序员 架构 面试 计算机

谁说GitHub才能出经典?出自牛客网的Java程序员逆袭手册才是YYDS

Java 程序员 架构 面试 计算机

面试多次被拒,“两个月”61天,我收到了蚂蚁金服P7级的offer

Java spring 程序员 架构 编程语言

Leetcode题目解析:274. H 指数

程序员架构进阶

面试 算法 LeetCode 10月月更

这么卷吗?大三学生喜获阿里提前批

Java 程序员 架构 后端

互动视频和5G的相互成就

脑极体

发布两小时,霸榜GitHub!Spring Boot实战文档

Java 编程 程序员 后端 计算机

想不到吧!这本字节算法大佬562页《算法中文手册》,在Gihub上排名第一!

Java 架构 面试 程序人生 编程语言

Prometheus 的 Metric 数据类型

耳东@Erdong

Prometheus 10月月更

SpringBoot 实战:在 RequestBody 中优雅的使用枚举参数

看山

Java Spring Boot Effective Spring 10月月更

Java高级、架构师必备!Lucene+ElasticStack入门至项目实战!

Java 架构 面试 程序人生 编程语言

无敌!学透美团老哥的这套微服务进阶学习手册拿个P7还是so easy!

Java 架构 面试 程序人生 编程语言

横空出世!IDEA画图神器来了,比Visio快10倍

收到请回复

Java IDEA idea插件

自定义View:如何绘制一个饼图

Changing Lin

10月月更

通关宝典!Java 面试核心知识让你面试过,过,过!

Java 程序员 面试 后端 构架

刚上岸字节年薪60W的Java架构师,耗时半年总结的24W字面试手册

Java 程序员 架构 面试 后端

内卷破坏者!“阿里爸爸”全新出品SpringBoot高级笔记(全彩版)

Java 编程 架构 IT 计算机

4年CRUD小职员,五面阿里艰苦经历(定薪45K),回馈一波心得体会

收到请回复

Java 程序员 面试 后端 面经

ToB产品如何自传播(上)

石云升

产品经理 产品设计 产品思维 10月月更

凌晨加班回家路上捡到阿里技术人限产的MySQL高级笔记及面试宝典,从此我的人生像开挂一样!

Java 架构 面试 程序人生 编程语言

升级了 Windows 11 正式版,有坑吗?

王磊

双非本科毕业竟能四面阿里稳操胜券,轻松拿offer,定级P6+,怎么做到的?!

Java 程序员 架构 面试 后端

Node.js 日志最佳实践指南

devpoint

Node console 10月月更

神马操作!Kafka 竟然宣布弃用 Java 8

收到请回复

Java kafka 后端 java8

被疫情“带飞”的家庭健身市场,是时候卷起来了

脑极体

一女程序员因薪酬问题离职,rm -f * 删库,瘫痪6个小时,被判9个月

收到请回复

Java 程序员 面试 面经

真香!兜兜转转还是得看你“阿里面试参考指南”

Java 程序员 架构 面试 后端

飞桨与海光人工智能加速卡DCU系列完成互证,助力国产AI加速 卡人工智能应用创新

百度大脑

人工智能 深度学习 飞桨

Thread 的状态改变操作学习笔记

风翱

Thread 10月月更

碉堡了!Alibaba爆款Java高并发核心编程手册,在牛博网上被疯狂转载!

Java 架构 面试 程序人生 编程语言

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