关于pks提供的OPC接口.docx

上传人:b****7 文档编号:9917352 上传时间:2023-02-07 格式:DOCX 页数:24 大小:601.61KB
下载 相关 举报
关于pks提供的OPC接口.docx_第1页
第1页 / 共24页
关于pks提供的OPC接口.docx_第2页
第2页 / 共24页
关于pks提供的OPC接口.docx_第3页
第3页 / 共24页
关于pks提供的OPC接口.docx_第4页
第4页 / 共24页
关于pks提供的OPC接口.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

关于pks提供的OPC接口.docx

《关于pks提供的OPC接口.docx》由会员分享,可在线阅读,更多相关《关于pks提供的OPC接口.docx(24页珍藏版)》请在冰豆网上搜索。

关于pks提供的OPC接口.docx

关于pks提供的OPC接口

1.ExperionOPC接口类型

Experion提供了下列可选的OPC接口,不同的接口用于不同的需求:

1.1.ExperionOPCClientInterface(OPC客户端接口)

OPC客户端接口用于与一些简单的子系统之间进行通讯,如PLC等。

这个组态需要在QuickBuilder中进行。

在这里,PKS系统作为OPC客户端的身份与第三方OPCserver进行通讯。

参考文档OPCClientInterfaceReference

在QuickBuilder中每一个OPCController下可以最多组态735个点(Item)

1.2.ExperionOPCAdvancedClient(OPC高级客户端)

OPC高级客户端包括Dataclient(数据客户端)和alarm/eventclient(报警及事件客户端)

OPC高级数据客户端用于与一些比较复杂的客户端之间的通信,比如其它DCS系统。

这些子系统的点结构是按照OPC基金会规定的OPCv2.05版进行架构的,也就是说这些点都有比较复杂的参数体系,比如PKS系统的点就是复杂的点结构。

OPC高级报警与事件客户端可以接收第三方OPC报警与事件服务器的报警及事件信息,在收到报警事件后,将会显示在报警汇总中,在操作员确认了这些报警后,其确认信息也将发送到OPC报警及事件服务器中。

报警和事件客户端的规范依据是OPC基金会报警与事件规范版本V1.0

1.3.ExperionOPCDisplayDataClient(OPC显示数据客户端)

OPC数据显示客户端用于在用户流程图中添加OPC数据,并且不需要其它额外的信息(如历史信息、报警信息等)。

这个客户端基于OPC基金会数据访问规范版本V2.05。

组态时,可以直接在流程图中添加数据ITEM,而不需要在QuickBuilder中建点。

1.4.ExperionOPCDataAccessServer(OPC数据访问服务)

ExperionOPCDataAccessServer提供了一种可以让其它OPC客户端Read/WritePKS系统点参数的功能。

基于OPC基金会版本V2.05,也可以向下兼容至OPCV1.0和OPCV2.0。

对于OPCDataAccessServer功能,PKS不需要做任何特殊组态,只需要有相应的License即可。

ProgId=HWHsc.OPCServer。

1.5.ExperionOPCAlarmandEventServer(OPC报警与事件服务)

ExperionOPCAlarmandEventServer允许OPCAlarmandEvent客户端从PKS系统接收报警和事件信息。

PKS支持OPC基金会的AlarmandEventV1.02规范。

PKS不需做特殊的组态。

1.6.ExperionOPCHistoricalDataAccessServer(OPC历史数据访问服务)

ExperionOPCHistoricalDataAccessServer为第三方OPC客户端提供了访问PKS点参数历史的功能。

基于OPCHistoricalDataAccess规范V1.2

PKS不需做特殊的组态。

1.7.ExperionOPCIntegrator(OPC集成)

ExperionOPCintegrator用于数据在2个或多个OPCServer之间进行传输。

在下列情况下,一般使用这种方式:

a)一个系统(第三方)已经提供的OPCServer,但是没有OPCClient,当这个系统还需要从Experion获得数据时。

b)在Experion的数据发生变化时(包括操作员改变的数据),需要传送到第三方的OPCServer中。

c)Experion过程控制器(Controllers)需要与管理控制层(SupervisoryControlLayer)之间进行数据传输时

警告:

不能利用这种方式在控制器之间传输安全或关键任务信息,对于涉及到安全方面的信息,需要使用直连线的方式在控制器之间进行传输。

2.OPC接口组态说明

由于PKS作为OPCServer时在PKS侧基本没有什么特殊设置,所以作为组态工作来讲,重点是:

在Experion作为OPCClient时该如何理解和操作。

有关于OPC的一些概念和术语可以参考附录OPC专用术语部分的描述。

注意:

无论什么时候,在组态OPC的Item时,对其名称及点参数一定要注意大小写的区别,OPC通信通常会对大小写敏感,为了减少不必要的麻烦和节省调试时间,在做OPC通信,最好养成良好的习惯。

2.1.关于OPC的数据传输方式

OPC是一种数据从数据源(Server)到任何一个客户端(Client)通信的标准,OPCServer和OPCClient可以在同一台计算机上,也可以在不同的计算机上。

OPC是如何进行数据传输工作的

OPCServer上的数据在OPCClient上是以Item的形式进行引用的,在OPCClient上,必须将一个或多个Item加入到一个Group(组)中,再从OPCServer获得Item数据。

OPCClient请求OPCServer创建一个组,并指定最大更新速率(UpdateRate)和死区(Deadband),然后OPCClient请求OPCServer添加Item到这个组中。

注:

虽然OPCClient指定了一个Group的更新速率,但是否采用这个速率是由OPCServer根据实际系统状况决定的。

虽然OPCClient指定了一个Group的死区,但是否采用这个死区是由OPCServer实际系统状况决定的。

Callback(回叫方式)

通常,OPCServer通过Callback的方式发送数据到OPCClient。

当创建了一个Group后,OPCServer会为这个Group的Item创建一个缓冲区,这个缓冲区依照Group指定的更新速率进行更新,在最后一次缓冲区更新后,当数据再次发生有效改变(是否为有效改变由Group的Deadband决定)时,OPCServer只发送Group中Item的最新值到OPCClient。

这种方法,减少了OPCServer和OPCClient之间的通信量,OPCClient只在数据发生有效改变时才接收到数据。

Explicitreadrequest(外部读请求方式)

OPCClient也可以发送外部读请求到OPCServer,而不受Callback的限制。

OPCClient可以直接请求OPCServer中缓冲区的数据或直接从现场设备(例如卡件)读取数据。

这种方式与Callback相比效率较低。

2.2.最简单的OPC客户端接口:

ExperionOPCDisplayClient

如果与第三方OPCServer进行通信,没有特殊要求,只需要在流程图中进行显示,则可以选择使用ExperionOPCDisplayClient方式来实现。

这种方式的特点是:

d)这种方式不需要专门的License许可

e)组态快捷、简单,不需要在QuickBuilder中组态SCADA通信点

f)组态好OPCDisplay后,剩下的工作就是在流程图中添加点信息即可

组态步骤:

g)首先确定第三方OPCServer的若干必要参数:

●第三方OPCServer的主机名/IP

●第三方OPCServer的ProgID。

关于这个ProgID,在不知道的情况下,可以通过枚举的方法获得,具体获得方法参见附录中的获得OPCServerProgID的方法部分的描述。

●与第三方通信点信息,包括完整的点参数和点类型信息。

在获得了点参数信息后,还需要规划Group(组),每一个Item(点参数)都必须属于一个Group,每一Group可以包含几十或几百个Item,每一个Group内的Item都使用相同的Update时间、Deadband(死区)等一些公共特性。

在Experion中的OPCDisplayClient每规划一个组就需要建立一个OPCDisplay的的SystemInterface,每一个OPCDisplayInterface缺省的可容纳Item的数量为500个,所以实际组态时可以根据实际情况规划Group的数量。

h)利用通用OPCClient软件测试与第三方OPCServer的通讯以及连接是否正常(具体方法参见附录中的利用通用OPCClient与OPCServer连接并通信部分),如果利用通用的OPCClient无法连接到第三方OPCServer,那么Experion也不会正常连接。

i)组态SystemInterface:

OPCDisplay

●首先打开Station,并选择菜单:

Configure->SystemHardware->SystemInterfaces,进入到SystemInterfaces组态界面,如图:

●在SystemInterfaces界面的Type项的下拉菜单中选择“OPCDISPLAY”,选择好后,再单击后面Alias项中的“-”,进入到OPCDisplay组态界面(这里以1号SystemInterface为例)。

●在OPCDisplay组态界面中的Configuration选项卡中,输入下图中所示的信息

●当配置完成后,如果与OPCServer连接正常,在Status选项卡中,可以看到连接状态,如图所示的连接状态就是正常的。

j)当OPCDisplay组态完成后,就可以在流程图中组态具体的点了,具体步骤如下:

●打开HMIDisplayBuilder,并在图中插入一个Alphanumeric对象

●在这个Alphanumeric对象的属性窗口中的Data选项卡中,输入OPC通信点信息,如图(这里的通信点是测试点,具体测试点的名称和内容参见利用通用OPCClient与OPCServer连接并通信中对测试点的说明)

保存流程图,并在Station中运行这张图

●如果想测试OPCWrite,则直接在Station中选中并输入测试数字即可,如图:

2.3.通用的OPC客户端接口:

ExperionOPCClientInterface

当Experion作为一个主系统与一些小规模的系统进行通信时,通常可以采用ExperionOPCClientInterface,大多数情况下,通信都可以使用这个客户端接口。

这个客户端接口需要License授权。

与ExperionOPCDisplayClient相比,ExperionOPCClientInterface需要在QuickBuilder中组态,并且在组态时可以组态报警、趋势等功能,同时也可以组态OPCWrite功能,OPCWrite的组态方式与MODBUS的组态类似。

与OPCDisplayClient一样,OPCClientInterface只能进行实时数据的读写操作(OPCDA)。

与MODBUS基本类似,ExperionOPCClientInterface的组态相对也比较简单,在获得必要参数后,需要组态Channel、Controller和Point。

具体过程如下:

k)首先确认在QuickBuilder中的Tools->ComponentManager中Device中“OPC”是被选中的(如图)。

l)创建OPCChannel,选择OPCChannel并填写参数。

这里的参数如没有特殊需要,都可以采用默认值。

这里单独将DiagnosticScanPeriod和BackgroundScanPeriod的概念说明一下:

DiagnosticScanPeriod:

诊断扫描周期,指定了相应周期后,Experion将按照周期时间发送同步请求至OPCServer,用于确认OPCServer的运行状态。

缺省60秒。

BackgroundScanPeriod:

后台扫描周期,指定了这个周期后,Experion会在每一周期将Controller中“backgroundscanning=enabled”控制器向OPCServer进行一次外部直接读数据请求。

简言之,就是定期全部读取一次指定控制器的数据,平时按照死区的定义接收有变化的数据。

缺省60秒。

m)建立Controller,并指定Deadband。

n)建点,这里做2个点,一个是模拟点,一个是状态点

模拟点

状态点

如果OPC点是可以读写的,则还需在Control选项卡中设置源参数和目标参数,如果没有特殊要求,源地址与目标地址可以与PV地址一致,如图:

o)在Station中激活Channel和Controller,并进入刚建好点的点细目,查看状态

如图,模拟点可以通过SP进行写操作

如图,状态点可以通过OP进行写操作

2.4.

 

3.附录

3.1.OPC专用术语

CLSID(ClassIdentifier,类ID)

CLSID,即类ID(类标识),“通用唯一标识符”(UUID),用于标识COM组件。

每个COM组件在Windows注册表中都有自己的CLSID,以便让其他应用程序加载。

Group(组)

在OPC对象结构中,使用同一更新速率(Update)和死区(Deadband)的Item的集合

Item(项)

OPCServer中的一个单一的数据源

OPC(OLEforProcessControl,专用于过程控制的OLE技术)

OPC(OLEforProcessControl,用于过程控制的OLE)是一个工业标准,管理这个标准国际组织是OPC基金会,OPC基金会现有会员已超过220家。

遍布全球,包括世界上所有主要的自动化控制系统、仪器仪表及过程控制系统的公司。

基于微软的OLE(现在的ActiveX)、COM(部件对象模型)和DCOM(分布式部件对象模型)技术。

OPC包括一整套接口、属性和方法的标准集,用于过程控制和制造业自动化系统。

OPC全称是OLEforProcessControl,它的出现为基于Windows的应用程序和现场过程控制应用建立了桥梁。

在过去,为了存取现场设备的数据信息,每一个应用软件开发商都需要编写专用的接口函数。

由于现场设备的种类繁多,且产品的不断升级,往往给用户和软件开发商带来了巨大的工作负担。

通常这样也不能满足工作的实际需要,系统集成商和开发商急切需要一种具有高效性、可靠性、开放性、可互操作性的即插即用的设备驱动程序。

在这种情况下,OPC标准应运而生。

OPC标准以微软公司的OLE技术为基础,它的制定是通过提供一套标准的OLE/COM接口完成的,在OPC技术中使用的是OLE2技术,OLE标准允许多台微机之间交换文档、图形等对象。

COM是ComponentObjectModel的缩写,是所有OLE机制的基础。

COM是一种为了实现与编程语言无关的对象而制定的标准,该标准将Windows下的对象定义为独立单元,可不受程序限制地访问这些单元。

这种标准可以使两个应用程序通过对象化接口通讯,而不需要知道对方是如何创建的。

例如,用户可以使用C++语言创建一个Windows对象,它支持一个接口,通过该接口,用户可以访问该对象提供的各种功能,用户可以使用VisualBasic,C,Pascal,Smalltalk或其它语言编写对象访问程序。

在WindowsNT4.0操作系统下,COM规范扩展到可访问本机以外的其它对象,一个应用程序所使用的对象可分布在网络上,COM的这个扩展被称为DCOM(DistributedCOM)。

通过DCOM技术和OPC标准,完全可以创建一个开放的、可互操作的控制系统软件。

OPC采用客户/服务器模式,把开发访问接口的任务放在硬件生产厂家或第三方厂家,以OPC服务器的形式提供给用户,解决了软、硬件厂商的矛盾,完成了系统的集成,提高了系统的开放性和可互操作性。

OPC服务器通常支持两种类型的访问接口,它们分别为不同的编程语言环境提供访问机制。

这两种接口是:

自动化接口(Automationinterface);自定义接口(Custominterface)。

自动化接口通常是为基于脚本编程语言而定义的标准接口,可以使用VisualBasic、Delphi、PowerBuilder等编程语言开发OPC服务器的客户应用。

而自定义接口是专门为C++等高级编程语言而制定的标准接口。

OPC现已成为工业界系统互联的缺省方案,为工业监控编程带来了便利,用户不用为通讯协议的难题而苦恼。

任何一家自动化软件解决方案的提供者,如果它不能全方位地支持OPC,则必将被历史所淘汰。

ProgID(ProgrammaticIdentifier应用程序标识)

每一个COM组件都需要指定一个CLSID,并且不能重名,CLSID表示使用一个具有16个字节的数字(例如:

86A70E6F-3F1C-46B5-86F9-C21DAD69C756就是一个类标识),每个CLSID都在系统的注册表中被注册,它表示组件的实际路径,保证了组件路径的透明性,每一个类标识(CLSID)都可以有一个与之关联的ProgID,ProgID是以字符串的方式来标识一个CLSID,与CLSID的16字节的标识相比,ProgID比较容易记忆,其格式为:

..

UpdateRate(更新速率)

在OPCServer中Item的更新速率

3.2.获得ProgID的方法

每一个OPCServer在本机范围内都有一个唯一的识别类名,称之为ProgID。

当安装完OPCServer后会注册到系统COM类型库中。

当我们需要与OPCServer进行通信时,必须要知道相应的OPCServer的ProgID名。

通常情况下,不需要专门记忆某个ProgID,只需要掌握一般方法即可:

p)在与第三方OPCServer进行通信时,对方应提供这个ProgID。

例如,honeywellExperion中所提供的通用OPCServer为:

HWHsc.OPCServer,其名称是固定的。

q)通过通用的OPCClient软件可以枚举出指定机器或IP中的ProgID名及其简要描述,从中可以选择并记录需要的ProgID。

大部分OPCClient均提供这种枚举方式。

r)如果在Station中组态OPCDisplayClient,在输入了第三方OPCServer的机器名或IP后,在ServerProgID项中会自动枚举出对方机器中所有的PrigID(如图),从中选择需要的即可。

3.3.利用通用OPCClient与OPCServer通信

免费的OPCClient软件非常多,在这里推荐2款比较好的软件:

s)第一款软件是:

OPCClient,这款软件是一个绿色软件,不需要安装,使用简单,通常用于单纯的测试与OPCServer的连接,在现场调试时或做一些简单测试时推荐使用这款软件。

t)另一款软件是:

MatrikonOPC,这款软件需要安装,并且可以选择同时安装一个OPCServer,也就是说,MatrikonOPC同时包括了OPCServer和OPCClient的功能。

与ExperionOPCServer一样,MatrikonOPC的OPCServer功能也是通用的OPCServer,我们可以通过这款软件测试所有的Experion的OPC功能。

由于OPC客户端软件的操作基本上都类似,所以这里以“OPCClient”为例,说明OPC客户端软件的使用和测试方法。

OPCClient是一款绿色软件,不需要安装就可以直接运行程序。

这里,我们的例子是以OPCClient作为OPC的客户端程序,以Martikon作为OPC服务器端程序。

服务器端程序只需要在运行后,添加几个自定义点即可,下面重点将OPCClient的使用方法做一个详细的说明。

u)MatrikonOPCServer的ProgID为:

Matrikon.OPC.Simulation.1

v)MatrikonOPCServer安装在本机上,即客户端与服务器端在同一台机器上(注:

当客户端与服务器端不在同一台机上时,当客户端需要访问OPC服务器时,还需要对服务器端的DCOM进行一些权限配置,对于这些配置可参见附录配置OPCServer上的DCOM部分的描述)

w)运行Matrikon的OPCServer仿真程序MatrikonOPCServerforSimulation,并添加若干自定义点,如图所示,我们为MatrikonOPCServer添加了4个点(fd、fd_1、fd_Point1、fd_Point2)以及这4个点的上一级结构(fd1),从OPCClient的角度来看,可以认为一共有5个点,这5个点及其属性参数均可以通过客户端程序查询和读写。

(注:

在本文档中,与第三方OPCServer的测试,如没有特殊说明,均以这几个点为例)

x)运行OPCClient程序,并选择菜单OPC->Connect,如图

y)在弹出的SelectOPCServer对话框中选择Matrikon的OPCServerProgID(如果是本机,ServerNode一项可以为空),并点击OK。

zz)连接后,OPCClient窗口的标题会变为OPCServer的ProgID名称(如图),这时选择菜单OPC->ServerStatus,来查看OPCServer的运行状态,一定要确认图中红圈标注出的状态为Running。

aa)我们在做测试时,不需要建立多个Group(组),只需用使用默认的GroupOne即可,所以,这时候我们就可以添加Item了,如图所示,选择菜单OPC->AddItem,会弹出“AddItem”对话框,在对话框中,打开Root树形结构,就可以看到之前在MatrikonOPCServer中建立的点结构及其参数结构。

bb)在这里以点“fd_Point1”为例,选择了这个点以及我们在MatrikonOPCServer中定义的参数“PV”,选择后,ItemName项目中会自动显示将要添加的Item点参数。

选择了点参数之后,单击“AddItem”即可。

cc)添加完Item后,在主窗口中就可以看到已添加的Item,以及实时值和更新时间等信息,如果看到了数值和更新时间,则表明OPCClient与OPCServer之间的通信都正常

dd)如果这个点参数是可以Read/Write的,还可以测试Write过程。

如图,右键单击点名,选择菜单中“WriteValuetoItem”,在弹出对话框中输入测试值,这里是“55”,单击OK后,指定点参数值变为55,则表明这个点参数的OPCWrite功能是允许和可用的

3.4.配置OPCServer机器上的DCOM

 

欢迎您的下载,

资料仅供参考!

 

致力为企业和个人提供合同协议,策划案计划书,学习资料等等

打造全网一站式需求

 

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

当前位置:首页 > 外语学习 > 日语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1