三相智能电表软件系统设计课程设计说明书

上传人:仙*** 文档编号:82155992 上传时间:2022-04-28 格式:DOC 页数:40 大小:1.37MB
收藏 版权申诉 举报 下载
三相智能电表软件系统设计课程设计说明书_第1页
第1页 / 共40页
三相智能电表软件系统设计课程设计说明书_第2页
第2页 / 共40页
三相智能电表软件系统设计课程设计说明书_第3页
第3页 / 共40页
资源描述:

《三相智能电表软件系统设计课程设计说明书》由会员分享,可在线阅读,更多相关《三相智能电表软件系统设计课程设计说明书(40页珍藏版)》请在装配图网上搜索。

1、西华大学课程设计说明书 三相智能电表软件系统设计摘 要:三相智能电表适用于电力电网、自动化控制等领域,他集遥测、遥信、遥控、显示、通讯等众多功能与一体,能够完成1回线路的电流、电压、功率、功率因素、频率、电度等电参量的监测。产品具有可编程功能、DC420mA模拟量输出、RS232串行口和开关量输出等功能,可以实现与监控系统的联网或数据的远程传输等功能。本三相智能电表软件系统基于Visual Basic语言程序设计,由串口链接和可视化程序界面(数据采集、显示,保存和查询)组成。能实现三相电力数据的采集、显示、保存和查询等功能。关键词: Visual Basic,RS232串行口,数据库Abstr

2、act: Three phase smart meter is suitable for the power grid, automation control and other fields, he set telemetry, remote communication, remote control, display, communication, and many other functions, and an organic whole, can complete 1 line current, voltage, power, power factor, frequency, the

3、monitoring of electrical parameters, such as electric degrees. Product has the function of the programmable, DC4 20 ma analog output and RS232 serial port and switch output, and other functions, can be achieved with the monitoring system of the network, or data remote transmission, and other functio

4、ns. The three phase smart meter software system based on Visual Basic language programming, by serial links and visualization program interface (data collection, display, save and query). Can realize three-phase power data acquisition, display, save and query, etc.Keywords: Visual Basic,RS232 serial

5、 port,data base 目录1 前言12 总体方案22.1方案一22.2方案二23单元模块设计43.1 数据接收43.1.1 单片机电路43.1.2 RS232串口53.2 数据显示模块63.3历史数据查询94软件设计114.1 RS232串口通信标准114.2登录界面的软件代码设计原理124.3实时数据显示界面的软件代码设计原理124.4历史数据显示界面的软件代码设计原理174.5软件设计流程图205基于Visual Basic的数据库操作215.1创建数据库的步骤215.2查询数据的步骤217总结与体会238参考文献24附录251 Visual Basic设计界面252Visual

6、 Basic 代码28 1 前言伴随着我国工业化进程的前进步伐,工业及居民用电急剧增加,庞大的供电网络给用电管理单位带来了巨大挑战,也给居民工厂带来了诸多不便。为此我国在“十二五规划”中提出建设“智能电网”的解决方案,实现电网、计算机网、电信网三网融合。传统的机械式电表及电子式电表无论是在计量精度还是在信息传递方面都难以满足“智能电网”的需求,在这种情况下智能电表应运而生。智能电表是指具有多功能化、智能化、网络化等功能的新式电表,是智能电网的基本设备之一,承担着原始电能数据采集、计量和传输的任务。智能电表设计的课题研究富有实用价值和市场前景。首先,智能电表能够更方便、精确地计量电能,数字显示界

7、面更加直观方便;其次其智能化可以帮助管理单位实现远程管理、提醒居民按时缴费、详细记录用电明细表。节省了管理单位的人力、物力资源。最后智能电表可以通过加密防止用户窃电,安全性更高国内智能电表的设计尚处于起步阶段,主要集中在应用方面,电量测量ASIC则主要依赖进口产品。在2007年12月初,国家发改委发布了多功能电能表和多功能电能表通信协议两个行业标准,2009年10月,国家电网公司公布了智能电表新标准,提高了电表在计量、费控、通信、功耗、电子线路布线等技术指标,含有MCU成为必选项,要求有更高的计算能力。随着我国智能电网的建设,智能电表的大规模应用即将启动,预计2015年我国智能电表覆盖率80%

8、,2020年达到100%。可见我国的智能电表设计研究还有很大的潜力空间,智能电表在网络化、智能化、多功能化等方面还需要我们继续深入研究。2 总体方案分析课题需求,将系统整体分为电量测量和历史数据的存储管理两部分。电量测量部分选用RS232串口和VB程序语言实现,能够完成三相电量的准确计量。该部分是设计的关键和基础。历史数据的存储管理管理部分除核心元件微处理器外,这部分电路把第一部分测试的三相电参数进行存储、显示和远传;完成人机交互,方便用户或操作人员查询数据;还可以扩展三相智能电度表的其它功能要求,使其达到智能化,易于功能扩展。2.1方案一 被测三相电压、三相电流通过相应互感器转变为能被后端电

9、路接收的电信号,变化之后的信号需要做两方面的处理,一方面检测电压电流的相位差,确定功率因数,另一方面线性调整信号,传输给后端的A/D转换器。电压、电流转换后的数字量和功率因数值传输给CPU处理器,根据三相功率、三相能量等电参数的计算公式计算相应的各个电参数,并对计算数据做相应处理。该方案存在电路结构复杂,参数测试误差大,编程复杂、故障排除复杂等缺点。该技术方案已不再适用于工业环境中三相电能表的电参数测量。数据显示CPU处理器RS232串口数据接收图2.1数据采集显示流程图2.2方案二 使用RS232串口和Visual Basic编程软件直接对电能的各项参数进行检测和转换,在结合STC90C52

10、单片机与VB界面显示就能对电能的各项参数进行显示。再将测得的各项参数由数据库保存,便于完成人机交互,方便用户或操作人员查询数据。 比较以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计容易实现,故实际设计中拟采用方案二。本设计方框图如图2.2所示,它由四部分组成:1、控制部分主芯片采用单片机STC89C52和RS232串口;2、VB显示界面;3、实时数据显示传输;4、历史数据查询。该方案的智能电表能够更方便、精确地计量电能,数字显示界面更加直观方便;其次其智能化可以帮助管理单位实现远程管理、提醒居民按时缴费、详细记录用电明细表。节省了管理单位的人力、物力资源。最后智能电表可以通过加加

11、密防止用户窃电,安全性更高。实时数据显示单片机与RS232串口VB显示界面历史数据查询图2.2总体设计方案 以该方案为基础选择Visual Basic软件设计方法,完成多点数据采集上位机处理系统的编程工作,需要进一步熟悉Visual Basic语言的基本知识与Visual Basic数据库有关的知识,需要团队协作与请教同学与老师,还需要到图书馆借阅资料与上网查阅相关资料,这样才能完成该课程设计。多点数据采集上位机处理系统该软件的难点是Visual Basic的编程方面,与怎样实现PC机与单片机的连接问题及数据的采集与如何将数据写入数据库等问题。可以将多点数据采集上位机处理系统应用于三相智能电表

12、的软件系统,从而完成智能电表的设计。3单元模块设计3.1 数据接收 通过RS232串口将单片机与微机相连,通过vb程序的处理,完成数据的接收。3.1.1 单片机电路 单片机电路如图3.1.1示。 图3.11单片机电路 AT89C52是一款超强抗干扰/高速/低功耗的单片机,AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机

13、可为您提供许多较复杂系统控制应用场合。 AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。 3.1.2 RS232串口 RS-232-C是美国电子工业协会EIA(Electronic Industry Association)制定的一种串行物理接口标准。RS是英文“推荐标准”的缩写,232为标识号,C表示修

14、改次数。RS-232-C总线标准设有25条信号线,包括一个主通道和一个辅助通道。在多数情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。RS-232-C标准规定的数据传输速率为50、75、100、150、300、600、1200、2400、4800、9600、19200、38400波特。RS-232-C标准规定,驱动器允许有2500pF的电容负载,通信距离将受此电容限制,例如,采用150pF/m的通信电缆时,最大通信距离为15m;若每米电缆的电容量减小,通信距离可以增加。传输距离短的另一原因是RS-232属单端信号传送,存在共地噪声和不能抑制共

15、模干扰等问题,因此一般用于20m以内的rs232(9针)接口通信。 图3.1.2 RS232串口图3.2 数据显示模块 主要是通过Visual Basic软件处理RS232串口传来的数据,并在Visual Basic的界面中显示数据。其中包括界面和代码两部分。(1)界面部分如图3.2.1,其中图片框Picture1,要在属性窗口中设置它的picture属性,以便加入图片,并在Picture1的属性窗口中设置它的BorderStyle属性为0,目的是去除Picture1的边框,再将Picture1的AutoSize属性设置为True,以便图像框的大小适应图片框的大小,这样西华大学的标致就完美的加

16、入在图片框里面了。其中图片框Picture2中包含lable2和label4两个标签,这两个标签的Caption属性均设置为: 图3.2.1登录界面欢饮进入西华大学电能管理中心!并将两个lable的AutoSize属性设置为True,Lable2和Lable4两者之间有一定的距离。再加上与代码的配合,这个标志便能在图片框Pictuer2中滚动显示了,并且当Lable2的“欢”字消失的时候,Lable4的“欢”字刚好出现,二者配合的相当完美。其中由Lable1构成,并设置它的AutoSize属性为True, 其中由命令按钮构成,并设置它的Caption属性为“登陆”。其中为时钟控件,它的应用是为

17、了完成的滚动显示。其中由Lable2组成,并设置它的AutoSize属性为True,一边字体的大小适应Lable2的大小,并修改Lable2的Caption属性为Copyright(c)fyr 2013,这样Lable2的设计就完成了,再将Form1的Caption属性设置为“登陆”,这样登陆窗体的第一个界面就完成了。 图3.2.2实时数据显示界面(1)图3.2.2实时数据显示界面(2)(2)数据显示界面包括实时数据显示和历史数据显示,图3.2.2为实时数据显示界面。首先要添加一个名称为SSTab1的控件,并将该控件的Height与Width属性值与Form2窗体的属性值设置为同一值。并将Fo

18、rm2的Caption属性值设置为“电能参数”。将SSTab1控件的Tabs与TabsPerRow属性值均设置为2。并将SSTabs控件的Caption属性值设置为“实时数据”与“历史数据”这样SSTabs1控件就完成了,然后如图3.2.2所示再在SSTab1上添加16个文本框控件与label标签。添加组合框控件Combo1,并将其text属性设置为COM1,并将其list属性值设置为COM1、COM2、COM3、COM4、COM5,以便串口的选择。其中为通信控件,实现的是RS232控件与上位机的通信,其中为时钟控件,控制的是采样的频率,其中为图像框Shape控件,要将图像框的shape属性选

19、择为3-circle,将BackStyle属性设置为1-Opaque,这样图像框的设计就完成了。再添加和这两个控件,这样就完成了实时数据界面的设计。 图3.2.3历史数据显示界面 图3.2.3历史数据显示界面主要包括DataGrid控件、的命令按钮控件和的时钟控件。该界面的设计很简单主要是完成历史数据的查询和显示。3.3历史数据查询 单击图3.2.3历史数据显示界面中的命令按钮就会弹出图3.3.1历史数据查询界面。其中与分别为两个标签,其中与分别为两个文本框,其中为命令按钮。其中为名称为datDatactl的控件。其作用是显示查询后的历史数据。分别在为本框text1和text2中输入查询时间,

20、单击命令 图3.3.1历史数据查询界面按钮,就可以完成历史数据的查询,并将结果显示在控件中,这样整个历史数据的查询就完成了。整个操作过程非常简单便捷。4软件设计4.1 RS232串口通信标准 串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使

21、用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配: a,波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300

22、波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。 b,数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0127(7位)。扩展的ASCII码是0255(8位)。如果数据使

23、用简单的文本(标准 ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。 c,停止位:用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。 d,奇偶校验位:在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也

24、是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇校验,校验位位1,这样就有3个逻辑高位。高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。4.2登录界面的软件代码设计原理 登陆界面如图4.2.1,其中和需要设置代码,的代码为Form1.Hide 与Form2.Show,这部分代码的功能是单击登陆按钮后隐藏登陆界面,显示实时数据显示界面

25、与历史数据显示界面,便于数据的显示。的timer事件的代码为Label2.Left = Label2.Left 100,其作用是每个一个时钟周期也就是200ms,就将向左移动100各单位的距离。If Label2.Left = -(Label2.Width) Then Label2.Left = 5070 End If 这三句代码的作用是当全部移动到图片框外时,它距离图片框左边的距离为5070个单位,以便控件能够在图片框中滚动显示。Label4.Left = Label4.Left 100 If Label4.Left = -(Label4.Width) Then Label4.Left =

26、5070End If这部分代码的作用与前一部分代码的功能类似,代码的作用是为了让两个标签中的“欢迎进入西华大学电能管理中心!”的字体循环显示。 4.3实时数据显示界面的软件代码设计原理 图4.3.1实时数据显示界面中的按钮和按钮与需要设置代码,还有窗体的form load事件需要代码,控件需要代码,该通讯控件需要代码。(1)按钮的名称为ckcmd,代码If ckcmd.Caption = 打开串口 的作用是:如果的caption属性是“打开串口”,代码Then MSComm1.PortOpen = True的作用是打开相应的RS232串口,代码 ckcmd.Caption = 关闭串口的作用是

27、名称为ckcmd的按钮的caption属性变为“关闭串口”,代码 Shape1.FillColor = &HFF&的作用是将shape控件的颜色变为红色,代码Combo1.Enabled = False 的作用是组合框不可用, 代码dqcmd.Enabled = True的作用是按钮变为可用。代码Else ckcmd.Caption = 打开串口的作用是: 如果名称为ckcmd按钮的caption属性是“关闭串口”单击该命令按钮之后ckcmd的按钮caption属性变为“打开串口”,代码MSComm1.PortOpen = False的作用是:单击命令按钮后,关闭相应的串口。代码Combo1.

28、Enabled = True的作用是组合框可用,可以选择相应的串口。代码 Shape1.FillColor = 0 Shape2.FillColor = 0 的作用是两个图像框均变为黑色,以显示现在未从串口中读取数据。代码 dqcmd.Caption = 自动读取 的作用是按钮的caption属性变为 “自动读取”代码dqcmd.Enabled = False End If Exit Sub的作用是按钮变为不可用,结束If语句和退出Sub过程。代码 On Error GoTo BLAK的作用是:如果出错就跳到名称为BLAK的子程序。代码BLAK: MsgBox 串口不存在或者被占用!, vbO

29、KOnly, 提示信息的作用是如果出错就用MsgBox显示相应的提示信息。如图4.3.2所示。(2)命令按钮的名称为dqcmd,代码If dqcmd.Caption = 自动读取 的作用是如果按钮的caption属性是“自动读取”,代码 Thendqcmd.Caption = 暂停读取 的作用是单击该按钮后名称为dqcmd的命令按钮的caption属性变为 “暂停读取”。代码 Shape2.FillColor = &HFF& 的作用是shape2的颜色变为红色,代码Timer1.Enabled = True的作用是timer1不可用,代码Else 图4.2.1登录界面 图4.3.1实时数据显示

30、界面(1) 图4.3.2错误提示界面图4.3.1实时数据显示界面(2)化SSTab1控件的高度、宽度等参数。代码MSComm1.Settings = 9600,n,8,1 的作用是:设置初始化参数,设置RS232的波特率等,代码MSComm1.InputLen = 0 的作用是清空从接收缓存器中读到的字符。代码Timer1.Interval = 1000 Timer1.Enabled = False的作用是设置Timer1的Interval属性为1s。代码dqcmd.Enabled = False的作用是最开始按钮不可用。代码Data2.DatabaseName = C:fyrMy Docum

31、entsjkh.mdb Data2.RecordSource = jkh的作用是在C盘创建一个文件夹以便保存数据。 代码Timer2.Interval = 60000 的作用是设置数据库采样周期为6秒。代码Text1.Text = Text2.Text = Text3.Text = Text4.Text = Text5.Text = Text6.Text = Text7.Text = Text8.Text = Text9.Text = Text10.Text = Text11.Text = Text12.Text = Text13.Text = Text14.Text = Text15.Tex

32、t = Text16.Text = 的作用是在form load事件中将这16个文本框清空。代码 End Sub 的作用是结束form load这个事件过程。(5),该组合框按钮的名称是Combo1,代码MSComm1.CommPort = Combo1.ListIndex + 1的作用是:单击组合框打开相应的串口。(6)它为通讯控件,它能实现单片机与上位机之间的通讯。代码Dim m1 As Single的作用是设置m1是单精度类型的变量,代码Select Case MSComm1.CommEvent的作用是控件MSComm1的CommEvent事件,代码Case comEventRxOver

33、 Exit Sub的作用是如果检测到comEventRxOver事件就退出Sub过程。代码Case comEvReceive BytReceived = MSComm1.Input的作用是MSComm1控件的comEvReceive事件,将接受到的数据放到BytReceived()变量中,代码For i = 0 To UBound(BytReceived)的作用是for循环从0开始到BytReceived的上限,代码 If Len(Hex(BytReceived(i) = 1 Then strData = strData & 0 & Hex(BytReceived(i)的作用是将BytRece

34、ived(i)转换为16进制数,如果只有一位数则在前面添0,并将它赋给strData这个数组中,代码ElsestrData = strData & Hex(BytReceived(i)的作用是:否则,直接将BytReceived(i)赋给变量strData中,代码End If flag = strData的作用是:结束if语句,将strData 赋给变量 flag,代码 If Len(flag) = 2 Then的意思是:如果flag的长度是2,代码If flag = F0 Or F1 Or F2 Or F3 Or F4 Or F5 Or F6 Or F7 Or F8 Then flag =

35、Else strData = flag = End If End IF的作用是设置F0,F1,F1,F3,F4,F5,F6,F7,F8为标志位,如果检测到标志位则将flag清空,如果没有检测到标志位,则将flag和ctrData均清空。代码If Len(flag) = 10 Then flag = Mid(flag, 9, 2)的作用是如果flag的长度是10,则取flag的后两位赋给新的变量flag,代码的If flag = 0F Then flag = gl = AP ElseIf flag = 1F Then flag = gl = AQ ElseIf flag = 2F Then fl

36、ag = gl = ASZ ElseIf flag = 3F Then flag = gl = BP ElseIf flag = 4F Then flag = gl = BQ ElseIf flag = 5F Then flag = gl = BSZ ElseIf flag = 6F Then flag = gl = CP ElseIf flag = 7F Then flag = gl = CQ ElseIf flag = 8F Then flag = gl = CSZ这部分代码的作用是根据需要将A、B、C三相的有功,无功和视在电功放在相应的变量中。代码newdata = Mid(strDat

37、a, 3, 6) strData = End If的作用是将strData的3至6位赋值给变量newdata中。代码findata = Val(&H & newdata)的作用是将newdata转化为16进制数赋给findata中。代码Select Case gl Case AP Text1.Text = findata Case AQ Text2.Text = findataCase ASZ Text3.Text = findata Case BP Text5.Text = findata Case BQ Text6.Text = findata Case BSZ Text7.Text =

38、findata Case CP Text9.Text = findata Case CQ Text10.Text = findata Case CSZ Text11.Text = findata End Select的作用是把电功在对应的文本框中显示。代码Text13.Text = Text1.Text + Text5.Text + Text9.Text的作用是在text13中显示总的有功,代码Text14.Text = Text2.Text + Text6.Text + Text10.Text的作用是在text14中显示总的无功,代码Text15.Text = Text3.Text + Te

39、xt7.Text + Text11.Text的作用是在text15中显示总的视在电功。代码Text4.Text = Text1.Text / Text3.Text的作用是在text4中显示A相功率因素,代码Text8.Text = Text5.Text / Text7.Text的作用是在text8中显示B相功率因素,代码 Text12.Text = Text9.Text / Text11.Text的作用是在text12总显示C相功率因素。代码Text16.Text = Text13.Text / Text15.Text的作用是在text16中显示总的功率因素,代码Nexti End Selec

40、t End Sub的作用是结束select语句,结束sub过程。以上便是整个实时数据界面的软件代码的设计的详细解释与说明,没有任何的语法错误。4.4历史数据显示界面的软件代码设计原理历史数据显示界面如图4.4.1所示,其中和需要设计代码。 图4.4.1历史数据显示界面(1)其中的代码If Data2.Recordset.EOF = False Then的作用是在数据库的末尾加入新记录。代码Data2.Recordset.MoveLast End If 的作用是加入新记录。代码Data2.Recordset.AddNew Data2.Recordset.Fields(0) = Date 的作用是

41、添加系统日期。代码Data2.Recordset.Fields(1) = Time 的作用是将系统时间写入数据库中。代码Data2.Recordset.Fields(2) = Val(Text13.Text) 的作用是将总有功写入数据库中。代码Data2.Recordset.Fields(3) = Val(Text14.Text) 的作用是将总无功写入数据库中。代码Data2.Recordset.Fields(4) = Val(Text15.Text)的作用是将总视在电功写入数据库中。代码Data2.Recordset.Fields(5) = Val(Text16.Text) 的作用是将总功率

42、因数写入数据库中。代码Data2.Recordset.Fields(6) = Val(Text1.Text)的作用是将A有功写入数据库中,代码Data2.Recordset.Fields(7) = Val(Text2.Text) 的作用是将A无功写入数据库中,代码Data2.Recordset.Fields(8) = Val(Text5.Text) 的作用是将B相有功写入数据库中。代码Data2.Recordset.Fields(9) = Val(Text6.Text) 的作用是将B相无功写入数据库中。代码Data2.Recordset.Fields(10) = Val(Text9.Text)

43、的作用是将C相有功写入数据库中。代码Data2.Recordset.Fields(11) = Val(Text10.Text) Data2.Recordset.Updat的作用是将C相无功写入数据库中。(2)其中的代码Form3.Show的作用是单击该命令按钮就进入form3历史数据查询窗体。如图4.4.2所示。 图4.4.2对于图4.4.2的窗体需要对和窗体的form load事件写代码。(1)其中的代码Set dbs = OpenDatabase(c:fyrMy Documentsjkh.mdb) strSQL = PARAMETERS DateFrom DateTime, & _ & D

44、ateTo DateTime;strSQL = strSQL & SELECT*FROM jkh WHERE & _ & 日期 BETWEEN strSQL = strSQL & DateFrom AND DateTo; 的作用是创建一个非存储的参数查询。代码Set qdf = dbs.CreateQueryDef(, strSQL) 的作用是:提示输入起始日期。代码strDateFrom = InputBox(输入查询起始日期) 的作用是提示输入终止日期。代码strDateTo = InputBox(输入查询终止日期)的作用是设置查询的参数。代码qdf.Parameters(DateFrom

45、) = strDateFrom qdf.Parameters(DateTo) = strDateTo 的作用是起始日期显示。代码Text1.Text = strDateFrom的作用是终止日期显示。代码Text2.Text = strDateTo的作用是对查询打开动态集记录。代码Set rst = qdf.OpenRecordset(dbOpenDynaset) Set datDatactl.Recordset = rst的作用是赋值并显示。(2)form load事件的代码datDatactl.DatabaseName = c:fyrMy Documentsjkh.mdb datDatact

46、l.RecordSource = jkh的作用是查询数据库中的内容并复制显示。4.5软件设计流程图电能参数数据界面及代码设计用电量数据界面及代码设计密码界面及代码设计登陆界面及代码设计历史数据查询界面及代码设计历史数据界面及代码设计串口提示界面及代码设计5基于Visual Basic的数据库操作5.1创建数据库的步骤 外接程序可视化文件新建数据库Microsoft AccessVersion 2.0 MDB输入要创建的数据库名称,这样就能在指定的磁盘位置创建一个目录。 5.2查询数据的步骤 外接程序可视化文件打开数据库Microsoft AccessMy Documentsjkh.mdb打开。

47、这样就能打开事先创建好的数据库。 6课程设计结论 本次课程设计是比较圆满的,三相智能电表软件系统设计的难点主要是代码。界面设计比较简单,及控件的属性设置较为复杂,还有就是程序与RS232之间的通讯比较难实现,必须要求代码的准确无误。还有必须注重团队合作和查阅相关的资料及向陈高燕老师的请教。7总结与体会本设计使用的Visual Basic语言简单、可视化,具有一定的实际应用价值。该课程设计是控制领域的一个简单实例,还有许多需要完善的地方,例如可以将测得的数据通过单片机与通讯模块相连接,以手机短消息的方式发送给用户,使用户能够随时对温度进行监控。此外,还能广泛地应用于其他一些工业生产领域,如建筑,

48、仓储等行业。本控制系统可以应用于多种场合。用户可灵活选择本设计的用途,有很强的实用价值。 通过这次课程设计,让我对单片机以及RS232串口,及vb程序语言有了进一步的了解、巩固和加深,并且对所学知识的得以实际应用。与我所学芯片再一次零距离接触,进一步加深我对各个芯片的功能和特性的了解。 微机控制与接口技术课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.回顾起此次课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在短短的两个星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以

49、巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次微机控制与接口技术的课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。在此智能电表的软件系统设计中设计过程中,让我了解到了现代程序设计的原理。以前在实际生活中看到的电表等产品就只会用他们并不知道他们的工作原理,通过这次课程设计对这些产品的原理有了深入的了解。同时这次课程设计大大提高了我的动手能力,为我以后的工作和学习奠定了基础,在以后的生活中我也可以用我所学的知识和对芯片功能的了解来设计一些日常生活所需

50、的电子产品。实训时间很短,但是通过这次实训可以学到很多书本没有的东西,有了这一次的实践经验,我们的动手能力和思维能力也相应的得到了的提高,这次实训进一步锻炼了自己的逻辑思维能力,并从中总结出宝贵的经验。最后,在此感谢陈高燕老师的细心指导与其他各位同学的无私帮助!8参考文献1.李长林编Visual Basic串口通信技术与典型实例北京:清华大学出版社.2.范逸之 等编Visual Basic实现串并行通信技术北京:清华大学出版社.3.四维科技 赵思恩编Visual Basic数据库编程技术与实例北京:人民邮电出版社. 4.张朝昆 施丽娜著Visual Basic数据库开发基础与应用北京:人民邮电

51、出版社5.姚巍主编Visual Basic数据库开发从入门到精通北京:人民邮电出版社6.李江全等编Visual Basic数据库采集与串口通信测控应用实战北京:人民邮电出版社7. 李江全等编Visual Basic串口通信与测控应用技术实战详解北京:人民邮电出版社附录1 Visual Basic设计界面 图3.2.1登录界面 图4.3.1用电量数据显示界面 图4.3.2电能参数数据界面 图4.3.2错误提示界面 图4.3.3错误信息提示界面 图4.4.1历史数据显示界面 图4.4.2历史数据查询界面2Visual Basic 代码Private Sub Command1_Click() Tex

52、t2.passowrdchar = * If Text1.Text = xhdn And Text2.Text = fyr Then Form1.Hide Form2.Show Else MsgBox 请输入正确的用户名和密码!, vbOKOnly, 错误信息 End IfEnd SubPrivate Sub Command2_Click() Text1.Text = Text2.Text = End SubPrivate Sub Form_Load() Text1.Text = Text2.Text = Text2.PasswordChar = * 密码框显示为* Timer1.Interv

53、al = 200End SubPrivate Sub Timer1_Timer() Label2.Left = Label2.Left - 100 If Label2.Left = -(Label2.Width) Then Label2.Left = 5070 End If Label4.Left = Label4.Left - 100 If Label4.Left = -(Label4.Width) Then Label4.Left = 5070 End IfEnd Sub=系统加载部分=Dim BytReceived() As ByteDim strBuff As String, strD

54、ata As String, newdata As String, flag As String, dn As String, AP As String, AQ As StringDim AV As String, AI As String, AGL As String, BV As String, BI As String, BGL As StringDim CV As String, CI As String, CGL As StringDim ASZ As String, BP As String, BQ As String, BSZ As String, CP As String, C

55、Q As String, CSZ As StringDim i%, j%, k%, m%Dim findata As SinglePrivate Sub Form_Load() SSTab1.Top = 0 SSTab1.Left = 0 SSTab1.Height = Form2.Height SSTab1.Width = Form2.Width MSComm1.Settings = 9600,n,8,1 设置初始化参数 MSComm1.InputLen = 0 清空从接收缓存器中读到的字符 Timer1.Interval = 1000 Timer1.Enabled = False dqcm

56、d.Enabled = False Data2.DatabaseName = C:fyrMy Documentsjkh.mdb !zhuyi Data2.RecordSource = jkh Timer2.Interval = 60000 数据库采样周期为6秒 Text1.Text = Text2.Text = Text3.Text = Text4.Text = Text5.Text = Text6.Text = Text7.Text = Text8.Text = Text9.Text = Text10.Text = Text11.Text = Text12.Text = Text13.Tex

57、t = Text14.Text = Text15.Text = Text16.Text = Text17.Text = Text18.Text = Text19.Text = Text20.Text = Text21.Text = Text22.Text = Text23.Text = Text24.Text = Text25.Text = Text26.Text = Text27.Text = Text28.Text = End Sub=端口选择部分程序=Private Sub Combo1_Click() MSComm1.CommPort = Combo1.ListIndex + 1End Sub=打开串口部分=Private Sub ckcmd_Click()On Error GoTo BLAK If ckcmd.Caption = 打开串口 Then MSComm1.PortOpen = True ckcmd.Caption = 关闭串口 Shape1.FillColor = &HFF& Combo1.Enabled = False dqcmd.Enabled = True Else ckcmd.Caption

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!