CIM UG 2014 Diagram Layout.pdf
Transcript of CIM UG 2014 Diagram Layout.pdf
Model Driven Architectures and Eclipse
Technologies for the Power IndustryAlan McMorran B.Eng Ph.D
Open Grid SystemsOGO
CIM Diagram Layout
OO Open Grid Systems
IntroductionThe CIM is used widely for exchanging electrical network
data for transmission, planning and distribution
To aid the understanding of complex electrical models, engineers will use single-line diagrams and geographical
overviews
A great deal of effort (and cost) has often been required to build and then maintain these diagrams
The CIM Diagram Layout profile will enable users to define these diagrams in a CIM format with direct links
into the underlying CIM network data
2
Open Grid SystemsOGO
Exchanging Diagrams
3
OO Open Grid Systems
Synchronising ExchangesA number of systems exchange electrical network (Domain) data
Many of these systems also have graphical
interface
Users want to see the same single line diagram
layout from one system to the next
4
GIS System
Control Centre System
Planning System
Control Centre System
Substation Automation System Graphical Data Exchange
Domain Data Exchange
OO Open Grid Systems
Graphics vs LayoutThe key question is whether it is better to exchange the diagram as a graphic or layout data
The former would be graphical rendering data with links into the domain data, along with all information about icons, styles, colours etc.
The latter provides the coordinates for each component and an optional style reference
The receiving system then uses the domain data in combination with this layout data to generate the diagram
5
OO Open Grid Systems
Diagram Layout
The CIM Diagram Layout profile builds on the existing IEC61970-301 CIM model and adds classes for describing diagram layout
By building on the existing CIM UML model, the related serialisation technologies for Resource Document Framework (RDF) XML and XML Schema can also be utilised
Diagrams (including updates) can be exchanged along
with network data using the same serialisation format
6
OO Open Grid Systems
Diagram Layout Profile
The Diagram Layout Profile becomes another profile linked into the network profiles
For instance data each profile is a separate dataset (e.g. file) with dependencies
7
61970-451Profiles
61970-453Profile
61970-452Profile
61970-456Profiles
Discrete Measurement
Profile
State Variables
ProfileTopology
Profile
Equipment Model Profile
Diagram Layout Profile
Analog Measurement
Profile
OO Open Grid Systems
Multiple Uses
8
The Diagram Layout profile can be used in a number of existing exchanges
Any existing network data exchange for planning or operations can include single-line diagram layout data
This includes internal substation schematics and network overviews
Pseudo-geographical views can be generated from geographical data but maintained separately from the pure Geographical positions
CIM for Dynamics can represent dynamic block models
graphically using CIM Diagram Layout
OO Open Grid Systems
DistributionOperational (EMS)Planning
Modular Profiles
Equipment
Topology
State
Measuremen
Diagram
Geographica
Equipment
Topology
State
Equipment
Measuremen
Equipment
Measurement
Geographical
DiagramDiagram
9
OO Open Grid Systems
Operational (EMS) DistributionPlanning
Modular Profiles
Equipment
Topology
State
Measuremen
Diagram
Geographica
Equipment
Topology
State
Equipment
Measuremen
Equipment
Measurement
GeographicalDiagram
Diagram
9
Open Grid SystemsOGO
Diagram Layout UML
10
OO Open Grid Systems
Diagram Layout UML
11
+ drawingOrder: Integer
+ isPolygon: Boolean
+ offsetX: Float
+ offsetY: Float
+ rotation: AngleDegrees
DiagramObject
+ mRID: String
+ name: String
Core::IdentifiedObject
0..1
+ IdentifiedObject
+ DiagramObjects
0..*
+ sequenceNumber: Integer
+ xPosition: Float
+ yPosition: Float
+ zPosition: Float
DiagramObjectPoint+ DiagramObjectPoints
0..*
+ DiagramObject
1
+ orientation: OrientationKind
+ x1InitialView: Float
+ x2InitialView: Float
+ y1InitialView: Float
+ y2InitialView: Float
Diagram
0..1
+ Diagram
+ DiagramElements
0..*
+ drawingOrder: Integer
VisibilityLayer
+ VisibilityLayers 0..*
+ VisibileObjects
0..*
positivenegative
<<enumeration>>OrientationKind
+ text: String
TextDiagramObjectDiagramObjectGluePoint
+ DiagramObjectPoints
2..*
+ DiagramObjectGluePoint
0..1
DiagramObjectStyle
0..1
+ DiagramObjectStyle
+ StyledObjects
0..*
OO Open Grid Systems
Diagram Objects
12
+ drawingOrder: Integer
+ isPolygon: Boolean
+ offsetX: Float
+ offsetY: Float
+ rotation: AngleDegrees
DiagramObject
+ sequenceNumber: Integer
+ xPosition: Float
+ yPosition: Float
+ zPosition: Float
DiagramObjectPoint+ DiagramObjectPoints
0..*
+ DiagramObject
1
The basic construct is a DiagramObject that has 1 or more DiagramObjectPoints
OO Open Grid Systems
Link to the Domain
13
+ drawingOrder: Integer
+ isPolygon: Boolean
+ offsetX: Float
+ offsetY: Float
+ rotation: AngleDegrees
DiagramObject
+ mRID: String
+ name: String
Core::IdentifiedObject
0..1
+ IdentifiedObject
+ DiagramObjects
0..*
+ sequenceNumber: Integer
+ xPosition: Float
+ yPosition: Float
+ zPosition: Float
DiagramObjectPoint+ DiagramObjectPoints
0..*
+ DiagramObject
1
Domain data is anything that inherits from IdentifiedObject
This can be:Electrical components (breakers, line segments)Containment objects (substations, bays)Measurements from SCADA pointsDynamic modelling blocks
OO Open Grid Systems
Diagrams
14
+ drawingOrder: Integer
+ isPolygon: Boolean
+ offsetX: Float
+ offsetY: Float
+ rotation: AngleDegrees
DiagramObject
+ mRID: String
+ name: String
Core::IdentifiedObject
0..1
+ IdentifiedObject
+ DiagramObjects
0..*
+ sequenceNumber: Integer
+ xPosition: Float
+ yPosition: Float
+ zPosition: Float
DiagramObjectPoint+ DiagramObjectPoints
0..*
+ DiagramObject
1
+ orientation: OrientationKind
+ x1InitialView: Float
+ x2InitialView: Float
+ y1InitialView: Float
+ y2InitialView: Float
Diagram
0..1
+ Diagram
+ DiagramElements
0..*
A Diagram contains multiple DiagramObjects
An IdentifiedObject can have multiple DiagramObjects in multiple Diagrams
positivenegative
<<enumeration>>OrientationKind
OO Open Grid Systems
15
+ drawingOrder: Integer
+ isPolygon: Boolean
+ offsetX: Float
+ offsetY: Float
+ rotation: AngleDegrees
DiagramObject
+ mRID: String
+ name: String
Core::IdentifiedObject
0..1
+ IdentifiedObject
+ DiagramObjects
0..*
+ sequenceNumber: Integer
+ xPosition: Float
+ yPosition: Float
+ zPosition: Float
DiagramObjectPoint+ DiagramObjectPoints
0..*
+ DiagramObject
1
+ orientation: OrientationKind
+ x1InitialView: Float
+ x2InitialView: Float
+ y1InitialView: Float
+ y2InitialView: Float
Diagram
0..1
+ Diagram
+ DiagramElements
0..*
+ drawingOrder: Integer
VisibilityLayer
+ VisibilityLayers 0..*
+ VisibileObjects
0..*
positivenegative
<<enumeration>>OrientationKind
+ text: String
TextDiagramObjectDiagramObjectGluePoint
+ DiagramObjectPoints
2..*
+ DiagramObjectGluePoint
0..1
DiagramObjectStyle
0..1
+ DiagramObjectStyle
+ StyledObjects
0..*
Open Grid SystemsOGO
Diagram Layout ExampleIntegrating diagram layout and electrical model data
16
OO Open Grid Systems
BusbarSection
ACLineSegment
SynchronousMachine
Power Transformer
Breaker
Breaker
17
CIM Diagram Layout Example
OO Open Grid Systems
BusbarSection
ACLineSegment
SynchronousMachine
Power Transformer
Breaker
Bre
aker
x
y
DiagramObjectPoint
DiagramObject
19
OO Open Grid Systems
BusbarSection
ACLineSegment
SynchronousMachine
Power Transformer
Breaker
Bre
aker
x
y
DiagramObjectPoint
DiagramObject
19
OO Open Grid Systems
BusbarSection
ACLineSegment
SynchronousMachine
Power Transformer
Breaker
Bre
aker
x
y
DiagramObjectPoint
DiagramObject
19
OO Open Grid Systems
BusbarSection
ACLineSegment
SynchronousMachine
Power Transformer
Breaker
Bre
aker
x
y
DiagramObjectPoint
DiagramObject
<cim:Breaker rdf:ID="_B001"> <cim:IdentifiedObject.name>Breaker</cim:IdentifiedObject.name> </cim:Breaker> !<cim:DiagramObject rdf:ID="_D001"> <cim:DiagramObject.IdentifiedObject rdf:resource="#_B001"/> </cim:DiagramObject> !<cim:DiagramObjectPoint rdf:ID="_P001"> <cim:DiagramObjectPoint.xPosition>583</cim:DiagramObjectPoint.xPosition> <cim:DiagramObjectPoint.yPosition>493</cim:DiagramObject.yPosition> <cim:DiagramObjectPoint.DiagramObject rdf:resource="#_D001"/> </cim:DiagramObjectPoint>
19
OO Open Grid Systems
20
BusbarSection
ACLineSegment
SynchronousMachine
Power Transformer
Breaker
Bre
aker
x
y
DiagramObjectPoint
DiagramObject
<cim:BusbarSection rdf:ID="_BB001"> <cim:IdentifiedObject.name>BusbarSection</cim:IdentifiedObject.name> </cim:BusbarSection> !<cim:DiagramObject rdf:ID="_D002"> <cim:DiagramObject.IdentifiedObject rdf:resource="#_BB001"/> </cim:DiagramObject> !<cim:DiagramObjectPoint rdf:ID="_P002"> <cim:DiagramObjectPoint.xPosition>164</cim:DiagramObjectPoint.xPosition> <cim:DiagramObjectPoint.yPosition>79</cim:DiagramObject.yPosition> <cim:DiagramObjectPoint.sequenceNumber>1</cim:DiagramObject.sequenceNumber> <cim:DiagramObjectPoint.DiagramObject rdf:resource="#_D002"/> </cim:DiagramObjectPoint> !<cim:DiagramObjectPoint rdf:ID="_P003"> <cim:DiagramObjectPoint.xPosition>485</cim:DiagramObjectPoint.xPosition> <cim:DiagramObjectPoint.yPosition>79</cim:DiagramObject.yPosition> <cim:DiagramObjectPoint.sequenceNumber>2</cim:DiagramObject.sequenceNumber> <cim:DiagramObjectPoint.DiagramObject rdf:resource="#_D002"/> </cim:DiagramObjectPoint> !<cim:DiagramObjectPoint rdf:ID="_P004"> <cim:DiagramObjectPoint.xPosition>775</cim:DiagramObjectPoint.xPosition> <cim:DiagramObjectPoint.yPosition>79</cim:DiagramObject.yPosition> <cim:DiagramObjectPoint.sequenceNumber>3</cim:DiagramObject.sequenceNumber> <cim:DiagramObjectPoint.DiagramObject rdf:resource="#_D002"/> </cim:DiagramObjectPoint>
OO Open Grid Systems
BusbarSection
ACLineSegment
SynchronousMachine
Breaker
Bre
aker
Power Transformer
Terminal
Terminal
21
x
y
OO Open Grid Systems
BusbarSection
ACLineSegment
SynchronousMachine
Breaker
Bre
aker
Power Transformer
Terminal
Terminal
21
x
y
<cim:Breaker rdf:ID="_B001"> <cim:IdentifiedObject.name>Breaker</cim:IdentifiedObject.name> </cim:Breaker> !<cim:Terminal rdf:ID="_T001"> <cim:IdentifiedObject.name>Terminal</cim:IdentifiedObject.name> <cim:Terminal.ConductingEquipment rdf:resource="#_B001"/> </cim:BusbarSection> !<cim:DiagramObject rdf:ID="_D003"> <cim:DiagramObject.IdentifiedObject rdf:resource="#_T001"/> </cim:DiagramObject> !<cim:DiagramObjectPoint rdf:ID="_P005"> <cim:DiagramObjectPoint.xPosition>494</cim:DiagramObjectPoint.xPosition> <cim:DiagramObjectPoint.yPosition>507</cim:DiagramObject.yPosition> <cim:DiagramObjectPoint.sequenceNumber>1</cim:DiagramObject.sequenceNumber> <cim:DiagramObjectPoint.DiagramObject rdf:resource="#_D003"/> </cim:DiagramObjectPoint> !<cim:DiagramObjectPoint rdf:ID="_P006"> <cim:DiagramObjectPoint.xPosition>590</cim:DiagramObjectPoint.xPosition> <cim:DiagramObjectPoint.yPosition>507</cim:DiagramObject.yPosition> <cim:DiagramObjectPoint.sequenceNumber>2</cim:DiagramObject.sequenceNumber> <cim:DiagramObjectPoint.DiagramObject rdf:resource="#_D003"/> </cim:DiagramObjectPoint>
Open Grid SystemsOGO
Defining Graphical Styles
23
OO Open Grid Systems
Styling ObjectsThe Diagram Layout Profile does not seek to define how graphics are rendered, just the layout
The DiagramObjectStyle class is to allow exchanging parties to agree a set of style references that they can use to interpret the incoming data
But since the DiagramObjects are tied to a domain object, the receiver can base their rendering on the known state of the domain object
24
OO Open Grid Systems
Multiple DiagramObjectsStyles are useful if you have multiple DiagramObjects for one Domain Object
Here we have a single PowerTransformer which may have 4 Diagram Objects
Appropriate Style IDs against each let senders/receivers coordinate what is to be shown for each
25
LANG PriTrA
Style IDs
PrimaryWindingColoured
OO Open Grid Systems
Multiple DiagramObjectsStyles are useful if you have multiple DiagramObjects for one Domain Object
Here we have a single PowerTransformer which may have 4 Diagram Objects
Appropriate Style IDs against each let senders/receivers coordinate what is to be shown for each
25
LANG PriTrA
Style IDs
PrimaryWindingColouredSecondaryWindingColoured
OO Open Grid Systems
Multiple DiagramObjectsStyles are useful if you have multiple DiagramObjects for one Domain Object
Here we have a single PowerTransformer which may have 4 Diagram Objects
Appropriate Style IDs against each let senders/receivers coordinate what is to be shown for each
25
LANG PriTrA
Style IDs
PrimaryWindingColouredSecondaryWindingColouredTransformerLocalName
OO Open Grid Systems
Multiple DiagramObjectsStyles are useful if you have multiple DiagramObjects for one Domain Object
Here we have a single PowerTransformer which may have 4 Diagram Objects
Appropriate Style IDs against each let senders/receivers coordinate what is to be shown for each
25
LANG PriTrA
Style IDs
PrimaryWindingColouredSecondaryWindingColouredTransformerLocalNameTransformerTapChangerType
OO Open Grid Systems
Multiple DiagramObjectsStyles are useful if you have multiple DiagramObjects for one Domain Object
Here we have a single PowerTransformer which may have 4 Diagram Objects
Appropriate Style IDs against each let senders/receivers coordinate what is to be shown for each
25
LANG PriTrA
Style IDs
PrimaryWindingColouredSecondaryWindingColouredTransformerLocalNameTransformerTapChangerType
Open Grid SystemsOGO
Summary
26
OO Open Grid Systems
SummaryThe CIM Diagram Layout is not about exchanging diagrams as graphics, it is about layout
Systems can use their own icons, styles, colours etc. but the layout and placement of the components is the same
Using the CIM to describe this data allows it to be easily integrated with the network data and utilise existing interfaces and serialisation formats
The standard is flexible and can be used for different types of diagrams: e.g. single-line, geovisual and dynamic block models
27
Questions?