
基于fix的监控系统数据分析库的建立.pdf
2页3 2基于F IX的监控系统数据分析库的建立基于F IX 的监控系统数据分析库的建立杨永刚邢建春王高( 解放军理工大学工程兵工程学院, 南京 2 1 0 0 0 7 )摘要介绍了在 V B环境下分别利用O D 日 C技术和F IX的E D A技术访问F IX实时数据库的方法, 在此基拙上, 将读取的实时数据利用D A O技术写入 A c c e s s 数据库, 生成了分析数据库, 从而为数据分析提供数据源关健词: 监控系统, O D B C , A D O技术, D A O技术, E D A技术A b s t r a c tT h is p a p e r in t r o d u c e s t h e m e t h o d s a c c e s s in g F I X r e a l - t im e d a t a b a s e u s in g t h e t e c h n o lo g y o f O D B C a n d E D A in t h e e n v ir o n m e n t o f V B 6 .0 .T h e n t h e r e a l t im e d a t a w ill b e w r itt e n in t o t h e A c c e s s d a t a b a s e b y t h e t e c h n o lo g y o f D A O in o r d e r t o p r o v id e d a t a s o u r c e f o r d a t a a n a ly z in g .K e y w o r d s :S C A D A , O D B C ,A D O , D A O , E D A工控软件F I X是监控系统常用的开发平台, F IX在运行过 程中也生成了历史数据库, 但由于这些数据库存储结构固定, 访 问、 查询方法单一, 难以满足数据分析的需要。
鉴于这种状况, 我 们基于V 日 6 .0 开发了A c c e s s 格式的分析数据库在软件设计 过程中,采用了O D 日 C和F I X的 E D A两种技术实现对 F I X实 时数据库的交互访问, 利用 D A O技术将查询获得的数据写人分析数据库 1 利用A D O对象通过OD B C访问FI X实时数据库( 1 ) i F IX工控软件F IX 是I n t e llu t io n D y n a m ic s自 动化软件产品家族中H M I/ S C A D A的最重要的组件, 它以心O R E为核心, 包括数据采集和 数据管理两个基本功能, 是基于Wi n d o w s N T / 2 0 0 0平台上的功 能强大的自动化监视与控制的软件解决方案F I X用于实现过 程监控, 并在整个企业网络中传递信息它基于M ic r o s o ft 视窗 操作系统, 支持O D B C , V B A , A c t iv e X控件、 A D O, I n t e r n e t 和O P C 等标准软件接口, 具有良好的开放性和兼容性 2 ) A D O对象A D O是微软推出的最新数据访问模型。
相对以前的D A O, R D O而言, A D O解决了访问非关系型数据源的问题, 使用O L E D B这一新技术给应用程序以存储在不同数据源的数据进行统 一访问A D O记录集支持无状态环境和对存储过程的简便访 问, 使得其成为访问S Q L S E R V E R的最佳工具 对O D 日 C的访 问操作采用A D O技术 3 ) O D B C技术O D B C ( O p e n D a t a b a s e C o n n e c t iv it y ) 是微软提出的开放 式数据库互连标准接口,它是建立在各种数据库管理系统底层 驱动程序之上的一个标准层, 对数据库的底层作了封装, 为客户 端应用程序与服务端各种数据库的连接提供了双向通用接口 应用程序可以采用通用的S QL 语言通过 O D B C, 再通过各种数 据库为O D B C所设计的驱动程序,将客户端应用程序发送的 S Q L 语句“ 翻译” 成各种数据库自 身的数据库操作, 同样各种数 据库也可以沿原路将执行结果返回给应用程序,从而完成对数 据的任务请求O D B C的体系结构由应用程序、 O D B C接口、 驱 动程序管理器、 驱动程序和数据源组成。
应用程序通过O D B C接口访问不同数据源中的数据, 负责 执行并调用 O D B C接口来提交 S Q L语句并接收 S Q L的执行 结果, 主要完成以下任务: 请求与数据源链接; 发送 S Q L 请求; 定义存储区和数据格式; 请求结果; 终止与数据源的链接等驱动程序管理器主要为应用程序装人驱动程序, 还执行以下任务: 映射数据源成特定驱动程序的动态链接库; 处理初始化调用; 提 供人口指针; 提供O D B C的参数确认和顺序确认每个驱动程 序是一个动态链接库, 实现O D B C函数调用与数据源交互以节点名为“ F IX ” 的i F IX监控系统为例, i F IX实时数据库的 访问方法是, 利用A D O对象通过执行S Q L 查询语句‘` S E L E C 下 A _ T A G, A _ D E S C, A _ N a m e F R O M F IX ”访问i F IX O D B C实时 数据源( D S N = F IX D y n a m ic s R e a l T im e D a t a ) , 得到测点名、 测点描述、 测点类型信息、 测点总数等信息。
D im c o n A D O A s A D OD B . C o n n e c t io nD im r s A D O A s A D OD B . R e c o r d s e t D im s t r Q u e ry A s S t r in g D im P o in t N a m e , P o in t D e s c ip t io n , P o in t T y p e A s S t r in g s t r Q u e ry=“ S E L E C T A _ T A G, A _ D E S C , A _ N a m e F R O M F IX “ ’ If c o n A D O Is N o t h in g T h e n S e t c o n A D O 二N e w A D OD B . C o n n e c t io n c o n A D O .C o n n e c t io n S t r in g = ” D S N= F IX D y n a m ic s R e a l T im e D a t a ; U l D = s a ; P WD = ;“‘ 设置连接字符c o n A D O . O p e nE n d I f If r s A D O Is N o t h in g T h e nS e t r s A D O =N e w A D OD B . R e c o r d s e tE n d I f r s A D O . C u r s o r T y p e=a d O p e n S t a t ic r s A D O . O p e n s t r Q u e ry, c o n A D O , a d O p e n F o r w a r d O n ly , a d L o c k - R e a cl O n ly , a d C m d T e x t P o in t N a m e = c o n A D O ( O ) ’ 存储测点名 P o in t D e s c ip t io n = c o n A D O ( 1 ) ’ 存储测点描述 P o in t T y p e = c o n A D O ( 2 ) ‘ 存储测点数据类型 2 利用 i F I X的 E D A函数访问i F IX实时数据库简单数据库访问E D A ( E a s y D a t a b a s e . A c c e s s ) 是F IX提 供的访问F IX实时数据库的一种方案。
通过安装 F I X E D A开 发工具包 ( 生成 v d b a . d ll 文件) , E D A提供了多达5 5个A P I 函 数, 利用这些 E D A函数可以方便地对 F IX实时数据库进行读写 操作 以执行对 F IX实时数据库 的写人操作 的 R e a l- T im e Wr it e T a g 函数为例, 其实现方法如下:首先在公共过程 M o d u le . b a s中对v d b a . d l l 的A P I 函数进 行声明, 如: D e c la r e F u n c t io n e d a _ d e f in e -gr o u p 分析数据库主要包括测 点配置信息和各种历史数据供用户查询、 分析处理用 1 ) 实时数据的数据结构为了描述测点实时属性特征,软件设计中自定义了如下数 据类型: T y p e P o in t T a gT a g T y p e A s S t r in g‘ 类型丁 a g N a m e A s S t r in g ‘ 节点名T a g D E S C A s S t r in g’ 测点实际名称即 测点描述T a g E T A G A s V a r ia n t‘ 单位S c a n T im e A s S t r in g‘ 扫描时刻T a g V a lu e A s V a r ia n t ‘ 当 前值O Id V a lu e A s V a r ia n t‘ 前一次报替值O Id T im e A s S t r in g ’ 前一次报替时刻 E n d T y p e在此基础上定义P o in t T a g类型的动态数组C u r e n t V a lu e s ( ) 来存储测点的当前数据, 数组的长度根据测点的数目 确定。
2 ) 软件自动创建A c c e s s 分析数据库分析数据库包含当天表、 历史表、 测点配置信息表、 操作事 件表和报警事件表数据库和相关表都由用户点击命令按钮自 动创建( 必须同时运行 F I X软件) 1 ) 当天表: 名称是“ D a y V a lu e _ “ + n 表的字段名包括时间和 各测点编号, 由于A c c e s s 表的最大字段数是 2 5 5个, 故软件允 许每张当天表最多包含 2 5 1 个字段名,存储 2 5 0个测点的数 据, 当测点数多于2 5 0 个时, 软件自 动创建更多的当天表“ D a y - V a lu e _ n “ ( n > 1 ) 当天表用于记录当 天测点的 数据信息2 ) 历史表: 名称是“ H is t o r y V a lu e _ “ + n 表的字段名包括时 间和各测点编号, 创建方法与当天表相同 历史表存储测点的历 史数据, 用户通过设置更新周期, 可以周期性地将当天表的数据 转移至历史表历史表主要用于数据的分析3 ) 测点配置信息表( S e t l n f o ) : 存储测点信息, 包括测点标 记、 测点名( 描述) 、 测点类型、 测点的累计运行时间。
4 ) 报警信息表( A l a r m I n f o ) : 存储测点值报警信息和报警时 刻, 其中报警信息包括模拟量越限, 数字量的开关转换信息( 设 备的运行或停止) 5 ) 操作事件表( O p e r a t e E v e n t ) : 存储软件的操作事件信息, 如设备巡检的启动事件, 软件的启动与停止事件。
