HMI计算机软件模块自动移植规范及方法研究
第一章 绪论1.1 课题背景计算机技术的不断发展使得系统平台的多样性也越来越丰富,如何实现应用程序在不同系统之间相互移植一直是行业的研究热点[1, 2]。人机界面(Human MachineInterface,HMI)作为计算机技术在嵌入式领域的应用,如何实现 HMI 软件模块跨平台自动移植是本课题的重点研究对象。HMI 指的是能够与可编程逻辑控制器、仪器仪表等相连接,通过显示屏实时显示控制信息,通过输入模块输入控制参数,是控制系统和用户之间实现信息交互的媒介,HMI 实现了信息的内部形式与人类可以接收形式之间的转换[3]。通常 HMI 设备通常能够实现控制环境的现实显示、数据文字等输入、简易的逻辑和数值运算[4]等基础性操作。迄今为止 HMI 因其简易明了的操作方式、简洁的运行画面以及完备的功能已经成功在纺织行业、电力行业、市政工程,工业控制等各个领域得到充分应用[5]。从最开始仅能在移动设备上提供简易的数据显示,到现在 HMI 能为控制人员提供实时数据以及可付诸行动的预测,HMI 提供的功能已经越来越完备。现阶段作为实现智能制造的重要工具 HMI 也在工业控制领域得到了极大的认可,相关数据显示到 2021 年我国的HMI 市场规模已经达到了 30 亿美元,据估计到 2021 年市场规模升至 36 亿美元[6]。近年来随着嵌入式系统平台的多样化发展,HMI 的运行平台也在不断的更新变化。由于各个平台环境的差异性,因此 HMI 在不同平台上图形的显示和数据通讯方式等方面有着较大的差异[7],例如在 Windows 平台下对 HMI 界面的显示通过调用Windows 平台提供的 API 将图形界面显示出来,而在 Linux 平台下对于图形界面的显示则是通过 XWindow 的服务器客户端模式来实现[8]。传统的 HMI 开发模式是通过指定的平台开发,同时将开发好的 HMI 下载到指定的嵌入式平台运行。随着嵌入式运行平台的多样性,HMI 平台单一化的运行方式已经不能够满足行业的需求了,平台单一化的运行方式大大降低了 HMI 的平台复用性,当运行平台改变时需要为各个平台分别开发一个对应的底层软件模块,这项工作不仅是冗余的,而且增加了开发人员的工作量。近年来 HMI 的跨平台设计越来越受到了大家的关注[9],通过实现 HMI 底层软件模块跨平台自动移植将极大的推动 HMI 的跨平台移植进程。..........1.2 国内外研究现状组态软件指的是能够通过灵活的组态方式,快速构建工业自动控制环境的通用层次化软件工具。在组态软件出现之前控制人员通过使用复杂的编程语言来实现对 HMI工程的编写,这种方式存在的缺点是开发周期长、可靠性差、以及利用率低等诸多负面问题。组态软件开始于 80 年代中期[10],进入到我国是在 80 年的末期[11],然而在 90年代中期之前组态软件都未在我国得到普及,主要是以下几点原因:(1)当时国内相关技术人员和公司还没能够做到对组态软件的全面认识,并且在项目预算中缺少对这一块的经费预算,亦或是由于对组态软件不够熟悉针对具体的应用项目宁可采取时间跨度长且繁冗的上位机编程开发,也不愿使用组态软件来设计开发。(2)在相当长的时间内,国内相关行业的人员对组态软件的使用意识不强,同时面对价格高昂的组态软件,极少的开发人员和公司愿意购买正版的组态软件产品。(3)在组态软件出现的中后期,我国的工业自动化水平以及大规模信息处理能力还不能够与国际接轨,对组态软件提供的大规模数据采集、监控、处理等需求还未完全成型。近年来随着我国工业控制水平不断的提高,对工业控制系统的研究也不断的深入,在面临大规模且操作复杂的控制系统,相关技术人员逐渐意识到原先通过上位机编程的开发方式,对项目开发来说是既耗时又耗力的。与此同时信息管理系统跟计算机集成制造系统的大规模使用,企业生产、经营以及决策等要求工业现场提供的数据更加的详细和深入,以此改善企业在生产经营中的每个环节。因此从 90 年代中后期开始组态软件在我国的应用越来越普遍[12],接下来我们对目前国内外工业组态软件发展历程进行一个简要的介绍[13]。..........第二章 HMI 自动移植相关技术消息机制、通讯模块、绘图模块作为 HMI 的三大基本模块,是 HMI 实现功能的基础。本章首先对 HMI 的开发模式进行了简洁明了的介绍,接着对这三大基本模块的功能实现和模块组成进行了分析,最后对跨平台移植技术进行了研究分析,为下文的自动移植规则制定和移植算法的设计埋下伏笔。2.1 HMI 概述HMI 是人机界面的简称,HMI 应用覆盖的范围很广,其主要用途是以一种比较直观的方式实现计算机系统跟用户之间信息的交互,现代社会凡是存在人与机器交互的领域都会有人机界面的存在[39]。在现代工业控制领域,HMI 一般是控制人员和控制系统之间进行信息交换的设备,HMI 能够通过直接显示的方式通知控制人员当前环境设备的运行状况,使得整个控制现场的设备运行状况都能够得到监控,同时控制人员也能通过 HMI 实现对下位机的实时控制。通常 HMI 由以下基本功能所组成:(1)控制环境实时数据显示。(2)历史数据的保存和查看。(3)相关报表的得到以及打印。(4)控制人员通过图形接口控制设备的运行。(5)控制环境报警的产生与记录,通过控制人员设置的报警产生条件,当设备境满足报警条件时,HMI 便能够产生相应的报警通知。工业控制领域中能够与 HMI 相连的设备十分丰富诸如 PLC 控制器、变频器、温度控制仪表等工业控制设备[40]。HMI 的工作方式是:控制人员通过输入接口,给与HMI 系统相连接的工业控制设备发送参数以及控制命令,设备在完成相关参数的设置和命令的操作以后将相应的反馈信息返回给 HMI,这些信息将会以控制人员能理解的方式呈现在显示屏上。HMI 的结构组成可以分为硬件部分和软件部分,其中处理器、液晶显示屏、信息输入设备、信息交互设备、信息存储设备等组成了 HMI 的硬件部分,软件部分指的是 PC 端的组态软件,由组态软件完成 HMI 工程的构建,以及诸如报警条件、通讯信息等相关参数的配置。..........2.2 跨平台移植技术跨平台移植能够为应用程序的开发提供很多捷径,假设应用程序能够从一个运行环境不做任何的改变直接移植到另一个环境这将大大的提高应用程序的重复利用率[48, 49],对于应用程序可移植判断的标准是从一个计算机环境移到另一个新的计算机环境产生的代价要远小于在新的环境进行重新开发的代价,那么我们就认为该应用程序是可移植的。可移植并不代表应用程序在两个环境中不做任何改变,而是指应用程序小范围的更改就能满足要求。可移植性也作为判断应用程序质量的一个重要标准,具有好的可移植性的应用程序不但能够延长其生命周期还能够扩大其的应用环境[50]。为了更好的理解应用程序的可移植性,我们将进一步的探讨以下观点:1)应用程序的可移植性是其自身的一种特性与具体的移植环境没有直接关系。2)应用程序的可移植性并不能够和目标环境完全脱离关系,他们之间存在着一种概率联系,目标环境只是其中的一个因素,还有其他复杂的因素。3)应用程序的大小不能成为决定其是否可移植的因素。4)应用程序的可移植性并不是一尘不变的移植,而是在移植的过程中也可以做出合理的变化。应用程序的可移植性从粗细上可以划分为广义的可移植和狭义的可移植[51],广义的可移植指的是应用程序能够在指定的目标环境中进行安装、运行等。狭义的可移植通常可以分为可执行文件的移植和源代码的移植它们分别如图 2.4 和图 2.5 所示。可执行文件移植方式是最全面的,也是应用程序开发人员最能够接受的方式,但由于其对系统的相似性的要求十分高,因此只能在近似的系统平台之间进行移植。源代码可移植利用的是某一种程序语言能够在不同平台环境中进行编译执行,并且应用程序在各个平台间运行的效果是一致的,一般来说源代码能够直接移植的应用程序可以十分方便的在各个平台环境之间进行移植,并且具有较高的适应性、安全协调性以及花费的代价也是最少的,源代码移植是当前主流的移植方式。..........第三章 HMI 软件模块自动移植规则设计.....183.1 自动移植概述........... 183.2 转换规则设计........... 193.3 匹配规则设计........... 203.4 替换规则设计........... 213.5 归一化设计..... 223.6 本章小结......... 24第四章 HMI 软件模块自动移植算法设计.....254.1 数据结构设计........... 254.2 匹配算法设计........... 274.3 规一化算法设计....... 284.4 替换算法设计........... 304.5 本章小结......... 31第五章 HMI 软件模块跨平台自动移植实现...........325.1 HMI 消息模块自动移植实现 ....... 325.2 HMI 通讯模块自动移植实现 ....... 355.3 HMI 绘图模块自动移植实现 ....... 385.4 HMI 自动移植验证 ............. 415.5 本章小结.......... 42第五章 HMI 软件模块跨平台自动移植实现本章首先是分别介绍裸机平台和 MiniGui 中跟三大基本模块关于的硬件抽象层函数和结构体,同时以裸机平台的三大基本软件模块中的库函数为例,根据指定的移植规则结合示例函数得到匹配实例集合,最后结合匹配实例集合跟替换规则,将裸机平台库函数中涉及到的跟硬件抽象层函数关于的句子替换为 MiniGui 中与之对应的程序句子,实现裸机平台 HMI 软件模块向 Linux 的移植。5.1 HMI 消息模块自动移植实现本节首先对实验室自主研发的裸机平台、MiniGui 系统的消息处理函数以及消息变量的成员组成分别进行介绍得到两者间的对应关系,最后以裸机平台的 HandleMsg函数作为消息模块自动移植的例子,利用自动移植规则实现裸机平台向 Linux 移植。嵌入式裸机平台的消息机制符合第一章描述的 HMI 系统的消息机制,同时裸机平台的消息机制是自维护的,既能自主的完成消息的响应和处理。这里我们先对嵌入式裸机平台的相关消息处理函数和数据结构进行介绍,其中消息处理函数如表 5.1 所示。通讯模块是 HMI 与下位机进行数据通讯的桥梁,是整个 HMI 系统中最重要的模块,HMI 失去了通讯模块就是一个静止的画面不存在任何的意义。本文 HMI 跟下位机的通讯方式采用的是串口通讯,串口是计算机中最常见的通讯手段之一,串口通讯具有连接线简洁,通讯方便等诸多优点,因此被广泛的应用到工业控制领域。本节首先分别对裸机平台和 Linux 平台中跟串口通讯关于的函数进行简要介绍,最后以裸机平台通讯模块中库函数 Write_Uart 作为通讯模块跨平台自动移植的函数例子,展示裸机平台通讯模块向 Linux 自动移植的过程。
...........总结HMI 在社会生产的各行各业的起到十分重大的作用,目前虽然存在可以在各个嵌入式系统平台中运行的 HMI,但 HMI 的跨平台技术还不是很成熟稳重。传统平台依赖性的 HMI 开发模式已经不能满足当下系统平台多样化的需求,这使得研究一套通用的跨平台自动移植规显得具有十分重要的理论意义和应用价值,它将为 HMI 跨平台移植做出巨大的贡献。本文在大量阅读国内外关于跨平台文献资料的基础上,对现有的跨平台移植技术做出了分析,并提出了一套 HMI软件模块跨平台自动移植的规则和算法用于实现 HMI软件模块跨平台自动移植,在这个过程中本文主要做了以下的工作:(1)调查分析了当前国内外 HMI 组态软件的发展状况,对 HMI 组态软件的未来发展趋势进行了阐述,同时对跨平台技术进行了调查研究将 HMI 跨平台自动移植概念引入到 HMI 的研究中来(2)总结了当前 HMI 软件模块只能在指定系统平台下运行的缺点,提出了一种具有创新意义的 HMI 软件模块跨平台自动移植规则。(3)根据制定的 HMI 软件模块跨平台自动移植规则,设计实现了 HMI 软件模块跨平台自动移植算法。(4)利用本人所在实验室提供的嵌入式裸机平台的 HMI 软件模块利用转换规则和转换算法向嵌入式 linux 平台的自动移植,验证了移植规则的正确性和移植算法的有效性。HMI 跨平台自动移植规则的提出将极大的提高了 HMI 的平台复用性,同时也为其它具有较强平台依赖性的系统软件跨平台自动移植提供了一个很好的设计思路,很有必要将这种思想和方法向整个计算机跨平移植领域进行推广。..........参考文献(略)