通过OPC UA和Predix Machine 采集生产设备数据

作者:唐翊国,开发者生态资深经理,GE数字集团

23年工作经验,长期在杜邦、欧文斯科宁、庄信万丰等从事制造业信息化工作,规划、实施了大量MES、SAP ERP、LIMS、BPM等项目,积累了丰富的制造业数字化转型经验。

 

如果您还没有Predix试用帐号,请访问

https://supportcentral.ge.com/esurvey/GE_survey/takeSurvey.html?form_id=18446744073709715720

申请。请务必准确提供您的信息,我们会以邮件方式通知您注册结果。

 

如果您使用Windows操作系统,请参考http://blog.csdn.net/predixcn/article/details/53967673系列文章设置您的开发环境。

如果您使用Linux操作系统,请参考http://blog.csdn.net/predixcn/article/details/54093234系列文章设置您的开发环境。

 

感谢袁芳分享了她的学习经验http://blog.csdn.net/predixcn/article/details/70209590

由于Predix是一个连接了设备端到云端(Connecting Edge to Cloud)的工业物联网平台,因此我认为有必要把我去年发表在predix.io的博客

https://www.predix.io/blog/article.html?article_id=2056也分享给国内的开发者,从而帮助大家了解如何使用Predix Machine来采集生产设备数据。

关于Predix Machine,可以参考http://geek.csdn.net/news/detail/138107获得更多信息。

 

注:本文重新调整了我原来英文版的内容。

 

摘要

在本博客中我会逐步地介绍,在智能制造(Brilliant Manufacturing)场景下,如何在Windows操作系统上上传生产设备数据到Predix 时序数据服务中(Time series)。我们会涉及到Predix Machine,OPC UA以及Websocket技术。

应用场景

在流程型制造行业(Process Industry),大量使用PLC(Programmable Logic Controllers,可编程逻辑控制器)和DCS(Distributed Control Systems,分布式控制系统) 来控制生产过程,公用工程(水、电、风等),产品包装线等,生产团队对采集生产数据、监控生产状态、分析生产效率等有强烈的需求。

 

Predix平台通过支持OPC UA协议,可以方便地从PLC/DCS采集数据,再利用云端的时序数据服务(Time series)保存数据,从而为满足生产团队的需求提供了完整的方案。

下图是一个典型的生产场景架构图:不同的PLC系统控制不同的生产工段,通过OPC UA服务器可以采集到这些PLC的数据,再通过Predix Machine把数据上传到Predix 云端。

 

 

准备工作

请参考http://geek.csdn.net/news/detail/137817生成Predix Machine运行包,放入C:\PredixMachine\KepwareOPC。

访问https://www.kepware.com/ 下载和安装Kepware OPC Server试用版。我从2001年就开始使用Kepware OPC Server,它提供了丰富的驱动来支持不同品牌的PLC和协议。安装好Kepware OPC Server,从Windows系统托盘找到配置图标,右击再选择“OPC UA Configuration”

 

 

双击URL,复制并保存字符串“opc.tcp://127.0.0.1:49320”,并设置安全策略(“Security Policies”)选项为“None”


点击“OK”和“Close”就完成了KepwareOPC Server的配置。我们会使用Kepware OPC Server里的测试数据来模拟来自PLC的数据。

 

参考http://blog.csdn.net/predixcn/article/details/70183179创建UAA (User Account and Authentication) 服务。

参考http://blog.csdn.net/predixcn/article/details/70183955创建时序数据(Time Series)服务。

 

配置Predix Machine运行包

下图是一个简单的Predix Machine数据流示意图,


前面我们已经配置好了Kepware OPC UA server,现在就关注在以下的几个步骤:

总计要配置Predix Machine运行包里的5 个文件。

1. 配置com.ge.dspmicro.machineadapter.opcua-0.config文件

在C:\PredixMachine\KepwareOPC\configuration\machine文件夹里找到com.ge.dspmicro.machineadapter.opcua-0.config文件

修改

com.ge.dspmicro.machineadapter.opcua.configFile=""

com.ge.dspmicro.machineadapter.opcua.configFile="configuration/machine/com.ge.dspmicro.machineadapter.opcua-0.xml"

2. 配置com.ge.dspmicro.machineadapter.opcua-0.xml文件

这个文件包含了Kepware OPC UA server里的工艺位号与Predix 时序数据里位号的对应关系。

删除4行“REMOVE THIS LINE”文本,并设置 <ServerUri> 为opc.tcp://127.0.0.1:49320。

配置DataNodes部分,使得整个文件包含以下信息:

<?xml version="1.0"encoding="UTF-8" standalone="yes"?>

<OPCUAMachineAdapterConfig>

   <OPCUAClientConfig>

      <AppName>PredixMachine_OPCUAAdapter</AppName>

<!-- CHANGE The ServerURI -->

      <ServerUri>opc.tcp://127.0.0.1:49320</ServerUri>

      <AppUri>urn:localhost:UA:PredixMachine_OPCUAAdapter</AppUri>

      <ProductUri>urn:ge.com:UA:PredixMachine_OPCUAAdapter</ProductUri>

   </OPCUAClientConfig>

   <DataNodeConfigs>

        <DataNode>

                <Name>CompressionRatio</Name>

                <StringId>2:SimulationExamples.Functions.Sine1</StringId>

         </DataNode>

   </DataNodeConfigs>

   <DataSubscriptionConfigs>

       <DataSubscriptionConfig>

               <Name>OPCUA_Subscription_1</Name>   

               <PublishingInterval>1000</PublishingInterval>()设置采样频率为1秒

                <DataNode>

                       <Name>CompressionRatio</Name>

               </DataNode>

       </DataSubscriptionConfig>

   </DataSubscriptionConfigs>

</OPCUAMachineAdapterConfig>

 

3. 配置com.ge.dspmicro.websocketriver.send-0.config文件

只修改两处

com.ge.dspmicro.websocketriver.send.destination.url="wss://gateway-predix-data-services.run.aws-usw02-pr.ice.predix.io/v1/stream/messages"

com.ge.dspmicro.websocketriver.send.header.zone.value="d8a5d3e8-491b-4bd3-8c23-1f98b14a93da"(这里是您的时序数据的id)

 

4. 配置com.ge.dspmicro.hoover.spillway-0.config文件

只修改一处

com.ge.dspmicro.hoover.spillway.destination="WSSender Service"

确保其和com.ge.dspmicro.websocketriver.send-0.config文件里的

com.ge.dspmicro.websocketriver.send.river.name="WSSender Service"

是一致的就可以了。

 

5. 配置com.ge.dspmicro.predixcloud.identity.config文件

修改三处地方

#

# [Required] Predix Cloud UAA tokenendpoint

#

com.ge.dspmicro.predixcloud.identity.uaa.token.url="https://d1e80d25-b06b-4db9-901e-167d1428baf8.predix-uaa.run.aws-usw02-pr.ice.predix.io/oauth/token"(您的UAA设置)

#

# Predix Cloud UAA client credentials

#

com.ge.dspmicro.predixcloud.identity.uaa.clientid="***"(您的client账号)

com.ge.dspmicro.predixcloud.identity.uaa.clientsecret="***"(您的client密码)

 

现在转到C:\PredixMachine\KepwareOPC\bin

双击运行start_predixmachine.bat ,您应该可以看到类似下面这样的输出界面


特别是最后一行,表示您成功打开了Predix云端的Websocket端口,开始上传数据了。

可以参考http://blog.csdn.net/predixcn/article/details/70183955,使用Predix Tool Kit来验证数据上传成功。

 

在使用中您有任何问题,请访问我们的论坛http://bbs.csdn.net/forums/GEPredix

GE数字集团的技术专家们会在线回答您的问题。

也请访问我们在CSDN的Predix专区http://predix.csdn.net/ 了解更多Predix的内容和相关活动。

 

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读