Blog:
Qt for Automation 介绍

2018年3月26日星期一
Qt

QtThe Qt Company 客户博文 
当下工业 4.0 和 IIoT 带来了一系列新的挑战。将会有越来越多的在线设备生成更多的数据,这反过来会导致应用更加的复杂。 整个环境将会以更快的速度发生变化,包括设备状态、基础设施、应用复杂度和开发过程。为了应对这种挑战,设计师针对未来的 IoT 提出了一种新的通用框架设计。

Infrastructure design of future IoT

凭借这种设计,Qt 和 Toradex 活跃于 HMI 和 边缘设备/控制器领域。Qt 的优势诸如跨平台、用户体验、丰富的库文件和工具可以被自由得发挥。

The Qt Company 注意到开发智能设备以及 HMI对扩展性、协作性和性能需求的这些挑战。在工业自动化领域实现的方法不一而足,但是创建一种新的软件能够适合各种尺寸的设备、跨平台并且能够动态更新和维护,这确实是十分关键的。

硬件选型关系重大

不久前,The Qt Company 发布了一系列的文章讨论设备的快速启动。根据应用的使用场景,您必须要考虑启动时间、应用优化、软件栈优化,当然还有硬件的选型。

硬件选型和硬件架构,即使在采用相同的 CPU 也会对最后启动时间产生巨大的影响。在一个简洁、明了的对比测试中,Toradex 的计算机模块的启动时间比对手明显快 19%(294ms)。这种差距来自与 Toradex 模块更快的上电速度以及内核能够更早的访问 eMMC 从而获得更快的启动时间。

Qt 应用的结构是什么?
Software architecture for Qt-based industrial application
基于 Qt 的行业应用软件结构

  • 应用: 基础软件,包括您公司特有的方案 - 控制特殊硬件或者加密您独特算法的库文件
  • UX: 您应用和用户之间的桥梁。由您的团队采用强大的 Qt 框架开发
  • 第三方组件: 软件库、数据库或者协议栈 - 您的应用所依赖的软件,但是并不需要您公司自己开发
  • Qt 运行库: Qt 的 UI 组件,包含大量支持的功能和库文件
  • C++ 运行库: C++ 编译器提供的运行组件和库文件
  • 操作系统: 您硬件的接口。取决于您的需求,这可能是桌面操作系统、Linux 衍生版本或者 RTOS

Qt for Automation 综合多种技术,被设计专门解决众多通用的行业需求。开发人员可以选择所需的自动化协议、虚拟键盘、图表、标签视图、国际化(多语言)、免安装的多客户端访问的远程界面以及配置工具。

除此之外,Qt for Automation 囊括针对一些通用问题的技术 - 在广泛分布网络中安全和可靠地管理目标和设备:

QtMQTT 将远程信息导入到云端

QtMQTT 是一个客户端实例,可以用于开发设备发送数据,以及接收和管理数据的监控方案。QtMQTT 并不专注于代理功能。一个值得提起的要点是,相比与其他方案 QtMQTT 能够完全合规。其支持协议的 3.1 和 3.1.1 等级、QoS 所有等级、认证、SSL 连接和 Last Will。至于安全方面,QtMQTT 通过两种途径实现:在建立连接是使用用户名和密码认证以及使用 SSL/TLS 作为连接通道。这同样十分易于扩展,你可以采用基于 QIODevice 或者 QAbstractSocket 的其他传输方法。这意味着你可以创建自己的传输机制,在建立连接之前发送到 QMqttClient。有一个实例演示如何借助 websockets 使用 MQTT,Qt 为 websockets 提供一个独立的模块。由于不同的收发数据方式,QWebsocket 并不是基于 QAbstractSocket。然而,有很详细的规范关于如何使用 websocket推送 MQTT 数据(以二进制形式发送、必须在一个数据报中等)。因此可以创建一个很简单的类。在 QtMQTT 模块实例中可以找到规范说明。

综上所述,由于 QtMQTT 的小体积、低耗能、紧凑的数据包、高效的单点/多点信息发布,使其成为 IoT 应用的理想选择。最后,QtMQTT 没有外部的依赖关系,您无需顾虑。

Qt World Summit 上 MQTT 介绍:

智能家居变得更加简单

KNX 凭借其编程和安装控制 PC 软件,成为智能家居和建筑协议(https://www.knx.org)的欧洲领导者。KNX 关注大多数雄性勃勃的初创企业,他们制定的标准无所不在,并众多厂商支持。KNX 面临长期的挑战是,难于开发和部署客户端应用。QtKnx 是 Qt 为 Automation 提供一部分库,提供开源和商业部署策略,填补了一些公司为智能建筑提供定制化 UI 的空白。它支持集成不同的功能(例如语言识别)和技术(蓝牙低能耗技术)。

首先,QtKNX 可以被用于开发能够发现 KNX 服务并在服务器端控制和管理安装的 KNX 客户端。在 Qt World Summit 2017 的演示中,Qt 展示了如何使用 KNX 作为控制面板和设备之间的通信协议来控制您家里的电灯。

Qt World Summit 2017 上 QtKNX 演示:

该开发仍在继续,我们很期待后续的新功能!

针对无显示界面的 WebGL Streaming

QtWebGL Streaming 运行在浏览器中对 Qt Quick 应用实现专有、无损的远程连接(非镜像)。当远程应用使用新的平台插件运行时,应用会创建一个轻量级的 web 服务器。当用户连接到应用,在服务器和客户端之间打开一个基于 QWebSocketServer 的 web socket 连接。在远端电脑上运行的应用会将所有 GL 调用串化为二进制数据,并通过 web socket 连接发送。本地浏览器发送事件(鼠标、触摸或者键盘)到远端应用,从而实现用户的操作。甚至支持 6 指的多点触摸功能。

WebGL 并非 Qt for Automation 的专属部分,也适用于 Qt for Device Creation 和应用开发。只是 WebGL 在 Automation 和 IIoT 应用场景中更加突出其有点。

Qt World Summit 2017 上 Qt WebGL Streaming:

Qt for Automation 以及云端集成

Qt 最近发布和微软合作,针对工业自动化领域,简化 Microsoft Azure Cloud Platform 和 Services 集成到工业物联网 IIoT。(https://www1.qt.io/qt-news/qt-company-collaborates-microsoft-simplify-cloud-connectivity-industrial-automation)

Qt 在诸多展会中演示了 Qt 应用可以容易地使用 Microsoft Azure service。通过我们合作伙伴,我们可以在不同的平台上支持 Qt for Automation。其中的一个案例是在日本横滨举办的 Embedded Technology 2017 上, Qt 充电桩 (EVSE) 采用了基于 NXP®/Freescale i.MX 6 SoC 的 Toradex Colibri iMX6 计算机模块 。Qt 为 Toradex 模块提供现成的 Boot2Qt 软件。这就可以使您能够非常容易地上手。使用这种组合,客户可以优化性能以及针对不同的使用类型创建可伸缩的软件。

Qt electric charging station demo
Qt 充电桩 (EVSE) 演示
集成支持 Toradex 模块

Toradex 和 Qt 联手在 Toradex 模块上优化 Qt。这包括例如优化针对没有 3D GPU 的低功耗模块上 2D 渲染性能、1.2秒冷启动时间等。

另一个方面的合作是开发体验。现成的 Boot2Qt 软件适用于大多数 Toradex 模块,您可以使用 Toradex Easy Installer 一键安装 Boot2Qt。

Toradex 的扩展能力能够精确满足您对于性能的要求。模块使用的 SoC 包括 NvidiaNXP 的 i.MX 6、i.MX 7以及新的 i.MX 8。

如何开始

Qt for Automation 在 Qt 5.10 中提供。访问https://www.qt.io/qt-in-automation/ 开始使用。了解如何在 Toradex 模块上使用 Qt 请访问 https://developer.toradex.com/knowledge-base/getting-started-with-qt

作者: Anu Linjamäki, Product Marketing Manager, The Qt Company

评论

Please login to leave a comment!
Have a Question?