谈谈HMI 的自动化生成技术

这篇具有很好参考价值的文章主要介绍了谈谈HMI 的自动化生成技术。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        人机界面(HMI)是自动化领域不可或缺重要组成部分。尽管人机界面系统的设计看上去并没有太大的技术门槛,但是设计一个HMI系统的工作量是巨大的。如果你没有足够的耐心便完成不了一个通用的HMI系统。构建UI控件库是一个似乎永远完不成的事情,用户永远觉得不够用。另一方面,使用HMI的组态工具构建HMI应用也是一个十分繁琐又容易出错的地方,你需要将大量的数据点与HMI上的UI对应起来。

        网络上一位前辈曾经说过,如果一件事情处理起来十分复杂,多数是底层逻辑不正确。与其痛苦地重复别人的痛苦,不如寻找新的出路。本文我们就来谈谈HMI 自动化生成的可能性以及相关技术。

     什么是HMI 自动化生成技术呢?通俗地讲,就是放弃传统的组态工具和组态方式,直接从工程设计文档生成HMI 的设计描述性文件,下载到HMI 运行时(HMI Runtime)就能够直接运行。

谈谈HMI 的自动化生成技术

        在工程设计文档中增加一些HMI 的信息模型,例如 每个设备的HMI 图形符号,结合工程总体的布局图和其它一些设计文档(例如OPC UA 信息模型),就能够自动地生成HMI 设计文件。

        也许有人会质疑这种方式, 基于图形化的组态设计不是“少代码”的设计方式吗?为什么要通过信息模型的编写HMI ?这样不是增加了敲代码的工作量么? 其实关键还是要看工程设计的效率如何。对于一个大型的控制系统而言,组态的工作量也是巨大的。而且难以实现排错,代码重用和维护时的修改。在笔者看来,使用组态方式来设计工程HMI 并不是唯一的好方法。

    与组态软件相类似,传统的window的界面设计同样采用了基于图形的可视化方式设计,与工业自动化领域的组态方式十分相似,目前转向了基于XAML语言设计方法。同样地,早期网页设计软件同样Adobe Dreamweaver。使用所谓可见即所得的编辑方式,可现在大部分网页设计使用VS Code 编码的方式。工业自动化设计领域中,同样大量地采纳了XML 语言。转换一下思路,也许会产生新的设计方式。

        另一方面,大多数组态工具都是与厂商有关的封闭式工具,并不符合开发自动化的理念。工程文件可以使用AML ,OPC UA 和CAD ,Web技术等开放的技术来实现。

HMI 的基础技术

    HMI 是一个笼统的概念,随着工业可视化需求的增长,人机交互的应用场景也越来越普遍。设备的控制面板,车间看板,控制室的SCADA,大数据显示墙,云端Dashboards,数字孪生,虚拟实现,仿真系统等等, HMI技术的应用几乎无处不在。

        随着可视化技术的迅速发展,HMI 的实现技术和表现形式也呈现多样化。

实现方式

  • 基于PC计算机和windows,通常使用C#和Windows 的WPF技术
  • 基于QT 的嵌入式C/C++ 实现的HMI,主要实现小型的HMI设备,硬件基于嵌入式ARM。
  • 基于android 
  • 基于Web技术

各种显示屏场景

根据不同的应用场景,大致分为:

操作面板(dasboard)

      操作面板是操控机器的人机界面,是传统的机电(开关,指示灯,数显,仪表盘,示波器)面板的虚拟化实现。

过程数据(process data)

控制系统中的变量表,包括实时数据和历史数据。

数据趋势(data trend)

以图形的方式显示变量的趋势曲线图。

  • 实时数据
  • 历史数据

图形库

实现技术不同,图形库的方式也各有不同。

PC/Windows 平台

  • 使用传统的Windows Form  
  • 使用XAML 组件 

Web平台

  • SVG 图形
  • Web Widget
  • VUE 组件

 QT 嵌入式系统

QT Widgets

其它方式

比如过程控制P&ID 中使用dxf 格式。

图形的表现形式

  可以分为 2D图形,3D 图形等等。

HMI 自动化生成的基础

        面对如此多的实现技术和表现形式,要实现HMI自动化并非易事。要实现HMI 自动化生成的目的有两个必要条件

保持简单的图形界面,并实现标准化

   在我前一篇博文中已经讨论了相关问题。采用扁平化设计方式,并且遵循ISA-101 标准的设计指南,技术和理念。标准化能最大程度地实现图形对象的重复使用。而扁平化意味着普通的OT 工程师能够使用普通的作图工具或者CAD 软件来设计HMI 图形,不需要专业的UI 设计师参与完成。

基于信息模型的HMI设计

        在传统的HMI 组态软件中,现场数据是离散化的数据点,几千个数据点要通过组态的方式与可视化组件建立对应关系。这是一件非常辛苦的工作,而且极其容易发生差错。

        数据仅仅是一个浮点数和逻辑值,它们是没有额外的含义,数据不是信息。信息中包含的信息就多了,例如,对于一个温度值而言

  • 名称
  • 单位
  • 正常区间
  • 告警区间

   在传统的HMI设计时,上面的这些信息大多是组态时设置的。当信息模型与HMI 组件能够建立对应的关系后,这些信息能够直接映射到HMI 中。

谈谈HMI 的自动化生成技术

基于信息驱动的HMI 自动生成技术 

 在这里我们研究一个基于web技术实现的HMI 自动生成系统的实现方法。

基本思路

  • 使用SVG 实现HMI图形
  • 每个HMI图形对应一个OPCUA 的对象
  • 每个OPCUA 对象中包含了HMI 图形SVG文件
  • 将控制现场分为若干的区域(zone)

      每个区域内部包含了若干的设备,每个区域对应了一张HMI 页面,因此,每个区域模型中包含了一个布局图。布局图可以使用CAD 工具或者其它作图工具实现,转换成为XML 文档。

  • HMI 运行时是一个OPC UA Client ,可以读取现场设备的OPC UA 信息模型。通过读取设备的信息模型以及SVG图形,区域布局图文档就能够自动生成HMI页面。

HMI 屏幕设计原则

    在HMI屏中避免使用通用的HTML 组件 

在传统的HMI 组态工具中,包含了许多诸如按键,数据输入框,滑杆,表格的组态,其实这些显示构建完全不需要自动化工程师去组态。完全能够使用HTML5自动的完成。 

     现代自动控制系统中每个对象包含的很多参数,例如一个电机就包括了

变量:电流,电压,转速,功率,温度

操作:启动,停止

告警:过流,过压,温度

      这些参数不必要放置在HMI的主界面中,当操作人员需要详细查看时,点击对象图标,在侧边特征边栏呈现出来就可以了。而侧边特征边栏对画面的布局完全可以由HTML5 自动化生成,它们并没有太多个性化需求。这样能够使HMI画面更加有层次感,同时也避免了诸如按键,输入框等UI的组态。文章来源地址https://www.toymoban.com/news/detail-455463.html

到了这里,关于谈谈HMI 的自动化生成技术的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Selenium+python怎么搭建自动化测试框架、执行自动化测试用例、生成自动化测试报告、发送测试报告邮件

    本人在网上查找了很多做自动化的教程和实例,偶然的一个机会接触到了selenium,觉得非常好用。后来就在网上查阅各种selenium的教程,但是网上的东西真的是太多了,以至于很多东西参考完后无法系统的学习和应用。 以下整理的只是书中自动化项目的知识内容,介绍怎么搭

    2024年02月05日
    浏览(67)
  • 模型生成自动化测试用例

    自动产生的测试用例本就应该由程序自动执行,这其实也就是NModel推荐的模式。先回过头来看看文章中制作的模型,模型里面将登录、注销、用户名以及密码等要素都抽象出来了,而NModel是以这些抽象出来的动作(登录、注销)和状态(用户名、密码)为依据,产生测试用例

    2024年02月09日
    浏览(51)
  • AutoDev 1.5.3:精准的自动化测试生成、本地模型强化与流程自动化优化

    去年年初,我们开源 AutoDev 的初衷是: AutoDev 是一款基于 JetBrains IDE 的开源 AI 辅助编程插件。AutoDev 能够与您的需求管理系统(例如 Jira、Trello、Github Issue 等)直接对接。在 IDE 中,您只需简单点击,AutoDev 会根据您的需求自动为您生成代码。您所需做的,仅仅是对生成的代码

    2024年01月16日
    浏览(48)
  • 使用app自动化技术实现自动打卡

    首先,让我们简单了解一下什么是app自动化脚本。在本质上,自动化脚本是一种程序,它可以执行一系列步骤来完成一项任务,而无需人为干预。在app自动化的上下文中,这些任务可能包括数据收集、输入、测试和其他重复性的任务。 以下是一些关于编写app自动化脚本的常见

    2024年02月06日
    浏览(49)
  • Python自动化测试——在线生成接口文档

    目录 前言 API 文档导入生成 在项目详情页点击左侧 API 功能,进入 API 管理页面,直接点击下拉框选择导入 API  自动生成文档 通过使用接口文档工具 Eolink 演示如何自动生成文档 使用 API Factory 产品根据数据库生成 API 文档 结语 接口文档是项目开发中必需的说明文档,接口文

    2024年02月07日
    浏览(58)
  • Python+selenium自动化生成测试报告

    前言 批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的。 unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLTestRunner 一、导入HTMLTestRunner 1.这个模块下载不能通过pip安装了,只能下载后手动导

    2024年02月04日
    浏览(48)
  • API自动化测试【postman生成报告】

    PostMan生成测试报告有两种: 1、控制台的模式 2、HTML的测试报告 使用到一个工具newman Node.js是前端的一个组件,主要可以使用它来开发异步的程序。 一、控制台的模式 1、安装node.js 双击node.js进行安装,安装成功后在控制台输入node -v,检查是否安装成功。 2、安装newman 1)在

    2024年02月06日
    浏览(53)
  • web自动化测试项目自动化测试的技术方案、实施办法和计划安排

    1.1.  文档版本 版本 作者 审批 备注 V1.0 Vincent XXX 1.2.  项目情况 项目名称 XXXXXXXX 项目版本 V2.31 项目经理 XXX 测试经理 Vincent 所属部门 XXXXXXX 1.3. 文档目的 本文档主要用于指导XX项目自动化测试的开展。本文档的主要目的在于提供项目自动化测试的技术方案、实施办法和计划

    2023年04月09日
    浏览(49)
  • GO项目自动化-根据库表字段自动生成API

    一个项目开发离不开数据库的增删改查,API功能也基本围绕着表的CRUD:增加(Create)、读取(Read)、更新(Update)和删除(Delete)。每个表写一个CRUD,方法都差不多,逻辑也非常相似。 那么有没有可能根据表结构直接自动化生成各个表的CRUD呢? 当然可以,前几篇文章已经介绍了gola

    2024年01月15日
    浏览(44)
  • Python 自动化办公:一键批量生成 PPT

    Stata and Python 数据分析 一、导读 在实际工作中,经常需要批量处理Office文件,比如需要制作一个几十页的PPT进行产品介绍时,一页一页地制作不仅麻烦而且格式可能不统一。那么有什么办法可以一键生成PPT呢?Python提供的pptx 包就可以用来自动化处理ppt。 pytho****n-pptx 是一个

    2024年01月17日
    浏览(76)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包