马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
opc的官方解释:
OPC (用于过程控制的OLE)是一个工业标准,管理这个标准国际组织是OPC基金会,OPC基金会现有会员已超过220家。遍布全球,包括世界上所有主要的自动化控制系统、仪器仪表及过程控制系统的公司。
基于微软的OLE (现在的Active X)、COM (部件对象模型)和DCOM (分布式部件对象模型)技术。OPC包括一整套接口、属性和方法的标准集,用于过程控制和制造业自动化系统。
Active X/COM技术定义各种不同的软件部件如何交互使用和分享数据。不论过程中采用什么软件或设备,OPC为多种多样的过程控制设备之间进行通信提供了公用的接口。
其实是:他们很多公司一起定的一个标准,都封装好了,给我们提供了非常好的接口,让我们去自己开发软件,来实现自己所希望得到得功能。当然这样会非常有利于不同公司间得数据传送的。
OPC运行环境支持文件:
APRXDIST.EXE
opc_aeps.dll
opccomn_ps.dll
opcdaauto.dll
OPCENUM.EXE
opchda_ps.dll
opcproxy.dll
REGSVR32完以后再调用,下面是调用的一些小程序:
获得所有本电脑上运行的opc服务
[复制到剪贴板]
CODE:
Private Sub Command1_Click()
Dim AllOPCServers As Variant
Dim i As Integer
Set AnOPCServer = New OPCServer
List1.Clear
AllOPCServers = AnOPCServer.GetOPCServers
For i = LBound(AllOPCServers) To UBound(AllOPCServers)
List1.AddItem AllOPCServers(i)
Next i
Set AnOPCServer = Nothing
End Sub
OPC连接代码:
[复制到剪贴板]
CODE:
Private Sub OPCServerConnect_Click()
Dim ConnectedServerName As String
Dim ConnectedNodeName As Variant
Set ConnectedOPCServer = New OPCServer
ConnectedServerName = OPCServerName.Text //opc的名字
ConnectedNodeName = OPCNodeName.Text //opc的node name
ConnectedOPCServer.Connect ConnectedServerName, ConnectedNodeName
End sub
add group
[复制到剪贴板]
CODE:
Private Sub AddOPCGroup_Click()
Set ConnectedServerGroup = ConnectedOPCServer.OPCGroups
ConnectedServerGroup.DefaultGroupIsActive = GroupActiveState.Value
ConnectedServerGroup.DefaultGroupDeadband = Val(GroupDeadBand.Text)
Set ConnectedGroup = ConnectedServerGroup.Add(OPCGroupName.Text)
ConnectedGroup.UpdateRate = Val(GroupUpdateRate.Text) //更新速度
ConnectedGroup.IsSubscribed = True
GoTo SkipAddGroupError
ShowOPCGroupAddError:
Call DisplayOPC_COM_ErrorValue("Add Group", Err.Number)
SkipAddGroupError:
End Sub
add Item
[复制到剪贴板]
CODE:
Private Sub OPCAddItems_Click()
ItemCount = 10
Dim i As Integer
For i = 0 To 9
OPCItemIDs(i + 1) = OPCItemName(i).Text
ClientHandles(i + 1) = i
OPCItemActiveState(i).Value = 1
Next i
Set OPCItemCollection = ConnectedGroup.OPCItems
OPCItemCollection.DefaultIsActive = True
OPCItemCollection.AddItems ItemCount, OPCItemIDs, ClientHandles, ItemServerHandles, ItemServerErrors
Dim AnItemIsGood As Boolean
AnItemIsGood = False
For i = 0 To 9
If ItemServerErrors(i + 1) = 0 Then ' If the item was added successfully then allow it to be used.
OPCItemValueToWrite(i).Enabled = True
OPCItemWriteButton(i).Enabled = True
OPCItemActiveState(i).Enabled = True
OPCItemSyncReadButton(i).Enabled = True
AnItemIsGood = True
Else
ItemServerHandles(i + 1) = 0 ' If the handle was bad mark it as empty
OPCItemValueToWrite(i).Enabled = False
OPCItemWriteButton(i).Enabled = False
OPCItemActiveState(i).Enabled = False
OPCItemSyncReadButton(i).Enabled = False
End If
Next i
If AnItemIsGood Then
OPCAddItems.Enabled = False
For i = 0 To 9
OPCItemName(i).Enabled = False ' Disable the Item Name cotnrols while now that they have been added to the group.
Next i
RemoveOPCGroup.Enabled = False ' If an item has been don't allow the group to be removed until the item is removed
OPCRemoveItems.Enabled = True
Else
' The OPC Server did not accept any of the items we attempted to enter, let the user know to try again.
Dim Response
Response = MsgBox("The OPC Server has not accepted any of the item you have enter, check your item names and try again.", vbOKOnly, "OPC Add Item")
End If
GoTo SkipOPCItemAddError
ShowOPCItemAddError:
Call DisplayOPC_COM_ErrorValue("OPC Add Items", Err.Number)
SkipOPCItemAddError:
End Sub
|