《电子技术应用》
您所在的位置:首页 > 其他 > 设计应用 > 通用竞赛组态平台的设计与实现
通用竞赛组态平台的设计与实现
来源:微型机与应用2011年第9期
张贝克,李晶晶,马 昕,焦迪楠
(北京化工大学 信息学院,北京100029)
摘要: 针对“西门子杯全国大学生控制仿真挑战赛”的发展状况和需求分析,总结出竞赛网站的通用特性和特定的用户需求,设计出竞赛通用的组态软件平台。该平台实现赛区组态和赛区内部流程组态,管理员可根据竞赛具体需求实现动态组态生成大赛网站。利用.NET开发环境以及B/S体系结构实现该平台,并将其首先应用于该大赛的网络实现,进而应用于其他类型的大赛网站。
Abstract:
Key words :

摘  要: 针对“西门子杯全国大学生控制仿真挑战赛”的发展状况和需求分析,总结出竞赛网站的通用特性和特定的用户需求,设计出竞赛通用的组态软件平台。该平台实现赛区组态和赛区内部流程组态,管理员可根据竞赛具体需求实现动态组态生成大赛网站。利用.NET开发环境以及B/S体系结构实现该平台,并将其首先应用于该大赛的网络实现,进而应用于其他类型的大赛网站。
关键词: .NET;组态;B/S体系结构;通用竞赛平台

 “西门子杯全国大学生控制仿真挑战赛”是由教育部高等学校自动化专业教学指导分委员会、中国系统仿真学会、西门子(中国)有限公司工业领域工业自动化与驱动技术集团主办的已被教育部认可的官方赛事,已经成功举办多届。该大赛的发展规模逐步扩大,可变性因素增多,建立一套适合该大赛未来发展的网络化信息管理系统,基于网络实现大赛的开展和大赛过程的管理,不仅为大赛的参与者带来更大便利,并且为大赛的有效快速进行提供重要保障。传统的管理信息系统存在开发周期长、系统专用性强,而通用性、可维护性、可扩展性、可重构性差等缺点[1]。针对这些缺点和不足,受组态软件在工业控制自动化领域已经得到的很好应用所启发,总结出竞赛网站的通用特性和特定的用户需求[2]。本文提出构建一个通用竞赛组态平台,根据实际需要组态生成一个具有针对性的信息管理系统的组态开发模式。
1 组态平台设计与实现
1.1 功能需求

 大赛平台的功能性需求包括实现在线参赛报名、提交参赛作品、专家在线评审、预约设备练习、竞赛管理、参赛管理、新闻发布等功能。功能模块如图1所示。

 为适应大赛发展需求,并考虑大赛的可变因素,将大赛平台的功能模块抽象提取,构建为可定制赛区和内部流程的组态化管理平台。
 该大赛组态化管理有两点要求:(1)赛区需要组态化配置:管理员首次使用该平台时,根据分赛区机制动态定制赛区结构,定义总决赛区和各个级别分赛区,以及各分赛区之间的父子(晋级)关系;(2)各个赛区的内部流程需要组态化配置:管理员建立一个赛区后,需要填充该赛区内部流程以及流程之间的顺序和信息流关系。该平台组态化定制赛区和流程需要考虑两个关键点:一是赛区和流程所需的实体因素,如:资源、人、设备、场地、处理者、开始截止时间等;二是赛区和流程之间的信息流的输入输出关系。有些流程的输入输出需要传递给其他流程或者从其他流程的输出获得,有些流程则不需要信息流输入或输出,功能由模块自身内部处理实现。这样可定制组态实现网站需求,充分体现了该平台的灵活性和复用性。系统组态生成的示例图如图2所示。

 

 

1.2 平台建模与实现
 赛区的基本属性有赛区ID、赛区名称、举办地、起始时间、结束时间、主办方、承办方、流程序列等。组委会管理员组态创建赛区,需要定义赛区的基本属性以及赛区之间的晋级关系,即定义决赛区和分赛区之间的关系。建立赛区过程如图3所示。

 流程组态是本系统的难点。不同的流程所需要的信息及内部操作不同,流程作为竞赛的环节又具有共同特性,这里设计一个流程抽象类CProcess作为所有流程的基类。这个抽象类定义所有流程的共有属性和操作,包括流程名称、处理者、起始时间、结束时间、激活状态、输入、输出等属性以及创建流程、加载流程等功能操作函数。该平台的所有实体流程类都继承CProcess,实现基类操作函数和自身所需的操作。流程类关系如图4所示。

    管理员添加赛区流程时,在系统的流程模板中选择所需流程,定义流程的基本属性,系统根据所选的具体流程实例化该流程,并跳转到该流程的详细信息页面,管理员定义该流程的详细信息以及该流程的输入、输出、前序流程、后续流程等属性。创建流程的序列图如图5所示。

2 数据库设计
 数据库设计时应充分考虑系统的扩展性和灵活性,数据元素程度应尽量细化,以满足各种数据项组合结构。根据需求分析及考虑到需求的进一步发展变化,数据库建立思想如下:
 (1)建立流程模块表tblModule,字段moduleId为主键,字段moduleMark用来区分标志不同流程模块。该数据表存储系统当前已有的流程模块。管理员组合赛区内部流程时,实际是在该表中选择所需要的流程模块。目前该系统可定制的流程模块数据如图6所示。

 (2)数据库中用来存储各个赛区定制流程的数据表为赛区流程表tblDivisionToProcess。该表仅存放流程的基本信息(如流程ID、模块ID、赛区ID、起始结束时间、激活状态等)。针对不同的流程,根据该流程的模块ID,分别将详细信息存入到各个模块的对应表中。该表的moduleId字段与流程模块表tblModule的主键moduleId字段是多对一的关系。赛区流程表定义如表1所示。

 (3)不同流程模块的性质不同,针对系统的各个流程模块建立了对应的详细信息表。例如报名流程模块的对应数据表是tblRegistProcess,该表用来存储各个赛区的报名流程的网申、审核、发布等阶段的详细信息。再例如上传文件流程模块的对应表是上传文件流程详细信息表tblUploadDocumentProcess和上传文件格式表tblUploadDocumentProcessFormat,分别用来定义上传的文件流程的上传、审核阶段的起始结束时间、存储表名称、激活标志等信息和上传文件的可选文件格式信息,上传文件的文件存储表则根据流程ID自动生成。专家评审流程模块、新闻发布流程模块等系统的其他流程模块都设计了各自对应的一个或多个流程模块相关数据表,这里不再详细说明。
 (4)数据库中建立了流程顺序表tblProcessSequence,用来存储各个流程之间的先后顺序以及需要传递的信息流信息,表中设有backProcessId和nextProcessId字段,分别存储有先后顺序关系的流程ID。并且这两个字段都是赛区流程表tblDivisionToProcess的主键processId的外键。与字段processId的关系是一对多的关系。有些流程之间需要信息流的传递,即上一个流程的输出传递给下一个流程作为输入。有些流程之间只有先后顺序,不需要信息流传递,因此,此表中设置了outToInputTable字段,用来存储流程之间存储信息流的表名称。当两个流程仅有先后顺序而不需要信息流传递时,此字段数据可为空。系统流程顺序表如表2所示。

 (5)系统添加流程时涉及到的数据表有一部分是综合流程标志和赛区标志自动建立,另一部分是系统已有数据表。大赛包括一部分数据共享资源,如教师、学生、参赛队、专家、设备、场地等,针对这些共享资源分别建立数据表作为数据库固有表。
 以上数据表的建立思想把数据元素细化,保证了流程组态的灵活性和扩展性。
随着组态化工控软件的大量应用以及显著的优势,基于Web网络的其他商用型组态平台也将成为一种趋势。本文以竞赛网站为出发点,初步建立了能够满足大赛需求的组态平台。该平台还可继续扩展其他流程模块,并将在应用中逐步完善,力求建成一套完善的通用性竞赛组态平台。
参考文献
[1] 李朝辉,邓贵仕,冯强,等.信息管理组态平台的设计与实现[J].计算机工程与应用,2002,38(22):9-11,37.
[2] 任昌荣,孙常宏,尹斌.一种小型组态软件平台的开发与应用[J].计算机时代,2005(8):29-31.
[3] 马国华.监控组态软件及其应用[M].北京:清华大学出版社,2001.
 

此内容为AET网站原创,未经授权禁止转载。