北京科技大學軟件課程設(shè)計資料報告材料-自動化專業(yè)_第1頁
北京科技大學軟件課程設(shè)計資料報告材料-自動化專業(yè)_第2頁
北京科技大學軟件課程設(shè)計資料報告材料-自動化專業(yè)_第3頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、科技大學課程設(shè)計(軟件設(shè)計)報告班 級:姓 名:學 號:同組同學:指導教師:曾慧日 期: 2014 年 11 月 13日1設(shè)計容1.1.1實驗?zāi)康?.1.2實驗容1.2應(yīng)用程序總體分析與設(shè)計1.2.1項目建立 建立一個 Visual Basic工程22.2 OPC建立 設(shè)置 OPC包裝 DLL2建立一個 OPC對象23應(yīng)用程序各功能模塊分析與設(shè)計 43.1界面設(shè)計4.3.2服務(wù)器的斷開與5.連接OPC服務(wù)器和建立 OPC組5添加OPC標簽5.斷開服務(wù)器 6.3.3數(shù)據(jù)讀取與顯示7.棒狀圖顯示7.文本框顯示7.3.4數(shù)據(jù)保存8.3.5實時曲線繪制8.4程序測試1.04

2、.1測試過程1.04.2測試結(jié)果1.05程序文檔1.25.1使用說明1.25.2程序清單1.26總結(jié)176.1問題與解決1.76.2感想與致1.77參考文獻1.81設(shè)計容1.1實驗?zāi)康耐ㄟ^實際操作進一步了解OPC的各種概念,掌握OPC客戶端的編寫方法。 并對微軟的DCOM有一定的了解,要求通過合適的 DCOM配置,使客戶端能夠 讀取網(wǎng)絡(luò)上服務(wù)器中的數(shù)據(jù)。1.2實驗容1)利用VB語言編寫出一個簡單的OPC客戶端程序,要求這個客戶端能夠 讀取服務(wù)器中的數(shù)據(jù),并顯示出來。2)配置DCOM,使客戶端能夠能過DCOM讀取另一臺服務(wù)器上的數(shù)據(jù)。2應(yīng)用程序總體分析與設(shè)計應(yīng)用程序與OPC服務(wù)器進行連接并讀取服

3、務(wù)器端的數(shù)據(jù),同時把讀取到的數(shù)據(jù)通過棒柱和文本框顯示,并可以保存數(shù)據(jù)便于查找,同時應(yīng)用了Picture控件對實時數(shù)據(jù)變化趨勢分析。2.1項目建立2.1.1 建立一個 Visual Basic 工程1)啟動 Visual Basic新建一個 Visual Basic工程。選擇Standard EXE作為新建工程的類型。圖2.1 Visual Basic工程的建立2.2 OPC 建立設(shè)置OPC包裝DLL對 OPC包裝 DLL進行注冊:從 Visual Basic菜單里選擇Project-References。在Available References表示中,選擇OPC Automation 2.0

4、。圖2.2引用的設(shè)置建立一個OPC對象在Visual Basic里,是以對象的單位對 OPC服務(wù)器進行訪問。OPC自動化接 口是由以下四種對象所定義。OPC服務(wù)器OPCffl( OPC組集合)OPC標簽(OPC標簽集合)OPC瀏覽器1)變量聲明r反(|l -f-LUip Tep: TwtOHLplDptUb Ej:pZLi C21二Pin FiJiExiiZ ©biS如A? Opts wetDlh objr*?t :ups H DJCjiroDin ntijTiTUrrii te OrCrjpZlLffl nhjl+sw " l?1litfiil =©Ln JS

5、-zjT-LrR.iaB.dL«z IJ 上 L :ikDin 汕旳2J 血 Sir. rrlO. 2)怙Diri eqI A? InitRFDin jl 鼬 IategeiOinLt ItririgUm M 丹FLikf 7 Vq&Jsol!DLm SeTtPL* fL= |!:>dl1*4x%b CgwiciA> Sding Optioml 耳trlTMi b Strinc)If obiS4ri*r I e Sot hum- TS»el'苑一啊F-秋話:庁Sei匸 He aPCStrvtrEoJIEIf 皿石訂叭ju 4e5u:«

6、- OICDL&cotriecUd Th敘l辻接叭壬與烹Csrmiti宅讓斤白甘 址閘龍鼻Eai IeIf oL |r caps IsIi-cu茸l?i柯加吾Sei ofcjGr噸m 二 hjServer 0r"«5rcsEnd IEIf Jrj7宅 rGt. 1= Kclii-f: Thm新丹訝del vbjTs灶p -吐iGmapi 兄H'.ft;)ItjS IEin i汕Bin atr IleTiLD2&) H Lri£»圖2.3 OPC對象變量的聲明 其中,部分變量聲明意義見表所示。表2.1 OPC對象變量的聲明變量名說明

7、objServerOPCServe對象,用于連接OPC服務(wù)器。objGroupsOPCGroups對象,用于添加OPC組的OPC組集合objTestGrpOPCGroup對象,演示用的 OPC組。objItemsOPCItems對象,用于添加 OPC標簽的OPC標簽集合。IServerHa ndles()長整型的數(shù)組,用于保存OPC標簽的服務(wù)器句柄。3應(yīng)用程序各功能模塊分析與設(shè)計3.1界面設(shè)計j OC Ac p catic1' Z'ernonbt?)S孫統(tǒng)譏fj找杰品不-車時救據(jù)更羽IT好注LobeLVLnbrl4宜時曲鯊彊蹤nit 連五r、溫帝輕示誥膜站、Eha/5iup口

8、| 國r I , I I I I r I I I I 擬作血扳AtDeii trier張怛劉啟瞎圖3.1界面效果圖窗體中所使用的控件種類如表3.1所示表3.1 FmMain的控件控件名稱窗體(Form)FmMai n命令按鈕(CommandButton)Bt nConnect命令按鈕(CommandButton)Bt nAddltem命令按鈕(CommandButton)Bt nQuit命令按鈕(CommandButton)Btn Save命令按鈕(CommandButton)Bt nStop命令按鈕(CommandButton)Btn draw定時器(Timer)tmUpdate定時器(Ti

9、mer)dataUpdate對話框(CommonDialog)Common Dialog1圖像(PictureBox)picBar(作為數(shù)組使用,從左開始12)標簽(Label)lbBar(作為數(shù)組使用。從左開如12)文本框仃extBox)dataI nfo圖像(Picture)Picture13.2服務(wù)器的斷開與321連接OPC服務(wù)器和建立OPC組這里用“ NEW'關(guān)鍵詞生成OPC服務(wù)器的對象,然后調(diào)用OPC服務(wù)器對象的“ Connect”方法,和OPC服務(wù)器連接。Connect子程序如下:'連接OPC服務(wù)器和建立OPC組Sub Connect(strProglD As St

10、ring, Optional strNode As String)If objServer Is Nothing Then'建立一個OPC服務(wù)器對象Set objServer = New OPCServerEnd IfIf objServer.ServerState = OPCDisconnected Then'連接OPC服務(wù)器objServer.Connect strProgID, strNodeEnd IfIf objGroups Is Nothing Then'建立一個OPC組集合Set objGroups = objServer.OPCGroupsEnd IfI

11、f objTestGrp Is Nothing Then'添加一個OPC組Set objTestGrp = objGroups.Add("TestGrp")End IfEnd Sub添加OPC標簽對OPC服務(wù)器進行訪問前,必須先在OPC組里添加要訪問的OPC標簽。AddItem子程序如下:添加OPC標簽Sub AddItem()Dim strltemlDs(8) As StringDim ICIientHandles(2) As LongDim lErrors() As LongDim I As IntegerIf objTestGrp Is Nothing The

12、nExit SubEnd IfIf Not objItems Is Nothing ThenIf objItems.Count > 0 ThenExit SubEnd IfEnd If'設(shè)置組活動狀態(tài)objTestGrpsActive = True'取消組非同期通知objTestGrpsSubscribed = False'建立OPC項集合Set objltems = objTestGrp.OPCItems'生成標簽的項標識符For I = 1 To 2strltemlDs(I) = "TAG"ICIientHandles(l) = I

13、Next'添加OPC項Call objltems.Addltems(8, strltemIDs, _ICIientHandles, IServerHandles, lErrors)End Sub斷開服務(wù)器連接著OPC服務(wù)器的OPC應(yīng)用程序,在退出前必須斷開和OPC服務(wù)器的連接。因為OPC服務(wù)器并不知道OPE用程序的退出,如果不先斷開連接,那么OPC服務(wù)器使用的計算機資源就不被釋放。如果這樣的問題反復(fù)發(fā)生,久而久之, 連續(xù)運轉(zhuǎn)的自動控制系統(tǒng)可能會使計算機資源漸漸枯竭從而發(fā)生嚴重問題。Disco nnect子程序如下:'斷開OPC服務(wù)器Sub Disconnect()Dim IEr

14、rors() As LongIf Not objltems Is Nothing ThenIf objltems.Count > 0 Then'清除OPC項objltems.Remove 2, IServerHandles, lErrorsEnd IfSet objltems = NothingEnd IfIf Not objTestGrp Is Nothing Then'清除OPC組objGroups.Remove "TestGrp"Set objTestGrp = NothingEnd IfIf Not objGroups Is Nothing T

15、henSet objGroups = NothingEnd IfIf Not objServer Is Nothing ThenIf objServer.ServerState <> OPCDisconnected Then'斷開OPC服務(wù)器.objServer.DisconnectEnd IfSet objServer = NothingEnd IfEnd Sub3.3數(shù)據(jù)讀取與顯示客戶端使用2個定時器TmUpdate和dataUpdate,定時為1S 在TmUpdate 事件中調(diào)用同步讀取數(shù)據(jù)函數(shù)SyncRead每隔1S讀取服務(wù)器端的數(shù)據(jù),同時對棒柱的顯示進行刷新。在定

16、時器dataUpdate事件中讀取系統(tǒng)時間并不斷刷新TextBox的容,顯示當前的時間和數(shù)據(jù)。棒狀圖顯示為了是顯示更加人性化,對不同圍的數(shù)值顯示采用了不同的顏色。當數(shù)值過低或者過高時分別顯示深藍色和紅色以示警告。中間值顯示綠色和橙黃色。程序代碼如下所示:SyncRead OPCCache, vtltemValues, lErrors'棒圖的表示For I = 1 To 2'數(shù)據(jù)的格式化strBuf = Format(vtltemValues(l), "#.000")'表示數(shù)據(jù)字符串lbBar(I).Caption = strBufdataTemp(I

17、) = strBuf'計算棒的寬和高nWidth = picBar(l).ScaleWidthnHeight = picBar(l).ScaleHeightsglScale = vtltemValues(I) / 100nDrawHeight = CInt(nHeight * sglScale)'清除現(xiàn)棒圖picBar(I).Cls'繪制棒圖If vtltemValues(I) < tHoldValuel ThenpicBar(l).Line (0, nHeight - nDrawHeight)-(nWidth, nHeight), RGB(0, 0, 255),

18、 BFElseIf vtltemValues(I) < tHoldValue2 ThenpicBar(I).Line (0, nHeight - tHoldValuel / 100 * nHeight)-(nWidth, nHeight), RGB(0, 225, 0), BFpicBar(I).Line (0, nHeight - nDrawHeight)-(nWidth, (1 - tHoldValue1 / 100) * nHeight), RGB(225, 225, 0), BFElsepicBar(I).Line (0, nHeight - tHoldValue1 / 100

19、* nHeight)-(nWidth, nHeight), RGB(0, 225, 0), BF picBar(I).Line (0, nHeight - tHoldValue2 / 100 * nHeight)-(nWidth, (1 - tHoldValue1 / 100) * nHeight), RGB(225, 225, 0), BFpicBar(I).Line (0, nHeight - nDrawHeight)-(nWidth, (1 - tHoldValue2 / 100) * nHeight), RGB(255, 0, 0), BF End IfEnd IfIf I = 1 T

20、heny(num1) = vtltemValues(I)num1 = num1 + 1Elsez(num2) = vtltemValues(I)num2 = num2 + 1End IfNextEnd Sub文本框顯示程序代碼如下:Private Sub dataUpdate_Timer()If SaveFlag Then'保存數(shù)據(jù)結(jié)束后清除原來的數(shù)據(jù)datalnfo.Text = Year(Now() & Month(Now() & Day(Now() & "" & Hour(Now() & ":" &a

21、mp;Minute(Now() & ":" & Second(Now() & ""& "反應(yīng)罐溫度:"& dataTemp(1) & "" & "反應(yīng)罐液位:"& dataTemp(2) & Chr(13) & Chr(1O)SaveFlag = FalseElsedataInfo.Text = dataInfo.Text & Year(Now() & Month(Now() & Day(No

22、w() & ""& Hour(Now()& ":"& Minute(Now() & ":" & Second(Now() & "" & "反應(yīng)罐溫度:"& dataTemp(1) & ""& "反應(yīng)罐液位:"& dataTemp(2) & Chr(13) & Chr(10)End IfEnd Sub3.4數(shù)據(jù)保存此處定義bool型的SaveFla

23、g為保存標志,在保存時停止對新的數(shù)據(jù)的接收。主要用到Com mon Dialog控件。該控件可用于創(chuàng)建“文件打開”、“文件保存”、“文件打印”、“顏色設(shè)置”、“字體設(shè)置”、“幫助”6種對話框。程序代碼如下所示:Private Sub BtnSave_Click()TmUpdate.Enabled = FalsedataUpdate.Enabled = FalseCommonDialog1.DialogTitle ="另存為"CommonDialog1.DefaultExt = "txt"CommonDialog1.ShowSaveIf Len(Commo

24、nDialog1.FileName) > 0 ThenOpen CommonDialogl.FileName For Output As #1Print #1, dataInfo.TextClose #1SaveFlag = TrueEnd IfEnd Sub3.5實時曲線繪制Picture是功能強大坐標圖繪制軟件,本次設(shè)計中采用VB中Picture控件進行實時曲線繪制。在設(shè)計時添加2個系列曲線,代表兩個通道,即溫度和液位與 時間的關(guān)系。并在圖中繪出兩條警戒線,能更直觀地比對數(shù)據(jù)的變化。>.:;實時曲線跟蹤: r,-. r震惶善衣tE兀-i It 11faE更善我蛍注:1 !i !

25、1«1 -i i!時間m圖 3.2Picture 設(shè)置部分程序代碼如下所示:Picturel.CIsIf Checkl.Value = 0 ThenIf col < 201 ThenFor u = 1 To 2For j = col To colX = jY = vtltemValues(u)px(j, u) = Xpy(j, u) = 丫Next jNext ucol = col + 1pl = pl + 1ElseFor s = 1 To 2For t = 1 To 199px(t, s) = tpy(t, s) = py(t + 1, s)Next tpy(200, s)

26、 = vtltemValues(s)Next sEnd IfElsecol = colEnd IfIf pl >= 2 ThenFor w = 1 To 2Picture1.PSet (px(1, w), py(1, w)For j = 2 To colPicture1.L ine -(px(j - 1, w), py(j - 1, w), QBColor(w * 2)Next jNext wEnd If'畫兩條警戒線Picture1.DrawWidth = 2Picture1.Line (0, 150)-(200, 150), vbRedPicture1.Line (0, 60

27、0)-(200, 600), vbBlue'指示警戒值,警戒值以上改變顯示顏色If lbBar(1).Caption > 150 Or lbBar(2).Caption > 600 ThenLabel7.Caption ="出現(xiàn)異常!"ElseLabel7.Caption ="正在觀測!"End IfIf lbBar(1).Caption > 150 ThenText2.Text ="溫度過高!"picBar(1).Line (0, nHeight - nDrawHeight)-(nWidth, nHeigh

28、t), _RGB(255, 0, 0), BFEnd IfIf lbBar(1).Caption < 150 ThenText2.Text ="溫度平穩(wěn)!"picBar(1) .L ine (0, nHeight - nDrawHeight)-(nWidth, nHeight), _RGB(0, 255, 0), BFEnd IfIf lbBar(2).Caption > 600 ThenText1.Text ="液面過高!"picBar(2).Line (0, nHeight - nDrawHeight)-(nWidth, nHeight)

29、, _RGB(255, 0, 0), BF4程序測試4.1測試過程運行程序后,先單擊“連接”按鈕,保證客戶端連接上組態(tài)王數(shù)據(jù)庫。然后 單擊“加載”按鈕,觀察數(shù)據(jù)時候正常顯示,棒柱的數(shù)據(jù)和顏色是否正常,文本 框的時間和數(shù)據(jù)是否正常以及看是否能實時顯示曲線。單擊“保存數(shù)據(jù)”按鈕, 彈出對話框,選擇路徑,填寫文件名后保存數(shù)據(jù)。最后單擊“退出”按鈕,看成 否正常退出程序。運行程序,注意將bin文件夾放到工程下。4.2測試結(jié)果從測試結(jié)果上看,整個程序沒有bug,各個功能正常。從繪圖的結(jié)果可以看 出從服務(wù)器傳來的數(shù)據(jù)是按正弦規(guī)律變化的2014年月切日3 OPC Application Cemo操作面板岀現(xiàn)

30、異常!165. *73溫度討言2實時曲線跟蹤雜驚溫度顯示富度綠)'Jlun/Sltip逞出Tax 13201 2ClilL14 20H1L14 20141114 2Q141E14 20U1114 20UIL14 3QU1E14歸貫:113. 578:M 358:107. 375:13B 5M:1R2 457:154 449i ILB 033:T4 1549:1076:10:8 9:10:9 10:10 9 10:11 9:1012 Q:10 12 c 10 H90.00(270.( H :4TQ :esn.:590.5! 310110(Cesi sner張恒劉啟哈白童圖4.1程序測試圖

31、一3 QPC Applicat on Demo201411 月 14 日硯在時何:9時14分2秒抹作面板岀現(xiàn)異卒!實時曲線跟蹤溫蔭討高!實時歆抵更新夜位、溫卓顯丟(Sf&tt-爲度辯)|7 Rin/StfltRj另存為S:201電111起3:14:5201411143:14:G201111149:14:7201«1143;14;0331電111屯3:14:9£01411143:14:10h 154. IBS h 150. 49E h 117. 933F; 50.1ST:103. 384 S- i3G-279圖4.2程序測試圖* *U(E!)卜亨二蚪* »

32、ve »kfliH *爭理文禪夫-.WBE=1- .tni«卜載主雨OPC_數(shù)石±xt-7庫3 w*=國=T 7*7*5Designer 張恒 劉啟畤 白童E!|勺| 橫索VQP歸-<&鞘曰悶斎耶1014-11 13 2145丈稈關(guān)20JU1 11 14 y:15丈不之也亶件芒恨;tVr?iSi電消圖4.3保存數(shù)據(jù)5程序文檔5.1使用說明(1) 運行程序,連接成功后,啟動,此時棒狀圖以及文本框就會顯示反應(yīng) 罐溫度和反應(yīng)罐液位的值。(2) 當數(shù)據(jù)積累到一定程度之后,點擊“繪圖”按鈕,應(yīng)罐溫度和反應(yīng)罐液位數(shù)值變化曲線就會顯示出來,每點擊一次,就會刷新一次

33、。從而實現(xiàn)了數(shù)據(jù)的實時顯示。程序中數(shù)據(jù)刷新為1s,因此在點擊“繪圖”按鈕時頻率最好不要 超過1s。(3) 保存數(shù)據(jù)。點擊“保存”按鈕,會彈出對話框,輸入響應(yīng)的文件名保 存便可。保存數(shù)據(jù)后,所有歷史數(shù)據(jù)會被清空。5.2程序清單Option Base 1Option ExplicitDim WithEvents objServer As OPCServerDim objGroups As OPCGroupsDim objTestGrp As OPCGroupDim objItems As OPCItemsDim IServerHandles() As LongDim px(200, 2) As S

34、ingle, py(200, 2) As SingleDim col As IntegerDim pl As IntegerDim dataTemp(2) As StringDim DrawFlag As BooleanDim SaveFlag As BooleanSub Connect(strProglD As String, Optional strNode As String)If objServer Is Nothing Then'建立一個OPC服務(wù)器對象Set objServer = New OPCServerEnd IfIf objServer.ServerState =

35、OPCDisconnected Then'連接OPC服務(wù)器objServer.Connect strProgID, strNodeEnd IfIf objGroups Is Nothing Then'建立一個OPC組集合Set objGroups = objServer.OPCGroupsEnd IfIf objTestGrp Is Nothing Then'添加一個OPC組Set objTestGrp = objGroups.Add("TestGrp")End IfEnd SubSub AddItem()Dim strltemlDs(2) As S

36、tringDim ICIientHandles(2) As LongDim IErrors() As LongDim I As IntegerIf objTestGrp Is Nothing ThenExit SubEnd IfIf Not objItems Is Nothing ThenIf objItems.Count > 0 ThenExit SubEnd IfEnd If'設(shè)置組活動狀態(tài)objTestGrpsActive = True'取消組非同期通知objTestGrpsSubscribed = False'建立OPC項集合Set objItems =

37、objTestGrp.OPCItems'生成標簽的項標識符strltemlDs(l)="反應(yīng)罐溫度.Value"strltemlDs(2)="反應(yīng)罐液位.Value" ICIientHandles(l) = 1lClientHandles(2) = 2'添加OPC項Call objItems.AddItems(2, strltemIDs, _ ICIientHandles, IServerHandles, lErrors) End SubSub Disconnect()Dim IErrors() As LongIf Not objItem

38、s Is Nothing ThenIf objItems.Count > 0 Then'清除OPC項 objltems.Remove 2, IServerHandles, lErrors End IfSet objItems = NothingEnd IfIf Not objTestGrp Is Nothing Then'清除OPC組objGroups.Remove "TestGrp"Set objTestGrp = NothingEnd IfIf Not objGroups Is Nothing ThenSet objGroups = Nothing

39、End IfIf Not objServer Is Nothing ThenIf objServer.ServerState <> OPCDisconnected Then '斷開OPC服務(wù)器.objServer.DisconnectEnd IfSet objServer = NothingEnd IfEnd SubPrivate Sub btnConnect_Click()'調(diào)用Connect子程序Call Connect("kingview.view.1")Label7.Caption ="與服務(wù)器連接成功!"End Su

40、bPrivate Sub btnAddltem_Click()'調(diào)用AddItem子程序Call AddItemIf Not objTestGrp Is Nothing ThenIf objTestGrp.OPCItems.Count > 0 Then '啟動定時器tmUpdate.Enabled = True dataUpdate.Enabled = True ElseEnd IfEnd IfEnd SubPrivate Sub btnQuit_Click() '卸載窗體Unload fmMainEnd SubPrivate Sub Form_Unload(Ca

41、ncel As Integer) '調(diào)用Disconnect子程序Call DisconnectEnd SubPrivate Sub tmUpdate_Timer()Dim vtItemValues() As VariantDim lErrors() As LongDim strBuf As StringDim nWidth As IntegerDim nHeight As IntegerDim nDrawHeight As IntegerDim sglScale As SingleDim I As Integer, u As Integer, j As Integer, s As I

42、nteger, t As Integer, w As IntegerDim X As Single, Y As Single'同期讀取SyncRead OPCCache, vtItemValues, lErrors'棒圖的表示For I = 1 To 2'數(shù)據(jù)的格式化strBuf = Format(vtltemValues(l), "#.000")'表示數(shù)據(jù)字符串lbBar(I).Caption = strBuf dataTemp(I) = strBuf'計算棒的寬和高nWidth = picBar(l).ScaleWidthnHei

43、ght = picBar(l).ScaleHeightsglScale = vtltemValues(I) / 700nDrawHeight = CInt(nHeight * sglScale)'清除現(xiàn)棒圖picBar(l).CIs'繪制棒圖picBar(l).Line (0, nHeight - nDrawHeight)-(nWidth, nHeight), _ RGB(255, 0, 0), BFNext'曲線繪制Picture1.ClsIf Check1.Value = 0 ThenIf col < 201 ThenFor u = 1 To 2For j =

44、 col To colX = jY = vtltemValues(u)px(j, u) = Xpy(j, u) = 丫Next jNext ucol = col + 1pl = pl + 1ElseFor s = 1 To 2For t = 1 To 199px(t, s) = tpy(t, s) = py(t + 1, s)Next tpy(200, s) = vtltemValues(s)Next sEnd IfElsecol = colEnd IfIf pl >= 2 ThenFor w = 1 To 2Picture1.PSet (px(1, w), py(1, w)For j

45、= 2 To colPicture1.Line -(px(j - 1, w), py(j - 1, w), QBColor(w * 2)Next jNext wEnd If'畫兩條警戒線Picture1.DrawWidth = 2Picture1.Line (0, 150)-(200, 150), vbRedPicture1.Line (0, 600)-(200, 600), vbBlue'指示警戒值,警戒值以上改變顯示顏色If lbBar(1).Caption > 150 Or lbBar(2).Caption > 600 Then Label7.Caption

46、="出現(xiàn)異常!"ElseLabel7.Caption ="正在觀測!"End IfIf lbBar(1).Caption > 150 ThenText2.Text ="溫度過高!"picBar(1) .L ine (0, nHeight - nDrawHeight)-(nWidth, nHeight), _ RGB(255, 0, 0), BFEnd IfIf lbBar(1).Caption < 150 ThenText2.Text ="溫度平穩(wěn)!"picBar(1).Line (0, nHeight

47、 - nDrawHeight)-(nWidth, nHeight), _ RGB(0, 255, 0), BFEnd IfIf lbBar(2).Caption > 600 ThenTextl.Text ="液面過高!"picBar(2).Line (0, nHeight - nDrawHeight)-(nWidth, nHeight), _RGB(255, 0, 0), BFEnd IfIf lbBar(2).Caption < 600 ThenText1.Text ="液面平穩(wěn)!"picBar(2).Line (0, nHeight -

48、nDrawHeight)-(nWidth, nHeight), _RGB(0, 255, 0), BFEnd IfEnd SubSub SyncRead(nSource As Integer, ByRef vtltemValues() As Variant, _ByRef IErrors() As Long)Dim lServerHandlesTemp(2) As LongDim j As IntegerIf objTestGrp Is Nothing ThenExit SubEnd IfIf objTestGrp.OPCItems.Count > 0 Then'同期讀取objT

49、estGrp.SyncRead nSource, 2, lServerHandles, _vtItemValues, lErrorsEnd IfEnd SubPrivate Sub Form_Load()tmUpdate.Enabled = FalsetmUpdate.Interval = 100dataUpdate.Enabled = FalsedataUpdate.Interval = 1000'初始化時間變量col = 1pl = 0'調(diào)用時間函數(shù),顯示時間Call date1'初始化坐標圍Picture1.Scale (0, 750)-(200, 0)End Sub'調(diào)用系統(tǒng)時間子函數(shù)Sub date1()Label3.Caption = Trim(Str(Year(Date) + "年"+ Trim(Str(Month(Date) + "月"+ Trim(Str(Day(Date) + "Label4.Caption ="現(xiàn)在時間:"+ Trim(Str(Hour(Time)

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論