如何用VB编写OPC客户端程序
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
End Sub
Private Sub cmbBrowseFilter_Click() Select Case cmbBrowseFilter.Text Case 'OPC_FLAT' &
OPC 客户程序(VB 篇——同步) 代码如下: Option Explicit Dim WithEvents ServerObj As OPCServer Dim WithEvents GroupObj As OPCGroup Dim ItemObj As OPCItem Private Sub Command_Start_Click() Dim OutText As String On Error GoTo ErrorHandler Command_Start.Enabled = False Command_Read.Enabled = True Command_Write.Enabled = True Command_Exit.Enabled = True OutText = '连接 OPC 服务器' Set ServerObj = New OPCServer ServerObj.Connect ('XXXSERVER')'XXXSERVER 为某 OPC 服务器名称 OutText = '添加组' Set GroupObj = ServerObj.OPCGroups.Add('Group') OutText = 'Adding an Item to the group' Set ItemObj = GroupObj.OPCItems.AddItem('XXXITEM', 1) 'XXXITEM 为添加的 ITEM 名称 Exit Sub ErrorHandler: '如果出现异常,则报出错误。
OPC BROWSER ITEM 程序(VB 篇)
OPC 技术论坛 OPC 服务器,客户程序技术讨论 一、VB 新建窗体如下 详见相册 OPC 技术。 二、引用如下 详见相册 OPC 技术。 三、代码如下
Dim WithEvents g_Server As OPCServer Dim g_Browser As OPCBrowser
IOPCDataCallback 接口,将数据发送给客户程序。异步方式中允许服务器将读写操作进行排 队,使客户方的调用函数可立刻返回,当服务器读写操作完成后再通知客户程序。显然,异 步通报方式的通信效率更高,这种方式也是本文所要讨论的方式,但有多个客户程序与服务 器相连时,同步读写方式更具时效性。对于每个组对象,客户程序可根据需要采用其中一种 数据存取方式,而不能两者都使用
OPC 客户程序(VB 篇——异步) Option Explicit Option Base 1
Const WRITEASYNC_ID = 1 Const READASYNC_ID = 2 Const REFRESHASYNC_ID = 3
''---------------------------------------------------------------------------'' Interface Objects ''---------------------------------------------------------------------------Public WithEvents ServerObj As OPCServer Public WithEvents GroupObj As OPCGroup
应用程序 1 应用程序 2 OPC 服务器 A OPC 服务器 B OPC 服务器 C 设备 A1 设备 A2 设备 B1 …… 这样,当现场设备发生变化或系统中加入新设备时,OPC 服务器的提供商需要重新实现服 务器接口,以适应硬件的变化,但由于服务器所提供的接口的一致性,工控软件不作更改即 可继续使用,只是某些情况下可能需要重新组态(如添加新的 PLC 站点等),这样,软件开 发商可以节省大量的时间致力于工控软件的性能方面的提高,不必再考虑硬件变化带来的影 响,大大减小了软件维护的工作量。这正如 OPC 规范里所说,OPC 将应用软件和硬件设备 划清了界限。 2.1 OPC 基本结构 OPC 服务器有两类接口:定制接口(Custom Interface) 、自动化接口(Automation Interface), 定制接口比较低级,它提供更多的功能,效率也比后者高,可以用 C++语言调用此类接口, 自动化接口主要用于 VB、DELPHI 等开发工具。按照 OPC 规范,定制接口是服务商必须提 供的,而自动化接口则是可选的,不过,OPC 基金会(管理 OPC 标准的国际组织)提供了 一个叫做“自动化包装器”的动态连接库,用于在两者间转换。如图二所示: OPC 定制接口 OPC 自动化接口 OPC 自动化 包装器
Dim ItemObj1 As OPCItem Dim ItemObj2 As OPCItem Dim Serverhandle(2) As Long
Private Sub chkGroupActive_Click() If chkGroupActive = 1 Then GroupObj.IsActive = 1 Else GroupObj.IsActive = 0 End If End Sub
用 VB 编写 OPC 客户端访问 WINCC
用 VB 编写 OPC 客户端访问 WINCC OPC 是一个工业标准,它是由一些世界上著名的自动化系统和硬件、软件公司ห้องสมุดไป่ตู้和
Microsoft(微软)紧密合作而建立的。〔O 代表 OLE(对象链接和嵌入),P (process 过程),C (control 控制)。OLE 已从面向对象重新定义为基于对象并更名为 Active X〕。 WinCC 是西门子公司在自动化领域采用最先进的技术与微软公司在共同开发的居于世界领 先地位的工控软件。WinCC 即 WINDOWS CONTROL CENTER(视窗控制中心)。WinCC 是一个功能强大的全面开放的监控系统,既可以用来完成小规模的简单的过程监控应用,也 可以用来完成复杂的应用。在任何情况下 WinCC 都可以生成漂亮而便捷的人机对话接口, 使操作员能够清晰地管理和优化生产过程。它集成的 OPC(OLE for process control)服务器使 得过程数据可由其它
如何用 VB 编写 OPC 客户端程序 一、引言 在工业自动化领域,计算机早已成为必不可少的工具,计算机技术的不断发展,大大加速了 工业自动化技术的进步,而各种各样的工业控制应用软件正是具体实现这一进程的最重要的 工具。 以往,应用软件开发商要为每一种硬件开发驱动程序,由于硬件的种类繁多,特征各异,软 件开发商的负担异常繁重,尤其是如果硬件特征发生了变化,整个应用软件相应的驱动程序 也要相应地修改,这对软件开发商,对整个工程都是很不利的。而且由于驱动程序的不统一, 不同应用程序访问同一硬件设备时常常发生冲突。OPC(OLE for Process Control)技术标准正 是在这种情况下产生的。OPC 基于微软的 OLE、COM 和 DCOM 技术,而且它本身就是一 种特殊的 COM,也正因为有微软的参与,以及以已经成熟的技术为基础,它比一般的工业 标准制定的效率更高,它从开始制定到第一个可运行的规范开始运行,只用了不到一年的时 间。 二、OPC 原理及应用 OPC 技术为工业自动化软件面向对象的开发提供了统一的标准。它大大减轻了软件开发商 的负担,软件开发商不必再为每一硬件单独编写驱动程序,只要硬件的特征符合统一的 OPC 接口程序标准,或者硬件生产商提供 OPC 服务器,如图一所示,不同的应用软件开发商都 可以采用 OPC 标准设计工控软件,以标准规定的统一接口通过 OPC 服务器存取现场数据。
IOPCServer IConnectionPointContainer IOPCCommon IOPCBrowse IOPCItemIO IUnknown OPC Server IOPCGroupStateMgt IOPCItemMgt IConnectionPointContainer IOPCItemDeadBandMgt IOPCSyncIO IOPCAsyncIO2 IOPCSyncIO2 IOPCGroupStateMgt2 IOPCAsyncIO3 OPC Group IUnknown 图三 标准 OPC Server 和 OPC Group 对象(DA 3.0 版) 2.2 OPC 数据访问方式 OPC 客户程序对 OPC 服务器中数据的存取方式分为同步读写方式和异步读写方式。客户程 序可按照一定的周期调用 OPC Group 对象的 IOPCSyncIO 接口对服务器程序进行数据同步 存取操作,此时客户方的调用函数一直运行到所有数据读写完成,然后才能执行其它操作, 因此,这种方法适合与读取少量数据,如果数据多的话,会使系统处于假死状态,无法进行 操作。IOPCSyncIO2 是从 3.0 版才出现的,是对 IOPCSyncIO 的增强。IOPCAsyncIO2 和 IOPCAsyncIO3 是异步方式中使用的接口,异步访问时,当客户端对服务器提出访问要求后, 立即返回到 OPC 应用程序执行其它操作,无须等待,当 OPC 服务器完成数据读取后通知 OPC 应用程序,应用程序从而得到数据。其中前者是在 2.0 版本中新定义的,具有较高的通 信性能;后者则是在 3.0 版本中才刚刚出现,同 IOPCSyncIO2 类似,IOPCAsyncIO3 是对 IOPCAsyncIO2 的增强。在异步方式下,服务器程序收到读请求后,调用客户程序方的
Private Sub Command_Start_Click() Dim OutText As String On Error GoTo ErrorHandler Command_Start.Enabled = False Command_Read.Enabled = True Command_Write.Enabled = True Command_Exit.Enabled = True chkGroupActive.Enabled = True OutText = '连接 OPC 服务器' Set ServerObj =
Dim BrowseFilter As Long
Dim Vt_Filter As Integer Dim nodX As Node Dim Value As Variant Dim FullName As String Dim Relative As String Dim i As Integer
Private Sub cmbAccessRights_Click() Select Case cmbAccessRights.Text Case 'OPC_ACCESS_WRITE' g_Browser.AccessRights = OPCWritable Case Else g_Browser.AccessRights = OPCReadable End Select
C++程序 OPC 服务器 VB 程序 物理设备 图二 OPC 典型结构 在 OPC 的早期规范里主要包括 OPC 数据存取规范、OPC 报警和事件、OPC 历史数据存取 规范。OPC 数据存取规范详细规定了客户程序和服务器程序进行数据通信的机制,其它类 型的 OPC 服务器往往是在数据存取服务器的基础上通过增加对象、扩展接口而来的,所以 该规范也是其它 OPC 规范的基础。OPC 数据存取规范规定的基本对象有三类:OPC Server、 OPC Group 和 OPC Item,OPC Server 包含服务器的所有信息,也是 OPC Group 的容器,OPC Group 除了包含它自身信息外,还负责管理 OPC Item。它们的结构如图三所示。每一个 OPC Item 代表到数据源的一个连接,但它没有提供外部接口,客户端程序无法对 OPC Item 直接 进行操作,应用程序必须依靠 OPC Item 的容器 OPC Group 来对它进行操作,这在下面的程 序中会有具体说明。
Private Sub cmbBrowseFilter_Click() Select Case cmbBrowseFilter.Text Case 'OPC_FLAT' &
OPC 客户程序(VB 篇——同步) 代码如下: Option Explicit Dim WithEvents ServerObj As OPCServer Dim WithEvents GroupObj As OPCGroup Dim ItemObj As OPCItem Private Sub Command_Start_Click() Dim OutText As String On Error GoTo ErrorHandler Command_Start.Enabled = False Command_Read.Enabled = True Command_Write.Enabled = True Command_Exit.Enabled = True OutText = '连接 OPC 服务器' Set ServerObj = New OPCServer ServerObj.Connect ('XXXSERVER')'XXXSERVER 为某 OPC 服务器名称 OutText = '添加组' Set GroupObj = ServerObj.OPCGroups.Add('Group') OutText = 'Adding an Item to the group' Set ItemObj = GroupObj.OPCItems.AddItem('XXXITEM', 1) 'XXXITEM 为添加的 ITEM 名称 Exit Sub ErrorHandler: '如果出现异常,则报出错误。
OPC BROWSER ITEM 程序(VB 篇)
OPC 技术论坛 OPC 服务器,客户程序技术讨论 一、VB 新建窗体如下 详见相册 OPC 技术。 二、引用如下 详见相册 OPC 技术。 三、代码如下
Dim WithEvents g_Server As OPCServer Dim g_Browser As OPCBrowser
IOPCDataCallback 接口,将数据发送给客户程序。异步方式中允许服务器将读写操作进行排 队,使客户方的调用函数可立刻返回,当服务器读写操作完成后再通知客户程序。显然,异 步通报方式的通信效率更高,这种方式也是本文所要讨论的方式,但有多个客户程序与服务 器相连时,同步读写方式更具时效性。对于每个组对象,客户程序可根据需要采用其中一种 数据存取方式,而不能两者都使用
OPC 客户程序(VB 篇——异步) Option Explicit Option Base 1
Const WRITEASYNC_ID = 1 Const READASYNC_ID = 2 Const REFRESHASYNC_ID = 3
''---------------------------------------------------------------------------'' Interface Objects ''---------------------------------------------------------------------------Public WithEvents ServerObj As OPCServer Public WithEvents GroupObj As OPCGroup
应用程序 1 应用程序 2 OPC 服务器 A OPC 服务器 B OPC 服务器 C 设备 A1 设备 A2 设备 B1 …… 这样,当现场设备发生变化或系统中加入新设备时,OPC 服务器的提供商需要重新实现服 务器接口,以适应硬件的变化,但由于服务器所提供的接口的一致性,工控软件不作更改即 可继续使用,只是某些情况下可能需要重新组态(如添加新的 PLC 站点等),这样,软件开 发商可以节省大量的时间致力于工控软件的性能方面的提高,不必再考虑硬件变化带来的影 响,大大减小了软件维护的工作量。这正如 OPC 规范里所说,OPC 将应用软件和硬件设备 划清了界限。 2.1 OPC 基本结构 OPC 服务器有两类接口:定制接口(Custom Interface) 、自动化接口(Automation Interface), 定制接口比较低级,它提供更多的功能,效率也比后者高,可以用 C++语言调用此类接口, 自动化接口主要用于 VB、DELPHI 等开发工具。按照 OPC 规范,定制接口是服务商必须提 供的,而自动化接口则是可选的,不过,OPC 基金会(管理 OPC 标准的国际组织)提供了 一个叫做“自动化包装器”的动态连接库,用于在两者间转换。如图二所示: OPC 定制接口 OPC 自动化接口 OPC 自动化 包装器
Dim ItemObj1 As OPCItem Dim ItemObj2 As OPCItem Dim Serverhandle(2) As Long
Private Sub chkGroupActive_Click() If chkGroupActive = 1 Then GroupObj.IsActive = 1 Else GroupObj.IsActive = 0 End If End Sub
用 VB 编写 OPC 客户端访问 WINCC
用 VB 编写 OPC 客户端访问 WINCC OPC 是一个工业标准,它是由一些世界上著名的自动化系统和硬件、软件公司ห้องสมุดไป่ตู้和
Microsoft(微软)紧密合作而建立的。〔O 代表 OLE(对象链接和嵌入),P (process 过程),C (control 控制)。OLE 已从面向对象重新定义为基于对象并更名为 Active X〕。 WinCC 是西门子公司在自动化领域采用最先进的技术与微软公司在共同开发的居于世界领 先地位的工控软件。WinCC 即 WINDOWS CONTROL CENTER(视窗控制中心)。WinCC 是一个功能强大的全面开放的监控系统,既可以用来完成小规模的简单的过程监控应用,也 可以用来完成复杂的应用。在任何情况下 WinCC 都可以生成漂亮而便捷的人机对话接口, 使操作员能够清晰地管理和优化生产过程。它集成的 OPC(OLE for process control)服务器使 得过程数据可由其它
如何用 VB 编写 OPC 客户端程序 一、引言 在工业自动化领域,计算机早已成为必不可少的工具,计算机技术的不断发展,大大加速了 工业自动化技术的进步,而各种各样的工业控制应用软件正是具体实现这一进程的最重要的 工具。 以往,应用软件开发商要为每一种硬件开发驱动程序,由于硬件的种类繁多,特征各异,软 件开发商的负担异常繁重,尤其是如果硬件特征发生了变化,整个应用软件相应的驱动程序 也要相应地修改,这对软件开发商,对整个工程都是很不利的。而且由于驱动程序的不统一, 不同应用程序访问同一硬件设备时常常发生冲突。OPC(OLE for Process Control)技术标准正 是在这种情况下产生的。OPC 基于微软的 OLE、COM 和 DCOM 技术,而且它本身就是一 种特殊的 COM,也正因为有微软的参与,以及以已经成熟的技术为基础,它比一般的工业 标准制定的效率更高,它从开始制定到第一个可运行的规范开始运行,只用了不到一年的时 间。 二、OPC 原理及应用 OPC 技术为工业自动化软件面向对象的开发提供了统一的标准。它大大减轻了软件开发商 的负担,软件开发商不必再为每一硬件单独编写驱动程序,只要硬件的特征符合统一的 OPC 接口程序标准,或者硬件生产商提供 OPC 服务器,如图一所示,不同的应用软件开发商都 可以采用 OPC 标准设计工控软件,以标准规定的统一接口通过 OPC 服务器存取现场数据。
IOPCServer IConnectionPointContainer IOPCCommon IOPCBrowse IOPCItemIO IUnknown OPC Server IOPCGroupStateMgt IOPCItemMgt IConnectionPointContainer IOPCItemDeadBandMgt IOPCSyncIO IOPCAsyncIO2 IOPCSyncIO2 IOPCGroupStateMgt2 IOPCAsyncIO3 OPC Group IUnknown 图三 标准 OPC Server 和 OPC Group 对象(DA 3.0 版) 2.2 OPC 数据访问方式 OPC 客户程序对 OPC 服务器中数据的存取方式分为同步读写方式和异步读写方式。客户程 序可按照一定的周期调用 OPC Group 对象的 IOPCSyncIO 接口对服务器程序进行数据同步 存取操作,此时客户方的调用函数一直运行到所有数据读写完成,然后才能执行其它操作, 因此,这种方法适合与读取少量数据,如果数据多的话,会使系统处于假死状态,无法进行 操作。IOPCSyncIO2 是从 3.0 版才出现的,是对 IOPCSyncIO 的增强。IOPCAsyncIO2 和 IOPCAsyncIO3 是异步方式中使用的接口,异步访问时,当客户端对服务器提出访问要求后, 立即返回到 OPC 应用程序执行其它操作,无须等待,当 OPC 服务器完成数据读取后通知 OPC 应用程序,应用程序从而得到数据。其中前者是在 2.0 版本中新定义的,具有较高的通 信性能;后者则是在 3.0 版本中才刚刚出现,同 IOPCSyncIO2 类似,IOPCAsyncIO3 是对 IOPCAsyncIO2 的增强。在异步方式下,服务器程序收到读请求后,调用客户程序方的
Private Sub Command_Start_Click() Dim OutText As String On Error GoTo ErrorHandler Command_Start.Enabled = False Command_Read.Enabled = True Command_Write.Enabled = True Command_Exit.Enabled = True chkGroupActive.Enabled = True OutText = '连接 OPC 服务器' Set ServerObj =
Dim BrowseFilter As Long
Dim Vt_Filter As Integer Dim nodX As Node Dim Value As Variant Dim FullName As String Dim Relative As String Dim i As Integer
Private Sub cmbAccessRights_Click() Select Case cmbAccessRights.Text Case 'OPC_ACCESS_WRITE' g_Browser.AccessRights = OPCWritable Case Else g_Browser.AccessRights = OPCReadable End Select
C++程序 OPC 服务器 VB 程序 物理设备 图二 OPC 典型结构 在 OPC 的早期规范里主要包括 OPC 数据存取规范、OPC 报警和事件、OPC 历史数据存取 规范。OPC 数据存取规范详细规定了客户程序和服务器程序进行数据通信的机制,其它类 型的 OPC 服务器往往是在数据存取服务器的基础上通过增加对象、扩展接口而来的,所以 该规范也是其它 OPC 规范的基础。OPC 数据存取规范规定的基本对象有三类:OPC Server、 OPC Group 和 OPC Item,OPC Server 包含服务器的所有信息,也是 OPC Group 的容器,OPC Group 除了包含它自身信息外,还负责管理 OPC Item。它们的结构如图三所示。每一个 OPC Item 代表到数据源的一个连接,但它没有提供外部接口,客户端程序无法对 OPC Item 直接 进行操作,应用程序必须依靠 OPC Item 的容器 OPC Group 来对它进行操作,这在下面的程 序中会有具体说明。