亚马逊AWS官方博客

使用Edgelink连接不同工业设备到Amazon IoT SiteWise的解决方案

工业物联网(IIoT)架起了工业设备和自动化网络(通常称为OT,Operations Technology)与信息技术(IT)之间的桥梁。任何IIoT应用的第一个挑战是连接传统设备,因此我们能够从不同制造商的不同设备(可编程逻辑控制器PLC、传感器和电机)收集数据。在许多情况下,我们必须适应不同的行业协议,甚至通过在旧系统中添加新设备新技术来进行改造,以便它们能够进行测量,允许远程连接。

在这篇博文中,我们将向您介绍Amazon IoT SiteWise和亚马逊云科技合作伙伴研华的认证工控机硬件以及Edgelink软件如何帮助客户解决这些核心挑战。

  • 在工厂本地网络中与Amazon云建立数据连接
  • 经济高效地获取产品线各种设备数据并上传到云端

关于Amazon IoT SiteWise

Amazon IoT SiteWise是一项全面托管的亚马逊云科技IoT服务,可用于收集,组织和分析大规模工业设备的数据。 Amazon IoT SiteWise使您能够从传感器,设备或本地本地本地网关收集工厂车间的数据,并使用网关软件(Amazon IoT SiteWise连接器)上传到Amazon云。Amazon IoT SiteWise Gateway在运行Amazon IoT Greengrass的通用工业网关设备上运行,并通过OPC UA协议直接从服务器中读取数据。然后,您可以使用丰富的资产建模框架来构建和组织数据,以创建设备和流程的数字虚拟映射。使用IoT SiteWise Monitor,您可以创建操作仪表盘并与工厂操作员共享,以便实时监控和可视化设备运行状况和输出。

关于研华WISE-PAAS/EDGELINK

研华是世界领先的工业PC和IoT解决方案供应商。研华的WISE PaaS/EdgeLink解决方案旨在转换和处理采集不同的数据,而无需复杂和耗时的编程。WISE PaaS/EdgeLink Studio软件提供了一个高效的界面,用户只需点击几下鼠标即可预处理数据。配置后,可以将数据下载到安装WISE PaaS/Edgelink运行时的硬件上。该软件使用户能够轻松获取设备数据并将其传输到云和第三方系统。

  • 支持多厂商多种PLC协议进行数据转换
  • 支持使用各种协议下行链路至PLC
  • 支持与ODBC数据的上行链路
  • 支持与DNP3和Modbus协议的上行链路
  • 多个I/O接口
  • 通过OPC-UA、Modbus、DNP3、BECnet、MQTT和LwM2M发布服务
  • 灵活配置和定制的模块化设计

解决方案架构综述

此解决方案使用亚马逊云科技认证的研华工控机作为边缘网关(Linux系统)安装Amazon IoT Greengrass。通过研华网关中内嵌的免费Edglink软件连接不同厂商的PLC并转换为标准OPC UA数据,运行在边缘端的Amazon IoT SiteWise Gateway 可以从Edgelink OPC UA服务器接收数据并发布到云,对具备内置OPC UA服务器但不支持IoT SiteWise Gateway连接的PLC也可采用此方案。IoT SiteWise可以实时获得设备观察点数据,并计算工作站和生产线级别的关键绩效指标(如OEE)。

先决条件

  • 一台研华UNO2484工控机作为边缘设备,亚马逊云科技认证的设备,支持Amazon IoT Greengrass 和Amazon IoT SiteWise,支持Wise PaaS/EdgeLink运行时软件。
  • 按照《Amazon IoT Greengrass V2开发者指南》中的说明,在UNO2484中安装最新版本的Amazon IoT Greengrass Core软件,Greengrass V2安装步骤
  • 西门子S1500 PLC或三菱Fx3 PLC和UNO2484连接到同一本地网络。
  • 这里获得Advantech EdgeLink Studio 2.7.0 ,安装在windows PC中。

演练操作步骤

本演练操作中有五个部分:

  • Edgelink Studio配置PLC标签并转换为OPC UA节点
  • 使用Amazon IoT SiteWise Gateway摄取数据
  • Amazon IoT SiteWise中建立资产模型
  • 使用Amazon SiteWise Monitor中监控资产
  • 使用IoT SiteWise Deadband功能过滤OPC UA数据

Edgelink Studio配置PLC标签并转换为OPC UA节点

在本部分中,我们将介绍如何使用研华 Edgelink Studio和Edgelink软件连接到PLC设备,编辑PLC标签,将PLC标签转换成OPC UA节点。

1).从这里下载并安装 Advantech Edgelink Studio 2.7.0,根据帮助文档中的指南创建项目。

2).如下图所示的空项目,导航至Data Center, IO tag,右键单击TCP,添加设备。这里我们以西门子S1500 PLC为例,输入名称,选择正确的设备类型,输入PLC的IP地址。

3).右键单击TCP,配置PLC标签的扫描速率,默认为1000ms,您可以选择需要的扫描频率,这将影响数据摄取到云端的频率。

4).配置PLC tags.

根据客户PLC的标签信息,为SIEMENS1500设备添加两个初始IO标签。一个模拟标签和一个离散标签

选择Amazon_UNO2484_10.0.0.1网关设备,选择将标签导出到Excel。

导出的标签Excel文件Edgelink_PLC_tags.xls如下所示。

我们提供将大量PLC标签转换为Edgelink所需模板的脚本。
Github 地址https://github.com/gaoykxp/Edgelink_SiteWise

PLC_Tags_Information.xlsx是您从客户处获得的原始PLC标签。第一步是将其重新保存为PLC_Tags_Information.csv。运行脚本

python convert_tags_csv_to_standard_csv.py -i PLC_Tags_Information.csv

将PLC_tags_Information.csv转换为PLC_tags_Information_output.csv。脚本还将替换Edgelink中不支持的字符,如“/”“&”,并替换在Amazon IoT SiteWise OPC UA Collector中不支持的“.”。

PLC_Tags_Information_Output.csv

这里有两种数据类型,只需从中复制离散数据和模拟数据PLC_Tags_Information_Output.csv 到 相应的Edgelink_PLC_Tags.xls。  Name->name, Address->address, Datatype->datatype,  startBit->startbit.  所有其他字段与原始字段Analog_Name and OpenLight保持一致。

现在,已经将所有PLC标签放入Edgelink_PLC_tags.xls。在Edgelink Studio中,选择“Import the Tags from Excel”,所有标签都将导入到项目中。


5).将PLC标签转换为OPC UA节点,使Edgelink成为OPC UA服务器

选择Service, OPC UA

General setting: Port: 4840

Discrete as Bool: Enable

在Security Policy选项: 选择 “None”

其它保持默认设置

点击Add Tags

选择要转换为OPC UA节点的PLC标签

OK, Apply

重要提示:

如下图OPC UA节点中“Name”,”Node ID”, “Tag Name” 不能含有 ‘.’, 否则IoT SiteWise Collector 不会接受 ,导致数据无法上传。

6).选择Project Download,新配置将下载到UNO-2484网关中的Edgelink固件。等待Edgelink服务重新启动成功。现在,配置好节点的Edgelink OPC-UA服务器运行起来.

使用Amazon IoT SiteWise Gateway摄取数据

您已经配置了Edgelink OPC-UA服务器。现在,我们可以在云中设置Amazon IoT SiteWise Gateway, IoT SiteWise Gateway将运行在边缘网关中,包含Collector和Publisher两个组件, 实现数据从Edgelink OPC UA服务器摄取到云端的IoT SiteWise.

1).在Console里导航到Amazon IoT SiteWise, Gateway, Create Gateway, Greengrass v2

2).选择Advanced setup, 选中你之前创建好的 Greengrass core device. Next

3).配置Edge capability, 本博客只设计到数据的摄取, 不需要选中Data processing pack. Next

4)选中Add data source, 这是为了配置运行在边缘网关中的IoT SiteWise Collector,可以连接到现有的Edgelink OPC UA服务器.  Add, Next.

Source Name: AnyName

Local endpoint: opc.tcp://localhost.4840

Node ID for selection: /

Authentication configuration : None-No Authentication

Next

Create

5).IoT SiteWise Gateway成功创建,如下所示

6).部署IoT SiteWise Gateway 组件到边缘网关

导航到Amazon IoT SiteWise, Gateway, Gateway-Edgelink, Updates

分别选中OPC-UA collector and Publisher, Deploy

等待几分钟,当Gateway的Deploment状态变为Complete,组件部署成功.

Amazon IoT SiteWise中建立资产模型

现在,您的Edgelink将PLC标签转换为OPC-UA数据,使用IoT SiteWise Gateway摄取到边缘侧的OPC UA数据,并上传到云端.

接下来,您将使用Amazon IoT SiteWise中的资产建模对资产进行建模。资产模型包含名称、描述、资产属性和资产层次结构定义。本博客只提供了一个简单的资产模型演示,其中包含一层“Station A PLC Demo”模型和资产。您可以引用其他博客定义的更为完整层次结构。 Collecting, organizing, monitoring, and analyzing industrial data at scale using Amazon IoT SiteWise (Part 1)

1). 我们提供的脚本可以转换PLC 标签到供Amazon CLi使用的标准IoT SiteWise模型模板

PLC_Tags_Information_Output.csv是我们从前面步骤获得的文件。您可以使用sitewise_model_template_convert.py将此csv转换为PLC_Demo_model_template.json

执行以下Amazon CLI 命令建立PLC Demo的资产模型:

aws iotsitewise create-asset-model --cli-input-json file:// PLC_Demo_model_template.json--profile default

输出内容:

{

"assetModelId": "6fb6f4c1-47ff-4b68-8d0e-38a61bc7e239",

"assetModelArn": "arn:aws:iotsitewise:ap-southeast-1:776353586321:asset-model/6fb6f4c1-47ff-4b68-8d0e-38a61bc7e239",

"assetModelStatus": {

"state": "CREATING"

}

}

2).在Amazon IoT SiteWise 控制台, 选中Model, 你会发现刚刚创建的PLC Demo模型


3).导航到Assets, Create an asset, 选择刚刚创建的模型, 命名, Create asset.

编辑Station A PLC Demo,输入measurement的别名, 别名格式以 ‘/’+ “measurement name”, 使能MQTT Notification status, 保存。

4).验证OPC UA 节点数据是否从边缘端的Edgelink摄取到云端的Amazon IoT SiteWise.

点击复制measurements的Notification topic,如下图所示

打开IoT Core 控制台, Test, 订阅上一步复制的measurement的notification topic, 在右框中如果有消息上传, 意味着数据从边缘成功上传到云端。

使用IoT SiteWise Monitor监控资产状态

您可以参考我们的开发人员用户指南,了解如何在IoT SiteWise Monitor中监视关键度量,限于文章篇幅我们将不在此处提供更多详细信息。

使用IoT SiteWise Deadband功能过滤OPC UA数据

在之前部分中,我们为PLC标签设置Edgelink扫描速率,例如1000ms,这意味着无论数据是否有变化,PLC标签都将每隔1000ms发布到IoT SiteWise。为了节省消息传输成本,您可以通过Deadband功能控制OPC UA源接收数据的方式。

对于从Edgelink OPC UA服务器接收的整型和浮点型数据,您可以直接在IoT SiteWise网关控制台中进行配置。

对于Boolean数据,IoT SiteWise Deadband功能现在不适用于过滤Boolean数据。您需要重新配置Edgelink OPC UA服务,取消选中“Discrete as Bool”,保存,再次下载项目。并将IoT SiteWise资产模型DataType从Boolean配置为Integer。此解决方案可以使Edgelink将离散数据转换为整型数,当我们将Deadband的过滤absolute值设置为>0时,Deadband功能就可以生效。

在IoT SiteWise控制台中,导航至Amazon IoT SiteWise Gateway、Gateway-Edgelink,选择Data source Edgelink_OPC_UA, Edit, Advanced Configuration, Property groups, Add new group。如下所示设置,此Deadband设置将过滤掉没有变化的OPC-UA节点,以节省IoT SiteWise的消息传输成本。


从IoT SiteWise Monitor的Dashboard中监测相应节点,可以看到,监控的离散Boolean数据节点只有在变化时才会传输到云端。

总结

在本文中,您学习了如何使用研华的Edgelink连接工业PLC,并将PLC标签转化为标准OPC UA数据,作为Amazon IoT SiteWise的OPC-UA服务器. Amazon IoT SiteWise 从Edgelink的OPC UA服务器获取数据,并以安全、经济、可靠的方式将数据上传到云端,并对工业资产进行建模,可视化展现。

本篇作者

高业坤

AWS专业服务团队IoT架构师。负责基于AWS IoT的解决方案咨询,架构与交付,深度参与过智慧工厂、智慧供热等行业的IoT解决方案的咨询与交付。在智能家居、智慧安防、智能硬件等IoT行业拥有十年以上软件研发管理经验。

杨阳

AWS专业服务团队物联网应用架构师。负责基于AWS IoT的解决方案咨询,架构与交付,深度参与过智慧工厂、智能家居等行业的IoT解决方案的咨询与交付。进入AWS之前在消费电子产品和制造业拥有丰富的物联网项目开发和管理经验。

张守武

AWS专业服务团队物联网顾问。负责基于AWS IoT的解决方案咨询和项目交付,同时负责物联网行业解决方案的开发和推广,在物联网、网络、视频等领域有着广泛的设计和实践经验。