Private WithEvents MyOpcServer As OPCServer
Private WithEvents ConnectedGroup As OPCGroup
Dim OPCItemCollection As OPCItems
Dim ItemCount As Long
Dim OPCItemIDs(10) As String
Dim ItemServerHandles() As Long
Dim ItemServerErrors() As Long
Dim ClientHandles(10) As Long 3.连接服务器
Private Sub Command2_Click()
On Error GoTo Err:
'做VB程序时,若不知道IFIX的OPC 服务器OPC连接名称,可以用OPC标准客户端先采集一下IFIX服务器
'OPC标准客户端标题即是IFIX的OPC 服务器OPC连接名称。其他OPC服务器名称都可用此方法读出。
Dim ProgID As String, ServerName As String
ProgID = "Intellution.OPCEDA" 'ProgID 由OPC Server 所规定"
ServerName = "mycomputername" 'OPCServer 的计算机名称
Set MyOpcServer = New OPCServer '创建新的OPCServer 实体
MyOpcServer.Connect ProgID, ServerName '用Connect 方法连接OPC服务器,如果连接不成功将会出错,程序中在这里还应该增加容错处理
Set ConnectedGroup = MyOpcServer.OPCGroups.Add("Group tow") '创建新的OPCGroup 的实体,名称随意
ConnectedGroup.UpdateRate = 500
ConnectedGroup.IsSubscribed = True
Set OPCItemCollection = ConnectedGroup.OPCItems
OPCItemCollection.DefaultIsActive = True
ItemCount = 2
OPCItemIDs(1) = "THISNODE.IFIX1_H2O_LITST0901.F_CV" '设定所访问的OPC 服务器上的变量名称(这个是iFIX演示系统标签的数据源)
ClientHandles(1) = 1 '设定OPC 客户端的句柄
OPCItemIDs(2) = "THISNODE.IFIX1_H2O_LITST0902.F_CV" '设定所访问的OPC 服务器上的变量名称(这个是iFIX演示系统标签的数据源)
ClientHandles(2) = 2
OPCItemCollection.AddItems ItemCount, OPCItemIDs, ClientHandles, ItemServerHandles, ItemServerErrors
Exit Sub
Err:
MsgBox Err.Description
Exit Sub
End Sub
4.获取数据,使用Debug.Print打印出来
Private Sub ConnectedGroup_DataChange(ByVal TransactionID As Long, ByVal NumItems As Long, ClientHandles() As Long, ItemValues() As Variant, Qualities() As Long, TimeStamps() As Date)
For i = 1 To NumItems
Debug.Print Str(ClientHandles(i)) + "--" + Str(ItemValues(i)) + ":" + Str(TimeStamps(i)) + ":" + Str(Qualities(i))
Next i
End Sub
opcdaauto.zip
(101.87 KB, 售价: 1 E币)
【必读】版权免责声明
1、本主题所有言论和内容纯属会员个人意见,与本论坛立场无关。2、本站对所发内容真实性、客观性、可用性不做任何保证也不负任何责任,网友之间仅出于学习目的进行交流。3、对提供的数字内容不拥有任何权利,其版权归原著者拥有。请勿将该数字内容进行商业交易、转载等行为,该内容只为学习所提供,使用后发生的一切问题与本站无关。 4、本网站不保证本站提供的下载资源的准确性、安全性和完整性;同时本网站也不承担用户因使用这些下载资源对自己和他人造成任何形式的损失或伤害。 5、本网站所有软件和资料均为网友推荐收集整理而来,仅供学习用途使用,请务必下载后两小时内删除,禁止商用。6、如有侵犯你版权的,请及时联系我们(电子邮箱1370723259@qq.com)指出,本站将立即改正。
|