




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
油库自动化系统上位机软件设计 摘要 本文阐述了油库自动化系统上位机软件的设计和实现,是利用计算机技术 对工艺过程进行集中监视、操作、管理和分散控制。采用面向对象的方法,基 于m f c 的技术,利用可视化的编程环境v is u a lc 十+ 6 0 和m i c r o s o f ta c c e s s 2 0 0 0 数据库,从工业控制上位机软件的特点出发,按照功能分为多个不同的模 块,完成一套适用于油库自动化系统上位机应用软件。设计了系统的监视与控 制界面,并编写了相应的监控程序,使系统具备了对现场过程数据的动态监视 功能、历史数据的保存和查询功能、异常信号的报警功能、现场操作的指导功 能和对生产过程的控制功能等。用户画面采用中文环境,人机界面友好,易于 操作,控制安全可靠,数据存储量大,处理方便,精度高,安装简单并且调试 方便可靠。 关键词:上位机,数据库,模块,面向对象 t h es o f t w a r ed e s i g nf o rt o p p e rc o m p u t e ri no i ls t a t i o n a b s t r a c t t h ep a p e re x p o u n d st h et o p p e rc o m p u t e rs o f t w a r eo fo i ls t a t i o na u t o m a t i o ns y s t e m c o m p u t e rt e c h n i q u ei su s e dt om o n i t o r ,o p e r a t e ,m a n a g ea n dc o n t r 0 1 b a s e do nt h ef e a t u r e s o ft h ei n d u s t r i a lc o n t r o ls o f t w a r e ,t h et o p p e rc o m p u t e ra p p l i c a t i o ns o f t w a r ei sd e s i g n e df o r t h eo i l d e p o t a u t o m a t i o ns y s t e m b yu s i n go b j e c t - o r i e n t e dm e t h o d o l o g y , t h em f c t e c h n o l o g y , t h ev i s u a l i z a t i o np r o g r a m m i n ge n v i r o n m e n ta sv i s u a lc + + 6 0a n dm i c r o s o f t a c c e s s2 0 0 0d a t a b a s e t h em o n i t o ra n dc o n t r o li n t e r f a c ea n dt h ec o r r e s p o n d i n gp r o g r a mi s w o r k e ro u tt oa c c o m p l i s hd i f f e r e n tf u n c t i o n s i ti su s i n gc h i n e s ee n v i r o n m e n tw i t hf r i e n d l y i n t e r f a c e ,a n di se a s yt oo p e r a t e t h es y s t e mh a sl a r g ed a t as t o r a g ea n dh i g ha c c u r a c ya n di s c o n v e n i e n tt od e b u g k e yw o r d s :t o p p e rc o m p u t e rd a t a b a s e ,m o d u l e ,o b j e c to r i e n t e d 图2 1 图2 - 2 图3 1 图3 2 图3 3 图3 - 4 图3 5 图3 6 图4 1 图4 2 图4 3 图4 4 图4 5 图4 6 图4 7 图4 8 图4 9 图4 1 0 图4 1 1 图4 1 2 图4 1 3 图4 1 4 图4 1 5 图4 1 6 图4 一1 7 图4 18 图4 ,1 9 图4 2 0 图4 2 1 图4 2 2 图4 2 3 图4 2 4 图4 2 5 图4 - 2 6 插图清单 发油系统总体结构图8 功能模块框图1 0 各种范式之间关系1 5 各种范式及规范化过程l5 各关系联系1 7 数据处理流程图1 8 完整性约束条件分类1 9 空字段数据库提示1 9 用户登录界面2 5 超级管理员菜单2 5 管理员菜单2 5 操作员菜单2 5 权限设置界面2 6 代号重复提示图片2 6 密码设置界面2 6 购油单位编辑界面2 7 调试参数设置界面2 7 油品种类设置界面2 8 系统设置界面2 8 配比货位查看2 9 发油参数设置界面3 0 货位使用提示信息3 0 货位设置信息查看界面3 1 取消发油界面31 发油控制流程图3 3 线程入口函数流程图3 3 按单据号查询界面3 4 按时间查询界面3 4 按油品查询界面3 4 查询结果界面3 5 折半查找算法流程图3 7 各种排序方法比较3 8 一趟快速排序算法流程圈3 8 1 8 号货位发油界面3 9 图4 2 7 总体发油界面, 图4 2 8 自动化油库系统示意图 4 0 4 l 独创性声明 本人声明所呈交的学位论文是本人在导师指导f 进行的研究工作及取得的研究成果。据我 所知,除了文中特别加以标注和致谢的地方外论文中不包含其他人已经发表或撰写过的研究 成果,也不包含为获得 金壁工、业太堂 或其他教育机构的学位或证书而使用过的材料。 与我一同上作的同志对本研究所做的任何贡献均己在论文中作了明确的说明并表示谫 意。 学位论文作者签名:汪往签字日期:工o 。g 年年月日 学位论文版权使用授权书 本学位论文作者完全了解盒妲兰些鑫堂有关保留、使用学位论文的规定,有 权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借 阅。本人授权佥魍工些盔堂可以将学位论文的全部或部分内容编入有关数据库进 行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名:江住 签字日期:p 年辱月巧日 学位论文作者毕业后去向 工作单位: 通讯地址: 新编沁7 哩每, 淼甓麓日 签字日期: 护6 年牛月日 电话 邮编 致谢 本文是在我的导师温阳东教授的悉心指导下完成的。导师渊博的学识、严谨的治 学、认真的态度使我受益匪浅。研究生期间,导师在学习和生活上给我很多的关怀、 帮助和鼓励,在此学生表示衷心的感谢和深深的敬意。同时感谢研究生期间所有老师 对我学业的指导。 本次论文工作得以顺利完成还要感谢实验室毕锐、何碹、杜宇、姚军、谢毓广、 邓箐、唐黎江、刘卫平、蒋妍妍、储忠、于辉、黎婷婷、彭丽红、黄璐、李洪林等同 学给予我的鼓励和帮助,在此深表谢意。 最后,衷心感谢我的家人,感谢他们对我学习的支持与帮助。 作者:汪佳 2 0 0 6 4 第一章绪论 1 1 油库自动化系统概论 现代的工业控制系统是自动化技术、计算机技术和通信技术等高科技在工 业控制中的综合应用。具有功能综合化;设备、操作、监视微机化( 包括信息 数字化内容) ;功能模块化;运行管理智能化等特征。随着自动化程度的增加, 使得工业控制更加智能化、人性化。 油库自动化系统是将油库的设备( 包括测量仪表、信号系统、自动装置和 远动装置等) 经过功能的组合和优化设计,利用先进的计算机技术、现代电子 技术、通信技术和信号处理技术,实现对油库的全部主要设备的自动监视、测 量、控制和微机保护的功能,以及与调度中心进行通信的功能。 油库自动化系统是一个集中央数据库系统、业务生产控制系统、监控系统、 消防系统、信息管理系统和计算机网络于一体的自动化综合管理系统。它的内 容包括:1 ) 综合运用多种先进的控制技术,实现发油业务的自动完成,并使其 综合指标达到最优:同时在管理人员的监督下,半自动地完成收油作业。2 ) 自 动对收油、储油和发油过程进行计量。3 ) 连续监控油罐区储油的油品质量和性 能参数。4 ) 对现场所有重要设备和仪表进行自诊断,在出现故障时及时报警, 并自动完成必要的处理工作。5 ) 对油品输出、库存、收入、消耗进行计量统计, 并将结果送入数据库中。6 ) 根据用户需求自动打印实时报表,存储历史数据。 7 ) 建立中心数据库,为与油料结算系统交换数据预留接口。8 ) 建立储油库的 信息管理系统,实现公司内部信息共享,为规划决策提供统计分析数据。 油库实现自动化,其优越性可表现为下列几方面:可提高供油服务质量; 可保证油库的安全、可靠运行;可提高供油的效率;可提高油库运行的自动化 水平和油库的管理水平;可减少油库的占地面积,降低投资;可减少维护工作 量。 油库自动化系统即是将油库中的测量仪表、信号系统、自动装置和远动装 置等通过计算机网络和现代通信技术而集成为一体化的系统。目前油库自动化 系统多采用集散型自动化系统结构模式。它是目前国内外自动化最先进而又广 泛使用的结构模式。该系统的实质是利用计算机技术对工艺过程进行集中监视、 操作、管理和分散控制。集散控制系统具有通用性强,系统组态灵活、控制功 能完善、数据处理方便,显示操作集中,人机界面友好,安装简单,调试方便, 运行安全可靠的特点。它改变传统的人工现场控制和监控,通过功能组合和优 化,利用先进的计算机技术和通信技术,实现下位机具体发油,而上位机控制 和监控,充分实现发油和发油过程的实时监控和控制、数据的存储和历史数据 的查询的自动化功能。 1 2 油库控制管理的现状 目前,我国油库控制和管理自动化水平较低。大多数油库的控制管理系统 都采用集中式系统。由一台计算机兼顾发油控制和管理功能。可靠性较低,一 旦计算机出现故障,则影响挺个油库的发油业务。少量的大型油库采用集散控 制系统即d c s 系统( d i s t r i b u t e dc o n t r o ls y s t e m ) 来完成发油控制和油库的管理功能。 d c s 系统的应用有效地提高了油库发油控制和油库管理的自动化水平,但是由于d c s 系统的成本太高,目前国内油库都采用主从式现场总线系统来执行控铡和管理功能。 上位机是一个相对的概念,是相对于下位机来说的,它是指工业控制中位 于较高层次的计算机。上位机直接服务的对象是人,是人可以直接发出操作命 令的计算机,通常是p c ,屏幕上显示各种信号等。一般来说控制者和提供服务 者是上位机,被控制者和被服务者是下位机,它类似于计算机中的服务器和客 户机,又如在一个触摸屏和p l c 的系统中,p l c 是上位机,触摸屏是下位机。 下位机是直接控制设备获取设备状况的计算机,一般是p l c 单片机之类。上位 机发出的命令首先给下位机,下位机再根据此命令解释成相应信号直接控制相 应设备。下位机不时读取设备状态数据( 一般模拟量) ,转化成数字信号反馈给 上位机。上下位机都需要编程都有专门的开发系统。 上位机监控系统界面友好、控制安全可靠、精度高、数据存储量大,已越 来越受用户青睐,在功能应用上也更强大。下位机把现场数据通过通信装置处 理后送入上位机,组成一个监控系统。上位机对数据进行分析、存盘、综合处 理、打印、报警、图形显示、人机对话,并可通过数据传送对下位机进行控制。 在软件的编程过程中,人机界面非常重要,因为它直接与操作员产生信息 交流,友好的人机界面要求能真实再现控制设备的状态以及准确的采集所需参 数的数据,整个人机界面包括主画面、实时数据查看画面、历史数据画面、报 警画面、口令画面、开关状态画面,各画面间可以相互切换。当然也可根据用 户习惯编辑不同的人机界面,具有很好的灵活性。每天生成的数据都存放在当 天的数据库里,要查看数据可以从数据库中提取。 油库发油的上位机系统,就是利用一台工业控制计算机和通信模块组成的 计算机控制系统,取代以往的人员现场监视和现场控制,使得单人可以监控多 个下位机设备,并且可以进行操作控制、安全监视、数据记录、历史查询等功 能。 1 3 面向过程与面向对象技术 1 3 。1 面向过程与面向对象技术介绍 传统的软件设计方法是面向过程的,所谓面向过程的程序设计是用结构化 编程语句来编写程序。它把一个复杂的程序分解成若干个较小的过程,每个过 程都可以单独地设计、修改、调试。其程序流程完全由程序员控制,用户只能 按照程序员设计好的程序处理问题。它是一种自顶向下逐步求精的设计方法, 和单入口单出口的程序结构。面向过程是先分析出解决问题所需要的步骤,然 后用函数把这些步骤一一实现,使用的时候按照步骤依次调用。结构分析与结 构设计技术在现在的应用中表现出了许多明显的缺点,用这种技术开发出的软 件,其稳定性、可修改性和重用性都比较差。 首先,结构分析与结构设计技术的本质是功能的分解,是围绕实现处理功 能的过程来构造系统得。结构化方法强调过程抽象,将现实世界映射为数据流 和加工,加工之间通过数据流进行通信,数据作为被动的实体被主动的操作所 加工,是以过程为中心来构造系统和设计程序的。 然而用户需求的变化大部分是针对加工的,因此这种变化对基于过程的设 计来说是不可能实现的。用这种技术设计出的系统往往是不稳定的,即用户需 求的变化往往造成系统的较大变化,从而需要花费很大代价才能实现这种变化。 结构分析与结构设计技术清楚地定义了目标系统的接口。当系统对外界的 接口发生变化时,结构分析与结构设计技术很难扩充新的接口,这样的系统较 难修改和扩充。 结构化方法从本质上仍是把数据和操作分离,以至在实现阶段,一些具有 潜在可重用价值的软件部分和具体应用环境密不可分。这些原因都使得结构分 析与结构设计技术开发出的软件可重用性较差。 为了克服传统的设计方法的缺点,逐渐创造出了新的软件开发技术,即面 向对象技术。面向对象技术( o o t ) 是一个非常实用而且强有力的软件开发方 法,它具有许多特色,如符合人们通常的思维方式,高度连续性。重用性好, 可维护性好等。面向对象的定义可以是:面向对象= 对象+ 类+ 继承+ 通信。一个 面向对象的程序的每一成分应是对象,计算都是通过新的对象的建立和对象之 间的通信来执行的。 对象是面向对象开发模式的基本成分,是基本运行时的实体,每个对象可 以用一组属性和它可以执行的一组操作来定义,就是封装了数据和操作的程序 块,反应了面向对象的封装的特征。属性一般只能通过执行对象的操作来改变。 操作就是成员函数,也叫方法,描述了对象执行的功能。若通过消息传递,还 可以为其他对象使用。从用户的角度看,对象提供了所需要的行为。 类是一组具有相同数据结构和相同操作的对象的集合,它可以被视为一个 具有类似特性与共同行为的对象的模板,用来产生对象。对象就是类的实例, 可以使用该类的成员函数,对象的状态包含在它的实例变量中。类的实现可使 用能提供它所需要服务的其他类的实例,这些实例应该受到保护不被其他对缘 存取,包括了同一个类所生成的所有其他实例。把一组对象的共同特性加以抽 象并存储在一个类中的能力,是面向对象技术最重要的一点;是否建立了一个 丰富的类库是衡量一个面向对象程序语言成熟与否的重要标志。 继承是使用己经存在的定义作为基础建立起新定义的技术,类之间的继承 关系是现实世界中遗传关系的直接模拟。封装使程序局部化,易修改、好维护, 但许多对象有相同的功能时免不了重复,所以面向对象技术有继承的机制。新 类的定义可以是现存类所声明的数据、定义与新类所增加的声明的组合,可以 沿用现存类的某些特征。新类复用现存类的定义,而不要求修改现存类。现存 类可以看成父类或者基类来引用,新类则相应得作为子类或者派生类引用,可 以具有自己独立的属性和操作。使用继承设计一个新类,可以视为描述一个新 的对象的集合,它是现存类所描述对象集合的一个子集合。继承性是面向对象 的最主要特点,是面向过程所不具备的。 对象之间进行通信的一种构造叫做消息。当一个消息发送给某个对象时, 包含要求接收对象去执行某些活动的信息。消息在一个对象与另一个对象之间 传送,发送给一个对象的消息定义了一个操作和一个参数表,并指定某一个对 象。当一个对象接收到发送给自己的消息时,就会调用消息中指定的操作,并 且将参数表中的值与形式参数结合起来。接收对象对消息的处理可能会改变对 象的状态,即改变接收对象的属性,并发送消息给自己或者另外一个对象。因 此,可以把这种消息的传递大致地看成传统的过程方法中的函数调用。接收到 消息的对象经过解释,然后予以响应。这种通信机制叫做消息的传递,而发送 消息的对象不需要知道接收消息的对象如何对请求予以响应。 对象、类、继承及消息代表了面向对象开发模式,同时面向对象还具有其 他的特点,如多态性。多态性技术主要在结构方面提供了灵活性,多态性有静 态多态性和动态多态性两种。静态多态性表现为成员函数的重载,发生在一个 类的内部;而动态多态性表现为函数的重写,则反映在父类和子类之间。 封装、继承、多态是面向对象程序的主要特征。正是这些特征使程序安全、 可靠、可重用、易维护、易于修改、可合理利用共同性,减少了复杂性,支持 开发人员建立灵活的可扩充的系统。 面向对象相对于面向过程的方法有许多特点:( 1 ) 面向对象是把构成问题 事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述 某个事物在整个解决问题的步骤中的行为。面向对象是以功能来划分问题,而 不是步骤。功能上的统一保证了面向对象设计的可扩展性。( 2 ) 面向对象把问 题域的概念直接映射到对象以及对象间的接口。而传统的方法忽略了数据和操 作之间的内在联系,软件要解决的问题其实都是相互之闻存在一定联系的事物 组成的,每个具体的事物都具有行为和属性两方面特征,所以把表示事物静态 属性的数据结构和描述事物动态行为的操作放在一起构成的整体才可以完整面 自然地表示客观世界中的实体。( 3 ) 面向对象技术从分析到设计再到编码用的 是一致的模型表示,具有高度连续性。( 4 ) 面向对象技术具有的继承性和封装 性支持软件复用,易于扩充,能较好地适应复杂的大系统不断发展和变化的要 求,要复用类,可以直接创建该类的实例,实现复用,还可以从该类派生出满 足新的需要的子类。继承性使得派生类不仅可以重复父类的数据结构和方法, 而且可以在父类基础上修改和扩充,并且不会影响父类的使用。( 5 ) 面向对象 技术把属性和方法封装在“对象”中,当外部功能发生变化时,保持对象结构 的相对稳定,使改动局限于对象内部。类是独立性很强的模块,向类的实例发 送消息就可以运行,并且观察它是否可以正确地完成要求的工作,对类的测试 比较容易实现,发现错误也通常集中在类的内部,容易调试和维护。所以,用 面向对象技术开发的软件,易于扩展、调试和维护。 1 ,3 2 面向对象的程序设计 c + + 就是典型的面向对象的编程语言,v i s u a lc + + 就是w i n d o w s 环境下最 主要的应用开发系统之一,它不仅是c + + 语言的集成开发环境,还与w i n 3 2 紧 密相连,因此,v i s u a lc + + 可以完成各种应用程序开发,从底层的软件到顶层 面向用户的软件。使用v i s u a lc + + 环境开发w i n d o w s 应用程序缩短了开发时间, 且界面友好,易于操作。 在用v i s u a lc + + 开发面向对象应用程序时,可以使用w i n d o w s 提供的 w i n d o w sa p i 函数,也可以直接使用m i c r o s o f t 提供的m f c 类库。a p i 函数可 以实现窗口创建、移动和修改,实现与设备无关的图形操作功能,实现与操作 系统有关的多种功能,但是,利用a p i 函数编程时,大量的代码需要用户自己 编写,编程工作量很大。m f c 类库则集成了大量已经预先定义好的类,是c + + 的类集,该类集以层次结构组织起来,其中封装了大部分w i n d o w s a p i 函数和 w i n d o w s 控件,包含的功能涉及到整个w i n d o w s 操作系统。m f c 不仅为用户 提供了w i n d o w s 图形环境下应用程序的框架,而且还提供了创建应用程序的组 件。使用m f c 类库和v i s u a lc + + 提供高度可视的应用程序开发工具,使得现在 应用程序的开发更简单,提高代码的可靠性与可重用性。m f c 提供的类库让程 序员把精力更多的放在功能拓展上,而不用太在意细节的实现,还允许在编程 过程中自定义和扩展应用程序中的类,同时也允许调用w i n d o w s a p i 函数,使 得应用程序以最小的规模实现最丰富的功能。m f c 是c + + 语言中的一个安全子 集,简化了c + + 开发基于w i n d o w s 的应用程序的工作,m f c 精心设计的类库 结构以一种软件包的形式把进行w i n d o w s 应用开发这一过程所需的各种程序 模块有机地组织起来。m f c 包含的类分层结构和功能具有可伸缩性,这使得 m f c 能跟上软件发展的潮流,并且保持了程序的向下兼容性,它还增强了对数 据库应用程序的支持,可以使用o d b c 类和高性能的o d b c 驱动程序来访问提 供o d b c 支持的数据库中的数据,还可以通过数据访问对象通过编程语言来访 问和操纵数据库中的数据并管理数据库。目前的m f c 包含了百多个类,不 同的类实现不同的功能,他们之间既有区别又有联系,这些类按照层次关系可 以分为根类、窗口和控件类、绘图和打印类、应用程序体系结构类、文件和数 据库类、i n t e r n e t 和网络工作类、o l e 类以及调试和异常类等等。用户可以根 据编程的需要调用相应的类,或者自己定义有关的类。 v i s u a lc + + 6 0 为了减轻程序员的工作量,特别增强了应用程序向导的功 能。应用程序向导为程序员提供了一个基于m f c 的应用程序框架,只要在此 基础上添加实现特定功能的代码即可o 1 4 论文研究的目的和主要内容 油库发油系统的传统控制是人工在现场局部监控,使得工作量大,泵和阀 的关闭开启都要操作人员手动进行,并且存储数据有限、不能自动生成报表等 等,随着自动化技术的发展,为了集中监视、集中控制、改善工作环境,面向 对象的技术起到了重要的作用。 本课题以w i n d o w s 2 0 0 0 为开发平台,以c + + 为开发语言,以v i s u a lc + 十6 0 作为前台开发环境,m i c r o s o f ta c c e s s 作为后台开发数据库。 本文从工业控制上位机软件的特点出发,利用面向对象的技术,设计并实 现油库专用的上位机应用软件。具有用户身份验证、编辑、参数设置、实时监 视和控制、数据传输、数据存储、打印报表和历史查询等功能,高度可视化、 全中文界面、具有可扩展性,减少了人为的差错,它与通信模块和下位机共同 构成油库发油系统。 本论文的主要任务有: ( 1 ) 收集和整理当前国内外软件开发的相关技术文献,了解软件开发的 最新技术和发展趋势,制定软件设计的整体方案。 ( 2 ) 了解油库相关知识,掌握油库工艺流程的基本概念和工艺流程设计 基本原则,收集相关参数。 ( 3 ) 根据收集的技术资料,进行具体的需求分析,根据现有技术,得出 系统的总体设计思想。 ( 4 ) 利用v i s u a lc + + 开发环境和c + + 编程语言,实现上位机的界面设计 和各个控制过程,集中监视。 ( 5 ) 利用o d b c 接口和m i c r o s o f t a c c e s s 数据库,完成数据库的设计,实 现了数据的存储以及历史数据查询功能。 6 第二章油库上位机系统总体设计 2 1 软件系统设计 软件设计就是把软件定义文件转变成可以在计算机上运行的软件系统。软件设计 的目标是,在满足软件系统定义的前提下找到一个比较好的技术方案。为了达到这个 目标,设计所要解决的主要问题是降低系统的复杂性,使实际的系统变得尽可能简单 和可靠。软件设计的基本方法有三种:分解、层次化和抽象。分解就是分而治之,将 整体化解为局部。降低软件设计的复杂性可以通过将系统分成子系统,将子系统分成 模块,将模块分解成程序,将程序又分解为予程序。层次化与分解一样,也是很自然 的降低复杂性的方法。抽象是通过在不同的层次上处理不同的细节来降低复杂性。 在一个项目中,软件设计通常与需求分析、程序编码等活动相独立,可能有几个 级别的工作:软件结构设计、高层模块歧计和模块程序设计。 软件结构设计的主要任务是将复杂的软件系统划分成子系统。这些子系统本身可 能还包括更小的子系统,如数据库接口、用户接口等。 高层模块设计的主要任务是识别系统中的所有模块。在定义模块时,也要定义系 统中每个模块之间的相互作用方式。 模块程序设计把每个模块划分成各种程序。一旦个程序被定义出来,就同时约 定它的功能。由于模块与系统其他部分是相互作用的,而这一作用又是通过功能子程 序进行的,所以模块与系统其余部分的作用细节是在程序定义中规定的。模块程序设 计工作对于任何模块都是需要的,它并不一定需要被正式地进行。模块程序设计往往 和程序编码混在一起进行。这一设计活动包括编写数据流程图、寻找算法、在子程序 中组织代码段落以及编写编程语言代码等。 软件技术发展到今天,很多软件系统的设计不必从零开始,而是重用已有的软件 资源。现代化的应用软件和通信软件规模都很大,完全重复使用很困难。但是如果重 复使用的程序越多,需要重新设计的地方就少,解决问题的时间就会快得多,利润也 就会增加。软件设计重用有三种基本的方式: ( 1 ) 代码级的重用。一个项目开发的模块,尽可能独立于当时项目的具体环境。另 一个项目需要使用时,不改动或者尽可能少的改动。 ( 2 ) 设计级的重用。将模块纳入可重用公共模块库,另一个项目需要使用时。自行 决定是沿用代码还是重写代码。只要求重用这将发现的设计缺陷及时上报,以便对模 块的设计文档进行增补或者修订。 ( 3 ) 过程的重用。对有可能重用的模块,总结出开发的方法、步骤或者经验案例, 供其他项目重用,避免从零做起以前做过的工作。 设计方案是允许在设计过程中逐步完善的,为了得到满意的方案,还要检查和修 订已经得到的设计结果,包括: ( 1 ) 模块划分。设计方案应当清楚地提出软件系统的模块分解。 ( 2 ) 模块间接口。应当叙述这些模块间的接口关系,对接1 3 予以定义。 ( 3 ) 线程进程安排。若各模块问存在除了简单调试之外的关系,如进程、线程等, 应当说明。 ( 4 ) 系统初始化、运行、退出和异常处理的具体方法。 ( 5 ) 特殊要求。如数据备份、安全访问和控制等。 2 2 系统总体设计 c a n 总线 图2 - 1 发油系统总体结构图 下位机发油过程主要是控制泵和阀的开启和关闭。在发油之前先明确每个 货位的油品,以及为该货位的配比货位和比例值,每个货位的仪表系数值要预 先设定好,仪表系数值可以对流量计进行调节。发油方式有联网发油和单机发 油两种,联网发油是上位机和开票系统相联,可以在计算机上验证单据号;单 机发油则是自主输入单据号。控制方式又分为定量仪控制和主机控制两种,主 机控制是由上位机控制发油过程;定量仪控制则是该货位发油时,不由上位机 控制,而是由下位机控制,此时下位机发油完毕要将发油数据传入上位机的数 据库中保存。 主机控制方式下,在为某公司发油时,根据所需油品确定发油货位号,输 入发油定量值,该定量值可以是体积也可以是重量,由选择的单位是“升”还 是“公斤”确定,体积和重量可以通过密度换算。如果该货位需要配比发油则 自动确定配比货位号。无论是发油货位还是配比货位,都要有一定的提前量, 包括总提前量、泵提前量和阀提前量,提前量即缓冲,为了防止突然关泵和阀 而导致管道负荷过重而发生事故。发油和配比的货位可以设置静电接地和防溢, 如果不予考虑,则可以屏蔽该功能。购油单位可以用油车或者油桶装油,油桶 容量小,每一桶装满之后要有一定的停顿时间,再开始发下一捅油,这一过程 可以设置为自动也可以是手动完成。自动即中间的停顿时间设置成固定值,通 常在1 秒之内,同时也要预先告知桶的容量,那么在每发完一桶油后,暂停 固定的时间;手动就是发完一桶油后,手动停止发油,等下桶准备好后,再 手动开始发下一桶油。因为油车容量大,所以不用考虑中间过程。在发油过程 中需要考虑油温因素,同时由于油温的不同,油的密度也会改变,油温过高也 会发生危险。油温一般由下位机自动采集,如果不由下位机完成,可以人工手 动采集,但是由于人工采集精度不高,所以还要有一定的修正值。 上位机通过c a n 总线和下位机各个货位进行数据传输,每个货位接收上位 机的具体控制消息后进行泵和阀的动作,并将实时数据再通过c a n 总线传到上 位机显示。 上位机下传的常量数据包括温度模拟量量程,仪表系数值,总体前量,泵 提前量,阀提前量,关阀过程参数设置和配比发油过程参数设置值。每次发油 则要下传发油货位号、发油方式、配比货位、比例值、定量值、车装& 桶装, 提前量,静电接地和防溢的选择,自动手动、暂停。上位机下传的数据主要设 置下位机的控制参数。 在联网状态下,下位机实时发油过程中,下位机上传当前发油状态,实发 重量( 体积) ,温度,故障,泵和阀的状态,这些数据主要用于在上位机显示, 若在断网情况下,下位机自主发油,并保存其间发油的重要数据,但是出于下 位机存储量有限,在通网后,将未上传数据全部提交至上位机的数据库中,包 括货位号、单据号、当时实发重量( 体积) 、配比货位、定量值、静电防溢、车 装& 桶装、温度、故障、时间。 2 3 功能框架介绍 2 3 1 功能模块 根据对上位机软件的具体需求,可以按照功能划分为主要的四个功能模块: 参数设置模块,控制模块,查询模块,显示模块。它们都以数据库为基础,除 了这几个主要的模块之外,还包括通信模块的一部分。 上 位 机 l 一一一 图2 - 2 功能模块框图 2 3 2 各模块介绍和关系描述 图2 2 中的箭头表示了各个模块之间的数据传递的状况,单向箭头表示只 有数据的单项传送,而双向箭头则表示可以双向传输数据。 ( 1 ) 参数设置模块。该模块包含了菜单设计中的编辑、权限设置、密码修改、 调试参毅设置和系统设置。在设计时,将菜单中的“编辑”子菜单分为购油单 位编辑和密码修改两个菜单项,将“设置”予菜单分为系统参数设置,权限设 置,油品设置和密码设置四个子菜单项,由这两个子菜单完成参数设置模块的 功能。 参数设置模块主要和数据库进行数据传递。在参数设置模块中设置基本数 据,这些数据被操作人员为事先设置好,存入数据库,并且可以从库中调出数 据进行查看、修改或删除等。 ( 2 ) 发油控制模块。该模块包括菜单设计中的发油和取消。在主界面上,由 子菜单“发油控制”做主要的控制工作,包括了发油参数设置和取消发油。 发油控制模块和数据库以及通信模块联系。发油控制模块初始化时,将基 本信息从数据库中提出,在每次发油之前设置即时信息,设嚣成功后将信息由 通信模块传至下位机,通信成功就将设置的信息存入数据库中,并且开始正式 发汕。 ( 3 ) 查询模块。即统计查询,在“查询”予菜单下选择查询的方式。 该模块只和数据库联系,从库中读取历史数据显示,查询结果可以打印出 来。 1 0 f 4 ) 显示模块。分为独立显示和总体显示两个部分。应用程序的主界面就是 独立显示的一部分,共四个独立显示介面将所有货位显示。 实现显示的要求,该模块和数据库以及通信模块有关。在发油过程中,下 位机将实时信息先发送至数据库,显示模块则从数据库中提取显示,当操作人 员发现信息错误或者有报警信息时。采取“暂停发油”或“取消发油”的办法, 并将命令直接传递给下位机。 ( 5 ) 通信模块上位机部分。实现与下位机的实时通信,实现数据共享。该模 块与发油控制模块、数据库和显示模块连接。在上位机确定发油控制信息时, 通过通信模块将数据传至下位机,在实时发油过程中,下位机又通过通信模块 将数据传至上位机的数据库中,在发油控制模块和显示模块中都可以取消发油, 并将命令通过该模块发送给下位机执行。 参数设置模块和查询模块可以作为设计级重用,而发油控制模块,显示模 块则可以过程重用,并且容易扩充,因为各货位情况相似,发油过程相同,只 要添加相应的界面和重用代码,并修改其货位号即可。 第三章数据库设计 3 1 关系数据库系统介绍 数据库是以一定的组织形式存放在计算机存储介质上相互关联的数据的集 合,这些数据按照一定的模型组织、描述和存储,具有较小的冗余度,较高的 独立性和易扩展性,可为各种用户所共享。数据库技术经过3 0 多年的发展已成 为计算机科学技术的重要分支之一,多学科的技术内容与数据库技术相结合是 当代数据库技术发展的重要特征,它使数据库领域中新的技术内容层出不穷。 数据库系统主要包括数据库、数据库管理系统、数据库存储介质及用户。 可以这样描述实据库系统:它可以实现有组织的、动态的存储大量相关联的数 据,能够为多用户访问的计算机软硬件组成的系统服务。它的特点是数据可以 充分共享、交叉访问、与应用程序有高度的独立性。 当前,数据库技术除了支持传统的应用外,在众多的领域中得到了更广泛 的应用,已成为计算机应用技术中不可缺少的重要组成部分和核心。 数据模型是数据库系统的核心和基础,各种数据库管理系统( d a t ab a s e m a n a g e m e n ts y s t e m 一一d b m s ) 软件都是基于某种数据模型的。数据模型通常由 数据结构、数据操作和完整性约束三部分组成。数据库领域中常用的数据模型 有层次模型、网状模型、关系模型等。1 9 7 0 年,e f c o d d 创造性地把数学中一 个称为关系代数的分支应用到存储大量数据的问题中,建立关系型数据库,该 模型是构造和处理数据库的一种特殊方式,它的优点是数据以最小重复方式存 储,这减少了用其它方式存储数据时所发生的某些错误。一个数据库系统的开 发过程首先就是要对所研究对象进行关系分析,确定它们之间的联系方式,最 终把这些关系用数据库或数据结构来实现。关系模型是目前最重要的一种数据 模型,2 0 世纪8 0 年代以来,计算机厂商推出的数据库管理系统几乎都支持关 系模型,而数据库领域当前的研究工作也都是以关系方法为基础。 关系数据库系统支持关系模型,关系即通常说的一张表,它是元组的集合, 对关系的描述一般表示为:关系名( 属性1 ,属性2 ,属性i 3 ) 。关系 数据库中,关系模式为型,关系为值。 关系模型要求关系必须是规范化的,即要求关系必须满足一定的规范条件, 其最基本的是:关系的每个分量必须是一个不可分割的数据项,但是这是最基 本的规范化。 关系数据模型的优点: ( 1 ) 它是建立在严格的数学概念的基础上的: ( 2 ) 无论实体还是实体之间的联系都可以用关系表示,对数据的检索结果 也是关系( 表) 。数据结构简单清晰,易懂易用; ( 3 ) 存取路径对用户透明,因此具有更高的数据独立性和安全保密性,同 2 时简化了开发人员的工作和数掘库建立的工作。 3 2 开放式数据库连接 o d b c ( o p l e nd a t a b a s ec o n n e c t i v i t y 歼放数据库连接) ,可以为c s 系统提供 连接客户端应用程序与服务端各种数据库的双向通用接口,它建立了一组规范, 并提供了一组对数据库访问的标准应用程序接口( a p i ) 。 v is u a lc + 十开发的基于o d b c 的应用程序对数据库的操作不依赖任何d b m s , 所有的数据库操作都可以由对应的d b m s 的o d b c 驱动程序完成。即不论是 a c c e s s 还是o r a c l e 数据库,均可用o d b ca p i 进行访问。由此可见,o d b c 的最 大优点是能以统一的方式处理所有的数据库。它是基于s q l ( 结构化查询语言) 而设计的,提供了一组对数据库访问的标准a p i ( 应用程序编程接口) 。 一个完整的o d b c 由应用程序、o d b c 管理器、驱动程序管理器、o d b c 驱动 程序、o d b ca p i 和数据源组成。 应用程序访问数据库,首先必须用o d b c 管理器注册数据源,该管理器根据 数据源提供的数据库位置、类型等信息,建立起o d b c 与具体数据库的联系。只 要应用程序将数据源名提供给o d b c ,o d b c 就能建立起与相应数据库的连接。 在o d b c 中,o d b ca p i 不能直接访问数据库,必须通过驱动程序管理器与数 据库交换信息。驱动程序管理器负责将应用程序对o d b ca p i 的调用传递给正确 的驱动程序,而驱动程序在执行完相应的操作后,将结果通过驱动程序管理器 返回给应用程序。 在访问o d b c 数据源时需要o d b c 驱动程序的支持。v i s u a ic 十+ 安装程序可 以缺省安装a c c e s s 驱动程序。v i s u a lc + 十为用户提供了o d b c ( o p e nd a t a b a s e c o n n e c t i v i t y ) 、d a o ( d a t aa c c e s so b j e c t s ) 、o l ed b ( o l ed a t ab a s e ) 等数据库 访问技术。其中,最关键也最基本的是o d b c 标准数据库访问方式。 m f c 的o d b c 数据库类对比较复杂的o d b ca p i 进行了封装,提供了简化的调用 接口,从而大大方便了数据库应用程序的开发。程序员不必了解o d b ch p i 和s q l 的 具体细节,利用o d b c 数据库类即可完成对数据库的大部分操作。 m f c 的o d b c 数据库类包括了c d a t a b a s e 类、c r e c o r d s e t 类等。c d a t a b a s e ( 数据 库类) 主要功能是用来提供对数据源的连接,连接的句柄存放在其数据成员m _ h d b c 中,并提供一个获取连接字符串的成员函数g e t c o n n e c t 。c r e c o r d s e t 类代表从数据源 选择的一组记录( 记录集) 。它为用户提供了对表记录进行操作的许多功能,如查询 记录、添加记录、删除记录、修改记录等;并能直接为数据源中的表映射一个 c r e c o r d s e t 类对象,方便用户操作。利用o d b c 提供的这些类,只要添加些必要 的操作界面和实现代码,就可以实现数据库的各种操作功能。 3 3 数据库详细设计与分析 3 3 1 数据库选择 数据库开发方式有两种,一种是利用现有的非常成熟的商用数据库系统 ( 如m i c r o s o f ta c c e s s ) ;另一种是用户白行开发。两种方式各有特点。第一 种方法通用性好,功能强大,存储数据量大,但速度难以满足实时性的要求; 第二种实时性好,速度快,但自行丌发一套通用性好、功能强大的系统绝非易 事,且大量离线数据常驻内存也不现实。 基于各种技术的比较,本系统的数据库系统以m i c r o s o f ta c c e s s 为数据库 平台,采用了开放的数据库连接标准0 d b c 管理数据;在w i n d o w s2 0 0 0 操作平 台上,利用v is u mc + + 进行编程。 a c c e s s 是o f f i c e 的组件之一,是微软自公布a c c e s s 以来功能最全面、与 w i n d o w s 和i n t e r n e t 结合最紧密的数据库软件,是一个功能非常强大,而且简 单易用的数据库管理系统( d b m s ) ,即对数据库进行存储、处理和管理的系统。 它在外观和操作、网络功能、与o f f i c e 其他组件的结合、与w e b 的结合以及与 s q l 数据库的连接等方面都有很大的改进与提高。a c c e s s 是w i n d o w s 家族中很 受欢迎的数据库系统,它可以用最简单的方式创建各种数据库。在外观上,采 用了类似o u t l o o k 的层叠式数据显示界面,还更新了数据库工具、数据压缩和 安全服务功能。同时,网络功能得到了加强,可以在w e b 组件的协助下,在浏 览器中显示数据透视表及数据访问页,并且将报表数据保存为h t m l 或a s p 格式的网页。事实上,很多软件都可以实现数据的输入和存储,之所以要使用 数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国数码学习机行业市场调查研究及投资战略咨询报告
- 2025至2030年中国工业水洗机市场分析及竞争策略研究报告001
- 中国拉带CD册行业市场发展前景及发展趋势与投资战略研究报告(2024-2030)
- 2025年中国线路板市场竞争格局及行业投资前景预测报告
- 2025至2030年中国小型数字化影像测量仪数据监测研究报告
- 2018-2024年中国特种车市场运营态势分析及投资前景预测报告
- 2025年中国LYD绞刀行业市场发展前景及发展趋势与投资战略研究报告
- 2025至2030年中国变频恒压机组市场调查研究报告
- 2025年中国热风枪行业市场运行现状及未来发展预测报告
- 2025至2030年中国双层凭证行业投资前景及策略咨询报告
- 医院处方笺模板
- 【工程项目施工阶段造价的控制与管理8100字(论文)】
- XX学校推广应用“国家中小学智慧教育平台”工作实施方案
- 非遗文化创意产品设计 课件全套 第1-5章 概述- 非遗文创产品设计案例解析
- 法律尽职调查所需资料清单
- 幼儿园中班安全教育活动《紧急电话的用途》
- 118种元素原子结构示意图
- 英语四线三格Word版
- 幼儿园行政工作制度
- 广州新华学院
- 部编版七年级下册道法期中试卷1
评论
0/150
提交评论