Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
3420 Hillview Avenue Palo Alto, CA 94304-1338 USA PO Box 10412 Palo Alto, CA 94303-0813 USA 800.313.3774 650.855.2121 askepri@epri.com www.epri.com
NOTE For further information about EPRI, call the EPRI Customer Assistance Center at 800.313.3774 or e-mail askepri@epri.com. Electric Power Research Institute, EPRI, and TOGETHERSHAPING THE FUTURE OF ELECTRICITY are registered service marks of the Electric Power Research Institute, Inc. Copyright 2011 Electric Power Research Institute, Inc. All rights reserved.
Acknowledgments
The following organizations, under contract to the Electric Power Research Institute (EPRI), prepared this report: EnerNex 620 Mabry Hood Road Suite 300 Knoxville, Tennessee 37932 Principal Investigators K. Stefferud B. Muschlitz Boreas Group 730 S. Elizabeth St. Denver, Colorado 80209 Principal Investigators R. Sarfi B. Boswell This report describes research sponsored by EPRI. EPRI would like to acknowledge the support of the following organizations: Consumers Energy American Electric Power Southern California Edison
This publication is a corporate document that should be cited in the literature in the following manner: Common Information Model On Demand Meter Read Interoperability Test Procedure: EPRI CIM Interoperability Test Procedures (ECITP) 2.03. EPRI, Palo Alto, CA: 2011. 1024444.
iii
Abstract
The Common Information Model (CIM) On Demand Meter Read Interoperability Test Procedure is one in a series of EPRI Interoperability Test Procedures (ETIPs) created by EPRI whose purpose is to thoroughly document the actors, interfaces, and test steps for the interoperability testing of specific parts of the International Electrotechnical Commission (IEC) Common Information Model (CIM) standard. The Test Procedures are initially being used for EPRI demonstration tests and are intended, over time, to form the basis of a set of CIM test procedures to be used by: Testing labs set up under a formal organizational framework for Smart Grid testing and certification, such as that called for by the Smart Grid Testing and Certification Committee (SGTCC) in its Interoperability Process Reference Manual (IPRM) whose goal is the formalized validation of the interoperability of combinations of vendor products Organizations sponsoring routine standards-validation CIM interoperability testing
The initial series of the Test Procedures covers several message sets related to the IEC 61868-9 (Meter Reading and Control) standard. This document covers test procedures related to on demand meter reading. Keywords Smart meters Common Information Model (CIM) Interoperability Test Procedures (Tips) Smart Grid Testing and Certification Committee (SGTCC)
Table of Contents
Section 1: Introduction ............................................1-1 Background ..................................................................... 1-1 Purpose of this Document .................................................. 1-3 Contents of this Document ................................................. 1-3 Section 2: References ..............................................2-1 Normative ....................................................................... 2-1 Informative ...................................................................... 2-1 Section 3: Test Overview .........................................3-1 CIM On-Demand Meter Read Interoperability Test ............... 3-1 Section 4: Test Steps and Results .............................4-1 Section 5: Test Technical Information .......................5-1 Test Set Up ...................................................................... 5-1 Test Invocation ................................................................. 5-1 Schedule Test ............................................................. 5-1 Execute Test ............................................................... 5-1 Test XSDs ........................................................................ 5-1 Test data ........................................................................ 5-2 1) GetMeterReadings .................................................. 5-2 2) ReplyMeterReadings ............................................... 5-3 Test results ....................................................................... 5-4 Appendix A: Detailed Description of Each Interface ................................................ A-1 WSDLs ....................................................................... A-1 GetTemplate ............................................................. A-1 SendReceiveReply Template ........................................ A-3 XSDs ....................................................................... A-9 Message XSD ............................................................ A-9 MeterReadings ........................................................ A-22 Appendix B: Requirements Tested ......................... B-1
vii
List of Figures
Figure 1-1 Scope of the EPRI CIM 61968-9 Test Plans ............... 1-2 Figure 3-1 Units under Test (UUT) ............................................ 3-1 Figure 3-2 ECITP 2.01 Meter Message Sequence Flow Diagram ......................................................................... 3-2
ix
List of Tables
Table 4-1 Test Steps for CIS .................................................... 4-2 Table 4-2 Test Steps for MDMS ............................................... 4-3 Table 4-3 Test Steps for AMI Head-End .................................... 4-4
xi
Section 1: Introduction
EPRI initiatives have provided important research contributing to bodies of work that have become International Electrotechnical Commission (IEC) interface standardsincluding the Common Information Model (CIM), Inter-Control Center Communications Protocol (ICCP) and 61850. These standards provide the basis for model-driven information exchange within and between control centers, substations, and other systems supporting utility operations. The implementation of a smarter grid is facilitated by the development of interoperability standards such as these. Having a universally accepted, well defined, model-driven information exchange strategy is the most realistic and cost effective way to implement a Smart Grid. The initial CIM standard addressed interoperatbility between Energy Management Systems and other control center applications. The primary challenge in the future is to extend CIM beyond the control center and prove that it is stable and fully implementable. Once CIM is extended, it is expected to allow full data management and exchange between the transmission, distribution, planning, and generation areas of the enterprise and with outside entities. When new data provided by these systems can be accessed, utilities will have a greatly improved chance of achieving efficiencies that will lower the cost of future system upgrades and integration. One measure of stability is having standard set of test cases that can be used to repeatably and reliably test the interoperability of two systems. This document is one in a series of EPRI-authored documents that provide the detailed information (steps, instructions, and interface definitions) related to such test cases. Background The EPRI CIM Interoperability Test Procedures are designed to support interoperability testing of the IEC CIM standards (61968, 61970, and 62325). The initial collection of Test Procecures focuses on 61968-9 (Meter Reading & Control). The scope of 61968-9 Test Procedures is shown in Figure 1-1This document, CIM On Demand Meter Read Interoperability Test Procedure, comprises one of component procedures of the 61968-9 collection of Test Procedures.
1-1
1-2
Purpose of this Document The purpose of the EPRI CIM test procedures is to thoroughly describe how system-to-system interoperability testing using IEC standard CIM messages can be performed. The test procedures are intended to be utilized by testing labs set up under a formal organizational framework for Smart Grid testing and certification, such as that called for by the Smart Grid Testing & Certification Committee (SGTCC) in its Interoperabiltiy Process Reference Manual (IPRM). In this use, the EPRI CIM test procedures address the need for a more formalized validation of interoperability of combinations of vendor products. The test procedures are also intended to be utilized by organizations sponsoring routine standards-validation CIM interoperability testing, as has historically been done by EPRI, UCA International, EdF, and ENTSO-E. Contents of this Document Chapter 2 contains the references used in the preparation of this test procedure. Chapter 3 contains a description of the test set up and what is to be tested. Chapter 4 has the step by step testing procedure. Appendix A contains the technical information for setting up a test. Appendix B contains the XSDs and WSDLs used in the test procedure.
1-3
Section 2: References
Normative IEC 61968-9 Interfaces for Meter Reading and Control, First Edition, International Electrotechnical Commission, Geneva Switzerland. Informative The business requirements are derived from the requirements published by Southern California Edison and those at smartgridipedia.org. Use cases from Southern California Edison:
http://www.sce.com/CustomerService/smartconnect/industry-resourcecenter/use-cases.htm?from=usecases
Use cases from smartgridipedia: http://www.smartgridipedia.org/index.php/B1_-_Scenario_2 Use Case B1 AMI-ENT Scenario 3 AMI Meter completes an on-demand read
AMI ENT Requirement REQ-B1001-Request an on-demand meter reading. AMI ENT Requirement- REQ-B1002-Receive an on-demand meter reading. AMI ENT Requirement- REQ-B1003-Send an on-demand meter reading.
2-1
MR-MDM + MR-RMR
Meter Simulator
or MR-RMR
AMI Network
CreatedMeterReadings
CS-CSRV
Enterprise Network
3-1
The system interfaces are shown in Figure 3-2 ECITP 2.01 Meter Message Sequence Flow Diagram. As shown in the diagram, systems under test are the CIS, MDMS, and AMI Head End. Meter read sequence is as follows: 1) GetMeterReading 2) ReplyMeterReading Note earlier versions of the CIM Part 9 document used a CREATE/CREATE message sequence instead of the current GET/REPLY message pattern. The MDMS is considered an optional component for on demand meter reading requests. Please see Section 6: Test Data for the sample XML format and content of the messages used for this test.
sd On-Demand Meter Read Customer Service (CS-CSRV) CIS Meter Operations (MR-MOP) Meter Data Management MDMS Meter Reading (MR-RMR) Meter
REPLY(MeterReading) REPLY(MeterReading)
REPLY(MeterReading)
(from Actors)
(from Actors)
(from Actors)
3-2
4-1
Table 4-1 Test Steps for CIS Step # 1 Ref. # IEC 61968 version 10v30, MeterReading XSD Source Component CIS (source) Destination Component Meter or meter simulator, via the MDMS Head-end Detailed Step Request an on-demand meter read from at least one meter. Meter or meter simulator sends proprietary messages to head-end Verify Head-end sends a MeterReadings message to the source (or source via MDMS) using CIM test procedure MV-01 message verification. Record and save the content of the message. Using one of the message content verification methods in MV-02, verify the content and format of the transmitted MeterReadings message are in concurrence with the MeterReadings XSD. Record and save the content of the message. 4 Head-end CIS Verify CIS receives the MeterReadings message from the MDMS using CIM test procedure MV01 message verification. Record and save the content of the message. Using one of the message content verification methods in MV-02, verify the content and format of the received MeterReadings message are in concurrence with the MeterReadings XSD. Record and save the content of the message. Validate that the correct meter data is reported. Pass/Fail Pass/Fail Pass/Fail
Pass/Fail
Pass/Fail
4-2
Table 4-2 Test Steps for MDMS Step # 1 Ref. # IEC 61968 version 10v30, MeterReading XSD Source Component CIS (source) Destination Component MDMS Detailed Step Request an on-demand meter read from at least one meter. Meter or meter simulator sends proprietary messages to head-end Verify Head-end sends a MeterReadings message to the MDMS using CIM test procedure MV-01 message verification. Record and save the content of the message. Using one of the message content verification methods in MV-02, verify the content and format of the transmitted MeterReadings message are in concurrence with the MeterReadings XSD. Record and save the content of the message. 4 Head-end CIS Verify CIS receives the MeterReadings message from the MDMS using CIM test procedure MV-01 message verification. Record and save the content of the message. Using one of the message content verification methods in MV-02, verify the content and format of the received MeterReadings message are in concurrence with the MeterReadings XSD. Record and save the content of the message. Validate that the correct meter data is reported. Pass/Fail Pass/Fail Pass/Fail
2 3
Head-end MDMS
Pass/Fail Pass/Fail
4-3
Table 4-3 Test Steps for AMI Head-End Step # 1 Ref. # IEC 61968 version 10v30, MeterReading XSD Source Component CIS (source) Destination Component MDMS Detailed Step Request an on-demand meter read from at least one meter. Meter or meter simulator sends proprietary messages to head-end Verify Head-end sends a MeterReadings message to the MDMS using CIM test procedure MV-01 message verification. Record and save the content of the message. Using one of the message content verification methods in MV-02, verify the content and format of the transmitted MeterReadings message are in concurrence with the MeterReadings XSD. Record and save the content of the message. 4 Head-end CIS Verify CIS receives the MeterReadings message from the MDMS using CIM test procedure MV01 message verification. Record and save the content of the message. Using one of the message content verification methods in MV-02, verify the content and format of the received MeterReadings message are in concurrence with the MeterReadings XSD. Record and save the content of the message. Validate that the correct meter data is reported. Pass/Fail Pass/Fail Pass/Fail
2 3
Head-end MDMS
Pass/Fail Pass/Fail
4-4
5-1
Test data On Demand Meter Reads sample messages which are expected to be produced by the the CIS and MDMS. Note EndDeviceEvents may be piggybacked on MeterReading messages. 1) GetMeterReadings
<?xml version="1.0" encoding="UTF-8"?> (http://www.altova.com)--> <!--Sample XML file generated by XMLSpy v2005 rel. 3 U <GetMeterReadings xmlns="http://www.iec.ch/TC57/2011/GetMeterReadingsMessage" xmlns:obj2="http://iec.ch/TC57/2011/GetMeterReadings#" xmlns:obj1="http://iec.ch/TC57/2011/MeterReadings#" xmlns:msg="http://www.iec.ch/TC57/2010/schema/message" xsi:schemaLocation="http://www.iec.ch/TC57/2011/GetMeterReadingsMessage GetMeterReadingsMessage.xsd"> <Header> <msg:Verb>get</msg:Verb> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<ID>String</ID>
</Request>
</obj2:GetMeterReadings>
</obj2:EndDevice>
</obj2:Names>
</GetMeterReadings>
5-2
2) ReplyMeterReadings
<?xml version="1.0" encoding="UTF-8"?> (http://www.altova.com)--> <!--Sample XML file generated by XMLSpy v2005 rel. 3 U <MeterReadingsResponseMessage
</Reply>
<msg:Result>OK</msg:Result>
<Payload>
<obj1:MeterReadings>
<obj1:MeterReading> <obj1:Meter>
</obj1:Meter>
</obj1:Names>
<obj1:Readings>
</Payload>
</obj1:MeterReadings>
</obj1:MeterReading>
</obj1:Readings>
</MeterReadingsResponseMessage>
5-3
Test results CIS and MDMS demonstration tests pass if each test step with a pass/fail in the far right column passes.
5-4
xmlns:tns="http://iec.ch/TC57/2011/{Information_Object_Name}" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/"
elementFormDefault="qualified"> <xs:include
A-1
<wsdl:message
element="infoMessage:Get{Information_Object_Name}"/>
<wsdl:message name="ResponseMessage">
element="infoMessage:{Information_Object_Name}ResponseMessage"/> </wsdl:message>
<wsdl:part name="ResponseMessage"
<wsdl:message name="FaultMessage">
element="infoMessage:{Information_Object_Name}FaultMessage"/> </wsdl:message>
<wsdl:part name="FaultMessage"
type="tns:Get{Information_Object_Name}_Port">
transport="http://schemas.xmlsoap.org/soap/http"/>
<soap:binding style="document"
name="Get{Information_Object_Name}Request"> </wsdl:input>
<soap:body use="literal"/>
A-2
name="Get{Information_Object_Name}Response"> </wsdl:output>
<wsdl:output
<soap:body use="literal"/>
name="Get{Information_Object_Name}Fault">
<wsdl:fault
<soap:fault
</wsdl:binding>
<wsdl:port name="Get{Information_Object_Name}_Port"
SendReceiveReply Template
?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions name="{Send | Receive | Reply}{Information_Object_Name}"
xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/"
xmlns:infoMessage="http://www.iec.ch/TC57/2011/{Information_Object_Name}Mes sage">
<wsdl:types> <xs:schema
targetNamespace="http://www.iec.ch/TC57/2011/{Information_Object_Name} Message"
A-3
elementFormDefault="qualified"> <xs:include
element="infoMessage:Created{Information_Object_Name}"/>
<wsdl:message
element="infoMessage:Changed{Information_Object_Name}"/>
<wsdl:message
element="infoMessage:Closed{Information_Object_Name}"/>
<wsdl:message
element="infoMessage:Canceled{Information_Object_Name}"/>
<wsdl:message
element="infoMessage:Deleted{Information_Object_Name}"/>
<wsdl:message name="ResponseMessage">
A-4
element="infoMessage:{Information_Object_Name}ResponseMessage"/> </wsdl:message>
<wsdl:part name="ResponseMessage"
<wsdl:message name="FaultMessage">
element="infoMessage:{Information_Object_Name}FaultMessage"/> </wsdl:message>
<wsdl:part name="FaultMessage"
<wsdl:operation
<wsdl:operation
A-5
name="Closed{Information_Object_Name}">
<wsdl:operation
name="Closed{Information_Object_Name}Event" <wsdl:output
<wsdl:input
<wsdl:operation
type="tns:{Information_Object_Name}_Port">
transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation
<soap:binding style="document"
name="Created{Information_Object_Name}">
<soap:operation
name="Created{Information_Object_Name}Event"> </wsdl:input>
<soap:body use="literal"/>
name="Created{Information_Object_Name}Response"> </wsdl:output>
<wsdl:output
<soap:body use="literal"/>
name="Created{Information_Object_Name}Fault">
<wsdl:fault
name="Created{Information_Object_Name}Fault" use="literal"/>
<soap:fault
A-6
name="Changed{Information_Object_Name}">
<wsdl:operation
</wsdl:operation>
</wsdl:fault>
<soap:operation
name="Changed{Information_Object_Name}Event"> </wsdl:input>
<soap:body use="literal"/>
name="Changed{Information_Object_Name}Response"> </wsdl:output>
<wsdl:output
<soap:body use="literal"/>
name="Changed{Information_Object_Name}Fault">
<wsdl:fault
<soap:fault
name="Canceled{Information_Object_Name}">
<wsdl:operation
<soap:operation
name="Canceled{Information_Object_Name}Event"> </wsdl:input>
<soap:body use="literal"/>
name="Canceled{Information_Object_Name}Response"> </wsdl:output>
<wsdl:output
<soap:body use="literal"/>
name="Canceled{Information_Object_Name}Fault">
<wsdl:fault
<soap:fault
name="Closed{Information_Object_Name}">
<soap:operation
name="Closed{Information_Object_Name}Event">
<soap:body use="literal"/>
A-7
name="Closed{Information_Object_Name}Response"> </wsdl:output>
<wsdl:output
</wsdl:input>
<soap:body use="literal"/>
name="Closed{Information_Object_Name}Fault">
<wsdl:fault
<soap:fault
name="Deleted{Information_Object_Name}">
<wsdl:operation
<soap:operation
name="Deleted{Information_Object_Name}Event"> </wsdl:input>
<soap:body use="literal"/>
name="Deleted{Information_Object_Name}Response"> </wsdl:output>
<wsdl:output
<soap:body use="literal"/>
name="Deleted{Information_Object_Name}Fault">
<wsdl:fault
<soap:fault
</wsdl:binding>
Reply}{Information_Object_Name}">
binding="tns:{Information_Object_Name}_Binding">
location="http://iec.ch/TC57/2011/{Send | Receive |
A-8
<xs:sequence>
</xs:annotation> <xs:annotation>
</xs:element>
</xs:annotation>
</xs:element>
</xs:annotation>
maxOccurs="unbounded"> <xs:annotation>
</xs:element>
</xs:annotation>
</xs:element>
</xs:annotation>
maxOccurs="unbounded">
</xs:complexType>
</xs:sequence>
A-9
</xs:annotation> <xs:sequence>
<xs:annotation>
errors</xs:documentation> </xs:annotation>
</xs:annotation>
<xs:simpleType>
</xs:element>
</xs:simpleType>
maxOccurs="unbounded">
<xs:element name="ID" type="xs:string" minOccurs="0" maxOccurs="unbounded"> <xs:annotation> <xs:documentation>Resulting transaction ID (usually consequence of
maxOccurs="unbounded"/> <xs:annotation>
<xs:any namespace="##other" processContents="lax" minOccurs="0" <xs:element name="operationId" type="xs:integer" minOccurs="0"> <xs:documentation>The reply.operationId provides the unique identifier
of the Operation for which this reply.result is relevant. Thus, it is assumed that this is a partial reply in direct response to one of the operations contained in an OperationSet request.</xs:documentation> </xs:element> </xs:annotation>
</xs:sequence>
</xs:complexType>
A-10
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"> <xs:annotation> <xs:documentation>For XML payloads, usually CIM profiles
payloads</xs:documentation> </xs:element>
</xs:annotation>
</xs:choice>
<xs:element name="Format" type="xs:string" minOccurs="0"> <xs:annotation> <xs:documentation>Hint as to format of payload, e.g. XML, RDF,
</xs:complexType>
</xs:sequence>
<xs:simpleType name="NounType">
<xs:restriction base="xs:string">
20110412.docx" -->
<!-- nouns from "61958-9_MeterReadingAndControl_2ed-working-draft<xs:enumeration value="AuxiliaryAgreementConfig"/> <xs:enumeration value="ComModuleConfig"/> <xs:enumeration value="CustomerAccountConfig"/> <xs:enumeration value="CustomerConfig"/>
<xs:enumeration value="CustomerAgreementConfig"/> <xs:enumeration value="CustomerMeterDataSet"/> <xs:enumeration value="EndDeviceConfig"/> <xs:enumeration value="EndDeviceEvents"/> <xs:enumeration value="EndDeviceGroups"/> <xs:enumeration value="MeterConfig"/> <xs:enumeration value="EndDeviceControls"/> <xs:enumeration value="EndDeviceFirmware"/> <xs:enumeration value="MasterDataLinkageConfig"/> <xs:enumeration value="MeterReadings"/>
<xs:enumeration value="MeterReadSchedule"/>
<xs:enumeration value="PricingStructureConfig"/>
A-11
<xs:enumeration value="ServiceCategoryConfig"/> <xs:enumeration value="ServiceLocationConfig"/> <xs:enumeration value="ServiceSupplierConfig"/> <xs:enumeration value="TransactionRecord"/> <xs:enumeration value="UsagePointConfig"/> <xs:enumeration value="UsagePointGroups"/> <!-- insert nouns parts 10-12 here" --> </xs:simpleType> </xs:restriction>
<xs:enumeration value="UsagePointLocationConfig"/>
<xs:element name="enforceMsgSequence" type="xs:boolean" minOccurs="0"> <xs:annotation> <xs:documentation>If set to TRUE, the Operation.##other
messages must be processed in the sequence presented. If omitted, assume FALSE.</xs:documentation> </xs:element> minOccurs="0"> </xs:annotation>
Operation.##other messages must be processed successfully or else the entire message set must be rolled back. If omitted, assume TRUE.</xs:documentation> </xs:element> </xs:annotation>
<xs:element name="Operation" minOccurs="0" maxOccurs="unbounded"> <xs:annotation> <xs:documentation>For master data set synchronization XML
payloads.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
payload.operation.operationId provides the unique identifier (within the messages (e.g. OperationSet reply).</xs:documentation> </xs:element> type="xs:normalizedString"> </xs:annotation>
A-12
type="NounType"> -->
also identifies the noun, this element is optionally supplied to simplify processing.</xs:documentation> </xs:annotation>
<xs:documentation>The payload.operation.##other
</xs:element>
etc.</xs:documentation>
<xs:simpleType>
<xs:enumeration value="cancel"/>
<xs:enumeration value="canceled"/> <xs:enumeration value="change"/> <xs:enumeration value="changed"/> <xs:enumeration value="create"/> <xs:enumeration value="close"/> <xs:enumeration value="created"/> <xs:enumeration value="closed"/>
<xs:enumeration value="reply"/>
<xs:enumeration value="unsubscribe"/>
</xs:simpleType>
</xs:restriction>
<xs:enumeration value="terminate"/>
element level. In such a case, the verb is to be applied to the elements populated in the payload.operation.##other below. If omitted, assume FALSE.</xs:documentation> </xs:annotation>
</xs:element> minOccurs="0">
A-13
<xs:annotation>
payloads are used collectively to create a series of related operations. See the "enforce" boolean flags in the header for instructions on how to process these messages.</xs:documentation> </xs:any> </xs:annotation>
</xs:complexType>
</xs:sequence>
</xs:element>
</xs:complexType>
</xs:sequence>
</xs:complexType>
</xs:sequence>
</xs:annotation> <xs:sequence>
</xs:element>
</xs:annotation>
identifier</xs:documentation> </xs:element>
</xs:annotation>
</xs:complexType>
</xs:sequence>
</xs:annotation> <xs:sequence>
<xs:annotation>
A-14
</xs:annotation>
used to form message types in compliance with the IEC 61968 standard.</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string">
<xs:enumeration value="cancel"/>
<xs:enumeration value="canceled"/> <xs:enumeration value="change"/> <xs:enumeration value="changed"/> <xs:enumeration value="create"/> <xs:enumeration value="close"/> <xs:enumeration value="created"/> <xs:enumeration value="closed"/>
<xs:enumeration value="reply"/>
<xs:enumeration value="unsubscribe"/>
</xs:element>
</xs:simpleType>
</xs:restriction>
<xs:enumeration value="terminate"/>
<!-- <xs:element name="Noun" type="NounType"> --> <xs:documentation>The Noun of the Control Area identifies the
main subject of the message type, typically a real world object defined in the CIM.</xs:documentation> </xs:annotation>
</xs:element>
type.</xs:documentation> </xs:element>
</xs:annotation>
A-15
minOccurs="0">
<xs:annotation>
<xs:element name="Context" minOccurs="0"> <xs:annotation> <xs:documentation>Intended context for information usage, e.g.
<xs:restriction base="xs:string">
<xs:enumeration value="PRODUCTION"/> <xs:enumeration value="TESTING"/> <xs:enumeration value="STUDY"/> <xs:enumeration value="DEVELOPMENT"/> <xs:enumeration value="TRAINING"/>
</xs:element>
</xs:simpleType>
</xs:restriction>
<xs:element name="Timestamp" type="xs:dateTime" minOccurs="0"> <xs:annotation> <xs:documentation>Application level relevant time and date for
when this instance of the message type was produced. This is not intended to be used by middleware for message management.</xs:documentation> </xs:element> </xs:annotation>
<xs:element name="Source" type="xs:string" minOccurs="0"> <xs:annotation> <xs:documentation>Source system or application that sends the
message</xs:documentation> </xs:element>
</xs:annotation>
<xs:element name="AsyncReplyFlag" type="xs:boolean" minOccurs="0"> <xs:annotation> <xs:documentation>Indicates whether or not reply should be
asynchronous</xs:documentation> </xs:element>
</xs:annotation>
<xs:element name="ReplyAddress" type="xs:string" minOccurs="0"> <xs:annotation> <xs:documentation>Address to be used for asynchronous replies,
A-16
is required</xs:documentation> </xs:element>
sender</xs:documentation>
</xs:element>
</xs:annotation>
</xs:element> maxOccurs="unbounded">
</xs:annotation>
identify information needed for extended routing and filtering capabilities</xs:documentation> </xs:element> maxOccurs="unbounded"/> </xs:annotation>
</xs:complexType>
</xs:sequence>
A-17
</xs:complexType>
</xs:sequence>
</xs:element>
</xs:annotation>
</xs:element>
</xs:annotation>
</xs:element>
</xs:annotation>
</xs:annotation> <xs:sequence>
<xs:element name="Request" type="RequestType" minOccurs="0"/> <xs:element name="Reply" type="ReplyType" minOccurs="0"/> </xs:sequence> <xs:element name="Payload" type="PayloadType" minOccurs="0"/>
</xs:complexType>
<xs:complexType name="RequestMessageType"> <xs:annotation> <xs:documentation>Request Message Type, which will typically result in a
ResponseMessage to be returned. This isn typically used to initiate a transaction or a query request.</xs:documentation> </xs:annotation> <xs:sequence>
</xs:complexType>
A-18
<xs:element name="Header" type="HeaderType"/> <xs:element name="Reply" type="ReplyType"/> <xs:element name="Payload" type="PayloadType" minOccurs="0"/>
</xs:complexType>
</xs:sequence>
<xs:complexType name="FaultMessageType"> <xs:annotation> <xs:documentation>Fault Messsage Type, which is used in cases where the
incoming message (including the header) can not be parsed</xs:documentation> </xs:complexType> </xs:annotation>
</xs:complexType>
</xs:sequence>
</xs:annotation> <xs:sequence>
code</xs:documentation> </xs:element>
</xs:annotation>
<xs:restriction base="xs:string">
</xs:restriction>
A-19
</xs:element>
</xs:simpleType>
<xs:element name="details" type="xs:string" minOccurs="0"> <xs:annotation> <xs:documentation>Free form detailed text description of
</xs:element>
</xs:annotation>
error</xs:documentation> </xs:element>
</xs:annotation>
<xs:element name="xpath" type="xs:QName" minOccurs="0"> <xs:annotation> <xs:documentation>XPath expression to identify specific XML
element</xs:documentation> </xs:element>
</xs:annotation>
identifier of the Operation for which this reply.result.error is relevant. Thus, it is assumed that this is an error from one of the operations contained in an OperationSet request.</xs:documentation> </xs:element> </xs:annotation>
</xs:complexType>
</xs:sequence>
</xs:annotation> <xs:sequence>
</xs:complexType>
</xs:sequence>
A-20
<xs:element name="pipeline" type="xs:string" minOccurs="0"> <xs:annotation> <xs:documentation>Name of the pipeline where error occurred (if
<xs:element name="stage" type="xs:string" minOccurs="0"> <xs:annotation> <xs:documentation>Name of the stage where error occurred (if
</xs:complexType>
</xs:sequence>
</xs:annotation> <xs:sequence>
<xs:element name="Name" type="Name" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="objectType" type="xs:string" minOccurs="0"> <xs:annotation>
object</xs:documentation> </xs:element>
</xs:annotation>
</xs:complexType>
</xs:sequence>
</xs:annotation> <xs:sequence>
<xs:element name="name"/>
</xs:complexType>
</xs:sequence>
</xs:annotation>
A-21
<xs:sequence>
<xs:element name="name"/>
</xs:complexType>
</xs:sequence>
</xs:annotation> <xs:sequence>
<xs:element name="name"/>
</xs:complexType>
</xs:sequence>
<xs:restriction base="xs:string"/>
MeterReadings
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:a="http://langdale.com.au/2005/Message#" xmlns:sawsdl="http://www.w3.org/ns/sawsdl" xmlns="http://langdale.com.au/2005/Message#" xmlns:m="http://iec.ch/TC57/2011/MeterReadings#" targetNamespace="http://iec.ch/TC57/2011/MeterReadings#" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="MeterReadings" type="m:MeterReadings"/> <xs:complexType name="MeterReadings"> <xs:sequence> <xs:element name="EndDeviceEventType" type="m:EndDeviceEventType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="MeterReading" type="m:MeterReading" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="ReadingQualityType" type="m:ReadingQualityType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="ReadingType" type="m:ReadingType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="DateTimeInterval" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#DateTimeInterval"> <xs:annotation> <xs:documentation>Interval of date and time.</xs:documentation> </xs:annotation>
A-22
<xs:sequence> <xs:element name="end" type="xs:dateTime" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#DateTimeInterval.end"> <xs:annotation> <xs:documentation>End date and time of this interval.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="start" type="xs:dateTime" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#DateTimeInterval.start"> <xs:annotation> <xs:documentation>Start date and time of this interval.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="EndDeviceEvent" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#EndDeviceEvent"> <xs:annotation> <xs:documentation>Event detected by a device function associated with end device.</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="mRID" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#IdentifiedObject.mRID"> <xs:annotation> <xs:documentation>A Model Authority issues mRIDs. Given that each Model Authority has a unique id and this id is part of the mRID, then the mRID is globally unique.</xs:documentation> <xs:documentation>Global uniqeness is easily achived by using a UUID for the mRID. It is strongly recommended to do this.</xs:documentation> <xs:documentation>For CIMXML data files the mRID is mapped to rdf:ID or rdf:about attributes that identifies CIM object elements.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="createdDateTime" type="xs:dateTime" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#ActivityRecord.createdDateTime"> <xs:annotation> <xs:documentation>Date and time this activity record has been created (different from the 'status.dateTime', which is the time of a status change of the associated object, if applicable).</xs:documentation> </xs:annotation> </xs:element> <xs:element name="issuerID" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#EndDeviceEvent.issuerID">
A-23
<xs:annotation> <xs:documentation>Unique identifier of the business entity originating an end device control.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="issuerTrackingID" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#EndDeviceEvent.issuerTrackingID"> <xs:annotation> <xs:documentation>Identifier assigned by the initiator (e.g. retail electric provider) of an end device control action to uniquely identify the demand response event, text message, or other subject of the control action. Can be used when cancelling an event or text message request or to identify the originating event or text message in a consequential end device event.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="reason" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#ActivityRecord.reason"> <xs:annotation> <xs:documentation>Reason for event resulting in this activity record, typically supplied when user initiated.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="severity" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#ActivityRecord.severity"> <xs:annotation> <xs:documentation>Severity level of event resulting in this activity record.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="userID" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#EndDeviceEvent.userID"> <xs:annotation> <xs:documentation>(if user initiated) ID of user who initiated this end device event.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="EndDeviceEventDetails" type="m:EndDeviceEventDetail" minOccurs="0" maxOccurs="unbounded" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#EndDeviceEvent.EndDeviceEventDetails"> <xs:annotation> <xs:documentation>All details of this end device event.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="EndDeviceEventType" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#EndDeviceEvent.EndDeviceEventType">
A-24
<xs:annotation> <xs:documentation>Type of this end device event.</xs:documentation> </xs:annotation> <xs:complexType sawsdl:modelReference=""> <xs:attribute name="ref" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="Names" minOccurs="0" maxOccurs="unbounded" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#IdentifiedObject.Names"> <xs:annotation> <xs:documentation>All names of this identified object.</xs:documentation> </xs:annotation> <xs:complexType sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Name"> <xs:sequence> <xs:element name="name" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Name.name"> <xs:annotation> <xs:documentation>Any free text that name the object.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="NameType" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#Name.NameType"> <xs:annotation> <xs:documentation>Type of this name.</xs:documentation> </xs:annotation> <xs:complexType sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#NameType"> <xs:sequence> <xs:element name="description" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#NameType.description"> <xs:annotation> <xs:documentation>Description of the name type.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="name" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#NameType.name">
A-25
<xs:annotation> <xs:documentation>Name of the name type.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="NameTypeAuthority" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#NameType.NameTypeAuthority"> <xs:annotation> <xs:documentation>Authority responsible for managing names of this type.</xs:documentation> </xs:annotation> <xs:complexType sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#NameTypeAuthority"> <xs:sequence> <xs:element name="description" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#NameTypeAuthority.description"> <xs:annotation> <xs:documentation>Description of the name type authority.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="name" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#NameTypeAuthority.name"> <xs:annotation> <xs:documentation>Name of the name type authority.</xs:documentation> </xs:annotation> </xs:element>
A-26
</xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="status" type="m:Status" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#ActivityRecord.status"> <xs:annotation> <xs:documentation>Information on consequence of event resulting in this activity record.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="UsagePoint" type="m:UsagePoint" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#EndDeviceEvent.UsagePoint"> <xs:annotation> <xs:documentation>Usage point for which this end device event is reported.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="EndDeviceEventDetail" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#EndDeviceEventDetail"> <xs:annotation> <xs:documentation>Name-value pair, specific to end device events.</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="name" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#EndDeviceEventDetail.name"> <xs:annotation> <xs:documentation>Name.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="value" type="m:StringQuantity" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#EndDeviceEventDetail.value"> <xs:annotation> <xs:documentation>Value, including unit information.</xs:documentation>
A-27
</xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="EndDeviceEventType" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#EndDeviceEventType"> <xs:annotation> <xs:documentation>Detailed description for an event produced by an end device. Values in attributes allow for creation of recommended codes to be used for identifying end device events as follows: &lt;type&gt;.&lt;domain&gt;.&lt;subDomain&gt;.&lt;eventOrActi on&gt;.</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="mRID" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#IdentifiedObject.mRID"> <xs:annotation> <xs:documentation>A Model Authority issues mRIDs. Given that each Model Authority has a unique id and this id is part of the mRID, then the mRID is globally unique.</xs:documentation> <xs:documentation>Global uniqeness is easily achived by using a UUID for the mRID. It is strongly recommended to do this.</xs:documentation> <xs:documentation>For CIMXML data files the mRID is mapped to rdf:ID or rdf:about attributes that identifies CIM object elements.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="domain" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#EndDeviceEventType.domain"> <xs:annotation> <xs:documentation>High-level nature of the event. By properly classifying events by a small set of domain codes, a system can more easily run reports based on the types of events that have occurred or been received.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="eventOrAction" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#EndDeviceEventType.eventOrAction"> <xs:annotation> <xs:documentation>The most specific part of this event type. It is mainly in the form of a verb that gives action to the event that just occurred.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="subDomain" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#EndDeviceEventType.subDomain"> <xs:annotation>
A-28
<xs:documentation>More specific nature of the event, as a further sub-categorisation of 'domain'.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="type" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#EndDeviceEventType.type"> <xs:annotation> <xs:documentation>Type of physical device from which the event was created. A value of zero (0) can be used when the source is unknown.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="Names" type="m:Name" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#IdentifiedObject.Names"> <xs:annotation> <xs:documentation>All names of this identified object.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="Meter" sawsdl:modelReference="http://iec.ch/TC57/2010/CIMschema-cim15#Meter"> <xs:annotation> <xs:documentation>Physical asset that performs the metering role of the usage poiny. Used for measuring consumption and detection of events.</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="mRID" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#IdentifiedObject.mRID"> <xs:annotation> <xs:documentation>A Model Authority issues mRIDs. Given that each Model Authority has a unique id and this id is part of the mRID, then the mRID is globally unique.</xs:documentation> <xs:documentation>Global uniqeness is easily achived by using a UUID for the mRID. It is strongly recommended to do this.</xs:documentation> <xs:documentation>For CIMXML data files the mRID is mapped to rdf:ID or rdf:about attributes that identifies CIM object elements.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="Names" minOccurs="0" maxOccurs="unbounded" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#IdentifiedObject.Names"> <xs:annotation> <xs:documentation>All names of this identified object.</xs:documentation> </xs:annotation>
A-29
<xs:complexType sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Name"> <xs:sequence> <xs:element name="name" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Name.name"> <xs:annotation> <xs:documentation>Any free text that name the object.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="NameType" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#Name.NameType"> <xs:annotation> <xs:documentation>Type of this name.</xs:documentation> </xs:annotation> <xs:complexType sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#NameType"> <xs:sequence> <xs:element name="description" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#NameType.description"> <xs:annotation> <xs:documentation>Description of the name type.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="name" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#NameType.name"> <xs:annotation> <xs:documentation>Name of the name type.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="NameTypeAuthority" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#NameType.NameTypeAuthority"> <xs:annotation> <xs:documentation>Authority responsible for managing names of this type.</xs:documentation>
A-30
</xs:annotation> <xs:complexType sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#NameTypeAuthority"> <xs:sequence> <xs:element name="description" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#NameTypeAuthority.description"> <xs:annotation> <xs:documentation>Description of the name type authority.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="name" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#NameTypeAuthority.name"> <xs:annotation> <xs:documentation>Name of the name type authority.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="status" type="m:Status" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Asset.status"> <xs:annotation>
A-31
<xs:documentation>Status of this asset.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="MeterReading" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#MeterReading"> <xs:annotation> <xs:documentation>Set of values obtained from the meter.</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="isCoincidentTrigger" type="xs:boolean" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#MeterReading.isCoincidentTrigger"> <xs:annotation> <xs:documentation>If true, this meter reading is the meter reading for which other coincident meter readings are requested or provided.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="EndDeviceEvents" type="m:EndDeviceEvent" minOccurs="0" maxOccurs="unbounded" sawsdl:modelReference="http://iec.ch/TC57/2010/CIMschema-cim15#MeterReading.EndDeviceEvents"> <xs:annotation> <xs:documentation>All end device events associated with this set of measured values.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="IntervalBlocks" minOccurs="0" maxOccurs="unbounded" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#MeterReading.IntervalBlocks"> <xs:annotation> <xs:documentation>All interval blocks contained in this meter reading.</xs:documentation> </xs:annotation> <xs:complexType sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#IntervalBlock"> <xs:sequence> <xs:element name="IntervalReadings" minOccurs="0" maxOccurs="unbounded" sawsdl:modelReference="http://iec.ch/TC57/2010/CIMschema-cim15#IntervalBlock.IntervalReadings"> <xs:annotation> <xs:documentation>Interval reading contained in this block.</xs:documentation> </xs:annotation> <xs:complexType sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#IntervalReading">
A-32
<xs:sequence> <xs:element name="reportedDateTime" type="xs:dateTime" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#BaseReading.reportedDateTime"> <xs:annotation> <xs:documentation>(used only when there are detailed auditing requirements) Date and time at which the reading was first delivered to the metering system.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="source" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#BaseReading.source"> <xs:annotation> <xs:documentation>System that originally supplied the reading (e.g., customer, AMI system, handheld reading system, another enterprise system, etc.).</xs:documentation> </xs:annotation> </xs:element> <xs:element name="timeStamp" type="xs:dateTime" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#MeasurementValue.timeStamp"> <xs:annotation> <xs:documentation>The time when the value was last updated</xs:documentation> </xs:annotation> </xs:element> <xs:element name="value" type="xs:float" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#BaseReading.value"> <xs:annotation> <xs:documentation>Value of this reading.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="ReadingQualities" minOccurs="0" maxOccurs="unbounded"
A-33
sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#BaseReading.ReadingQualities"> <xs:annotation> <xs:documentation>All qualities of this reading.</xs:documentation> </xs:annotation> <xs:complexType sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#ReadingQuality"> <xs:sequence> <xs:element name="comment" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#ReadingQuality.comment"> <xs:annotation> <xs:documentation>Elaboration on the quality code.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="source" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#ReadingQuality.source"> <xs:annotation> <xs:documentation>System acting as the source of the quality code.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="timeStamp" type="xs:dateTime" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#ReadingQuality.timeStamp"> <xs:annotation> <xs:documentation>Date and time at which the quality code was assigned or ascertained.</xs:documentation> </xs:annotation>
A-34
</xs:element> <xs:element name="ReadingQualityType" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#ReadingQuality.ReadingQualityType"> <xs:annotation> <xs:documentation>Type of this reading quality.</xs:documentation> </xs:annotation> <xs:complexType sawsdl:modelReference=""> <xs:attribute name="ref" type="xs:string"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="timePeriod" type="m:DateTimeInterval" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#BaseReading.timePeriod"> <xs:annotation> <xs:documentation>Start and end of the period for those readings whose type has a time attribute such as 'billing', seasonal' or 'forTheSpecifiedPeriod'.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="PendingCalculation" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#IntervalBlock.PendingCalculation"> <xs:annotation> <xs:documentation>Pending conversion to apply to interval reading values contained by this block (after which the resulting reading type is different than the original because it reflects the conversion result).</xs:documentation>
A-35
</xs:annotation> <xs:complexType sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#PendingCalculation"> <xs:sequence> <xs:element name="multiplyBeforeAdd" type="xs:boolean" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#PendingCalculation.multiplyBeforeAdd"> <xs:annotation> <xs:documentation>Whether scalars should be applied before adding the 'offset'.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="offset" type="xs:integer" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#PendingCalculation.offset"> <xs:annotation> <xs:documentation>(if applicable) Offset to be added as well as multiplication using scalars.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="scalarDenominator" type="xs:integer" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#PendingCalculation.scalarDenominator"> <xs:annotation> <xs:documentation>(if scalar is rational number) When 'IntervalReading.value' is multiplied by 'scalarNumerator' and divided by this value, it causes a unit of measure conversion to occur, resulting in the 'ReadingType.unit'.</xs:documentation>
A-36
<xs:documentation>(if scalar is floating number) When multiplied with 'IntervalReading.value', it causes a unit of measure conversion to occur, according to the 'ReadingType.unit'.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="scalarNumerator" type="xs:integer" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#PendingCalculation.scalarNumerator"> <xs:annotation> <xs:documentation>(if scalar is integer or rational number) When the scalar is a simple integer, and this attribute is presented alone and multiplied with 'IntervalReading.value', it causes a unit of measure conversion to occur, resulting in the 'ReadingType.unit'. It is never used in conjunction with 'scalarFloat', only with 'scalarDenominator'.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="ReadingType" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#PendingCalculation.ReadingType"> <xs:annotation> <xs:documentation>Reading type resulting from this pending conversion.</xs:documentation> </xs:annotation> <xs:complexType sawsdl:modelReference=""> <xs:attribute name="ref" type="xs:string"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="ReadingType" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#IntervalBlock.ReadingType"> <xs:annotation> <xs:documentation>Type information for interval reading values contained in this block.</xs:documentation> </xs:annotation>
A-37
<xs:complexType sawsdl:modelReference=""> <xs:attribute name="ref" type="xs:string"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Meter" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#MeterReading.Meter"> <xs:annotation> <xs:documentation>Meter providing this reading.</xs:documentation> </xs:annotation> <xs:complexType sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Meter"> <xs:sequence> <xs:element name="mRID" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#IdentifiedObject.mRID"> <xs:annotation> <xs:documentation>A Model Authority issues mRIDs. Given that each Model Authority has a unique id and this id is part of the mRID, then the mRID is globally unique.</xs:documentation> <xs:documentation>Global uniqeness is easily achived by using a UUID for the mRID. It is strongly recommended to do this.</xs:documentation> <xs:documentation>For CIMXML data files the mRID is mapped to rdf:ID or rdf:about attributes that identifies CIM object elements.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="Names" minOccurs="0" maxOccurs="unbounded" sawsdl:modelReference="http://iec.ch/TC57/2010/CIMschema-cim15#IdentifiedObject.Names"> <xs:annotation> <xs:documentation>All names of this identified object.</xs:documentation> </xs:annotation> <xs:complexType sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Name"> <xs:sequence> <xs:element name="name" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#Name.name"> <xs:annotation>
A-38
<xs:documentation>Any free text that name the object.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="NameType" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIMschema-cim15#Name.NameType"> <xs:annotation> <xs:documentation>Type of this name.</xs:documentation> </xs:annotation> <xs:complexType sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#NameType"> <xs:sequence> <xs:element name="description" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#NameType.description"> <xs:annotation> <xs:documentation>Description of the name type.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="name" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#NameType.name"> <xs:annotation> <xs:documentation>Name of the name type.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="NameTypeAuthority" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#NameType.NameTypeAuthority">
A-39
<xs:annotation> <xs:documentation>Authority responsible for managing names of this type.</xs:documentation> </xs:annotation> <xs:complexType sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#NameTypeAuthority"> <xs:sequence> <xs:element name="description" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#NameTypeAuthority.description"> <xs:annotation> <xs:documentation>Description of the name type authority.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="name" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#NameTypeAuthority.name"> <xs:annotation> <xs:documentation>Name of the name type authority.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element>
A-40
</xs:sequence> </xs:complexType> </xs:element> <xs:element name="status" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Asset.status"> <xs:annotation> <xs:documentation>Status of this asset.</xs:documentation> </xs:annotation> <xs:complexType sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Status"> <xs:sequence> <xs:element name="dateTime" type="xs:dateTime" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Status.dateTime"> <xs:annotation> <xs:documentation>Date and time for which status 'value' applies.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="reason" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Status.reason"> <xs:annotation> <xs:documentation>Reason code or explanation for why an object went to the current status 'value'.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="remark" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Status.remark"> <xs:annotation> <xs:documentation>Pertinent information regarding the current 'value', as free form text.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="value" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#Status.value">
A-41
<xs:annotation> <xs:documentation>Status value at 'dateTime'; prior status changes may have been kept in instances of activity records associated with the object to which this status applies.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Readings" minOccurs="0" maxOccurs="unbounded" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#MeterReading.Readings"> <xs:annotation> <xs:documentation>All reading values contained within this meter reading.</xs:documentation> </xs:annotation> <xs:complexType sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Reading"> <xs:sequence> <xs:element name="reason" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Reading.reason"> <xs:annotation> <xs:documentation>Reason for this reading being taken.</xs:documentation> </xs:annotation> <xs:simpleType sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#ReadingReasonKind"> <xs:restriction base="xs:string"> <xs:enumeration value="billing"> <xs:annotation> <xs:documentation>Inquiry or demand.</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="demandReset"/> <xs:enumeration value="inquiry"/>
A-42
<xs:enumeration value="installation"/> <xs:enumeration value="loadManagement"/> <xs:enumeration value="loadResearch"/> <xs:enumeration value="moveIn"/> <xs:enumeration value="moveOut"/> <xs:enumeration value="other"/> <xs:enumeration value="removal"/> <xs:enumeration value="serviceConnect"/> <xs:enumeration value="serviceDisconnect"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="reportedDateTime" type="xs:dateTime" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIMschema-cim15#BaseReading.reportedDateTime"> <xs:annotation> <xs:documentation>(used only when there are detailed auditing requirements) Date and time at which the reading was first delivered to the metering system.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="source" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#BaseReading.source"> <xs:annotation> <xs:documentation>System that originally supplied the reading (e.g., customer, AMI system, handheld reading system, another enterprise system, etc.).</xs:documentation> </xs:annotation> </xs:element> <xs:element name="timeStamp" type="xs:dateTime" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIMschema-cim15#MeasurementValue.timeStamp"> <xs:annotation> <xs:documentation>The time when the value was last updated</xs:documentation> </xs:annotation> </xs:element>
A-43
<xs:element name="value" type="xs:float" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#BaseReading.value"> <xs:annotation> <xs:documentation>Value of this reading.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="ReadingQualities" type="m:ReadingQuality" minOccurs="0" maxOccurs="unbounded" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#BaseReading.ReadingQualities"> <xs:annotation> <xs:documentation>All qualities of this reading.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="ReadingType" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Reading.ReadingType"> <xs:annotation> <xs:documentation>Type information for this reading value.</xs:documentation> </xs:annotation> <xs:complexType sawsdl:modelReference=""> <xs:attribute name="ref" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="timePeriod" type="m:DateTimeInterval" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIMschema-cim15#BaseReading.timePeriod"> <xs:annotation> <xs:documentation>Start and end of the period for those readings whose type has a time attribute such as 'billing', seasonal' or 'forTheSpecifiedPeriod'.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="UsagePoint" type="m:UsagePoint" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#MeterReading.UsagePoint"> <xs:annotation> <xs:documentation>Usage point from which this meter reading (set of values) has been obtained.</xs:documentation> </xs:annotation> </xs:element>
A-44
<xs:element name="valuesInterval" type="m:DateTimeInterval" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#MeterReading.valuesInterval"> <xs:annotation> <xs:documentation>Date and time interval of the data items contained within this meter reading.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="Name" sawsdl:modelReference="http://iec.ch/TC57/2010/CIMschema-cim15#Name"> <xs:annotation> <xs:documentation>The Name class provides the means to define any number of human readable names for an object. A name is <b>not</b> to be used for defining inter-object relationships. For inter-object relationships instead use the object identification 'mRID'.</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="name" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Name.name"> <xs:annotation> <xs:documentation>Any free text that name the object.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="NameType" type="m:NameType" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Name.NameType"> <xs:annotation> <xs:documentation>Type of this name.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="NameType" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#NameType"> <xs:annotation> <xs:documentation>Type of name. Possible values for attribute 'name' are implementation dependent but standard profiles may specify types. An enterprise may have multiple IT systems each having its own local name for the same object, e.g. a planning system may have different names from an EMS. An object may also have different names within the same IT system, e.g. localName and aliasName as defined in CIM version 14. Their definitions from CIM14 are</xs:documentation> <xs:documentation>The localName is a human readable name of the object. It is only used with objects organized in a naming hierarchy. localName: A free text name local to a node in a naming hierarchy similar to a file directory structure. A power system related
A-45
naming hierarchy may be: Substation, VoltageLevel, Equipment etc. Children of the same parent in such a hierarchy have names that typically are unique among them.</xs:documentation> <xs:documentation>aliasName: A free text alternate name typically used in tabular reports where the column width is limited.</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="name" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#NameType.name"> <xs:annotation> <xs:documentation>Name of the name type.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="PendingCalculation" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#PendingCalculation"> <xs:annotation> <xs:documentation>When present, a scalar conversion that needs to be applied to every IntervalReading.value contained in IntervalBlock. This conversion results in a new associated ReadingType, reflecting the true dimensions of IntervalReading values after the conversion.</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="multiplyBeforeAdd" type="xs:boolean" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#PendingCalculation.multiplyBeforeAdd"> <xs:annotation> <xs:documentation>Whether scalars should be applied before adding the 'offset'.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="offset" type="xs:integer" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#PendingCalculation.offset"> <xs:annotation> <xs:documentation>(if applicable) Offset to be added as well as multiplication using scalars.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="scalarDenominator" type="xs:integer" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#PendingCalculation.scalarDenominator"> <xs:annotation> <xs:documentation>(if scalar is rational number) When 'IntervalReading.value' is multiplied by 'scalarNumerator' and divided by this value, it causes a unit of measure conversion to occur, resulting in the 'ReadingType.unit'.</xs:documentation> </xs:annotation>
A-46
</xs:element> <xs:element name="scalarFloat" type="xs:float" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#PendingCalculation.scalarFloat"> <xs:annotation> <xs:documentation>(if scalar is floating number) When multiplied with 'IntervalReading.value', it causes a unit of measure conversion to occur, according to the 'ReadingType.unit'.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="scalarNumerator" type="xs:integer" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#PendingCalculation.scalarNumerator"> <xs:annotation> <xs:documentation>(if scalar is integer or rational number) When the scalar is a simple integer, and this attribute is presented alone and multiplied with 'IntervalReading.value', it causes a unit of measure conversion to occur, resulting in the 'ReadingType.unit'. It is never used in conjunction with 'scalarFloat', only with 'scalarDenominator'.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="ReadingType" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#PendingCalculation.ReadingType"> <xs:annotation> <xs:documentation>Reading type resulting from this pending conversion.</xs:documentation> </xs:annotation> <xs:complexType sawsdl:modelReference=""> <xs:attribute name="ref" type="xs:string"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="RationalNumber" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#RationalNumber"> <xs:annotation> <xs:documentation>Rational number = 'numerator' / 'denominator'.</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="denominator" type="xs:integer" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#RationalNumber.denominator"> <xs:annotation> <xs:documentation>Denominator. Value 1 indicates the number is a simple integer.</xs:documentation> </xs:annotation>
A-47
</xs:element> <xs:element name="numerator" type="xs:integer" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#RationalNumber.numerator"> <xs:annotation> <xs:documentation>Numerator.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="ReadingInterharmonic" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#ReadingInterharmonic"> <xs:annotation> <xs:documentation>Interharmonics are represented as a rational number 'numerator' / 'denominator', and harmonics are represented using the same mechanism and identified by 'denominator'=1.</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="denominator" type="xs:integer" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#ReadingInterharmonic.denominator"> <xs:annotation> <xs:documentation>Interharmonic denominator. Value 0 means not applicable. Value 2 is used in combination with 'numerator'=1 to represent interharmonic 1/2. Finally, value 1 indicates the harmonic of the order specified with 'numerator'.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="numerator" type="xs:integer" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#ReadingInterharmonic.numerator"> <xs:annotation> <xs:documentation>Interharmonic numerator. Value 0 means not applicable. Value 1 is used in combination with 'denominator'=2 to represent interharmonic 1/2, and with 'denominator'=1 it represents fundamental frequency. Finally, values greater than 1 indicate the harmonic of that order (e.g., 'numerator'=5 is the fifth harmonic).</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="ReadingQuality" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#ReadingQuality"> <xs:annotation> <xs:documentation>Quality of a specific reading value or interval reading value. Note that more than one quality may be applicable to a given reading. Typically not used unless problems or unusual conditions occur (i.e., quality for each reading is assumed to be good unless stated otherwise in associated reading quality type). It can also be used with the
A-48
corresponding reading quality type to indicate that the validation has been performed and succedeed.</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="comment" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#ReadingQuality.comment"> <xs:annotation> <xs:documentation>Elaboration on the quality code.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="source" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#ReadingQuality.source"> <xs:annotation> <xs:documentation>System acting as the source of the quality code.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="timeStamp" type="xs:dateTime" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#ReadingQuality.timeStamp"> <xs:annotation> <xs:documentation>Date and time at which the quality code was assigned or ascertained.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="ReadingQualityType" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#ReadingQuality.ReadingQualityType"> <xs:annotation> <xs:documentation>Type of this reading quality.</xs:documentation> </xs:annotation> <xs:complexType sawsdl:modelReference=""> <xs:attribute name="ref" type="xs:string"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="ReadingQualityType" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#ReadingQualityType"> <xs:annotation> <xs:documentation>Detailed description for a quality of a reading value, produced by an end device or a system. Values in attributes allow for creation of recommended codes to be used for identifying reading value quality codes as follows: &lt;systemId&gt;.&lt;category&gt;.&lt;index&gt;.</xs:documentation> </xs:annotation>
A-49
<xs:sequence> <xs:element name="mRID" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#IdentifiedObject.mRID"> <xs:annotation> <xs:documentation>A Model Authority issues mRIDs. Given that each Model Authority has a unique id and this id is part of the mRID, then the mRID is globally unique.</xs:documentation> <xs:documentation>Global uniqeness is easily achived by using a UUID for the mRID. It is strongly recommended to do this.</xs:documentation> <xs:documentation>For CIMXML data files the mRID is mapped to rdf:ID or rdf:about attributes that identifies CIM object elements.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="category" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#ReadingQualityType.category"> <xs:annotation> <xs:documentation>High-level nature of the reading value quality.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="subCategory" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#ReadingQualityType.subCategory"> <xs:annotation> <xs:documentation>More specific nature of the reading value quality, as a further sub-categorisation of 'category'.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="systemId" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#ReadingQualityType.systemId"> <xs:annotation> <xs:documentation>Identification of the system which has declared the issue with the data or provided commentary on the data.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="Names" type="m:Name" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#IdentifiedObject.Names"> <xs:annotation> <xs:documentation>All names of this identified object.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="ReadingType" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#ReadingType">
A-50
<xs:annotation> <xs:documentation>Detailed description for a type of a reading value. Values in attributes allow for creation of recommended codes to be used for identifying reading value types as follows: &lt;macroPeriod&gt;.&lt;aggregate&gt;.&lt;measuringPeriod&gt;. &lt;accumulation&gt;.&lt;flowDirection&gt;.&lt;commodity&gt;.&l t;measurementKind&gt;.&lt;interharmonic.numerator&gt;.&lt;interharmonic.den ominator&gt;.&lt;argument.numerator&gt;.&lt;argument.denominator&gt;. &lt;tou&gt;.&lt;cpp&gt;.&lt;consumptionTier&gt;.&lt;phases&am p;gt;.&lt;multiplier&gt;.&lt;unit&gt;.&lt;currency&gt;.</xs:documentati on> </xs:annotation> <xs:sequence> <xs:element name="mRID" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#IdentifiedObject.mRID"> <xs:annotation> <xs:documentation>A Model Authority issues mRIDs. Given that each Model Authority has a unique id and this id is part of the mRID, then the mRID is globally unique.</xs:documentation> <xs:documentation>Global uniqeness is easily achived by using a UUID for the mRID. It is strongly recommended to do this.</xs:documentation> <xs:documentation>For CIMXML data files the mRID is mapped to rdf:ID or rdf:about attributes that identifies CIM object elements.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="accumulation" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#ReadingType.accumulation"> <xs:annotation> <xs:documentation>Accumulation behaviour of a reading over time, usually 'measuringPeriod', to be used with individual endpoints (as opposed to 'macroPeriod' and 'aggregate' that are used to describe aggregations of data from individual endpoints).</xs:documentation> </xs:annotation> </xs:element> <xs:element name="aggregate" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#ReadingType.aggregate"> <xs:annotation> <xs:documentation>Salient attribute of the reading data aggregated from individual endpoints. This is mainly used to define a mathematical operation carried out over 'macroPeriod', but may also be used to describe an attribute of the data when the 'macroPeriod' is not defined.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="commodity" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#ReadingType.commodity"> <xs:annotation>
A-51
<xs:documentation>Commodity being measured.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="consumptionTier" type="xs:integer" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#ReadingType.consumptionTier"> <xs:annotation> <xs:documentation>In case of common flat-rate pricing for power, in which all purchases are at a given rate, 'consumptionTier'=0. Otherwise, the value indicates the consumption tier, which can be used in conjunction with TOU or CPP pricing.</xs:documentation> <xs:documentation>Consumption tier pricing refers to the method of billing in which a certain "block" of energy is purchased/sold at one price, after which the next block of energy is purchased at another price, and so on, all throughout a defined period. At the start of the defined period, consumption is initially zero, and any usage is measured against the first consumption tier ('consumptionTier'=1). If this block of energy is consumed before the end of the period, energy consumption moves to be reconed against the second consumption tier ('consumptionTier'=2), and so on. At the end of the defined period, the consumption accumulator is reset, and usage within the 'consumptionTier'=1 restarts.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="cpp" type="xs:integer" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#ReadingType.cpp"> <xs:annotation> <xs:documentation>Critical peak period (CPP) bucket the reading value is attributed to. Value 0 means not applicable. Even though CPP is usually considered a specialised form of time of use 'tou', this attribute is defined explicitly for flexibility.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="currency" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#ReadingType.currency"/> <xs:element name="flowDirection" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#ReadingType.flowDirection"> <xs:annotation> <xs:documentation>Flow direction for a reading where the direction of flow of the commodity is important (for electricity measurements this includes current, energy, power, and demand).</xs:documentation> </xs:annotation> </xs:element> <xs:element name="macroPeriod" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#ReadingType.macroPeriod"> <xs:annotation> <xs:documentation>Time period of interest that reflects how the reading is viewed or captured over a long period of time.</xs:documentation> </xs:annotation>
A-52
</xs:element> <xs:element name="measurementKind" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#ReadingType.measurementKind"> <xs:annotation> <xs:documentation>Identifies "what" is being measured, as refinement of 'commodity'. When combined with 'unit', it provides detail to the unit of measure. For example, 'energy' with a unit of measure of 'kWh' indicates to the user that active energy is being measured, while with 'kVAh' or 'kVArh', it indicates apparent energy and reactive energy, respectively. 'power' can be combined in a similar way with various power units of measure: Distortion power ('distortionVoltAmperes') with 'kVA' is different from 'power' with 'kVA'.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="measuringPeriod" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#ReadingType.measuringPeriod"> <xs:annotation> <xs:documentation>Time attribute inherent or fundamental to the reading value (as opposed to 'macroPeriod' that supplies an "adjective" to describe aspects of a time period with regard to the measurement). It refers to the way the value was originally measured and not to the frequency at which it is reported or presented. For example, an hourly interval of consumption data would have value 'hourly' as an attribute. However in the case of an hourly sampled voltage value, the meterReadings schema would carry the 'hourly' interval size information.</xs:documentation> <xs:documentation>It is common for meters to report demand in a form that is measured over the course of a portion of an hour, while enterprise applications however commonly assume the demand (in kW or kVAr) normalised to 1 hour. The sytem that receives readings directly from the meter therefore must perform this transformation before publishing readings for use by the other enterprise systems. The scalar used is chosen based on the block size (not any sub-interval size).</xs:documentation> </xs:annotation> </xs:element> <xs:element name="multiplier" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#ReadingType.multiplier"/> <xs:element name="phases" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#ReadingType.phases"/> <xs:element name="tou" type="xs:integer" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#ReadingType.tou"> <xs:annotation> <xs:documentation>Time of use (TOU) bucket the reading value is attributed to. Value 0 means not applicable.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="unit" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#ReadingType.unit"/>
A-53
<xs:element name="argument" type="m:RationalNumber" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#ReadingType.argument"> <xs:annotation> <xs:documentation>Argument used to introduce numbers into the unit of measure description where they are needed (e.g., 4 where the measure needs an argument such as CEMI(n=4)). Most arguments used in practice however will be integers (i.e., 'denominator'=1).</xs:documentation> <xs:documentation>Value 0 in 'numerator' and 'denominator' means not applicable.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="interharmonic" type="m:ReadingInterharmonic" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#ReadingType.interharmonic"> <xs:annotation> <xs:documentation>Indication of a "harmonic" or "interharmonic" basis for the measurement. Value 0 in 'numerator' and 'denominator' means not applicable.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="Names" type="m:Name" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#IdentifiedObject.Names"> <xs:annotation> <xs:documentation>All names of this identified object.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="Status" sawsdl:modelReference="http://iec.ch/TC57/2010/CIMschema-cim15#Status"> <xs:annotation> <xs:documentation>Current status information relevant to an entity.</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="dateTime" type="xs:dateTime" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Status.dateTime"> <xs:annotation> <xs:documentation>Date and time for which status 'value' applies.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="reason" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Status.reason"> <xs:annotation> <xs:documentation>Reason code or explanation for why an object went to the current status 'value'.</xs:documentation>
A-54
</xs:annotation> </xs:element> <xs:element name="remark" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Status.remark"> <xs:annotation> <xs:documentation>Pertinent information regarding the current 'value', as free form text.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="value" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Status.value"> <xs:annotation> <xs:documentation>Status value at 'dateTime'; prior status changes may have been kept in instances of activity records associated with the object to which this status applies.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="UsagePoint" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#UsagePoint"> <xs:annotation> <xs:documentation>Logical or physical point in the network to which readings or events may be attributed. Used at the place where a physical or virtual meter may be located; however, it is not required that a meter be present.</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="mRID" type="xs:string" minOccurs="0" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#IdentifiedObject.mRID"> <xs:annotation> <xs:documentation>A Model Authority issues mRIDs. Given that each Model Authority has a unique id and this id is part of the mRID, then the mRID is globally unique.</xs:documentation> <xs:documentation>Global uniqeness is easily achived by using a UUID for the mRID. It is strongly recommended to do this.</xs:documentation> <xs:documentation>For CIMXML data files the mRID is mapped to rdf:ID or rdf:about attributes that identifies CIM object elements.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="Names" type="m:Name" minOccurs="0" maxOccurs="unbounded" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schemacim15#IdentifiedObject.Names"> <xs:annotation> <xs:documentation>All names of this identified object.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence>
A-55
</xs:complexType> <xs:simpleType name="StringQuantity" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#StringQuantity"> <xs:annotation> <xs:documentation>Quantity with string value (when it is not important whether it is an integral or a floating point number) and associated unit information.</xs:documentation> </xs:annotation> <xs:restriction base="xs:string"/> </xs:simpleType> </xs:schema>
A-56
B-1
The Electric Power Research Institute Inc., (EPRI, www.epri.com) conducts research and development relating to the generation, delivery and use of electricity for the benefit of the public. An independent, nonprofit organization, EPRI brings together its scientists and engineers as well as experts from academia and industry to help address challenges in electricity, including reliability, efficiency, health, safety and the environment. EPRI also provides technology, policy and economic analyses to drive long-range research and development planning, and supports research in emerging technologies. EPRIs members represent more than 90 percent of the electricity generated and delivered in the United States, and international participation extends to 40 countries. EPRIs principal offices and laboratories are located in Palo Alto, Calif.; Charlotte, N.C.; Knoxville, Tenn.; and Lenox, Mass. Together...Shaping the Future of Electricity
Program: IntelliGrid
2011 Electric Power Research Institute (EPRI), Inc. All rights reserved. Electric Power Research Institute, EPRI, and TOGETHER...SHAPING THE FUTURE OF ELECTRICITY are registered service marks of the Electric Power Research Institute, Inc.
1024444
Electric Power Research Institute 3420 Hillview Avenue, Palo Alto, California 94304-1338PO Box 10412, Palo Alto, California 94303-0813 USA 800.313.3774 650.855.2121askepri@epri.comwww.epri.com