iHistorian OPC Collector - 测点的添加过程分析

iHistorian OPC Collector - 测点的添加过程分析

iHistorian OPC Collector服务启动后,分别连接到预先设定的OPC服务程序已经iH服务器。如果这是我们第一次运行这个接口,首先这个接口会把自己的名称添加到iH服务器的接口列表中,然后我们就需要向iH服务器中添加一些需要的测点。iH有一点很不错,可以使用服务器管理工具,通过服务器来查询接口中所支持的测点。当然,这一点最终是需要数据源系统来支持,所幸的是OPCDA规范是支持这项功能,就是对测点的浏览功能。

在iH管理工具的Collector管理页面中,选中对应的OPC接口后,如果它是运行着的,右边的Add Tags按钮将是可以点击的。点了这个按钮后,弹出窗口里就会显示这个OPC服务程序所支持的所有测点,我们在里面选择需要的测点然后添加到iH服务器中。之后,数据便源源不断的写进了iH服务器。

这个过程是多么的简单方便,谁都可以配置。但是这个方便是有条件的,缺了一些条件,就只能抓头了。

随手翻了一下ih OPC Collector的在线文档有关测点浏览的功能这部分,有下面几句话:
(1)如果你的OPC服务程序支持以层次结构组织测点,iH在通过OPC接口浏览测点时将会使用OPC服务程序的测点层次结构来显示....
(2)在浏览OPC支持的测点时,可能不会将所有测点都显示出来.....但这些未显示的测点仍可以手工添加。

首先对于的一句话,OPC规范对于测点在OPC服务程序中的组织方式,有层次结构(即树型结构)和单一列表的平面结构,而具体采用哪一种是根据具体应用需要而定,而不是都必须实现的。因此,并不是所有的OPC服务程序都支持层次结构的测点,特别是一些测点较少、结构简单OPC服务程序。这样的话,对于测点的添加,只能手工设置,而无法使用自动选择添加。

第二句话并没有说出为什么不能显示,以及为什么不能显示却能添加。根据OPC规范定义,通过测点浏览的函数接口,OPC客户端程序应该可以查询到所有的测点名称,而这里仅仅涉及测点的名称和组织结构。所以iH OPC接口在查询测点时还做了其他动作,经过分析,其查询测点的动作顺序有了一个大概的了解。

首先OPC接口通过OPC服务程序的测点浏览接口获取树型结构的目录节点,显示在测点添加对话框的左栏。当我们点击一个目录节点时,OPC接口再次通过OPC服务程序的测点浏览接口获取当前目录下的测点名称。此时,服务器将会把对应目录下的测点都返回给OPC接口,如果只有一个目录层次,那么所有的测点将反会给OPC接口。

但是OPC接口拿到这些测点名称后并没有马上显示出来,而是向OPC服务程序添加了一个用于数据采集的测点组,组的名称为BasicTagsAdd,并将所得到的测点加到OPC服务程序的这个组里面。根据OPC定义,向测点组中添加测点不仅需要提供测点的名称,还需要提供包括测点的数据类型等多种参数。而此时OPC接口仅仅获得了测点名称,于是在向测点组添加测点时,其将数据类型参数直接设为VT_EMPTY,表示未知。而对于一些数据类型检查严格的OPC服务程序,如果发现OPC接口提供的数据类型不符合OPC服务程序中的设定,就会拒绝接受。对于被OPC服务程序拒绝的测点,iH就不会将其显示出来。

对于能显示出来的测点,选定后点击添加按钮即可添加到iH中,同样为了能采集到数据,iH也向OPC服务程序中添加了一个测点组,然后向该组中添加选定的测点。因OPC对测点的数据读取是以组为单位,因此对于OPC服务程序测点组是必须添加的。而组的名称根据测点取数的方式不同而不同。

iH OPC测点有两种取数方式——Polled和Unsolicited。前者表示同步方式读,即一次读数过程调用在所有数据返回后才结束,这种方式下ih添加到OPC服务程序的测点组名称样式为PolledGroup001Add,后者是异步方式读,即iH发送一个读命令后直接返回,OPC服务程序只将有变化的数据从另外的通道发送给iH,这种方式下建立的测点组名称样式为UnsolicitedGroup001Add。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值