版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 課程設(shè)計(軟件設(shè)計)</p><p><b> 報告</b></p><p> 班 級: </p><p> 姓 名: </p><p> 學(xué) 號: </p>
2、<p> 指導(dǎo)教師: </p><p> 日 期: 2014 年 10 月 28 日</p><p><b> 目 錄</b></p><p><b> 1設(shè)計內(nèi)容1</b></p><p> 2應(yīng)用程序總體分析與設(shè)計
3、1</p><p> 2.1訪問老師提供的服務(wù)器的VB客戶端1</p><p> 2.2訪問WINCC服務(wù)器的VB客戶端1</p><p> 3應(yīng)用程序各功能模塊分析與設(shè)計2</p><p> 3.1訪問老師提供的服務(wù)器的VB客戶端2</p><p> 3.1.1變量聲明2</p>&
4、lt;p> 3.1.2連接OPC服務(wù)器和建立OPC組2</p><p> 3.1.3添加OPC標(biāo)簽2</p><p> 3.1.4斷開OPC服務(wù)器3</p><p> 3.1.5窗體設(shè)計3</p><p> 3.2訪問WINCC服務(wù)器的VB客戶端3</p><p> 3.2.1 OPC連接
5、3</p><p> 3.2.2 OPC的標(biāo)簽讀寫4</p><p> 3.2.3 OPC連接斷開4</p><p> 3.2.4建立窗體4</p><p><b> 4程序測試5</b></p><p><b> 4.1測試過程5</b></p&g
6、t;<p><b> 4.2測試結(jié)果5</b></p><p> 4.2.1 VB客戶端訪問老師提供的服務(wù)器5</p><p> 4.2.2 VB客戶端訪問WINCC服務(wù)器6</p><p><b> 5程序文檔9</b></p><p><b> 5.1使
7、用說明9</b></p><p> 5.1.1 VB客戶端訪問老師提供的服務(wù)器9</p><p> 5.1.2 VB客戶端訪問WINCC服務(wù)器9</p><p><b> 5.2程序說明9</b></p><p> 5.2.1 VB客戶端訪問老師提供的服務(wù)器的源程序9</p>
8、<p> 5.2.2 VB客戶端訪問WINCC服務(wù)器的源程序16</p><p><b> 6 總結(jié)19</b></p><p><b> 1設(shè)計內(nèi)容</b></p><p> 通過VB編程,編寫一個OPC客戶端程序,實現(xiàn)對任意OPC服務(wù)器的訪問讀取。本設(shè)計涉及到老師提供的服務(wù)器、WINCC服務(wù)器、V
9、B客戶端、OPC Scout V10客戶端、Matlab客戶端。</p><p> 我們組在兩個服務(wù)器,三個客戶端的基礎(chǔ)上進(jìn)行了多種組合,并一一實現(xiàn)。</p><p> 包括:(1)VB客戶端訪問老師提供的服務(wù)器。</p><p> ?。?)VB客戶端訪問WINCC服務(wù)器。</p><p> (3)VB客戶端、OPC Scout V10
10、客戶端對WINCC服務(wù)器的同步讀取。</p><p> ?。?)VB客戶端、MATLAB客戶端對WINCC服務(wù)器的同步讀取。</p><p> 2應(yīng)用程序總體分析與設(shè)計</p><p> 2.1訪問老師提供的服務(wù)器的VB客戶端</p><p> VB客戶端需要完成的操作有:</p><p><b>
11、(1)變量聲明</b></p><p> ?。?)連接OPC服務(wù)器和建立OPC組</p><p> ?。?)添加OPC標(biāo)簽</p><p> (4)斷開OPC服務(wù)器</p><p><b> ?。?)窗體設(shè)計</b></p><p> ?。?)命令按鈕的事件處理</p>
12、<p><b> ?。?)同步數(shù)據(jù)讀取</b></p><p> 2.2訪問WINCC服務(wù)器的VB客戶端</p><p> VB客戶端需要完成的操作有:</p><p><b> ?。?)OPC連接</b></p><p> ?。?)OPC的標(biāo)簽讀寫</p><p
13、> ?。?)OPC連接斷開</p><p><b> ?。?)建立窗體</b></p><p> 3應(yīng)用程序各功能模塊分析與設(shè)計</p><p> 3.1訪問老師提供的服務(wù)器的VB客戶端</p><p><b> 3.1.1變量聲明</b></p><p> 變
14、量的數(shù)據(jù)類型應(yīng)該指定為對象型。這些對象變量在窗體代碼的(General)部分聲明。因為在(General)部分聲明的變量,可以在窗體的任何方法的代碼內(nèi)引用。</p><p> 有關(guān)定義OPC對象的聲明及其說明列于表3-1-1</p><p> 表3-1-1 OPC對象變量的聲明</p><p> 3.1.2連接OPC服務(wù)器和建立OPC組</p>
15、<p> 考慮到代碼的可反復(fù)使用性,這里采用子程序進(jìn)行編程。</p><p> 這里用“NEW”關(guān)鍵詞生成OPC服務(wù)器的對象,然后調(diào)用OPC服務(wù)器對象的“Connect”方法,和OPC服務(wù)器連接。在連接遠(yuǎn)程服務(wù)器的時候,需要指定作為選用參數(shù)的遠(yuǎn)程計算機(jī)名。</p><p> 3.1.3添加OPC標(biāo)簽</p><p> 對OPC服務(wù)器進(jìn)行訪問前,必須
16、先在OPC組里添加要訪問的OPC標(biāo)簽。</p><p> 這里添加OPC標(biāo)簽的標(biāo)識符和數(shù)目是固定的,但是實際的OPC應(yīng)用程序往往要按照用戶的指定或讀取組態(tài)文件取得和處理需要添加OPC標(biāo)簽。</p><p> 3.1.4斷開OPC服務(wù)器</p><p> 連接著OPC服務(wù)器的OPC應(yīng)用程序,在退出前必須斷開和OPC服務(wù)器的連接。因為OPC服務(wù)器并不知道OPC應(yīng)用
17、程序的退出,如果不先斷開連接,那么OPC服務(wù)器使用的計算機(jī)資源就不被釋放。如果這樣的問題反復(fù)發(fā)生,久而久之,連續(xù)運轉(zhuǎn)的自動控制系統(tǒng)可能會使計算機(jī)資源漸漸枯竭從而發(fā)生嚴(yán)重問題。</p><p><b> 3.1.5窗體設(shè)計</b></p><p> 圖3.1.5 VB客戶端(1)窗體設(shè)計</p><p> 3.2訪問WINCC服務(wù)器的VB客
18、戶端</p><p> 3.2.1 OPC連接</p><p> 先在工具欄中“工程\引用”將近 Siemens OPC DAAutomation 2.0加入,然后開始定義全局變量。在本程序中,我使用了一個OPC組進(jìn)行OPC訪問,所以定義了全局變量。首先定義OPC服務(wù)類型與計算機(jī)結(jié)點名。定義OPC組與OPC標(biāo)簽組。并定義OPC的標(biāo)簽數(shù)組與值數(shù),值數(shù)組設(shè)為Variant。</p&g
19、t;<p> 在定義所有變量后,我們就要進(jìn)行OPC連接了,要進(jìn)行OPC連接之前,先要配置要訪問的OPC標(biāo)簽名(即WinCC內(nèi)部變量名),我們ItemIDs中加入相應(yīng)的標(biāo)簽名,注意:這數(shù)組必須由1開始,不能由0開始。 </p><p> 配置好標(biāo)簽后就要進(jìn)行OPC連接了。如下面子程序:①先配置名柄索引,這將在讀取OPC標(biāo)簽的值時可要用到。②生成OPC對象,③ 進(jìn)行OPC標(biāo)簽連接,至此OPC連接就成
20、功了,我們可以對OPC進(jìn)行讀與寫的操作了。</p><p> 3.2.2 OPC的標(biāo)簽讀寫</p><p> 對OPC標(biāo)簽的讀可以通過ItemIDsValue(4)組的DataChange事件來讀取。該事件有多個參數(shù):其中NumItems是指標(biāo)簽改變值的個數(shù),ClientHandles是改變值的標(biāo)簽索引,ItemValues為改變值的數(shù)據(jù),具體的意思是ClientHandles(ii)
21、的值是其對應(yīng)的標(biāo)簽數(shù)組的索引,其所指的OPC標(biāo)簽的值在ItemValues(ii)中。一般來說,剛連接上時,該事件會把全部所要求訪問的OPC標(biāo)簽值全部讀取過來(順序不一,要通過ClientHandles索引),此后只有數(shù)據(jù)發(fā)生變化時才會觸發(fā)該事件。也只會傳輸發(fā)生了變化的數(shù)據(jù),沒有變化的數(shù)據(jù)不會出現(xiàn)在本事件的ItemValues中。</p><p> 對OPC的寫可以有同步與異步之分,對于大量的數(shù)據(jù)傳輸,異步是更
22、佳的選擇,但對少量的數(shù)據(jù)傳輸,同步表現(xiàn)得更好。</p><p> 3.2.3 OPC連接斷開</p><p> OPC客戶端連接后要占用服務(wù)器資源,所以如果不需要使用OPC時,必須進(jìn)行OPC連接斷開。斷開的程序相當(dāng)簡單,釋放資源即可。</p><p><b> 3.2.4建立窗體</b></p><p> 圖3.
23、2.4 VB客戶端(2)窗體設(shè)計</p><p><b> 4程序測試</b></p><p><b> 4.1測試過程</b></p><p> 程序測試前必須在工程/引用中添加相應(yīng)組件,老師提供的服務(wù)器要添加OPC Automation 2.0組件,WINCC服務(wù)器要添加Siemens OPC DAAutomat
24、ion 2.0組件。編輯好窗體和程序點擊保存運行即可。對于VB客戶端(1),先點擊連接,再點擊加項即可實現(xiàn)OPC服務(wù)器的變量讀取。對于VB客戶端(2),可以在Text1中輸入主機(jī)名稱,設(shè)定WINCC服務(wù)器所在電腦,再點擊連接實現(xiàn)服務(wù)器訪問。此時,變量值列將顯示對應(yīng)變量的變量值,在變量值更改列輸入0~200任意值即可對相應(yīng)變量賦值。此時服務(wù)器端的變量值會相應(yīng)更改。</p><p> 通過OPC SCOUT V10
25、實現(xiàn)WINCC/VB/OPC SCOUT V10的連接:</p><p> OPC SCOUT V10作為客戶端對WINCC SERVER進(jìn)行讀寫,通過寫操作實現(xiàn)WINCC內(nèi)部變量的函數(shù)變化,VB程序作為另一個客戶端同步讀取WINCC SERVER的數(shù)據(jù)。</p><p> 同理,VB程序也可以作為客戶端對WINCC SERVER進(jìn)行讀寫,通過寫操作實現(xiàn)WINCC內(nèi)部變量的賦值,OPC
26、 SCOUT V10作為另一個客戶端同步讀取WINCC SERVER的數(shù)據(jù)。</p><p> 反之可以通過WINCC畫面對變量進(jìn)行賦值,兩個客戶端同步讀取WINCC變量。</p><p> 同樣還可以通過MATLAB實現(xiàn)對WINCC SERVER進(jìn)行讀寫操作。詳見測試結(jié)果。</p><p><b> 4.2測試結(jié)果</b></p&
27、gt;<p> 4.2.1 VB客戶端訪問老師提供的服務(wù)器</p><p> 圖4.2.1 VB客戶端訪問老師提供的服務(wù)器</p><p> 4.2.2 VB客戶端訪問WINCC服務(wù)器</p><p> 4.2.2-1 VB客戶端訪問WINCC服務(wù)器-讀操作</p><p> 4.2.2-2 VB客戶端訪問WINCC服
28、務(wù)器-寫操作</p><p> 4.2.2-3 OPC SCOUT V10讀取WINCC變量并修改變量值,返回服務(wù)器,VB讀?。?)</p><p> 4.2.2-4 OPC SCOUT V10讀取WINCC變量并修改變量值,返回服務(wù)器,VB讀?。?)</p><p> 4.2.2-5 MATLAB讀取WINCC變量并修改變量值,返回服務(wù)器,VB讀取(1)&l
29、t;/p><p> 4.2.2-6 MATLAB讀取WINCC變量并修改變量值,返回服務(wù)器,VB讀?。?)</p><p><b> 5程序文檔</b></p><p><b> 5.1使用說明</b></p><p> 5.1.1 VB客戶端訪問老師提供的服務(wù)器</p><
30、p> 對于VB客戶端(1),先點擊連接,再點擊加項即可實現(xiàn)OPC服務(wù)器的變量讀取。棒圖可以直觀的顯示當(dāng)前的變量值。點擊退出,退出客戶端應(yīng)用程序。</p><p> 5.1.2 VB客戶端訪問WINCC服務(wù)器</p><p> 對于VB客戶端(2),可以在Text1中輸入主機(jī)名稱,設(shè)定WINCC服務(wù)器所在電腦,再點擊連接實現(xiàn)服務(wù)器訪問。此時,狀態(tài)顯示圖標(biāo)(復(fù)選框)將變?yōu)檫x中狀態(tài),
31、變量值列將顯示對應(yīng)變量的變量值,在變量值更改列輸入0~200任意值即可對相應(yīng)變量賦值。此時服務(wù)器端的變量值會相應(yīng)更改。點擊斷開即可斷開服務(wù)器的連接,此時狀態(tài)顯示圖標(biāo)(復(fù)選框)將變?yōu)槲催x中狀態(tài)。點擊退出按鈕,關(guān)閉客戶端應(yīng)用程序。</p><p><b> 5.2程序說明</b></p><p> 5.2.1 VB客戶端訪問老師提供的服務(wù)器的源程序</p>
32、<p><b> ‘定義全局變量</b></p><p> Option Base 1</p><p> Option Explicit</p><p> Dim WithEvents objServer As OPCServer</p><p> Dim objGroups As OPCGrou
33、ps</p><p> Dim objTestGrp As OPCGroup</p><p> Dim objItems As OPCItems</p><p> Dim lServerHandles() As Long</p><p><b> ‘連接服務(wù)器</b></p><p>
34、Sub Connect(strProgID As String, Optional strNode As String)</p><p> If objServer Is Nothing Then</p><p> ' 建立一個OPC服務(wù)器對象</p><p> Set objServer = New OPCServer</p><
35、p><b> End If</b></p><p> If objServer.ServerState = OPCDisconnected Then</p><p> ' 連接OPC服務(wù)器</p><p> objServer.Connect strProgID, strNode</p><p>&
36、lt;b> End If</b></p><p> If objGroups Is Nothing Then</p><p> ' 建立一個OPC組集合</p><p> Set objGroups = objServer.OPCGroups</p><p><b> End If</b&g
37、t;</p><p> If objTestGrp Is Nothing Then</p><p> ' 添加一個OPC組</p><p> Set objTestGrp = objGroups.Add("TestGrp")</p><p><b> End If</b></p&
38、gt;<p><b> End Sub</b></p><p><b> ‘?dāng)嚅_服務(wù)器連接</b></p><p> Sub Disconnect()</p><p> Dim lErrors() As Long</p><p> If Not objItems Is Not
39、hing Then</p><p> If objItems.Count > 0 Then</p><p><b> ' 清除OPC項</b></p><p> objItems.Remove 2, lServerHandles, lErrors</p><p><b> End If&l
40、t;/b></p><p> Set objItems = Nothing</p><p><b> End If</b></p><p> If Not objTestGrp Is Nothing Then</p><p><b> ' 清除OPC組</b></p>
41、;<p> objGroups.Remove "TestGrp"</p><p> Set objTestGrp = Nothing</p><p><b> End If</b></p><p> If Not objGroups Is Nothing Then</p><p>
42、; Set objGroups = Nothing</p><p><b> End If</b></p><p> If Not objServer Is Nothing Then</p><p> If objServer.ServerState <> OPCDisconnected Then</p>&l
43、t;p> ' 斷開OPC服務(wù)器.</p><p> objServer.Disconnect</p><p><b> End If</b></p><p> Set objServer = Nothing</p><p><b> End If</b></p>
44、<p><b> End Sub</b></p><p><b> ’添加變量</b></p><p> Sub AddItem()</p><p> Dim strItemIDs(2) As String</p><p> Dim lClientHandles(2) As L
45、ong</p><p> Dim lErrors() As Long</p><p> Dim I As Integer</p><p> If objTestGrp Is Nothing Then</p><p><b> Exit Sub</b></p><p><b>
46、End If</b></p><p> If Not objItems Is Nothing Then</p><p> If objItems.Count > 0 Then</p><p><b> Exit Sub</b></p><p><b> End If</b>
47、</p><p><b> End If</b></p><p><b> ' 設(shè)置組活動狀態(tài)</b></p><p> objTestGrp.IsActive = True</p><p> ' 取消組非同期通知</p><p> objTestG
48、rp.IsSubscribed = False</p><p> ' 建立OPC項集合</p><p> Set objItems = objTestGrp.OPCItems</p><p> ' 生成標(biāo)簽的項標(biāo)識符</p><p> strItemIDs(1) = "Tag1.value"<
49、/p><p> strItemIDs(2) = "Tag2.value"</p><p> lClientHandles(1) = 1</p><p> lClientHandles(2) = 2</p><p><b> ' 添加OPC項</b></p><p>
50、 Call objItems.AddItems(2, strItemIDs, _</p><p> lClientHandles, lServerHandles, lErrors)</p><p><b> End Sub</b></p><p> ‘加項按鈕的動作函數(shù)</p><p> Private Sub
51、 btnAddItem_Click()</p><p> ' 調(diào)用AddItem子程序</p><p> Call AddItem</p><p> If Not objTestGrp Is Nothing Then</p><p> If objTestGrp.OPCItems.Count > 0 Then</p
52、><p><b> ' 啟動定時器</b></p><p> TmUpdate.Enabled = True</p><p><b> Else</b></p><p><b> End If</b></p><p><b> E
53、nd If</b></p><p><b> End Sub</b></p><p><b> ’連接按鈕動作函數(shù)</b></p><p> Private Sub btnConnect_Click()</p><p> ' 調(diào)用Connect子程序</p>
54、<p> Call Connect("OPCJ.SampleServer.1")</p><p><b> End Sub</b></p><p><b> ‘退出按鈕動作函數(shù)</b></p><p> Private Sub btnQuit_Click()</p>&
55、lt;p><b> ' 卸載窗體</b></p><p> Unload FmMain</p><p><b> End Sub</b></p><p><b> ’退出</b></p><p> Private Sub Form_Unload(Canc
56、el As Integer)</p><p> ' 調(diào)用Disconnect子程序</p><p> Call Disconnect</p><p><b> End Sub</b></p><p><b> ‘讀取周期定義</b></p><p> Pri
57、vate Sub tmUpdate_Timer()</p><p> Dim vtItemValues() As Variant</p><p> Dim lErrors() As Long</p><p> Dim strBuf As String</p><p> Dim nWidth As Integer</p>
58、<p> Dim nHeight As Integer</p><p> Dim nDrawHeight As Integer</p><p> Dim sglScale As Single</p><p> Dim I As Integer</p><p><b> ' 同期讀取</b>&l
59、t;/p><p> SyncRead OPCCache, vtItemValues, lErrors</p><p><b> ' 棒圖的表示</b></p><p> For I = 1 To 2</p><p><b> ' 數(shù)據(jù)的格式化</b></p><
60、;p> strBuf = Format(vtItemValues(I), "###.000")</p><p><b> ' 表示數(shù)據(jù)字符串</b></p><p> lbBar(I).Caption = strBuf</p><p><b> ' 計算棒的寬和高</b>&
61、lt;/p><p> nWidth = picBar(I).ScaleWidth</p><p> nHeight = picBar(I).ScaleHeight</p><p> sglScale = vtItemValues(I) / 700</p><p> nDrawHeight = CInt(nHeight * sglScale
62、)</p><p><b> ' 清除現(xiàn)棒圖</b></p><p> picBar(I).Cls</p><p><b> ' 繪制棒圖</b></p><p> picBar(I).Line (0, nHeight - nDrawHeight)-(nWidth, nHei
63、ght), _</p><p> RGB(255, 0, 0), BF</p><p><b> Next</b></p><p><b> End Sub</b></p><p><b> ‘讀取變量</b></p><p> Sub Syn
64、cRead(nSource As Integer, ByRef vtItemValues() As Variant, _</p><p> ByRef lErrors() As Long)</p><p> Dim lServerHandlesTemp(2) As Long</p><p> Dim j As Integer</p><p&
65、gt; If objTestGrp Is Nothing Then</p><p><b> Exit Sub</b></p><p><b> End If</b></p><p> If objTestGrp.OPCItems.Count > 0 Then</p><p><
66、b> ' 同期讀取</b></p><p> objTestGrp.SyncRead nSource, 2, lServerHandles, _</p><p> vtItemValues, lErrors</p><p><b> End If</b></p><p><b>
67、; End Sub</b></p><p><b> ‘啟動畫面</b></p><p> Private Sub Form_Load()</p><p> TmUpdate.Enabled = False</p><p> TmUpdate.Interval = 100</p>&l
68、t;p><b> End Sub</b></p><p> 5.2.2 VB客戶端訪問WINCC服務(wù)器的源程序</p><p><b> ‘定義全局變量</b></p><p> Option Explicit</p><p> Option Base 1 '這數(shù)組必須由1開
69、始,不能由0開始</p><p> Const ServerName = "OPCServer.WinCC.1" 'OPC的類型</p><p> Dim NodeName As String '結(jié)點名,即計算機(jī)名</p><p> Dim WithEvents MyOPCServer As OPCServer 'O
70、PC服務(wù)</p><p> Dim WithEvents MyOPCGroup As OPCGroup ' OPC組</p><p> Dim MyOPCGroupColl As OPCGroups</p><p> Dim MyOPCItemColl As OPCItems 'OPC標(biāo)簽組</p><p> Dim
71、MyOPCItems As OPCItems</p><p> Dim MyOPCItem As OPCItem</p><p> Dim ClientHandles(1) As Long '句柄</p><p> Dim ServerHandles() As Long</p><p> Dim Errors() As Lon
72、g</p><p> Dim ItemIDs(4) As String '記錄OPC的標(biāo)簽</p><p> Dim ItemIDsValue(4) As Variant '存放OPC的值</p><p> Dim GroupName As Variant</p><p><b> ‘連接按鈕動作函數(shù)<
73、/b></p><p> Private Sub Command1_Click()</p><p> Dim ii As Integer</p><p> Dim ClientHandles1(4) As Long</p><p> For ii = 1 To 4</p><p> ClientHand
74、les1(ii) = ii</p><p> ItemIDs(ii) = Text4(ii).Text '指明WinCC內(nèi)部變量名稱</p><p><b> Next ii</b></p><p> On Error GoTo ErrorHandler</p><p> GroupName = &quo
75、t;MyGroup"</p><p> NodeName = Text1.Text ' 結(jié)點名,即計算機(jī)名</p><p> Set MyOPCServer = New OPCServer</p><p> MyOPCServer.Connect ServerName, NodeName</p><p> Set M
76、yOPCGroupColl = MyOPCServer.OPCGroups</p><p> MyOPCGroupColl.DefaultGroupIsActive = True</p><p> Set MyOPCGroup = MyOPCGroupColl.Add(GroupName)</p><p> Set MyOPCItemColl = MyOPCG
77、roup.OPCItems</p><p> For ii = 1 To 4</p><p> ClientHandles1(ii) = ii</p><p> ItemIDs(ii) = Text4(ii).Text</p><p> MyOPCItemColl.AddItems 4, ItemIDs, ClientHandles1
78、, ServerHandles, Errors '初始化OCP連接</p><p><b> Next ii</b></p><p> MyOPCGroup.IsSubscribed = True</p><p> Option1.Value = True '連接成功標(biāo)志</p><p><b
79、> Exit Sub</b></p><p> ErrorHandler:</p><p> MsgBox "Error: " & Err.Description, vbCritical, "ERROR" '連接發(fā)生錯誤</p><p><b> End Sub</b&
80、gt;</p><p><b> ’退出按鈕動作函數(shù)</b></p><p> Private Sub Command3_Click()</p><p> Unload Form1</p><p><b> End Sub</b></p><p><b>
81、 ‘從服務(wù)器讀取變量</b></p><p> Private Sub MyOPCGroup_DataChange(ByVal TransactionID As Long, ByVal NumItems As Long, ClientHandles() As Long, ItemValues() As Variant, Qualities() As Long, TimeStamps() As Dat
82、e)</p><p> Dim ii As Long</p><p> For ii = 1 To 4</p><p> ItemIDsValue(ClientHandles(ii)) = ItemValues(ii) '對改變的值讀入本數(shù)組</p><p> Text5(ClientHandles(ii)).Text = I
83、temIDsValue(ClientHandles(ii))</p><p><b> Next ii</b></p><p><b> End Sub</b></p><p><b> '寫入</b></p><p> Private Sub Text8_Ch
84、ange(Index As Integer)</p><p> Dim valuess(4) As Variant</p><p> Dim ii As Long</p><p> For ii = 1 To 4</p><p> valuess(ii) = Text8(ii).Text</p><p> M
85、yOPCGroup.SyncWrite 4, ServerHandles, valuess, Errors</p><p><b> Next</b></p><p><b> End Sub</b></p><p><b> ‘?dāng)嚅_服務(wù)器連接</b></p><p>
86、 Private Sub Command2_Click()</p><p> On Error Resume Next</p><p> MyOPCGroupColl.RemoveAll '釋放組和服務(wù)器對象</p><p> MyOPCServer.Disconnect '與服務(wù)器斷開連接并且清除</p><p>
87、Set MyOPCItemColl = Nothing</p><p> Set MyOPCGroup = Nothing</p><p> Set MyOPCGroupColl = Nothing</p><p> Set MyOPCServer = Nothing</p><p> Option1.Value = False
88、39;連接成功標(biāo)志</p><p><b> End Sub</b></p><p><b> 6 總結(jié)</b></p><p> 通過這次課程設(shè)計,我收獲頗豐。對于OPC這個名詞,我以前只是聽說過,現(xiàn)在我才發(fā)現(xiàn)OPC的強(qiáng)大和重要性所在。OPC作為一種通用的通訊協(xié)議接口,他為工業(yè)現(xiàn)場解決了很多復(fù)雜的問題,在廣泛支持工
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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è)計報告
- 軟件課程設(shè)計報告
- 軟件測試課程設(shè)計報告
- 軟件工程課程設(shè)計報告
- vc++軟件課程設(shè)計報告
- 軟件綜合課程設(shè)計報告模板
- 軟件工程課程設(shè)計報告
- 基帶編碼軟件課程設(shè)計設(shè)計報告
- [封面] 《軟件工程》課程設(shè)計報告
- 軟件工程課程設(shè)計報告模板
- 軟件工程課程設(shè)計個人報告
- 軟件工程課程設(shè)計-《社團(tuán)管理系統(tǒng)》課程設(shè)計報告書
- 課程設(shè)計報告--純軟件設(shè)計出題程序
- 軟件課程設(shè)計報告(飛機(jī)票系統(tǒng))
- 智能終端軟件開發(fā)課程設(shè)計報告
- 宿舍管理查詢軟件課程設(shè)計報告
- 軟件課程設(shè)計報告---企業(yè)采購管理系統(tǒng)
- java ee軟件開發(fā)課程設(shè)計報告
- protel軟件課程設(shè)計
- 抓圖軟件課程設(shè)計
評論
0/150
提交評論