




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Good is good, but better carries it.精益求精,善益求善。三相智能電表軟件系統(tǒng)設(shè)計課程設(shè)計說明摘 要三相智能電表軟件系統(tǒng)設(shè)計摘 要:三相智能電表適用于電力電網(wǎng)、自動化控制等領(lǐng)域,他集遙測、遙信、遙控、顯示、通訊等眾多功能與一體,能夠完成1回線路的電流、電壓、功率、功率因素、頻率、電度等電參量的監(jiān)測。產(chǎn)品具有可編程功能、DC420mA模擬量輸出、RS232串行口和開關(guān)量輸出等功能,可以實現(xiàn)與監(jiān)控系統(tǒng)的聯(lián)網(wǎng)或數(shù)據(jù)的遠(yuǎn)程傳輸?shù)裙δ堋1救嘀悄茈姳碥浖到y(tǒng)基于Visual Basic語言程序設(shè)計,由串口鏈接和可視化程序界面(數(shù)據(jù)采集、顯示,保存和查詢)組成。能實現(xiàn)三相
2、電力數(shù)據(jù)的采集、顯示、保存和查詢等功能。關(guān)鍵詞: Visual Basic,RS232串行口,數(shù)據(jù)庫Abstract: 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
3、 current, voltage, power, power factor, frequency, the 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
4、network, or data remote transmission, and other functions. 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,
5、save and query, etc.Keywords: Visual Basic,RS232 serial port,data base 目錄1 前言02 總體方案12.1方案一12.2方案二13單元模塊設(shè)計33.1 數(shù)據(jù)接收33.1.1 單片機(jī)電路33.1.2 RS232串口43.2 數(shù)據(jù)顯示模塊53.3歷史數(shù)據(jù)查詢84軟件設(shè)計104.1 RS232串口通信標(biāo)準(zhǔn)104.2登錄界面的軟件代碼設(shè)計原理114.4歷史數(shù)據(jù)顯示界面的軟件代碼設(shè)計原理164.5軟件設(shè)計流程圖195基于Visual Basic的數(shù)據(jù)庫操作205.1創(chuàng)建數(shù)據(jù)庫的步驟205.2查詢數(shù)據(jù)的步驟207總結(jié)與體會228參考文獻(xiàn)
6、23附錄241 Visual Basic設(shè)計界面242Visual Basic 代碼271 1 前言伴隨著我國工業(yè)化進(jìn)程的前進(jìn)步伐,工業(yè)及居民用電急劇增加,龐大的供電網(wǎng)絡(luò)給用電管理單位帶來了巨大挑戰(zhàn),也給居民工廠帶來了諸多不便。為此我國在“十二五規(guī)劃”中提出建設(shè)“智能電網(wǎng)”的解決方案,實現(xiàn)電網(wǎng)、計算機(jī)網(wǎng)、電信網(wǎng)三網(wǎng)融合。傳統(tǒng)的機(jī)械式電表及電子式電表無論是在計量精度還是在信息傳遞方面都難以滿足“智能電網(wǎng)”的需求,在這種情況下智能電表應(yīng)運(yùn)而生。智能電表是指具有多功能化、智能化、網(wǎng)絡(luò)化等功能的新式電表,是智能電網(wǎng)的基本設(shè)備之一,承擔(dān)著原始電能數(shù)據(jù)采集、計量和傳輸?shù)娜蝿?wù)。 智能電
7、表設(shè)計的課題研究富有實用價值和市場前景。首先,智能電表能夠更方便、精確地計量電能,數(shù)字顯示界面更加直觀方便;其次其智能化可以幫助管理單位實現(xiàn)遠(yuǎn)程管理、提醒居民按時繳費(fèi)、詳細(xì)記錄用電明細(xì)表。節(jié)省了管理單位的人力、物力資源。最后智能電表可以通過加密防止用戶竊電,安全性更高國內(nèi)智能電表的設(shè)計尚處于起步階段,主要集中在應(yīng)用方面,電量測量ASIC則主要依賴進(jìn)口產(chǎn)品。在2007年12月初,國家發(fā)改委發(fā)布了多功能電能表和多功能電能表通信協(xié)議兩個行業(yè)標(biāo)準(zhǔn),2009年10月,國家電網(wǎng)公司公布了智能電表新標(biāo)準(zhǔn),提高了電表在計量、費(fèi)控、通信、功耗、電子線路布線等技術(shù)指標(biāo),含有MCU成為必選項,要求有更高的計算能力。
8、隨著我國智能電網(wǎng)的建設(shè),智能電表的大規(guī)模應(yīng)用即將啟動,預(yù)計2015年我國智能電表覆蓋率80%,2020年達(dá)到100%。 可見我國的智能電表設(shè)計研究還有很大的潛力空間,智能電表在網(wǎng)絡(luò)化、智能化、多功能化等方面還需要我們繼續(xù)深入研究。2 總體方案分析課題需求,將系統(tǒng)整體分為電量測量和歷史數(shù)據(jù)的存儲管理兩部分。電量測量部分選用RS232串口和VB程序語言實現(xiàn),能夠完成三相電量的準(zhǔn)確計量。該部分是設(shè)計的關(guān)鍵和基礎(chǔ)。歷史數(shù)據(jù)的存儲管理管理部分除核心元件微處理器外,這部分電路把第一部分測試的三相電參數(shù)進(jìn)行存儲、顯示和遠(yuǎn)傳;完成人機(jī)交互,方便用戶或操作人員查詢數(shù)據(jù);還可以擴(kuò)展三相智能電度表的其它功
9、能要求,使其達(dá)到智能化,易于功能擴(kuò)展。2.1方案一 被測三相電壓、三相電流通過相應(yīng)互感器轉(zhuǎn)變?yōu)槟鼙缓蠖穗娐方邮盏碾娦盘?,變化之后的信號需要做兩方面的處理,一方面檢測電壓電流的相位差,確定功率因數(shù),另一方面線性調(diào)整信號,傳輸給后端的A/D轉(zhuǎn)換器。電壓、電流轉(zhuǎn)換后的數(shù)字量和功率因數(shù)值傳輸給CPU處理器,根據(jù)三相功率、三相能量等電參數(shù)的計算公式計算相應(yīng)的各個電參數(shù),并對計算數(shù)據(jù)做相應(yīng)處理。 該方案存在電路結(jié)構(gòu)復(fù)雜,參數(shù)測試誤差大,編程復(fù)雜、故障排除復(fù)雜等缺點(diǎn)。該技術(shù)方案已不再適用于工業(yè)環(huán)境中三相電能表的電參數(shù)測量。數(shù)據(jù)顯示CPU處理器RS232串口數(shù)據(jù)接收圖2.1數(shù)據(jù)采集顯示流程圖2.2方
10、案二 使用RS232串口和Visual Basic編程軟件直接對電能的各項參數(shù)進(jìn)行檢測和轉(zhuǎn)換,在結(jié)合STC90C52單片機(jī)與VB界面顯示就能對電能的各項參數(shù)進(jìn)行顯示。再將測得的各項參數(shù)由數(shù)據(jù)庫保存,便于完成人機(jī)交互,方便用戶或操作人員查詢數(shù)據(jù)。 比較以上兩種方案,很容易看出,采用方案二,電路比較簡單,軟件設(shè)計容易實現(xiàn),故實際設(shè)計中擬采用方案二。本設(shè)計方框圖如圖2.2所示,它由四部分組成:1、控制部分主芯片采用單片機(jī)STC89C52和RS232串口;2、VB顯示界面;3、實時數(shù)據(jù)顯示傳輸;4、歷史數(shù)據(jù)查詢。該方案的智能電表能夠更方便、精確地計量電能,數(shù)字顯示界面更加直觀方便;其次其智能化可以幫助
11、管理單位實現(xiàn)遠(yuǎn)程管理、提醒居民按時繳費(fèi)、詳細(xì)記錄用電明細(xì)表。節(jié)省了管理單位的人力、物力資源。最后智能電表可以通過加加密防止用戶竊電,安全性更高。實時數(shù)據(jù)顯示單片機(jī)與RS232串口VB顯示界面歷史數(shù)據(jù)查詢圖2.2總體設(shè)計方案 以該方案為基礎(chǔ)選擇Visual Basic軟件設(shè)計方法,完成多點(diǎn)數(shù)據(jù)采集上位機(jī)處理系統(tǒng)的編程工作,需要進(jìn)一步熟悉Visual Basic語言的基本知識與Visual Basic數(shù)據(jù)庫有關(guān)的知識,需要團(tuán)隊協(xié)作與請教同學(xué)與老師,還需要到圖書館借閱資料與上網(wǎng)查閱相關(guān)資料,這樣才能完成該課程設(shè)計。多點(diǎn)數(shù)據(jù)采集上位機(jī)處理系統(tǒng)該軟件的難點(diǎn)是Visual Basic的編程方面,與怎樣實現(xiàn)
12、PC機(jī)與單片機(jī)的連接問題及數(shù)據(jù)的采集與如何將數(shù)據(jù)寫入數(shù)據(jù)庫等問題。可以將多點(diǎn)數(shù)據(jù)采集上位機(jī)處理系統(tǒng)應(yīng)用于三相智能電表的軟件系統(tǒng),從而完成智能電表的設(shè)計。3單元模塊設(shè)計3.1 數(shù)據(jù)接收 通過RS232串口將單片機(jī)與微機(jī)相連,通過vb程序的處理,完成數(shù)據(jù)的接收。3.1.1 單片機(jī)電路 單片機(jī)電路如圖3.1.1示。 圖3.11單片機(jī)電路 AT89C52是一款超強(qiáng)抗干擾/高速/低功耗的單片機(jī),AT89C52是一個低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的Flash只讀程序存儲器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲
13、技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,功能強(qiáng)大的AT89C52單片機(jī)可為您提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場合。 AT89C52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中斷口,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,2個讀寫口線,AT89C52可以按照常規(guī)方法進(jìn)行編程,但不可以在線編程(S系列的才支持在線編程)。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲器可有效地降低開發(fā)成本。 3.1.2 RS232串口 RS-232-C是美國電子工業(yè)協(xié)會EIA(Electronic Indu
14、stry Association)制定的一種串行物理接口標(biāo)準(zhǔn)。RS是英文“推薦標(biāo)準(zhǔn)”的縮寫,232為標(biāo)識號,C表示修改次數(shù)。RS-232-C總線標(biāo)準(zhǔn)設(shè)有25條信號線,包括一個主通道和一個輔助通道。在多數(shù)情況下主要使用主通道,對于一般雙工通信,僅需幾條信號線就可實現(xiàn),如一條發(fā)送線、一條接收線及一條地線。RS-232-C標(biāo)準(zhǔn)規(guī)定的數(shù)據(jù)傳輸速率為50、75、100、150、300、600、1200、2400、4800、9600、19200、38400波特。RS-232-C標(biāo)準(zhǔn)規(guī)定,驅(qū)動器允許有2500pF的電容負(fù)載,通信距離將受此電容限制,例如,采用150pF/m的通信電纜時,最大通信距離為15m;
15、若每米電纜的電容量減小,通信距離可以增加。傳輸距離短的另一原因是RS-232屬單端信號傳送,存在共地噪聲和不能抑制共模干擾等問題,因此一般用于20m以內(nèi)的rs232(9針)接口通信。 圖3.1.2 RS232串口圖3.2 數(shù)據(jù)顯示模塊 主要是通過Visual Basic軟件處理RS232串口傳來的數(shù)據(jù),并在Visual Basic的界面中顯示數(shù)據(jù)。其中包括界面和代碼兩部分。(1)界面部分如圖3.2.1,其中圖片框Picture1,要在屬性窗口中設(shè)置它的picture屬性,以便加入圖片,并在Picture1的屬性窗口中設(shè)置它的BorderStyle屬性為0,目的是去除Picture1的邊框,再將
16、Picture1的AutoSize屬性設(shè)置為True,以便圖像框的大小適應(yīng)圖片框的大小,這樣西華大學(xué)的標(biāo)致就完美的加入在圖片框里面了。其中圖片框Picture2中包含lable2和label4兩個標(biāo)簽,這兩個標(biāo)簽的Caption屬性均設(shè)置為: 圖3.2.1登錄界面歡飲進(jìn)入西華大學(xué)電能管理中心!并將兩個lable的AutoSize屬性設(shè)置為True,Lable2和Lable4兩者之間有一定的距離。再加上與代碼的配合,這個標(biāo)志便能在圖片框Pictuer2中滾動顯示了,并且當(dāng)Lable2的“歡”字消失的時候,Lable4的“歡”字剛好出現(xiàn),二者配合的相當(dāng)完美。其中由Lable1構(gòu)成,并設(shè)置它的Aut
17、oSize屬性為True, 其中由命令按鈕構(gòu)成,并設(shè)置它的Caption屬性為“登陸”。其中為時鐘控件,它的應(yīng)用是為了完成的滾動顯示。其中由Lable2組成,并設(shè)置它的AutoSize屬性為True,一邊字體的大小適應(yīng)Lable2的大小,并修改Lable2的Caption屬性為Copyright(c)fyr 2013,這樣Lable2的設(shè)計就完成了,再將Form1的Caption屬性設(shè)置為“登陸”,這樣登陸窗體的第一個界面就完成了。 圖3.2.2實時數(shù)據(jù)顯示界面(1)圖3.2.2實時數(shù)據(jù)顯示界面(2)(2)數(shù)據(jù)顯示界面包括實時數(shù)據(jù)顯示和歷史數(shù)據(jù)顯示,圖3.2.2為實時數(shù)據(jù)顯示界面。首先要添加一
18、個名稱為SSTab1的控件,并將該控件的Height與Width屬性值與Form2窗體的屬性值設(shè)置為同一值。并將Form2的Caption屬性值設(shè)置為“電能參數(shù)”。將SSTab1控件的Tabs與TabsPerRow屬性值均設(shè)置為2。并將SSTabs控件的Caption屬性值設(shè)置為“實時數(shù)據(jù)”與“歷史數(shù)據(jù)”這樣SSTabs1控件就完成了,然后如圖3.2.2所示再在SSTab1上添加16個文本框控件與label標(biāo)簽。添加組合框控件Combo1,并將其text屬性設(shè)置為COM1,并將其list屬性值設(shè)置為COM1、COM2、COM3、COM4、COM5,以便串口的選擇。其中為通信控件,實現(xiàn)的是RS2
19、32控件與上位機(jī)的通信,其中為時鐘控件,控制的是采樣的頻率,其中為圖像框Shape控件,要將圖像框的shape屬性選擇為3-circle,將BackStyle屬性設(shè)置為1-Opaque,這樣圖像框的設(shè)計就完成了。再添加和這兩個控件,這樣就完成了實時數(shù)據(jù)界面的設(shè)計。 圖3.2.3歷史數(shù)據(jù)顯示界面 圖3.2.3歷史數(shù)據(jù)顯示界面主要包括DataGrid控件、的命令按鈕控件和的時鐘控件。該界面的設(shè)計很簡單主要是完成歷史數(shù)據(jù)的查詢和顯示。3.3歷史數(shù)據(jù)查詢 單擊圖3.2.3歷史數(shù)據(jù)顯示界面中的命令按鈕就會彈出圖3.3.1歷史數(shù)據(jù)查詢界面。其中與分別為兩個標(biāo)簽,其中與分別為兩個文本框,其中為命令按鈕。其中
20、為名稱為datDatactl的控件。其作用是顯示查詢后的歷史數(shù)據(jù)。分別在為本框text1和text2中輸入查詢時間,單擊命令 圖3.3.1歷史數(shù)據(jù)查詢界面按鈕,就可以完成歷史數(shù)據(jù)的查詢,并將結(jié)果顯示在控件中,這樣整個歷史數(shù)據(jù)的查詢就完成了。整個操作過程非常簡單便捷。4軟件設(shè)計4.1 RS232串口通信標(biāo)準(zhǔn) 串口是計算機(jī)上一種非常通用設(shè)備通信的協(xié)議(不要與通用串行總線Universal Serial Bus或者USB混淆)。大多數(shù)計算機(jī)包含兩個基于RS232的串口。串口同時也是儀器儀表設(shè)備通用的通信協(xié)議;很多GPIB兼容的設(shè)備也帶有RS-232口。同時,串口通信協(xié)議也可以用于獲取遠(yuǎn)程采集設(shè)備的數(shù)
21、據(jù)。串口通信的概念非常簡單,串口按位(bit)發(fā)送和接收字節(jié)。盡管比按字節(jié)(byte)的并行通信慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時用另一根線接收數(shù)據(jù)。它很簡單并且能夠?qū)崿F(xiàn)遠(yuǎn)距離通信。比如IEEE488定義并行通行狀態(tài)時,規(guī)定設(shè)備線總常不得超過20米,并且任意兩個設(shè)備間的長度不得超過2米;而對于串口而言,長度可達(dá)1200米。典型地,串口用于ASCII碼字符的傳輸。通信使用3根線完成:(1)地線,(2)發(fā)送,(3)接收。由于串口通信是異步的,端口能夠在一根線上發(fā)送數(shù)據(jù)同時在另一根線上接收數(shù)據(jù)。其他線用于握手,但是不是必須的。串口通信最重要的參數(shù)是波特率、數(shù)據(jù)位、停止位和奇偶校驗。對于兩個進(jìn)
22、行通行的端口,這些參數(shù)必須匹配: a,波特率:這是一個衡量通信速度的參數(shù)。它表示每秒鐘傳送的bit的個數(shù)。例如300波特表示每秒鐘發(fā)送300個bit。當(dāng)我們提到時鐘周期時,我們就是指波特率例如如果協(xié)議需要4800波特率,那么時鐘是4800Hz。這意味著串口通信在數(shù)據(jù)線上的采樣率為4800Hz。通常電話線的波特率為14400,28800和36600。波特率可以遠(yuǎn)遠(yuǎn)大于這些值,但是波特率和距離成反比。高波特率常常用于放置的很近的儀器間的通信,典型的例子就是GPIB設(shè)備的通信。 b,數(shù)據(jù)位:這是衡量通信中實際數(shù)據(jù)位的參數(shù)。當(dāng)計算機(jī)發(fā)送一個信息包,實際的數(shù)據(jù)不會是8位的,標(biāo)準(zhǔn)的值是5、7和8位。如何設(shè)
23、置取決于你想傳送的信息。比如,標(biāo)準(zhǔn)的ASCII碼是0127(7位)。擴(kuò)展的ASCII碼是0255(8位)。如果數(shù)據(jù)使用簡單的文本(標(biāo)準(zhǔn) ASCII碼),那么每個數(shù)據(jù)包使用7位數(shù)據(jù)。每個包是指一個字節(jié),包括開始/停止位,數(shù)據(jù)位和奇偶校驗位。由于實際數(shù)據(jù)位取決于通信協(xié)議的選取,術(shù)語“包”指任何通信的情況。 c,停止位:用于表示單個包的最后一位。典型的值為1,1.5和2位。由于數(shù)據(jù)是在傳輸線上定時的,并且每一個設(shè)備有其自己的時鐘,很可能在通信中兩臺設(shè)備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計算機(jī)校正時鐘同步的機(jī)會。適用于停止位的位數(shù)越多,不同時鐘同步的容忍程度越大,但是數(shù)據(jù)
24、傳輸率同時也越慢。 d,奇偶校驗位:在串口通信中一種簡單的檢錯方式。有四種檢錯方式:偶、奇、高和低。當(dāng)然沒有校驗位也是可以的。對于偶和奇校驗的情況,串口會設(shè)置校驗位(數(shù)據(jù)位后面的一位),用一個值確保傳輸?shù)臄?shù)據(jù)有偶個或者奇?zhèn)€邏輯高位。例如,如果數(shù)據(jù)是011,那么對于偶校驗,校驗位為0,保證邏輯高的位數(shù)是偶數(shù)個。如果是奇校驗,校驗位位1,這樣就有3個邏輯高位。高位和低位不真正的檢查數(shù)據(jù),簡單置位邏輯高或者邏輯低校驗。這樣使得接收設(shè)備能夠知道一個位的狀態(tài),有機(jī)會判斷是否有噪聲干擾了通信或者是否傳輸和接收數(shù)據(jù)是否不同步。4.2登錄界面的軟件代碼設(shè)計原理 登陸界面如圖4.2.1,其中和需要設(shè)置代碼,的代
25、碼為Form1.Hide 與Form2.Show,這部分代碼的功能是單擊登陸按鈕后隱藏登陸界面,顯示實時數(shù)據(jù)顯示界面與歷史數(shù)據(jù)顯示界面,便于數(shù)據(jù)的顯示。的timer事件的代碼為Label2.Left = Label2.Left 100,其作用是每個一個時鐘周期也就是200ms,就將向左移動100各單位的距離。If Label2.Left <= -(Label2.Width) Then Label2.Left = 5070 End If 這三句代碼的作用是當(dāng)全部移動到圖片框外時,它距離圖片框左邊的距離為5070個單位,以便控件能夠在圖片框中滾動顯示。Label4.Left = Label4
26、.Left 100 If Label4.Left <= -(Label4.Width) Then Label4.Left = 5070End If這部分代碼的作用與前一部分代碼的功能類似,代碼的作用是為了讓兩個標(biāo)簽中的“歡迎進(jìn)入西華大學(xué)電能管理中心!”的字體循環(huán)顯示。 4.3實時數(shù)據(jù)顯示界面的軟件代碼設(shè)計原理 圖4.3.1實時數(shù)據(jù)顯示界面中的按鈕和按鈕與需要設(shè)置代碼,還有窗體的form load事件需要代碼,控件需要代碼,該通訊控件需要代碼。(1)按鈕的名稱為ckcmd,代碼If ckcmd.Caption = "打開串口" 的作用是:如果的caption屬性是“打開
27、串口”,代碼Then MSComm1.PortOpen = True的作用是打開相應(yīng)的RS232串口,代碼 ckcmd.Caption = "關(guān)閉串口"的作用是名稱為ckcmd的按鈕的caption屬性變?yōu)椤瓣P(guān)閉串口”,代碼 Shape1.FillColor = &HFF&的作用是將shape控件的顏色變?yōu)榧t色,代碼Combo1.Enabled = False 的作用是組合框不可用, 代碼dqcmd.Enabled = True的作用是按鈕變?yōu)榭捎?。代碼Else ckcmd.Caption = "打開串口"的作用是: 如果名稱為ckcmd
28、按鈕的caption屬性是“關(guān)閉串口”單擊該命令按鈕之后ckcmd的按鈕caption屬性變?yōu)椤按蜷_串口”,代碼MSComm1.PortOpen = False的作用是:單擊命令按鈕后,關(guān)閉相應(yīng)的串口。代碼Combo1.Enabled = True的作用是組合框可用,可以選擇相應(yīng)的串口。代碼 Shape1.FillColor = 0 Shape2.FillColor = 0 的作用是兩個圖像框均變?yōu)楹谏燥@示現(xiàn)在未從串口中讀取數(shù)據(jù)。代碼 dqcmd.Caption = "自動讀取" 的作用是按鈕的caption屬性變?yōu)?“自動讀取”代碼dqcmd.Enabled = Fa
29、lse End If Exit Sub的作用是按鈕變?yōu)椴豢捎?,結(jié)束If語句和退出Sub過程。代碼 On Error GoTo BLAK的作用是:如果出錯就跳到名稱為BLAK的子程序。代碼BLAK: MsgBox "串口不存在或者被占用!", vbOKOnly, "提示信息"的作用是如果出錯就用MsgBox顯示相應(yīng)的提示信息。如圖4.3.2所示。(2)命令按鈕的名稱為dqcmd,代碼If dqcmd.Caption = "自動讀取" 的作用是如果按鈕的caption屬性是“自動讀取”,代碼 Thendqcmd.Caption = &qu
30、ot;暫停讀取" 的作用是單擊該按鈕后名稱為dqcmd的命令按鈕的caption屬性變?yōu)?“暫停讀取”。代碼 Shape2.FillColor = &HFF& 的作用是shape2的顏色變?yōu)榧t色,代碼Timer1.Enabled = True的作用是timer1不可用,代碼Else 圖4.2.1登錄界面 圖4.3.1實時數(shù)據(jù)顯示界面(1) 圖4.3.2錯誤提示界面圖4.3.1實時數(shù)據(jù)顯示界面(2)化SSTab1控件的高度、寬度等參數(shù)。代碼MSComm1.Settings = "9600,n,8,1" 的作用是:設(shè)置初始化參數(shù),設(shè)置RS232的波特率
31、等,代碼MSComm1.InputLen = 0 的作用是清空從接收緩存器中讀到的字符。代碼Timer1.Interval = 1000 Timer1.Enabled = False的作用是設(shè)置Timer1的Interval屬性為1s。代碼dqcmd.Enabled = False的作用是最開始按鈕不可用。代碼Data2.DatabaseName = "C:fyrMy Documentsjkh.mdb" Data2.RecordSource = "jkh"的作用是在C盤創(chuàng)建一個文件夾以便保存數(shù)據(jù)。 代碼Timer2.Interval = 60000 的作
32、用是設(shè)置數(shù)據(jù)庫采樣周期為6秒。代碼Text1.Text = "" Text2.Text = ""Text3.Text = ""Text4.Text = ""Text5.Text = ""Text6.Text = ""Text7.Text = ""Text8.Text = ""Text9.Text = ""Text10.Text = ""Text11.Text = ""Text1
33、2.Text = ""Text13.Text = ""Text14.Text = ""Text15.Text = ""Text16.Text = ""的作用是在form load事件中將這16個文本框清空。代碼 End Sub 的作用是結(jié)束form load這個事件過程。(5),該組合框按鈕的名稱是Combo1,代碼MSComm1.CommPort = Combo1.ListIndex + 1的作用是:單擊組合框打開相應(yīng)的串口。(6)它為通訊控件,它能實現(xiàn)單片機(jī)與上位機(jī)之間的通訊。代碼Dim m
34、1 As Single的作用是設(shè)置m1是單精度類型的變量,代碼Select Case MSComm1.CommEvent的作用是控件MSComm1的CommEvent事件,代碼Case comEventRxOver Exit Sub的作用是如果檢測到comEventRxOver事件就退出Sub過程。代碼Case comEvReceive BytReceived = MSComm1.Input的作用是MSComm1控件的comEvReceive事件,將接受到的數(shù)據(jù)放到BytReceived()變量中,代碼For i = 0 To UBound(BytReceived)的作用是for循環(huán)從0開始到
35、BytReceived的上限,代碼 If Len(Hex(BytReceived(i) = 1 Then strData = strData & "0" & Hex(BytReceived(i)的作用是將BytReceived(i)轉(zhuǎn)換為16進(jìn)制數(shù),如果只有一位數(shù)則在前面添0,并將它賦給strData這個數(shù)組中,代碼ElsestrData = strData & Hex(BytReceived(i)的作用是:否則,直接將BytReceived(i)賦給變量strData中,代碼End If flag = strData的作用是:結(jié)束if語句,將str
36、Data 賦給變量 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 = "" Else strData = "" flag = ""
37、End If End IF的作用是設(shè)置F0,F1,F1,F3,F4,F5,F6,F7,F8為標(biāo)志位,如果檢測到標(biāo)志位則將flag清空,如果沒有檢測到標(biāo)志位,則將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 = "
38、;" gl = "AQ" ElseIf flag = "2F" Then flag = "" gl = "ASZ" ElseIf flag = "3F" Then flag = "" gl = "BP" ElseIf flag = "4F" Then flag = "" gl = "BQ" ElseIf flag = "5F" Then flag = "&q
39、uot; gl = "BSZ" ElseIf flag = "6F" Then flag = "" gl = "CP" ElseIf flag = "7F" Then flag = "" gl = "CQ ElseIf flag = "8F" Then flag = "" gl = "CSZ"這部分代碼的作用是根據(jù)需要將A、B、C三相的有功,無功和視在電功放在相應(yīng)的變量中。代碼newdata = Mid(s
40、trData, 3, 6) strData = "" End If的作用是將strData的3至6位賦值給變量newdata中。代碼findata = Val("&H" & newdata)的作用是將newdata轉(zhuǎn)化為16進(jìn)制數(shù)賦給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
41、.Text = findata Case BSZ Text7.Text = findata Case CP Text9.Text = findata Case CQ Text10.Text = findata Case CSZ Text11.Text = findata End Select的作用是把電功在對應(yīng)的文本框中顯示。代碼Text13.Text = Text1.Text + Text5.Text + Text9.Text的作用是在text13中顯示總的有功,代碼Text14.Text = Text2.Text + Text6.Text + Text10.Text的作用是在text14中
42、顯示總的無功,代碼Text15.Text = Text3.Text + Text7.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
43、的作用是在text16中顯示總的功率因素,代碼Nexti End Select End Sub的作用是結(jié)束select語句,結(jié)束sub過程。以上便是整個實時數(shù)據(jù)界面的軟件代碼的設(shè)計的詳細(xì)解釋與說明,沒有任何的語法錯誤。4.4歷史數(shù)據(jù)顯示界面的軟件代碼設(shè)計原理歷史數(shù)據(jù)顯示界面如圖4.4.1所示,其中和需要設(shè)計代碼。 圖4.4.1歷史數(shù)據(jù)顯示界面(1)其中的代碼If Data2.Recordset.EOF = False Then的作用是在數(shù)據(jù)庫的末尾加入新記錄。代碼Data2.Recordset.MoveLast End If 的作用是加入新記錄。代碼Data2.Recordset.AddNew
44、 Data2.Recordset.Fields(0) = Date 的作用是添加系統(tǒng)日期。代碼Data2.Recordset.Fields(1) = Time 的作用是將系統(tǒng)時間寫入數(shù)據(jù)庫中。代碼Data2.Recordset.Fields(2) = Val(Text13.Text) 的作用是將總有功寫入數(shù)據(jù)庫中。代碼Data2.Recordset.Fields(3) = Val(Text14.Text) 的作用是將總無功寫入數(shù)據(jù)庫中。代碼Data2.Recordset.Fields(4) = Val(Text15.Text)的作用是將總視在電功寫入數(shù)據(jù)庫中。代碼Data2.Recordset
45、.Fields(5) = Val(Text16.Text) 的作用是將總功率因數(shù)寫入數(shù)據(jù)庫中。代碼Data2.Recordset.Fields(6) = Val(Text1.Text)的作用是將A有功寫入數(shù)據(jù)庫中,代碼Data2.Recordset.Fields(7) = Val(Text2.Text) 的作用是將A無功寫入數(shù)據(jù)庫中,代碼Data2.Recordset.Fields(8) = Val(Text5.Text) 的作用是將B相有功寫入數(shù)據(jù)庫中。代碼Data2.Recordset.Fields(9) = Val(Text6.Text) 的作用是將B相無功寫入數(shù)據(jù)庫中。代碼Data2.
46、Recordset.Fields(10) = Val(Text9.Text)的作用是將C相有功寫入數(shù)據(jù)庫中。代碼Data2.Recordset.Fields(11) = Val(Text10.Text) Data2.Recordset.Updat的作用是將C相無功寫入數(shù)據(jù)庫中。(2)其中的代碼Form3.Show的作用是單擊該命令按鈕就進(jìn)入form3歷史數(shù)據(jù)查詢窗體。如圖4.4.2所示。 圖4.4.2對于圖4.4.2的窗體需要對和窗體的form load事件寫代碼。(1)其中的代碼Set dbs = OpenDatabase("c:fyrMy Documentsjkh.mdb&quo
47、t;) strSQL = "PARAMETERS DateFrom DateTime, " & "_ " & "DateTo DateTime;"strSQL = strSQL & "SELECT*FROM jkh WHERE" & "_" & "日期 BETWEEN " strSQL = strSQL & "DateFrom AND DateTo;" 的作用是創(chuàng)建一個非存儲的參數(shù)查詢。代碼Set qdf =
48、 dbs.CreateQueryDef("", strSQL) 的作用是:提示輸入起始日期。代碼strDateFrom = InputBox("輸入查詢起始日期") 的作用是提示輸入終止日期。代碼strDateTo = InputBox("輸入查詢終止日期")的作用是設(shè)置查詢的參數(shù)。代碼qdf.Parameters("DateFrom") = strDateFrom qdf.Parameters("DateTo") = strDateTo 的作用是起始日期顯示。代碼Text1.Text = st
49、rDateFrom的作用是終止日期顯示。代碼Text2.Text = strDateTo的作用是對查詢打開動態(tài)集記錄。代碼Set rst = qdf.OpenRecordset(dbOpenDynaset) Set datDatactl.Recordset = rst的作用是賦值并顯示。(2)form load事件的代碼datDatactl.DatabaseName = "c:fyrMy Documentsjkh.mdb" datDatactl.RecordSource = "jkh"的作用是查詢數(shù)據(jù)庫中的內(nèi)容并復(fù)制顯示。4.5軟件設(shè)計流程圖電能參數(shù)數(shù)據(jù)
50、界面及代碼設(shè)計用電量數(shù)據(jù)界面及代碼設(shè)計密碼界面及代碼設(shè)計登陸界面及代碼設(shè)計歷史數(shù)據(jù)查詢界面及代碼設(shè)計歷史數(shù)據(jù)界面及代碼設(shè)計串口提示界面及代碼設(shè)計5基于Visual Basic的數(shù)據(jù)庫操作5.1創(chuàng)建數(shù)據(jù)庫的步驟 外接程序可視化文件新建數(shù)據(jù)庫Microsoft AccessVersion 2.0 MDB輸入要創(chuàng)建的數(shù)據(jù)庫名稱,這樣就能在指定的磁盤位置創(chuàng)建一個目錄。 5.2查詢數(shù)據(jù)的步驟 外接程序可視化文件打開數(shù)據(jù)庫Microsoft AccessMy Documentsjkh.mdb打開。這樣就能打開事先創(chuàng)建好的數(shù)據(jù)庫。 6課程設(shè)計結(jié)論 本次課程設(shè)計是比較圓滿的,三相智能電表軟件系統(tǒng)設(shè)計的難點(diǎn)主要
51、是代碼。界面設(shè)計比較簡單,及控件的屬性設(shè)置較為復(fù)雜,還有就是程序與RS232之間的通訊比較難實現(xiàn),必須要求代碼的準(zhǔn)確無誤。還有必須注重團(tuán)隊合作和查閱相關(guān)的資料及向陳高燕老師的請教。7總結(jié)與體會本設(shè)計使用的Visual Basic語言簡單、可視化,具有一定的實際應(yīng)用價值。該課程設(shè)計是控制領(lǐng)域的一個簡單實例,還有許多需要完善的地方,例如可以將測得的數(shù)據(jù)通過單片機(jī)與通訊模塊相連接,以手機(jī)短消息的方式發(fā)送給用戶,使用戶能夠隨時對溫度進(jìn)行監(jiān)控。此外,還能廣泛地應(yīng)用于其他一些工業(yè)生產(chǎn)領(lǐng)域,如建筑,倉儲等行業(yè)。本控制系統(tǒng)可以應(yīng)用于多種場合。用戶可靈活選擇本設(shè)計的用途,有很強(qiáng)的實用價值。 通過這次課程設(shè)計,讓
52、我對單片機(jī)以及RS232串口,及vb程序語言有了進(jìn)一步的了解、鞏固和加深,并且對所學(xué)知識的得以實際應(yīng)用。與我所學(xué)芯片再一次零距離接觸,進(jìn)一步加深我對各個芯片的功能和特性的了解。 微機(jī)控制與接口技術(shù)課程設(shè)計是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識,發(fā)現(xiàn)、提出、分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學(xué)生實際工作能力的具體訓(xùn)練和考察過程.回顧起此次課程設(shè)計,至今我仍感慨頗多,的確,從選題到定稿,從理論到實踐,在短短的兩個星期的日子里,可以說得是苦多于甜,但是可以學(xué)到很多很多的的東西,同時不僅可以鞏固以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次微機(jī)控制與接口技術(shù)的課程設(shè)計使我懂得了
53、理論與實際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,從而提高自己的實際動手能力和獨(dú)立思考的能力。在此智能電表的軟件系統(tǒng)設(shè)計中設(shè)計過程中,讓我了解到了現(xiàn)代程序設(shè)計的原理。以前在實際生活中看到的電表等產(chǎn)品就只會用他們并不知道他們的工作原理,通過這次課程設(shè)計對這些產(chǎn)品的原理有了深入的了解。同時這次課程設(shè)計大大提高了我的動手能力,為我以后的工作和學(xué)習(xí)奠定了基礎(chǔ),在以后的生活中我也可以用我所學(xué)的知識和對芯片功能的了解來設(shè)計一些日常生活所需的電子產(chǎn)品。實訓(xùn)時間很短,但是通過這次實訓(xùn)可以學(xué)到很多書本沒有的東西,有了這一次的實踐經(jīng)驗,我們的動手能力和思
54、維能力也相應(yīng)的得到了的提高,這次實訓(xùn)進(jìn)一步鍛煉了自己的邏輯思維能力,并從中總結(jié)出寶貴的經(jīng)驗。最后,在此感謝陳高燕老師的細(xì)心指導(dǎo)與其他各位同學(xué)的無私幫助!8參考文獻(xiàn)1.李長林編Visual Basic串口通信技術(shù)與典型實例北京:清華大學(xué)出版社.2.范逸之 等編Visual Basic實現(xiàn)串并行通信技術(shù)北京:清華大學(xué)出版社.3.四維科技 趙思恩編Visual Basic數(shù)據(jù)庫編程技術(shù)與實例北京:人民郵電出版社. 4.張朝昆 施麗娜著Visual Basic數(shù)據(jù)庫開發(fā)基礎(chǔ)與應(yīng)用北京:人民郵電出版社5.姚巍主編Visual Basic數(shù)據(jù)庫開發(fā)從入門到精通北京:人民郵電出版社6.李江全等編Visual
55、 Basic數(shù)據(jù)庫采集與串口通信測控應(yīng)用實戰(zhàn)北京:人民郵電出版社7. 李江全等編Visual Basic串口通信與測控應(yīng)用技術(shù)實戰(zhàn)詳解北京:人民郵電出版社附錄1 Visual Basic設(shè)計界面 圖3.2.1登錄界面 圖4.3.1用電量數(shù)據(jù)顯示界面 圖4.3.2電能參數(shù)數(shù)據(jù)界面 圖4.3.2錯誤提示界面 圖4.3.3錯誤信息提示界面 圖4.4.1歷史數(shù)據(jù)顯示界面 圖4.4.2歷史數(shù)據(jù)查詢界面2Visual Basic 代碼Private Sub Command1_Click() 'Text2.passowrdchar = "*" If Text1.Text = &q
56、uot;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.Tex
57、t = "" Text2.PasswordChar = "*" '密碼框顯示為* Timer1.Interval = 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'='系統(tǒng)加載部分'=Dim BytReceived
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 一年級下冊數(shù)學(xué)教案-2.2 100以內(nèi)數(shù)的大小比較| 青島版(五四學(xué)制)
- 2024-2025學(xué)年三年級下學(xué)期數(shù)學(xué)第一單元復(fù)習(xí)與提高 平方分米(教案)
- 一年級下冊數(shù)學(xué)教案-第6單元 圖書館(2)|北師大版
- 2024年林業(yè)機(jī)械項目資金籌措計劃書
- 2025年廣州城市職業(yè)學(xué)院單招職業(yè)技能測試題庫完美版
- 2024年耐酸低熔玻璃項目資金申請報告
- 16《朱德扁擔(dān)》第二課時 教學(xué)設(shè)計-2024-2025學(xué)年語文二年級上冊統(tǒng)編版
- 2025年度個人與個人家政服務(wù)合作協(xié)議
- 2025年度個人代收款金融服務(wù)合作協(xié)議
- 2025年度房改房買賣合同簽訂與備案操作手冊
- 人文素養(yǎng)知識考試復(fù)習(xí)題庫(含答案)
- 05-第三章-環(huán)境污染物的生物轉(zhuǎn)運(yùn)和生物轉(zhuǎn)化-生物轉(zhuǎn)化幻燈片
- 公司精益改善項目推進(jìn)管理制度及激勵方案
- 工科高等數(shù)學(xué)(下)知到章節(jié)答案智慧樹2023年上海海洋大學(xué)
- oppor11t刷全網(wǎng)通改全教程
- 兒童羽毛球教程
- 福建某機(jī)場二次雷達(dá)站基建工程施工組織設(shè)計
- 內(nèi)部控制-倉儲與存貨循環(huán)調(diào)查問卷
- 流程成熟度模型(PEMM)
- 高二英語期末考試試卷質(zhì)量分析報告
- 催化動力學(xué)分析法及其應(yīng)用
評論
0/150
提交評論