作者:唐翊国,开发者生态资深经理,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的内容和相关活动。