当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于QNX实时操作系统的图形控制界面设计

 在计算机控制系统中,采用图形界面对被控对象实施控制具有结构清晰、操作方便、界面友好等优点。但目前工业控制等领域采用的图形控制界面开发平台多为通用的组态软件,这种图形控制软件依赖Windows平台运行,稳定性和可靠性不高,在工作环境恶劣、可靠性要求高的系统中应用较少。实时操作系统是专门用于实时控制的一类操作系统,相比于常用的分时操作系统,实时操作系统大多拥有微内核,并且通过对结果返回的时间限制来实现程序运行的可预测性,因此具有较高的稳定性和可靠性。近年来,随着实时操作系统在一些可靠性和实时性要求较高的领域的成功应用,实时操作系统得以快速发展。为适应硬件的发展和用户的需求,各大实时系统开发商都开发出适合该系统的图形控制界面,如VxWorks的WindML和QNX的PhAB。本文在船舶动力装置控制系统设计中,以QNX实时操作系统为基础,研究了图形控制界面设计的特点,设计了系统控制程序。
1 图形界面开发环境
  PhAB(Photon Application Builder)是QNX集成开发环境(QNX Momentics IDE)附带的图形界面编辑器。PhAB承接了QNX微内核和可优化裁减的优点,使用PhAB编写出的系统除用于核心内存保护的微内核和一些必要的核心管理器之外,其他功能都是可选择的。这种设计不仅保证了作为实时系统的高可靠性和实时性,也在很大程度上提高了使用PhAB所开发的图形界面控制系统的应用范围[1]。
  PhAB采用所见即所得的控制界面开发模式,并带有常用控件数据库,在控制界面设计时可以直接在界面编辑区域创建工作控件并进行所需设置,而无需程序编写。
  基于QNX的控制界面和程序设计支持主机——目标机的开发模式,主机用于界面和程序的设计编写,目标机用于运行编译好的程序。主机可以是装有Windows或Linux等常用操作系统的PC,且支持多人同时对同一系统进行开发。本系统的控制界面和程序就是在装有QNX Momentics IDE 4.0.1的Windows XP操作系统的PC上进行设计的。
2  软件设计
  系统软件设计分2个部分:一部分是系统控制界面设计,QNX提供了多种方式对控制界面进行个性化设置,可以在PhAB中创建编辑,也可以使用QNX提供的函数进行编写;另一部分为控制系统程序设计, QNX Momentics IDE支持多种语言对基于QNX的应用程序进行开发,包括Java、C和C++等。
2.1 界面设计
  控制界面部分的设计主要在PhAB中完成。PhAB以类的方式定义每一个控件,共有76个控件类,其中大部分在PhAB中都有相应的图标与之对应,控件的总父类为PtWidget。每个控件类由多个不同的资源(resources)来定义,例如在文本控件(PtText)中,字体的类型、大小、颜色都是该控件的资源。值得注意的是,PhAB中不允许两个控件拥有同一个名字,并且一个控件被创建后,系统将为该控件指定一个由前缀“ABN_”加控件名组成的局部变量名和一个由前缀“ABW_”加控件名组成的指向该控件的指针,当需要调用该控件时,可以直接使用为其分配的局部变量名或指针。
  以资源的方式定义控件类提高了控件编辑的效率。QNX提供了多个函数对控件的资源进行读写操作,常用到的如PtSetResources( )和PtGetRosources( )就是对控件类的单个或多个资源进行读写操作的函数。系统中各种控件状态变化频繁,需要经常对控件的一个或几个资源进行更改,如下所示为系统中使某个阀件标识背景图形变换的程序片段:
  PtArg_t arg[2];                  //定义控件资源的数据结构
  PhImage_t *image;  
  …
                  /*以下是对控件资源的读取和设置*/
  PtSetArg(&arg[1],Pt_ARG_ARM_IMAGE,&image,0);
  PtGetResources(ABW_Button1,1,&arg[1]);
  PtSetArg(&arg[1],Pt_ARG_ARM_IMAGE,image,0);
  PtSetResources(ABW_Button2,1,&arg[1]);
  PtBkgdHandlerProcess();
  …
  在PhAB中,不仅可以将不同的控件组合成一个只具有它们共同属性的组合控件,还可以将个性化的控件类定义为自己的模板,下次需要使用同类型控件时,只需直接调用即可。同时,PhAB还提供了一个叫做类型转换(Change Class)的强大功能。顾名思义,类型转换就是可以任意改变控件所属的类,而控件的类又是控件所有属性的集合。使用此功能不仅可以随意改变控件的类型,还可以方便地制作形状不同的各类控件。如若制作一个特殊形状的按钮控件,只需把控件的形状在绘图软件上画好后导入PhAB中,再使用类型转换的功能将其定义为一个PtButton控件就可以了。
  图1为系统控制界面的截图,图中线条、方框和各种按钮都作为一个或几个控件类而存在,控制面板对系统相关部分进行控制,被控对象的不同状态将以不同的颜色在界面的对应标识上表示。

[!--empirenews.page--]

 

  PhAB为每个控件提供十余种程序调用方式,常用到的有按下调用(Armed)、点击调用(Activated,点击为一个在同一控件上按下然后松开的过程)、热键调用(Hotkey)和鼠标右键按下调用(Menu)等,系统默认它们分别调用Pt_CB_ARM、Pt_CB_ACTIVATE、Pt_CB_HOTKEY和Pt_CB_MENU函数,如果需要调用自定义的函数,可以直接在提供的对话框中输入需调用的函数名和所在文件。当触发的事件是显示一个窗口或对话框时,还可以指定调用是在窗口构建之前还是之后。
2.2 程序设计
  QNX Momentics IDE支持C/C++语言对系统进行设计,并且兼容C++标准模板库(STL),熟练的C/C++程序员可以很快地掌握在QNX Momentics IDE中进行程序编写的技巧。值得一提的是,在QNX集成开发环境下对图形界面控制系统的主程序进行编写并不用直接对main()函数进行编辑,而是将编写的程序挂载到main()函数中,并可以选择程序是在图形界面生成前运行还是之后运行。系统主程序的方框图如图2所示。

  在程序运行时,预处理命令先于生成图形界面部分执行,它与系统初始化及以后的程序不在同一个编写的函数中,但都是main( )函数的一部分。读取并显示状态信号部分程序在执行中会自动检测信号所标识状态是否达到或超过警报值和危险值,当读取到警报值信号时,系统将自动发出报警;存在危险值信号时,系统将按编写的程序自动处理。
  在控制系统运行时,需要同时进行多项运算。如对某个阀发出开阀的控制命令时,系统不仅要显示需更改阀图标的变换(以标识该阀正在进行相关操作),还要进行数据采集、逻辑运算等。若此时某项指标达到警戒值,还要能及时进行相关处理。因此,除了应用中断的方式提高程序运行效率外,还有必要进行多线程编程。
QNX为多线程编程提供了丰富的函数。如线程创建函数pthread_create( )、ThreadCreate_r( )和ThreadCreated( ),线程终止函数pthread_exit( )、ThreadDestroy( )和Thread
Destroy_r( )等。当然,各个函数的使用有差别,以线程创建函数为例,相比于pthread_create( )函数,ThreadCreate_r( )和ThreadCreated( )都是从内核直接创建线程,并且它们的使用方法很相似,ThreadCreate_r( )函数与ThreadCreated( )函数的唯一区别在于创建线程出错时的返回值不同。下面是系统中用pthread_create( )函数创建的一个信号处理线程:


  在多线程程序的编写过程中,需要使用互斥体来保护线程的数据访问,以保证公共数据不被其他线程修改破坏。在QNX中,可以使用函数pthread_mutex_init( )来创建一个互斥体,使用函数pthread_mutex_lock( )和pthread_mutex_unlo
  ck( )来锁住一个互斥体和为一个互斥体解锁。
  本系统运行的硬件平台为一台SBS公司的VP9 6U VME Single Board Computer,一块由Acromag公司生产的AVME9668 VME bus 6U Non-intelligent IP Carrrier Cards和IP408 High Voltage Digital Input/Output信号采集模块,单板机和信号采集卡都插在基于VME64x总线协议的6U标准机箱中运行。长时间的调试运行表明,本文所设计的基于QNX操作系统的图形控制软件运行稳定、可靠,实现了系统功能,达到了既定要求。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都银行集团成立60周年的纪念日。趁着首都银行集团成立60周年与首都银行(中国)在华深耕经营12年的“大日子”,围绕作为外资金融机构对在华战略的构想和业...

关键字: 数字化 BSP 供应链 控制

根据害虫控制公司Orkin最新发布的“美国鼠患最严重的城市”年度调查,芝加哥连续第八年排在第一。报告统计时间从2021年9月1日至2022年8月31日,包括住宅楼和商业地产。纽约上升至第二,洛杉矶第三。每年秋季,老鼠和其...

关键字: 控制

针对财会专业人士的调查显示,大多数组织的财会专业人员都已经迈出了转型步伐,但尚未做好准备满足组织对于未来财会职能的要求,即具备更高的洞察力和预见力 北京2022年10月13日 /美通社/ -- IMA管理会计师协会与德...

关键字: 控制 数字化 MIDDOT BSP

上海2022年10月11日 /美通社/ -- 10月10日,和睦家医疗宣布与泰利福达成战略合作,签约仪式于上海和睦家医院圆满举办,并在线上与多位泌尿外科领域翘楚同步连线召开"微创经尿道前列腺悬扩术(PUL)&q...

关键字: 创始人 CE 微型 控制

上海2022年10月11日 /美通社/ -- 10月10日,明月镜片正式官宣刘昊然成为品牌代言人。一个是中国镜片领导品牌,通过科技创新引领了镜片行业的发展;一个是新生代实力演员,凭借高票房作品赢得了观众的认可。此次双方携...

关键字: PMC 控制 节点 蓝光

国内人才济济,从来不缺学霸,不仅有32门课几乎都满分的学霸,还有发表了27篇SCI论文的学霸,这个80后甚至击败了NASA团队获得了国际大赛冠军。据央视介绍,这个学霸是姜宇,现年38岁,是清华大学航天学院建院80多年来首...

关键字: NASA 航天器 控制 轨道

北京2022年10月11日 /美通社/ -- 近日,软通动力联合亚马逊云科技共同发布了《制造业数据治理白皮书(2022版)》(以下简称"白皮书")。全书基于双方赋能一线制造业企业数字化转型过程的实操践...

关键字: 亚马逊 数字化 供应链 控制

华领医药研发的全球首创新药葡萄糖激酶激活剂华堂宁(多格列艾汀片)已于10月8日获得中国国家药品监督管理局(NMPA)的上市批准。华堂宁获批两个适应症,即单独用药治疗未经药物治疗的2型糖尿病患者,或者在单独使用二甲双胍血糖...

关键字: 控制 血糖

继3月份达成相关协议,拜耳正式完成向国际私募股权公司Cinven出售其环境科学业务。该业务在2021年的销售额约为6亿欧元,其收购价格为26亿美元(26亿欧元)。剥离后的原拜耳环境科学业务成为一家独立公司运营,公司中文名...

关键字: 控制

大连2022年9月30日 /美通社/ -- 近日,国际独立第三方检测、检验和认证机构德国莱茵TUV(简称"TUV莱茵")大连分公司总经理张孝宽受邀出席了由...

关键字: 能源管理 ISO 控制 进程

嵌入式软件

15715 篇文章

关注

发布文章

编辑精选

技术子站

关闭