工控网首页
>

应用设计

>

面向对象的变电站自动化系统控保单元人机界面设计

面向对象的变电站自动化系统控保单元人机界面设计

2009/11/27 10:51:00

       文章论述了变电站自动化系统控保单元人机界面的要求;借鉴Windows应用程序的设计思路,按面向对象的要求构造了以页面为对象的人机界面程序的框架;介绍了页面操作的具体实现方法,并提出了完成控保单元整个人机界面设计还需进一步完成的工作。虽然基于单片机的人机界面程序不可能实现Windows应用程序的核心——消息响应机制,但仍大大提高了界面的友好性和程序的可移植性,显示了面向对象设计方法的优越性。

       近年来,面向对象的程序设计方法(OOP)已成为人们构造程序的事实标准,很多采用OOP方法设计的程序成为程序设计的典范,Windows应用程序就是一例。借鉴Windows应用程序界面设计思想,将面向对象的方法引入控保单元人机界面的设计,使人机交互程序变得清晰简洁,同时大大提高了在不同功用控保单元上的可移植性。

1 变电站自动化系统控保单元人机界面功能分析

1.1 控保单元

1.1.1 控保单元简介

       变电站综合自动化系统已经从早期的集中式单CPU发展到今天的分层分布式多CPU系统。目前变电站综合自动化的发展趋势是将功能强大的微机监控系统与全数字化的微机保护测控技术、高速网络通信技术结合起来,取代传统的RTU,实现无人值班。目前国内变电站综合自动化发展的趋势是将传统上集中在一起的监控 、保护功能分散到各个现场中分布实施。具体来说就是在变电站中按照电气间隔划分单元,每一个独立控保装置(如进线、出线、变压器、母联、电容器等)分别安装各自独立的控保单元。这些分散的控保单元再通过通信网络与监控主机连起来,构成一个有机的整体,从而实现集中管理、分散控制。这种体系结构符合变电站自动化系统的发展趋势,设计规范,调整扩建简单,设备布置整齐,运行维护方便。

1.1.2 控保单元人机界面正面示图

       图1控保单元操作界面图图1所示的某种典型控保单元操作界面可分为4个区域:区域A为液晶显示区;区域B为键盘输入区;区域C为控制命令输入区;区域D为指示灯及扬声器输出区。注意:为了防止误操作,特意将控制命令键同键盘输入区域B分开,单独列为区域C,并且加密码保护。

 

1.2 键盘

       键盘作为控保单元人机交互系统的主要组成部分,担负着传递用户命令至控保单元的任务。按人机交互系统对其不同的响应过程可将按键分为以下5类:

(1) 数字键+小数点键+回退键
这些键用做单个或连续数字的输入,并由交互系统软件赋予其意义。

(2) 上/下移动选择键
这两个键用做菜单选择、屏幕翻页、选项选定等。

(3) 确认键
此键用做选定操作项,类似于Windows中的[OK]键。

(4) 取消键
用做取消当前操作项或菜单退回到上级目录,类似于Windows中的[CANCEL]键。

(5) 命令键
这些键用做合分闸、远动就地切换、事故复位等重要命令的输入。

1.3 液晶屏幕

       液晶屏幕在控保单元人机交互系统中担负着传递控保单元信息至用户的任务。为了使操作简单方便,液晶屏幕信息的显示采用了分层菜单结构,辅以上/下移动选择键、确认键、取消键就可完成整个菜单的完全检索。菜单结构是建立在“页面”的基础上的,所谓“页面”,指的是液晶上显示的一屏,由两部分组成:静态文本和动态数据。静态文本包括说明性的文字及提示信息等,由汉字和字符组成,在人机交互软件中是用字符串来表示的;动态数据指实时刷新的数值或可由用户修改的信息,在人机交互软件中是用数值变量来表示的,液晶页面根据其组成的不同可分为以下几类:

(1)纯文本页面。如目录,这类页面不包括数据,因此显示时只要刷新一次即可。
(2)文本+实时数据页面。如测量电量显示页面,这类页面由于包含实时刷新的数据,显示时,数据显示部分须不断刷新以保持实时有效,但用户不能通过键盘对数据进行修改等操作。
(3)文本+可修改数据页面。如定值修改页面,这类页面包含的可修改数据可由用户通过键盘的数字键进行改动。
(4)帮助信息页面。如错误操作警告等,这类页面通常由纯文本组成,但与以上3类页面都不同的是页面在显示一段时间后会自动切换到引起该帮助信息的页面。

2 以页面为对象的控保单元人机交互设计

2.1 Windows应用程序界面与控保单元界面相似之处

       Windows应用程序的设计过程是典型的面向对象的设计方法,同时Windows应用程序“窗口”界面与控保单元人机交互界面有很大相似之处:(1)窗口通过消息响应机制响应键盘或鼠标等输入设备的输入信息,而在控保单元的某个页面也是响应键盘的输入;(2)两者都是在一简单的while()循环中响应外部输入的;(3)都用多层嵌套的switchcase语句来决定某一消息对应进行何种操作[2]。由此,自然想到借鉴Windows应用程序的设计思路设计控保单元人机界面。当然,在单片机上设计菜单不同于Windows环境下软件的开发,因为许多Windows内部的消息响应机制以及由Windows封装的数据结构、对象和标准处理函数,在单片机系统中统统不存在[1]。尽管如此,设计控保单元人机界面时仍然可以借鉴大量的Windows程序开发思路。

2.2 控保单元页面

       控保单元的页面与Windows应用程序中的窗口有很多相似之处。首先页面处理的核心也是一个循环机制,它一直运行并响应外部有效按键输入,直到得到切换窗口的键码。这与Windows窗口消息循环机制有很大相似之处;当然,基于单片机的页面按键响应机制不能借用Windows的消息响应机制,而只能每得到一个按键响应就处理一个。一个页面生命周期流程表示如图2:

 


       图2表示的流程实际上也是控保单元人机界面程序的入口程序main()的主体部分,只需在前面加上液晶、通讯模块的初始化及全局变量的初始化就构成了main()程序。流程图中的几个重要模块说明如下:

初始化并显示页面包括以下几个操作:

(1) 调用一清屏函数ClearPage(),清除上次页面的遗留物;

(2) 显示当前页面内容。如前所说,页面由静态文本和动态数据两部分组成,因此这里也分两步显示页面内容:

a.调用DisplayTxt(unsigned char*)函数显示当前页面的静态文本,静态文本在屏幕上是逐行分布的,举例来说,一个256*128点阵的液晶屏幕,显示一个汉字需16*16,英文字符需8*16,因此,整个屏幕可以分成8行,每行可显示16个汉字或32个英文字符。调用8次DisplayTxt函数就可完成页面的静态文本的显示。DisplayTxt函数所带的行参就是指向某一行文本的指针。

b.显示当前页面的动态数据。首先页面应刷新保存在缓冲区内的当前页面的动态数据,此步骤调用Refr eshData(STRUCT*),传递参数是一个指向页面结构的指针。该函数负责从控保单元的数据采集CPU得到实时动态数据,并保存在本地缓冲区以备显示。然后页面调用DisplayData()显示动态数据。

       键盘扫描循环是一无条件的while()循环,它通过键盘扫描函数ScanKeyboard()返回键码并进行相应的操作,直到接收到的按键会导致页面切换为止,这时,根据当前页面的一个指针所指的新页面,程序结束当前页面,转而进入新页面的生命周期。循环中,除了包含键扫描函数ScanKeyboard()外,如果该页面有动态数据,还应包含刷新数据的函数RefreshData(STRUCT*),以保持数据的实时性。

       处理按键是用一个两层嵌套的switch-case语句来实现的。如前面1.2节所述,将按键分为5类,而每一类按键又根据当前页面不同类型分别进行处理。

默认处理一般可设为不响应。

3 页面操作的具体实现

3.1 按键处理

投诉建议

提交

查看更多评论
其他资讯

查看更多

超越传统直觉,MATLAB/Simulink助力重型机械的智能化转型

新大陆自动识别精彩亮相2024华南国际工业博览会

派拓网络被Forrester评为XDR领域领导者

智能工控,存储强基 | 海康威视带来精彩主题演讲

展会|Lubeworks路博流体供料系统精彩亮相AMTS展会