韩 立,尹爱军
(1.中国土地勘测规划院,北京 100035;2.重庆大学机械学院,重庆 400044)
组态软件是近年来在工业自动化领域兴起的一种新型的软件开发技术,开发人员不需要编制具体的指令和代码,只要利用组态软件包中的工具,通过硬件组态(硬件配置)、数据组态、图形图像组态等工作来完成所需应用软件的开发工作,它具有二次开发简便、开发周期短、通用性强、可靠性高等优点[1-3]。
随着微电子技术、计算机技术和通信技术的发展,测控自动化技术也得到了迅速提高。变电站综合测控系统不仅很好地解决了常规变电站二次设备存在的缺陷,而且是对变电站二次设备的一次革命[4-5]。软件测试是软件质量保证的关键元素,并代表了规约、设计和编码的最终评审。
该文以电站为对象,研究了基于组态技术的综合测控软件系统的设计,详细论述了系统中若干关键问题,设计了测控软件的测试模型。
组态技术是伴随着计算机技术的突飞猛进发展起来的。“组态”的概念最早来自英文Configuration,其含义是使用软件工具对计算机及软件的各种资源进行配置(包括进行对象的定义、制作和编辑,并设定其状态特征属性参数),达到使计算机或软件按照预先设置,自动执行特定任务,满足使用者要求的目的[1-3]。
组态软件一般可分为组态系统和运行系统两大部分。运行系统根据组态系统配置好(组态)的相关信息运行软件,从而实现相应的控制运算功能。组态系统根据用户要求配置好整个系统参数。组态系统和运行系统有许多共同部分,可划分为几个子系统,如图形化配置人机接口、控制运算、数据存储和数据通信等。目前组态软件的组态方法主要有四种:组态字法、组态表格法、梯形图法和图表组态法等。
针对组态软件的现状和发展要求,在开发过程中,需引入组件技术,通过复用组件对象,可减少设计中的重复劳动,提高软件的可靠性和开放性。组件化软件开发虽然有许多特色和优势,但要实现这种组件结构,并不是一件简单的事情。目前组件技术的主要标准和规范大致有 OMG的 CORBA、Sun Microsystems的EJB和Microsoft的COM/DCOM三种。因目前大多数组态系统运行于Windows平台下,故在设计和实现组态系统的过程中主要采用COM/DCOM技术。
组态软件发展迅速,呈现出诸多的发展趋势,如跨平台运行、WEB环境下运行、提高硬件支持能力、规范与增强脚本语言、数据通信方式的标准化等。特别是在数据通信标准化方面得到了极大发展,OPC基金会提出了OPC标准,基于OLE/DCOM技术,客户和服务器通过COM接口进行通信,服务器和客户可以由不同的厂商提供。
以电站综合测控系统为对象,设计开发了基于组态技术的测控软件。
变电站综合自动测控系统是利用多台微型计算机和大规模集成电路组成的自动化系统,代替常规的测量和监视仪表、控制屏、中央信号处理系统等。
图1 集中分布式系统结构
从国内外变电站综合自动化系统的发展过程来看,其结构形式有集中式、分布式、分布分散式和全分散式等类型[4]。图1为集中分布式系统结构[5]。
该系统以若干个线程和进程为单位独立地被操作系统调度,而系统中的所有进程和线程都是围绕数据库而运行,基本结构如图2所示。
图2 系统组成结构
规约处理主要管理串行通信接口,及时采集各RTU的遥测、遥信等数据,并向各RTU发送各种信息以及控制命令,完成向上一级调度或其他信息管理系统的数据转发。
网络通信完成主机与各工作站之间实时数据及事件的传送等,通信协议选用标准的TCP/IP,可采用无线传输方式。
历史记录用于检测事件、记录、状态是否需要保存,如果需要,则保存到系统指定的目录下,也可自动定时保存状态信息。
数据库操作及数据库接口完成数据库的生成、录入、在线修改等。包括模拟量数据库、开关量数据库、规约数据库等。
人机界面完成系统的组态操控,包括绘图、数据显示、打印等。系统可采用单机模式或多机网络模式。
系统主要定义了模拟量数据库、状态量数据库、累计量数据库、遥控量数据库等,采用Access数据库引擎[6-7]。
模拟量属性记录结构的C++格式定义为:
其他属性记录的结构这里不再一一列出。
绘图界面模块模仿操作系统画图工具进行设计,然后与综合控制系统的内核功能进行融合。模块支持多层画面的编辑和无级缩放功能,支持位图、矢量图形、矢量字体等,操作简便,可以方便的绘制主接线图、棒图、各种表格等画面[8]。
模块定义了一些基本的图元符号及关键操作,如直线、矩形、圆、填充矩形、填充圆、字符串、圆弧、位图、交流符等。如直线可定义为:
带电母线则可在直线的结构上定义为:
通信模块包括串行口通信处理、网络通信处理、历史数据保存、规约处理、无线遥控通信处理等。用于轮询各个串行口是否有接收数据、处理服务器与工作站之间的网络通信、处理各个RTU(Remote Terminal Unit)对应的各种规约、把实时数据存放到对应的缓冲区中供操作员监控平台模块调用等。
开发工作的前期不可避免地会引入错误,测试的目的就是为了发现和改正错误。理论上,只有将所有可能的情况都测试到,才有可能检查出所有的错误。然而这是不可能的。为此,针对具体的软件,应当对测试进行设计,用尽可能少的投入和费用发现尽可能多的问题和错误。
软件测试的基本方法有黑盒法和白盒法。黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能的情况下,通过测试来检测每个功能是否都能正常使用。白盒测试也称结构测试或逻辑驱动测试,它是在知道它产品内部工作过程的前提下,通过测试来检测产品内部动作是否按照规格说明书的规定正常进行。
对一个测试用例来讲,可以采用多种测试覆盖方法,如语句覆盖、判定覆盖、条件覆盖、路径测试等等。同时,测试软件本身应具有可操作性、可观察性、可控制性、可理解性等特征。
组态系统是一个复杂的基于事件驱动的综合测控系统,该文采用基本的黑盒测试原理设计系统的软件测试模型。
根据图2所示的系统组成,建立了如图3所示的系统正交测试模型。该模型将系统划分为图形系统、数据库系统和通信系统,对应组态软件的图形组态、数据组态和通信组态。各系统独立完成相应部分的测试任务。因系统正交,故各部分之间互不影响。
在这一系统中,数据库子系统存储了相关的规则集及测控信息。其他系统与数据库系统进行交互,根据对应的测控信息提取规则,并分解、解析为该系统层内的执行动作。图形系统可向数据库写入新的规约。通信系统完成测控信息的获取传输及各个子系统与数据库之间的通信。
图3 正交测试模型
一般来讲,对任何一个测试用例,模型首先利用分解系统将其进行正交分解,得到独立的三个正交子测试用例,然后分别送到对应的测试驱动系统进行测试。对每一个子系统,可以根据需要进行细分,建立一个新的三维分解模型。同样,也可以先设计各个子系统的测试例,完成子系统测试后,反向合成为系统层面的测试例。
测试软件中设计了一个随机事件发生器,根据测控系统的应用规则模拟系统运行过程中可能出现的各种随机状态。因此实际测试时,由测试软件系统自动完成测试用例的设计、测试实现等过程。用户也可根据需要自行设计测试例。
随着计算机等信息技术的发展,测控自动化技术得到了迅速提高,极大地提升了工业自动化水平。组态软件技术是近年来在工业自动化领域兴起的一种新型的软件开发技术,具有二次开发简便、开发周期短、通用性强等特点。
该文以电站自动测控为对象,研究了基于组态技术的测控系统的基本组成、数据库、数据结构、图形组态系统等关键问题。采用现代软件测试技术对组态系统的测试进行了研究,建立了正交测试模型。
[1]欧金成,欧世乐,林德杰,等.组态软件的现状与发展[J].工业控制计算机,2002,15(4):58-61.
[2]王亚民,陈 青,刘 畅.组态软件设计与开发[M].西安:西安电子科技大学出版社,2002.
[3]张勇旭,李力雄,康 盛.通用组态软件驱动程序的设计与开发[J].工业控制计算机,2009,22(9):1-6.
[4]朱大新,刘 觉.变电站综合自动化系统的内容及功能要求和配置[J].电力系统自动化,1995,19(10):3-6.
[5]葛芸萍,杨 筝.变电站综合自动化系统 [J].煤炭工程,2008(5):12-13.
[6]漆 婧.组态软件实时数据库系统研究及设计[J].软件导刊,2009,8(9):156-159.
[7]张会彦,周丽虹.新型构件化组态软件中实时数据库设计与实现 [J].计算机应用与软件,2009,26(7):153-174.
[8]葛化敏,汤 沛,赵桉梆.组态软件中图形界面的设计[J].微计算机信息,2008,24(8):92-94.
[9]Roger S,Pressman.软件工程——实践者的研究方法[M].梅 宏,译.北京:机械工业出版社,2002.
[10]马海云.软件可靠性测试中不确定性问题的研究[J].自动化与仪器仪表,2009(5):127-129.
[11]张洪伟,蒋秀峰.测试样例开发研究 [J].微计算机信息,2009,25(10):31-33.