环境动力系统论文_第1页
环境动力系统论文_第2页
环境动力系统论文_第3页
环境动力系统论文_第4页
环境动力系统论文_第5页
已阅读5页,还剩80页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 NUMPAGES 1 NUMPAGES 1 PAGE 46 PAGE 46 PAGE 46 PAGE 46华北工学院学士论文 动力环境监测系统 PAGE 85前言目前,大多数需要环境测量,防水,防盗的程控机房,精密仪器室,图书馆,库房,无人职守站等主要是人工定时巡逻、人工控制,人工抄表等,在设备较多的机房中,设备分散不集中,对参数的采集有一定的困难,而且若是机房数量越多,值班人员的工作强度就显得越大,造成大量的人力资源的浪费,并且经常会出现少抄,漏查的现象,使得工作效率不是很高,同时设备资料数据的保存也不科学,查询很不方便,不利于数据管理。为了合理使用人力资源、提高工作效率、保证通信设备安全

2、可靠地工作,对各动力机房内动力系统、空调系统、及其它环境设备进行联网监控、集中维护和管理是极其必要的。随着通信技术的不断发展,计算机网络系统通信是当今技术发展的一个重要的方向,然而在网络系统中利用现有电话网作为通信信道则是最经济、最方便和最可靠的方法。当前现代电话通信网已经进入程控交换时代,技术比较先进,速度快,容量大,因此采用电话通信网建立数据通信系统确实具有其独特的优越性。动力环境监测系统就是在这种情况下诞生的。本论文就后台PC机用Delphi开发通信和数据管理系统软件的过程做了详细介绍,重点是该软件的数据管理。本论文共有四章,循序渐进地介绍本次软件开发的目标、设计过程及相关知识、该软件的

3、使用。由于本人水平有限,且编写时间仓促,论文中难免有疏漏和错误,恳请老师们提出宝贵意见。设计目标及完成题目的技术途径1.1 设计目标根据信息产业部通信电源,机房空调集中监控系统技术要求的要求,研制开发了“动力环境监控系统”。其主要功能是对电信系统中分布在不同通信局(站)的设备运行环境(电源、温度、湿度、门禁、水浸、烟雾等)进行集中监控。对各种异常情况进行及时报告和处理,以保证通信设备的正常运行;系统可以显示和记录所有监测到的数据,供监控中心查询、分析,使工作人员能从宏观上管理和维护整个电信设备的运行环境,提高系统维护的实时性和准确性,实现电信网的集中维护、集中管理,真正达到少人或无人值守的目标

4、。本系统系统由四个电路模块(数据采集模块、通信模块、显示模块、电源模块)和中心站处理软件组成:采用89C51与通用异步收发器8250接口和控制智能MODEM以实现单片机与PC机在有线公用电话网中进行远程数据通信技术。MODEM将前端单片机采集的数据通过电话网远程传输到中心站PC机,并实现一对多点通信(站点数、通信距离均不限),后台PC机通过拨号的方式对各站点进行数据接收并实时存储记录、查询、打印。设计后台PC机处理软件,即编制通信接口与组态软件,实现数据回总计报警监测,历史数据查询、保存、打印等功能是此次设计的目标。1.2 完成题目的技术途径中心站与监测站之间采用调制解调器在电话网络上通信,中

5、心站的通信接口网使用AT命令集对调制解调器控制,组态软件在Windows平台下用Delphi6软件开发成形。Delphi以基于窗口和面向对象的编程方法,与Windows操作系统紧密地结合,强大的数据库技术支持,迅捷的编译速度,同时兼具功能强大和易学灵活的特点,而且Delphi编制与Modem通信的串口程序有独到之处,所以选择该软件来开发。环境监测系统总体方案分析及软件设计2.1 系统总体结构系统总体结构涵盖了监测中心站、监测各分站,利用了PC上位机、集团电话网络、调制解调器及单片机等硬件。结构图如图2-1所示:。 图2-1 系统总体结构图在本监测系统中,各监测分站采用MCS-51单片机来采集现

6、场的模拟量、开关量,采集数据经过整理后通过单片机串行接口和调制解调器及集团电话,采用异步串行通信实现与监测中心PC机的远程双向通信。由于各监测分站与中心站之间每次的数据传输量不大,加之本身具有电话线路的基础设施,所以采用本方案是既保证数据传输要求,又经济实用。2.2 监测中心PC及应用软件设计该部分实现对总体系统的监测及终端显示功能。主要包括以下部分:系统按权限分级启动,有效保证系统运行稳定,安全各监测分站监测数据巡检,保存监测数据汇总、实时显示、曲线绘制、报警等采用Delphi的Database desktop数据库保存数据,用paradox数据库技术实现对数据库的控制。软件整体功能实现如图

7、2-2所示:动力环境监测系统应用程序动力环境监测系统应用程序用户登录功能块动力环境监测系统管理功能动力环境监测系统服务功能系统巡检监测数据保存监测数据查询监测数据汇总实时显示报警曲线绘制打印监测数据删除监测数据备份用户添加删除 图2-2 软件整体实现功能图2.3通信接口设计通信接口设计部分相关知识,调制解调器一般 AT 命令参考 下表列出了您的调制解调器能理解的 AT 命令。 每个命令描述包括命令名称、解释和相关参数。 切记:您的调制解调器必须在 Microsoft Windows 95 下操作。 调制解调器在 MS-DOS 或 Microsoft Windows 旧版本下不能运工作。 命令描

8、述AT 注意代码 AT 是命令行的字首,告诉调制解调器要输入命令或命令序列。它执行除 A/ (重复) 和 + (换码) 之外的所有命令。单独输入 AT,如果调制解调器准备接收命令,则调制解调器返回 OK 或 0 信息。 参数:无 A/ 重复上一命令。 A/ 命令使调制解调器重新执行上一行的命令,例如,重新拨号。 上一次执行的命令一直保留在命令缓冲区中,直到输入 AT 命令或电源已关闭为止。 这些操作将清除缓冲区并使 A/ 命令无效,因为没有要重新执行的命令。您无需输入 或 AT,因为它们与上一命令一起驻留在命令缓冲区内。 参数:无 A应答命令。 A 命令使调制解调器无需等待响铃则可应答呼叫。

9、此命令在手动应答呼叫或与以始发方式与另一调制解调器建立直接连接时有用。 同一命令行中 A 之后的所有命令将被忽略。注:此命令在某些国家禁止使用。在这种情况下,ATA 返回错误信息。 参数:无 Bn通信标准选项。 在 ITU 与 Bell 标准之间作出确定。 参数:n = 0 - 3, 15, 16 n = 0 ITU V.22 使用 1200bps 的传输速率n = 1,Bell 212 使用 1200 bps 的传输速率 (默认)n = 2, 3 撤消 ITU V23 反向通道n = 15 ITU, V.21 使用 300bps 的传输速率n = 16,103J 使用 300 bps 的传输

10、速率 (默认设置) Dn拨号命令。 D 命令使调制解调器拨命令行中 D 后面的号码。在拨号修正符号页面中定义有效的拨号数字和所拨号修正符号。 在脉冲拨号方式下,非数字字符不起作用。参数:无注:在某此国家规定在 D 命令之后必须输入电话号码。En命令回应。 En 此命令确定调制解调器在命令方式时,您在键盘上输入的字符是否回应到屏幕上(本地回应)。 参数:n = 0, 1n = 0 关闭本地回应功能n = 1 启用本地回应功能 (默认) Hn挂断控制。 Hn 命令告诉调制解调器是挂断以断开呼叫还是摘机以占用电话线。 参数:n = 0, 1n = 0 调制解调器挂断 (hang up) (默认值)n

11、 = 1 调制解调器摘机注:H1 命令在某些国家禁止使用。 在这种情况下,ATH1 返回错误信息。 In要求调制解调器的识别号 (ID)。 In 命令询问调制解调器的产品识别号、ROM 校验和或 ROM 校验和的状态。 参数:n = 0, 1, 2, 3, 4, 5, 9n = 0, 3 返回调制解调器默认的速率和控制器的硬件版本n = 1 计算 ROM 校验和并显示校验和 (例如,12AB)n = 2 检查 ROM 、计算并验证校验和及显示 OK 或 ERROR (错误) 信息。n = 4 返回数据泵的硬件版本n=5 返回调制解调器板的ID: 软件版本、硬件版本和国家代码n = 9 返回国家

12、代码。 Ln设置扬声器音量。ATLn 在传真和数据通信时设置扬声器的音量为低、中或高。 参数:n = 0 - 3 n = 0, 1 低音量n = 2 中音量 (默认设置)n = 3 高音量注:要完全关闭扬声器,请使用 MO 命令。 Mn扬声器音量控制选项。Mn 命令控制传真和数据通信时扬声器是打开还是关闭。 参数:n = 0 3n = 0 扬声器一直关闭n = 1 调制解调器在检测到载波信号之前,扬声器始终打开。(默认值)n = 2 在调制解调器摘机时,扬声器始终打开。n = 3 在拨号后扬声器始终打开,直到调制解调器检测到载波信号为止,拨号时除外。Nn调制握手。Nn 命令控制本地调制解调器在

13、与速率不同的远程调制解调器连接时是否执行协商的握手 。 参数:n = 0, 1n = 0 在始发呼叫或应答呼叫时,仅以 S37 寄存器和 ATB 命令指定的通信标准下进行数字交换。n = 1 在始发呼叫或应答呼叫时,仅以 S37 寄存器和 ATB 命令指定的速率开始握手。 在握手期间, 速率可能会回落。(默认设置) On在线状态。 On 命令强迫调制解调器进入在线方式。 参数:n = 0, 1, 3n = 0 进入在线状态n = 1 在返回在线数据方式前初始化均衡重新排定序列。n = 3 在返回在线数据方式前,进行速率的重新协商注:在使用 + 换码命令换至命令方式后执行该命令将返回在线方式。

14、P脉冲拨号。 P 命令设置脉冲拨号方式。 所有的呼叫将停留在脉冲方式,直到使用 T 命令选择音频拨号为止。 此命令也可用作拨号修正符。 参数:无注:某些国家不可以使用脉冲拨号。 在这些国家 P 命令将被忽略。 Qn抑制结果码。 Qn 启用调制解调器发送结果码。 参数:n = 0, 1n = 0 启用结果码 (默认设置)n = 1 禁用返回结果码。(静噪) Sr=n写入 S 寄存器。 Sr=n 将 r 寄存器的值设置为 n 。 用此命令可修改这些寄存器中的内容。 参数:无范围: r = 0 - 27, 29, 31 - 33, 35, 37, 89 (寄存器号)n = 0 - 255 (取值)切

15、记:如果向保留的寄存器或只读寄存器中写入内容可能会导致无法预料 的结果。 请参阅 S 寄存器命令参考以获得完整的寄存器列表。 Sn?读取寄存器。 Sn? 命令 报告 n 指定的寄存器的值,该值可以是任一有效的S 寄存器号。 参数:无 范围: n = 0 - 27, 29, 31 - 33, 35, 37, 89注:取值以十进制的格式报告。 要获得位映射寄存器的值,请将十进制转为二进制。 T音频拨号。 T 命令将拨号方式设为音频拨号。 默认设置为音频拨号。 此命令也可用作拨号修正符。 参数:无 Vn结果码的形式。Vn 命令确定调制解调器返回的结果码的类型。 参数:n = 0, 1 n = 0 以

16、数字形式发送结果码。(简短的形式或数字)n = 1 以文本的形式发送结果码。(长格式或冗余) (默认设置) Xn设置结果码和呼叫进行 Xn 命令选择结果码集和拨号功能。 Vn 命令确定结果码是以文字方式还是数字方式发送, 亦请参阅结果代码。 扩展的结果码: 如果启用此项,调制解调器显示基本的结果码、连接信息、调制解调器的数据传输速率、调制解调器错误校正的表示和数据压缩设置。 如果禁用此项,只显示 OK, CONNECT, RING, NO CARRIER 和 ERROR。拨号音检测: 如果启用此项,调制解调器仅在检测到拨号音时拨号; 如果 10 秒钟内未检测到拨号音,将断开呼叫。 如果禁用此项

17、, 调制解调器不管是否检测到拨号音均将拨号。 您可选择调制解调器在 S6 寄存器中拨号前需等待的秒数。忙音检测: 如果启用此项,调制解调器检查忙音。 如果禁用此项,调制解调器忽略忙音。参数:n = 0 - 4, 7n = 0 禁用扩展结果码、拨号音检测和忙音检测。n = 1 启用扩展结果码; 禁用拨号音检测和忙音检测。n = 2 启用扩展结果码和拨号音检测; 禁用忙音检测。n = 3 启用扩展结果码和忙音检测。 禁用拨号音检测。n = 4 启用扩展结果码、拨号音检测和忙音检测 (默认设置)。n = 7 禁用扩展结果码; 启用拨号音检测和忙音检测。Z恢复已保存的配置文件。 此命令指示调制解调器挂

18、断并恢复由上一次 &W 命令保存的文件。 +换码序列。在 S2 寄存器中的字符集连续三次快速发送至调制解调器 (参阅 S12 寄存器), 调制解调器转换至命令状态。 换码字符的默认值为 +。 在说明文档指示您输入 + 时,连续三次在 S2 寄存器中快速输入字符集。 请勿在换码序列之前加上 AT 命令,并且输入后不要按 Enter 键。 注:要返回在线状态,请使用 ATO 命令。 监测中心PC机上软件设计3.1用户登录功能的实现系统是按权限分级启动的实现,其功能简介如下,系统分为:接收启动,该启动由点击*.exe文件打开,然后点击菜单中的接受数据按钮,就能接受数据,做出巡检了。数据察看启动,该启

19、动分为两级权限,分别是系统管理员,可以对数据进行察看、保存、删除、打印等数据管理;一般用户,只能察看数据。该启动的实现是通过点击登录系统按钮,就会弹出登录对话框,来实现权限判断。运行系统的关闭,只能由系统管理员执行。下面详细介绍一下实现权限判断功能的主要窗口系统登录对话框。它是通过在后台建立一个用户表.db,在界面中添加dataaccess中的datasource组件和BDE中的query组件,然后使用sql查询语句来实现。使用sql的select语句查出用户输入的用户名和密码所对应的那行纪录,判断查询得到的纪录(Query1.RecordCount)是否为零,如果为零,说明表中没有用户输入所

20、对应的纪录,也就是用户名或者密码输入错误,这时点击界面上的登录按钮,会出现一个错误提示框,点错误提示框上的确认按钮后,可在登录对话框中重新输入用户名和密码,如果不想登录系统了,就可以点退出按钮退出。如果查询结果不为零,这时候就判断查询得到的纪录的权限值(Query1.FieldByName (权限))是否为1,如果为1,就是管理员级别,那么就可以进行系统管理和数据管理,对应的一些操作按钮就可操作(例:Form1.N20.Enabled:=true);如果不为1,对应的系统管理和数据管理操作按钮就不可操作(例:Form1.N20.Enabled:=false)。下面是登录对话框的设计界面和用户表

21、.db:以下是实现上述功能的程序流程图启动管理员操作按钮关闭管理员操作按钮yes判断查询所得纪录字段权限值是否为1yesno判断查询所得纪录条数是否为0错误提示确认Sql语句查询对应纪录得到查询数据在登录对话框内输入用户名和密码no启动管理员操作按钮关闭管理员操作按钮yes判断查询所得纪录字段权限值是否为1yesno判断查询所得纪录条数是否为0错误提示确认Sql语句查询对应纪录得到查询数据在登录对话框内输入用户名和密码no3.2应用程序中数据模块的设计加入模块化的数据结构设计既能减轻设计的复杂度又可使的软件具有生命力,3.2.1数据库表的建立、结构及连接实现的方法系统使用的数据库为delphi

22、 6自带的desktop数据库中的paradox表格*.db存储数据,包含了三个数据表:powerenvirment1.db存储监测的来的数据用来实时显示,历史数据查询;powerenvirment2.db存储的是事件开关值,该值是由串口接收到的p0口数据,程序拆分后成为开关量值。该数据主要在主界面mome1栏中,以文字提示的样式传达信息;用户表.db存储用户信息,服务登录程序,另外,管理员可对用户进行管理,用户可修改密码。Historicdata1.db存储事件显示,该值通过对开关量的转化,将具体事件发生时间地点存储在表内,提供给memo栏显示。各表的设计视图如下:powerenvirmen

23、t1.db字段名字数据类型长度说明测点文本6测点名称日期日期/时间10时间日期/时间8温度一数字4温度二数字4温度三数字4湿度一数字4湿度二数字4湿度三数字4电压数字3电流数字2NumID自动编号测点编号powerenvirment2.db表字段名字数据类型长度说明测点文本6日期日期/时间10时间日期/时间8烟感一逻辑量1烟感二逻辑量1烟感三逻辑量1水浸一逻辑量1水浸二逻辑量1水浸三逻辑量1门禁一逻辑量1门禁二逻辑量1用户表.db字段名字数据类型长度说明用户名文本10密码字符8权限逻辑量登录权限性别文本2Historicdata.db字段名字数据类型长度说明测点文本6日期文本10时间文本8事件

24、文本8连接实现以上所提到的表格贯穿于整个软件的使用。连接实现是利用数据访问组件访问数据库中的数据记录,利用数据控制组件实现对数据库数据记录的浏览和操作;通过SQL语句可以从关系数据库中获得数据,可以建立数据库、增加数据、修改数据。3.2.2实现监测数据汇总管理、实时显示、曲线绘制、报警等功能的软件部分1、 概述 本部分程序用delphi 6 实现,主要包括监测数据的汇总管理、实时显示、曲线绘制、报警等功能。根据功能程序主要分为自动巡检数据汇总显示、人工察看数据、曲线绘制、数据管理四部分。 能实现介绍数据管理有查询、打印预览、打印、删除四种功能,也是通过添加dataaccess中的datasou

25、rce组件和BDE中的query组件,然后使用sql查询语句来实现。查询数据,使用sql查询语句的select语句来实现。先要对数据流进行处理,分析数据可以通过那几种组合方式被查询到。经分析,有以下情况,用图表表示: 全部历史数据显示 全部测点的历史数据分类显示(4种类型)历史数据 全部类型的历史数据分测点显示(12个站点) 分站点分类型显示 全部历史事件显示 全部测点的历史事件分类显示(5种类型)历史事件 全部类型的历史事件分测点显示(12个站点) 分站点分类型显示由图表所示,根据数据流使用ifthen beginend;的并列语句实现,具体程序见附录源程序所示。删除数据,使用sql查询语句

26、的delete语句来实现。删除数据按钮下后,会出现一个对话框提示哪些数据将被删除,如果确定要删除,就按下确定健,如果不想删除,就按下取消健。这个对话框的组成是在窗体上添加两个Tbutton控件和一个label控件(用来显示提示内容)。根据所选择数据,给label的Caption属性赋值(提示哪些数据将被删除)。点击确定健时,触发click事件,在这个事件里定义了sql查询语句的delete语句,删除先前查询时查出的所有数据。所选择数据流控制也是使用ifthen beginend;的并列语句来控制。具体程序见附录源程序。打印预览、打印,是通过使用QuickRep实现。在数据管理窗口中添加Qrep

27、ort中的QuickRep组件,它是报表类显示组件。建立QuickRep时,设定好要显示的表中数据字段,然后通过对QuickRep属性栏中的datasource设置,使它连接上数据源组件,连接上数据。人工察看数据中包括了指定站点事件与数据察看,巡检监测站点温湿度即时显示(滑动条显示)和温湿度历史曲线显示,以及事件报警指示灯显示和系统时钟显示等六个分块显示栏(分别使用了Memo,DbGrid, RxSlider,AHMCauge,DBChart,AHMLed,AHMClock等组件)。实现也是通过添加dataaccess中的datasource组件和BDE中的query组件,然后使用sql查询语

28、句来实现。在这里介绍一下Memo组件中显示的内容是怎样通过使用数据查询,存储,再调用来实现的。首先,因为在Memo组件中显示的内容是连续的字符串,而不是从串口接受的P0数据拆分成的开关量,所以需要将开关量具体化。开关量为1,说明有事件发生,若为0则没有事件发生。此时要对为1的情况进行处理,即建立表格(historicdata.db)存储事件说明。通过select语句得到事件说明纪录,将其的事件字段内容赋值给memo3.Lines.Add()。这样事件内容、发生时间、地点都能显示出来了。3、软件开发时应用的delphi组件介绍数据库组件本部分程序使用DataSource、Table、Query、

29、DBGrid、DBChart等数据库组件实现对监测数据的查询显示和温湿度曲线的绘制。下买你对这些数据库组件使用的概略讲述: Delphi6为开发数据库应用程序提供了许多组件,设计时使用了这些组件中的三类,分别是数据库的数据访问组件(Data Access类组件),数据库的数据控制组件(Data Control类组件)及数据库的数据文件组件(BDE类组件)。这些组件分别在组件板的Data Access、Data Control及BDE选项卡上。Data Access类组件负责和BDE进行数据交换,它首先通过BDE将数据库文件的数据提供给应用程序,最后将被修改过的数据经BDE传送到数据库文件中。其

30、中和BDE直接打交道的DataSource组件。Delphi用于程序通过数据库引擎(Borland Database Engine, BDE )来处理数据。BDE实际是由几个DLL模块构成,它们负责处理数据库工作的核心部分。在Delphi 中,数据库应用程序必须建立与数据库的联系,在Delphi中通过数据库引擎BDE来完成这个工作。所有数据库存取的程序,都必须通过B D E 来完成。BDE是Delphi数据库功能的核心部分,是连接应用程序和数据库的桥梁。Delphi通过BDE来控制读取本地数据库,Delphi自带的dBase和paradox 无需安装,这对于开发小型系统是非常有利的,同时BDE

31、还能通过其他工具访问远程数据库。DataSourse联系TTable,Tquery,TStoredProc组件与数据控制组件例如TDBGrid.的纽带。主要通过属性中的Dataset项设置连接TTable,Tquery,TStoredProc组件。Table通过BDE从一个数据库表格中取得数据并通过TDataSource组件将数据传递给一个或多个数据控制组件。而且,将从数据控制组件处得到的信息通过BDE传递给数据库。Table的基本属性如下:Active指明一个数据集是否处于打开状态;DatabaseName表明数据集联系的数据库名;Fields指向数据集的字段列表;Name该组件在被其他组件

32、引用时的名字;RecordCount显示与数据集相连的记录的总数;TableName指明该组件指向的数据库表格的名字;其中DatabaseName 属性是用来说明当前数据集的来源,即应用程序所利用的数据库的名字。它可以是BDE定义的数据库别名,如;也可以是数据库文件,像Paradox和dBASE等文件所在的路径;还可以是由TDataBase组件定义的数据库名。应用最多的还是用BDE定义的数据库别名。因为这样可以避免在应用程序所操作的数据库发生变化时修改整个应用程序,而只需重新设置一下BDE定义的数据库别名即可。通常在设计设置阶段这一属性。在设计阶段,只要双击Tdatabase组件就可以激活数据

33、库编辑器(Database editor)来设定DatabaseName。注意:更改数据集前,表格必须先被关闭。TableStyle属性是用来说明当前应用程序所操作的数据库表格的类型,在对象观察器中该属性框有一个下拉列表,可以用来确定数据库文件的类型。用代码编辑时,其格式为:TTableType=(ttDefault,ttParadox,ttDBase,ttASCII,ttFoxPro).其中,ttParadox对应Paradox表;ttASCII对应ASCII表;ttdBase对应dBase表;ttFoxPro对应FoxPro表。当该属性设置为默认值ttDefault时,它对应的数据库表格类

34、型由文件的扩展名决定。扩展名为.DB或没有扩展名的文件表示是Paradox表,扩展名为.T X T的文件表示是ASCII表,扩展名为.DBF的文件表示是dBASE表。如果TableType属性值设定为ttParadox、ttDBase、ttFoxPro或ttASCII的话,表格的类型将被视为是确定的,而不管此表格文件的扩展名是什么。TableName也是TTable最重要的属性之一。它是用来说明这个TTable组件所对应的是数据库中的哪一张数据库表格。它和DataBaseName一样是在设计阶段给定的,在DataBaseName设定后给出。一般DataBaseName设定后,如果有符合将打开表

35、格的文件格式(TableStyle)的,会自动在TableName的属性框中生成一个下拉列表,包含所有符合该文件格式的数据库文件。注意设定TableName属性值时,Active属性值一定要设为False。Active属性是用来说明数据库文件的打开状态。应用Active属性来决定及设定一个数据集组件与数据库数据之间的联系。它的属性值是用一个布尔数(Ture/False)来表示的。当Active属性值为Ture时,表明数据集是打开的,数据集组件可以对数据库进行读写操作;反之,表示数据集是关闭的,数据集组件不能从数据库读取数据,也不能向数据库中写数据。可以通过下列方法设置Active属性为True

36、: 触发数据集的BeforeOpen 事件 设置数据集的状态为dsBrowse 在数据集中打开一个BDE记录指针 触发数据集的After Open事件如果在文件打开过程中发生了错误,此时数据集的状态将会被设置成dsInactive,同时记录指针会被关闭。应用程序在改变其他影响数据库状态或在应用程序中显示数据的控件状态的属性之前必须将Active属性设置为False。注意用Open 和Close 方法对数据库文件操作的效果与改变Active 属性的效果是一样的。调用Open 方法会将Active 属性值设为True ;调用Close 方法会将Active 属性值设为False 。以上四种属性在创

37、建一个TTable组件时是必不可少的,也是最基本的。这些属性值的设定可以通过对象观察器,也可以在程序代码中实现。需要说明的是,在属性值DataBaseName和TableName发生改变时,Active属性值会自动变为False,所以必须将它改成Ture。另外,Fields属性是用来指出数据集的字段列表。应用Fields属性可以访问数据库表格中的字段组合。如果字段是在运行时动态产生的,那么,Fields属性中字段组合的顺序直接与数据集表格中的列的顺序相一致。如果数据集应用的是持续性字段,那么,字段组合的顺序与设计阶段在字段编辑器中设定的字段顺序相一致。对于用户来说,利用Fields属性查字段是

38、非常有用的,因为: 可以重温数据集的部分或全部字段 可以对运行时内部数据结构未知的隐藏表格进行操作如果用户知道独立字段的数据类型,那么他就可以通过Fields属性对字段进行读或写的操作。下面是设置一个Edit box 中Text属性的字段值和读取一个edit box 中Text属性的字段值的例子。Edit1.Text:=CustTable.Fields.Fields6.AsString; /设置CustTable.Edit;/读取CustTable.Fields.Fields6.AsString :=Edit1.Text;CustTable.Post;注意读取和设置字段值的最佳方案是应用持续性

39、字段或FieldByName 方法。Query通过BDE,应用SQL 语句从一个数据库表格中取得数据并通过TDataSource 组件将数据传递给一个或多个数据控制组件。而且,应用SQL语句将从数据控制组件处得到的信息通过BDE传递给数据库。TQuery是一个建立在SQL基础上,专门用于对数据库中的数据进行查询的组件。TQuery组件使用SQL语言,可以一次访问数据库中的一个或多个表格。TQuery组件访问的表格可以是在远程服务器的数据库中(例如:Sybase、SQL Server 、Oracle、Informix、DB2和InterBase),也可以是当地的表格(例如:Paradox、dBA

40、SE、Access和FoxPro),还可以是ODBC-从属数据库。另外,TQuery在开发范围可变的数据库应用程序中显得尤为重要。TQuery组件的重要性体现在: 可同时访问多张表格自动访问基本表格的子集,而不是访问所有的数据TQuery组件和TTable组件同属于数据集组件,它们有着许多相似的地方,但有各自特殊的地方。TQuery组件的特有属性:DataSource指明引入当前字段值的data source 组件;Params包含了用SQL语句查询的参数性质;SQL设置执行查询所需的SQL语句下面详细介绍TQuery组件的几个重要属性:SQL属性是TQuery组件最重要的属性之一,它是用来设

41、置在TQuery组件调用ExecSQL或Open方法执行查询时所需的选择条件的。在设计阶段,可以通过单击对象观察器中的SQL属性栏激活String List editor 窗口,然后在该窗口中编辑SQL语句。除了在String List editor 窗口中编辑SQL语句可以设置SQL属性以外,SQL属性也可以在运行时动态的设置,看下面的一个例子:Query1.Close;Query1.SQL.Clear;Query1.SQL.Add(Delete from Country where Name = America);Query1.Open;从例子里不难看出,SQL属性是一个Tstrings对

42、象。如果要在代码中实现对SQL属性的设置,必须按以下步骤:1) 调用TQuery 的Close方法关闭TQuery对象。2) 调用Tstrings的Clear方法清除TQuery中的SQL属性值。3) 调用Tstrings的Add方法向TQuery的SQL属性中添加SQL语句。4) 调用TQuery 的Open方法或者ExecSQL方法恢复TQuery对象的打开状态。另外,Client/Server应用程序开发者还可以通过激活Visual Query Builder窗口来设置SQL属性值。DataSource属性设置DataSource属性可以自动地将另一个数据集的字段值赋给当前查询的参数,但

43、这些参数必须具有与该数据集相同的字段名。如果不同名,就不能自动地赋值,而必须为其编制程序。例如,在TQuery 组件的SQL属性中设置了以下语句,并且通过DataSource指向的数据集含有一个Country字段,其他数据集就可以利用Country 参数来得到该值。SELECT * FROM Orders O WHERE (O.Country =:Country)DataSource 属性必须是指向一个链接另一个数据集的TdataSource组件。DataSource 属性可以在运行时设定,也可以在设计阶段通过对象观察器在该属性栏的下拉列表中选择适当的TDataSource 组件名。如果TQu

44、ery中的SQL语句应用的是SELECT查询,查询在指向另一数据集的记录指针发生改变时会使用新的字段值,而不必每次调用TQuery 的Open方法。这就使利用DataSource属性动态的过滤查询结果在建立主从关系时显得尤为重要,我们可以将从属数据集的DataSource属性设置为主数据集的TDataSource组件名。如果SQL语句中使用的不是SELECT查询,而是INSERT或UPDATE,与另一数据集同字段名的参数仍然会被赋值。但当记录指针每次发生改变时,查询必须加以声明。例如,一个SQL语句中使用了INSERT并含有参数City和CompanyName:INSERT INTO Citi

45、es(City Company)VALUES (:CityName,:CountryName )另一个数据集Query2和DataSource2,含有CityName字段但没有CountryName字段。如果是通过DataSource属性应用该数据集的,那么,CountryName参数必须通过编制下面的程序来获得字段值。with Query1 do beginDataSource := DataSource1;ParamByName(CountryName).AsString:=Edit1.Text;Prepare;ExecSQL;end;Params属性的基本格式如下:Property Pa

46、ramsIndex: Word TParams;在运行时可以访问Params来动态地观察和设置参数名、参数值和数据类型,在设计阶段可以通过编辑Params属性来设置参数的形式。从Params属性的格式易知,Params参数值是Tparams参数记录的数组。在SELECT 语句中使用Parameters属性不能为NULL,但在UPDATE和INSERT 语句中可以。注意另一种在知道每个参数名时设置和获得参数值的简便方法是调用ParamByName方法。但ParamByName 方法不能用来更改参数的数据类型和参数名。检查ParamCount的值可以知道Params属性中有多少参数。如果Param

47、Check属性值为True,则ParamCount与SQL查询语句中的实际参数数目对应。应用程序对Params属性的操作,例如,增添或删除参数,会自动地反映在ParamCount中。AHMLed组件AHMLed组件是用来形象表示监测站和监测站传感器的分布情况,另外被用作报警指示灯。默认时AHMLed组件的几个重要属性的设置为LedisOn=False,LedOnColor=clRed、LedOffColor=clGreen、Interval=200、Blinking=False,即默认时指示灯出、处在关闭状态、关闭时颜色为绿色、打开时颜色为红色时间间隔为200毫秒、不闪烁。当测点的测值超标时,

48、对应的传感器指示灯为打开状态LedisOn=True、闪烁Blinking=False,此时指示灯就红绿交替闪烁表示报警。当指示灯对应测点的测值正常时指示灯设置为默认状态。RxSlider组RxSlider组件用来形象地表示一个温度计,几个用到的重要组件属性设置如下:MaxValue=100表示温度计的最大刻度为100度、Value=0表示温度值为0、RxSlider3.Options:=soShowFocus,soShowPoints,soSmooth,soRulerOpaque,soThumbOpaque设置温度计刻度背景为粉红色表示温度超标。、AHMCauge组件AHMCauge组件用来

49、形象地表示湿度的百分比,主要用到两个属性 Percentage和InsideBackColor。Percentage属性的值表示湿度百分比的值,如Percentage=30表示湿度百分比为30%。InsideBackColor表示湿度百分比显示的背景色,当InsideBackColor=clRed时表示湿度超标,当InsideBackColor=clWhite时表示湿度正常。3.3 Modem串口通信程序编制随着现代信息技术的发展以及计算机网络的广泛使用,计算机通信技术已经日臻成熟,但串行通信作为一种灵活方便可靠的通信方式,仍不失为有效的通信手段,被广泛应用于工业控制中。在工业生产实践中,用P

50、C机对工程实现实时监控,通常要求PC机能在用户界面上具有数据采集、数据处理以及控制信号的产生与传输等功能。在这种特定的环境下,PC机要与过程控制的实时信号相联系,就要求能实现对PC机的串行端口直接操作。本系统就是用Delphi来实现PC机与下层PLC控制器之间的串口通信接收数据。Windows操作系统的机制禁止应用程序直接访问计算机硬件,但它为程序员提供了一系列的标准API函数,使得应用程序的编制更加方便并且免除了对有关硬件的调试麻烦。在Windows95/NT中,原来Windows3.X的WM_COMMNOTIFY消息已被取消,操作系统为每个通信设备开辟了用户可定义大小的读/写缓冲区,数据进

51、出通信口均由操作系统后台完成,应用程序只需对读/写缓冲区操作即可。WIN95/NT中几个常用的串行通信操作函数如下:CreatFile:打开串行口CloseHandle:关闭串行口SetupComm:设置通信缓冲区的大小ReadFile :读串口操作WriteFile:写串口操作SetCommState :设置通信参数GetCommState :获取默认通信参数ClearCommErro:r清除串口错误并获取当前状态在串行通信程序设计中主要分为两部分,一是通信设备资源(串行口)的设置,包括打开、关闭及串口参数设置等;二是通信事件的处理。设置通信设备资源首先要打开串口(如COM1、COM2等)并

52、获得该串口的当前参数设置(DCB结构),通过修改DCB结构成员的值来设置该串口在应用程序中需要的结构参数。处理通信事件,串口通信事件中较常用的有:CVRXCHAR: 接收到一个字符并放入接收队列中;CVRING:电话线路振铃指示;CVERR: 串口通信出错;CVTXEMPTY:发送队列空。在通信线程中首先设置程序必须要响应的通信事件,然后调用WaitCommEvent() 来处理。串行通信中的数据读/写,在基于事件驱动的串行通信处理过程中,当没有通信事件发生时,线程进入等待状态而使用极少的CPU周期,直到通信事件发生使WaitCommEvent()从操作系统中返回。读操作在通信事件EVRXCH

53、AR发生后进行,写操作在EVTXEMPTY发生后进行,分别使用ReadFile()和WriteFile()函数完成。监测中心PC机上软件使用简述4.1 界面简介、登录界面运行程序后进入程序登录界面,此时,系统已打开,处于运行接收数据状态,每隔10秒程序将检测一次最新巡检的监测点的监测数据。界面上是一幅杭州市城区地图,上面分布这个各监测点,各监测点指示灯为黑色。在界面上能观察到被监测点的指示灯亮起绿色的灯,表示指示灯所在监测点处在被巡检状态。如果有监测数据超标,此监测点的指示灯会由绿色变为红黄色交替闪烁,直到管理员发现并处理过后,变为黑色,不再闪烁。同时,如果设置了报警声音,将有报警声响起。界面

54、如下图所示:、程序主界面通过登录界面上的登录按钮,输入正确的login口令,就进入了程序主界面。程序主界面由上到下分别为菜单栏、快捷工具栏和与登录界面一样的测点分布图。此界面与登录界面不同的是,可以在本界面内进行系统管理和查询等工作,并且,双击指示灯时能察看该测点的监测数据值。界面上有一个memo控件,是用来即时显示事件纪录的。只要有超标事件发生,立刻能在memo栏中显示出具体在何时何地发生了什么事件。点击菜单栏和工具栏中的相应选项可进行自动显示数据、手工察看数据和监测点分布三状态的切换,同时还可进行监测数据的管理(包括查询、打印、删除数据,备份数据等)、曲线设置、设置报警声音、温湿度范围设置

55、、用户设置、隐藏主界面、退出主界面等。界面如下图所示:4.2 自动显示数据简介点击主界面菜单栏文件中的“自动显示”或工具栏中的“自动”都可进入自动察看数据状态,界面如下所示:4.3 设置警示声音在主界面菜单栏设置重点击“声音设置:就会进入设置竟是声音界面,如下图在声音设置中有无声音警告和有声音警告两种选择。当选择设置声音警告时,需在文件路径对话框种指明声音文件及路径,可以点几测试按钮测试选择的声音。无论做出那种选择,点击确定按钮后完成设置。4.4 人工察看数据简介 点击主界面菜单栏文件中的“人工察看”或工具栏中的“察看”都可进入人工察看数据状态。其界面如下所示:通过工具栏里的ComboBox控

56、件选择要察看的地点进行人工察看数据。能观察到点击了要察看的地点后,memo栏中就显示出该地点中发生的所有历史事件,DbGrid中显示该地点的所有历史数据,DbChard显示该地点的历史温度曲线。与此同时,e1,e2,e3显示即时的温度值,s1,s2,s3显示即时得湿度值,而最右下角的烟感、水浸、门禁的指示灯显示即时的是否有超标事件发生。4.5 事件发生时的处理当事件发生时,如果设置了报警声音,就会有报警声发出。同时,可通过指示灯来观察事件发生与否。如果事件发生了,首先,有三个地方可以知道,登陆界面分布图、程序主界面分布图、人工察看界面的最右下角(烟感、水浸、门禁指示灯)处都能发现指示灯在红黄交

57、替的闪烁或红灯亮起。在人工察看界面的最右下角点击phone标志的button,回到程序主界面分布图,观察到是那个站点发生事件。再点击程序主界面分布图上红黄交替闪烁的指示灯一下,告知软件已经排除故障。4.6 数据管理 在主界面菜单栏设置中点击“数据管理”就会进入数据管理界面,如下图所示:查询数据在窗口上边的下拉编辑框中分别选择监测站名称、数据类型、开始结束时间、测点类型登查询条件后,点击确定按钮击可在中间的表格中列出要查询的数据。就时间条件加以详述:当要查询一段时间内的数据时,开始结束时间编辑框内都需添入日期;当要查询某一日期以后的数据时,只需在开始时间编辑框内添如此日期即可;当要查询某一日起以

58、前的数据时,只需在结束时间编辑框内添入次日日期即可。打印数据按查询数据的步骤将要打印的数据查询出来后,点击数据表格下边的打印按钮,就会进入打印预览界面。点击打印预览上边的打印机图标,要打印的数据就能打印出来了。数据删除按查询数据的步骤将要删除的数据查询出来后,点击数据表格下边的删除按钮,就将弹出如下所示的删除提示界面:点击取消按钮后将取消删除操作,如果点击确定按钮将会删除提示对话框内所提示的数据。注意:删除数据只能按日期删除。参考文献1、赵立平,张治,赵阳编著 DELPHI数据库应用程序开发技术机械出版社2、张育荣,曾彦贺编著 Delphi:从入门到精通电脑报出版社3、(美).沃兹涅维茨,N.

59、沙马斯著DELPHI程序员指南 机械出版社4、肖永顺 刘韬 李生海 黄军万 黄亮 编著 Delphi程序设计 人民邮电出版社5、RS-232和调制解调器高级通信编程人民邮电出版社6、李朝青 编著 PC机及单片机数据通信技术北京航空航天大学岀版结束语 历时三个月的毕业设计即将结束,三个月内在指导老师的悉心指导下基本上完成毕业设计内容。在设计过程中使我认识到严谨的工作态度在实际工作中的重要性,粗心大意就等于走弯路。同时毕业设计培养了我独立处理解决设计软件的能力,系统学习了软件Delphi6.0的使用及Modem串口通信编程等知识;巩固了单片机及微机原理等专业知识;并且通过查阅相关资料扩大了知识面。

60、 不足之处是由于去公司实习的原因,未能实现要求的全部软件的功能;同时由于本人的水平有限,设计中不足之处在所难免,请各位老师指正。 最后感谢我的导师张小明老师和纪春波同学,在我毕业设计期间不厌其烦的指导;同时感谢在大学四年为培养我们而付出辛勤汗水的所以老师们!附:英文资料Developing database applicationsConnecting to databases Overview Most dataset components can connect directly to a database server. Once connected, the dataset commu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论