写点什么

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

发布了 1848 篇内容, 共 113.7 次阅读, 收获喜欢 78 次。

关注

评论

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

前端二面常考面试题(必备)

loveX001

JavaScript

那些你不知道的 CSS 自定义形状网格布局 3

南城FE

CSS 前端 布局

假如问:你是怎样优化Vue项目的,该怎么回答

bb_xiaxia1998

Vue

vue为何不允许子组件修改父组件prop传值

达摩

Vue 数据流向

经常会采坑的javascript原型应试题

loveX001

JavaScript

CartoonGAN论文复现:如何将图像动漫化

华为云开发者联盟

人工智能 华为云 12 月 PK 榜

前端面试什么样的回答才能让面试官满意

loveX001

JavaScript

OpenTelemetry系列 (二)|初探OpenTelemetry

骑牛上青山

Java 调用链 OpenTelemetry 微服务调用链

0停机迁移Nacos?Java字节码技术来帮忙

华为云开发者联盟

Java 云计算 华为云 12 月 PK 榜

软件质量问题造成损失高达 2.4 万亿美元!

SEAL安全

软件质量 漏洞管理 12 月 PK 榜 软件供应安全

react面试题合集

beifeng1996

React

字节前端高频vue面试题及答案

bb_xiaxia1998

Vue

产品待办列表梳理(PBR)是什么?

ShineScrum捷行

Scrum 敏捷 产品待办列表 Scrum event

react的jsx语法是怎样解析的

夏天的味道123

React

谈谈前端性能优化-面试版

loveX001

JavaScript

纯函数

达摩

js 纯函数

一步步实现React-Hooks核心原理

helloworld1024fd

JavaScript

react-Suspense工作原理分析

夏天的味道123

React

前端工程师leetcode算法面试必备-二叉树的构造和遍历

js2030code

算法 LeetCode

React组件之间的通信方式总结(上)

beifeng1996

React

es6中箭头函数解析

达摩

ES6 箭头函数

前端高频手写面试题总结

helloworld1024fd

JavaScript

使用全彩LED显示屏时的安全要点

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家

前端vue面试题(持续更新中)

bb_xiaxia1998

Vue

从零到一手写迷你版Vue

helloworld1024fd

JavaScript

异构混排在vivo互联网的技术实践

vivo互联网技术

算法 异构 混排

React组件之间的通信方式总结(下)

beifeng1996

React

前端必会react面试题及答案

beifeng1996

React

什么是CodeArts

华为云开发者联盟

云计算 后端 华为云 12 月 PK 榜 软件开发生产线

浅谈字节码增强技术系列1-字节码增强概览

京东科技开发者

Java、 aop 字节码 字节码增强

前端二面常见手写面试题(必备)

helloworld1024fd

JavaScript

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