• 沒有找到結果。

3 OPC 接口基本知识

3.1 OPC 简介

3.1.7 基本术语

3.1.7.1 COM 对象 - 它们是什么?

为使客户端与服务器之间的协作更加有效,可以合并或指定类型相似的任务。 COM 对象 将此实现。

什么是 COM 对象?

COM 对象是在 Windows 下运行的组件,它们通过其接口为其它组件提供定义的功能。

一个 COM 对象可由多个应用程序同时使用。

什么是 COM?

COM 是 Windows 操作系统的中央组件,控制多个软件组件之间的交互。

使用 COM,OPC 服务器类似于 Windows 操作系统的一部分,因此与文件名、存储位置 和版本无关。

OPC 机制的基础就是 COM,即源自 Microsoft 的“组件对象模型”。

COM 定义一项标准,该标准允许将对象定义为 Windows 中的独立单元以及超越过程界 限访问这些单元。

可将 COM 对象理解为操作系统的扩展。 它们与编程语言无关,原则上可用于所有应用 程序。

COM 对象的用户不能直接访问对象的数据和代码。

什么是 DCOM?

DCOM 是指“分布式组件对象模型”。 作为 COM 的深入开发,DCOM 支持分布式应用程 序,允许网络中不同计算机上的软件组件之间进行协作。

COM 对象的结构

下图说明了具有四个接口的 COM 对象的结构。 只能通过接口访问对象。 访问由各种方 法控制。 无法访问实际对象的整体或其所含数据或代码。

图 3-5 COM 对象的结构

3.1.7.2 COM 对象 - 如何表示?

COM 对象的表示

文档中通常以图形表示 COM 对象。 对象特定接口显示在对象一侧,所有对象都附带的 IUnknown 接口显示在对象上边。

接口底层方法被接口掩盖。

图 3-6 COM 对象的表示

3.1 OPC 简介

3.1.7.3 COM 接口 - 有何作用?

COM 接口提供的功能

COM 接口是经过定义的、通常相关的一套方法,用于调用 COM 对象的功能。 它由引用 方法的指针表组成。 COM 接口封装 COM 对象的功能,确保只能以定义的方式访问对 象。 COM 接口都有唯一 ID,以使要访问 COM 对象的应用程序在访问前可以检查对象是 否支持接口。

接口的结构

下图显示接口的基本结构。

图 3-7 接口的结构

3.1.7.4 COM 接口类型 - 存在何种类型,如何访问?

存在以下接口类型

COM 区分两种接口类型:

● 自动化接口

● 自定义接口

这两种接口的区别在于内部方法调用。 每种接口都有单独的接口规范。 不过,它们同样 适用于多种应用,如访问变量和接收信息。

自动化接口支持基于脚本语言(如 VB 或 VBA)的 OPC 客户端应用程序。

自定义接口改善基于 C 或 C++ 的应用程序性能。

自定义接口不适合基于脚本语言的开发工具的功能范围。 通过自动化接口扩展 COM 对 象,对象方法也可用于简单脚本语言。 自动化接口使对象理解的调用可见于外部。

图 3-8 接口与应用程序之间的分配示例

.NET 客户端如何访问 COM 接口?

以下部分介绍使用自定义接口和自动化接口时的顺序。

使用 OPC 自定义接口时的顺序

.NET 客户端可从托管代码内部访问自定义接口的常规 COM 对象。 由于 COM 与 .NET 编程模型的属性不同(例如在 .NET 中没有指针访问),因此无法直接调用。

对于从托管代码到非托管代码的转换,必须使用 RCW(运行时可调用包装)。 RCW 将 .NET 对象与非托管 COM 对象之间的区别隐藏起来。