物联网项目的SCADA可视化[免费图书馆]

有许多物联网SCADA解决方案可满足工厂和其他制造需求。 但是,在某些情况下(很多情况下),您需要开发自己的SCADA系统来满足项目的特定需求。

原始文章-IoT仪表板库:快速可视化SCADA [免费IoT库]

我们经常使用很棒的Qt框架来实现复杂的IoT解决方案。 对于大量的SCADA和类似SCADA的项目,我们遇到了用于开发设备仪表板的快速工具的需求。 这就是我们开发超轻量级非官方Qt库的原因。 该库是开源的,可自定义的,并且可以在MIT许可下免费使用。 我们还共享一小组已开发的小部件。

享受并使用Qt;)

README :此库是为在Qt上开发的桌面,移动和嵌入式项目创建的。 要使用它,您应该了解Qt / C ++和QML。

QSimpleScada简介


让我们向您介绍一个用于IoT项目的漂亮库。 我们创建了QSimpleScada来加速和简化可视化任何数据,因此我们(和您)可以专注于开发摇摆不定的自动化算法。

创建它主要是为了加快并因此降低IoT解决方案成本。

什么是QSimpleScada?


它是一个完全处理与小部件的连接和编辑的库。 使用QSimpleScada,您可以使用鼠标和一些代码轻松创建IoT数据的可视化。 对布局满意后,保存生成的.xml文件,并在项目中使用它。

库是使用Qt / C ++创建的,而基本的小部件是基于C ++的。 有QML的界面,因此您可以在QML上独立创建单个小部件(如创建经典QML UI时一样),然后随时将它们上传到您的应用中。

我为什么需要它?


好吧,如果您是Qt开发人员或公司,并且:

  • 在项目中有严格的截止日期和复杂的数据评估
  • 经常需要对移动/嵌入式/台式机物联网项目进行原型设计
  • 需要用于一站式Qt项目的一站式工具
  • 不想/没有时间/资源从头开始开发仪表板

如果以上都不是关于您的,那么您就不是。

为什么要构建物联网仪表板?


好吧,这听起来有点多余,所以如果您不言自明,请随时跳过本节。 否则,有很多理由可视化您从物联网获得的信息。

它是几乎任何物联网或控制系统的基本HMI(人机界面)组件。 如果您希望用户随时随地查看相关数据,则比文本方法要好得多。 这适用于经典的SCADA和类似SCADA的项目。

例如,在我们的UBreez上,我们使用QSimpleScada可视化空气读数。 自己比较显示。 因此,即使包含许多传感器小部件,看起来也更整洁清晰的是吗?

文字与可视化

使用仪表板,您可以立即突出显示与标准的任何偏离,查明发生故障的位置,跟踪实时位置,查看趋势以及任何其他有价值的信息。 它为用户节省了理解SCADA系统收集的数据的时间,他们可以做出响应并决定如何更快地采取行动。

使用QSimpleScada


以下是将QSimpleScada版本0.9.x集成到项目中的步骤:

步骤1:安装


通过包管理器:

如果要使用Qt构建精明的解决方案,则很可能会使用qpm程序包管理器,因此无需进行进一步的聊天。 如果还没有,请从这里https://www.qpm.io下载

要通过qpm安装,请运行:

qpm install com.indeema.qsimplescada

并添加:

include (../vendor/vendor.pri)

到项目的* .pro文件。

另外,请尝试我们的小部件预设:

qpm install com.indeema.eeiot

来自github:

要克隆存储库,请转到:
https://github.com/IndeemaSoftware/QSimpleScada

要还添加预配置的小部件,请克隆:
https://github.com/IndeemaSoftware/EEIoT

并添加:

 include($$PWD/com/indeema/QSimpleScada/com_indeema_QSimpleScada.pri) 

 include($$PWD/com/indeema/eeiot/com_indeema_eeiot.pri) 

到* .pro文件。

使用二进制发行版:

https://github.com/IndeemaSoftware/QSimpleScada/releases

步骤2:设定


将库下载并安装到项目后:

1.创建一个将在仪表板上显示的新设备。 给它起一个名字和它的IP地址:

 QScadaDeviceInfo *lDeviceInfo = new QScadaDeviceInfo(); 

 lDeviceInfo->setName("Test Device"); 

 lDeviceInfo->setIp(QHostAddress("127.0.0.1")); 

2.创建一个控制器类,该类将处理所有更高版本的设备以及连接到设备的所有板卡:

 QScadaBoardController *</code><code>mController</code><code> = new QScadaBoardController();  mController->appendDevice(lDeviceInfo) 

3.调用initBoardForDeviceIp方法为已附加的设备创建新的板。 如果特定IP上没有任何设备,则不会创建该板。

 mController->initBoardForDeviceIp("127.0.0.1"); 

4.为控制器设置可编辑模式,以启用控制器的创建,移动和调整大小。

 mController->setEditingMode(true); 

如果启用了编辑模式,则模式窗口将以点背景显示:

物联网仪表板生成器

5.在小部件上添加网格布局,然后将控制器添加到该小部件:

QGridLayout * mainLayout = new QGridLayout(ui->centralWidget);

mainLayout->addWidget( mController );

使用小部件

我们还开发了带有一组预配置小部件的EEIoT库。 您可以从https://github.com/IndeemaSoftware/EEIoT下载它,并从头开始尝试。

要使用小部件集合:

使用带有URL的函数调用QML资源,以使控制器知道QML小部件的位置:
QMLConfig::instance.appendQMLPath(:/com/indeema/eeiot/EEIoT/);

单调QMLConfig位于“ qscadaconfig.h”中
在这里,我们将EEIoT用作内部所有小部件的组。 您可以配置1个或多个组。
请注意,如果您在不同位置创建两个具有相同名称的文件夹,则第二个文件夹(稍后创建)将删除第一个文件夹。

您可以从QSimpleScada访问形成QML的所有动态属性(在metaData列表中提到),因此可以快速轻松地创建自己的复杂仪表板。

步骤3:使用


您可以使用我们的简单编辑器来创建您的第一个仪表板https://github.com/IndeemaSoftware/QSimpleScadaSample
然后在没有任何设备和开发板的应用中设置QScadaBoardController并调用:
mController->openProject(QString <file>)
其中<file>是项目文件的完整路径(* .irp)

例如:

 mController->openProject(QString :/com/indeema/eeiot/EEIoT/) 


观看实际的QSimpleScada


访问我们的GitHub个人资料,探索显示QSimpleScada库工作的简单应用程序:

  • 天气应用



这是一个普通的应用程序,可可视化3个小部件的天气相关数据:

  • 温度范围
  • 湿度
  • 压力值

QSimpleScada和EEIoT用于处理仪表板的显示和连接。 我们从Openweathermap API收到的所有天气实时数据。 您可以在https://github.com/IndeemaSoftware/QSimpleScadaSample下载代码

要查看您所在城市的当前读数,请执行以下操作:

输入您的城市,然后输入逗号和国家/地区代码,如下所示:
乌克兰基辅

然后单击发送按钮。

这将更新您所在地区的温度,湿度和压力。

利沃夫天气仪表板

  • 生成器应用



如何使用QSimpleScada的另一个示例是Builder应用程序,它使我们可以创建仪表板并将其保存为* .irp文件。 一个简单的仪表板编辑器,使用QSimpleScada创建带有EEIoT小部件的所需仪表板,并保存仪表板设置以供以后使用。 在示例中,我们创建了上面提到的Weather应用程序中使用的仪表板。

该代码也可以在https://github.com/IndeemaSoftware/QSimpleScadaSample获得

更多适合您的工具


我们发现引入物联网会影响每个行业,并重新定义我们使用技术的方法。 我们已经在工业物联网文章的6个有前途的应用程序中详细讨论了该主题,我们很高兴能够推动第四次工业革命带来的自动化进展。

理解与背景


如果所有项目的规格都定下来,那么发展世界将是乌托邦。 但是,最初的目标和要求越明确,整个团队对它们的理解就越好,那么项目就越精简。 要加深您对物联网项目后的细节和典型陷阱的了解,请阅读:


Spoiler :找到与项目相关的文档的模板,以便您可以交流需求并将其转变为可操作的规范,而无需花费太多精力。

估算成本和时间


全面了解您所需的时间和资源几乎是不可能的。 因此,为了向您全面介绍复杂性(以时间和成本计算),以下是一个特定于物联网的计算器:

物联网解决方案成本计算器

开发工具


共享我们的工具包以更快,更高效地开发IoT项目,我们将我们与Qt和IoT相关的开源项目上载到位于回购标题开头的https://github.com/IndeemaSoftware和Q上。 您还可以在那里找到大量用于React,Android和iOS开发的工具。

Indeema和github

回顾


在Indeema,我们习惯于紧迫的期限和具有挑战性的项目。 而且,由于致力于创建明智的解决方案,我们逐渐意识到:

  • 理解是第一位的。
    很好奇 澄清每个要求,无论您认为有多明显。 确保您了解。 因为您可以设计一个逻辑且可扩展的体系结构,所以可以编写出色的干净代码,但无法传达所需的结果。 细节中包含魔鬼(因此请确保您不忽略任何细节)。
  • 重塑 自行车是徒劳的。
    每个项目都包含独特的挑战,需要开箱即用的思想。 无需从头开始开发所有内容。 怎么了 因为您只需要减少时间,您就必须找到并实施真正具有挑战性的功能,模块和体系结构。
  • 质量 标准
    对您的工作负责。 您致力于创造未来。 如果您是开发人员,请根据规范,最佳实践,常识,项目稳定性等对代码进行测试。 这同样适用于任何其他角色。

感谢您阅读并希望您喜欢这篇文章。 订阅更新,让我们知道您感兴趣的内容。

Source: https://habr.com/ru/post/zh-CN462171/


All Articles