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服务器已连接!", vbOKOnly, "提示:" tmrRun.Enabled = True cmdConnect.Enabled = False cmdDisConnect.Enabled = True Else MsgBox "opc服务器连接错误!", 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、联网运行需要配置DCOM,配置的详细情节请参考世纪星帮助或世纪星安装光盘中的《世纪星OPC Server配置指南》。 C、本例只演示从世纪星中读取数据,读者可自行研究回写数据的例子。
4 世纪星 OPC Server 配置指南
由于Windows XP SP2操作系统的安全特性非常高,所以配置也相对其他系统而言是最复杂的。下面以 Windows XP SP2操作系统为例来说明CenturyStar OPCServer的配置方法。