Option Explicit Dim WithEvents opcSvr As OPCServer Dim WithEvents opcGrp As OPCGroup Dim opcItm(3) As OPCItem Dim opcInt As Variant Dim opcInfo As Variant Dim opcDsc As Variant Dim v As Variant Dim q As Variant Dim t As Variant Private Sub cmdConnect_Click() On Error GoTo ed If opcSvr Is Nothing Then Set opcSvr = New OPCServer opcSvr.Connect "CenturyStar.OPCServer", txtIP.Text opcSvr.OPCGroups.DefaultGroupUpdateRate = 50 Set opcGrp = opcSvr.OPCGroups.Add("Group") Set opcItm(0) = opcGrp.OPCItems.AddItem("opcInt", 1) Set opcItm(1) = opcGrp.OPCItems.AddItem("opcInfo", 2) Set opcItm(2) = opcGrp.OPCItems.AddItem("opcDsc", 3) Set opcItm(3) = opcGrp.OPCItems.AddItem("opcFlt", 4) If opcSvr.ServerState = 1 Then MsgBox "opc服務(wù)器已連接!", vbOKOnly, "提示:" tmrRun.Enabled = True cmdConnect.Enabled = False cmdDisConnect.Enabled = True Else MsgBox "opc服務(wù)器連接錯(cuò)誤!", vbOKOnly, "提示:" End If ed: End Sub Private Sub cmdDisConnect_Click() On Error GoTo ed tmrRun.Enabled = False opcSvr.OPCGroups.RemoveAll opcSvr.Disconnect Set opcSvr = Nothing cmdDisConnect.Enabled = False cmdConnect.Enabled = True ed: End Sub Private Sub Form_Unload(Cancel As Integer) On Error GoTo ed cmdDisConnect_Click ed: End End Sub Private Sub tmrRun_Timer() On Error GoTo ed tmrRun.Enabled = False If opcSvr.ServerState Then opcItm(0).Read 1, v, q, t txtInt.Text = v opcItm(1).Read 1, v, q, t txtInfo.Text = v opcItm(2).Read 1, v, q, t txtDsc.Text = v opcItm(3).Read 1, v, q, t txtFlt.Text = v End If tmrRun.Enabled = True ed: End Sub
B、畫面
圖4 OPC Client界面
3)示例說明
A、使用OPC之前可能需要安裝OPC Data Access 2.0 Components。 B、聯(lián)網(wǎng)運(yùn)行需要配置DCOM,配置的詳細(xì)情節(jié)請(qǐng)參考世紀(jì)星幫助或世紀(jì)星安裝光盤中的《世紀(jì)星OPC Server配置指南》。 C、本例只演示從世紀(jì)星中讀取數(shù)據(jù),讀者可自行研究回寫數(shù)據(jù)的例子。
4 世紀(jì)星 OPC Server 配置指南
由于Windows XP SP2操作系統(tǒng)的安全特性非常高,所以配置也相對(duì)其他系統(tǒng)而言是最復(fù)雜的。下面以 Windows XP SP2操作系統(tǒng)為例來說明CenturyStar OPCServer的配置方法。