OPC DA 中文版 翻译 点击:12938 | 回复:101



alou

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 107回
  • 年度积分:0
  • 历史总积分:410
  • 注册:2004年2月07日
发表于:2006-06-28 15:57:00
楼主
详细资料 请登陆 www.suntri.cn



alou

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 107回
  • 年度积分:0
  • 历史总积分:410
  • 注册:2004年2月07日
发表于:2007-08-02 16:44:00
41楼
英文的网上到处都是,用贴吗?

alou

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 107回
  • 年度积分:0
  • 历史总积分:410
  • 注册:2004年2月07日
发表于:2007-08-03 14:27:00
42楼
2.5 对象和接口综述
 OPC服务器对象提供了同一系列数据源进行通信和数据访问的一种方式,可用的资源的类型是关于服务器实现的一个功能。
一个OPC客户程序同一个OPC服务器连接和通信是通过接口来完成的。OPC服务器对象为客户程序提供了创建和操作OPC 组对象的功能。这些组对象允许客户们组织她们想访问的数据。一个组可以是活动的或者非活动的单位,一个组也可以提供一个方式让客户用来定制条目列表从了在条目发生变化时得到通知。
  注:所有的COM对象都是通过接口访问的。客户看到的仅仅是接口。因此,这里描述的对象是逻辑上的表示,没有对服务器内部作任何的实现。下面的图是OPC对象的和他们的接口的摘要。注一些接口是可选择的  [] 中的。

alou

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 107回
  • 年度积分:0
  • 历史总积分:410
  • 注册:2004年2月07日
发表于:2007-08-04 15:03:00
43楼
2.6 服务器的地址空间和配置
  这个版本的OPC说明书设定服务器的地址空间的配置是用IPersistfile 接口管理和长期存储的。只有服务器的特殊的信息会被长期存储。所用的客户配置信息(组和条目的定义)必须由用户程序分别自己永久存储。所有的系统定义的句柄在客户和服务器的会话过程中拥有相同的值。
   把服务器空间和他的特殊用途的子空间区分开来是很重要的(做为服务器配置)客户的详细的组的维护细节会在这个说明书里讨论。组的永久存储是各个客户程序的事。服务器地址空间的定义和配置的细节特别没有说明。例如地址空间可能如下。
    全部固定。(如,对于特别的设备接口象测量设备)
    再OPC环境以外完全配置。(如,外部存在的DCS系统的接口)
    一个智能的服务器能智能在启动时自动配置,让服务器安装硬件和接口。
    根据客户程序当前的请求的数据条目的名称服务器自动地配置
  服务器的地址空间期望是稳定的和能在服务器内进行管理。客户程序会更具需要不时地定义和管理被叫做组的相关的小的条目列表。通过OPCGroups得使用,这里描述的接口给客户程序提供了定义,管理,重新创建这些需要的列表的能力

alou

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 107回
  • 年度积分:0
  • 历史总积分:410
  • 注册:2004年2月07日
发表于:2007-08-04 15:32:00
44楼
2.7 应用级别服务器和网络节点选择
  OPC 数据访问支持在服务器内部管理客户组的请求的概念。这些组能包含仅从从一个特殊的OPC服务器对象数据请求。为了能访问数据,一个客户应用程序需要详细说明下列能容:
   OPC 数据访问服务器的名称(CoCreateInstance ,CoCreateInstanceEx,使用)
   OPC 数据访问服务器主机的名称(CoCreatInstanceEx)
   开发商的OPC 条目的定义详细说明(在地址空间里的数据条目的名称)
说明书为讨论这些架构里的具体实现和客户程序里的接口留一些余地。
   

liujing1314

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 9回
  • 年度积分:0
  • 历史总积分:25
  • 注册:2005年4月24日
发表于:2007-08-05 10:42:00
45楼
  请给我发一份  谢谢您了!
liujing000827@163.com

alou

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 107回
  • 年度积分:0
  • 历史总积分:410
  • 注册:2004年2月07日
发表于:2007-08-05 14:15:00
46楼
2.9 永久存储过程
  OPC 服务器会实现一个可选择的接口来使OPC 客户告诉OPC服务器保存OPC服务器的配置信息更方便。服务器信息可能包括同设备和使数据源同OPC服务器通信变得更方便的必要的数据源信息。客户程序的配置信息包括组,条目被服务器永久存储。
  客户程序对被他们请求使用的组和条目的配置和永久存储有责任。

alou

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 107回
  • 年度积分:0
  • 历史总积分:410
  • 注册:2004年2月07日
发表于:2007-08-05 14:15:00
47楼
2.8 同步和串行问题
   在单独的传输里的客户读写数值和属性的性能被称为同步传输。例如,很多应用想确保特殊的条目的数值,性能,和时间戳是同步的。还有,一个报告数据包被希望能确保一个组的几个值的读写能作为一个绑定的报告捆绑在一起。最后,一个配方的下载包也会被期望组里的所有的值在一起发送,数值没有接收完配方不会被执行。仅有一少部分的关于同步重要性的例子。
OPC 自身不能够保证所有的同步任务被完成只是一少部分结果。服务器和客户程序之间还加入了传送握手信号和标志来标示准备好和完成状态的请求。还有一些东西需要被详细说明,也就是OPC服务器的行为要确保这些同步能被完成。
以后会看到OPC允许直接读写组里的条目和单独的条目也希望能在连接之上。不用回头太远就能够观察到这些问题和服务器的行为。
1. 一般地,OPC 服务器会尝试在一个对数据条目和属性的单独的读写操作时保持同步。单独的条目的读和单独的条目的写操作要求保持同步是没有必要的。显然,从不同的物理设备进行数据读操作是很难保持同步的。
2. 能被不同线程访问的数据条目的读与写必须实现线程的安全,在这个方面这本说明书里对数据同步作了详细的说明。例如重要性包括:在一个服务器内部的逻辑,当另一个线程完成物理传输和对一个与第一个线程共享的缓冲区放进数据时一个服务线程方法被执行。另外一个例子可能一个句柄的逻辑或者一个隐藏的OPC线程服务OnDataChange方法的代理服务器在对共享缓冲器写数据时一个客户线程也可能在读该缓冲器。
3. 线程问题经常是很重要的,尤其在SMP系统更是重要。
串行通信我们的意思是在写操作之行时客户程序控制顺序的功能。
   1.前列推荐在任何服务器的实现里对同一个设备的写请求安顺序控制。例如一用程序会使用配方完成标志,在一个单独的配方条目发送以后一个配方下载完成标志被应用程序置位。在这种情况下,数据会被按照同样的顺序传输到物理设备,他会保证在所用数据传送完之前完整标志不会被置位。在服务器缓冲器里输出数据和执行单独的传送关系线程来发送输出到物理设备,服务器的实现必须特别注意来确保输出的次序的保持。
2 。客户程序在读数值要非常明确同时在接收通过回调函数更新时特别注意给出准确地定义回调函数发生和没有发生。这些会在以后讨论的更多。
所有这些问题会在以下的方法的具体实现的细节里被澄清。

alou

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 107回
  • 年度积分:0
  • 历史总积分:410
  • 注册:2004年2月07日
发表于:2007-08-06 08:47:00
48楼
3 OPC 数据访问快速参考
这一节包括自定义接口方法的快速参考。在以后的参考章节定义了详细的接口行为和参数。
  3.1 自定义接口
   注:这个章节不说明多余的标准的COM 接口例如IUnknown,IEnumString 和IEnumUnknown 这些被OPC数据访问使用的接口。
OPCServer 
IOPCServer 
IOPCBrowse (new 3.0) 
IOPCItemIO (new 3.0) 
IConnectionPointContainer 
IOPCCommon 
OPCGroup 
IOPCGroupStateMgt 
IOPCGroupStateMgt2 (new 3.0) 
IOPCASyncIO2 
IOPCAsyncIO3 (new 3.0) 
IOPCItemMgt 
IOPCItemDeadbandMgt (new 3.0) 
IOPCItemSamplingMgt (new 3.0, optional) 
IConnectionPointContainer 
IOPCSyncIO 
IOPCSyncIO2 (new 3.0) 
EnumOPCItemAttributes 
IEnumOPCItemAttributes 

tcs

  • 精华:0帖
  • 求助:0帖
  • 帖子:68帖 | 526回
  • 年度积分:0
  • 历史总积分:768
  • 注册:2004年8月25日
发表于:2007-08-06 08:50:00
49楼
请问在哪里参加中国OPC基金会?

alou

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 107回
  • 年度积分:0
  • 历史总积分:410
  • 注册:2004年2月07日
发表于:2007-08-06 09:56:00
50楼
4 OPC 自定义接口
4.1 OPC 自定义接口总览
   OPC 自定义接口对象包括以下自定义对象:
   OPCServer
   OPCGroup
 这一章详细描述了这些对象的接口和行为。OPC服务器开发者需要实现这章中定义的OPC对象的功能。
 这章中也说明和定义了标准的OLE接口的期望行为。OPC 服务器和OPC客户端需要的接口在OPC应用组件编译时被实现。
  标准的自定义接口对象Enumerator被创建,这些对象的接口也会被返回。因为他们的行为已经被OLE很好的定义了所以一般的列举对象和接口只做简短的描述。下面的OPC说明书对象的列举器被创建和返回方法首选下面的方法而不是通过QueryInterface 列举器如下:
  组列举器(看IOPCServer::CreateGroupEnumerator)
    条目属性列举器(看IOPCItemMgt::CreateEnumertor)
  你也应该注意这些情况,有些返回列表是通过列举器返回的有时作为条目列表返回。我们的选择依据期望的条目返回数据。大的列表通过列举器返回小的更容易通过列表返回。

alou

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 107回
  • 年度积分:0
  • 历史总积分:410
  • 注册:2004年2月07日
发表于:2007-08-06 09:58:00
51楼
直接到opc基金会的网站上申请个账户就可以了,中国OPC基金会网站好像没有这个功能,我不长去

alou

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 107回
  • 年度积分:0
  • 历史总积分:410
  • 注册:2004年2月07日
发表于:2007-08-06 10:00:00
52楼
我不常去,哈哈!!

alou

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 107回
  • 年度积分:0
  • 历史总积分:410
  • 注册:2004年2月07日
发表于:2007-08-06 12:51:00
53楼
4.2 一般信息
这一节中提供了有关OPC接口的综合的信息,和一些OPC设计者期望这些接口怎么被实现和使用的背景信息。
 4.2.1 版本的通用
  数据访问服务器说明书应该使1.0a,2.x和30版本的环境的或其他数据访问说明书版本的相关组成应当兼容。数据访问客户端也应该使1.0a,2.x和30版本的环境的或其他数据访问说明书版本的相关组成应当兼容
 客户端和服务器端的开发者应该根据他们的特殊应用情况使用最好的兼容策略。例如一个开发者经常把自己开发的客户端和服务器端组件作为一个包系统出售,他的OPC表现出的很强的兼容性使他不用需要支持接口的很多版本。
 作为一个通用的方针强烈推荐已经存在的服务器的开发者添加3.0版本的支持和继续添加对2.0和1.0版本的支持,允许已经存在的客户端移植到他们自己的空间。


数据访问服务器需要的接口 1.0  2.0  3.0 
OPCServer 
IUnknown  需要  需要  需要 
IOPCServer  需要  需要  需要 
IOPCCommon  N/A  需要  需要 
IConnectionPointContainer  N/A  需要  需要 
IOPCItemProperties  N/A  需要  N/A 
IOPCBrowse  N/A  N/A  需要 
IOPCServerPublicGroups  可选择 可选择 N/A 
IOPCBrowseServerAddressSpace  可选择 可选择 N/A 
IOPCItemIO  N/A  N/A  需要 
OPCGroup 
IUnknown  需要  需要  需要 
IOPCItemMgt  需要  需要  需要 
IOPCGroupStateMgt  需要  需要  需要 
IOPCGroupStateMgt2  N/A  N/A  需要 
IOPCPublicGroupStateMgt  可选择 可选择 N/A 
IOPCSyncIO  需要  需要  需要 
IOPCSyncIO2  N/A  N/A  需要 
IOPCAsyncIO2  N/A  需要  需要 
IOPCAsyncIO3  N/A  N/A  需要 
IOPCItemDeadbandMgt  N/A  N/A  需要 
IOPCItemSamplingMgt  N/A  N/A  可选择
IConnectionPointContainer  N/A  需要  需要 
IOPCAsyncIO  需要  可选择 N/A 
IDataObject  需要  可选择  N/A 

alou

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 107回
  • 年度积分:0
  • 历史总积分:410
  • 注册:2004年2月07日
发表于:2007-08-06 13:12:00
54楼
4.2.2 内存的分配
   每一个COM说明书,客户程序必须释放所有同输出和输入/输出参数有关的内存。这个包括任何结构的成员指向内存的指针。客户端编写者明白这个是很重要的,否则,很难发现浪费的大量的内存泄漏。从IDL文件里可以看到并确认那些参数是输出参数。强烈推荐一个方法一个客户端应该创建一个子程序用来经常施放结构的空间。成功和失败的无关性,服务器必须经常为输出参数返回健康的定义的数值。释放分配的资源是客户程序的职责。
 注:如果返回的错误结果是任何的FAILED错误象E_OUTOFMEMORY ,OPC服务器应该为所有的输出指针返回NULL(这是标准的COM行为),这个规则也应用于函数返回的指针组。通常,一个鲁棒型的OPC客户应该确认任何一个输出和输入/输出指针并优先用NULL来释放他们。

alou

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 107回
  • 年度积分:0
  • 历史总积分:410
  • 注册:2004年2月07日
发表于:2007-08-07 09:34:00
55楼
4.2.3 标准的接口
   每个COM 说明书,所有的接口需要的方法都必须被实现。
   每个COM 说明书,任何可选择的支持接口必须存在接口实现的内部功能,甚至实现紧紧是一个返回E_NOTIMPL的存根。
4.2.4 空串和空指针
 这两个术语在以下被使用:他们不是同一个东西。一个NULL指针是一个有错误的指针(0),这个指针可能导致使用异常。一个NUL串是一个问题指针,他指向一个是NUL字符的字符数列。如果NULL串从一个方法里作为输出参数被返回的话他必须被释放。否则的话包含该指针的内存就会丢失。还要注意一个NULL指针不能通过一个输入字符窜参数传递,因为受COM聚合的限制。在这种情况下一个指向NULL的字符串应当作为省略的参数被传递。无论如何,NUL 
串在本说明里被使用.C#没有NUL指针和NUL串的指针.
4.2.5 返回的数列.
     你会注意在IDL文件使用的用从指针到指针组成的Size_is(,dwCount)函数的语法.他表示返回的条目时一个指向一定类型的实际数组的指针,不是指向一定类型的指针数组的数组指针.这个可以使服务器和客户使用聚合,创建,和数据访问更简单.

yangjuan

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:21
  • 注册:2007年8月07日
发表于:2007-08-07 11:50:00
56楼
楼主我太佩服你了,从2006发到2007。不知道什么时候才能发完唷。期待着,关注着,焦急得等待着。

alou

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 107回
  • 年度积分:0
  • 历史总积分:410
  • 注册:2004年2月07日
发表于:2007-08-07 12:24:00
57楼
感谢你能浏览,世事沧桑呀!以前搞工程一出差就是半年没有时间呀!!现在换了工作,去了外企,时间很充足,忽然想起曾经还有什么事没有作完,于是就接着做了。让大家久等了。

alou

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 107回
  • 年度积分:0
  • 历史总积分:410
  • 注册:2004年2月07日
发表于:2007-08-07 12:42:00
58楼
4.2.6 缓冲器数据,设备数据和时间戳
  在这个说明书里大部分的术语CACHE 和DEVICE被抽象化了.,那就是
缓冲器和设备数据的读取会完全影响完全方式定义的接口行为的描述。这些功能的具体实现细节没有在这个说明书里做详细的描述。
事实上,很多服务器会把数据读进各种缓冲器里。很多客户程序也会去通过一些接下来讨论的机制来从这些缓冲器里读数据。对设备的数据访问希望慢一点和首先用作诊断和特殊的关键操作。
 缓冲器应该反映最新的数据的值,质量和时间戳。时间戳应该反映设备获得的值和质量的时间。或者服务器更新和使值和质量在缓冲器里有效的时间。注意如果设备每隔10秒检查数值的话那么期望的数值时间戳会每隔10秒钟更新一次。因此时间戳反映服务器知道的准确的时间
 系统接口的物理设备是否基于例外会真的被忽视。假设知道(a)一个例外的设备每隔0.5秒检查一次,(b)同一个设备的通信是完好的(c)三分钟以前设备更新条目FIC101的值为1.234。在这种情况下从缓冲器里读到的值将会是1.234和很重要。从这个数值返回的时间戳将会是当前时间(0.5秒内)因此知道条目的值事实上是0.5秒前的值1.234。

alou

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 107回
  • 年度积分:0
  • 历史总积分:410
  • 注册:2004年2月07日
发表于:2007-08-07 13:46:00
59楼
4.2.8 异步和同步接口比较
架设很多客户程序希望访问暂存器的数据,会有几种方法客户用来访问服务器数据。
  可以用同步方式从缓冲器里读数据。这种方式适合很简单的一些客户程序,只读一些相当小数量的数据和最大效率不予考虑。这种方式操作的客户程序本质上是对服务器上已经存在的扫描的一种复制。
 可以用IOPCDataCallback预订缓冲器里的数据,这个是客户程序被推荐使用的一种方式,因为它会消耗CPU和网络资源最少。
4.2.9 活动标志,死区,和更新速率
   这些组和条目的属性用来降低客户和服务器的消耗的资源。在稍后的GROUPS里会做详细的讨论。一般的,他们会影响缓冲区数据和质量信息的更新频率和客户程序IOPCDataCallback的访问频率。
4.2.10 错误和返回代码
OPC说明书描述了OPC服务器实现的和OPC客户应用程序依靠的接口和相应的行为。在这个说明书的OPC错误代码摘要一章中包含了一个OPC详细的错误列表和返回代码。在每个被描述的方法后面都有一个所有可能出现的OPC错误代码也包括最平常的OLE错误代码。客户程序有可能遇到额外的错误代码象RPC和实际的安全代码,他们应该做好预处理这些代码的工作。
 在两种情况下(读/写)允许服务器返回开发商特殊的错误代码。这些代码被传递给GetErrorString 方法。以后会详细讨论这个。
 所有的情况下 E  错误代码表示FAILED类型的错误和S 错误代码表示有局部成功。

ziyuan_1016

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2007年8月15日
发表于:2007-08-15 10:57:00
60楼
给我发一份吧,谢谢啦  ziyuan_1016@126.com

热门招聘
相关主题

官方公众号

智造工程师