OPC基础应用知识
15 2018/11/24
OPC的访问方式-异步访问
调用开始 调用结束 事件发生
事件结束 OPC应用程序 其他处理 通信 时间
调用异步访问方法
异步访问完成事件
OPC服务器
时间
1、读取/写入指定OPC标签,应用程序发出更新请求后立即返回,更新数据完成后发生 数据变化事件! 2、发出请求与访问完成事件处理是独立完成,因此需要使用事务管理,开发较难!
13 2018/11/24
OPC Group对象接口
IUnknown IOPCItemMgt IOPCGroupStateMgt [IOPCPublicGroupStateMgt] IOPCSyncIO IOPCAsyncIO IDataObject IOPCItemMgtDisp IOPCGroupStateMgtDisp [IOPCPublicGroupStateMgtDisp] IOPCSyncIODisp IOPCAsyncIODisp
监视应用程序 OPC 趋势应用程序 OPC 报表应用程序 OPC
OPC 设备A
OPC 设备B
OPC 设备C
OPC
设备D
1、OPC是为了不同供应厂商的设备和应用程序之间的软件接口标准化,使其数据交换 更加简单化的目的而提出的;从而可以向用户提供不依靠于特定开发语言和开发环境的 可以任意组合使用的过程控制软件组件产品。 2、OPC系统是由提供数据采集服务的OPC服务器、OPC接口,以及OPC应用程序所构成。 3、OPC服务器按照硬件厂商提供的硬件所开发,使之不依赖于硬件产品;同时利用 VARIANT数据类型,可以不依存于硬件要求的数据类型
16 2018/11/24
OPC的访问方式-订阅方式
事件发生 事件处理结束 事件发生
事件结束 OPC应用程序 通知 时间
其他处理
通知
数据变化事件
数据变化事件
OPC服务器 时间
1、服务器定时更新OPC服务器的数据缓冲区。如果数据超出敏感区DeadBand则 发生数据变化事件! 2、降低数据精度!
17 2018/11/24
OPC Custom I/F
Server Data Cache Local Data Cache
I/O
Physical Device Device Data
12 2018/11/24
OPC Server对象接口
IUnknown
IOPCServer [IOPCServerPublicGroups] [IOPCServerBrowseServerAddressSpace] [IPersistFile]
22 2018/11/24
连接OPC服务器和建立OPC组
Private Sub Command1_Click() If MyOPCServer Is Nothing Then Set MyOPCServer = New OPCServer End If If MyOPCServer.ServerState = OPCDisconnected Then MyOPCServer.Connect strProgID, strNode End If If MyOPCGroups Is Nothing Then Set MyOPCGroups = MyOPCServer.OPCGroups End If If MyOPCTestgrp Is Nothing Then Set MyOPCTestgrp = MyOPCGroups.Add("TESTGRP") End If End Sub
OPC Group OPC Group 组 (OPC Group)
项集合(OPC Items)
OPC Item OPC Item 项(OPC Item)
18 2018/11/24
OPC数据访问对象模型
名称
OPC服务器 OPC组集合 OPC组 OPC项集合 OPC项
对象名
OPCServer OPCroups OPCGroup OPCItems OPCItem
Field Management
4 2018/11/24
OPC的基本定义
监视应用程序 趋势应用程序 报表应用程序
驱动器A 设备A
驱动器B 设备B
驱动器C 设备C
驱动器D 设备D
1、各设备厂商接口不统一,则应用开发花费多 2、系统共存驱动太多,导致系统维护困难。
5 2018/11/24
OPC的基本定义
2 2018/11/24
词汇
OPC:OLE For Process Control FA:Factory Automation PA:Process Automation COM:Component Object Model DCOM:Distributeed Component Object Model DDE:Dynamic Data Exchange DLL:Dynamic Link Library
23 2018/11/24
添加OPC标签
Private Sub Command2_Click() Dim stritemids(8) As String Dim iclienthandles(8) As Long Dim ierror() As Long Dim i As Integer If MyOPCTestgrp Is Nothing Then Exit Sub End If If Not MyOPCItems Is Nothing Then If MyOPCItems.Count > 0 Then Exit Sub End If End If MyOPCTestgrp.IsSubscribed = False MyOPCTestgrp.IsActive = True Set MyOPCItems = MyOPCTestgrp.OPCItems For i = 1 To 8 strItemids(i) = "MyTAG" & i iClienthandles(i) = i Next Call MyOPCItems.AddItems(8, strItemids, iClienthandles, iServerhandles, ierror) 24 2018/11/24 End Sub
6 2018/11/24
OPC的基本定义
基于COM技术的OPC
– COM是一种软件组件之间相互数据交换的有效方法。它不是一种计算机语 言,而是于运行计算机、操作系统以及软件开发语言无关的,任意软件组 件之间可以相互通信的二进制和网络通信标准 – DCOM:可以使COM组件分布在不同计算机上,并通过网络互相连接并互 相交换数据。
3 2018/11/24
OPC的基本定义
Windows 3.1 Windows-95 Windows NT Client Applications
Business Management
Windows NT Operator Console RT/History Data Server Windows NT Operator Console Windows NT RT/History Data Server
员工内部培训系列之三
OPC基础应用知识
主讲人:熊辉
2018/11/24
工业自动化事业部SmartPro技术支持组
1
概述
OPC的基本定义 OPC的概要 OPC的数据访问对象模型 自动化接口开发OPC应用程序的基本步骤 RDK开发OPC服务器的基本步骤 OPC的配置 OPC在SmartPro系统中的应用组态
说明
必须生成opcserver。其自动包含一个opc组集合 以及opc浏览器对象 OPC服务器中添加的所有OPC组的集合 OPC组对象是用于组的状态管理以及利用项集 合为单位的数据访问。 在对应OPC组中添加的所有的OPC项的集合 含有项的定义,当前值,状态以及最后更新时 间信息的对象。
19 2018/11/24
作为工业标准定义的COM接口
优点: 1、设备开发者:使设备驱动器开发唯一 2、应用程序开发:使用通用工具,不必开发特定的接口。 3、用户:可以自由选择各种商业软件包,使系统成本大大 降低
7 2018/11/24
OPC标准
标准
Data Access
版本
1.0、2.0
内容
数据访问标准
Alarm and Event Batch Security
9 2018/11/24
1、与现场I/O数据的连接;2、与应用程序之间的连接
OPC的概要--组成
OPC服务器:由硬件提供商或独立软件供应商提供, 主要是提供过程数据。 OPC代理-占位DLL:利用操作系统提供的通信功能进 行数据交换,以实现应用程序和服务器之间的格式变 换。 OPC自动化包装DLL:将OPC定制接口变换成OPC自 动化接口,从而更方便地实现对OPC服务器的访问。 OPC应用程序:对OPC服务器提供的数据源进行访问, 实现用户特定目的而开发的应用程序。
1.0 1.0 1.0
报警和事件标准
历史数据访问
Historical Data Access 1.0
批处理标准 安全标准
8 2018/11/24
OPC使用范围
HMI/SCADA OPC应用程序
历史数据库 批处理 OPC应用程序
OPC服务器
OPC服务器
OPC服务器
OPC服务器
PLCLeabharlann 设备A设备B 设备C 设备D
10 2018/11/24
OPC的概要--组成
OPC应用程序 OPC自动化接口 包装DLL OPC定制接口 OPC应用程序 OPC自动化接口 包装DLL OPC定制接口