SCADA中的模式动画

创建HMI时,通常的任务是构造相关元素的复杂电路的映射。这可以是分支管道计划,电力等。

当然,您可以只显示关键要素(闸阀,断路器),但是回路越大,组成完整的画面并确保操作员的正确操作就越困难。

图片

本文介绍了这些方案的元素的颜色,介绍了Simatic WinCC v7的解决方法及其在Simargl SCADA中的实现。如果您不需要使用WinCC,那么您可以直接看本文的结尾-这里有一个有趣的视频。

为了更直观地说明为什么所有这些都是必要的,我们采用一个简单的方案。

图片

现在想象一下如果有手术会发生什么。跟踪产品通过管道系统的路径需要多长时间?我们用秒表武装自己。

准备?走!
image


根据我的观察,这需要10到15秒。

现在回想一下,(突然)操作可以同时进行多次。这“稍微”使任务复杂化。准备再次测试自己了吗?

走!
image


我同事的话翻译成一种体面的语言:“这是一个机会!当您跟踪第二条路线时,您会非常忘记第一条路线。多么美妙而便捷的计划!

但是该方案确实非常简单-甚至没有仪器的读数和各种签名(向粉丝们绘制“三维”管子表示特别的问候)。实际上,情况可能更糟。我遇到了更大的计划(超过400个阀门)。

操作员可以在这种模拟下做什么?在最佳情况下,请缓慢打开沿途的闸阀,并希望他没有记错。但是,如果需要快速进行切换并且错误的代价很高,该怎么办?

解决这种情况的方法很明显-必须对路径上的线进行着色,建议在控制操作之前进行着色。奇怪的是,即使使用昂贵的SCADA封装,我也没有看到现成的解决方案。手动为每条线着色的尝试可能会使设置几乎延迟到无限远。

WinCC v7解决方案


我基于WinCC v7解决了这样的问题。不幸的是,根据合同条款,我无权提出现成的解决方案,但我可以描述一个可能的解决方案。突然有人会有所帮助。

我将立即指出,这将与WinCC版本7产品系列有关,因为有机会使用VBA。有必要警告,以下描述的所有内容更可能是骇客,是出于绝望而使用的,并不适合所有情况。

我将继续就管道和阀门进行讨论,尽管当然,对于电源方案来说,一切都是相同的。

从精神上将方案分成几部分,以便在每一侧只有一个输入/输出。那些。如果在管道上切出一个出口,则必须分为三个部分:在分支之前,然后是分支本身。
要创建图,您将必须使用两种类型的标准图形对象:
连接器(用于绘制线)和圆(用于创建图的控制点)。连接器是必需的,因为它使您可以确定连接电路中的哪些对象,而不是通常的线。应该在CustomObject中重做标准的Circle-避免对助记符方案的元素进行排序时造成混淆,并为属性指定方便的名称。

控制点的一部分将对应于管道的连接点,而部分-将对应于闸阀。对于后者,我们选择任何未使用的属性并分配一个VBS动作,在此我们创建一个常量,并为其分配一个带有阀门名称的字符串值:

图片

接下来,我们在VBA上编写一个脚本,该脚本将遍历所有屏幕元素,并为每个连接器创建一个间接连接的闩锁列表,使您最终可以为BorderColor属性创建VBS文本。由于Connector具有两个属性-TopConnectedObjectName和BottomConnectedObjectName(在VBA中可用),因此可以实现此目的。

该脚本的结果将如下所示:

图片

D1和D2-带有阀门名称的数组; TubeColor-根据阀门状态返回颜色和线条样式的函数。

重要一点:将VBS脚本写入元素时,还必须更改触发器。

在TubeColor功能中,有必要根据技术情况设置所有着色规则。当然,TubeColor需要在全局脚本中呈现。

然后,由于WinCC几乎无法传送大型助记符图,因此将开始为性能,VBS优化等而奋斗。但是我们必须向西门子的同事表示敬意,如果没有记错的话,VBS的速度已从7.3版开始显着提高,这大大简化了应用项目开发人员的工作。

Simargl SCADA中的实现说明


为了绘制动画方案,Simargl SCADA包含两个小部件:
SPipeScene-用于绘制线条和设置着色规则的场景;
SPipe-指定节点,并显示现场设备状态的变化。

本质上,该过程归结为简单地放置电路的节点,将属性绑定到标签值,以及将小部件放置在显示设备状态的场景顶部。一切看起来像这样:


奇怪的是,创建实际的电路根本不需要编写代码。

您可以从facebook页面的视频中获取Simargl SCADA的演示版,文档和项目源

Source: https://habr.com/ru/post/undefined/


All Articles