APP下载

基于嵌入式装置液晶屏HMI界面可配置程序

2021-02-18袁登厅

通信电源技术 2021年16期
关键词:控件画图界面

袁登厅

(国电南京自动化股份有限公司,江苏 南京 210003)

0 引 言

当前嵌入式保护装置人机界面(Human Machine Interface,HMI)程序已实现通过可扩展标记语言(Extensible Markup Language,xml)文件解析完成界面显示的第一步,当前装置中界面是根据UI_cfg.xml和UI_databind.xml生成的界面及窗口数据源的绑定,这两个文件目前是根据人工手动输入,需要人工计算界面控件的布局,还需根据数据库内容手动输入需要绑定数据源。

考虑后期的产品应用推广,通过界面可配置程序并通过控件拖拽的方式进行界面布局,支持对控件属性进行修改,同时支持绑定装置数据。为了提升开发效率,使程序支持界面预览功能,实现所见即所得的效果。根据与HMI约束两个xml文件的格式,程序生成装置HMI所需格式的UI_cfg.xml和UI_databind.xml两个文件,将这两个文件放到装置HMI指定的文件路径,HMI程序通过解析这两个文件实现界面显示[1-2]。

1 需求分析

嵌入式保护装置界面所需控件包括窗口、按钮、文本、输入文本框、下拉列表、列表,所有控件支持拖拽、属性修改、关联装置配置点、保存、读取;支持装置配置表(db文件)导入,并获取配置表中的所有点;支持界面预览功能;支持生成装置所需格式的UI_cfg.xml和UI_databind.xml两个文件。

1.1 UI_cfg.xml文件分析

UI_cfg.xml文件格式如图1所示,其包含了窗口和列表两个控件,其中xml文件中定义了窗口控件的id(窗体ID)、windowType(窗体类型)、triggerWindow(窗体类型)、pos(窗体左上角坐标)以及size(窗体长度和宽度)等信息,列表控件的rowCount(行数)、colCount(列数)、headerType(表头类型)、HTextAlignment(水平对齐方式)、lineSpace(行间距)等信息。这就要求程序控件支持这些属性的填写和修改,最终按图1格式生成xml文件。

图1 UI_cfg.xml文件格式

1.2 UI_databind.xml文件分析

UI_databind.xml文件格式如图2所示,该表中窗口id与UI_cfg.xml文件中的窗口id相关联,数据的source和range来源于装置配置数据总表图3中的数据ID和sAddrUI两列,其中source对应装置总表的sAddrUI;range对应装置总表的数据ID。

图2 databind.xml文件格式

图3 装置数据总表

2 程序设计

针对以上的需求分析,设计一款模型大概是在Qt Designer的基础上、支持建立控件与界面的关联、支持数据库文件的导入和绑定、支持装置定义UI_cfg.xml文件和数据关联UI_databind.xml文件的生成,如图4所示。

图4 界面可配置主界面

界面配置程序设计主要包括项目管理模块(项目工程文件新建保存读取模块、项目装置db文件导入模块)、画图模块(窗口模块、控件模块、属性模块)、实时运行模块以及生成xml文件模块等几个模块[3]。

2.1 项目管理模块设计

该模块用于工程文件的新建、保存以及读取,其中包括布局和修改属性过程中的保存,并且该工程文件与装置所需界面xml类型格式不同,是程序自身的保存格式,不随装置需求变化而变化,这样设计易于拓展其中的装置,项目管理文件采用db格式方式。在图4中可以看出每个项目都有数据库和画图两个模块,其中数据库是指装置的配置表,通过该选项导入装置数据配置表,该表用于画图关联点,画图模块中针对不同类型的控件将其存入对应的控件数据库表中,如图5所示。

图5 项目文件数据库

2.2 画图模块设计

该模块用于控件布局及点位关联,是整个软件的核心。通过如图6所示的画图界面可以看出,该模块由画图页面、控件列表、属性编辑、元素对象以及画板5个板块组成。

图6 画图界面

画图页面管理该项目所有的窗口,并支持窗口保存、移除、新建等功能。窗口属性按照装置要求进行设计,在该模块中可直观地看出该项目所有的页面。控件列表中所有的控件都是根据装置所需开发的自定义Qt控件,其属性按照装置要求进行设计,并支持拖拽、点位关联以及删除等功能。属性编辑功能支持编辑窗口及所有控件的属性。元素对象是将该窗口所有的控件对象列出来。画板是窗口和控件的布局,其支持控件的拖放、放大缩小、删除、复制以及保存等功能。

2.3 实时运行模块设计

实时运行模块是将该项目所画页面及关联装置点实时运行起来,实现所见即所得。为方便调试和直观检查数据绑定的正确性,无需通过下载文件到装置运行显示,节省开发时间,支持运行效果演示,演示界面支持通过按钮跳转界面,运行效果如图7所示。

图7 实时运行界面

2.4 生成xml模块设计

生成装置自定义XML模块(可拓展其他装置需求定义),将项目工程文件根据装置定义的需求格式生成界面UI_cfg.xml文件与数据关联UI_databind.xml文件。UI_cfg.xml文件格式如图1所示,UI_databind.xml文件如图2所示,其实现原理是通过遍历项目数据库中的窗口,根据每个窗口查找包含的所有控件,安装要求格式生成xml。

其中UI_databind.xml文件格式如下,“id”对应的是UI_cfg.xml中的窗口ID,数据来源“source”对应的是装置db文件中数据总表的表头‘sAddrUI’字段,“range”的格式含义可举例说明,如“[10:1:19]”表示取数据总表“数据ID”第10到第19条数据记录,步长为1,即连续取10-19条记录:“11”表示取数据总表“数据ID”为11的数据记录。

3 程序运行结果

将程序生成的UI_cfg.xml文件和UI_databind.xml文件下载到装置的指定文件夹,启动HMI程序,通过解析这两个xml文件将窗口信息发送给装置的液晶屏,此时液晶屏即可显示程序所画的界面[4,5]。

4 结 论

随着智能变电站的迅速推广,应用需求越来越多。该软件的意义在于能够应对不同的装置和不同应用的需求。在不改变代码的情况下,通过配置文件与装置交互,极大提高了开发效率。该程序已实现基本功能,后期还要在使用中积累经验进行升级完善。

猜你喜欢

控件画图界面
基于C++Builder 的电子邮件接收程序设计*
不同截面类型钢管RPC界面粘结性能对比研究
使用“填表单”微信小程序 统计信息很方便
微重力下两相控温型储液器内气液界面仿真分析
怎样画图
基于.net的用户定义验证控件的应用分析
画图比多少
国企党委前置研究的“四个界面”
画图理解“同样多”
画图理解“多多少”