2010/03/19 | 组态软件源码,C#源码 csharp源码
类别(心情故事) | 评论(0) | 阅读(1507) | 发表于 13:17

软件设计思路

一,概述

APMC组态软件采用开发环境和运行环境分离设计方式,由开发环境编辑用户组态画面,编辑完毕可存储成一个工程项目,组态运行环境可载入该工程项目,并连接物理驱动,完成组态运行。在运行过程中,可能会对数据有存储的处理,将数据存入数据库,并通过报表软件,提供用户查询和打印及分析处理的功能。

二,软件详细设计

1,  开发环境

1)  框架设计

本设计采用visual studio风格,设计成视图分割方式,左侧采用工程视图工具视图,右侧为属性视图、动画视图事件视图,最下面为输出视图。

工程视图:管理整个工程的画面编辑、IO驱动、报警和事件设置、数据存储

工具视图:提供组态画面编辑的各种图元,通过鼠标选择图元类型,可在画布上画出各种图形供用户编辑。

属性视图:提供工程,图元属性设置,如颜色,大小,位置,名称,旋转等等的设置

动画视图:提供画面编辑图元的动画属性设置接口,用户可选择设定图元产生动画的变量或条件

事件视图:提供鼠标点击,双击操作的事件接口,可设定鼠标的事件动作,如打开画面,执行程序,设定变量值,和播放声音等。

输出视图:提供相应的输出状态信息

软件中间是文档视图,采用文档tab平铺方式,可通过tab的标签名选择文档画面或驱动变量表,方便用户操作。软件界面图如下:

2)  组态原理设计

按照上面的框架设计,在工程视图中采用树控件作为工程管理树,提供画面编辑、设备驱动、报警和事件设置、实时数据库功能项。通过向其所在组内添加子元素来管理同类属性。如画面编辑,可添加多个画面作为画布,Io驱动里可添加多种多个驱动来作为采集设备的管理。如图,逐项介绍如下:

                       

画面编辑用于画布管理,用户在此建立用户画面,可自由添加或删除画布。画布的名称设计成自动加1方式累加。添加的画布会铺设在软件的中间文档视图窗口,当文档视图增多时,采用TAB风格的平铺方式显示,用户可通过tab标签名方便找到需要的视图。当然用户需要在画布上绘制图元时,可通过工具视图选择工具,并通过鼠标在画布上绘出图元。Tab风格及图元效果图如下。

 

绘制好的图元有3中属性可供用户修改,这些属性视图窗口设置在软件的右侧位置。

基本属性:提供对图元的颜色、位置、大小、可见性,锁定,边缘风格,填充风格,字体,旋转等属性设置。

 

动画属性:提供如颜色、位置、尺寸、可见性,旋转,边缘风格、填充风格等动画效果。可按照y=fx)轨迹自由设定图元运行轨迹或更改图形尺寸,提供灵活的表达式表述方式,用户可以进行基于C#的三角函数算术,逻辑表达式的设定与数学逻辑运算,达到数据转化的目的。变量表达式及支持的函数窗口---变量选择器如图,该处为驱动变量的选择接口,同样也是变量逻辑表达式的编辑窗口,并有检查校验的功能。同时给出了本软件能够实现的表达式和函数全部参数表。方便用户查询和输入。

 

事件属性:可通过鼠标点击、双击进行画面的打开,应用程序的打开,变量值的设定,声音的播放等操作。如图

 

图元组态完成后,当用户保存成工程项目时,将各个画布的图元存储成对应的XML格式文件,便于运行环境加载。

设备驱动:

       设备驱动的目的是设定用户需要组态的设备变量,为图元控件或其他模块提供设备数据源。设备驱动设计成3种方式,有虚拟驱动,OPC驱动和用户驱动。而且驱动是可由用户自主加载的,即用户需要加载什么驱动就添加相应的驱动。

虚拟驱动:

有多种虚拟数据源可选,如sin曲线,x^2曲线,循环变化,闪烁变化等等,初值和终值及变化时间参数可自由设定,可用于仿真图元运动的动画演示。

OPC驱动:

支持1.02.0 和通用OPC服务器数据读写规范。当选中OPC设备时在其属性视图中,可设置该OPC设备的服务器名称和刷新率,同时当该OPC设备建立时,会在组态的文档视图中添加OPC设备变量属性表格,如下图。变量表格有变量名称,变量地址,只读属性和变量描述的表字段。其中,变量名称可由用户自定义,变量地址必须是OPC服务器的变量地址完整名称,只读属性标志该变量是否可读写,而变量描述可以由用户加以注释,方便了解变量的含义。

 

用户驱动:

为了给不同的用户能把自己的设备数据集成到组态软件里,设计了通用的驱动DLL接口,用户按照提供的开源DLL驱动开发自己的设备驱动,就能集成到APMC,解决了小型设备非标准协议的难题。该用户驱动为用户提供自主选择DLL驱动的人机交互接口,如下图。同样,当该设备建立时,也会在文档视图中添加和OPC变量表格视图一样的表格编辑窗口,用户在在窗口编辑,并有删除等功能。

 

报警设置:

该处的设计思路是,组态监控中常常有一些变量需要做报警显示,比如超限报警等,所以在此处设置需要报警的驱动变量,可设置报警表达式,当报警发生时,能自动在报警控件中显示报警。所以设置此项后,用户需要把工具视图中的报警图元控件拖放到画面中。

 

 

事件设置

和报警设置类似,有些变量是需要做相应事件处理的,如当某一变量大于规定值时需要打开某一画面。用户在此处可设置需要产生事件的驱动变量,可通过事件表达式触发,并有触发时执行和消失时执行动作功能。如图。该事件设置和图元事件属性一致,只是触发的条件不同,图元事件是通过鼠标点击产生,而事件设置里的事件是通过程序自动触发的。同时在事件条件里,同样调用变量选择器,完成驱动变量的选择和逻辑表达式的输入及检查等。实现了模块之间和谐的调用与统一。

 

实时数据库:

在组态监控的同时,有些数据需要存储,用户可在此处设置需要存储的驱动数据项,存储方式有多种,如定时,条件和变化存储,如图,数据库属性可设置。

 

 

数据会存储在数据库连接串指定的数据库,该存储的数据可以用ireport报表软件查询和处理。数据库连接串方式提供了用户选择不同数据库的接口选择,扩展了软件灵活性。

至此,APMC组态软件的开发环境设计思路完成,用户编辑的开发环境可最终存储成一个工程项目,这个项目可供开发环境再编辑,同时也可供运行环境加载运行。

2,  运行环境

开发环境编辑后保存的工程,由运行环境可打开运行,首先加载图元和设备驱动,然后按照设备驱动连接具体设备,采集设备数据,并通过事件方式将设备数据在事件响应函数中发布。组态开发环境组态的图元动画或报警、事件、数据存储等,可在该事件中加以处理,完成动画效果显示和相关的数据处理,由于运行环境是只观的,所以可全屏显示,隐藏计算机桌面的菜单项,需要退出时,按qesc键,提示用户是否退出。

       至此,APMC组态软件的运行环境设计思路完成。

3,  报表环境

存储到数据库里的数据,需要给用户一个查询和处理的软件,设计数据库存储格式见“数据库设计视图.DOC,数据分成3种类型,由数据,报警数据,事件数据组成,报表软件可针对数据类型就行查询。查询的结果可导入到excel中处理,或者形成图片,或者形成html文件。对于数据类型的,可统计历史曲线,曲线提供放大,打印等功能,便于相关数据分析。而且还设计数据库连接串的方式接口,用户可输入连接的数据库连接串,可为用户提供选择数据库的接口。

至此,报表设计思路完成。

4,  用户驱动开源DLL设计思路

APMC组态开发环境为用户驱动提供了选择用户驱动的接口,但是用户驱动是需要用户自己完成驱动的,利用C#的反射原理,设计一个开源的dll库,用户可在该开源库上实现自己的驱动,并生成一个DLLAPMC能加载该DLL,实现对用户驱动的加载。当DLL中的用户程序读到的设备数据调用规定的反射接口时,APMC的用户驱动事件就会响应,从而实现从用户DLLAPMC组态软件的数据传递过程,具体方法详见iScadaUserDll开源工程代码里的详细注释。

源码下载:
下载地址:http://efei.5dblog.com
参考地址:http://shop57513653.taobao.com/
联系方式QQ:8201655,EMAIL:iscada@163.com

 

 

 

 

 

 

0

评论Comments