Article_5_UnderTheHood_DRAFT_v20_24July2015_forEditorInfo

advertisement
ARTICLE 5: CIM - UNDER THE
HOOD
Lars-Ola Österlund, Kurt Hunter, Kendall Demaree, Margaret Goodrich, Alan McMorran, Tatjana Kostic
Scope
This article provides an overview of CIM based data exchanges, how they are created and how they may
be implemented within the enterprise or between utility entities. The primary purpose is to explain how
the CIM can be used to generate exchange packages and how those packages enable an integration
framework. Using the Common Information Model (CIM) as a basis for all exchange payloads ensures
the exchange content is clearly defined in a standard way and the data is interpreted the same across
different business domains.
Setting the stage
Early History – Transmission Data Exchange
The initial CIM canonical model was created to allow EMS-to-EMS import and export of network models
and to avoid the proprietary data formats that complicated data exchange between EMS systems.
However, it was discovered almost immediately that this model could also be used to exchange power
system data used in network analysis such as power flows, topology processing, state estimation, etc.
These subsets of data became known as profiles (see “CIM Profiles for Data Exchanges” for more
information). NERC was the first to suggest and define requirements for a profile that contained
sufficient data to solve a power flow. This resulted in the first profile known as the Common Power
System Model (CPSM) profile. The CPSM profile would be used by utilities and interconnections to
generate more accurate models and enhance grid reliability.
Once the data content of the profile was defined, the next step was to define the data format that
would be used within the data file itself. The canonical CIM supports both detailed node-breaker and
bus-branch models for network analysis applications. However, the CPSM profile was intended for use
in operational systems (EMS) and hence supports node-breaker models with detailed substations
including breakers, disconnectors, measurements, equipment structures within substations etc. This is
different from bus-branch models intended for power flow applications where all substation detail has
been replaced by power flow busses.
Network models have many object types (e.g. Breakers, Disconnectors, Measurements, VoltageLevels
etc.) and relationships between them. Representing these relationships in exchange documents can be
made by references (pointers) or by inclusion of the referenced data at the place of the reference.
Documents based on XML Schema can include referenced data by hierarchical nesting. Hierarchical
nesting was the only mechanism to support references in XML Schema when CPSM was created.
Hierarchical nesting of references has drawbacks; the same data may be referenced multiple times
resulting in duplication or the data is not available and can be referenced in another document. As a
result, it was decided to use a modified version of the RDF XML exchange format. This satisfies all the
industry requirements for the data exchange format and avoids the drawbacks imposed by XML
Schema. Hence, the CIMXML exchange format described in the IEC 61970-552 standard was created in
which all relationships are expressed as references.
The CPSM profile has since evolved into an extensive standard supporting many network analysis
applications as well as network related data such as locations and schematic diagrams, e.g. the ENTSO-E
CIM standard for Common Grid Model Exchange Standard (CGMES).
Recent Additions – Distribution and Market Data Exchange
While the base canonical CIM covers the needs for network analysis studies, the utility industry wanted
more. In particular, in the realm of distribution operations, where business processes were less
dependent on the network analysis model, but needed to support data exchanges with various
enterprise systems. The canonical CIM started growing beyond the network analysis view to support
data exchanges across the distribution domains including distribution operations (DMS), outage
management systems (OMS), geographical information systems (GIS), work management systems
(WMS), customer management systems (CMS), meter data management systems (MDMS) and various
distribution network planning applications. As the industry become more de-regulated, the base
canonical CIM grew to support market management systems as well as other external systems (e.g.,
enterprise resource planning, etc.). When integrating the above systems, it is important to specify not
only what data is exchanged, but also how the data is exchanged. This is typically described by expected
sequences of messages among interacting systems and typically relies on some kind of enterprise
messaging infrastructure with required qualities of service (e.g., guaranteed delivery, speed of delivery,
traffic logging for audit trails, security, etc.) – especially important for the case of business to business
(B2B) exchanges. It is also usual practice to provide a standard envelope for the payloads that can then
be exchanged by virtually any transport. A full description of the standard envelop and the various
messaging infrastructures that could be used are described in the IEC 61968-100 standard.
Now, we see the tendency for transmission utilities needing to integrate their enterprise systems and
they are taking advantage of the standard canonical CIM model and experience from the distribution
world. The inverse is also true, i.e., larger distribution utilities see the advantage in leveraging
distribution network models within many of their business processes and they are actively taking
advantage of the canonical CIM model and experience from the transmission world.
The following sections will show how the canonical CIM and profiling techniques can be used to define
data exchanges and provide a framework to integrate various enterprise systems in the electrical
industry.
The canonical model
The CIM canonical model is represented in Unified Modeling Language (UML) diagrams. There are 3
base packages contained in the canonical model:
1. IEC61970 – contains the base power system model including all base domain data types. These
classes and attributes are used by the other 2 packages as needed to fully specify the power
system models used by their domains.
2. IEC61968 – contains the classes and attributes used to model the distribution system and the
operational systems within the utility. These systems include the CIS, OMS, DMS, GIS, AMI,
MDM, etc.
3. IEC62325 – contains the classes and attributes used to model the market systems for the North
American and European style markets. These systems include the Day Ahead and Real-time
Markets.
Each package contains a set of objects/classes that describes things in the real world. An object or class
is a noun or thing that is owned or operated by an entity. An object or class is defined in terms of
attributes and relationships (associations both within and between other packages). A class attribute
describes significant aspects about the class such as the rating or resistance. Associations connect
classes and are assigned a role that describes the relationship in each direction. A single class in the
canonical CIM can have multiple relationships, but most relationships in the CIM simply carry the
referenced class name as the role.
Besides the packages and classes, there are a specific set of concepts that are also expressed in the UML
symbols:


Inheritance/Specialization
Simple association or relationship
The rules and conventions for naming of packages, classes, attributes, associations and data types are
fully defined in the CIM Model Managers Guide, an IEC Technical Report (IEC6xxxx-xxx).
Inheritance/Specialization
In UML, an arrow with an enclosed arrowhead is used to represent both inheritance and specialization.
An example of this symbol is shown between the Equipment class and the PowerSystemResource class
in Figure 2 below. In the figure, the equipment class inherits from the PowerSystemResource class and
therefore “inherites” all the attributes and associations of the PowerSystemResource or any classes that
are in that lineage. The equipment class is also a specialization of the PowerSystemResource class. In
that same figure, ConductingEquipment is a specialization of the Equipment class.
Simple Association/Relationship
A simple association is shown in UML as a single line with no arrowhead on either end. Each association
has a role name and a multiplicity. The multiplicity defines how many of the opposite class can be
associated to the far end. For example, if you have 0..n TapChangers that have an association to 0..1
RegulationSchedules, it means a tap changer can have 0 or 1 regulation schedules or 0 or 1 regulation
schedules can apply to 0 or many tap changers.
Local non-(IEC) standard extensions
Most implementations of the CIM include extensions based on the specific needs of the utility.
Extensions may be implemented in several ways but the recommended method is to generate a specific
package and sub-class the new classes as needed. A full explanation of how to implement non-standard
extensions is provided in the CIM Model Managers Guide.
CIM profiles for data exchanges
Overview
In this section we take a closer look at CIM profiles, how they are created and some of the different
capabilities and uses of profiles. Profiles describe the payload part of exchanges as might be exchanged
in files or as the payload section of message based exchanges described in IEC61968-100. The reason
for profiling is to naturally impart a degree of consistency and uniformity that enables development of
individual implementations but additionally, and most importantly, enhances and streamlines system
data integration activities.
CIM profiles are descriptions of a restricted part of the overarching CIM canonical model which are
relevant to a particular implementation such as an exchange. Profiles and the process of profiling are
performed in the schema. The end result of profiling is normally a concrete schema governing an
implementation such as an XSD or RDFS (RDF schema) that IT professionals can use to implement,
validate, or otherwise assist in the actual exchange of instance data supporting a business process.
CIM Canoncial Model
(UML)
Derived From
Profile
(OWL, UML, …)
Generates To
Profile Schema
(e.g. XSD, RDFS, … )
Conforms To
Instance Data
(XML, RDF/XML …)
FIGURE 1 PROFILE RELATIONSHIPS
The relationships of the canonical model, profile, schema, and instance data are shown in Figure 1. We
say a particular profile “is derived from” the canonical model from which it is a restriction. Each
element of the profile in turn “is derived from” a specific part of the canonical model and hence derives
a semantic.
Several CIM specific tools are available to help define the profile and to generate standard schema
artefacts.1 The IEC 62361-100 “CIM Profiles to XML Schema Mapping” standard defines how profiles
should map into XSD and similarly the IEC 61970-501 describes how RDFS (RDF Schema) is produced
from a profile definition. IT professionals can then leverage the standard IT schema artefacts in
implementations that manage instance data within business processes.
Examples
In its simplest form a profile is a selection of the specific parts of interest from the complete canonical
model.
CIM Canonical Model
EndDevices
0..*
UsagePoint
0..1
EndDevice
+ critical : Boolean
+ initialCondition : String
+ initialLossOfLife : PerCent
+ lotNumber : String
+ purchasePrice : Money
+ serialNumber : String
+ type : String
+ utcNumber : String
+ amrSystem : String
+ installCode : String
+ isPan : Boolean
+ isVirtual : Boolean
+ timeZoneOffset : Minutes
IdentifiedObject
+ mRID : String
+ name : String
+ description : String
PowerSystemResource
Equipments
0..*
UsagePoint
+ amiBillingReady : AmiBillingReadyKind
+ checkingBilling : Boolean
+ connectionState : UsagePointConnectedKind
+ estimatedLoad : CurrentFlow
+ grounded : Boolean
+ isSdp : Boolean
+ isVirtual : Boolean
+ minimalUsageExpected : Boolean
+ nominalServiceVoltage : Voltage
+ outageRegion : String
+ phaseCode : PhaseCode
+ ratedCurrent : CurrentFlow
+ ratedPower : ActrivePower
+ readCycle : String
+ serviceDeliveryRemark : String
+ servicePriority : String
ConnectivityNode
0..1
Equipment
+ aggregate : Boolean
+ normallyInService : Boolean
TopologicalNode
TopologicalNode
0..1
ConductingEquipment
0..1
UsagePoints
0..*
ConductingEquipment
Terminals
0..*
Conductor
+ length : Length
UsagePoints
UsagePointLocation 0..*
0..1
UsagePointLocation
+ direction : String
+ geoInfoReference : String
+ type : String
+ mainAddress : StreetAddress
+ accessMethod : String
+ remark : String
+ siteAccessProfile : String
ConnectivityNode
Switch
+ normalOpen : Boolean
+ open : Boolean
+ ratedCurrent : CurrentFlow
+ retained : Boolean
+ switchOnCount : Integer
+ switchOnDate : DateTime
Terminals
0..*
Terminals
0..*
Terminal
+ connected : Boolean
+ sequenceNumber : Integer
+ phases : PhaseCode
ACLineSegment
+ b0ch : Susceptance
+ bch : Susceptance
+ g0ch : Conductance
+ gch : Conductance
+ r : Resistance
+ r0 : Resistance
+ x : Reactance
+ x0 : Reactance
EnergyConsumer
+ customerCount : Integer
+ grounded : Boolean
+ p : ActivePower
+ pfixed : ActivePower
+ pfixedPct : PerCent
+ q : ActivePower
+ qfixed : ActivePower
+ qfixedPct : PerCent
FIGURE 2 SUBSET OF CIM CANONICAL MODEL
1
Specific tools include CIMTool (www.CIMTool.org), Sparx Enterprise Architect Release 12,
CIMContextor (www.cimug.org).
In Figure 2, we have a subset of the complete CIM Canonical model looking at a small section of the UML
covering the functional and metering components. Here the model inheritance tree is shown along with
all of the attributes2. The attributes cover a number of different applications of the data that are defined
as multiple profiles.
The connectivity information for node-breaker and bus-branch models are shown in the upper right of
Figure 2. Each ConductingEquipment has a number of Terminals corresponding to the number physical
connection points at the ConductingEquipment. In a node-breaker model, the connections are described
by ConnectivityNodes and the Terminals refer to the ConnectivityNodes where they are connected. As
closed Breakers or Disconnectors have zero impedance a network model builder (also called topology
processor) removes and replaces them with a power flow buse connecting all injections and non-zero
impedance elements. The TopologicalNode represents the power flow busses in canonical CIM and the
Terminal also has a reference to TopologicalNode.
Node-breaker example from IEC 61970-301 Figure 10
SS2
SS2
400
400 KV
KV
SS1-SS2
SS1-SS2
BB1
BB1
Volts
(KV)
P1
(MW)
CN5
P2
(MW)
CN4
BR1
BR1
CN3
Cable1
CN2
Cable2
CN1
Cable3
BR3
BR3
DC2
SS1
SS1
CN6
Explanations
Terminal
CNx ConnectivityNode
TPx TopologicalNode
BRx Breaker
BBx BusbarSection
SSx Substation
xKV Voltagelevel
Tx PowerTransformer
SSx-SSy Line
Measurement
CN8
T1
Resulting bus TopologicalNode x (TPx)
in substation SS2 voltage level 400KV
after removal of closed switches
BR3, DC2 and BR1. TPx contain
ConnectivityNodes that has been
reduced i.e. CN6, CN5, CN4, CN3
SS4
SS4
CN7
110KV
110KV
BB1
TPx
Cable1
T1
FIGURE 3 EXAMPLE COMPUTATION OF A POWER FLOW BUS
Figure 3 shows how the Breakers/Disconnectors BR3, DC2 and BR1 as well as ConnectivityNodes CN6,
CN5, CN4 and CN3 are replaced by the power flow bus TopologicalNode TPx. TopologicalNode TPx
connect the equipment BusbarSection BB1 (where there is a voltage Measurement), PowerTransformer
T1 and ACLineSegment Cable1.
Node-breaker and bus-branch models can be easily combined by converting bus-branch
ToplogicalNodes into ConnectivityNodes and then merging the two.
2
The EndDevice and Terminal inheritance trees have been reduced to improve clarity, but all
attributes have been retained
Bus-Branch Profile
EnergyConsumer
+ mRID : String
+ name : String
+ p : ActivePower
+ q : ActivePower
ACLineSegment
+ mRID : String
+ name : String
+ length : Length
+ bch : Susceptance
+ gch : Conductance
+ r : Resistance
+ x : Reactance
ConductingEquipment
1
TopologicalNode
+ mRID : String
+ name : String
TopologicalNode
1
Terminals
1
Terminals
2
Terminals
1..*
Terminal
+ mRID : String
+ name : String
+ connected : Boolean
+ sequenceNumber : Integer
+ phases : PhaseCode
ConductingEquipment
1
FIGURE 4 SUBSET FOR BUS-BRANCH PROFILE
In Figure 4 we can see a subset of this canonical model in a small Bus-Branch profile. Four of the classes
from the original canonical model have been used with a subset of attributes from each. The
inheritance has been collapsed and the mRID and name attribute from IdentifiedObject have been
retained in the four classes. EnergyConsumer retains only the p and q attributes from the canonical
model class and all other attributes have been omitted from the profile. The ACLineSegment class
retains only the basic attributes required for simple power flow with the zero-sequence attributes from
the canonical model discarded for this profile.
At the Terminal level we retain the link to TopologicalNode as this is the CIM class for representing a
computed bus in a bus-branch representation of a model. The ConnectivityNode association is not
retained as this is used for node-switch models and is not required for our bus-branch profile. All
association multiplicities have been tightened so they are no longer optional. For some associations the
minimum and maximum multiplicities are the same, so the EnergyConsumer must have one Terminal
association while the ACLineSegment must now have two. Other classes have a restricted minimum and
unrestricted maximum, so the TopologicalNode must have at least 1 Terminal. The direction of the
association is also defined at the profile such that an implementation knows which side of the
association should be serialised.
Node-Switch Profile
EnergyConsumer
+ mRID : String
+ name : String
+ p : ActivePower
+ q : ActivePower
Switch
+ mRID : String
+ name : String
+ normalOpen : Boolean
+ open : Boolean
+ retained : Boolean
ConnectivityNode
+ mRID : String
+ name : String
ConductingEquipment
1
ConnectivityNode
1
Terminals
1
Terminals
2
ConductingEquipment
1
Terminals
Terminals
1..*
Terminal
+ mRID : String
+ name : String
+ connected : Boolean
+ sequenceNumber : Integer
+ phases : PhaseCode
2
ACLineSegment
+ mRID : String
+ name : String
+ length : Length
+ b0ch : Susceptance
+ bch : Susceptance
+ g0ch : Conductance
+ gch : Conductance
+ r : Resistance
+ r0 : Resistance
+ x : Reactance
+ x0 : Reactance
ConductingEquipment
1
FIGURE 5 SUBSET FOR NODE-SWITCH PROFILE
A second profile is shown in Figure 5 that is similar to that of the Bus-Branch profile, re-using 3 of the 4
classes with the addition of the Switch and ConnectivityNode. While the Terminal and EnergyConsumer
class attributes are the same, the ACLineSegment also includes the zero-sequence attributes, and the
Switch class from the canonical model is included with a subset of its attributes. In this profile, the
Terminal-ConnectivityNode association is used rather than the Terminal-TopologicalNode, requiring the
inclusion of the ConnectivityNode class and the corresponding relationship to Terminal and the removal
of the TopologicalNode.
End Device Profile
EndDevice
+ serialNumber : String
+ type : String
+ amrSystem : String
+ installCode : String
+ isPan : Boolean
EndDevices
1..*
UsagePoint
1
UsagePoint
+ mRID : String
+ phaseCode : PhaseCode
+ ratedPower : ActrivePower
UsagePointLocation
0..1
UsagePoints
0..*
Equipments
1
EnergyConsumer
+ mRID : String
+ customerCount : Integer
+ grounded : Boolean
+ p : ActivePower
+ q : ActivePower
FIGURE 6 END DEVICE PROFILE EXAMPLE
Moving outside of the functional model exchange, a simple End Device Profile example is shown in
Figure 6. This uses the EndDevice and UsagePoint classes with a small subset of their attributes. The
EnergyConsumer class is re-used with some additional attributes added from the canonical model. The
general UsagePoint-Equipments relationship has been restricted to only apply to EnergyConsumer (a
subclass of Equipment) and, as with the other profiles, the multiplicities have all been restricted and the
direction defined.
How IEC uses CIM profiling
The IEC has standardized certain profiles using selected technologies and different options within the
flexibility of the profiling process. These techniques are available for any organization using CIM
standards and are often employed where specific business processes need exchange implementations
that have not been standardized and may include local CIM canonical model extensions as discussed in
the CIM modelling guide.
Tables 1, 2 and 3 below show the relevant IEC and W3C standards involved in profiling. These standards
describe the domain models and the companion profiling standards that have been developed to date.
It is anticipated that additional standards will be developed as new use cases or requirements are
defined.
Type of Standard
CIM Canonical Model
CIM Canonical Model
Profile Standards
IEC 61970 Standards for Transmission
IEC 61970-301
IEC 61970-302
IEC 61970-4xx Profile
(the CPSM Profile is IEC61970-452)
IT Schema
IEC 61970-501
Instance Data
IEC 61970-552
Type of Standard
CIM Canonical Model
IEC 61968 Standards for Distribution
IEC 61968-11
Profile Standards
IEC 61968-3 through IEC 61968-14
(the Metering and Control Profile
standard is IEC 61968-9)
IT Schema
W3C XML Schema
IEC 62361-100
IEC 61968-100
Description
Base Power System Model
Base Dynamics Model
One or more companion
standards that define a profile
based on a use case
W3C RDF Reduced Schema
Describes how the RDF
Reduced Schema is produced
and used
W3C RDF XML as described by
RDF Schema. Describes how
the RDF XML is produced.
This is also known as the
payload.
Description
Base Distribution Operations
Model
One or more companion
standards that define a set of
messaging profiles based on
an operational system and its
use cases
The W3C XML Schema
standard describes how the
XML Schema (XSD) is
Instance Data
W3C XML
Type of Standard
CIM Canonical Model
Profile Standards
IEC 62325 Standards for Markets
IEC 62325-301
IEC 62325-305
IEC 62325-450
IEC 62325-452
IT Schema
W3C XML Schema
IEC 62361-100
Instance Data
W3C XML
produced and used.
The IEC62361-100 companion
standard describes the XSD to
XML mapping that is required
for the CIM XML message
payload.
The IEC 61968-100 companion
standard describes the
Message Envelop which
contains the Header and the
Payload.
The W3C XML standard
describes the XML format.
Description
Base Market Model
One or more companion
standards that provide the
profiling guidelines (IEC62325305 ad IEC62325-450) or
define a profile based on a use
case (IEC62325-452)
The W3C XML Schema
standard describes how the
XML Schema (XSD) is
produced and used.
The IEC62361-100 companion
standard describes the XSD to
XML mapping that is required
for the CIM XML message
payload.
The W3C XML standard
describes the XML format.
Profiles can be derived from any part of the canonical model from any working group and, in the case of
project implementations requiring it, from local CIM extensions.
By design, the CIM profiling practice allows the same information to be exchanged in multiple
technologies, though in practice this does not typically occur. It is common for profiles to make
references to CIM data exchanged in different technologies, so the best technology choice can be made
for each business exchange.
Payload serialization level
Previous sections have addressed the canonical CIM and profile derivation from it by means of
restrictions. This section addresses the syntactic aspects of profiles and considerations for selecting a
syntax.
At present, standard CIM profiles get translated into one of two distinct flavours, both based on W3C
XML syntax, as graphically illustrated in Figure (A) for RDF Schema or RDFS and Figure 7(B) for XML
Schema or XSD.
(a)
(b)
FIGURE 7 – SAMPLE EXTRACT FROM (A) RDFS-BASED AND (B) XSD-BASED PROFILE.
The very first CIM payload type was defined in 1999 using W3C RDF Schema (RDFS) and the payload
instance data was thus serialised as a special dialect of XML, called RDF. The RDFS representation of a
profile has been defined in IEC 61970-501, and the instance data format, or the payload serialisation
format compliant to that schema has been called CIMXML and defined in IEC 61970-552. The subset of
RDFS used for some CIM profiles has been defined in such a way that the instance data expressed in
RDF, (Figure (A)) looks very flat and leverages the file-scope uniqueness of data as defined by that
syntax through RDF identifiers. In the profile (Figure Error! Reference source not found.(A)), this
corresponds to the attribute ‘ref’ (blue circle) and in the data file (Figure a) to the value in rdf:ID. To
ensure that there is no nesting at all, at the previous step (profile definition), the user is supposed to
apply shallow relationships (ref’s) to objects, which will preserve the flatness of the data.
RDFS based profiles are widely used for bulk network data model exchanges, for either full models or
the increments thereof. The syntax in itself is simple and the language allows the definition of ontologies
and reason on them. On the challenging side, the tooling support for validation, editing and parsing is
somewhat limited and may have a steep learning curve.
With the need of utility organisations to exchange data among heterogeneous systems and often
without the need for network models, the second flavour of syntax for payload types emerged as a
natural choice well suited for enterprise integration: “vanilla” XML that validates against the W3C XML
Schema (also referred to as XSD). The translation of CIM profiles into the XSD syntax is defined in IEC
62361-100 and is widely used for standard as well as for custom profiles. This syntax is the mainstream
integration technology with a myriad of tools supporting its development. It is well understood by both
application developers and integrators and is an integral part of web-enabled technologies. The profiles
defined with the XSD syntax in mind have no limitation in structure and are indeed often reflecting the
“navigation path” through relationships from the canonical CIM model. A graphical example is given in
Figure (B), with the red rectangle. It is possible to use the “shallow” references as in RDFS based profiles
(blue circle); however, there is no XSD native counterpart to RDF identifiers. Payloads may use CIM mRID
for identification but since distribution normally requires multiple names for a specific device, a battery
of name-related classes was added in base CIM15 to support object registries. XSD syntax also allows
multiple profiles for a single type (e.g., a street address with only street name, street number and postal
code; and a street address with all the available descriptors); defined locally or globally. Finally, the work
is in progress to support modularity of payload types by enabling the inclusion of a “profile snippet” into
multiple profiles. A sample instance data that may comply to an XSD-based profile is shown in Figure
(B).
…
<cim:Line rdf:ID="_4d03f2b7-ee96-4357-9d93-49e94b9ce6e9">
<cim:IdentifiedObject.name>container of L1230814041
</cim:IdentifiedObject.name>
<cim:Line.Region rdf:resource="#_c1d5bfc88f8011e08e4d00247eb1f55e"/>
</cim:Line>
<cim:BaseVoltage rdf:ID="_49bc162b-c206-40f7-acfb-051973aafe74">
<cim:BaseVoltage.nominalVoltage>10.50 </cim:BaseVoltage.nominalVoltage>
<cim:IdentifiedObject.description>Base Voltage
Level</cim:IdentifiedObject.description>
<cim:IdentifiedObject.name>10.50 kV</cim:IdentifiedObject.name>
</cim:BaseVoltage>
<cim:ACLineSegment rdf:ID="_49bc162b-c206-40f7-acfb-051973aafe74">
<cim:IdentifiedObject.name>L1230814041 </cim:IdentifiedObject.name>
<cim:Equipment.EquipmentContainer rdf:resource="#_4d03f2b7-ee96-4357-9d9349e94b9ce6e9"/>
<cim:ACLineSegment.r>0.1</cim:ACLineSegment.r>
<cim:ACLineSegment.x>0.1</cim:ACLineSegment.x>
<cim:ConductingEquipment.BaseVoltage rdf:resource="#_63893f24-5b4e-407c9a1e-4ff71121f33c"/>
…
</cim:ACLineSegment>
…
<m:Switches xsi:schemaLocation="http://iec.ch/TC57/2012/Switches#
Switches.xsd" xmlns:m="http://iec.ch/TC57/2012/Switches#"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<m:Switch>
<m:mRID>b9cd8d2a-56a2-45e3-89d0-caaabb9e2985 </m:mRID>
<m:normalOpen>false </m:normalOpen>
</m:Switch>
<m:Switch>
<m:mRID>567fdc86-0ccd-4a96-a318-bdc1a3015643 </m:mRID>
<m:normalOpen>true </m:normalOpen>
</m:Switch>
</m:Switches>
FIGURE 8 – SAMPLE (A) RDF AND (B) XML SYNTAX FOR CIM-BASED DATA.
Due to its widespread usage in the industry, the majority of new XSD based profiles for the standard CIM
are defined using XSD syntax, in particular those that support processes outside network model
exchanges. The syntax is equally well suited for configuration (“static” / bulk) and for operation
(“dynamic” / on-line) data exchanges, as illustrated with metering profiles from IEC 61968-9. On the
challenging side, there is at present no native mechanism for referencing objects and referencing may
be exclusively through dedicated naming classes.
Note that in theory, a profile defined for use with RDFS syntax can also be expressed with XSD syntax;
the other way round is possible only in a special case where the profile gets defined as if it were for
RDFS syntax, i.e., flat, with exclusive use of references.
Messaging and the 61968-100 WS and XSD structures
Once the message profile standards were generated it became necessary to define how these messages
would be implemented and integrated into the utility enterprise. While the existing XSD message
profiles were complete, these standards lacked the detailed information required to apply these
messages in the enterprise integration. To address this issue, the IEC 61968-100 standard was
developed. This standard defines a common message envelope composed of the following interface
components:



the content (or payload) of data exchanges among the actors
the contents of the header and optional request/reply constructs
definition of the transport used in the exchange
Once we have defined these components and how they will be implemented, we can specify concrete
data exchange payloads and all actors concerned with any given payload can progress in parallel and
independently of each other. They can also implement and test their local applications independently
as long as everybody programs to the agreed interfaces.
To allow for this level of flexibility, it is best to adopt an interface specification whose technologies are
independent of the hardware platform, operating system or programming language. This is the
approach also recommended and followed by utility enterprise integration standards such as IEC 61968.
In the section “Anatomy of an interface”, we will dissect a message derived from one such sample
interface.
Anatomy of an interface
We will analyze a message compliant with an interface that has the properties discussed above. The left
side of Figure 7 shows the general approach to defining communication interfaces by using
encapsulation or nesting. Those familiar with the OSI reference model for communication protocols will
recognize the idea: the object of the exchange (payload) is nested deepest and wrapped into some kind
of envelope. That envelope then becomes the object of exchange (payload) one level up and is again
wrapped into another kind of envelope. We have denoted three levels in our example:
– L1, the first level, that we will call domain interface level (Message payload);
– L2, the second level, that we will call message interface level (Message envelope); and,
– L3, the third level, that we will refer to as transport interface level (Transport message).
The fact that we can clearly separate the levels means that we can independently develop and test
“real” software at each level, while “mocking” the functionality of the other levels. This is an important
aspect of any project execution or implementation effort.
L3:
Transport
message
L2:
Message
envelope
L1:
Domain
data
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
… …
</soapenv:Header>
SOAP
Header
<soapenv:Body>
<msg:CreateEndDeviceControls>
<msg:Header>
<msg:Verb>?</msg:Verb>
<msg:Noun>?</msg:Noun>
<!--Optional:-->
… …
</msg:Header>
<!--Optional:-->
<msg:Request>
<!--Optional:-->
<msg:StartTime>?</msg:StartTime>
<!--Optional:-->
<msg:EndTime>?</msg:EndTime>
<!--Zero or more repetitions:-->
<msg:ID>?</msg:ID>
</msg:Request>
<!--Optional:-->
<msg:Payload>
<edc:EndDeviceControls>
<edc:EndDeviceControl>
<!--Optional:-->
<edc:mRID>?</edc:mRID>
<edc:description>?</edc: description>
<edc: drProgramLevel>?</edc:drProgramLevel>
… …
</edc:EndDeviceControl>
</edc:EndDeviceControls>
<msg:Format>?</msg:Format>
</msg:Payload>
</msg:CreateEndDeviceControls>
</soapenv:Body>
</soapenv:Envelope>
Message
envelope
SOAP
Body
Domain
data
FIGURE 7 – SAMPLE SOAP MESSAGE
Let us now look at the right hand side of Figure 10. This shows a set of very concrete technology choices.
– The domain interface level L1 reflects the payload whose type is called EndDeviceControls and it has
been derived from the canonical distribution CIM (defined in IEC 61968-9 and IEC 61968-11,
respectively), and is compliant with the W3C XML Schema format. That specific domain payload allows
an actor to send control actions to end devices (such as smart meters) by providing the identity of the
end device and the program level for demand response.
– The message interface level L2 reflects the message envelope expressed also in W3C XML Schema
format as defined in IEC 61968-100. This is the level where we need to provide extra information that is
required by the software that handles message exchanges on a bus and that does not need to “unpack”
the payload, but just to route it to the correct receiving applications. Typical information that must be
specified are the verb and the noun – telling what needs to be done (verb) with the content of the
payload (noun).
– Finally, the transport interface level L3 reflects the standard SOAP message (often meant when one
says Web Service), with the SOAP header and the whole of level L2 encapsulated in the SOAP message
body.
There may be cases where a single actor needs to exchange some of the messages within a single
organization and in a simplified way, without need for platform independence and overhead of, e.g. a
Web Service (and its SOAP implementation). To support this kind of exchange, we could simply skip the
transport interface level L3 and pass around the message envelope of level L2 with its containing
payload in level L1 by using a JMS broker (in a standard way, as in IEC 61968-100) or some other means
for message exchange.
The example above has used the payload (L1) in W3C XML format. Given the structure of the envelope
(L2), it allows embedding domain payloads in literally any format, including W3C RDF format.
Alternately, for certain data exchange scenarios, simple file exchange may be sufficient in which case the
domain payload (L1) would simply be the file to exchange; in this case, some non-standard preconfiguration needs to take place ( e.g. to state the URI of the file on a file system).
Interoperability
Overview
The CIM standard was always intended to enable interoperability. Originally it was interoperability
between applications that was expanded to interoperability between systems. Another expansion of
scope was from applications for network analysis to work processes and energy markets within a utility.
The network analysis has also grown from power flow applications to short circuit analysis, dynamics
analysis etc. Yet another expansion is support for network display layout, geographical locations, asset
information, asset health etc.
This expansion is ongoing and extensions are still added. In the EU, the adoption of the common energy
market, increased renewable production and reduction of CO2 emissions resulted in accelerated use of
the CIM. When ENTSO-E started to use the CIM in its Common Grid Model Exchange Standard (CGMES),
further CIM extentions were discovered.
The central architectural idea behind CIM is to describe data semantics such that exchanged data
objects can be traced back to the canonical CIM semantics. CIM supports this by its capability to
describe relationships between objects:


Equipment in the functional model (PowerSystemResurce CIM class) relate to physical
equipment in the asset model (Asset CIM class). This makes it possible to answer a question like;
what is the serial number and actual short circuit current (asset model) of the breaker I am
currently using in position Q1 (functional model) in my substation?
Registered resources in the market model relate to generating units in the functional model.
This is useful when a production schedule from the market is validated with Congestion Forecast
(CF) (e.g. in intra-day CF / day-ahead CF) or used in a Security Constrained Unit Commitment
(SCUC).
These are just a few examples of many relationships between the different parts of the CIM.
Relationships like this enable cross navigation between data exchanged according to different profiles.
Two use cases building on the above examples are:


A Supervisory Control and Data Acquisition (SCADA) system typically records how many times a
breaker operates. Knowing which breaker in the asset registry is used in the circuit monitored by
SCADA can then be used to tell the asset registry how many times the breaker has been
operated. This is needed to determine breaker wear.
A market system typically deals with net production from registered units at the plant level.
Knowing what functional generating units corresponds to a registered unit makes it possible to
map registered unit net production schedules on functional unit gross production also
considering outages and de-ratings. This mapping is needed for Congestion Forecast (CF) and
Security Constrained Unit Commitment (SCUC).
Relationships between objects require a concise global identification mechanism such that objects are
uniquely referenced and not mixed with each other. Human generated names have the drawback that
different objects are likely to have the same name, e.g. the substation name “Airport” may exist in many
places. Additionally names may need to change over time, but unique identification must be persistent.
Hierarchical naming is a usual way to get more precision as with postal addresses, internet addresses
etc. But naming schemes like this require authority support and administration for its maintenance. In
the CIM, the Master Resource ID (mRID) identification scheme is recommended for object identification.
For interoperability to be achieved data objects that need to be referenced have to be kept persistent by
the receiver of the data and they must have unique, persistent identification. In the CIM, the class
IdentifiedObject has been defined specifically as a superclass for any class that needs to be persistent
after it is initially exchanged. The master resource identifier attribute, “mRID,” of IdentifiedObject is
included in the CIM to provide a common method for persistent, unique identification. When used in a
data exchange the “mRID” is required to be unique within the context of the exchange. Global
uniqueness is achieved by using Universally Unique Identifiers (UUIDs), which is strongly recommended,
but not required.
In an ideal data exchange, UUIDs would be used as the mRIDs to uniquely identify all objects, but this
cannot always be achieved when working with existing applications that already have other established
methods of unique identification. In this case CIM naming attributes and classes such as the “name”
attribute on “IdentifiedObject” or the alternate name classes “Name,” “NameType,” and
“NameTypeAuthority” can be leveraged.
As mentioned above CIM has grown considerably since its creation. This has resulted in a reputation
that CIM is continuously changing which is actually true with respect to all extensions. The early parts
however have been stable, in particular in recent years. When a new model is added to the CIM it hasn’t
typically been implemented yet. As implementations appear, issues are normally discovered and
corrections are needed. Hence newer parts of the CIM are initially less stable; however, as
interoperability tests vet the CIM standards and usage increases, the model stabilizes. As the usage of
CIM has increased, the standards groups have attempted to initiate extensions that would ensure the
impact on existing implementations is minimized.
Data structuring / schema / semantic model
The CIM canonical model (see The canonical model) includes a very large number of classes and each
class has associations describing relationships with other classes. Most classes also have attributes
describing characteristics of the class. Any given work flow or data exchange will use only a fraction of
the classes, associations and attributes defined in the CIM. Profiles (see CIM profiles for data
exchanges) are defined to specify the specific subset of classes, associations and attributes from the CIM
that are used for a particular data exchange. It is these profiles that are tested in the Interoperability
tests. The tests ensure the exchange content is complete and that the participating actors can exchange
the profile and interpret it properly. For example, in a CPSM test, the instance data corresponding to
the profile content is exchanged and the participants are then required to use that data to solve a Power
Flow. This proves the participant is able to accept the data and interpret properly.
Each profile will result in a set of tests that will validate the profile contents and prove that the test
participants can accurately receive and act on the data. The exact tests will depend on the profile and
the use cases that were originally used to generate the profile.
Data composition by receiving systems
One of the main objectives of the CIM is to support utility business processes which normally require the
assembly or composition of data from a number of sources. These sources may use different exchange
technologies, different (but related) schema or structure, and different content which is often
referencing content from other sources.
Schema partitioning
Profile EQ
Class1
MRID
attr1
attr2
Class3
Class2
attr3
attr1
attr2
attr3
attr4
attr1
attr2
01
02
03
04
05
Instances from source 2
07
Instances from source 1
Instance partitioning
06
08
09
0a
0b
0c
0d
0e
0f
10
11
12
13
14
15
16
17
Profile TP
FIGURE 11 DATA PARTITIONING BY INSTANCE AND BY SCHEMA
As shown in Figure 11 by the vertical and horizontal axes, there are two main ways CIM data is
partitioned.
1) Partition by instance – e.g. by transmission operators or modeling authority
2) Partition by schema using profiles – e.g. by the kind of data: such as static network
equipment model (EQ) or topology data (TP)
TSO n
TSO 1
Outage
Coordinator
Network model part
Network model part
Approved Outages
Load Forecast
Day Ahead
Network Analysis
Load values
Figure 12 Business process consuming data from multiple sources
Figure 12 shows a business process (day ahead network analysis in this case) consuming data of
different forms from a number of sources, including multiple transmission system operator (TSO)
entities.
CIM
canonical
model
Legend
Conforms to
Derived From
Payload
exchange
Outage
Profile schema
Load Forecast
Profile schema
Profiling
process
Network Model
Profile schema
Outage Coordinator
Load Forecast
TSO 1
CIM
payload
TSO N
CIM
payload
CIM
payload
CIM
Payload
payload exchange
Day Ahead Network Analysis
FIGURE 8 BUSINESS PROCESS COMPOSING CIM DATA
Figure 8 shows how the exchanges of Figure 12 can be implemented using CIM. By considering all
exchanged data to be conforming to a common semantic model, we can describe how data from
different technologies, different sources, and different profiles will compose within a receiving system.
We expect the semantics and object identities to be valid across technologies such that, for example,
outages (exchanged by XSD based XML) could relate to the network model (exchanged by RDF oriented
CIM/XML). Additionally we may exchange both full models and incremental changes to be applied to
full model descriptions. Data from different sources and different profiles can link together given the
sources orchestrate consistent identities where such references are required.
At the most detailed level the data receiver may compose information by matching object identities,
typically and most conveniently by MRID when available. IEC does not standardize internals of business
process implementations, but the interface standards are designed such that a business process can
implement a consistent composed model of the various input standards. The following examples show
how this composition of various payloads functionally occurs at an object instance level.
payload 1
class A
MRID=1
attr1= X
payload 2
Receiver
unordered
class A
MRID=1
attr2=Y
class A
MRID=1
attr1=X
attr2=Y
FIGURE 9 COMPOSITION OF ATTRIBUTES ON AN OBJECT
Figure 14 shows an example of how a receiver with CIM data can compose new attributes on the same
business object instance. Such a case would be useful, for example, in combining powerflow equipment
model data for a generator (MRID=1) with dynamic simulation model data for the same generator from
another source.
payload 1
Receiver
class A
MRID=1
payload 2
Proxy
class A
MRID=1
class B
MRID=2
class A
MRID=1
unordered
class B
MRID=2
FIGURE 10 COMPOSITION OF REFERENCES AMONG OBJECTS
Figure 10 shows how a receiver can compose references across payloads. Typically the referenced
object (MRID=1) would be consumed from payload 1 before consuming a reference (payload 2), though
technically the payloads could be consume in any order.
Conclusion
When it was originally envisioned, the goal of the CIM was to provide interoperability between systems,
allow data exchanges to be easily defined and implemented and enable an enterprise architecture that
would shorten the time to integration. The extensive canonical model provided by the CIM provides the
common semantics that can be used to generate standard and custom profiles for use in data exchange
and enterprise integration. The CIM profiling approach makes organization of exchange payloads
consistent, where both producers and consumers agree upon meaning. But additionally, and perhaps
more importantly, the receiver has a clear understanding of how data from multiple sources, spanning
multiple profiles and exchange technologies, can be readily and unambiguously composed into a
cohesive model suitable for business analysis. As such, profiles and the profile methodology provide the
foundation to reach the goal. They support data exchange between applications or systems and provide
an integration framework to connect disparate systems into a complete enterprise architecture while
enabling full interoperability.
Definitions
The following table provides common terms and their definitions.
Term
Canonical CIM
Definition
This is an abstract model of domain or data exchange (our CIM UML).
Profile
This is a restriction of canonical CIM, a small subset of it as required for a
specific interface for external data exchanges. We use a profiling tool to
reduce canonical CIM to the desired content, and the tool produces a
schema that will govern the format of the instance data to be exchanged.
Payload
This is an instance of Profile according to a given syntax. We currently use
XML complying with RDFS or XSD.
Message
This is an instance of message envelope, e.g. Message.xsd (61968100),that includes one or more Payloads. It also contains the full context of
data exchange (verb, noun, etc.) to let the receiver know what to do with
the received payload.
Dataset
Model
Electrical network model
Base model
As built model
TBD
Data that describes an existing entity or thing.
A model or data describing an electrical network.
An electrical network model used as part of a case.
an electrical network model that corresponds to a constructed network
Case
Full model
Difference model or
Incremental model
complete set of inputs to a network analysis study case
A complete description of an electrical network model
TBD
Further Readings
– up to 6 items
CIM modelling guide
CIM Primer
A. deVos, October 2000, "Simplified RDF Syntax for Power System Model Exchange",
http://www.langdale.com.au/DAF/PSModelExchange.Pdf.
A. deVos, S. Widergren, J. Zhu, "XML for CIM Model Exchange", 22nd IEEE Int. Conf. On Power Industry
Computer Applications (PICA), Conference Proceedings, Sydney, Australia, May 2001, pp31- 37.
Authors
Lars-Ola Österlund is with ABB Enterprise Software, Västerås, Sweden.
Kurt Hunter is with Siemens Smart Grid, Minnetonka, MN, USA.
Kendall Demaree is with Alstom Grid, Inc., Redmond, WA, USA.
Margaret Goodrich is with Project Consultants, LLC, Shell Knob, MO, USA.
Alan McMorran is with Open Grid Systems Ltd., Glasgow, UK.
Tatjana Kostic is with ABB Corporate Research, Baden-Daettwil, Switzerland.
Download