小飞的世界

°★·°∴☆°广阔的星空中有发生在你我身边的故事∴☆°★·,亦真亦幻。如若这漫长的月夜,无人与你同行,那就让我用微笑来伴你一程......欢迎来到小飞的幻想世界,留下那永恒的瞬间!
组态软件源码,C#源码 csharp源码
作者:止一  发表时间:2010-3-19 13:17:00

软件设计思路

一,概述

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

 

 

 

 

 

 

所属栏目:心情故事  


 
喜欢就顶一下
评论内容(共有{Count}条)


{CommentAuthor}:
{{CommentContent}

--- {CommentTime} | {CommentEmail} {CommentUrl} {CommentIp}


 
 About ME

Name    : Xiaofei
Gender :  Male
Hobby   : Internet,chess,
       fishing,music,reading......
QQ     : 8201655
EMail : iscada@163.com


月夜思绪

在这月儿高挂的夜里

整理着散乱的

与感情有关的思绪

那些生活事业的前尘往事

飘然而至

原以为自己

可以做的云淡风轻

在飘渺的夜风里却发现

那些东西化做无边的落寂

在细柳轻舞的池塘边 舞蹈着

有谁 愿意让心辗转反侧

让影子相陪 举杯 饮尽

杯里 都是 星星的碎片

夜有月梦 心亦有梦

月儿皎洁的光辉 落在

苍白的脸庞 如水的目光

映耀 人世间的离合悲欢

一切的一切

在它的清光里

都不及鱼儿的悠闲 快乐



 友情链接




 最新评论




 访问统计



 日志搜索



 
Designed By xiaofei Powered by 5DBLog
版权所有 Copyright 2008-2088 小飞的世界