收藏 分享(赏)

OPC类库学习笔记.pdf

上传人:精品资料 文档编号:9627335 上传时间:2019-08-19 格式:PDF 页数:6 大小:117.73KB
下载 相关 举报
OPC类库学习笔记.pdf_第1页
第1页 / 共6页
OPC类库学习笔记.pdf_第2页
第2页 / 共6页
OPC类库学习笔记.pdf_第3页
第3页 / 共6页
OPC类库学习笔记.pdf_第4页
第4页 / 共6页
OPC类库学习笔记.pdf_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、OPC类库学习: 1. 取得本机主机名和IP地址的方法,返回一个IPHostEntry类型:System.Net.Dns.GetHostEntry(Environment.MachineName) return (IPHostEntry) 取得主机名为HostName上所有OPC服务器的名称(ProgID |The ProgID is a string that uniquely identifies the registered real OPC Data Access Server 2. 名称返回一个字符串数组。 OPCServer_Instance.GetOPCServers(HostN

2、ame) return (Arrey) 3. 连接OPC服务器。 OPCServer_Instance.Connect(ServerName,ServerIP) 连接成功失败状态标志位 ServerState:the servers state, which will be one of the OPCServerState values: OPC_STATUS_RUNNING OPC_STATUS_FAILED OPC_STATUS_FAILED OPC_STATUS_SUSPENDED OPC_STATUS_SUSPENDED Hierarchical 层次化的 Filter 过滤器,筛选

3、器 Variant 变量 Vendor 供应商 从客户程序的角度看,访问一个OPC服务器的过程大致是首先创建一个OPCServer对象,然后通过它创建一个OPCGroup,在其中添加想要访问的数据项,之后利用订阅回调机制周期性获取动态数据或通过读写接口直接访问数据项. 1. 创建一个OPCServer 对象 2. 初始化 3. 连接 4. 创建组 5. 添加想要访问的数据项 6. 访问数据 OPCServer对象. Properties: z StartTime 服务器开始运行的时间 Date z CurrentTime 服务器当前的时间 Date z LastUpdateTime 最后更新时

4、间 Date z MajorVersion 服务器主要版本 Integer z MinerVersion 服务器次要版本 Integer z BuildNumber 服务器内部版本 Integer z VendorInfo 供应商信息 String z ServerState 服务器状态 Long z LocaleID 场所ID Long z BandWidth 带宽 Long z OPCGroups OPC租对象集合 OPCGroups z PublicGroupName 服务器公共组名称 Array of Strings z ServerName 服务器名称 String z Server

5、Node 服务器节点名称 String z ClientName 客户端名称 String Methods: z Strings GetOPCServers(Optional Node) 返回服务器的名称(ProgID) z Connect(string ProgID, Optional Node) 连接到OPC数据访问服务器 z Disconnect() 断开连接 z GreateBrowser() 创建一个OPCBrowser对象 z String GetErrorString(Long ErrorCode) 将错误代码转化为可读的说明字符串 z Long QueryAvailableLo

6、caleIDs() 返回客户端/服务器会话中可用的语言代码 z GetItemProperties(string ItemID,long Count, ref PropertyIDs, ref PropertyValues, ref Errors ) 返回当前数据值的属性列表 OPCServer Events z ServerShutDown(string reason) OPCBrowser Object OPCBrowser对象是服务器中分支和项目名称的集合. 在调用像ShowLeafs方法的时候,Filter,DataType,AccessRight属性会影响到集合,这些属性允许客户请求

7、地址空间的子集.如果用户正在浏览项目名称以便写入数据,那么在调用ShowLeafs方法前,访问权限属性应该设置为OPCWritable.服务器有平展似的名称空间或者树形的名称空间,当名称空间是平展的,那么调用ShowLeafs方法将会得到服务器上名称集合的全集.树形空间的浏览分为两步来进行,第一步,用Move方法来设置浏览位置,然后用Show方法来把名称放入集合. 调用ShowBranches方法可以在当前位置下将分支填充到集合中.用其中一个分支名调用MoveDown 方法移动到该位置.调用MoveUp方法可以移动到上一级.调用MoveToRoot方法可以在任何地方移动到顶层.在任何地方,分叉

8、和叶都能浏览到。一个For Each Loop循环的内部不能调用ShowBranches和ShowLeafs方法。做出这种限制的原因是:在For Each Loop循环或者数项目数的循环中,你基本上会改变集合的内容,那是,下一个项目就没有意义了。基本上,你不能在Browse object集合的循环过程中调用ShowBranches和Showleafs方法。在其他集合的循环中,你调用Showleafs方法是合法的。 OPCBrowser Properties z Organization Long返回Group是树型OPCHierarchical还是平展型OPCFlat。 z Filter (过

9、滤器) string用于ShowBranches和ShowLeafs方法。这个属性默认为“”服务器会用这个Filter 的值去缩小要列举的名字。 z DataType Interger应用ShowLeafs方法时所请求的数据类型。这个属性的默认值是VT_EMPTY,这意味着任何数据类型都可以。 z AccessRights Long应用ShowLeafs方法时,请求的访问权限。这个属性的默认值是OPCReadable,OPCWritable。 z CurrentPosition String树中的当前位置。在“root”节点或者组织委OPCFlat的节点中,这个字符串的初始值为“”。 z Co

10、unt long集合的属性。返回集合中项目的数量。 OPCBrowser Methods z String Item(ItemSpecifier)请求由ItemSpecifier来标识的名字。这个名称是一个分支或者叶的名称,这取决于之前调用的是ShowBranches方法还是ShowLeafs方法。 z ShowBranches()给集合在当前的浏览位置填充分支名称。 z ShowLeafs(Flat)在当前的浏览位置给集合填充叶的名称。Flat型的默认值是false。 Flat决定集合中应该包含的内容。True:只要所有的叶都在当前的浏览位置下,那么集合将在当前的浏览位置填充所有的叶。基本上

11、用于当前位置是平展型名字空间的时候。 z MoveUp() 向上移一级 z MoveToRoot() 移到树的第一级 z MoveDown(String Branch) 向下移到这个分支上 z MoveTo(String Branches()移动到一个绝对地址上 z String GetItemID(string Leaf) 输入项目名字,返回一个合法的ItemID,这个ItemID可以用于OPCItems Add方法 Leaf为当前一级的分支或者叶名。 z Object GetAccessPaths(string ItemID) 返回这个ItemID的一串合法访问路径。如果没有访问路径或者服

12、务器不支持,那么返回Null。 OPCGroups Object OPCGroups 是OPCGroup对象的集合,外加创建,移除,管理他们的方法。 这个对象也有OPCGroup的默认属性。当添加了一个OPCGroups对象时,DefaultGroupXXXX 属性设置为其初始状态。能够改变默认属性来用不同的初始状态来增加OPCGroups。改变默认值并不会影响已经创建的组。一旦添加了OPCGroup对象,它的属性就能修改。这减少了调用Add方法所需参数的数量。 z OPCServer Parent 返回对parent OPCServer对象的引用。 z Bool DefaultGroupIs

13、Active这个属性提供用Groups.Add方法添加进来的OPCGroups的默认激活状态。 z Long DefaultGroupUpdateRate 这个属性为Groups.Add方法添加进来的OPCGroups对象提供默认的更新速率(以毫秒为单位)这个属性的默认值是1000毫秒。 z DefaultGroupDeadband 这个属性为Groups.Add方法添加进来的OPCGroups对象提供默认的死区值,死区用满刻度的百分比来表达。合法值从0到100。 z Long DefaultGroupLocaleID这个属性为Groups.Add方法添加进来的OPCGroups对象提供默认的

14、场所ID信息。 z Long DefaultGroupTimeBias这个属性为Groups.Add方法添加进来的OPCGroups对象提供默认的时间偏置。 z Long Count 集合必须的属性 OPCGroups 方法 z OPCGroup Item(ItemSpecifier)由ItemSpecifier返回一个OPCGroup对象。ItemSpecifier是一个名称或者集合中的1-based索引。使用GetOPCGroup通过ServerHandle来引用。Item是OPCGroups的默认方法。 z OPCGroup Add(Optional Name)创建一个OPCgroup对

15、象并且把它添加到集合中,这个新的组的属性由OPCServer对象中的当前默认值决定。 组添加了以后,它的属性还能更改。 z OPCGroup GetOPCGroup(ItemSpecifier)由ItemSpecifier返回一个OPCgroup对象。 z Remove(ItemSpecifier)移除OPCGroup z RemoveAll()移除当前OPCGroup和OPCItem对象,为服务器关机作准备。 z OPCGroup ConnectPublicGroup(string Name) 公共组是服务器中已经存在的组,这些组能够连接而不能添加。如果服务器不支持公共组或者名称是非法的,这

16、个方法会失效。 z RemovePublicGroup(ItemSpecifier)移除由ItemSpecifier标识的OPCGroup对象。 OPCGroups Events z GlobalDataChange OPCGroup Object The OPC Groups provide a way for clients to organize data. For example, the group might represent items in a particular operator display or report. Data can be read and writte

17、n. Exception based connections can also be created between the client and the items in the group and can be enabled and disabled as needed. An OPC client can configure the rate that an OPC server should provide the data changes to the OPC client. OPC组为客户端提供了一种组织数据的方法。比如组可以代表某一操作显示器或者报表的项目。数据可读可写。也可以

18、在客户端与组的项目之间创建基于意外的连接,而且也可以根据需要来enabled或者disabled。OPC客户端可以配置OPC服务器能够与OPC客户端进行数据交换的速率。 OPCGroup Properties z OPCGroup Parent 返回母级OPCGroup对象的引用 z String Name 组的名称 z Bool IsPublic 如果这个组是公共组则返回真,否则返回假 z Bool IsActive 这个属性控制组的激活状态。激活的组需要数据,典型的没有被激活的组不会继续取得数据,除非要求可读可写。 z Bool IsSubscribed 这个属性控制组的异步通知。选择订阅

19、模式的组从服务器接收数据变化。 z Long ClientHandle 与组有关的long型值。设置它的目的是对客户端快速定位目标数据。这个句柄一般是索引等等。客户端将会得到句柄数据或者状态。 z Long ServerHandle 服务器给组分配的句柄。服务器句柄是唯一标识这个组的Long型数据。客户端必须在一些方法中使用这个句柄以便操作OPCGroup对象。(比如OPCGroups.Remove方法) z Long LocaleID 这个属性标识了场所,可能用来定位从服务器返回的字符串。这个属性的默认值取决于设置在OPCGroups集合上的值。 z Long TimeBias 这个属性提供

20、了数据的盖戳时间到设备当地时间的转换。 z Single DeadBand 这个属性用满刻度的百分比来表示(合法值从0到100)。这个属性的默认值取决于设置在OPCGroups集合上的值。 z Long UpdateRate 更新率 数据交换时间可能被触发的最快速率。一个慢的过程可能导致触发数据交换低于这个速率,但是他们绝不会超过这个速率。速率以毫秒为单位。这个属性的默认值取决于设置在OPCGroups集合上的值。给这个属性分配一个值意味着请求一个新的更新率。服务器可能并不支持这个速率,所以读取这个属性可能导致不一样的速率(服务器可能使用它支持的最接近的速率)。 z OPCItems OPCI

21、tems OPCItem对象的集合这是OPCgroup对象的默认属性。 OPCGroup Methods z SyncRead(Integer Source, Long NumItems,Long ServerHandles(),ref object Values(),ref Long Errors(),optional ref object Qualities,Optional ref object TimeStamps) 这个函数读取组中一个或者多个项目的数值,品质,时间戳信息。 z SyncWrite(Long NumItems,Long ServerHandles(), object

22、Values(),ref long Errors()在一个组中写入一个或者多个项目。返回一个与OPCGroup对象相关的AsyncWriteComplete事件。 z AsyncRefresh(Integer Source, Long TransactionID, ref Long CancelID)在一个组里产生一个所有的激活项目的事件(无论它们是否改变)。未激活的项目都没有包含在回调中。结果通过与OPCGroup对象连接的DataChange事件或者与OPCGroups对象连接的GlobalDataChange事件返回。 z AsyncCancel(Long CancelID) 请求服务器

23、取消一个未完成的事务。将会产生一个AsyncCancelComplete事件来标识取消是否成功。 OPCGroup Events z DataChange z AsyncReadComplet z AsyncWriteComplete z AsyncCancelComplete OPCItems Object OPCItems Properties z OPCGroup Parent 返回母级OPCGroup对象的引用 z Integer DefaultRequestedDataType 在调用Add方法时将会用到的请求数据类型。这个属性的默认值为VT_EMPTY()(这意味着,服务器发送的数

24、据是服务器规范数据类型) z DefaultAccessPath 在调用Add方法时将会用到的默认访问路径。这个属性默认为“”。 z Bool DefaultIsActive 在调用Add方法时将会用到的默认激活状态。这个属性默认true。 z Count 集合所需的属性。 OPCItems Methods z OPCItem Item(ItemSpecifier) 集合所需的属性 z OPCItem GetOPCItem(Long ServerHandle) 通过ServerHandle返回一个由Add返回的OPCItem对象。由索引使用项目属性来引用。 z AddItem(string I

25、temID,Long ClientHandle)在集合中创建一个新的OPCItem对象。这个OPCItem对象的属性由OPCItems集合对象中当前的默认值决定。当一个OPCItem对象添加进来之后,它的属性能够修改。 z AddItems (Long Count,String ItemIDs(),Long ClientHandles(),ref Long ServerHandles(),ref Long Errors(), Optional object RequestedDataTypes, Optional object AccessPaths)创建一些OPCItem对象并且将他们添加到

26、集合中。每个新OPCItem的属性由OPCItems集合对象中当前的默认值所决定。当OPCItem对象添加完后,它的属性可以修改。 z Remove(Long Count, Long ServerHandles(), ref Long Errors()移除一个OPCItem z Validate(Long Count,String ItemIDs(), ref Long Errors(), Optional object RequestedDataTypes, Optional object AccessPaths)确定一个或者多个OPCItem对象能否通过Add方法成功添加。 z SetAc

27、tive (Long Count, Long ServerHandles(), Boolean ActiveState, Long ref Errors()允许激活或者停用OPCItems集合中个别的OPCItem对象 z SetClientHandles (Long Count, Long ServerHandles(), Long ClientHandles(), ref Long Errors()改变一个组中的客户句柄或者一个或多个项目 z SetDataTypes (Long Count, Long ServerHandles(), Long RequestedDataTypes(),

28、ref Long Errors()改变一个或多个项目请求的数据类型 OPCItem Object OPCItem Properties z OPCGroup Parent z Long ClientHandle 与OPCItem相关的Long型值。它的目的在于客户端可以快速定位数据的目的地。典型地,句柄是一个索引,等等。句柄将会伴随着由OPCGroup事件而变化的数据和状态返回到客户端。 z Long ServerHandle 服务器给AnOPCItem 对象分配的句柄。ServerHandle 是对这个AnOPCItem对象的唯一Long型标识。客户端使用一些操作OPCItem对象的方法(比

29、如OPCItems.Remove)时必须用到这个句柄。 z String AccessPath 由客户端用Add方法标识出的访问路径。 z String ItemID这个项目的唯一的标示符 z Bool IsActive 这个项目获取数据的状态。 z Integer RequestedDataType 将会返回的项目值的类型。如果请求的数据类型被拒绝,那么OPCItem将会是非法的。直到RequestedDataType 设置为一个合法的值。 z Object Value 返回从服务器读取的最新的数据。这是AnOPCItem的默认属性 z Long Quality 返回从服务器来的最新的数据质

30、量。 z Date TimeStamp 返回从服务器来的最新的时间戳。 z CanoncialDataType 返回服务器中的本地数据类型。 z Integer EUType 显示了包含在EUInfo里面的工程单位信息类型。 0:没有可用的EU信息 1:模拟 2:Enumerated z EUInfo 包含了工程单位信息的变量。 z Read(Integer Source, Optional ref object Value, Optional ref object Quality, Optional ref object TimeStamp)OPCItem Read方法使用了一种阻塞调用来从服务器读取这个项目。调用Read方法只能从一个数据源(OPCCache 或者 OPCDevice)来刷新项目的值,质量和时间戳属性。如果项目的值,质量和时间戳必须是同步的,这个方法的可选参数返回已取得的值。 z Write(object Value)写方法使用了一个阻塞调用来给服务器写入值。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报