亚马逊AWS官方博客
使用 KEPServerEX 将不同的工业设备和应用程序从工厂车间连接到 AWS | AWS 上的物联网
作者:Edouard Kachelmann 和 Ryan Dsouza
首先,我们将向您演示如何连接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 软件:
- 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 区域中创建。
- 打开 AWS IoT 控制台并选择 Greengrass,组,MyFirstGroup,然后选择核心,您应该能够看到您的核心设备:
- 选择您的核心设备,然后在左侧窗格中选择连接。记下终端节点地址和端口。
在 AWS IoT Greengrass 组中创建 AWS IoT 设备
现在我们将 KEPServerEx 设备添加到 AWS IoT Greengrass 组中。
- 在 AWS IoT 控制台中,选择 Greengrass,选择组,然后选择您的组以打开其配置页。接下来,选择设备,然后选择添加您的第一台设备(或添加设备)。
- 选择创建新设备。
- 要为此设备创建注册表项,请在名称中输入
KepServer
,然后选择下一步。
- 在设置安全性页面上,选择使用默认值以使用 1-Click 选项。此选项使用 AWS IoT 根 CA 生成所需的密钥和证书,并使用默认权限创建默认策略和 IAM 角色。
- 在下载安全凭证页面上,将设备的证书下载到 kepserver_certificates 文件夹中,然后解压缩。请注意,在整个过程中您仅能够在该步骤下载密钥(因此请确保您在此处下载密钥,否则您必须创建新的 AWS IoT 设备)。选择完成。
KepServer 现在应该会出现在 Greengrass 组的 Devices 列表中。
配置订阅
现在我们让 KEPServerEx 设备可以将消息发送到 AWS IoT 云。
- 在组配置页面上,选择订阅,然后选择添加订阅。
- 对于选择源,请选择选择,设备,然后选择 KepServer。
- 对于选择目标,选择选择,服务,然后选择 IoT Cloud。然后选择下一步。
- 对于可选主题筛选器,输入
iotgateway
,选择下一步,然后选择完成。
- 在组配置页面上,从操作菜单中,选择部署以将更新的组配置部署到 Greengrass 核心设备:
- 要确认部署成功,选择部署。您应该能够在接近启动部署的时间的状态列中看到已成功完成字样。
配置 KEPServer IoT 网关
复制先前下载和提取的设备证书。您可以使用 Microsoft 远程桌面连接软件的本地文件共享功能。
现在我们配置 MQTT 代理和 IoT 网关以将 Kepware 连接到 Greengrass 核心设备。
配置 IoT 网关
- 要访问 IoT 网关系统设置,请右键单击系统托盘中的“管理”图标,然后选择设置。选择 IoT Gateway 选项卡。
- 要配置 MQTT 代理,请选择管理证书。
- 在 MQTT 代理证书上,选择导入新证书。
- 浏览到您的 kepserver_certificates 文件夹,选择 kepserverID.cert.pem 文件和 kepserverID.private.key。
- 如果系统提示您输入密码,请将其留空,然后选择确定。
- 验证公用名是
AWS IoT 证书
,然后选择关闭。
检索 AWS IoT Greengrass Core 证书颁发机构 (CA)
要为 Greengrass 组检索 CA,请在终端中键入以下命令:
查找 MyFirstGroup,并复制 ID(此处称为 group-id)。
输出为:
复制 PemEncodedCertificate 值并将其粘贴到文本编辑器中。编辑内容,用回车符 (Enter) 替换任何换行符 (\n)。
您的文件应具有以下模板:
将文件另存为 greengrassgroupCA.pem。
将 AWS IoT Greengrass Core 证书颁发机构 (CA) 添加到 Windows
- 从 Windows 开始菜单中,打开运行。
- 键入 mmc,然后选择确定。
- 在控制台窗口中,从文件菜单中选择添加/删除管理单元。
- 选择证书,然后选择添加。选择计算机帐户,然后选择下一步。
- 选择完成,然后选择确定。
- 展开证书,受信任的根证书颁发机构,然后选择证书。
- 在右侧菜单中,选择证书,选择更多操作,所有任务,然后选择导入。
- 在导入向导页面上,选择下一步。浏览您的本地文件夹或保存 greengrassgroupCA.pem 文件的共享文件夹,然后选择打开。
注意:如果看不到该文件,请在文件名中输入通配符*并选择打开以查看扩展名为 *.pem 的所有文件。 - 选择下一步,然后选择完成。这时,您应该能名看到一条确认证书已成功导入的消息。如果系统提示您保存模板,请关闭控制台窗口并选择否。
配置代理
必须至少为一个代理配置一个活动标签才能启动网关服务。在 IoT Gateway 部分中配置代理和标签。
- 在 IoT Gateway 下,选择添加代理。
- 使用以下参数配置代理:
- 名称:
Kepserver
- 类型:
MQTT 客户端
,选择下一步。
- 名称:
- 使用先前保存的连接参数,使用以下参数配置 MQTT 客户端代理:
- URL:
ssl://Greengrass_Core IPAddress:8883
- 主题:
iotgateway
- QOS:
0(最多一次)
,将其他参数保持为默认值,然后选择下一步。
- URL:
- 按如下方式配置 MQTT 客户端安全性:
- 客户端 ID:
KepServer
- 用户名:
<留空>
- 密码:
<留空>
,客户端 ID 必须与 AWS IoT 控制台中的设备名称相匹配。选择完成。
- 客户端 ID:
- 右键单击刚刚创建的 KEPServer 代理,然后选择属性。
- 转到安全性,然后修改 TLS 配置,以便 KEPServer 客户端发送其证书:
- 客户端证书:启用
- 转到消息,然后自定义默认模板,如下所示:
- 消息格式:高级模板
- 模板:
选择确定。
- 转到安全性,然后修改 TLS 配置,以便 KEPServer 客户端发送其证书:
- 使用以下参数配置代理:
您的 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 并查看。
测试主题订阅
要测试主题订阅,请在 AWS IoT 控制台的左侧窗格中,选择测试。
- 选择订阅主题,在订阅主题中,输入
iotgateway
,然后选择订阅主题。
- 您应该能够看到 KEPServer 发布的消息:
总结
在本文中,我们研究了如何连接KEPServerEX 与 AWS IoT Greengrass Core 并进行配置 。我们安装了 AWS IoT Core 证书链,以允许这些服务相互通信。
我们现在能够处理 AWS 环境中不同工业设备的物联网消息。
小结和其他资源
通过本文中的步骤,您可以从可编程逻辑控制器 (PLC)、SCADA 系统、工厂历史记录和其他制造系统中收集工业数据,并在几个小时内安全、高效且具成本效益地让数据进入 AWS。在工业数据摄取到 AWS 后,可用于各种智能制造用例,包括构建用于预测性维护的机器学习模型。自己来看吧。立即开始将工厂资产和应用程序从工厂车间连接到 AWS。
了解更多:
- 工业物联网:https://aws.amazon.com/iot/solutions/industrial-iot/
- AWS IoT:https://aws.amazon.com/iot/?nc2=h_iot_
- AWS IoT Analytics 用户指南:https://docs.aws.amazon.com/iotanalytics/latest/userguide/welcome.html
- Amazon SageMaker 入门开发人员指南:https://docs.aws.amazon.com/sagemaker/latest/dg/gs.html
- ML 模型构建:https://aws.amazon.com/blogs/machine-learning/predict-march-madness-using-amazon-sagemaker/
- 使用 AWS IoT 进行预测性维护:https://aws.amazon.com/fr/blogs/iot/using-aws-iot-for-predictive-maintenance/