Mendix一练一动:使用MindSphere Asset Management Connector开发应用实例分享

背景

MindSphere是西门子基于云的物联网操作系统。它连接产品,工厂,系统和机器,企业通过MindSphere强大的连接能力收集来自车间、边缘设备及其他相关系统的数据,并利用这些数据进行展示、分析、预测及开发工业应用程序以提升智能化水平。如果说MindSphere帮助企业架起了工业物联网平台,打通了从底层设备到上层应用的桥梁,那么Mendix则为企业串联业务价值、拓展业务系统及打造更多的工业解决方案提供了更多的可能性。两者相辅相成,是西门子为企业数字化转型提供的最好的战略选项。

MindSphere资产管理用例(Pump Asset Example App)简介

本文的例子PumpAssetExample 是Mendix Marketplace官方提供的MindSphere应用案例,这里例子里使用了 MindSphere Asset Management Connector 并通过Mendix native REST功能调用MindSphere APIs来创建和展示OT设备的时序数据。为了将开发的应用发布到MindSphere,这里还用了以下几个模块:

  1. MindSphere SSO
  2. MindSphere Theme Pack
  3. MindSphere OS Bar Connector

APP上线之后的效果预览:

前提条件及环境准备

  1. 首先你需要在MindSphere developer tenant 上有账号;
  2. 确保账号有如下权限:

mdsp:core:Developer

mdsp:core:StandardUser

mdsp:core:TenantUser

MindSphere中建立设备管理模型

我们要做的这个示例应用需要显示泵(Pump)的信息,因此需要在MindSphere资产管理(Asset Manager)中事先建好设备模型。Pump的aspect需要包含如下属性:

me

Data type

Unit

Motor_Current

DOUBLE

amps

Pressure_In

DOUBLE

psi

Pressure_Out

DOUBLE

psi

可按照如下步骤建设备模型。

1. Aspect

登录MindSphere 进入Asset Manager。

选择Aspect->Create Aspect.

2. Types

选择Types->Create Type. 创建一个BasicAsset,可命名为“Pump” (可忽略截图中的命名)。

3. Assets

Assets->Create Asset.

关于创建Asset的更详细介绍,可以参考官方文档 Asset Manager – System Manual.

在Studio Pro中加载示例应用

在Mendix Studio Pro 打开APP Store.

搜索框中输入关键字MindSphere ,找到名称为:Siemens MindSphere Pump Asset Example的组件。

点击下载。

可以通过这个Sample应用新建一个应用,或者在自己已经建好的空应用中加载。

应用设计

虽说是只是复用Mendix官方提供的应用示例,还是有必要了解一下关键的应用设计步骤,因此下面我们来一起学习一下。

6.1 SSO/单点登录

单点登录的设置要在应用的Settings->Runtime的页签下面配置,应用启动的时候可以进行调用执行。

Single Sign On通过微流MindSphereSingleSignOn.RegisterSingleSignOn实现。

关于Mendix的用户角色与MindSphere用户角色及Scope对应的问题,我们会在部署部分讨论,更多详细信息可参照 User Scopes 。

6.2 Access Token

为了避免Token过期带来连接问题,在所有访问MindSphere的微流的起始位置都会调用“AccessToken”的Action对token进行更新,比如OpenAsset时:

这通过Java Action “MindSphereAccessTokenConnector”来实现。

6.3 Asset Management

 MindSphere Asset Management Connector 默认提供了Asset Management功能,如获取Assets和Asset Types。

6.4 Native REST

Mendix提供了REST能力以便开发者可以调用任何REST API。在这个例子中,我们通过REST call 访问MindSphere的时序数据。比如微流DS_GetTimeSeriesDataFromMindSphere中访问时序数据:

6.5 PUT Time Series

在更新时序数据的时候,由于MindSphere本身通过队列机制来处理request,因此在应用中通过微流ACT_PutTimeSeriesData的REST Call去PUT 时序数据的时候通常不会一次成功(返回204)。所以在微流设计中,采用了Retry机制(子微流DS_GetTimeSeriesDataWithRetry 实现),例如每隔50毫秒GET一次,指导PUT成功为止。

应用部署至MindSphere

部署应用至MindSphere需要完成的步骤包括,参数配置,Push到Cloud Foundry和在MindSphere Launchpad里进行设置。详细的信息官方文档 Siemens MindSphere – deployment有描述,重点参照第四章Configuring the Modules和第五章Deploying Your App,这里会把必要步骤截图讲解。

7.1 应用参数配置

  1. CockpitApplicationName (app的名字)
  2. MindSphereGatewayURL
  3. PublicKeyURL

RegisterSingleSignOn

7.2 部署到Cloud Foundry

选择生成本地版本(Versioned选择No)。

Login到Cloud Foundry

cf login -a https://api.cf.cn1.mindsphere-in.cn –sso

按照提示访问连接生成临时授权码并输入。

Org建好后Target到ORG

cf target -o svcdev

建Space

cf create-space CXLSpace

查看

cf a

查看服务

cf s

准备manifest.yml文件, 主要设置disk_quota_size 和 memory_size (>512M)来确保Mendix应用的运行时环境。如:

详细信息参照Configuring the manifest file.

Push应用的Cloud Foundry:

cf push -p "MSPumpAsset_1.0.0.2.mda" -s cflinuxfs3

[Tips] 我遇到了Staging Fail的问题,Bind Service而后restage.

cf bind-service CXPMCockpit dbcxl

cf restage CXPMCockpit

查看APP信息:

7.3 MindSphere Launchpad 配置

注册应用及调整相关用户权限,使得应用可以在MindSphere Launchpad访问。

设置Scope:

注册完成并设置好权限后,可以通过MindSphere Dashboard访问应用了。

7.4 本地运行并调试应用

本地运行需要额外配置一下参数。

  • CockpitApplicationVersion
  • CredentialsType
  • HostTenant
  • UserTenant

本地运行(Run Locally)还需要生成ClientID和Secret,可以到MindSPhere DeveloperCockpit中生成Credentials。

点击Issue Access生成 Client ID和Secret。

Mendix Studio Pro “Run Locally” 并将相应的Client ID和Secret填入。

提交后APP即可本地运行,可以在Mendix Studio Pro中设置断点进行调试。

参考文档

  1. Use the Siemens MindSphere Pump Asset Example App - Strategic Partners Guide | Mendix Documentation
  2. Siemens MindSphere Pump Asset Example 
  3. Siemens MindSphere
  4. MindSphere Development Considerations

更多信息,请访问以下链接:

Mendix官网:https://www.mendix.com/zh/

Mendix中国论坛:https://forum.mendix.tencent-cloud.com/

Mendix行业解决方案:https://solutions.mendix.com/

Mendix平台指南:https://www.mendix.com/evaluation-guide/

Mendix动画展示:https://www.mendix.com/demos/

谢谢阅读!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值