Wolfram SystemModeler 和 OPC UA 的通信机制示例

█ 本文译自 SystemModeler (MathCore) 应用工程师 Markus Dahl 的 Wolfram 博客文章:Communication in Industry 4.0 with Wolfram SystemModeler and OPC UA

背景

伴随着工业4.0/网络实体系统的第四次工业革命即将到来,传感器和电路板比以前便宜得多。所有这些组件全部通过网络或云连接,以便能够彼此通话。这正是 OPC 统一架构(OPC UA)的应用所在。OPC UA 是工业自动化的机对机通信协议,其设计目的是成为替换旧的、仅对微软进程交换 COM/DCOM 绑定的 OPC 经典协议(如果您对 Wolfram SystemModeler 的 OPCClassic 库感兴趣,可以在文后找到链接)。

为即将到来的工业4.0时代制定一个通信标准,对于每个新接入的设备都很重要。一个精心设计的协议需要巧妙地照顾到下面所有的因素:

  • 平台独立性
  • 安全性
  • 可扩展性
  • 信息建模

更多信息请访问 OPC 基金会网站(链接见文末)。 如您所见,OPC UA 网络中所有设备之间的安全通信非常重要。广泛使用 OPC UA 的公司包括西门子、SAP、霍尼韦尔和横河电机。

Wolfram SystemModeler 和 OPC UA

虽然 OPC Classic(也称为 OPC 数据访问)已经在许多行业得到广泛采用,包括从纸张、纸浆到汽车制造的所有行业,但它依赖于传统元素,如可编程逻辑控制器(PLC)和 数据采集与监控系统(SCADA)。

随着物联网的出现和工业4.0时代的到来,这种传统结构正在迅速被更灵活的解决方案所取代。 计算能力正在变得越来越便宜,而具有内置逻辑的智能传感器也不再因为价格而令人望而却步。

由于 OPC UA 跨平台兼容,因此可以在几乎任何设备上运行。这样你就不用担心在研发初期就投入大量财力物力,完全可以使用现有的 IT 基础设施进行原型设计,使用廉价的设备进行试验。 OPC UA 可以在 Raspberry Pi 等设备、甚至在智能手机上进行配置。

在网络和系统中,难免要计算或模拟一些复杂行为,这正是 Wolfram SystemModeler 可以大显身手的地方。为了方便地设置一个可以使用 OPC UA 协议连接到机器的控制系统,Wolfram SystemModeler 既提供简单的集成,同时又可以用作高效实惠的测试平台。

这个示例利用 SystemModeler 的 OPCUA 库创建了一个易于理解的测试模型。 如下图所示,您可以看到一个储罐(左上方),设定了一些输入来控制储罐的流入。储罐模型通过 OPC UA 将其值(当前液位)传达到 OPC UA 服务器。 然后该值又从服务器被读取,并作为输入馈送到改变第二个储罐液位的控制回路(右下)。

我们在这个模型中创建了一个完整的系统,即在这个测试模型中没有连接任何硬件,并且可以通过 OPC UA 协议进行通信,并测试控制系统及其对系统的响应。

万事俱备,现在我们可以连接硬件,并实时运行这个模型,与现实世界的储罐进行通信了。 我们只需要对模型稍作修改,用通过 OPC 服务器连接到真实储罐的元件替换储罐模型,并将储罐的测量值用作 SystemModeler 模型的输入。 模型看起来像这样:

使用 SystemModeler 连接到您的 OPC 系统实际上就是这么简单! 在没有储罐的系统中,我们通过对与传感器(用来测量实际容器的值)相连的节点 "tank1" 和 "tank2" 进行读取操作,从 OPC 服务器获得测量值。 以同样的方式,通过向节点 “tank2” 上的 OPC 服务器写入一个信号,我们可以设置储罐2所需的流量。然后,写入此值的节点再连接到相应调整的阀。

拥有了 OPCUA Modelica Library,我们就拥有了通信网络中 Modelica、SystemModeler 和 Mathematica 的全部功能,这意味着所有的分析工具、控制系统和计算能力可以直接集成到 OPC UA 工业系统网络中。

OPC UA 与 SystemModeler 中的其他程序库

想象一下这样一个场景,您想要将 SystemModeler 模拟连接到外部硬件; 例如,如果要将控制信号从OPC UA服务器发送到简单的 Arduino 或 Raspberry Pi,将 OPC UA 与 ModelPlug 库组合起来将会很有意义。ModelPlug 库允许您通过 Firmata 标准连接到 Arduino 板等设备。

让我们应用到一个实例中。 在服务器机房里,我们有一台 Raspberry Pi,可以监控并记录室内温度。Raspberry Pi 上安装了 OPC UA 服务器,允许网络上任何其他 OPC 配置的客户端轮询服务器当前的温度数据。OPCUA 库正是一个这样的客户端。 仅使用两个块,我们可以从传感器获取实时温度到我们的模拟模型。

利用 ModelPlug 库的另外两个模块,我们可以将该数据馈送到 Arduino 板,从而在该板上移动一个促动器。 现在,让我们构建一个非常简单的原型——让 Arduino 上的机载灯根据室温以不同的间隔闪烁。

只需几个模块(且没有代码行),我们就创建了一个可以随时运行的逻辑控制系统简单原型,而省却了通常伴随网络编程的诸多苦恼。 灯的闪烁时长恒为0.1秒,但再次闪烁的时间将取决于室温。 如果我们按下播放按钮,我们的 Arduino 将立即开始闪烁:

温度越高,闪烁间隔越短,反之亦然。

这也可以很好地测试将在生产环境中运行的代码和程序,而不会对敏感设备造成危害。 在 Modelica 中,可以将代码和编译的可执行文件导入、连接并用作模型中的块。

结语

当与不同的 Modelica 库(如 ModelPlug 和 OPCUA)配合使用时,Wolfram SystemModeler 可以非常有效地创建系统的虚拟原型,或者使用像 Arduino 或 Raspberry Pi 这样的廉价设备在现实世界中对它们进行测试。 然后,系统的测试代码可以轻松地导出到另一个系统,或直接用于HiL(硬件在环)仿真。


Glossary/References

Industry 4.0 (工业4.0): 是一个德国政府提出的高科技战略计划,与之相应的是中国政府提出的“中国制造2025”。https://en.wikipedia.org/wiki/Industry_4.0 Internet of Things(物联网): https://en.wikipedia.org/wiki/Internet_of_things

http://devices.wolfram.com/ OPC Classic protocol: https://opcfoundation.org/about/opc-technologies/opc-classic/ OPC Foundation: https://opcfoundation.org/about/opc-technologies/opc-ua/ OPC Unified Architecture (OPC UA, OPC 统一架构): https://en.wikipedia.org/wiki/OPC_Unified_Architecture OPCClassic library: https://www.wolfram.com/system-modeler/libraries/opc-classic/ OPCUA library: https://www.wolfram.com/system-modeler/libraries/opc-ua/ Wolfram SystemModeler: http://www.wolfram.com/system-modeler/

原文发布于微信公众号 - WOLFRAM(WolframChina)

原文发表时间:2017-07-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序人生

Service performance 101

最近一个月,我和一小撮不专业的美国银行从业人员就「我是不是清白地像于谦那样」(写石灰吟的于谦,不是有三大爱好的那位)反复拉锯,又赶上一大波功能上线和融资相关的事...

34214
来自专栏Crossin的编程教室

#夏日编程团#天这么热,没法出去浪,不如趁着宅在空调房里的这两个月,跟我们组团点亮你的编程技能点

最近这天热得不像样子,一非洲游客在天安门广场中暑晕倒……还是选择老老实实窝在房间里吹空调吧。 不过也有些人,学习的热情比气温还高,不写代码就不舒服!(因为会被助...

3417
来自专栏大数据文摘

用Python开源机器人和5美元,我在Instagram上搞到了2500个真粉儿

5015
来自专栏大数据和云计算技术

数据库存储模型简述

数据库现在应该是无人不知,无人不晓,讲到数据库必然要提到两个人: 1、一个是E.F. Codd,这个是理论的开创者,来瞻仰下: ? 埃德加·弗兰克·科德(Ed...

4305
来自专栏大魏分享(微信公众号:david-share)

非网络专业人士再谈SDN--KVM虚拟网络的规划与设计

从Gartner分析报告谈起 根据Gartner的《Gartner2016年度新兴技术成熟度曲线》,目前SDx目前处于期望膨胀期的末期,也标志着此类技术基本已经...

3588
来自专栏SDNLAB

SDN技术分享(十):GoogleFiber的宽带接入速率控制解决方案

本次分(zhuang)享(bi)呢,主要探讨一个新兴SP客户的案例。 G家,这是非传统的SP。我们一起来看一下G家的市场策略以及使用的关键技术. 内容比较多,我...

48613
来自专栏北京马哥教育

2018,用好这几点方法学习Linux一定比别人快

今天是2018年的第一天,在迎来新年喜悦的同时,又即将开始新的一年的奋斗。不知道文章面前的你是怎样计划你的Linux学习的。如今有很多关于Linux的书籍,博客...

4015
来自专栏UML

ArchiMate 图示例:需求建模

ArchiMate是一种图形语言,为模型提供统一的表示,以支持完整的体系结构开发周期。它由一种核心语言组成,旨在描述实际体系结构(业务,信息系统和技术体系结构,...

2334
来自专栏Java社区

这也许是史上最有趣的破解软件合集

3172
来自专栏程序员宝库

5月编程语言榜:C再度暴涨,Scala成功上位!JMC宣布开源;马化腾回应《腾讯没有梦想》是P的;Riot.js 3.9.5发布

TIOBE 刚刚发布了 5 月编程语言排行榜。Scala 经过长时间的沉淀,本月终于进入了 TIOBE 榜单的前 20 名。Scala 是一种 JVM 上运行的...

1563

扫码关注云+社区

领取腾讯云代金券