基于VB的調壓PID溫度控制系統(tǒng)主界面設計_第1頁
基于VB的調壓PID溫度控制系統(tǒng)主界面設計_第2頁
基于VB的調壓PID溫度控制系統(tǒng)主界面設計_第3頁
基于VB的調壓PID溫度控制系統(tǒng)主界面設計_第4頁
基于VB的調壓PID溫度控制系統(tǒng)主界面設計_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

沈陽理工大學課程設計在現(xiàn)代工業(yè)生產過程自動化中,過程控制技術正在為實現(xiàn)各種最優(yōu)技術經濟指標、提高經濟效益和社會效益、提高勞動生產率、節(jié)約能源、改善勞動條件、保護環(huán)境衛(wèi)生、提高市場競爭力等方面起著越來越大的作用。本實驗中,硬件部分的溫度采集通過Pt100和電熱爐來完成,Pt100通過感應到電熱爐中的溫度變化來把溫度信號轉換為電信號,從而通過PC機中的VB程序達到控制溫度和對溫度的采集。溫度自動控制實驗箱系統(tǒng)如圖2-2所示。圖2-2實驗箱連線2.1.2串行通信基礎

隨著計算機的廣泛應用,市場上許多電氣產品應用串口通信技術作為對外數據交換的橋梁,串口通信受到如此重視,主要原因就是這個技術簡單而且容易實現(xiàn)。串行通信是指通信的發(fā)送方和接收方之間數據信息的傳輸是在單根數據線上,以每次一個二進制的0、1為最小單位一位一位的傳輸。

串行數據傳送的特點是:

(1)串行傳送在一根傳輸線上既傳送數據信息又傳送聯(lián)絡控制信號;(2)有固定的數據格式,分異步與同步數據格式;

(3)串行通信中對信號的邏輯定義與TTL不兼容,故需要進行邏輯關系與邏輯電平轉換;

(4)串行傳送信息的速率需要控制,要求雙方設定通信傳輸的波特率。

總而言之,串行通信是指在單根數據線上將數據一位一位地按照順序進行傳送。在傳送數據的過程中,每發(fā)送完一個數據,緊接著發(fā)送第二個,直到發(fā)送完最后一位為止。在接收數據的過程中,每一次從單根數據線上一位一位地依次接收,直到最后收到一個完整的數據為止。因此,串行口通信方式一般用在遠距離數據通信中,正好符合具有占用通信線少、成本低等優(yōu)點。

網絡通信過程中,通信雙方要交換數據,需要高度的協(xié)同工作。為了正確的解釋信號,接收方必須確切地知道信號應當何時接收和處理,因此定時是至關重要的。在計算機網絡中,定時的因素稱為位同步。同步是要接收方按照發(fā)送方發(fā)送的每個位的起止時刻和速率來接收數據,否則會產生誤差。通??梢圆捎猛交虍惒降膫鬏敺绞綄ξ贿M行同步處理。

在異步傳輸中,信息以字符為單位進行傳輸。異步傳輸的優(yōu)點就是收、發(fā)雙方不需要嚴格的位同步,所謂“異步”是指字符與字符之間的異步,字符內部仍為同步。在同步傳輸中,不僅字符內部為同步,字符與字符之間也要保持同步。同步傳輸的特點是可獲得較高的傳輸速度,但實現(xiàn)起來較復雜。

為了解決以上問題,串行傳輸可以采用以下兩種方法:異步傳輸和同步傳輸。

(1)異步傳輸

異步傳輸將比特分成小組進行傳送,小組可以是8位的1個字符或更長。發(fā)送方可以在任何時刻發(fā)送這些比特組,而接收方從不知道它們會在什么時候到達。一個常見的例子是計算機鍵盤與主機的通信。按下一個字母鍵、數字鍵或特殊字符鍵,就發(fā)送一個8比特位的ASCII代碼。鍵盤可以在任何時刻發(fā)送代碼,這取決于用戶的輸入速度,內部的硬件必須能夠在任何時刻接收一個鍵入的字符。異步傳輸存在一個潛在的問題,即接收方并不知道數據會在什么時候到達。在它檢測到數據并做出響應之前,第一個比特已經過去了。這就像有人出乎意料地從后面走上來跟你說話,而你沒來得及反應過來,漏掉了最前面的幾個詞。因此,每次異步傳輸的信息都以一個起始位開頭,它通知接收方數據已經到達了,這就給了接收方響應、接收和緩存數據比特的時間;在傳輸結束時,一個停止位表示該次傳輸信息的終止。按照慣例,空閑(沒有傳送數據)的線路實際攜帶著一個代表二進制1的信號,異步傳輸的開始位使信號變成0,其他的比特位使信號隨傳輸的數據信息而變化。最后,停止位使信號重新變回1,該信號一直保持到下一個開始位到達。例如在鍵盤上數字“1”,按照8比特位的擴展ASCII編碼,將發(fā)送“00110001”,同時需要在8比特位的前面加一個起始位,后面一個停止位。

(2)同步傳輸

同步傳輸的比特分組要大得多。它不是獨立地發(fā)送每個字符,每個字符都有自己的開始位和停止位,而是把它們組合起來一起發(fā)送。我們將這些組合稱為數據幀,或簡稱為幀。數據幀的第一部分包含一組同步字符,它是一個獨特的比特組合,類似于前面提到的起始位,用于通知接收方一個幀已經到達,但它同時還能確保接收方的采樣速度和比特的到達速度保持一致,使收發(fā)雙方進入同步。幀的最后一部分是一個幀結束標記。與同步字符一樣,它也是一個獨特的比特串,類似于前面提到的停止位,用于表示在下一幀開始之前沒有別的即將到達的數據了。

綜上所述,我們可以歸結一下同步傳輸和異步傳輸的區(qū)別,具體如下:

1)異步傳輸是面向字符的傳輸,而同步傳輸是面向比特的傳輸。

2)異步傳輸的單位是字符而同步傳輸的單位是幀。

2.2主界面設計為了方便地管理系統(tǒng)程序,且占有教少的系統(tǒng)資源,我們采用多文檔界面MDI進行主界面的設計。通過選擇主界面上的菜單,我們就可以實現(xiàn)對溫度信息的各種操作。2.3數據采集設計

數據采集模塊主要由名稱為Timer_Sample的一個Timer控件實現(xiàn)數據采集,由于是多路溫度采集,首先設置一個變量,從1一直到總溫度點數逐一遞增,該變量影響地址和通道數,當該變量為1時,進行第1通道的溫度采集,采集之后并把該變量加1,地址和通道做出響應的變化,進行下次采集操作。整個過程放在一個For循環(huán)里面實現(xiàn)。

下位機的設置是當上位機發(fā)送地址和通道給下位機時,下位機把就把對應該地址和通道的溫度值讀取出來保存,當上位機需要讀取時,上位機發(fā)送MSCommObj.Input命令,下位機就把儲存的溫度值發(fā)送給上位機。上位機進行判斷是否超時,整個過程中應該在50ms以內完成,50ms之后上位機進行采集數據操作,并且對采集出來的數據進行判斷,下位機正常的反饋值應該是一個大于5個字符位的溫度值,如果溫度值有錯誤,或者超時沒有采集出來溫度值,則手動設置采集出來的數據為0,并以紅色標記,表示數據有錯誤,需要檢查硬件設備,如果溫度值沒有錯誤,符合要求,則把采集上來的溫度值復制到m_s_SaveTemp中進行存儲。延時50ms的實現(xiàn):在VB當中,并沒有延時程序,所以必須通過程序來實現(xiàn),實現(xiàn)的方法是通過GetTickCount函數來實現(xiàn)。GetTickCount函數包含在kernl32.dll庫里面,在程序加載的時候需要在模塊中聲明。GetTickCount的函數功能:GetTickCount返回從操作系統(tǒng)啟動到現(xiàn)在所經過的毫秒數。通過這個函數,先建立一個變量,儲存程序開始的時間,然后用當前時間減去程序開始時間,如果結果少于超時時間,則繼續(xù)循環(huán),直到差值大于超時時間,這樣就完成了延時的功能,延時的時間就是設定超時的時間。期間還需要使用一個函數:DoEvents。DoEvents函數功能是轉讓控制權,以便讓操作系統(tǒng)處理其它的事件。為了防止在延時的時候有其他事件發(fā)生,例如存儲模塊進行存儲,則必須轉讓控制權給系統(tǒng),這樣系統(tǒng)才能響應其他事件,否則延時過程會導致CPU占用率100%等其他不可預料的問題發(fā)生。數據采集為了方便調試,設置了一個Debug模式,通過Debug模式總開關可以設置虛擬采數過程,不需要實際硬件連接從而達到調試程序的目的。數據采集流程如圖2-3所示:圖2-3數據采集流程圖在Debug模式下與在正常模式下的區(qū)別在于Debug模式并沒有真正發(fā)送地址和通道的實際操作,屏蔽掉了一條語句:MSCommObj.Output=vSend,該語句在正常模式下實現(xiàn)把vSend里面的數值也就是地址和通道通過串口發(fā)送給下位機,在這里并沒有真正發(fā)送,所以當沒有下位機的情況下,也可以進行調試,語句不出錯。在接收電壓數據的操作過程中也同時屏蔽掉了一條語句:vReceiveBuffer=MSCommObj.Input,并沒有真正把數據采集上來,而是選擇一個固定的數當作采集上來的電壓值,從而才能繼續(xù)接下來的操作。通過Debug模式的創(chuàng)建,可以在沒有硬件的情況下進行軟件編輯,加快了工程進度,并且還能容易的找出問題的所在之處。為了達到實時數據采集目的,實時數據采集處理程序采用MSComm事件驅動方式。OnComm事件程序的流程圖如圖2-4所示:圖2-4OnComm事件程序的流程圖2.4控制算法設計系統(tǒng)控制的總體思路以及細節(jié)流程圖如下圖2-5和2-6所示:圖2-5系統(tǒng)控制的框圖 圖2-6控制窗口流程圖三主界面設計3.1VisualBasic的編程方法VB的窗口化設計遵循了以下四個主要的步驟:

(1)選擇對象(Object):確實存在的東西,可以被使用,有一個特定的名字,就是一個對象。在VB應用程序的設計中,窗口、鼠標、圖片、按鈕等都是對象。一個對象就是既含數據又含操作該數據代碼的一個邏輯實體,數據是對象的特性,操作即函數或過程,是對象的行為。對象是程序的基本元素,在對象存在的程序中,所有的動作和信息必定和對象有關。所以VB程序設計首先要根據選擇所需的對象。VB中的對象與面向對象程序設計中的對象在概念上是一樣的,但在使用上有很大的區(qū)別,在面向對象程序設計中,對象由程序員自己設計,而在VB中,對象是由系統(tǒng)設計好的,可直接作用或對其進行操作。對象的選擇可以利用VB的工具箱進行。

(2)設置屬性(Property):每一個存在的對象所具備的特性稱為屬性。例如,一個按鈕的標題(Caption),名稱(Name),顏色(Color),字體大小(Fontsion),是否可見(Visible)等都稱為其屬性。每個對象都可以根據需要設置其屬性。在VB中,所有對象的屬性都通過屬性窗口顯示出來,當單擊某一對象時,屬性窗口即顯示它的所有屬性。屬性即可以通過屬性窗口來設置,又可以依靠程序語句來設置。

(3)引發(fā)事件(Event):所謂事件,是由VB事先設置好的、能夠被對象識別的動作。每一個對象總會與外界(其它對象)產生互動,此互動產生時,就是這個對象有一個事件被引發(fā)了。一個對象可以被引發(fā)的事件有很多,例如,一個鼠標可以有單擊、雙擊、拖移、移動等事件,其它對象也有一樣或類似的事件,不同類型的對象可能會有不同的事件可以被外界引發(fā)。響應某個事件所執(zhí)行的操作通過一段程序代碼來實現(xiàn),這樣的程序代碼叫做事件過程。一個對象可以識別一個或多個事件,因此可以使用一個成多個事件過程對用戶或系統(tǒng)的事件作出響應。事件過程的一般格式如下:Private

Sub對象名稱一事件名稱()

事件響應程序代碼

End

Sub對象名稱指的是對象的Name屬性,事件名稱是由VB予該對象事件的,而這個事件必須是對象所能識別的預先定義好賦予該對象事件的,而這個事件必須是對象所能識別的。

(4)確定方法(Method):當對象被引發(fā)了某個事件之后,系統(tǒng)(或程序)應該采用的相應步驟就稱之為方法。VB提供了大量的方法,有些方法可以適用于多種甚至所有類型的對象,而有些方法只適用于少數幾種對象。例如,Myform.Print"Good",表示VB提供的Print方法可以在名為"Myform"的窗體對象上顯示字符串"Good";Printer.

Print

"Good"表示Print方法可以在打印機對象中打印出字符串"Good"。

在軟件編譯方法上,現(xiàn)在主要采用的結構方式有兩種:BS結構和CS結構。B/S是Brower/Server的縮寫,客戶機上只要安裝一個瀏覽器(Browser),如Netscape

Navigator或Internet

Explorer,服務器安裝Oracle、Sybase、Informix或

SQL

Server等數據庫。瀏覽器通過Web

Server同數據庫進行數據交互。

B/S最大的優(yōu)點就是可以在任何地方進行操作而不用安裝任何專門的軟件。只要有一臺能上網的電腦就能使用,客戶端零維護。系統(tǒng)的擴展非常容易,只要能上網,再由系統(tǒng)管理員分配一個用戶名和密碼,就可以使用了。甚至可以在線申請,通過公司內部的安全認證(如CA證書)后,不需要人的參與,系統(tǒng)可以自動分配給用戶一個賬號進入系統(tǒng)。

C/S又稱Client/Server或客戶/服務器模式。服務器通常采用高性能的PC、工作站或小型機,并采用大型數據庫系統(tǒng),如Oracle、Sybase、Informix或SQL

Server??蛻舳诵枰惭b專用的客戶端軟件。

C/S的優(yōu)點是能充分發(fā)揮客戶端PC的處理能力,很多工作可以在客戶端處理后再提交給服務器。對應的優(yōu)點就是客戶端響應速度快。缺點主要有以下幾個:

只適用于局域網。而隨著互聯(lián)網的飛速發(fā)展,移動辦公和分布式辦公越來越普及,這需要我們的系統(tǒng)具有擴展性。這種方式遠程訪問需要專門的技術,同時要對系統(tǒng)進行專門的設計來處理分布式的數據。

客戶端需要安裝專用的客戶端軟件。首先涉及到安裝的工作量,其次任何一臺電腦出問題,如病毒、硬件損壞,都需要進行安裝或維護。特別是有很多分部或專賣店的情況,不是工作量的問題,而是路程的問題。還有,系統(tǒng)軟件升級時,每一臺客戶機需要重新安裝,其維護和升級成本非常高。

對客戶端的操作系統(tǒng)一般也會有限制??赡苓m應于Win98,但不能用于win2000或WindowsXP?;蛘卟贿m用于微軟新的操作系統(tǒng)等等,更不用說Linux、Unix等。3.2用戶登陸模塊設計 下文將分別介紹在MicrosoftVisualBasic6.0集成環(huán)境下各個模塊的設計過程。首先運行MicrosoftVisualBasic6.0,出現(xiàn)“新建工程”對話框,如圖3-1所示。選擇新建“標準EXE”,執(zhí)行“打開”命令,進入VisualBasic工程集成開發(fā)環(huán)境,窗體設計器會自動出現(xiàn)一個Form1的空白窗體,如圖3-2所示。圖3-1“新建工程”對話框圖3-2空白窗體為防止不相關人員隨意打開本軟件修改,刪除檢測結果,所以軟件運行后,首先設計了登陸對話框,要求輸入用戶名和密碼,輸入正確后才能進入該軟件的主界面。如果失敗達三次,則自動退出系統(tǒng)。用戶登陸界面如圖3-3所示。圖3-3用戶登陸界面在空白窗體上,添加2個Label控件、2個TextBox控件、1個ADODC控件。界面上的2個Label控件用來標識窗體中的信息(用戶名,密碼),2個TextBox控件用來輸入用戶名和密碼,2個CommandButton控件用來確定或取消登陸,1個ADODC控件(運行時隱藏)用來完成和數據庫用戶信息表的連接。圖3-4控制窗口流程圖為了方便地管理系統(tǒng)程序,且占有教少的系統(tǒng)資源,我們采用多文檔界面MDI進行主界面的設計。通過選擇主界面上的菜單,我們就可以實現(xiàn)對溫度信息的各種操作。系統(tǒng)的主界面如圖3-5所示。圖3-5系統(tǒng)主界面四系統(tǒng)運行結果與分析4.1系統(tǒng)運行結果圖4-1運行結果圖4.2分析改進措施本文通過VB6.0可視化編程語言編寫了一個多點測溫系統(tǒng)管理軟件,軟件實現(xiàn)了對電熱爐溫度采集下位機的數據采集、即時溫度曲線顯示,基本實現(xiàn)了對電熱爐測溫系統(tǒng)的管理。本系統(tǒng)溫度采集精度可以達到±1℃,主要用于工業(yè)民用上溫度采集,例如糧庫溫度采集或室內溫度采集,采集反映時間0.1s,在0.1s內即可完成采集溫度,,歷史溫度曲線繪制時間間隔20s,每20s更新溫度曲線一次。達到了課程設計的基本要求。參考文獻[1]于洋,陳亮等.測控系統(tǒng)網絡化技術及應用.機械工業(yè)出版社.2009[2](美)??怂箠W.VisualBasic2012入門經典.人民郵電出版社.2013[3]拉帕波特.無線通信原理與應用.電子工業(yè)出版社.2009附錄程序源代碼:OptionExplicitPubliccAsInteger,TAsIntegerPrivateSubCombo1_Click()'選擇端口IfCombo1.Text="COM1"ThenMSComm1.CommPort=1ElseIfCombo1.Text="COM2"ThenMSComm1.CommPort=2ElseIfCombo1.Text="COM3"ThenMSComm1.CommPort=3ElseIfCombo1.Text="COM4"ThenMSComm1.CommPort=4ElseMSComm1.CommPort=5EndIfEndSubPrivateSubMSComm1_OnComm()EndSubPrivateSubCommand1_Click()DimiAsInteger,jAsIntegerFori=1To19Forj=1To3MSFlexGrid1.TextMatrix(i,j)=""NextjNextiTimer3.Enabled=TrueT=0c=1Calldraw'CallCombo1_Click'MSComm1.PortOpen=True'comm1.Output=Textsend.TextEndSubPrivateSubCommand2_Click()'MSComm1.PortOpen=FalseTimer3.Enabled=FalseTimer1.Enabled=FalseEndSubPrivateSubCommand3_Click()'comm1.PortOpen=FalseEndEndSubPrivateSubCommand4_Click()UnloadForm2EndSubPrivateSubForm_Load()Form1.Caption="溫度監(jiān)測系統(tǒng)"Combo1.AddItem"COM1"Combo1.AddItem"COM2"Combo1.AddItem"COM3"Combo1.AddItem"COM4"Combo1.AddItem"COM5"Timer1.Interval=1000Timer3.Interval=1000Timer3.Enabled=FalseDimiAsIntegerFori=1To19MSFlexGrid1.Col=0MSFlexGrid1.Row=iMSFlexGrid1.Text=iNextiMSFlexGrid1.Row=0MSFlexGrid1.Col=0MSFlexGrid1.Text="序號"MSFlexGrid1.Col=1MSFlexGrid1.Text="溫度"MSFlexGrid1.Col=2MSFlexGrid1.Text="時間"MSFlexGrid1.Col=3MSFlexGrid1.Text="日期"EndSubPrivateSubList1_Click()EndSubPrivateSubMSFlexGrid1_Click()DimiAsInteger,jAsIntegerFori=1ToMSFlexGrid.RowsMSFlexGrid.Col=0MSFlexGrid.Row=iMSFlexGrid.Text="i"NextiForj=0To19MSFlexGrid.Col=3MSFlexGrid.Row=jMSFlexGrid.ColWidth(j)=MSFlexGrid.ColWidth()+200NextjEndSubPrivateSubdraw()Picture1.FontSize="15"'設置字體大小Picture1.DrawWidth=2Picture1.ForeColor=QBColor(12)Picture1.ClsPicture1.Scale(-30,100)-(230,-30)'橫坐標Picture1.Line(-30,0)-(220,0)Picture1.Line(221,0)-(218,1)'橫坐標箭頭及y值Picture1.Line(221,0)-(218,-1)Picture1.PSet(223,4)Picture1.Print"x"Picture1.Line(0,-30)-(0,100)'縱坐標Picture1.Line(-1,98)-(0,100)'縱坐標箭頭及x值Picture1.Line(1,98)-(0,100)Picture1.PSet(4,98)Picture1.Print"y"Picture1.FontSize="8"'設置字體大小Picture1.PSet(20,-10)Picture1.Print"20"Picture1.PSet(40,-10)Picture1.Print"40"Picture1.PSet(60,-10)Picture1.Print"60"Picture1.PSet(80,-10)Picture1.Print"80"Picture1.PSet(100,-10)Picture1.Print"100"Picture1.PSet(120,-10)Picture1.Print"120"Picture1.PSet(140,-10)Picture1.Print"140"Picture1.PSet(160,-10)Picture1.Print"160"Picture1.PSet(180,-10)Picture1.Print"180"Picture1.PSet(200,-10)Picture1.Print"200"Picture1.PSet(-14,5)Picture1.Print"5"Picture1.PSet(-14,15)Picture1.Print"10"Picture1.PSet(-14,25)Picture1.Print"15"Picture1.PSet(-14,35)Picture1.Print"20"Picture1.PSet(-14,45)Picture1.Print"25"Picture1.PSet(-14,55)Picture1.P

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論