第三章OPC数据访问
19
OPC的访问方式-异步访问
调用开始 调用结束 事件发生
事件结束 OPC应用程序 其他处理 通信 时间
首页 上页 下页 末页 结束
调用异步访问方法
异步访问完成事件
OPC服务器
时间
1、读取/写入指定OPC标签,应用程序发出更新请求后立即返回,更新数据完成后发生 数据变化事件! 2、发出请求与访问完成事件处理是独立完成,因此需要使用事务管理,开发较难!
必需的接口定义
• OPC服务器必需的接口有
– Iunknown – IOPCServer – IOPCCommer – IConnectionPointContainer
首页 上页 下页 末页 结束
16
OPC Server对象接口
IUnknown
IOPCServer [IOPCServerPublicGroups] [IOPCServerBrowseServerAddressSpace] [IPersistFile]
4
驱动访问的缺陷
• 问题的提出:
首页 上页 下页 末页 结束
5
– 对于开发典型监控程序软件的技术人员来说,有20%30%的时间用于编写通讯驱动程序。而且每次,一个 供应商需要将一个新的控制器投入市场销售时,所有 的软件开发人员就不得不重新编写一个新的驱动程序 。
首页 上页 下页 末页 结束
– 应用软件的提供者花费太多的资金开发和维护专用接 口,这不仅增加了用户的负担,而且在实际上并不能 真正解决不同系统的互操作性。在某种意义上,用户 被他们的软件提供者所控制。
SaabTankradar.Tankserver.1. T-1000. LL.CV
OPC服务器名 OPC组名 数据项名
14
对象及接口概述
• OPC对象
– OPC对象有三个:服务器(OPC Server)、组(OPC Group)和项(OPC Item)
• OPC接口
首页 上页 下页 末页 结束
15
Software Driver
Software Driver
3
驱动访问的缺陷
• 问题的提出:如何读取设备中数据
– 工业应用中,由于各应用系统的数据接口不标准,使 得专用系统之间不能相互通信的现象相当普遍。
首页 上页 下页 末页 结束
– 由于应用程序提供者仅提供了有限的连接性,因而大 大地缩小了过程和工业制造厂商对硬件和软件的选择 范围。 – 在缺少任何标准的情况下,设备供应商不得不各自开 发自己专用的硬件和软件解决方案。
OPC服务器中添加的所有OPC组的集合
OPC组对象是用于组的状态管理以及利用项集 合为单位的数据访问。 在对应OPC组中添加的所有的OPC项的集合 含有项的定义,当前值,状态以及最后更新时 间信息的对象。
OPC项集合 OPC项
23
开发OPC应用程序的几种模式
• 第三方HMI软件 • 自动化接口(VB、Delphi、Pb、Bc)
首页 上页 下页 末页 结束
12
OPC技术基础构成
ActiveX
Object Linking and Embedding (OLE) OLE for Process Control (OPC)
(Distributed) Component Object Model (COM / DCOM)
首页 上页 下页 末页 结束
only between nodes
Transport (TCP-IP, UDP, Queued) Ethernet
13
OPC技术简介
• OPC对象属性
– 服务器(OPC Server) – 组(OPC Group) – 项(OPC Item)
首页 上页 下页 末页 结束
• OPC变量标签中要体现以上三个属性,如
OPC Software Driver
8
概述
• OLE for Process Control
(Object linking and embedding)
• •
首页 上页 下页 末页 结束
•
•
9
now: Open Process Control Openess Productivity and Conectivity OPC(用于过程控制的OLE)是一个工业标准。 OPC由一些世界上占领先地位的自动化系统和硬件 、软件公司与微软(Microsoft)紧密合作而建立的 。 OPC定义了应用Microsoft操作系统在基于PC 的客 户机之间交换自动化实时数据的方法。 管理这个标准的国际组织是OPC基金会。
20
OPC的访问方式-订阅方式
事件发生 事件处理结束 事件发生
事件结束 OPC应用程序 通知 时间
其他处理
通知
数据变化事件
首页 上页 下页 末页 结束
数据变化事件
OPC服务器 时间
1、服务器定时更新OPC服务器的数据缓冲区。如果数据超出敏感区DeadBand则 发生数据变化事件! 2、降低数据精度!
6
首页 上页 下页 末页 结束
7
OPC的解决方案
Display Application OPC Trend Application OPC Report Application OPC
首页 上页 下页 末页 结束
OPC Software Driver
OPC Software Driver
OPC Software Driver
项集合(OPC Items)
22
OPC Item OPC Item 项(OPC Item)
OPC数据访问对象模型
名称
OPC服务器
对象名
OPCServer
说明
必须生成opcserver。其自动包含一个opc组集 合以及opc浏览器对象
OPC组集合
OPC组
首页 上页 下页 末页 结束
OPCroups
OPCGroup OPCItems OPCItem
OPC Group对象接口
IUnknown IOPCItemMgt IOPCGroupStateMgt [IOPCPublicGroupStateMgt] IOPCSyncIO IOPCAsyncIO IDataObject
首页 上页 下页 末页 结束
IOPCItemMgtDisp IOPCGroupStateMgtDisp [IOPCPublicGroupStateMgtDisp] IOPCSyncIODisp IOPCAsyncIODisp
基于OPC的数据访问技术
首页 上页 下页 末页 结束
1
首页 上页 下页 末页 结束
2
基于驱动程序的访问
Display Application Trend Application Report Application
首页 上页 下页 末页 结束
Software Driver
Software Driver
Standard OPC Group Object
18
OPC的访问方式-同步访问
调用开始
调用结束 时间
等待状态
OPC应用程序
调用同步访问方法
首页 上页 下页 末页 结束
OPC服务器 时间
1、读取指定OPC标签,应用程序一直等待到读取完成为止! 2、写入指定OPC标签,应用程序一直等待到写入完成为止! 3、开发简单,但是大批量数据处理则访问性能影响大!
– 第三方提供的RDK
• 定制接口(VC)FacView支持
首页 上页 下页 末页 结束
– OPC.H文件 – OPC_I.C文件
1、对于OPC服务器而言,其应该提供定制接口,自动化接口则可选 2、FacView中的OPCServer只支持定制接口
24
VB开发OPC应用程序的基本步骤
• • • •
OperatorIT application software is written independently from the type of controller Historian (Information Manager)
the drivers still exist, but the clients do not see them anymore
Standard OPC Server Object
首页 页
IOPCServerDisp [IOPCServerPublicGroupsDisp]
下页 [IOPCServerBrowseServerAddressSpaceDisp] 末页 结束
17
1、开发者必须完成非选项的接口实现! 2、OPC标准仅仅提供接口的定义! 3、客户端调用这些接口完成与OPC Server的连接!
首页 上页 下页 末页 结束
AC800M OPC server
MMS
Schneider OPC server
XWAY
Siemens OPC server
ProfiNet
ABB AC800M
11
Télémécanique TSX
Siemens S7
OPC技术基础
• OPC技术基于微软的OLE (现在的Active X)、 COM (部件对象模型)和DCOM (分布式部件对 象模型)技术。 • OPC包括一整套接口、属性和方法的标准集, 用于过程控制和制造业自动化系统。 • Active X/COM技术定义各种不同的软件部件 如何交互使用和分享数据。 • 不论过程中采用什么软件或设备,OPC为多种 多样的过程控制设备之间进行通信提供了公用 的接口。
首页 上页 下页 末页 结束
连接OPC服务器和建立OPC组 添加OPC标签 同步读写数据 断开OPC服务器连接
25