1、2023-2-111IEC 61970系列标准培训资料lCIS是Component Interface Specification 组件接口规范的缩写,即组件接口规范。lCIS详细描述了组件/应用应实现的能够以标准方式与其它组件/应用进行信息交换和/或访问公共数据的接口。该定义的要点:CIS描述的接口是标准的、通用的CIS描述的接口最终由组件/应用负责实现接口的用途:l信息交换l访问公共数据l接口:一个组件/应用应实现的能够以标准的方式与其它组件/应用交换信息和/或访问公共可用数据的接口。组件接口描述了为达到此目的而使用的特定的事件、方法和属性。l信息交换模型IEM:一个组件与其它组件所交换的
2、信息内容或消息。lCIS Level 1:Part 4xxPart 4xx CIS规范以独立于底层具体实现技术的形式进行描述。lCIS Level 2:Part 5xxPart 5xx系列文档提供了如何将Part 4xx CIS规范映射到特定的底层实现技术 为了保证互操作性,必须针对每一个接口,为每一种技术提供一个标准的映射,如Java技术、CORBA技术,等等(如Part502:CDA CORBA Mapping)。CIS文档中,为每一个应用以IEM形式定义的事件需要映射到信息传输所使用的特定语言,如XML。Part 401449:通用服务(HOW)Part 450499:应用相关的信息交换
3、模型(WHAT)Part 4xx:CIS Level 1:与具体实现技术无关的规范Part 5xx:CIS Level 2:将4xx规范映射到具体实现技术的规范Part 501:将以UML形式表达的CIM翻译成为机器可读的XML格式的规则。具体地,使用资源描述框架(RDF)模式规范语言来表达模式。Part 503 用于交换基于CIM的模型信息所需的格式和规则 技术映射lPart 401449:通用服务Part 401,402,403,404,405,407已经基本涵盖了电力应用信息交换所需的接口目前尚未完善是目前工作组的工作重点lPart 451499:IEM目前只有IEM总则Part 450
4、(451),452各个应用相关的信息交换内容标准尚未形成lPart 5xx:具体实现技术映射目前只有CIM RDF模式(Part 501)和CIM XML模型交换模式(Part 503)标准各类具体技术映射(如CORBA映射、EJB映射等)标准尚未形成lPart 4xx CIS Level 1按照以下2部分进行组织:Part 401-449:HOW:如何交换l指定组件接口所支持的通用服务。l这些规范定义了任何一个应用与其它应用交换信息或访问公共数据所使用的通用服务Part 450-499:WHAT:交换什么l以IEM的形式为特定应用类型描述特定信息交换需求。这些规范定义了应用间标准信息交换的信
5、息内容。l它们被定义为事件,但可以用多种方式进行交换。目的是在中间件的选择上尽可能提供更大的灵活性,以实际完成信息的交换,同时保证互操作 l以应用为单位进行组织l由于许多组件接口服务为多个应用类型所共需,通用服务的定义与使用它们的应用之间应保持独立。通用服务组织在一个系列中 401449使用这些服务的特定应用及其交换的信息内容则组织在另一个系列中 450499lPart 401:CIS架构本文档提供了CIS系列标准的总概,并说明了在一个系统实现和系统集成项目中如何使用这些标准。lPart 402-449:详细说明组件接口所支持的通用服务。这些规范定义了一个应用与其它应用进行信息交换和访问公共数
6、据的通用服务。lPart 450:CIS信息交换模型IEM本文档提供了定义信息内容的用例过程(步骤)的总概以及使用CIS标准进行系统集成的例子。lPart 451-499:描述了特定应用类型的特定信息交换需求这些规范定义了应用间标准信息交换的信息内容。每一个应用类型的信息内容以IEM的形式描述。lPart 401449:指定组件接口所支持的通用服务。这些规范定义了任何一个应用与其它应用交换信息或访问公共数据所使用的通用服务l使企业应用集成所需工作最小化l将应用与底层中间件技术分离开来l充分利用CIMl限制创建粒度过小的APIl防止不兼容的CC API成为标准l通用服务基于已存在的国际或工业标准
7、,以最大可能进行扩展。这些服务一般基于以下标准:OPCOMGl公共服务是CIS通用服务部分的基础,它规定了组件用标准的方式访问公共数据所必须实现的一套接口并且还描述了独立于任何组件技术的事件类型和消息内容。l公共服务分为Identifiers(标识服务)、Description(描述服务)、Namespace(名空间)和可选的组件服务四个方面 l标识服务是在DAF标准的资源标识服务模块基础之上形成起来的,使用这个服务可以标识出CIM资源,如类、属性和对象实例等。l标识服务对DAF标识服务进行了扩展,提供了按视图查询URI的接口以及创建ResourceID的接口 主要接口说明:ResourceI
8、DSequence get_resource_ids(in URISequence uris)功能:通过传入的URI(Uniform Resources Identifier)序列返回内部对应的ID序列。对于类和属性,拥有统一的URI,即标准名空间加类名或者属性名称;对于对象,URI在不同的系统中会有不同的表示。输入类的字符串:返回的是关于类的ID信息.输入属性的字符串:返回关于属性的ID信息.输入对象的字符串:返回的关于记录的ID信息.异常:抛出LookupError异常。URISequence get_uris(in ResourceIDSequence ids)功能:通过传入的ID序列返
9、回对应的URI序列。输入:ResourceIDSequence类型的ID序列,不可更改。输出:URI序列。根据输入的ID返回不同的字符串.输入类的ID:返回的字符串为名字空间标准类名 输入属性的ID:返回的字符串为名字空间标准属性名 输入对象的ID:返回的字符串为内部自定义的对象URI异常:抛出LookupError异常。URISequence get_uris(in string viewName,in ResourceIDSequence ids)功能:通过传入的视图名称、ID序列返回对应的URI序列。传入的视图名称可以限定资源描述符的查询范围,提高接口的查询效率 输入:string类型的
10、视图名称,ResourceIDSequence类型的ID序列,不可更改。输出:URI序列。异常:抛出LookupError异常。ResourceIDSequence create_resource_ids(in ResourceID prototype,in long how_many)功能:通过传入的类型ID及想要申请的ID个数,返回相应的对象IDs,这里需要进一步说明的是,这里仅仅分配了一些对象IDS,在系统里面并没有添加记录,当用户没有及时添加记录,系统会自动收回这些分配的ID资源。输入:ResourceID类型的ID,申请的个数n,不可更改。输出:n个ResourceID类型的ID。异
11、常:抛出UnknownResource异常,即传入的prototype服务器无法识别。描述服务直接借鉴了DAF标准中的资源描述服务模块。DAFDescriptions的主要功能是当用户通过DAFQuery模块查询得到记录的迭代指针以后,通过该模块可以根据需要完成具体数据的操作。unsigned long max_left()功能:当前未读取的剩余纪录数boolean next_n(in unsigned long n,out ResourceDescriptionSequence descriptions);功能:从服务器读取n条记录void destroy()功能:将当前容器销毁,客户方无法
12、再读取相应数据,此项操作服务器和客户方都可以调用。l名空间提供了一种通过标准接口与基于CIM的层次框架交互的协议以及浏览、配置交换数据的方式。lIECTC57名空间标准定义了三种类型的名空间,分别是IECTC57PhysicalModel、IECTC57ClassModel和IECTC57ISModel。CIS中基于数据的访问主要有两种。GDA(通用数据访问)以及HSDA(高速数据访问)。其中GDA数据服务中的部分公共服务又被HSDA引用。GDA服务源于DAF和GID的CDA,在此基础上结合电力系统实际延伸了其它功能。这种服务使用了请求/应答的同步访问机制,实现对数据的非实时或准实时的存取。其
13、主要内容包括如下:SCHEMA的查询。具体对象的查询。对象数据的更新、增加和删除。事件服务。以下将从主要三个方面来简单介绍GDA。分别是:数据访问,主要包括DAFQuery以及扩展的 GDAFilteredQuery 数据更新服务,DAFUpdate。事件服务,包括DAFEvents和GDAEvents.DAFQuery提供了查询数据的主要方法。ResourceDescription get_values(in ResourceID resource,in PropertySequence properties)功能:读取一条记录的相关属性列的信息。ResourceDescriptionIte
14、rator get_extent_values(in PropertySequence properties,in ClassID class_id)功能:读取某一类所有记录的相关属性列的信息。ResourceDescriptionIterator get_related_values(in PropertySequence properties,in Association association,in ResourceID source)功能:读取某一类中符合某种关联条件的所有记录的相关属性列的信息。如取出所有属于某一变电站的所有变压器记录。数据访问示意图由于和DAFQUERY大部分功能相
15、似,不同之处增加了筛选条件,如:ResourceDescriptionIterator get_filtered_extent_values(in PropertySequence properties,in ClassID class_id,in CSPropFilters propertyFilters)功能:读取某一类中按照某些域(非关联域)筛选后得到的所有记录的相关属性列的信息。输入:欲读取记录的类ResourceID(class_id),欲读取的相关列的信息PropertySequence,筛选条件propertyFilters。关于CSPropFilters主要内容如后图。输出:该
16、类所有记录相关列的信息的一个指针。异常:UnknownResource,QueryError。DAFUpdate的重要功能为提供客户方对服务器方数据更新的方法。apply_updates(in DifferenceModel differences)功能:通过传入的DifferenceModel对相应的数据库进行更改,添加,删除操作。输入:DifferenceModel,分别有三种类型:添加,删除,修改。根据传入的DifferenceModel,更新操作细分为:reverseDifferences中有相关记录,forwardDifferences中有相关记录,但是值不同,当前操作为更新。rev
17、erseDifferences中有相关记录,forwardDifferences中没有相关记录,当前操作为删除。reverseDifferences中没有相关记录,forwardDifferences中有相关记录,当前操作为添加。DAFEvents在均提供事件服务,不同的是DAFEVENTS对事件的通知仅仅定位于一个类(关系库中的表),而GDAEVENTS则定位于对象(关系库中的记录)。GDAEvents目前只定义了一个回调接口。on_event(in ResourceChangeEvent event)功能:事件通知,当客户方在服务器方注册以后,服务器方数据发生变化以后回调该接口,从而通知客
18、户方数据改变,该接口由客户方实现。输入:ResourceChangeEvent event,包含的信息:变化具体记录(不同于DAFEVENT仅仅通知某一类发生变化),变化的类型(增加、删除、更新等),版本信息。输出:无。异常:无。备注:关于客户方的注册机制还需要进一步确定。本标准基于EPRI CCAPI研究项目(RP-3654-1)和OMG开发的DAIS API标准 标准中定义的组件接口规范(CIS)提供了访问EMS数据的API接口。此API的目的是为了支持从EMS到多客户端(内部或外部)的大批量数据实时高效传输。它支持数据发掘和数据值的更新。它被设计用作在线数据的传输而不是用来定制数据对象,
19、例如不能增加或删除数据对象。图中标注DAIS usage的阴影部分是最适合使用DAIS来传输数据的。DAISusageInstrumentationRTU orSubstation Control SystemSCADAServerEM SServerHM IHM IProcess dataControl com m andsor updatesProcessCommunication Unit此标准定义了一个组件接口规范,它使用DAIS DA(数据访问)对源自电力系统或与电力系统相关的数据进行高速数据访问。这些数据包括:1)从电力系统中采集的实时数据 2)表示电力系统数量的计算数据3)描述电
20、力系统或设备属性的参数4)控制实时或计算数据处理的参数5)向电力系统发出的控制数据 以上数据包括时标和质量码,以及各种基本数据值数据浏览数据访问同步异步读数据同步异步写数据订阅l服务端不知道客户端的存在l客户端发起连接请求l连接建立l服务端数据变化后,调用客户端提供的回调接口实现数据传输客户端服务端建立连接回调实现数据传输lType对应Class(类),Property对应Attribute(属性)或Association(关联)l一个Node(节点)通常代表一个现实世界里的对象l一个Item(项)则表示为一个现实世界对象的某个属性实例lItemID用来标识项。一个ItemID包含一个节点的R
21、esourceID和一个属性的PropertyID。DAIS APIs使用ItemID访问数据,而DAF分别使用ResourceIDs和PropertyIDs访问数据 从服务端向客户端传输数据使用的数据结构是DAIS:DataAccess:IO:ItemState,结构包含下述成员:项的标识、项的值、时标和质量码。数据浏览使用的数据结构是DAIS:Node:Description、DAIS:Type:Description、DAIS:DataAccess:Item:Description、DAIS:Property:Description 用户浏览DAIS数据服务器中的数据并选择他想访问的数据
22、 用户根据做出的选择建起要访问数据的描述并发布数据访问命令 如果访问命令是异步的,当服务端准备好后,向客户端发出相应 如果访问是一个订阅请求,那么当服务端数据发生更新时,服务端向客户端发更新后的数据 为了支持浏览,DAIS数据访问服务器提供了DAIS:Node:Home接口和DAIS:DataAccess:Item:Home接口来分别浏览Node和Item,这些节点和项以层次结构组成了DAIS数据访问服务器中IECTC57PhysicalModel数据 这种层次结构可以支持类似Windows Explorer的图形化浏览接口。DAIS服务器可以提供基于IECTC57PhysicalModel的
23、多视图,如不同的层次结构 find():返回一个node的信息find_each():返回一系列node的信息find_by_parent():返回一个node的所有子nodefind_by_type():返回一颗树上的所有nodeget_pathnames():得到一系列node的pathnamesget_ids():将一系列的pathnames转成idget_root():得到整棵节点树的根节点find():返回一个item的信息find_each():返回一组item的信息find_by_parent():返回某个node的itemfind_by_type():返回某个node所对应子树
24、的所有itemget_pathnames():将一系列ItemID转换成相应的pathnameget_ids():将一系列的pathname转换成相应的ItemIDEMS中包含许多不同类的对象。61970第三部分的UML类图中定义了这些类。为了使用户可以浏览IECTC57ClassModel中的类和属性,DAIS提供了类浏览接口DAIS:Type:Home和属性浏览接口DAIS:Property:Homefind():根据TypeID得到该类型的说明find_by_schema():根据schema得到其所有的类型find():给定一个属性id,返回其详细信息find_each():给定一组属
25、性id,返回它们的详细信息find_by_node():给定一个node的id,返回其所有属性的详细信息find_by_type():给定一个类型id,返回其所有属性的详细信息为了支持对象属性值的访问,DAIS数据访问服务器支持:1.通过DAIS:DataAccess:Manager接口 访问特定的数据值(如Item)2.通过DAIS:DataAccess:IO:SyncIO接口和 DAIS:DataAccess:IO:AsyncIO 接口初始化数据传输为了收到异步调用和订阅的响应,DAIS数据访问客户端应该提供DAIS:DataAccess:IO:Callback接口给服务端使用 DAIS:
26、Node:Home接口用于浏览层次结构的对象。DAIS数据访问对于任意层次的容器都是透明的。多个视图的使用支持了多个层次结构。视图由DAIS:Server接口管理。61970第三部分允许不同的容器结构。一个PowerSystemResource可以包含Measurements,因此Measurements能以不同的方式被组织。一个纯的SCADA系统可能想按厂站组织所有Measurements而EMS系统可能想按照量测的对象来组织MeasurementsDAIS需要对象按照其在层次结构中所处的位置有一个类似文件路径的名字。61970第三部分使用Name.pathName属性来支持。如果DAIS数
27、据访问服务器支持多层次结构,则每个层次结构有自己的Name.pathName。因此某个视图的p a t h N a m e 不 能 被 用 作 其 他 视 图 中,但ResourceID是相同的。DAIS数据访问支持使用DAIS:Node:Home:find_by_type()方法访问拉平的对象。DAIS:DataAccess:Item:Home用于浏览对象的属性值。DAIS:DataAccess:IO用于访问值或值的序列。DAIS数据访问的目的是为了支持高速数据访问而不是对定制数据的改变。这意味着DAIS数据访 问 服 务 器 应 该 对 数 据 配 置 工 具 中 的ResourceIDs和URIs指明DAIS:AccessRights为READABLEDAIS数据访问支持对层次结构中任意节点的属性值作为值序列,通过使用DAIS:DataAccess:Item:Home:find_by_type()方法访问