Professional Documents
Culture Documents
2 DRAFT
3
4 ANSI C12.19-2012
5
6
7
8
9
10
11
12
13
14
15
16 American National Standard
17
18
19 For Utility Industry
20 End Device
21 Data Tables
22
23
24
25
26
27
28
29
30
31 Secretariat:
32
33 National Electrical Manufacturers Association
34
35 IEEE Number: 1377-2012
36 Measurement Canada Number: MC12.19-2012
37
38 Approved XXXX XX, XXXX
39 Revised October 17, 2012
40
41 American National Standards Institute, Inc.
42
DRAFT ANSI C12.19-2012
79
80
81
Approval of an American National Standard requires verification by
AMERICAN ANSI that the requirements for due process, consensus, and other
NATIONAL criteria for approval have been met by the standards developer.
82 Published by
83
84 National Electrical Manufacturers Association
85 1300 North 17th Street, Rosslyn, VA 22209
86
87 Copyright 2012 by National Electrical Manufacturers Association
88 All rights reserved including translation into other languages, reserved under the Universal Copyright
89 Convention, the Berne Convention for the Protection of Literary and Artistic Works, and the International
90 and Pan American Copyright Conventions.
91
92 No part of this publication may be reproduced in any form, in an electronic retrieval system or otherwise, without the
93 prior written permission of the publisher.
94
95 Printed in the United States of America
i
DRAFT ANSI C12.19-2012
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118 This page intentionally left blank.
ii
DRAFT ANSI C12.19-2012
iii
DRAFT ANSI C12.19-2012
vi
DRAFT ANSI C12.19-2012
381 I.2 TDL XML File Format of the TDL Document .......................................................................................... 438
382 I.2.1 <tdl> Root Element................................................................................................................................ 438
383 I.2.1.1 <tdl> DTD...................................................................................................................................................... 438
384 I.2.1.2 <tdl> Attributes .............................................................................................................................................. 438
385 I.2.1.3 <tdl> Document Form .................................................................................................................................... 439
386 I.2.2 <description> element ........................................................................................................................... 439
387 I.2.2.1 <description> DTD ........................................................................................................................................ 440
388 I.2.2.2 <description> Attributes ................................................................................................................................ 440
389 I.2.2.3 <description> Child Elements ........................................................................................................................ 440
390 I.2.2.4 <description> Child DTDs ............................................................................................................................. 440
391 I.2.2.5 <description> Child Elements Summary........................................................................................................ 442
392 I.2.2.6 <p> Attributes ................................................................................................................................................ 443
393 I.2.2.7 <blockquote> Attributes ................................................................................................................................ 443
394 I.2.2.8 <ol> Attributes ............................................................................................................................................... 443
395 I.2.2.9 <ul> Attributes ............................................................................................................................................... 443
396 I.2.2.10 <ol> and <ul> subelement usage ............................................................................................................... 444
397 I.2.2.11 <dt> and <dd> subelement usage of <dl>.................................................................................................. 444
398 I.2.2.12 <object> Attributes .................................................................................................................................... 444
399 I.2.2.13 <table> Attributes ...................................................................................................................................... 445
400 I.2.2.14 <caption>, <col>, <thead>, <tfoot> and <tbody> sub-element usage of <table> ...................................... 445
401 I.2.2.15 <description> Document Form .................................................................................................................. 446
402 I.2.2.16 <extension> Element ................................................................................................................................. 447
403 I.2.2.17 <extension> DTD ...................................................................................................................................... 447
404 I.2.2.18 <extension> Attributes .............................................................................................................................. 447
405 I.2.2.19 <extension> Document Form .................................................................................................................... 447
406 I.2.3 <assert> Element ................................................................................................................................... 448
407 I.2.3.1 <assert> DTD (named) ................................................................................................................................... 448
408 I.2.3.2 <assert> Attributes ......................................................................................................................................... 448
409 I.2.4 <enumerator> Element .......................................................................................................................... 448
410 I.2.4.1 <enumerator> DTD (named) .......................................................................................................................... 448
411 I.2.4.2 <enumerator> Attributes (named) .................................................................................................................. 449
412 I.2.4.3 <enumerator> Document Form (named) ........................................................................................................ 451
413 I.2.5 Constant enumerated values of <enumerator> (named) ........................................................................ 452
414 I.2.5.1 Constant enumerated values DTD .................................................................................................................. 452
415 I.2.5.2 <enumerator> DTD (un-named) .................................................................................................................... 452
416 I.2.6 <enum> Element (Child of <enumerator>) ........................................................................................... 452
417 I.2.6.1 <enum> DTD ................................................................................................................................................. 453
418 I.2.6.2 <enum> Attributes ......................................................................................................................................... 453
419 I.2.6.3 <enum> Document Form ............................................................................................................................... 453
420 I.2.7 <default> element (Child of <enumerator> element) ............................................................................ 454
421 I.2.7.1 <default> DTD ............................................................................................................................................... 454
422 I.2.7.2 <default> Attributes ....................................................................................................................................... 454
423 I.2.7.3 <default> Document Form ............................................................................................................................. 454
424 I.2.8 <packedRecord> Element ...................................................................................................................... 454
425 I.2.8.1 <packedRecord> DTD ................................................................................................................................... 455
426 I.2.8.2 <packedRecord> Attributes ........................................................................................................................... 455
427 I.2.8.3 <packedRecord> Document Form ................................................................................................................. 457
428 I.2.9 <element> Element (Child of <packedRecord>) ................................................................................... 458
429 I.2.9.1 <element> DTD ............................................................................................................................................. 458
430 I.2.9.2 <element> Attributes...................................................................................................................................... 458
431 I.2.9.3 <element> Document Form ........................................................................................................................... 459
432 I.2.10 <array> Element (Child of <packedRecord>) ................................................................................... 460
433 I.2.10.1 <array> DTD ............................................................................................................................................. 460
434 I.2.10.2 <array> Attributes...................................................................................................................................... 460
435 I.2.10.3 <array> Document Form ........................................................................................................................... 462
436 I.2.11 <set> Element (Child of <packedRecord> element) .......................................................................... 462
437 I.2.11.1 <set> DTD ................................................................................................................................................. 462
438 I.2.11.2 <set> Attributes ......................................................................................................................................... 463
439 I.2.11.3 <set> Document Form ............................................................................................................................... 464
440 I.2.12 <if> Element (Child of <packedRecord>) ......................................................................................... 464
viii
DRAFT ANSI C12.19-2012
xi
DRAFT ANSI C12.19-2012
xii
DRAFT ANSI C12.19-2012
631 Foreword (This Foreword is not part of American National Standard C12.19-2012.)
632 The ANSI C12.19 standard provides a common data structure and descriptors for use in transferring data
633 to and from utility End Devices, typically meters and head-ends. It has been developed with
634 consideration of input from utilities, meter vendors, automated meter reading service companies, ANSI,
635 Measurement Canada (for Industry Canada), NEMA, IEEE, Utilimetrics, NIST, SGIP, AEIC, and other
636 interested parties nationally and internationally. This release of the Standard accommodates the concept
637 of an advanced metering infrastructure (AMI) such as that identified by the Office of Electricity Delivery
638 and Energy Reliability of the U.S. Department of Energy; the Smart Metering Initiative of the Ontario
639 Ministry of Energy (Canada) and the stated requirements of Measurement Canada for the approval of a
640 metering device for use in Canada.
641
642 ANSI C12.19 Tables are organized into functional groups known as decades (nominally ten Tables per
643 decade). The ANSI C12.19 Standard contains up to 2040 “Standard Tables” that are fully described in
644 the Standard. In addition, provisions were made for an additional 2040 “Manufacturers’ Tables” so that
645 future innovations can be implemented utilizing the extension framework and mechanisms specified by
646 the semantic model of this ANSI C12.19 Standard. These mechanisms facilitate the possibility of future
647 inclusion of Manufacturer-defined Tables into future publications of the Standard. The Standard provides
648 the means for the inclusion of Manufacturer-defined Tables into End Devices through designation of new
649 Device Classes.
650
651 Another set of 2040 “Extended User-defined Tables” is available for End Devices that have a need for
652 extremely low communications overhead and a high need for compaction of data. The User Defined
653 Tables and the Extended User-defined Tables aggregate elements of information from other Tables
654 (Standard Tables Elements or Manufacturer Table Elements). These “Formal Elements” can be bundled
655 into “virtual” Tables for transmission.
656
657 The Standard defines “Pending” attributes for Standard Tables, Manufacturer Tables, Standard
658 Procedures, Manufacturer Procedures and Extended User-defined Tables; for use in applications such as
659 End Device deferred programming, and End Device firmware upgrades with activation and roll-back
660 capabilities. The Pending Tables also facilitate event driven and synchronized actionable communication
661 for use by enterprise systems (such as head-end system) that communicate with a multitude of C12.19
662 devices in an AMI network of a Smart Grid.
663
664 The Standard’s flexibility presents a challenge to system developers, to equipment vendors, and to
665 utilities and customers alike. System developers must continue to provide the capability of processing
666 multiple data formats from the End Devices. The obvious advantage of ANSI C12.19 is that the semantic
667 rules and semantic model of the Table structures can be published using machine-readable TDL/XML
668 (structure) and EDL/XML (enterprise exchange data) Forms, in addition to the human readable (Standard
669 Document) Forms. TDL/XML and EDL/XML together with their derivative products (such as the human
670 readable forms) are expected to be accessible through accredited registries via the Internet or other
671 readily available means.
672
673 All registration authorities that recognize registrars are governed by ANSI C12 and IEEE SCC31. To be
674 recognized, any registration authority is expected to adhere to the requirements specified in this standard.
675 See Annex J, “(normative) Universal Identifier”.
676
677 The ANSI C12.19 Standard provides mechanisms and identifies means to access the Table data. For
678 this reason, it is expected that data acquisition AMI products should be capable of processing data from
679 any End Device that follows the access rules defined by ANSI C12.19 and associated communication
680 protocols (such as ANSI C12.18, ANSI C12.21 and ANSI C12.22) and services. The End Device’s table
681 of contents is provisioned by ANSI C12.19 Table 0 – General Configuration Table. Access to Standard
682 Table 0, function limiting Tables (of the Decades), and information found in device control Tables can be
683 combined with ANSI C12.19 Device Class information to gain the necessary information about “End
684 Devices” for improved efficiency and interoperability.
xiii
DRAFT ANSI C12.19-2012
685
686 Although this Standard covers a broad range of functionality, it does not follow that implementations of
687 the Standard need to be large or complex. Implementers and users are encouraged to choose an
688 appropriate functionality subset that is suitable for their needs. Therefore, it is very unlikely for any one
689 End Device to embed all tables or even the majority of the tables described herein. Implementers and
690 users are encouraged to deploy their desired functionalities using complete and consistent suites of
691 Standard Tables from Standard Decades to the largest extent practical for the desired functionality of the
692 device.
693
694 The third release of this Standard is a minor release in that it establishes a new baseline document that
695 includes all of the corrections that were applied in Annex N, “Listing of editorial errors and errors of
696 omission in ANSI C12.19-2008” of IEEE Std 1377™-2012.
697
698 The notable differences and corrections that exist in this release of the standard relative to its
699 predecessor ANSI C12.19-2008 are listed below:
700
701 1. Document is formatted according to IEEE Standards Template.
702 2. New clause “1.1 Purpose” was introduced to clause “1 Scope”.
703 3. Introduced new references to clause “2 Normative Reference”
704 a. AEICGL : 2010 – Smart Grid/AEIC AMI Interoperability Standard Guidelines for ANSI
705 C12.19 / IEEE 1377 / MC12.19 End Device Communications and Supporting Enterprise
706 Devices, Network and related accessories, The Association of Edison Illuminating
707 Companies (AEIC), v2.0, 2010.
708 b. ANSI C12.19, American National Standard for Utility Industry End Device Data Tables.
709 c. ANSI C12.19-1997, American National Standard for Utility Industry End Device Data
710 Tables.
711 d. ANSI C12.19-2008, American National Standard for Utility Industry End Device Data
712 Tables
713 e. FERC-727-728-2008, Federal Energy Regulatory Commission, Survey on Demand
714 Response, Time-Based Rate Programs/Tariffs and Advanced Metering Infrastructure
715 Glossary, FERC-727 and FERC-728, OMB Control Nos. 1902-0214 & 1902-0213.
716 f. IEEE Std 1377™-1998, IEEE Standard for Utility Industry End Device Data Tables
717 g. MC S-EG-02-2010, Measurement Canada Specifications for Approval of Physical Sealing
718 Provisions for Electricity and Gas Meters, S-EG-02 (rev. 1).
719 h. XHTML-2002, XHTML 1.0 The Extensible HyperText Markup Language (Second
720 Edition). W3C Recommendation 26, 2000, revised 2002.
721 i. XML-2006, Extensible Markup Language (XML) 1.1 (Second Edition), W3C
722 Recommendation 16.
723 j. XMLSchema-2004, XML Schema Part 1: Structures (Second Edition), W3C
724 Recommendation 28.
725 k. XMLSig-2008, XML Signature Syntax and Processing (Second Edition), W3C
726 Recommendation 10.
727 4. Moved references to URLs into page footnotes.
728 5. Moved clause “2.2 Other” to “Annex M – (informative) Bibliography”.
729 6. Added reference to the “IEEE-SA Standards Definitions Database” in clause “3 Definitions”.
730 7. Remove numbers from the definitions in clause “3 Definitions”.
731 8. Replaced Procedure Property “extend” with “type” in clause “4.2.3 Manufacturer Procedure
732 Properties”.
733 9. Replaced all references to word “byte” with “Octet”
734 10. Introduced Element-name aliases for backward compatibility with ANSI C12.19-1997, ANSI
735 C12.19-2008 and IEEE Std 1377-1998.
736 11. Introduced allowance for GEN_CONFIG_TBL.MODEL_SELECT of 1 in clause “6.4.4
737 SOURCE_SELECT_RCD”.
738 12. Swapped the terms “target” and “initiating” in clause “8.1.1 Read Service”.
739 13. Corrected the description of Offset/Octet-Count Method in clause “8.1.1 Read Service”.
xiv
DRAFT ANSI C12.19-2012
740 14. Corrected the description of Offset/Octet-Count Method in clause “8.1.2 Write Service”.
741 15. Corrected the TDL Type Definitions syntax in clause “8.2 Pending Event Description”.
742 16. Added missing descriptions to TDL Element Descriptions in clause “8.2 Pending Event
743 Description”.
744 17. Corrected the TDL Element Descriptions true/false and high/low sense in clause “8.2 List
745 Management Description”.
746 18. Updated MODEL_SELECT in clause “9.1.1 Table 00 General Configuration Table” to provide
747 reference to the AEIC Guidelines Version 2 [AEICGL : 2010].
748 19. Updated the description of DEVICE_CLASS in clause “9.1.1 Table 00 General Configuration
749 Table” to indicate that the last arc tracks the value of MODEL_SELECT.
750 20. Updated the descriptions of STD_VERSION_NO and STD_REVISION_NO in clause “9.1.1 Table
751 00 General Configuration Table”.
752 21. Corrected duplication in syntax of Table 04 Type Definitions in clause “9.1.5 Table 04 Pending
753 Status Table”.
754 22. Recast and updated descriptions of GPS COORDINATE_1, COORDINATE_2 and
755 COORDINATE_3 in terms of definitely structured STRINGs in clause “9.1.7 Table 06 Utility
756 Information Table”.
757 23. Corrected and replaced the terms “off/on” with “disconnect/connect” in the definition of
758 NEW_LEVEL in clause “9.1.10.22 Procedure 21 Direct Load Control”.
759 24. Updated Decade 1 Data Description in clause “9.2 Decade 1: Data Source Tables” to correctly
760 reflect changes in MODEL_SELECT values.
761 25. Corrected UOM values above 220 in clause “9.2.3 Table 12 Units of Measure Entry Table”.
762 26. Corrected ID_RESOURCE values above 23 in clause “9.2.3 Table 12 Units of Measure Entry
763 Table”.
764 27. Added security best practice recommendation to note in clause “9.5.3 Table 42 Security Table”.
765 28. Added security best practice recommendation to note in clause “9.5.6 Table 45 Key Table”
766 29. Corrected description of TIME_ZONE_OFFSET in clause “9.6.4 Table 53 Time Offset Table”.
767 30. Introduced SIG_ALGORITHM Element to facilitate the introduction of hash functions that comply
768 with FIPS PUB 180-2 in clause “9.8.1 Table 70 Log Dimension Limits Table”.
769 31. Introduced SIG_ALGORITHM Element to facilitate the introduction of hash functions that comply
770 with FIPS PUB 180-2 in clause “9.8.2 Table 70 Actual Log Limiting Table”.
771 32. Revised hash function algorithm descriptions in clause “9.8.9 Table 78 End Device Program State
772 Table” to reflect the changes made to ACT_LOG_TBL and ACT_LOG_TBL Elements
773 SIG_ALGORITHM.
774 33. Corrected description of Element LEVEL_SUPPORTED_FLAG in clause “9.12.3 Table 112 Load
775 Control Status”.
776 34. Added citations IEEE Std 1159-1995 (R2001) and IEEE Std 519-1992 description section of
777 clause “9.16 Decade 15: Quality-of-service”.
778 35. Corrected Table role and accessibility properties and reorganized descriptions in clause
779 “9.16.4Table 153 Quality-of-service Incidents Table”
780 36. Corrected Table role and accessibility properties in clause “9.16.5 Table 154 Quality-of-service
781 Log Table”.
782 37. Corrected Table role and accessibility properties in clause “9.17.4 Table 163 One-way Data
783 Table”.
784 38. Modified unit of measures in COMMODITY_OUTAGE_DUTY_BFLD from seconds to minutes in
785 clause “9.17.4 Table 163 One-way Data Table”.
786 39. Updated the algorithm description of Element READ_VALUE in clause “B.2 Logger Arguments
787 Implementation Details”.
788 40. Revised BNF definition of constIdentifier in clause “G.4 Identifiers”.
789 41. Corrected BNF definition of element in clause “G.6.1.2 Container scopes”.
790 42. Deleted BNF definitions of constType and constMember and associated example from clause
791 “G.12 Constants” to reflect revisions to constIdentifier to clause “G.4 Identifiers”.
792 43. Revised BNF definitions of syntax from clause “G.17 Document Form Starting Production Rule” to
793 reflect revisions to constIdentifier to clause “G.4 Identifiers”.
794 44. Corrected DTD definitions for object and table in clause “I.2.1.7 <description> Child DTDs”.
xv
DRAFT ANSI C12.19-2012
795 45. Inserted missing description for object in clause “I.2.1.15 <object> Attributes”.
796 46. Inserted missing description for table in clause “I.2.1.16 <table> Attributes”.
797 47. Inserted missing descriptions for table members in clause “I.2.1.17 <caption>, <col>, <thead>,
798 <tfoot> and <tbody> sub-element usage of <table>”.
799 48. Updated examples in clause “I.2.1.18 <description> Document Form”.
800 49. Revised DTD definition of enumerator in clause “I.2.1.25 <enumerator> DTD (named)” to reflect
801 revisions to constIdentifier to clause “G.4 Identifiers”.
802 50. Deleted definition of <positional> in clause “I.2.1.27 <enumerator> DTD (named)” to reflect
803 revisions to constIdentifier to clause “G.4 Identifiers”.
804 51. Revised clause “I.2.1.28 Constant enumerated values DTD”.
805 52. Revised clause “I.2.1.29 <enumerator> DTD (un-named)”.
806 53. Revised clause “I.2.1.30 <enum> DTD”.
807 54. Revised clause “I.2.1.31 <enum> Attributes”.
808 55. Updated example in clause “I.2.1.32 <enum> Document Form”.
809 56. Corrected definition of element in clause “I.2.1.39 <element> DTD”.
810 57. Corrected definition of else in clause “I.2.1.55 <else> DTD”.
811 58. Corrected definition of switch in clause “I.2.1.58 <switch> DTD”.
812 59. Corrected definition of case in clause “I.2.1.62 <case> DTD”.
813 60. Corrected definitions in clause “I.2.1.69 <bitField> DTD”.
814 61. Corrected definition of switch in clause “I.2.1.84 <switch> DTD”.
815 62. Corrected definition of table in clause “I.2.1.108 <table> DTD definition”.
816 63. Corrected definition of packedRecord in clause “I.2.1.114 < packedRecord > DTD”.
817 64. Corrected definition of bitField in clause “I.2.1.116 <bitField> DTD”.
818 65. Corrected definition of tableName in clause “I.3.1.5 <description> Document Form”.
819 66. Inserted copyright notice in clause “I.3.1.5 <description> Document Form”.
820 67. Inserted documentation about schema constraints issues in clause “I.3.1.6 The Schema
821 Constraints Problem”.
822 68. Corrected type mapping in clause “I.4 EDL XML Form Encoding of Final Element Values”.
823 69. Updated device class registration information in clause “ANNEX J: Universal Identifier”.
824 70. Corrected section numbering in clause “ANNEX L: Registering or Updating DEVICE CLASS
825 OID”.
826
827
828 Members of ASC 12 SC 17 WG2 wish to thank and extend their deepest appreciation for the significant
829 contribution of the balloting members of IEEE P1377, the AEIC AMTIT members, NIST and SGIP/PAP5
830 and SGIP/PAP6 members, who provided invaluable input into the making of this revision of the Standard.
831
832 Interpretation requests for, questions about, or suggestions for improvement to this Standard are
833 welcome. They should be sent to:
834
835 National Electrical Manufacturers Association
836 Vice President, Technical Services
837 1300 North 17th Street
838 Suite 1752
839 Rosslyn, VA 22209
840
841 The Secretariat of the Accredited Standards Committee on Electricity Metering, C12, is held by the National
842 Electrical Manufacturers Association (NEMA) and the National Institute of Standards and Technology. At the
843 time this standard was processed and approved, the C12 Committee had the following members:
844
845 Tom Nelson, Chairman
846 Paul Orr, Secretary
847
848 Organization Represented: Name of Representative:
849
850 Georgia Power Larry Barto
xvi
DRAFT ANSI C12.19-2012
xvii
DRAFT ANSI C12.19-2012
xviii
DRAFT ANSI C12.19-2012
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910 This page intentionally left blank.
911
912
913
914
xix
915 AMERICAN NATIONAL STANDARD ANSI C12.19-2012
916
917 Utility Industry End Device Data Tables
918
919
920 1 Overview
922 This standard defines a Table structure for utility application data to be passed between an End Device and any other
923 device. It neither defines device design criteria nor specifies the language or protocol used to transport that data. The
924 Tables defined in this standard represent a data structure that shall be used to transport the data, not necessarily the
925 data storage format used inside the End Device.
927 The Utility Industry has a need for a standard that provides an interoperable “plug-and-play” environment for field
928 metering devices. The purpose of this standard is to define the framework and data structures for transporting Utility
929 End Device data to and from End Devices and for use by enterprise systems.
930 This standard is intended to accommodate the concept of an advanced metering infrastructure such as that identified
931 by the Office of Electricity Delivery and Energy Reliability of the U.S. Department of Energy; the Smart Metering
932 Initiative of the Ontario Ministry of Energy (Canada); and the stated requirements of Measurement Canada for the
933 approval of a metering device for use in Canada.
934 This standard is to provide a uniform, structured, and adaptive data model, such that Utility End Devices and
935 ancillary devices (e.g., home appliances and communication technology) can operate in a “plug-and-play” and
936 multisource enterprise Advanced Metering Infrastructure (AMI) environment.
937 This standard extends the definitions provided by IEEE Std 1377-1998 to include provisions for enterprise-level
938 asset management, data management, and uniform data exchange capability, through the use of common and
939 managed Extensible Markup Language (XML)/Table Definition Language (TDL) and XML/Exchange Data
940 Language (EDL) End Device Class models.
1
DRAFT ANSI C12.19-2012
946 AEICGL-2010, Smart Grid/AEIC AMI Interoperability Standard Guidelines for ANSI C12.19 / IEEE 1377 /
947 MC12.19 End Device Communications and Supporting Enterprise Devices, Network and Related Accessories, The
948 Association of Edison Illuminating Companies (AEIC), v2.0, 2010.1
949 ANSI C12.10-2011, American National Standard for Physical Aspects of Watthour Meters—Safety Standard.2
950 ANSI C12.19, American National Standard for Utility Industry End Device Data Tables.
951 ANSI C12.19-1997, American National Standard for Utility Industry End Device Data Tables.
952 ANSI C12.19-2008, American National Standard for Utility Industry End Device Data Tables.
953 ANSI X9.31-1998, Public Key Cryptography Using Reversible Algorithms for the Financial Services Industry
954 (rDSA).
955 AS 4140-1995, Australian Standard, Metering and Utility Information Exchange—Glossary of Terms.3
956 ECMA 94-1996, 8-Bit Single-Byte Coded Graphic Character Sets—Latin Alphabets No. 1 to No. 4-2nd Edition.4
957 FERC-727-728-2008, Federal Energy Regulatory Commission, Survey on Demand Response, Time-Based Rate
958 Programs/Tariffs and Advanced Metering Infrastructure Glossary, FERC-727 and FERC-728, OMB Control Nos.
959 1902-0214 & 1902-0213.5
960 IEEE Std 1377™-1998, IEEE Standard for Utility Industry End Device Data Tables.6, 7
961 IEEE Std 519™-1992, IEEE Recommended Practices and Requirements for Harmonic Control in Electrical Power
962 Systems.
963 IEEE Std 754™-2008, IEEE Standard for Binary Floating-Point Arithmetic.
964 IEEE Std 1159™-1995, IEEE Recommended Practice for Monitoring Electric Power Quality.
965 IEEE Std C57.123™-2010, IEEE Guide for Transformer Loss Measurement.
966 IEC 62053-23-2003, Electricity Metering Equipment (a.c.)—Particular Requirements—Part 23: Static Meters for
967 Reactive Energy (classes 2 and 3).8
1
AEIC publications are available from The Association of Edison Illuminating Companies (http://www.aeic.org/). This document is available
from http://www.aeic.org/meter_service/AEICSmartGridStandardv2-11-19-10.pdf.
2
ANSI publications are available from the American National Standards Institute (http://www.ansi.org/).
3
AS publications are available from Standards Australia (http://www.standards.org.au/Pages/default.aspx).
4
ECMA publications are available from the European Computer Manufacturers Association (http://www.ecma-international.org/).
5
FERC publications are available from the Federal Energy Regulatory Commission (http://www.ferc.gov/).
6
IEEE publications are available from The Institute of Electrical and Electronics Engineers (http://standards.ieee.org/).
7
The IEEE standards or products referred to in this clause are trademarks of The Institute of Electrical and Electronics Engineers, Inc.
8
IEC publications are available from the International Electrotechnical Commission (http://www.iec.ch/). IEC publications are also available in
the United States from the American National Standards Institute (http://www.ansi.org/).
2
DRAFT ANSI C12.19-2012
971 ISO 8859-1-1998, Information Technology—8-bit Single-byte Coded Graphic Character Sets—Part 1: Latin
972 Alphabet No 1.9
973 ISO/IEC 646-1991, Information Technology—ISO 7-bit Coded Character Set for Information Interchange.10
974 ISO/IEC 7498-1-1994, Information Technology—Open Systems Interconnection—Basic Reference Model: The
975 Basic Model.
979 ISO/IEC 10646-2011, Information Technology—Universal Multiple-Octet Coded Character Set (UCS).
980 MC S-EG-02-2010, Measurement Canada Specifications for Approval of Physical Sealing Provisions for Electricity
981 and Gas Meters, S-EG-02 (rev. 1).11
982 XHTML-2002, XHTML 1.0 The Extensible HyperText Markup Language (Second Edition). W3C
983 Recommendation 26, 2000, revised 2002.12
984 XML-2006, Extensible Markup Language (XML) 1.1 (Second Edition), W3C Recommendation 16.13
985 XMLSchema-2004, XML Schema Part 1: Structures (Second Edition), W3C Recommendation 28.14
986 XMLSig-2008, XML Signature Syntax and Processing (Second Edition), W3C Recommendation 10.15
9
ISO publications are available from the ISO Central Secretariat (http://www.iso.org/). ISO publications are also available in the United States
from the American National Standards Institute (http://www.ansi.org/).
10
ISO/IEC publications are available from the ISO Central Secretariat (http://www.iso.org/). ISO publications are also available in the United
States from the American National Standards Institute (http://www.ansi.org/).
11
MC publications are available from Measurement Canada (http://www.ic.gc.ca/eic/site/mc-mc.nsf/eng/home).
12
World Wide Web (W3) Consortium publications are available from the World Wide Web Consortium (http://www.w3.org/). This document is
available at http://www.w3.org/TR/xhtml1.
13
This document is available at http://www.w3.org/TR/xml11.
14
This document is available at http://www.w3.org/TR/xmlschema-1.
15
This document is available at http://www.w3.org/TR/xmldsig-core.
Normative references 3
DRAFT ANSI C12.19-2012
987 3 Definitions
988 For the purposes of this document, the following terms and definitions apply. The IEEE Standards Dictionary
989 Online [B10] should be consulted for terms not defined in this clause. 16, 17
990 The definitions used in this standard have been derived from the sources cited in Clause 2, “Normative references”,
991 with the exception of those introduced in this standard revision, labeled “[New]”.
992 ACTUAL (ACT): The programmed functional capabilities of an End Device. [ANSI C12.19-1997]
993 Address: Those inputs whose states select a particular cell or group of cells. [IEEE Standards Dictionary]
994 Advanced Metering Infrastructure (AMI): Defined as the communications hardware and software and associated
995 system and data management software that creates a network between advanced meters and utility business systems
996 and which allows collection and distribution of information to customers and other parties such as competitive retail
997 providers, in addition to providing it to the utility itself. [FERC-727-728-2008]
998 Alias: An alternative name of a Table, Procedure, Element, or a derived type. An alias name can be used as an
999 alternative when making references to Tables, Procedures, Elements, or derived types. Example: Table 0 of
1000 ANSI C12.19-1997 contains the Element MANUFACTURER, whereas this standard renamed it to
1001 DEVICE_CLASS, and defined it to be an alias to MANUFACTURER for backward compatibility. All references
1002 to MANUFACTURER and DEVICE_CLASS refer to the same Element.
1003 ARRAY: In text form, “Array” or “array,” a grouping of repetitions of the same data type, used to describe a single
1004 Element. [New]
1005 BIT FIELD (BFLD): In text form, “Bit Field” or “bit field” is a collection of data subelements, each spanning one
1006 or more of bits, that may not be aligned on an Octet boundary nor span an integral multiple of Octets. Multiple
1007 occurrences of these subelements are grouped (packed) together so that the entire collection of bits ends on an Octet
1008 boundary. For purposes of transmission, the entire group of bits is treated as an Atomic Element having the type of
1009 unsigned integer. [New]
1010 Block: A collection of interval-based Register values spanning one or more channels. [New]
1011 Channel: A single path for the collection of interval-based Register values over a period of time. [New]
1012 Clock: A device that generates periodic signals used for synchronization. A device that measures and indicates time.
1013 A register whose content changes at regular intervals in such a way as to measure time. [ANSI C12.19-1997]
1014 Count: The number of Octets selected when using the Offset/Octet-count partial Table access method.
1015 [ANSI C12.19-1997]
1016 Cumulative Demand: Summation of Maximum Demands during the preceding periods is indicated during the
1017 period after the meter has had a demand reset performed and before it has been reset again. Note that the maximum
1018 demand for any one demand interval is equal or proportional to the difference between the accumulated readings
1019 before and after reset. [IEEE Standards Dictionary]
1020 Customer: The purchaser/user of a product or service supplied by a service provider or utility. [AS 4140-1995]
1021 Data Encryption: The changing of the form of a data stream such that only the intended recipient can read or alter
1022 the information and detect unauthorized messages. [ANSI C12.19-1997]
16
The IEEE Standards Dictionary Online subscription is available at http://www.ieee.org/portal/innovate/products/standard/
standards_dictionary.html.
17
The numbers in brackets correspond to those of the bibliography in Error! Reference source not found..
4
DRAFT ANSI C12.19-2012
1023 Decade: A functional grouping of Tables by application into groups of ten. The Tables are numbered “X0” through
1024 “X9”, with “X” representing the Decade number. [ANSI C12.19-1997]
1025 Default Set: Element-values provided when FLC Tables or FLC+1 Tables of any Decade are not used by the End
1026 Device. This standard provides Default Set Element-values for all FLC and FLC+1 Table-elements. End Device
1027 vendors may provide Default Set Element-values for any Manufacturer-defined Decades FLC and FLC+1 using
1028 EDL. [New]
1029 Demand: The consumption (e.g., energy and volume) recorded during the integration time period divided by the
1030 integration time period. [ANSI C12.19-1997]
1031 Demand, Block: An average value (e.g., Watthours/hours) occurring over a Demand period specified by the End
1032 Device. This value may be used by the End Device for maximum or minimum registration computation.
1033 [ANSI C12.19-1997]
1034 Demand, Maximum: The highest Demand measured over a selected period of time. Also referred to as “Peak
1035 Demand.” [ANSI C12.19-1997]
1036 Demand, Minimum: The lowest Demand measured over a selected period of time. [ANSI C12.19-1997]
1037 Demand, Present: Demand occurring during the present Demand interval or subinterval (e.g., Watts or VA).
1038 [ANSI C12.19-1997]
1039 Demand, Sliding Window (Rolling-Interval): The Block Demand calculated over an integration period that
1040 includes subintervals of previous Demand calculations. [ANSI C12.19-1997]
1041 Deprecated: Outdated or superseded. Deprecated syntax. Tables or Elements that are defined in the standard or in
1042 the Manufacturer reference documentation of the End Device (TDL) and are clearly marked as deprecated in the
1043 document.
1044 DIMENSION (DIM): The maximum functional capability designed into an End Device. (See the discussion in
1045 4.1.1, “Standard Tables grouping”, on the Function Limiting Control (FLC) Table.) [ANSI C12.19-1997]
1046 Document Type Definition (DTD): The XML document type declaration contains or points to markup declarations
1047 that provide a grammar for a class of documents. This grammar is known as a document type definition or DTD.
1048 The document type declaration can point to an external subset (a special kind of external entity) containing markup
1049 declarations, can contain the markup declarations directly in an internal subset, or can do both. The DTD for a
1050 document consists of both subsets taken together. [Reprinted from W3C Recommendation, Extensible Markup
1051 Language (XML) 1.1 (Second Edition)18 © 2006 W3C, XML-2006]
1052 Element: The union of all Atomic Elements that share the same index prefix. An Element can be any type, a set, an
1053 array, or a selection from an array. [ANSI C12.19-1997]
1054 Element, Atomic: A restricted subset of an Element that is the smallest component of an Element that can be
1055 transmitted as an integral number of Octets without loss of its meaning or interpretation during transmission, in
1056 accordance with Octet ordering and bit packing. [New]
1057 Element, Final: An innermost expression of an Atomic Element or a Sub-element. This expression can be used to
1058 retrieve a single value. Only Final Elements can be used in calculations. Decade names, Table names, Procedure
1059 names, and constants are also Final Elements, when used in a calculation. The value returned by Decade, Table, and
1060 Procedure names is their corresponding number. The value returned by a constant is the constant’s assigned value.
1061 [New]
18
This document is available at http://www.w3.org/TR/xml11.
Definitions 5
DRAFT ANSI C12.19-2012
1062 Element, Volatile: A Table Element whose values may change asynchronously by means other than reading or
1063 writing Tables. Two consecutive reads of the same Table Element may yield different values due to real-time
1064 changes to the End Device Register, sensed values, state, or status. [New]
1065 Element-count: The number of Elements selected when using the Index/Element-count partial Table access
1066 method. The Elements selected are derived from the serialization of all Elements, starting with the one identified by
1067 the index, sequentially, which share part or all of the selection index prefix. [ANSI C12.19-1997]
1068 End Device: The closest device to the sensor or control point within a metering application communication system
1069 that is compliant with the Utility Industry End Device Data Tables. [ANSI C12.19-1997]
1070 End Device Agent: The entity responsible for managing the End Device operations and programs. It is capable of
1071 affecting change to the End Device program. It is also responsible for keeping a record of all End Device
1072 programming parameters, constants, change history, and event logger records. The End Device Agent is also
1073 responsible for maintaining and demonstrating continuity between metrological data records and End Device
1074 programs, exclusively through the use of Utility Industry End Device Data Tables. [ANSI C12.19-1997]
1075 Event: A noteworthy occurrence that has a location in time and space, and does not have duration. Event parameters
1076 include information about the state of the End Device before the Event, after the Event, the Event time, and related
1077 Event-identifying information. Event parameters can be made available for inspection directly or indirectly through
1078 a calculable derivative. [Adopted from ANSI C12.19-1997 and The Unified Modeling Reference Language Manual
1079 [B10]]
1080 Event Instance: A specific occurrence of an Event. Each Event Instance is characterized by a set of Event
1081 parameters There are four kinds of Event Instances: Call Event, Change Event, Signal Event, and Time Event.
1082 [Adopted from ANSI C12.19-1997 and The Unified Modeling Reference Language Manual [B10]]
1083 Event Logger Data: The entire content of all Tables designated as Program Tables, all associated pointers, and all
1084 signatures that are expressed by or implied by Event Logger Record for a specific Event. The Event Logger Data
1085 originates initially inside the End Device, but it may extend into the End Device Agent record-keeping system.
1086 [ANSI C12.19-1997]
1087 Event Logger Record: The pointers and signatures that are expressed by or implied by
1088 EVENT_LOG_DATA_TBL.EVENT_LOG_RCD and EVENT_LOG_DATA_TBL.EVENT_ENTRY_RCD to
1089 define the Event Logger Data for a specific Event. [New]
1090 Event, Call: An Event Instance caused by receipt of an explicit synchronous request (e.g., a request to write a Table
1091 by a communication protocol). [Adopted from The Unified Modeling Reference Language Manual [B10]]
1092 Event, Change: An Event Instance caused by change in the value of a Boolean expression (e.g., tamper detect and
1093 change in metering mode). [Adopted from The Unified Modeling Reference Language Manual [B10]]
1094 Event, Signal: An Event Instance caused by explicitly named asynchronous communication among Objects (e.g.,
1095 advancing list pointers as a result of execution of an advance list pointers procedure). [Adopted from The Unified
1096 Modeling Reference Language Manual [B10]]
1097 Event, Time: An Event Instance caused by the occurrence of an absolute time or the passage of a relative amount of
1098 time (e.g., time-of-use schedule invoking a self-read). [Adopted from The Unified Modeling Reference Language
1099 Manual [B10]]
1100 Exchange Data Language (EDL): For encoding, import, and export of Default Sets defined by this standard, Table
1101 Element values retrieved from an End Device, Table Element values to be stored in an End Device, Manufacturer
1102 constant Element-values, and Utility or Customer site-specific constant Element-values that need to be known by
1103 application. The Exchange Data Language Element-values are encoded using XML. [New]
6
DRAFT ANSI C12.19-2012
1104 Extensible Markup Language (XML): A recommendation for a lexical grammar produced by the World Wide
1105 Web Consortium (W3C). XML describes a class of data objects called XML documents and partially describes the
1106 behavior of computer programs that process them. XML is an application profile or restricted form of SGML, the
1107 Standard Generalized Markup Language [ISO 8879]. By construction, XML documents are conforming SGML
1108 documents. [Reprinted from W3C Recommendation, Extensible Markup Language (XML) 1.1 (Second Edition) ©
1109 2006 W3C, XML-2006]
1110 Index: A unique sequence of numbers used to select a Table Element. An Index may be represented in dot-notation
1111 format (text transmission form) or as in binary array (binary transmission form). An Index may reference any Table
1112 Element. [ANSI C12.19-1997]
1113 Interharmonics: Frequencies between the harmonics of the power frequency voltage and current that can be
1114 observed but are not an integer multiple of the fundamental frequency. They can appear as discrete frequencies or as
1115 a wide-band spectrum. [Adapted from IEC/TR 61000-2-1-1990 and the IEEE Standards Dictionary]
1116 Load Profile: The recording, storage, and analysis of consumption data over a period of time for a particular
1117 installation. [ANSI C12.19-1997]
1118 Meter: A device that measures and records the consumption or usage of the product/service. [ANSI C12.19-1997]
1119 Metrological Adjustment: Any physical means or methods designed or used, whether directly or indirectly,
1120 whether intentionally or unintentionally, to alter or correct the measurement characteristics of an End Device or any
1121 of its subsystems that are used for trade measurement purposes. This includes altering or replacing Registers,
1122 components, connections, or internal working parts of the End Device. It also includes the alteration of any
1123 Metrological Parameter that would be made available from the End Device or any of its outputs. Metrological
1124 Adjustments manifest themselves in changes to Metrological Tables. [Adopted from MC S-EG-06-2011 [B7] and
1125 Utility Industry Standard Tables User’s Guide [B8]]
1126 Mode, Factory: A superset of Meter Shop Mode where, in addition, manufacturer limited functions and parameters
1127 are also available for modification. [New]
1128 Mode, Meter Shop: The operating state of the End Device where revenue metering is prohibited. The entry state
1129 and the exit state of the End Device may be unrelated and untraceable. An exit from Meter Shop Mode represents a
1130 new initial state for the End Device. While operating in Meter Shop Mode, all operational safeguards such as
1131 logging, security, and accumulation may be disabled. [New]
1132 Mode, Metering: The operating state of the End Device wherein measured or input quantities are accumulated for
1133 the purpose of revenue metering. [New]
1134 Mode, Test: The operating state of the End Device wherein the Metering Mode state parameters are saved prior to
1135 entry and restored upon exit. [New, Adopted from ANSI C12.1-2001]
1137 Object, Element: An Atomic Element, an Element, a Sub-element, or a Final Element of a Table that can be
1138 described, encoded, or communicated using this standard. [New]
1139 Object, Table: A Table and all the Elements it contains that can be described, encoded, or communicated according
1140 to this standard. When the Table referenced is a Pending Table, then the Table Object includes the Pending Header.
1141 [New]
Definitions 7
DRAFT ANSI C12.19-2012
1143 Offset: The number of Octets, relative to the beginning of a Table, that precede the desired Element. When the
1144 Table is a Pending Table, then Offset zero (0) is the first Element at the beginning of the Table following the
1145 Pending Table header. [ANSI C12.19-1997]
1146 Override: In the context of declaration of type, a relaxed variation of the Replace attribute in that Overridden types
1147 have different Offsets and Indices from those of the referenced Elements, and thus, they can expose additional
1148 details to the internal structure of Elements that were otherwise opaque. [New]
1149 Packed Record: In text form, “Packed Record,” or any variation thereof, a group of Element types,
1150 anyElementType, created as a new derived data type. [New]
1151 Procedure: An action that can be performed by the End Device. A Procedure is initiated by writing to Standard
1152 Table 07, and the result may be retrieved by reading Standard Table 08. [New]
1153 Procedure, Manufacturer: A Procedure whose structure and actions are defined by an individual End Device
1154 manufacturer. [New]
1155 Procedure, Metrological: A Procedure whose action causes a change to a Metrological Parameter or results in a
1156 Metrological Adjustment. [New]
1157 Procedure, Standard: A Procedure whose structure and actions are defined by this standard. [New]
1158 Quadrant: Divisions of the plane formed by the representation of active power (watts), reactive power (VAR), and
1159 vector apparent power (voltamperes) in a Cartesian coordinate system. In this standard, the convention used is that
1160 the vectors rotate counter clockwise and the quadrants are numbered as shown in the diagram below. For clarity, the
1161 diagram includes both the Handbook definition and the IEC terminology in parentheses. It should be noted that the
1162 ANSI terms are with respect to the utility (e.g., “delivered” means delivered by the utility) and the IEC 62053 terms
1163 are with respect to the consumer (e.g., “imported” means imported by the consumer). [Adapted from the Handbook
1164 for Electricity Metering [B3], IEC 62053-23-2003, and the CRC Standard Mathematical Tables and Formulae [B1]]
Delivered VAR
(Q+, Import ReactivePower)
Quadrant 2 Quadrant 1
Leading current Lagging current
Capacitive Inductive
Quadrant 3 Quadrant 4
Lagging current Leading current
Inductive Capacitive
Received VAR
(Q-, Export ReactivePower)
1165
8
DRAFT ANSI C12.19-2012
1166 Redefine: Used in the context of declaration of type. The new type definition is constrained by the referenced type
1167 definition whereby the new definition shall have identical Element content, types, Indices, and Offsets to those
1168 found in the referenced type. The referenced type is left unaffected. This feature is useful when defining ACT
1169 Tables, then reusing only the Element types (not the Element names or descriptions) of the DIM Tables to define
1170 actual limits Tables. The local redefinition feature is subject to the following constraints:
1171 A type can be Redefined any number of times. Redefinition of a type that has already been previously
1172 redefined elsewhere is possible.
1173 New types based on Redefined types can be defined in the same Table Definition Language (TDL)
1174 document that defines the referenced type.
1175 Redefinition of a Replaced packed record is possible.
1176 Redefinitions are processed after Replacements and Overrides.
1177 Register: A device for use with a meter that indicates or records units of the delivered commodity or other quantity
1178 measured. Registers in End Devices are often spoken of according to the units involved, such as accumulation
1179 (energy, volume, mass), Demand, Time-of-use (TOU), instantaneous values, or other(s) as appropriate. [New,
1180 portions adopted from ANSI C12.1-2001 and ANSI C12.19-1997]
1181 Register, Secured: A Volatile Element whose transmitted value can be encoded by the End Device as a one-way
1182 hash in response to a Read Service request from an initiator. The purpose of the encoding is to detect whether the
1183 value transmitted was subsequently altered and to enable the receiver to verify the authenticity of the value in a
1184 manner that is independent from the transport protocol used. The Reading of a Secured Register may generate a
1185 Read Secured Register or Read Secured Table event within the End Device. [New]
1186 Replace: The action whereby an older type definition shall be replaced by (i.e., mapped to) a new type definition.
1187 Any reference to the old definition shall resolve to the new definition. This feature enables one standard to be
1188 derived from another standard and for a manufacturer of End Devices to define (thus document) opaque fields that
1189 are defined by the referenced standard and implemented in the End Device. The replacement feature is subject to the
1190 following constraints:
1191 A referenced type can be Replaced only once in any one instance of an End Device Table Definition
1192 Language (TDL) definition; therefore, Replacement of a type that has already been previously
1193 replaced elsewhere is not possible.
1194 The Replaced type cannot be defined in the same TDL document that defines the original type.
1195 Replaced types have identical Element Offsets and Indices as those of the referenced Elements;
1196 however, they can expose additional details to the internal structure of Elements that were otherwise
1197 opaque.
1198 A Replaced type cannot be Overridden in the same TDL document.
1199 [New]
1200 Reserved: Qualifier applied to one or more Elements or values indicating they are not available for use with this
1201 standard. The use of a Reserved Element or value shall render an application noncompliant with this standard.
1202 [New]
1203 Seal: An item or process that has the purpose of providing marketplace integrity and confidence against End Device
1204 tampering and as such it has three main functions: (1) to secure an End Device so that access or changes to
1205 Metrological Adjustments and Sealable Parameters will be detectable; (2) to identify the date and organization that
1206 verified the End Device (this information is necessary for the administration and enforcement of legislation, for
1207 complaint or dispute investigation purposes, and for seal period and seal extension purposes); and (3) to act as a
Definitions 9
DRAFT ANSI C12.19-2012
1208 deterrent to the unauthorized access or changing of metrologically sensitive adjustments and Sealable Parameters.
1209 Seals may be implemented as Physical Seals and/or as Logical Seals. [Adopted from MC S-EG-02-2010]
1210 Seal, Logical (Event Loggable): A Seal that comprises firmware and software mechanisms that work together to
1211 secure access to an End Device’s Metrological Adjustments and Sealable Parameters. This standard provides Event
1212 Log Tables for the management of Seals. [New]
1213 Seal, Physical: A physical mechanism that is used to secure access to an End Device’s Metrological Adjustments
1214 and Sealable Parameters. [New]
1215 Sealable Parameter: A Metrological Parameter that is secured or protected from alteration by a Seal. [New]
1216 Season: A calendar-specified period used for activation of rate schedules. [ANSI C12.19-1997]
1217 Secured Read: Reading of a Secured Register from an End Device that is capable of generating an End Device
1218 Secured Register event, provided that this capability was enabled in the End Device. [New]
1219 Self-read: A copy of Elements from one Table to another Table inside of an End Device, often at periodic intervals,
1220 triggered by an Event. [New]
1221 SET: A collection of Booleans, eight Booleans per Octet. Each Boolean member of the SET is a Final Element.
1222 [New]
1223 Signature: Often referred to as a hash-code; an n-bit sequence that is generated using an algorithm on the content of
1224 an End Device Table or a group of End Device Tables. The resulting sequence of bits is truncated to a small number
1225 of bits (e.g., 128 bits). A good hash function will enable (1) detection of file (or table) content corruption
1226 (unauthorized change) and (2) authentication of the End Device Agent who created the file (or Table).
1227 [ANSI C12.19-1997]
1228 Strict: In the context of declaration of type. When a type is created and the Replace, Redefine, or Override attribute
1229 is used and strictness is asserted (TRUE), then the search rule for the target type shall be strictly applied. A strict
1230 search requires that the implied or explicit target scope contains the Replaced, Redefined, or Overridden type. A
1231 nonstrict search requires that the implied or explicit target scope is where the search starts in the End Device Table
1232 Definition Language (TDL) document scope hierarchy. This search is carried out in such a manner that the first
1233 encounter of the target type within any of the parent scopes will be considered a match for the sought Replaced or
1234 Redefined type. [New]
1235 STRING: An Atomic Array of Octets to be interpreted as characters dependent on CHAR_FORMAT. See 6.1,
1236 “Character set ”. [New]
1237 Sub-element: A subset of an Atomic Element, which is a single bit of a SET or a member of a BIT FIELD.
1238 [ANSI C12.19-1997]
1239 Table: Functionally related utility application data Elements, grouped together into a single data structure for
1240 transport. [ANSI C12.19-1997]
1241 Table Definition Language (TDL): Syntax used for detailing the standard’s or an End Device’s Table structure,
1242 defined types, and constraints in a machine-readable format. The Table Definition Language is encoded using
1243 Extensible Markup Language (XML). [new]
1244 Table, Extended User-defined (EUDT): An extension on UDTs to add up to 2040 virtual Tables that can select
1245 from, or reference into, Standard Tables and Manufacturer Tables. Extended User-defined Tables shall not refer to,
1246 or select from, Extended User-defined Tables. [New]
10
DRAFT ANSI C12.19-2012
1247 Table, Function Limiting Control (FLC): The first Table in each Decade. This Table specifies the limits designed
1248 into an End Device with respect to Elements used within that Decade. [ANSI C12.19-1997]
1249 Table, Manufacturer: A Table whose structure is defined by an individual End Device manufacturer. [New]
1250 Table, Metrological: A Table that contains at least one Element that is also a Metrological Parameter. [New]
1251 Table, Pending: Tables that have yet to be activated through conditions specified by the EVENT_CODE and
1252 trigger conditions in the EVENT_STORAGE_RCD in the Pending Event Description of the End Device. [New]
1253 Table, Program: An End Device Table that contains setup, configuration, or general product or record-keeping
1254 information about the End Device. Programming Tables shall not contain sensory information, End Device state
1255 information, or End Device logs that are volatile and change in the normal course of operation of the End Device.
1256 [New]
1258 Table, Standard: A Table whose structure is defined by this standard. [New]
1259 Table, User-defined (UDT): A Table whose Elements values that are derived from references (for writing) or
1260 Element values (for reading) into a temporary common area, which enables applications to make references to
1261 Tables and Table Elements that are present or implied to be present in an End Device. The Elements gathered may
1262 then be retrieved, and the Elements referenced may be written, as if the standard provided an explicit Table and
1263 descriptive syntax to express the resulting User-defined Table structure. [New]
1264 Tariff: A published list of rate schedules and terms and conditions. [ANSI C12.19-1997]
1265 Tier: A consumption-based or time-based rate range for the commodity. [New]
1266 Time-Of-Use (TOU) Metering: The use of metering equipment to separately record metered or measured
1267 quantities according to a time schedule. [ANSI C12.19-1997]
1268 Undefined: Qualifier applied to one or more Elements or values that are not defined by this standard. The use of an
1269 Undefined Element or value shall not affect compliance with this standard; however, the outcome is indeterminate.
1270 [New]
1271 Utility: A provider of electricity, gas, water, telecommunications, or related services to a community. [ANSI
1272 C12.19-1997]
1273
Definitions 11
DRAFT ANSI C12.19-2012
1274 4 General
1276 Standard Tables are those whose structures are specified by this standard. They should be used for both End Device
1277 programming and reading. The Tables provide control Tables as well as data Tables for a wide variety of functions
1278 to be implemented in addition to those presently defined. This standard provides for a total of 2040 Standard Tables,
1279 although not all are defined.
1281 The Standard Tables are grouped together in Decades, with each Decade covering a general area of functionality.
1282 The first Table of each Decade, beginning with Decade 1, is referred to as a Function Limiting Control (FLC) Table.
1283 The purpose of the FLC Table is to specify the designed DIMENSION (DIM) limits (maximum limits) for Elements
1284 used within the Decade for the End Device.
1285 If present, the Table immediately following an FLC table is called the FLC+1 Table. The FLC+1 Table defines the
1286 ACTUAL (ACT) limits used for Elements in the current configuration of the End Device.
1287 If the FLC+1 Table is not present, the ACT limits are identical to the designed DIM limits specified in the FLC
1288 Table.
1289 If the FLC and FLC+1 Tables are not used in a Decade, then the limits are defined by a default set of values. The
1290 Default Sets for a particular Decade are defined within this standard in Annex C, “(normative) Default Sets for
1291 Decade Tables”. Possible combinations of FLC, FLC+1, and Decade Tables are defined in Figure 4-1.
FLC Table FLC+1 Table FLC+n Table Where ACT Values Are Found
A Not Used Not Used Not Used None - Decade not used
B Not Used Not Used Used Default set, per Standard
C Not Used Used Not Used Decade FLC+1 Table**
D Not Used Used Used Decade FLC+1 Table
E Used Not Used Not Used Decade FLC Table**
F Used Not Used Used Decade FLC Table
G Used Used Not Used Decade FLC+1 Table**
H Used Used Used Decade FLC+1 Table
1292 ** Not recommended practice.
1295 All Standard Tables assume a set of properties that are defined by this standard. Listed below are the Tables’ default
1296 properties to be assumed when not explicitly qualified by this standard. The default Table properties are shown in
1297 Figure 4-2.
12
DRAFT ANSI C12.19-2012
1311 All Standard Procedures (Table 7, Table 8, and procedures defined within) assume a set of properties that are
1312 defined by this standard. Listed below are the default properties to be assumed when not explicitly qualified by this
1313 standard. The default Procedure properties are shown in Figure 4-3.
1314 * For more information see I.2.25, “<procedure> Element (Child of <tdl> or <decade>)”.
1317 Manufacturer Tables are those structures specified by individual End Device vendors. They should be used to
1318 introduce innovations or to provide customer-requested data structures that are not defined by this standard. It is
1319 noted that the standard also provides for the latter to be accomplished in a limited manner through user-defined
1320 Tables (Decade 8) and extended user-defined Tables (Decade 14). Manufacturer Tables also provide a path for new
1321 functions to evolve into a Standard Tables.
1323 This standard provides access for a total of 2040 Manufacturer Tables. When Manufacturer Tables may introduce
1324 new Decades, then the implementation guidance enumerated in Figure 4-1 shall be followed. When Manufacturer
1325 Tables are introduced singly (i.e., as FLC+n Tables), they shall be associated with an existing Decade. More details
1326 are found in I.2, “TDL XML File Format of the TDL Document”, and more specifically see the associate attribute
1327 described in I.2.25, “<procedure> Element (Child of <tdl> or <decade>)”.
1329 All Manufacturer Tables assume a set of properties that are defined by this standard. Listed below are the Tables’
1330 default properties to be assumed when not explicitly qualified by the manufacturer’s TDL. The default Manufacturer
1331 Table properties are shown in Figure 4-4.
14
DRAFT ANSI C12.19-2012
1339 All Manufacturer Procedures share, by default, a set of properties that are defined by this standard. Listed below are
1340 the default properties to be assumed when not explicitly qualified by the Manufacturer’s TDL. The default
1341 Procedure properties are shown in Figure 4-5.
1344 Packed Records, Bit Fields, and the contained Element definitions also have default properties. These default
1345 properties are fully described in Annex I, “(normative) XML file format of TDL and EDL files”.
1347 Extended User-defined Tables default properties are identical to the properties shown in 4.1.2, “Standard Tables
1348 properties”, except for the class=“STD.EUDT”. The class “STD.EUDT” invokes the standard’s processing
1349 requirements for Extended User-defined Tables.
1350
16
DRAFT ANSI C12.19-2012
1351 5 Syntax
1353 Describing data definitions is usually accomplished within the confines of a given language and the grammar rules
1354 of that language. Since the data definitions embodied within this document are meant to be independent of a specific
1355 language and capable of being implemented within the confines of any language, a method for describing the data
1356 definitions has been adopted. The descriptive syntax is expressed using the Extended BNF definitions defined in
1357 Annex G, “(normative) Document-form descriptive syntax”. The definition syntax is a merge between the traditional
1358 Backus Naur Format and XML simple BNF as described in XML-2006, with extensions that facilitate the binding of
1359 production rules needed for the definition of the published pseudo PASCAL text (Clause 9, “Tables”) and the
1360 machine-readable XML based TDL. In addition, the Extended BNF syntax provides definitions for constraints on
1361 binary transmission and interpretation of types.
1368 This selection is used to determine the encoding of characters that are used in the Tables.
1369 GEN_CONFIG_TBL.FORMAT_CONTROL_1.CHAR_FORMAT is the controlling selector for the encoding
1370 of CHAR, STRING, FLOAT_CHAR6, FLOAT_CHAR12, and FLOAT_CHAR21.
1376 0 Reserved.
1377 1 ISO 7-bit coded character set for information interchange, per
1378 ISO/IEC 646-1991, a fixed-width encoding using 8 bits as its
1379 base unit for length calculations and UINT8 as the base unit
1380 for transmission.
1398 This selection is used to determine the structure of noninteger numbers used in the Tables. The Table Elements
1399 GEN_CONFIG_TBL.FORMAT_CONTROL_3.NI_FORMAT1 and GEN_CONFIG_TBL.FORMAT_
1400 CONTROL_3.NI_FORMAT2 are the controlling selectors for the built-in types NI_FMAT1 and NI_FMAT2.
18
DRAFT ANSI C12.19-2012
1401 They provide the final associations between BNF.anyFloat noninteger data types and the actual atomic encoding
1402 used to transmit NI_FMAT1 and NI_FMAT2 data items as defined below.
1433 A STRING number (BNF.floatingPointStringNumber) representation can have any number of leading spaces,
1434 followed by an optional plus or minus sign, followed by a mandatory one or more digits, followed by an optional
1435 period and zero or more digits, followed by an optional exponent. An exponent is composed of the letter “E”, “e”;
1436 followed by an optional plus or minus sign, followed by a mandatory one or more digits. Any number of spaces can
1437 lead or follow the BNF.floatingPointStringNumber, but spaces shall not be embedded within. This format ensures
1438 that clear identification of any BNF.floatingPointStringNumber is possible in a stream (sequence) of
1439 BNF.floatingPointStringNumber+, using the space character as a separator.
1440 Examples:
1452 This selection is used to determine the structure of dates and times used in the tables. The Element
1453 GEN_CONFIG_TBL.FORMAT_CONTROL_2.TM_FORMAT is the controlling selector for HTIME_DATE,
1454 LTIME_DATE, STIME_DATE, TIME, STIME, and HTIME.
1479 The date and time structures are described next as packed records, but they are transmitted as Atomic Table
1480 Elements.
20
DRAFT ANSI C12.19-2012
22
DRAFT ANSI C12.19-2012
24
DRAFT ANSI C12.19-2012
1678 This type defines a recurrent date. This recurrence can be yearly, monthly, or weekly, based on a constant cycle of
1679 days or minutes.
1702 RDATE_BFLD This is the prototype definition of the built-in type RDATE.
1754 This type defines a nonrecurrent date in the localized time using a field having the same size as the recurrent date
1755 type "RDATE".
1764 DATE_BFLD This is the prototype definition of the built-in type DATE.
1774 These types are provided to ease the specification of table access parameters and to provide consistent specification
1775 of these table access parameters throughout the document.
1777 Type TABLE_IDA_BFLD provides the table or procedure number; a flag indicating standard or manufacturer table
1778 or procedure; a flag indicating pending status; a flag indicating extended-user-defined table and two additional fields
1779 for definition and use within the defining data structure. When the EUDT_FLAG flag is set, then MFG_FLAG
1780 shall be set to zero.
28
DRAFT ANSI C12.19-2012
1822 Type TABLE_IDB_BFLD provides the table or procedure number; a flag indicating standard or manufacturer table
1823 or procedure; and a 4-bit unsigned integer for definition and use within the defining data structure.
1846 Type TABLE_IDC_BFLD provides the table or procedure number; a flag indicating standard or manufacturer; a
1847 flag indicating table or procedure; and three additional fields for definition and use within the defining data
1848 structure.
1883 Type SOURCE_SELECT_RCD provides a data source selection index and related qualifiers that describe the data
1884 source completely and unambiguously used in selections of data sources in control areas. This data type is used each
1885 time a measurement needs to be selected from a source defined in Decade 1.
30
DRAFT ANSI C12.19-2012
1900 An End Device is considered to be in compliance with this standard if all of the following conditions are met:
1901 a) Two-way communicating End Devices shall accept and act upon all services defined in Clause 8,
1902 “Table transportation issues”.
1903 b) The DEVICE_CLASS field in GEN_CONFIG_TBL (Table 00) shall contain a relative universal
1904 object identifier relative to the End Device class registered root context.
1905 c) Two-way communicating End Devices shall transmit GEN_CONFIG_TBL (Table 00) on request.
1906 d) One-way communicating End Devices shall include the DEVICE_CLASS field in each of their
1907 transmissions. In addition, these End Devices shall be registered using the TDL file format. This file
1908 shall contain the definition of the corresponding Table 00 and any other Tables necessary to
1909 understand all possible valid unsolicited messages.
1910 e) Any Table transported between an End Device and any other device shall be either a Standard Table as
1911 defined by this standard or a Manufacturer Table defined by the End Device manufacturer. All
1912 Standard and Manufacturer Tables supported for the current End Device implementation shall be
1913 specified in GEN_CONFIG_TBL (Table 00). A Table shall be considered to be supported if and only
1914 if it is specified in GEN_CONFIG_TBL (Table 00).
1915 f) Any procedure written to the End Device shall be either a procedure as defined by this standard or a
1916 manufacturer procedure defined by the device manufacturer. All standard and manufacturer procedures
1917 supported for the current End Device implementation shall be specified in GEN_CONFIG_TBL
1918 (Table 00).
1919 g) Some Standard Tables contain data structures that can be collapsed by a control flag. The control flag
1920 shall be determinable based on this standard. Collapsed Elements shall not be transported. An array of
1921 zero (0) Elements is a collapsed Element.
1922 h) An End Device is not required to use every data structure within a Table; however, it shall transport all
1923 noncollapsed data structures within a Table. Unused fields are considered in compliance if Octet Count
1924 and format are correct and if manufacturers identify unused fields. It is recommended that unused
1925 fields be filled with zeros or spaces.
1926 i) This standard specifies variable formats for some data structures. The variable formats shall be
1927 consistent with the format as specified in GEN_CONFIG_TBL (Table 00). Refer to Clause 5,
1928 “Syntax”, and Clause 6, “Special data types”, for details.
1929 j) Function Limiting Tables (FLCs) and Actual Function Limiting Tables (FLC+1) specify the designed
1930 and usable limits for variables used within a given Decade. The permissible combinations of these
1931 Tables are listed in Figure 4-1.
1932
32
DRAFT ANSI C12.19-2012
1934 Any future revision of this standard shall be backward compatible with the previous two (2) revisions of the
1935 standard according to the governing standard’s revision cycle requirement. It is recommended that new
1936 implementations of the standard avoid using Deprecated Elements and attributes whenever practical. Forward
1937 compatibility is not ensured as Deprecated Elements may become obsolete in future versions of the standard or End
1938 Device.
1939 Element extensions to the tail end of the Tables of the previous versions of this standard are defined in a manner that
1940 does not change the structure of the Tables Elements defined by the previous standard version. Also, when Element
1941 fields were modified, the changes do not impact the interoperation of those Elements according to the previous
1942 standard version.
1950 The Read Service causes the transfer of data from the target device to the initiating device and is required for two-
1951 way communications.
1952 Read Service Request The Read Service Request shall be capable of both a complete
1953 and a partial Table read. This is accomplished by one required
1954 parameter and optional parameters. The required parameter is
1955 a Table Identifier. Optional parameters define partial Table
1956 retrieval.
1957 Identifier Value Definition
1958 Table Identifier This parameter has a range of 0 to 65 535 and is further
1959 subdivided.
1960 0..2039 Provides access to Standard Tables 00 to 2039.
1961 2048..4087 Provides access to Manufacturer Tables 00 to 2039.
1962 4096..6135 Provides access to Standard Pending Tables 00 to 2039.
1963 6144..8183 Provides access to Manufacturer Pending Tables 00 to 2039.
1964 8192..10231 Provides access to User-defined Tables 00 to 2039.
1965 12288..14327 Provides access to User-defined Pending Tables 00 to 2039.
1974 Partial Table Retrieval The retrieval of a portion of a Table, a partial Table, is
1975 possible through the use of one of two methods, the
1976 Index/Element count method, and Offset/Octet-count method.
1977 The absence of either of these methods implies the entire
1978 Table shall be read.
34
DRAFT ANSI C12.19-2012
1993 The range of the offset shall be zero (0) to at least 65 535
1994 Octets. The range of the count of the number of Octets to read
1995 from the offset point shall be zero (0) to at least 65 535 Octets.
1996 A zero (0) for the count value or the absence of the count
1997 value shall cause the remaining portion of the Table to be read
1998 starting at the offset point (for additional details, see 8.1.5,
1999 “Index count access method examples”). The count does not
2000 include the pending header length for pending Tables.
2010 The Write Service causes the transfer of unrequested data to a target device from the initiating device and is required
2011 for both one- and two-way communications.
2012 Write Service Request The Write Service Request shall be capable of both a complete
2013 and a partial Table write. This is accomplished by one
2014 required parameter and partial Table Identifiers and the write
2015 data field. The required parameter is a Table Identifier.
2016 Optional parameters define partial Table write.
2017 Identifier Value Definition
2018 Table Identifier This parameter has a range of 0 to 65 535 and is further
2019 subdivided as follows:
2020 0..2039 Provides access to Standard Tables 00 to 2039.
2021 2048..4087 Provides access to Manufacturer Tables 00 to 2039.
2022 4096..6135 Provides access to Standard Pending Tables 00 to 2039.
2023 Several additional parameters are required for writing to a
2024 Pending Table. These parameters are appended to the front of
2025 the Table data to be written. These parameters are described in
2026 8.2, “Pending Event description”.
2027 6144..8183 Provides access to Manufacturer Pending Tables 00 to 2039.
2028 Several additional parameters are required for writing to a
2029 Pending Table. These parameters are appended to the front of
2030 the Table data to be written as a pending event description.
2031 The pending event description parameters are described in 8.2,
2032 “Pending Event description”.
2033 8192..10231 Provides access to User-defined Tables 00 to 2039.
Table transportation issues / Minimum services and parameters 35
Write Service
DRAFT ANSI C12.19-2012
2043 Partial Table Identifier The writing of a portion of a Table, a partial Table, is possible
2044 through the use of one of two methods, the Index/Element-
2045 count method and Offset/Octet-count method. The absence of
2046 either of these methods implies the entire Table shall be
2047 written.
2062 The range of the offset shall be zero (0) to at least 65 535
2063 Octets. The range of the count of the number of Octets to write
2064 to the offset point shall be zero (0) to at least 65 535 Octets. A
2065 zero for the count value or the absence of the count value shall
2066 cause the remaining portion of the Table to be written from the
2067 offset point (for additional details, see 8.1.5, “Index count
2068 access method examples”). The count includes the pending
2069 header length for pending Tables.
2074 Write Service Response No response is required to the Write Service Request.
2076 This subclause defines the rule-set for selecting Elements of a Table when using an Element index and an Element
36
DRAFT ANSI C12.19-2012
2077 count:
2078 a) An index sets up a start of selection into a table object relative to the beginning of the table as follows:
2096 b) Selection based on an index method using element count = 1 will deliver the whole selected element.
2097 c) For the purpose of binary transmission, index cannot select into a subelement or final elements that are not
2098 atomic, with the exception of SETs, where the first Octet selected for transmission is that computed by
2099 integer division of the atomic index number requested by eight (8), and the number of elements is the
2100 number of bits requested.
2101 d) For the purpose of transmission, an index selection into a nonexisting element shall result in an
2102 “Inappropriate Action Requested” error. However, it is permissible to append zeros at the end of an index
2103 to indicate the desired access level of an index selection within the table element hierarchy.
2104 e) When element-count > 1, the application shall return up to element-count elements at the same or higher
2105 hierarchical level of the index used to initiate the request traversing all element types serially.
2106 f) When element-count > (number of elements available for transmission), the number of elements
2107 transmitted will be limited to the maximum number of elements available at the same or higher
2108 hierarchical level of the index used to initiated the request. The response element-count shall be adjusted
2109 to reflect the actual number of elements transferred in the response.
2110 g) The number of numeric segments that make up the index (using trailing zero segments if necessary) defines
2111 the initial hierarchical level for element serialization and for element-count interpretation.
2112 h) For the purpose of transmission, as a part of a request, element-count = 0 shall be interpreted as all data to
2113 be written or all data requested.
2114 i) For the purpose of transmission, as a part of a response, element-count = 0 shall be interpreted as no data
2115 was written, or no data was received.
2116 j) For the purpose of transmission, as a part of a write request, element-count shall correctly represent the
2117 actual number of elements requested to be written, at the hierarchical level of the selection start index.
2118 k) For the purpose of transmission, as a part of a read request, element-count represents the maximum
2119 number of elements requested.
2120 l) For the purpose of transmission, the counter shall not count elements that are not present in the table by
2121 virtue of the elements themselves being excluded from the data stream through the use of the IF or
2122 SWITCH conditional statements.
2123 m) For the purpose of transmission, the counter shall not count elements that are not present in the table by
2124 virtue of themselves being excluded from the data stream through the use of zero length arrays, sets,
2125 strings, binaries, or bcd.
2126 n) Generally, for the purpose of transmission, any element whose size is zero shall not be a candidate for
2127 transmission and shall not be counted.
2129 p) If the respondent application does not support the transmission elements at the requested index level, or the
2130 respondent application cannot deliver the element requested from an ARRAY, the respondent application
2131 shall assert the error condition “Inappropriate Action Requested”. The requester may then attempt a retry of
2132 the read/write request on an index of an element that is higher or lower in hierarchy relative to the index of
2133 the failed attempt.
2135 This subclause defines the rule-set for selecting Elements of a Table when using an Element Octet offset and an
2136 Element Octet count.
2137 a) An offset sets up a start of selection into a table object relative to the beginning of the table.
2138 b) Offset zero (0) is the Octet offset to the first Octet of the first object in the table as prescribed by the object
2139 data type and the value of DATA_ORDER, found in the GEN_CONFIG_TBL (Table 00).
2140 c) When count > 1, the application shall return up to count Octets from the offset used to initiate the request,
2141 traversing all element types serially, where each element will be transferred according to its type and the
2142 value of DATA_ORDER, found in the GEN_CONFIG_TBL (Table 00).
2143 d) When count > (number of Octets available for transmission), the number of Octets transmitted will be
2144 limited to the maximum number of Octets available. The response count shall be adjusted to reflect the
2145 actual number of Octets transferred in the response.
2146 e) For the purpose of transmission, as a part of a read request, count = 0 shall be interpreted as all data
2147 requested.
2148 f) For the purpose of transmission, as a part of a response, count = 0 shall be interpreted as no data was
2149 written, or no data was received.
2150 g) For the purpose of transmission, as a part of a write request, Octet count shall correctly represent the actual
2151 number of Octets requested to be written starting at the table offset requested.
2152 h) For the purpose of transmission, as a part of a read request, count represents the maximum number of
2153 Octets requested.
38
DRAFT ANSI C12.19-2012
2154 i) For the purpose of transmission, the counter shall not count elements that are not present in the table by
2155 virtue of themselves being excluded from the data stream through the use of zero length arrays, sets,
2156 strings, binaries, or bcd.
2157 j) Generally, for the purpose of transmission, any element whose size is zero shall not be a candidate for
2158 transmission and shall not be counted.
2160 l) If the respondent application does not support the transmission of Octets at the requested offset, then the
2161 respondent application shall assert the error condition “Inappropriate Action Requested”.
2163 The following are examples for the use of the Index/Element-Count method to select data.
2165 This standard supports the transmission of a set of shadow Tables, known as Pending Tables. Data read from or
2166 written to a Pending Table is identical in format to the data read from or written to regular Tables (Standard Tables
2167 or Manufacturer Tables), except for the addition of the fixed length Pending Event Description that is placed ahead
2168 of the Table data during transmission, as defined below.
2215 EVENT_CODE Element that specifies the condition upon which the Pending
2216 Table shall be made active. The trigger condition is stored in
2217 the EVENT_STORAGE record.
2218 0 Pending Table is activated based on an absolute time
2219 contained in the EVENT_STORAGE record. The time is
2220 interpreted as STIME_DATE.
2221 1 Pending Table is activated based on a relative time contained
2222 in the EVENT_STORAGE record.
2223 2 Pending Table is activated based on a Manufacturer defined
2224 trigger contained in the EVENT_STORAGE record.
2225 3..15 Reserved.
2226 SELF_READ_FLAG FALSE Do not perform a Self-read before Pending Table is activated.
2227 TRUE Perform a Self-read, if capable, before Pending Table is
2228 activated.
40
DRAFT ANSI C12.19-2012
2229 DEMAND_RESET_FLAG FALSE Do not perform a demand reset before Pending Table is
2230 activated.
2231 TRUE Perform a demand reset, if capable, before Pending Table is
2232 activated.
2234 PE_STIME_DATE_RCD Fields and interpretation of the pending event short time and
2235 date format is identical to that of STIME_DATE, except that
2236 the data structure length is fixed in length.
2237 EVENT_STORAGE_RCD Pending event trigger condition that causes a Pending Table to
2238 become active. The size of EVENT_STORAGE_RCD
2239 always occupies five Octets and is transmitted as ARRAY[5]
2240 of UINT8. The actual interpretation of this record is
2241 controlled by the content of
2242 EVENT_SELECTOR.EVENT_CODE as follows:
2266 WEEKS 0..255 The number of weeks to wait (in addition to DAYS, HOURS,
2267 MINUTES, and SECONDS) until the Pending Table is
2268 activated. End Devices that implement a real-time clock shall
2269 start the Pending Table activation count-down at the beginning
2270 of the next week (on Sunday 00:00:00 hours) if SECONDS,
2271 MINUTES, HOURS, and DAYS are zero (0) and WEEKS is
2272 not zero (0). The Pending Table Shall activate upon receipt of
2273 the Pending Table, without delay, if SECONDS, MINUTES,
2274 HOURS, DAYS, and WEEKS are all zero (0).
2275 DAYS 0..255 The number of days to wait (in addition to WEEKS, HOURS,
2276 MINUTES, and SECONDS) until the Pending Table is
2277 activated. End Devices that implement a real-time clock shall
2278 start the Pending Table activation countdown at the beginning
2279 of the next day (at 00:00:00 hours) if SECONDS, MINUTES,
2280 and HOURS are zero (0) and DAYS is not zero (0).
2281 HOURS 0..255 The number of hours to wait (in addition to WEEKS, DAYS,
2282 MINUTES, and SECONDS) until the Pending Table is
2283 activated. End Devices that implement a real-time clock shall
2284 start the Pending Table activation countdown at the beginning
2285 of the next hour if SECONDS and MINUTES are zero (0)
2286 and HOURS is not zero (0).
2287 MINUTES 0..255 The number of minutes to wait (in addition to WEEKS,
2288 DAYS, HOURS, and SECONDS) until the Pending Table is
2289 activated. End Devices that implement a real-time clock shall
2290 start the Pending Table activation countdown at the beginning
2291 of the next minute if SECONDS is zero (0) and MINUTES is
2292 not zero (0).
2293 SECONDS 0..255 The number of seconds to wait (in addition to WEEKS,
2294 DAYS, HOURS, and MINUTES) until the Pending Table is
2295 activated. The End Device shall start the Pending Table
2296 activation countdown immediately if SECONDS, MINUTES,
2297 HOURS, DAYS, and WEEKS are all zero (0).
2309 The following declarations are of value to any list management system that requires a capability for issuing an
2310 advance warning or notification when a list is about to overflow or when a list contains a minimum number of
2311 events.
42
DRAFT ANSI C12.19-2012
2372 LOW_THRESHOLD 0..65535 The low threshold value or percent of full list size (see
2373 .LIST_OVERFLOW_ENABLE.
2374 PERCENT_OR_VALUE_FLAG) used to sense a possible
2375 list overflow.
2376 HIGH_THRESHOLD 0..65535 The high threshold value or percent of full list size (see
2377 .LIST_OVERFLOW_ENABLE.
2378 PERCENT_OR_VALUE_FLAG) used to sense a possible
2379 list overflow.
2380 REPEAT_INTERVAL 0..65535 The repeat threshold value or percent of full list size (see
2381 .LIST_OVERFLOW_ENABLE.
2382 PERCENT_OR_VALUE_FLAG) used to re-trigger a sense-
2383 report of a possible list overflow, following an initial trigger
2384 based on HIGH_THRESHOLD.
2385 MAX_REPEATS 0..65535 The maximum number of times an overflow condition shall
2386 re-trigger following detection if not serviced and cleared.
2387
44
DRAFT ANSI C12.19-2012
2388 9 Tables
2391 GEN_CONFIG_DEC
2393 This Decade contains tables associated with End Device configuration, identification, procedures and responses, and
2394 information required for data manipulation due to hardware configurations.
2397 GEN_CONFIG_TBL (Table 00) contains general End Device configuration information. It also establishes the
2398 total set of tables, procedures, and the selection of special types used in the End Device. If a default set is used, it is
2399 indicated by this table.
2400 Global Default Table Property Overrides: atomic = “true”, role=“CONTROL”, accessibility=“READONLY”
2460 FORMAT_CONTROL_2_BFLD
2461 TM_FORMAT Data representation format selector for use by
2462 HTIME_DATE, LTIME_DATE, STIME_DATE, TIME,
2463 STIME, and HTIME. See STD. TM_FORMAT_ENUM.
2464 DATA_ACCESS_METHOD Element to designate method of passing the table data after
2465 GEN_CONFIG_TBL (Table 00) has been interrogated.
2466 0 Full table access only. No partial table access methods are
2467 supported.
2468 1 Full table access and offset-count access methods are
2469 supported.
2470 2 Full table access and index-count methods are supported.
2471 3 Both methods 1 and 2 of data access methods are supported.
46
DRAFT ANSI C12.19-2012
2483 FORMAT_CONTROL_3_BFLD
2484 NI_FORMAT1 Indicates the type of noninteger value used throughout the
2485 tables where specified as NI_FMAT1. Refer to 6.2,
2486 “Noninteger formats”, for details. See
2487 STD.NI_FORMAT_ENUM.
2488 NI_FORMAT2 Indicates the type of noninteger value throughout the tables
2489 where shown as NI_FMAT2. Refer to 6.2, “Noninteger
2490 formats”, for details. See STD.NI_FORMAT_ENUM.
2491 GEN_CONFIG_RCD
2492 FORMAT_CONTROL_1 See FORMAT_CONTROL_1_BFLD.
2495 DEVICE_CLASS A group of End Devices sharing the same table structure. This
2496 Element contains a relative universal object identifier derived
2497 from the following structure:
2498 <device-class-root-oid>.<class>
2499 The <class> (DEVICE_CLASS) is registered in a manner
2500 that it shall be unique among all ANSI C12.19
2501 implementations, within a registered root context. This
2502 numeric sequence is encoded according to ISO 8825-1-1997
2503 “Basic Encoding Rules”. The value to be used for this Element
2504 by unregistered End Devices that implement this standard
2505 shall be “0.2.0.x”, where x is identical to the value transmitted
2506 by MODEL_SELECT. For registered End Devices, refer to
2507 Annex J, “(normative) Universal Identifier”.
2508 Example:
2509 <class> = 35.0.0.0
2510 DEVICE_CLASS = 23H 00H 00H 00H.
2511 Relative UID ASN.1 Encoding = 0DH 04H 23H 00H 00H 00H.
2517 NAMEPLATE_TYPE Entry used to select the nameplate record structure to be used
2518 in DEVICE_NAMEPLATE_TBL (Table 02).
2519 0 Gas.
2520 1 Water.
2521 2 Electric.
2522 3..255 Reserved.
2523 DEFAULT_SET_USED Indicates which, if any, Default Sets are used. See Annex C,
2524 “(normative) Default Sets for Decade Tables”, for the default
2525 set definitions.
2526 0 Default Sets are not used. See 4.1, “Standard Tables”,
2527 Figure 4-1, conditions C through H for more details.
2528 1 Default set #1, Simple Meter Register, in use.
2529 2 Default set #2, Simple Demand Meter, in use.
2530 3 Default set #3, Simple TOU Meter, in use.
2531 4 Default set #4, Simple Profile Recorder, in use.
2532 5..255 Reserved.
2533 MAX_PROC_PARM_LENGTH
2534 0..255 Manufacturer-defined maximum length for argument
2535 parameters passed to procedures in PROC_INITIATE_TBL
2536 (Table 07).
2540 STD_VERSION_NO A number that designates the version of the particular industry
2541 set of Standard Tables.
2542 0 Pre-release or informal release document.
2543 1 Original Standard Table Set, first release of the standard,
2544 ANSI C12.19-1997. If the Decade 9 tables are implemented,
2545 this implies the use of ANSI C12.21-1999.
2546 2 Second Standard Table Set, second release of the standard as
2547 defined by this document. If Decade 12 or Decade 13 tables
2548 are implemented, this implies the use of ANSI C12.22-2008.
2549 3..255 Reserved.
2559 DIM_STD_TBLS_USED 0..255 The number of Octets required to represent the set of standard
2560 tables used in GEN_CONFIG_TBL.STD_TBLS_USED
2561 (Table 00). This is a mechanism to allow the table identifier
2562 set to expand in size from simple devices to complex devices.
2563 DIM_MFG_TBLS_USED 0..255 The number of Octets required to represent the set of
2564 manufacturer tables used in
48
DRAFT ANSI C12.19-2012
2568 DIM_STD_PROC_USED 0..255 The number of Octets required to represent the set of standard
2569 procedures used in
2570 GEN_CONFIG_TBL.STD_PROC_USED (Table 00). This
2571 is a mechanism to allow the standard-defined procedure
2572 identifier set to expand in size.
2573 DIM_MFG_PROC_USED 0..255 The number of Octets required to represent the set of
2574 manufacturer procedures used in
2575 GEN_CONFIG_TBL.MFG_PROC_USED (Table 00). This
2576 is a mechanism to allow the manufacturer-defined procedure
2577 identifier set to expand in size.
2578 DIM_MFG_STATUS_USED
2579 0..255 The number of Octets allocated for indicating manufacturer-
2580 specific status flags.
2583 STD_TBLS_USED This set Element indicates which of the Standard Tables are
2584 implemented by the End Device. Tables are represented by
2585 bit-indices 0 through (8*DIM_STD_TBLS_USED-1).
2586 FALSE The Standard Table represented by this SET index is not
2587 available from the End Device.
2588 TRUE The Standard Table represented by this SET index is
2589 implemented, and it is available from the End Device.
2590 MFG_TBLS_USED This set Element indicates which of the Manufacturer Tables
2591 are implemented by the End Device. Tables are represented by
2592 bit-indices 0 through (8*DIM_MFG_TBLS_USED-1).
2593 FALSE The Manufacturer Table represented by this SET index is not
2594 available from the End Device.
2595 TRUE The Manufacturer Table represented by this SET index is
2596 implemented, and it is available from the End Device.
2597 STD_PROC_USED This set Element indicates which of the Standard Procedures
2598 are implemented by the End Device. Procedures are
2599 represented by bit-indices 0 through
2600 (8*DIM_STD_PROC_USED-1).
2601 FALSE The Standard Procedure represented by this SET index is not
2602 implemented by the End Device.
2603 TRUE The Standard Procedure represented by this SET index is
2604 implemented the End Device.
2613 STD_TBLS_WRITE This set Element indicates which of the Standard Tables are
2614 capable of being written to. Tables are represented by bit-
2615 indices 0 through (8*DIM_STD_TBLS_USED-1).
2616 FALSE The Standard Table represented by this SET index cannot be
2617 written.
2618 TRUE The Standard Table represented by this SET index may be
2619 written (as constrained by other security and access
2620 provisions).
2621 MFG_TBLS_WRITE This set Element indicates which of the Manufacturer’s Tables
2622 are capable of being written to. Tables are represented by bits
2623 0 through (8*DIM_MFG_TBLS_USED-1).
2624 FALSE The Manufacturer Table represented by this SET index cannot
2625 be written.
2626 TRUE The Manufacturer Table represented by this SET index may
2627 be written (as constrained by other security and access
2628 provisions).
50
DRAFT ANSI C12.19-2012
2631 GENERAL_MFG_ID_TBL (Table 01) is a general manufacturer identification data table for Water, Gas, and
2632 Electric Utility End Devices. The values of the data items shall be set up by the manufacturer and left unchanged
2633 since they are determined by the functionality of the device.
2654 ED_MODEL Model identifier of the End Device left justified. For example
2655 “ENG M3”.
2669 DEVICE_NAMEPLATE_TBL (Table 02) is the nameplate data table. This table contains a record structure for
2670 each type of End Device (e.g., water, gas, or electric). The structure to be used is specified in
2671 GEN_CONFIG_TBL.NAMEPLATE_TYPE (Table 00). This table currently has nameplate structures defined for
2672 an electric meter, a gas meter, and a water meter.
52
DRAFT ANSI C12.19-2012
2811 G_ED_TYPE_BFLD
2812 G_ED_TYPE Code representing gas End Device type.
2813 0 Unclassified.
2814 1 Gas meter.
2815 2 Gas pressure regulator.
2816 3 Sensor.
2817 4 Load shed device.
2818 5 Cathodic protection unit.
2819 6..7 Reserved.
2849 G_PRESSURE_RCD
2850 G_MAX_PRESS End Device maximum design pressure.
2852 G_FLOW_RCD
2853 G_MAX_FLOW End Device maximum design flow rate.
2855 G_SIZE_BFLD
Tables / Decade 0: General Configuration Tables 55
Table 02 Device Nameplate Table
DRAFT ANSI C12.19-2012
2866 G_INPUT_OUTPUT_PIPE Code representing gas meter internal pipe diameter (ID).
2867 English Metric.
2868 0 None None.
2869 1 1/2" 13 mm.
2870 2 5/8" 15 mm.
2871 3 3/4" 20 mm.
2872 4 1" 25 mm.
2873 5 1 1/2" 40 mm.
2874 6 2" 50 mm.
2875 7 4" 100 mm.
2876 8 6" 150 mm.
2877 9 8" 200 mm.
2878 10 10" 250 mm.
2879 11 12" 300 mm.
2880 12 14" 350 mm.
2881 13 16" 400 mm.
2882 14 18" 450 mm.
2883 15 20" 500 mm.
2884 16 22" Not standard.
2885 17 24" 600 mm.
2886 18 26" Not standard.
2887 19 28" Not standard.
2888 20 30" 750 mm.
2889 21 32" Not standard.
2890 22 34" Not standard.
2891 23 36" 900 mm.
2892 24..31 Reserved.
2893 G_COMPENSATION_BFLD
2894 G_COMP_TEMP Code representing the gas meter temperature compensation
2895 type.
2896 0 Uncompensated.
2897 1 Mechanical.
2898 2 Sensor.
2899 3..31 Reserved.
2900 G_COMP_PRESS Code representing the gas meter pressure compensation type.
2901 0 Uncompensated.
2902 1 Mechanical.
2903 2 Sensor.
2904 3..7 Reserved.
56
DRAFT ANSI C12.19-2012
2905 G_GAS_DEVICE_RCD Elements that are generally associated with Gas Utility End
2906 Devices. The values of the data items shall be set up by the
2907 manufacturer and left unchanged since they are determined by
2908 the functionality of the device.
2909 G_ED_TYPE See G_ED_TYPE_BFLD.
2914 E_ELEMENTS_BFLD Contains binary codes physically describing the End Device.
2946 E_ACCURACY_CLASS 0..63 ANSI solid state meter standard accuracy class definitions.
2949 E_ELEMENTS_VOLTS Meter element voltage code. This binary code indicates the
2950 End Device voltage class.
2951 0 None.
2952 1 69.3.
2953 2 72.
2954 3 120.
2955 4 208.
2956 5 240.
2957 6 277.
2958 7 480.
2959 8 120 through 277.
2960 9 120 through 480.
2961 10 347.
2962 11 600.
2963 12..15 Reserved.
2964 E_ED_SUPPLY_VOLTS External supply voltage code. This Element identifies the End
2965 Device supply voltage.
2966 0 Internal.
2967 1 69.3 AC.
2968 2 72 AC.
2969 3 120 AC.
2970 4 208 AC.
2971 5 240 AC.
2972 6 277 AC.
2973 7 480 AC.
2974 8 120 through 277 AC.
2975 9 120 through 480 AC.
2976 10 48 DC.
2977 11 25 DC.
2978 12 250 DC.
2979 13 347 AC.
2980 14 600 AC.
2981 15 Reserved.
2982 E_AMPS_RCD
2983 E_CLASS_MAX_AMPS End Device class or IEC max amp rating.
2984 E_TA The RMS amperage test amps (TA) specified by the
2985 manufacturer for the main test and/or adjustment of the meter.
2986 E_ELECTRIC_DEVICE_RCD Elements that are generally associated with Electric Utility
2987 End Devices. The values of the data items shall be set up by
2988 the manufacturer and left unchanged since they are determined
2989 by the functionality of the device.
2992 E_KT The commodity amount selected for the test pulse output.
2993 E_INPUT_SCALAR 0..255 Divisor by which to scale input values. For example, if input
2994 consists of pulses, an E_INPUT_SCALAR value of 2 would
2995 cause the pulse stream to be divided by 2.
58
DRAFT ANSI C12.19-2012
3004 G_GAS_DEVICE Element present when the End Device is a gas meter. See
3005 G_GAS_DEVICE_RCD for details.
3006 W_WATER_DEVICE Element present when the End Device is a water meter. See
3007 W_WATER_DEVICE_BFLD for details.
3008 E_ELECTRIC_DEVICE Element present when the End Device is an electricity meter.
3009 See E_ELECTRIC_DEVICE_RCD for details.
3012 ED_MODE_STATUS_TBL (Table 03) provides the current operating mode and status of various conditions in the
3013 End Device. It allows for both standard- and manufacturer-specific status definitions.
60
DRAFT ANSI C12.19-2012
3055 ED_MODE_BFLD
3056 METERING_FLAG FALSE End Device is not in Metering Mode.
3057 TRUE End Device is in Metering Mode. The
3058 METER_SHOP_MODE_FLAG cannot be true while this
3059 flag is true.
3062 METER_SHOP_MODE_FLAG
3063 FALSE End Device is not in Meter Shop Mode.
3064 TRUE End Device is in Meter Shop Mode. The
3065 METERING_FLAG cannot be true while this flat is true.
3068 ED_STD_STATUS1_BFLD
3069 UNPROGRAMMED_FLAG
3070 FALSE End Device is programmed.
3071 TRUE End Device is not programmed, or it is in a factory default
3072 state.
3073 CONFIGURATION_ERROR_FLAG
3074 FALSE End Device did not detect a configuration error.
3075 TRUE End Device did detect a configuration error.
3076 SELF_CHK_ERROR_FLAG
3077 FALSE End Device did not detect a self-check error.
3078 TRUE End Device did detect a self-check error.
3079 RAM_FAILURE_FLAG FALSE End Device did not detect a RAM Memory failure.
3080 TRUE End Device did detect a RAM Memory failure.
3081 ROM_FAILURE_FLAG FALSE End Device did not detect a ROM memory failure.
3082 TRUE End Device did detect a ROM Memory failure.
3083 NONVOL_MEM_FAILURE_FLAG
3084 FALSE End Device did not detect a nonvolatile memory failure.
3085 TRUE End Device did detect a nonvolatile memory failure.
3086 CLOCK_ERROR_FLAG FALSE End Device did not detect a clock error.
3087 TRUE End Device did detect a clock error.
3088 MEASUREMENT_ERROR_FLAG
3089 FALSE End Device did not detect a measurement element error.
3090 TRUE End Device did detect a measurement element error.
3091 LOW_BATTERY_FLAG FALSE End Device did not detect a low battery error.
3092 TRUE End Device did detect a low battery error.
3093 LOW_LOSS_POTENTIAL_FLAG
3094 FALSE End Device did not detect a potential that is below a
3095 predetermined value.
3096 TRUE End Device did detect a device potential that is below a
3097 predetermined value.
3098 DEMAND_OVERLOAD_FLAG
3099 FALSE End Device did not detect a demand threshold overload.
3100 TRUE End Device did detect a demand threshold overload.
3101 POWER_FAILURE_FLAG
3102 FALSE End Device did not detect a power failure.
3103 TRUE End Device did detect a power failure.
3104 TAMPER_DETECT_FLAG
3105 FALSE End Device did not detect tamper activity.
3106 TRUE End Device did detect tamper activity.
3107 REVERSE_ROTATION_FLAG
3108 FALSE End Device did not detect reverse rotation.
3109 TRUE End Device did detect reverse rotation.
3110 ED_STD_STATUS2_BFLD Standard status code bit field 2 is a placeholder for future
3111 expansion.
3112 ED_MFG_STATUS_RCD
3113 ED_MFG_STATUS Set containing the manufacturer-specific status flags.
3114 ED_MODE_STATUS_RCD
3115 ED_MODE See ED_MODE_BFLD.
62
DRAFT ANSI C12.19-2012
3122 PENDING_STATUS_TBL (Table 04) is established to provide an indication of the tables present in the End
3123 Device with a pending status. Information contained within this table includes table number, manufacturer or
3124 standard table indicator, conditions (events) upon which activation of a pending table is to occur, self-read or
3125 demand reset upon activation indicators, and several additional status Elements.
3150 ENTRY_ACTIVATION_RCD
3151 EVENT Details of the event that triggers pending table activation(s).
3155 PENDING_ACTIVATION_RCD
3156 STANDARD_PENDING This set Element indicates which of the standard tables are
3157 capable of being written with a pending status.
3158 MANUFACT_PENDING This set Element indicates which of the manufacturer tables
3159 are capable of being written with a pending status.
3160 LAST_ACTIVATION_DATE_TIME Date and time of the last pending table activated.
3161 NBR_PENDING_ACTIVATION
3162 0..255 Number of activation events in the
3163 PENDING_STATUS_TBL structure that have yet to be
3164 activated.
64
DRAFT ANSI C12.19-2012
3168 DEVICE_IDENT_TBL (Table 05) This table provides the unique identifier for the device as specified by the user.
3188 UTIL_INFO_TBL (Table 06) is for utility use in providing additional End Device identifying or tracking
3189 information.
66
DRAFT ANSI C12.19-2012
3229 UTIL_INFO_RCD
3230 OWNER_NAME Up to twenty (20) characters. All printable characters are
3231 valid.
3236 ELEC_ADDR End Device logical electrical address for mapping and study
3237 purposes. This is used by the utility as information only.
3244 CUSTOMER_ID Up to twenty (20) characters or twenty (20) BCD digits. All
3245 printable characters are valid if characters.
3269 WGS84). When coordinates are not in use, this element should
3270 be filled with ten (10) spaces (20H).
3274 EX1_SW_VERSION_NUMBER
3275 0..255 Configuration/programming software version number,
3276 unsigned binary number. Changes in value imply functional
3277 differences.
3278 EX1_SW_REVISION_NUMBER
3279 0..255 Configuration/programming software revision number,
3280 unsigned binary number. Changes in value imply product
3281 corrections or improvements. Recommend use of “0” to
3282 designate preproduction or prototyping software.
3285 EX2_SW_VERSION_NUMBER
3286 0..255 Configuration/programming software version number.
3287 Changes in value imply functional differences.
3288 EX2_SW_REVISION_NUMBER
3289 0..255 Configuration/programming software revision number,
3290 unsigned binary number. Changes in value imply product
3291 corrections or improvements. Recommend use of “0” to
3292 designate preproduction or prototyping software.
3294 MISC_ID Thirty characters, free form. All printable characters are
3295 allowed. This could be used to contain approval number,
3296 verification number, bar code, etc.
3297 FW_LOAD_DATE Date of the last End Device firmware loading in the field. The
3298 initial value, if the End Device was not updated yet in the
3299 field, shall be left to the discretion of the Manufacturer. This
3300 may be used to track End Devices that have suspect firmware,
3301 as an example.
68
DRAFT ANSI C12.19-2012
3304 PROC_INITIATE_TBL (Table 07) allows for the execution of commands using the table structure. To execute a
3305 command, a procedure identifier (PROC), a sequence number (SEQ_NBR), and an optional parameter list (PARM)
3306 are written into this table. The response to the command is placed in PROC_RESPONSE_TBL (Table 08) and is
3307 available to be read. As a minimum response, all commands shall produce an echo of the procedure identifier
3308 (PROC), an echo of the sequence number (SEQ_NBR), and a result code in the procedure response table
3309 (Table 08). When the End Device supports more than one concurrent session or association, then the binding
3310 between procedure initiation and procedure response shall be limited to the session or association that initiated the
3311 procedure. The processing of procedure initiates and procedure responses of any session or association shall not
3312 interfere with another concurrent session or association. If a procedure initiate request is followed by another
3313 procedure initiate request, the procedure response for the first procedure initiate request may be lost. Note that the
3314 scope of the Procedure request parameters (defined in 9.1.10, “Standard Procedures”) needs to be specified
3315 absolutely when referenced in syntax within the context of PROC_INITIATE_TBL (Table 7), since the scope of
3316 the Procedure Initiate Table is different from the scope of any one Procedure definition.
3480 PARM_RCD
3481 STANDARD See STD_PARM_RCD.
3483 PROC_FORMAT_RCD
3484 PROC Bit field indicating procedure number to be executed and
3485 whether the procedure is a standard-defined procedure or a
3486 manufacturer-defined procedure. It also defines the response
3487 format.
3488 SEQ_NBR 0..255 The sequence number is supplied by initiator of the procedure.
3489 It shall be returned with the procedure response in
3490 PROC_RESPONSE_TBL (Table 08) as a means of
3491 coordination.
3496 PROC_RESPONSE_TBL (Table 08) is a complementary table to PROC_INITIATE_TBL (Table 07). This table
3497 contains a response, which gets posted to Table 08 as a result of a write to PROC_INITIATE_TBL (Table 07).
3498 When the End Device supports more than one concurrent session or association, then the binding between procedure
3499 initiation and procedure response shall be limited to the session or association that initiated the procedure. If a
3500 procedure initiate request is followed by another procedure initiate request (within a session or association), the
3501 procedure response for the first initiated procedure may be lost. However, receipt of the first sequence number
3502 (SEQ_NBR) instead of a later sequence number indicates that one or more reads of Table 08 may be required to
3503 recover the related procedure response. Also the content of the procedure response table following termination of a
3504 session or association is not defined by this standard. Note that the scope of the Procedure response parameters
3505 (defined in 9.1.10) needs to be specified absolutely when referenced in syntax within the context of
3506 PROC_RESPONSE_TBL (Table 08), since the scope of the Procedure Response Table is different from the scope
3507 of any one Procedure definition.
74
DRAFT ANSI C12.19-2012
76
DRAFT ANSI C12.19-2012
3645 RESP_DATA_RCD
3646 STANDARD See STD_RESP_RCD.
3648 PROC_RESPONSE_RCD
3649 PROC Bit field indicating procedure number executed and whether
3650 the procedure was a standard-defined or a manufacturer-
3651 defined.
3655 RESULT_CODE Code which identifies the status of the procedure execution.
3656 The codes are defined as follows:
3657 0 Procedure completed.
78
DRAFT ANSI C12.19-2012
3674 The following procedures are defined as standard procedures by this document. MFG_FLAG shall be set to
3675 FALSE.
3678 This procedure causes the End Device to return to a manufacturer default known state. All data values, programs,
3679 and conditions may be lost. Communication may be broken. If an Event Log exists, an attempt shall be made to
3680 retain it.
3685 This procedure causes the End Device to return to a “power-up” state. Communication may be broken.
3690 This procedure causes the End Device to save its active configuration.
3695 This procedure causes the End Device to purge generated data fields but retain programming fields. Data fields to be
3696 purged are specified by the device manufacturer.
3699
3702 When this procedure is invoked, the End Device attempts to reset list control Elements to their initial state. To
3703 execute this procedure, the initiator shall in addition be required to have access permission to the procedure and
3704 write access permission to the table containing the selected list(s).
3705 Note that when PARM_DATA_RCD.LIST is set to 1,2,8,9,10,11,12 or 11, then the related
3706 LAST_ENTRY_SEQ_NBR Element may be reset to zero. When PARM_DATA_RCD.LIST is set to 3,4,5,6 or 7,
3707 then the related LAST_BLOCK_SEQ_NBR Element may be reset to zero.
3716 PARM_DATA_RCD
3717 LIST 0 Reserved.
3718 1 EVENT_LOG_DATA_TBL (Table 76).
3719 2 SELF_READ_DATA_TBL (Table 26).
3720 3 LP_DATA_SET1_TBL (Table 64).
3721 4 LP_DATA_SET2_TBL (Table 65).
3722 5 LP_DATA_SET3_TBL (Table 66).
3723 6 LP_DATA_SET4_TBL (Table 67).
3724 7 LP_DATA_SET1_TBL (Table 64) and
3725 LP_DATA_SET2_TBL (Table 65) and
3726 LP_DATA_SET3_TBL (Table 66) and
3727 LP_DATA_SET4_TBL (Table 67).
3728 8 HISTORY_LOG_DATA_TBL (Table 74).
3729 9 QUALITY_LOG_TBL (Table 154).
3730 10 TD_ASYNC_TBL (Table 155).
3731 11 FD_ASYNC_TBL (Table 156).
3732 12 TIME_DOMAIN_TBL (Table 157).
3733 13 FREQUENCY_DOMAIN_TBL (Table 158).
3734 14..127 Reserved.
3735 128..254 Reserved for Manufacturer’s Lists.
3736 255 All lists except EVENT_LOG_DATA_TBL (Table 76).
3739 When this procedure is invoked, the End Device attempts to reduce the list Element NBR_UNREAD_ENTRIES by
3740 the value specified. To execute this procedure, the initiator shall in addition be required to have access to the
3741 procedure and write access to the table containing the selected list(s).
3742 Note that when PARM_DATA_RCD.LIST is set to 1,2,8,9,10,11,12 or 11, then the related
3743 LAST_ENTRY_SEQ_NBR Element shall not reset to zero. When PARM_DATA_RCD.LIST is set to 3,4,5,6 or
3744 7, then the related LAST_BLOCK_SEQ_NBR Element shall not reset to zero.
80
DRAFT ANSI C12.19-2012
3754 PARM_DATA_RCD
3755 LIST 0 Reserved.
3756 1 EVENT_LOG_DATA_TBL (Table 76).
3757 2 SELF_READ_DATA_TBL (Table 26).
3758 3 LP_DATA_SET1_TBL (Table 64).
3759 4 LP_DATA_SET2_TBL (Table 65).
3760 5 LP_DATA_SET3_TBL (Table 66).
3761 6 LP_DATA_SET4_TBL (Table 67).
3762 7 LP_DATA_SET1_TBL (Table 64) and
3763 LP_DATA_SET2_TBL (Table 65) and
3764 LP_DATA_SET3_TBL (Table 66) and
3765 LP_DATA_SET4_TBL (Table 67).
3766 8 HISTORY_LOG_DATA_TBL (Table 74).
3767 9 QUALITY_LOG_TBL (Table 154).
3768 10 TD_ASYNC_TBL (Table 155).
3769 11 FD_ASYNC_TBL (Table 156).
3770 12 TIME_DOMAIN_TBL (Table 157).
3771 13 FREQUENCY_DOMAIN_TBL (Table 158).
3772 14..127 Reserved.
3773 128..254 Reserved for Manufacturer’s Lists.
3774 255 All lists except EVENT_LOG_DATA_TBL (Table 76).
3778 This procedure changes the operational modes of the End Device.
3791 PARM_DATA_RCD
3792 ED_MODE See ED_MODE_STATUS_TBL.ED_MODE (Table 03).
3793 This Element contains the desired mode.
3794 RESP_DATA_RCD
3795 ED_MODE See ED_MODE_STATUS_TBL.ED_MODE (Table 03).
3796 This Element contains the mode resulting from the execution
3797 of this Procedure.
3800 When invoked, this procedure causes the End Device to attempt to clear all standard status flags.
3817
3820 When invoked, the End Device attempts to clear all manufacturer status flags.
82
DRAFT ANSI C12.19-2012
3829 RESP_DATA_RCD
3830 ED_MFG_STATUS See ED_MODE_STATUS_TBL.
3831 ED_MFG_STATUS_RCD (Table 03).
3834 When invoked, this procedure attempts to perform the specified combination of resets. The following resets are
3835 supported: Self-read, Demand Reset, and Season Change.
3856 ACTION_FLAG_BFLD
3857 DEMAND_RESET_FLAG FALSE Do not perform a demand reset.
3858 TRUE Perform a demand reset.
3861 SEASON_CHANGE_FLAG
3862 FALSE Do not perform a change to the new season specified.
3863 TRUE Perform a change to the new season specified.
3865 PARM_DATA_RCD
3866 ACTION_FLAG Bit mask denotes the reset actions to perform.
3872 SEASON_CHANGE_FLAG
3873 FALSE Did not perform a change to the new season specified.
3874 TRUE Performed a change to the new season specified.
3875 NEW_SEASON 0..15 The season number the End Device changed to if
3876 SEASON_CHANGE_FLAG = TRUE.
3877 RESP_DATA_RCD
3878 SUCCESS_FLAG Indicates which “resets” were successful by setting
3879 corresponding bits.
3882 This procedure is used to set the date and/or time in the End Device. It is important to note that the new date-time
3883 field within this procedure REQUEST (DATE_TIME) might be transported using a different time reference (End
3884 Device operational time, Standard time, or UTC) from the one published by the Clock Table (Table 52), Clock State
3885 Table (Table 55), or Precision Clock State Table (Table 57). See the introduction of Decade 5 for more information.
3886
84
DRAFT ANSI C12.19-2012
3925 DST_FLAG FALSE The DATE_TIME Element is not within a daylight saving
3926 time period.
3927 TRUE The DATE_TIME Element is within a daylight saving time
3928 period.
3939 DST_APPLIED_FLAG FALSE The DATE_TIME Element does not include daylight saving
3940 adjustment.
3941 TRUE The DATE_TIME Element includes daylight saving
3942 adjustment.
3945 PARM_DATA_RCD
3946 SET_MASK Bit mask denotes the actions to perform.
3949 RESP_DATA_RCD
3950 DEV_DATE_TIME_BEFORE Date and time in the End Device just before set-date-time
3951 procedure was executed. This field is transported according to
3952 TIME_DATE_QUAL found in any one of the Clock Table
3953 (Table 52), Clock State Table (Table 55), or Precision Clock
3954 State Table (Table 57).
3955 DEV_DATE_TIME_AFTER Date and time in the End Device just after set-date-time
3956 procedure was executed. This field is transported according to
3957 TIME_DATE_QUAL in any one of the Clock Table
3958 (Table 52), Clock State Table (Table 55), or Precision Clock
3959 State Table (Table 57).
3960
86
DRAFT ANSI C12.19-2012
3968 This procedure causes the End Device to immediately activate all pending tables regardless of activation trigger(s).
3973 This procedure causes the End Device to immediately activate any pending table(s) with the specified activation
3974 trigger.
3987 This procedure causes the End Device to immediately clear the pending state of all pending tables.
3992 This procedure causes the End Device to immediately clear the pending status of all pending table(s) with the
3993 specified activation trigger.
4016 When invoked, this procedure establishes the active USER_ID that is used in the HISTORY_LOG_DATA_TBL
4017 (Table 74) and in the EVENT_LOG_DATA_TBL (Table 76) and supplies a password.
4018
88
DRAFT ANSI C12.19-2012
4033 PASSWORD Password supplied. The first Octet of the password shall be
4034 placed in the lowest index position of the Element.
4042 This procedure causes the End Device to immediately initiate a call with the phone number specified. Call windows
4043 are ignored.
4060 This procedure provides direct load control through a communication link. The load control directive data structure
4061 used by this procedure is shared by all other methods supported in the load control Decade.
4089 DURATION Period of time before automatically restoring the original state
4090 of the selected control points. Duration set to 00:00:00 means
4091 no duration and produces a permanent state change.
90
DRAFT ANSI C12.19-2012
4092 RANDOMIZATION_PERIOD The upper bound allowable for the randomization period in
4093 minutes. The requested load control directive shall be asserted
4094 within 0 to RANDOMIZATION_PERIOD minutes, based
4095 on a random value computed by some means.
4122 RESP_DATA_RCD
4123 NEW_REMAINING_CREDIT PREPAYMENT_STATUS_TBL.REMAINING_CREDIT
4124 available after processing this request.
4135 This procedure causes the End Device to immediately clear all pending call reasons in Table 98 Originate Status.
4150 This procedure enables event logging (if implemented) of secure register reads (if implemented) and volatile data
4151 freezing (if implemented), in Event Log Data Table (Table 76), to facilitate End Device reading.
4158
92
DRAFT ANSI C12.19-2012
4170 SECURED_REGISTER_FLAG
4171 FALSE The operational state of the secured register read is left
4172 unchanged.
4173 TRUE Begin secured read operations. The End Device shall generate
4174 End Device secured register events (Read Secured Register or
4175 Read Secured Table) following the transfer of a secured
4176 register Table or Element to an End-Device reader, provided
4177 that this feature is implemented by the End Device. Event
4178 logging of secured-register reads shall cease immediately upon
4179 invocation of the “Stop Secured Register” procedure,
4180 termination of the communication session that invoked the
4181 “Start Secured Register” procedure, or upon reaching the
4182 maximum number of secured read operations that were
4183 permitted for this session or association.
4184 DATA_FREEZE_FLAG FALSE The operational state of the data freeze is left unchanged.
4185 TRUE Create a frozen (unchanging) copy of all volatile End Device
4186 data values. Following acceptance of this optional capability,
4187 all values read from the End Device shall be nonchanging and
4188 coincident. The data shall remain frozen while the number of
4189 active sessions plus active communication associations that
4190 initiated a data freeze is greater than zero (0).
4191 PARM_DATA_RCD
4192 READ_ENABLE See request SECURED_READ_REQ_BFLD.
4197 SECURED_READ_RESP_BFLD Bit field used to indicate the secured read related operations
4198 enabled status.
4199 Redefines: SECURED_READ_REQ_BFLD.
4200 SECURED_REGISTER_FLAG
4201 FALSE Secured read Event Logging is disabled.
4202 TRUE Secured read Event Logging is enabled.
4203 DATA_FREEZE_FLAG FALSE End Device Table data is not frozen (the End Device shall
4204 report real-time data values).
4205 TRUE End Device Table data is frozen (the End Device
4206 shall continue normal data processing in the background to
4207 prevent loss of data).
4211 SECURED_READ_MAX The maximum number of Event Log entries available to report
4212 the upcoming secured read events.
4213 0 The maximum number of secured register reading events has
4214 been reached.
4215 1..65535 The remaining number of secured register reading events that
4216 can be recorded.
4219 This procedure disables event logging (if implemented) of secure register reads (if implemented) and volatile data
4220 freezing (if implemented), in Event Log Data Table (Table 76), to reinstate nonsecured End Device reading.
4238 DATA_FREEZE_FLAG FALSE The operational state of the data freeze is left unchanged.
4239 TRUE Unfreeze all volatile End Device data values.
4240 PARM_DATA_RCD
4241 READ_DISABLE See request SECURED_READ_REQ_BFLD.
94
DRAFT ANSI C12.19-2012
4242 SECURED_READ_RESP_BFLD Bit field used to indicate the secured read related operations
4243 completion status.
4244 Redefines: SECURED_READ_REQ_BFLD.
4245 SECURED_REGISTER_FLAG
4246 FALSE Secured read Event Logging is disabled.
4247 TRUE Secured read Event Logging is enabled.
4248 DATA_FREEZE_FLAG FALSE End Device Table data not frozen (the End Device shall report
4249 real-time data values).
4250 TRUE End Device Table data copy is frozen (the End Device shall
4251 continue normal data processing in the background to prevent
4252 loss of data).
4257 SECURED_READ_MAX The total number of Event Log entries created to report the
4258 secured read events since the last initiation of the Stop
4259 Secured Register procedure in Event Log Data Table
4260 (Table 76).
4261 0 No events recorded.
4262 1..65535 The actual number of secured register reading events recorded.
4265 This procedure is used to set the date and/or time in the End Device with higher precision than that provided by
4266 Procedure 10, SET_DATE_TIME_PROC. It is important to note that the new date-time field within this procedure
4267 REQUEST (DATE_TIME) can be transported using a different time reference (End Device operational time,
4268 Standard time, or UTC) from the one published by the Clock Table (Table 52), Clock State Table (Table 55), or
4269 Precision Clock State Table (Table 57). See the introduction of Decade 5 for more information.
4291 RESP_DATA_RCD
4292 DEV_DATE_TIME_BEFORE Date and time in the End Device just before set-date-time
4293 procedure was executed. This field is transported according to
4294 TIME_DATE_QUAL found in any one of the Clock Table
4295 (Table 52), Clock State Table (Table 55), or Precision Clock
4296 State Table (Table 57).
4297 DEV_DATE_TIME_AFTER Date and time in the End Device just after set-date-time
4298 procedure was executed. This field is transported according to
4299 TIME_DATE_QUAL in any one of the Clock Table
4300 (Table 52), Clock State Table (Table 55), or Precision Clock
4301 State Table (Table 57).
96
DRAFT ANSI C12.19-2012
4304 DATA_SOURCE_DEC
4306 The role of a Data Sources is to provide information about the different measurements supported by the End Device
4307 such as the Unit Of Measure, accountability, scalars, and to allow control and configuration of these measurements.
4308 See Annex K, “(informative) Algorithms for the conversion of Table Element values to engineering units”, for
4309 details on possible algorithms for computing Metering Data.
4310
4313 DIM_SOURCES_LIM_TBL (Table 10) contains maximum dimensions and End Device capabilities for
4314 establishing data sources.
4350 RESET_EXCLUDE_FLAG Reset exclusion is defined as inhibiting demand reset for some
4351 period after a reset.
4352 FALSE Reset exclusion is not supported by the End Device.
4353 TRUE Reset exclusion is supported by the End Device.
98
DRAFT ANSI C12.19-2012
4354 BLOCK_DEMAND_FLAG FALSE Block demand is not supported by the End Device.
4355 TRUE Block demand is supported by the End Device.
4356 SLIDING_DEMAND_FLAG
4357 FALSE Sliding demand is not supported by the End Device.
4358 TRUE Sliding demand is supported by the End Device.
4359 THERMAL_DEMAND_FLAG FALSE Thermal demand is not supported by the End Device.
4360 TRUE Thermal demand is supported by the End Device.
4361 SET1_PRESENT_FLAG FALSE The End Device does not support the first set of optional
4362 constants in the electric record of the CONSTANTS_TBL
4363 (Table 15).
4364 TRUE The End Device does support the first set of optional constants
4365 in the electric record of the CONSTANTS_TBL (Table 15).
4366 SET2_PRESENT_FLAG FALSE The End Device does not support the second set of optional
4367 constants in the electric record of the CONSTANTS_TBL
4368 (Table 15).
4369 TRUE The End Device does support the second set of optional
4370 constants in the electric record of the CONSTANTS_TBL
4371 (Table 15).
4372 CONVERSION_ALG_FLAG
4373 FALSE The algorithm used for the conversion of measurements to
4374 engineering values, based on the information contained within
4375 this Decade and as defined in Annex K, “(informative)
4376 Algorithms for the conversion of Table Element values to
4377 engineering units”, is not implemented by this End Device.
4378 TRUE The algorithm used for the conversion of measurements to
4379 engineering values, based on the information contained within
4380 this Decade and as defined in Annex K, “(informative)
4381 Algorithms for the conversion of Table Element values to
4382 engineering units”, is implemented by this End Device.
4383 SOURCE_RCD
4384 SOURCE_FLAGS Bit fields that indicate what demand and TOU register
4385 functions the End Device is capable of performing.
4388 NBR_DEMAND_CTRL_ENTRIES
4389 0..255 Maximum number of entries in the
4390 DEMAND_CONTROL_TBL (Table 13).
4391 DATA_CTRL_LENGTH 0..255 Manufacturer supplied value that determines the width in
4392 Octets of an entry in the first array of the
4393 DATA_CONTROL_TBL (Table 14).
4394 NBR_DATA_CTRL_ENTRIES
4395 0..255 Maximum number of entries in the DATA_CONTROL_TBL
4396 (Table 14).
4397 NBR_CONSTANTS_ENTRIES
4398 0..255 Maximum number of entries in the CONSTANTS_TBL
4399 (Table 15).
4400 CONSTANTS_SELECTOR This value is the selector for the record structure used in the
4401 CONSTANTS_TBL (Table 15).
4402 0 GAS_CONSTANTS_AGA3_RCD data structure selected.
4403 1 GAS_CONSTANTS_AGA7_RCD data structure selected.
4404 2 ELECTRIC_CONSTANTS_RCD data structure selected.
4405 3..255 Reserved.
100
DRAFT ANSI C12.19-2012
4410 ACT_SOURCES_LIM_TBL (Table 11) contains the actual parameters of Table 10 the End Device has been
4411 configured with.
4424 RESET_EXCLUDE_FLAG Reset exclusion is defined as inhibiting demand reset for some
4425 period after a reset.
4426 FALSE Reset exclusion is not in use by the End Device.
4427 TRUE Reset exclusion is in use by the End Device.
4428 BLOCK_DEMAND_FLAG FALSE Block demand is not in use by the End Device.
4429 TRUE Block demand is in use by the End Device.
4430 SLIDING_DEMAND_FLAG
4431 FALSE Sliding demand is not in use by the End Device.
4432 TRUE Sliding demand is in use by the End Device.
4433 THERMAL_DEMAND_FLAG
4434 FALSE Thermal demand is not in use by the End Device.
4435 TRUE Thermal demand is in use by the End Device.
4436 SET1_PRESENT_FLAG FALSE The End Device is not using the first set of optional constants
4437 in the electric record of the CONSTANTS_TBL (Table 15).
4438 TRUE The End Device is using the first set of optional constants in
4439 the electric record of the CONSTANTS_TBL (Table 15).
4440 SET2_PRESENT_FLAG FALSE The End Device is not using the second set of optional
4441 constants in the electric record of the CONSTANTS_TBL
4442 (Table 15).
4443 TRUE The End Device is using the second set of optional constants
4444 in the electric record of the CONSTANTS_TBL (Table 15).
4445 CONVERSION_ALG_FLAG
4446 FALSE This field has the same meaning and shall have the same value
4447 as the corresponding field in the Data Source Dimension
4448 Limits Table (Table 10).
4449 TRUE This field has the same meaning and shall have the same value
4450 as the corresponding field in the Data Source Dimension
4451 Limits Table (Table 10).
4453 SOURCE_FLAGS Bit fields that indicate what demand and TOU register
4454 functions are in use by the End Device as configured.
4457 NBR_DEMAND_CTRL_ENTRIES
4458 0..255 Actual number of entries in the
4459 DEMAND_CONTROL_TBL (Table 13).
4462 NBR_DATA_CTRL_ENTRIES
4463 0..255 Actual number of entries in the DATA_CONTROL_TBL
4464 (Table 14).
4465 NBR_CONSTANTS_ENTRIES
4466 0..255 Actual number of entries in the CONSTANTS_TBL
4467 (Table 15).
4468 CONSTANTS_SELECTOR This value is the selector for the record structure used in the
4469 CONSTANTS_TBL (Table 15).
4470 0 GAS_CONSTANTS_AGA3_RCD data structure selected.
4471 1 GAS_CONSTANTS_AGA7_RCD data structure selected.
4472 2 ELECTRIC_CONSTANTS_RCD data structure selected.
4473 3..255 Reserved.
4474 NBR_SOURCES 0..255 Actual number of entries in the SOURCES_TBL (Table 16).
102
DRAFT ANSI C12.19-2012
4477 UOM_ENTRY_TBL (Table 12) provides a method for describing data attributes. It may be used to tag data
4478 sources. One entry exists in this Table (UOM_ENTRY_TBL) only for each entry in
4479 SOURCES_TBL.SOURCE_LINK_RCD.UOM_ENTRY_FLAG that is set to TRUE. Therefore the application
4480 has to perform a “bit” walk across all UOM_ENTRY_FLAG in SOURCES_TBL that are set to TRUE, in order to
4481 locate the related SELECTION array Element found in this Table (UOM_ENTRY_TBL).
4511 Power:
4534 Voltage:
4539 Current:
4561 Time:
4605
4606
4608 Volume:
4621 Temperature:
4628 Energy:
4631 Pressure:
4641 Other:
4649
4650
106
DRAFT ANSI C12.19-2012
4699 UOM_ENTRY_BFLD
4700 ID_CODE The UOM ID_CODE identifies the physical quantity of
4701 interest (equivalent to physical units in the field of physics as
4702 used for dimensional analysis). The standard defines entries
4703 for use by the Water, Gas, or Electrical Utilities and provides
4704 for generic entries for description of internal data items. The
4705 defined units of measure have been grouped solely for
4706 readability purposes. Note that because the unit of measure
4707 record includes a time base indicator some of the units have an
4708 extra time factor that is canceled out by the unit of measure
4709 record time base indicator. For example, ID_CODE 77,
4710 Therm per hour is actually Therm once the time base indicator
4711 is properly set. See UOM_ID_CODES_ENUM.
4712 TIME_BASE This field describes the measurement method with respect to
4713 time.
4714 0 Bulk Quantity of Commodity (Dial Reading). Quantity of
4715 commodity; integral of commodity usage rate. Values have the
4716 units stated in the ID_CODE × Hour (Energy units).
4717 1 Instantaneous (Sampled). This is the fastest rate at which a
4718 measurement is acquired.
4719 2 Period based. This is a time period based on the period of a
4720 fundamental frequency (Power, RMS).
4721 3 Sub-block Average Demand. Sub-block Average Demand
4722 values are the most recent averaging demand subinterval
4723 values (Demand).
4724 4 Block Average Demand. Block Average Demand values may
4725 be either the average over a number of Sub-block Average
4726 Demand subintervals or the average over a single interval. The
4727 averaging period is typically greater or equal to the Sub-block
4728 Average Demand period (Demand).
4729 5 Net Bulk Quantity of Commodity (Relative Dial Reading).
4730 Quantity of commodity; integral of commodity usage rate over
4731 a specified period of time T 1 to T2. T1 and T2 are quite
4732 arbitrary and defined by mechanisms and table driven
4733 schedules. Values have the units stated in the ID_CODE ×
4734 Hour, e.g., W × h = Wh (Energy)
4735 6 Thermal quantity (Demand).
4736 7 Event quantity (Number of occurrences of an identified item).
4737 MULTIPLIER The multiplier identifies the decimal scaling value to apply to
4738 the reported value after delivery to the application of all
4739 conversion constants of the tagged item; e.g., if the ID_CODE
4740 = 0 and MULTIPLIER = 2, then the UOM represents kW
4741 (Other flags are assumed to have been set accordingly and all
4742 conversions applied).
4743 0 100
4744 1 102
4745 2 103
4746 3 106
4747 4 109
4748 5 10-2
4749 6 10-3
4750 7 10-6
108
DRAFT ANSI C12.19-2012
4775 NET_FLOW_ACCOUNTABILITY This bit is required to identify the manner in which the
4776 quadrants specified are being summed.
4777 FALSE Absolute power or commodity flow per time unit delivered
4778 through selected quadrants, i.e., power or commodity per hour
4779 is added positively regardless of direction of flow, |delivered|
4780 + |received|.
4781 TRUE Net of delivered – received, where Watts are delivered in
4782 Quadrants 1 and 4, received in Quadrants 2 and 3, and VARs
4783 are delivered in Quadrants 1 and 2, received in Quadrants 3
4784 and 4. Other commodities, e.g., Water in gallons per time unit
4785 are delivered in 1 and received in Quadrant 2. Note that
4786 Electricity must be measured by vectorial summation,
4787 requiring the use of all four (4) quadrants, 1 through 4.
4788 Commodity measurement such as water and gas require only
4789 two accumulators to segregate delivered and received
4790 amounts. To utilize the accountability tools available,
4791 commodities such as water and gas are assigned to 1 and 2
4792 (describing 0 to 180 degrees) for delivered and received
4793 quantities per time unit, respectively.
4794 SEGMENTATION When the ID_CODE field represents the electric utility
4795 industry unit of measures, this bit indicates phase
4796 measurement associations.
4797 When the ID_CODE does not represent an electric utility unit
4798 of measure, then this field represents an as yet to be defined
4799 quantity, except for the value 0, which stands for all sources
4800 and flows. In this case, the value should be set to zero.
Tables / Decade 1: Data Source Tables 109
Table 12 Units of Measure Entry Table
DRAFT ANSI C12.19-2012
4821 NFS Not Fully Supported: Bit used to indicate that this unit of
4822 measure entry does not follow the unit of measure definition
4823 in some manner.
4824 FALSE This unit of measure entry description follows the unit of
4825 measure definitions defined in this standard.
4826 TRUE This unit of measure entry description does not follow the unit
4827 of measure definitions defined in this standard.
4828 ID_RESOURCE A descriptive code identifying to the reader the resource used
4829 to generated the commodity selected by ID_CODE. This field
4830 was specifically requested by the REA Research Institute for
4831 the express desire to tabulate “Green Power”. The metering
4832 and instrumentation utilizing this UOM is not limited to but
4833 intended to be used for the generation facilities of the
4834 interested region or power system.
4835 0 Unspecified or unknown resource.
4836 1 Green Source.
4837 2 Nuclear, U235 fission.
4838 3 Nuclear, U238 breeder.
4839 4 Hydro.
4840 5 Hydro-pump storage.
4841 6 Coal fired fossil.
4842 7 Natural gas turbine.
4843 8 MSW (Municipal Solid Waste) gasification Methane turbine.
4844 9 Animal waste gasification Methane turbine.
4845 10 Coal gasification Methane turbine.
4846 11 Wind horizontal vanes.
4847 12 Wind vertical vanes.
4848 13 Solar electric-panels.
4849 14 Solar steam turbines.
4850 15 Ethanol engine generation.
4851 16 Bio-diesel fuel engine generation.
110
DRAFT ANSI C12.19-2012
4860 UOM_ENTRY_RCD
4861 UOM_ENTRY Each of the entries in this array is associated with an entry in the
4862 SOURCES_TBL (Table 16). This array contains one entry for
4863 each SOURCES_TBL (Table 16) entry having the
4864 UOM_ENTRY_FLAG set. The order of the parameters in this
4865 array corresponds to the order of the sources in table
4866 SOURCES_TBL (Table 16).
4869 DEMAND_CONTROL_TBL (Table 13) contains information pertaining to the application of rates and global rate
4870 controls.
4902 DEMAND_CONTROL_RCD
4903 RESET_EXCLUSION 0..255 Number of minutes after demand reset to exclude additional
4904 reset action.
4905 P_FAIL_RECOGNTN_TM 0..255 Number of seconds after a power failure occurs until a valid
4906 power failure is recorded and a specified action is initiated.
112
DRAFT ANSI C12.19-2012
4907 P_FAIL_EXCLUSION 0..255 Number of minutes after a valid power failure occurs to inhibit
4908 demand calculations.
4909 COLD_LOAD_PICKUP 0..255 Number of minutes after a valid power failure occurs to
4910 provide cold load pickup functions.
4911 INTERVAL_VALUE Each of the entries in this array is associated with an entry in
4912 the SOURCES_TBL (Table 16). This array contains one
4913 entry for each SOURCES_TBL (Table 16) entry having the
4914 DEMAND_CTRL_FLAG set. The order of the parameters in
4915 this array corresponds to the order of the sources in table
4916 SOURCES_TBL (Table 16).
4919 DATA_CONTROL_TBL (Table 14) contains the data source information that serves as data input sources for the
4920 following tables. This table serves as an interface between areas of the End Device considered manufacturer specific
4921 and areas of the End Device considered to be standardized.
4922 Each entry in the table is manufacturer defined. Examples of entries into this table are as follows: entry contains
4923 address of data to be processed, or entry contains data to be processed.
4942 DATA_CONTROL_RCD
4943 SOURCES_ID Each of the entries in this array is associated with an entry in
4944 the SOURCES_TBL (Table 16). This array contains one
4945 entry for each SOURCES_TBL (Table 16) entry having the
4946 DATA_CTRL_FLAG set. The order of the parameters in this
4947 array corresponds to the order of the sources in table
4948 SOURCES_TBL (Table 16).
114
DRAFT ANSI C12.19-2012
4951 CONSTANTS_TBL (Table 15) contains the record structures supporting constants for application to the sources.
4952 This table has been designed for easy inclusion of new constants structures.
116
DRAFT ANSI C12.19-2012
5055 BASE_PRESSURE Pressure for base condition. This value is absolute base
5056 pressure.
5057 GAS_TEMP_RCD
5058 GAS_TEMP_ZERO Flow temperature calibration, zero offset.
5061 GAS_DP_RCD
5062 GAS_DP_ZERO Flow Differential pressure calibration, zero offset (used for
5063 AGA 3 only).
5064 GAS_DP_FULLSCALE Flow Differential pressure calibration, full scale (used for
5065 AGA 3 only).
5066 PIPE_ORIF_DIA_RCD
5067 PIPE_DIA The pipe diameter of an orifice meter (used for AGA 3 only).
5068 ORIF_DIA The orifice diameter of an orifice meter (used for AGA 3
5069 only).
5070 GAS_AGA3_CORR_RCD
5071 AUX_CORR_FCTR Factor to provide other possible correction to the gas corrected
5072 volume.
5073 GAS_AGA3_CORR_FCTR Factor is used to correct the uncorrected gas volume using
5074 AGA3 (used for AGA3 only).
5085 GAS_AGA7_CORR_RCD
5086 GAS_PRESS_PARM Refer to GAS_PRESS_RCD.
5088 AUX_CORR_FCTR Factor to provide other possible correction to the gas corrected
5089 volume.
5090 GAS_AGA7_CORR Factor is used to correct the uncorrected gas volume using
5091 AGA7 (used for AGA7 only).
5092 GAS_ENERGY_RCD
5093 GAS_ENERGY_ZERO Energy calibration, zero offset.
5095 GAS_DP_SHUTOFF_RCD
5096 GAS_SHUTOFF This parameter is used to disable the AGA3 flow calculations
5097 when differential pressure is below the value indicated by this
5098 parameter (used for AGA 3 only).
5109 SET_APPLIED_FLAG FALSE The RATIO_P1 and RATIO_F1 represented by this flag
5110 have not been applied to the associated source.
5111 TRUE The RATIO_P1 and RATIO_F1 represented by this flag
5112 have been applied to the associated source.
5113 SET_APPLIED_RCD
5114 SET_FLAGS See SET_CTRL_BFLD above.
5123 ELECTRIC_CONSTANTS_RCD Offsets, multipliers, and divisors that were applied (or need to
5124 be applied) in order to convert raw End Device Table Element
5125 values to engineering units. MULTIPLIER and OFFSET
5126 shall be applied if the corresponding
5127 CONSTANT_TO_BE_APPLIED that is found in
5128 SOURCES_TBL.SOURCE_LINK_BFLD is set to TRUE.
5133 SET1_CONSTANTS Conditional conversion ratios that were applied (or need to be
5134 applied) immediately after the application of MULTIPLIER
5135 and OFFSET Final Elements.
5138 SET2_CONSTANTS Conditional conversion ratios that were applied (or need to be
5139 applied) immediately after the application of
5140 SET1_CONSTANTS Elements.
5145 GENERIC_CONSTANTS_RCD Offsets, multipliers, and divisors that were applied (or need to
5146 be applied) in order to convert raw End Device Table Element
5147 values to engineering units. MULTIPLIER, DIVISOR, and
5148 OFFSET shall be applied if the corresponding
5149 CONSTANT_TO_BE_APPLIED that is found in
5150 SOURCES_TBL.SOURCE_LINK_BFLD is set to TRUE.
5153 DIVISOR Final Element value used in division adjustment. This divisor
5154 shall be applied before OFFSET and after the
5155 MULTIPLIER.
5158 SET1_CONSTANTS Conditional conversion ratios that were applied (or need to be
5159 applied) immediately after the application of MULTIPLIER,
5160 DIVISOR, and OFFSET Final Elements.
5163 SET2_CONSTANTS Conditional conversion ratios that were applied (or need to be
5164 applied) immediately after the application of
5165 SET1_CONSTANTS Elements.
5170 CONSTANTS_RCD Structure that selects the constant record structure to use.
5175 CONSTANT_SELECTION_RCD
5176 SELECTION Each of the entries in this array is associated with an entry in
5177 the SOURCES_TBL (Table 16). This array contains one
5178 entry for each SOURCES_TBL (Table 16) entry having the
5179 CONSTANTS_FLAG set. The order of the parameters in this
5180 array corresponds to the order of the sources in table
5181 SOURCES_TBL (Table 16).
120
DRAFT ANSI C12.19-2012
5184 SOURCES_TBL (Table 16) contains the information regarding the sources selected by the other tables.
5213 DATA_CTRL_FLAG FALSE A DATA_CONTROL_TBL (Table 14) entry does not exist
5214 for this source.
5215 TRUE A DATA_CONTROL_TBL (Table 14) entry is associated
5216 with this source.
5217 CONSTANTS_FLAG FALSE A CONSTANTS_TBL (Table 15) entry does not exist for this
5218 source.
5219 TRUE A CONSTANTS_TBL (Table 15) entry is associated with
5220 this source.
5228 CONSTANT_TO_BE_APPLIED This flag affects the use of the MULTIPLIER and OFFSET
5229 Elements of
5230 CONSTANTS_TBL.ELECTRIC_CONSTANTS_RCD.
5231 Otherwise this flag has no effect.
5232 FALSE The entry in the CONSTANTS_TBL (Table 15), if present,
5233 does not have to be applied by the Utility application. The
5234 constants have been applied by the End Device to the source
5235 prior to transmission.
5236 TRUE The entry in the CONSTANTS_TBL (Table 15), if present,
5237 have to be applied by the Utility application. The constants
5238 were not applied by the End Device to the source prior to
5239 transmission.
5240 SOURCE_LINK_RCD
5241 SOURCES_LINK An array that contains the source attributes per
5242 SOURCE_LINK_BFLD for each of the available data
5243 sources.
122
DRAFT ANSI C12.19-2012
5246 TLC_TBL (Table 17) provides the electrical End Device with information for accounting for transformer-related
5247 losses. This table shows total no-load losses and load losses calculated by the End Device. It also contains the Watt
5248 losses and VAR losses constants. See Annex F, “(informative) Transformer losses compensation”, for a detailed
5249 discussion on the implementation model assumed by this standard.
5288 RECEIVED_PCT 0..100 Percentage of losses in the received direction. Note that when
5289 directionality is not available, this Element shall be set to zero
5290 (0).
5301 TLC_RCD
5302 TR_CONFIGURE 0 The billing point is on the high-voltage side of a transformer,
5303 and the meter is located on the low-voltage side of the
5304 transformer.
5305 1 The billing point is on the low-voltage side of a transformer,
5306 and the meter is located on the high-voltage side of the
5307 transformer.
5308 2…255 Reserved.
124
DRAFT ANSI C12.19-2012
5313 REGISTER_DEC
5315 This Decade contains Tables associated with Registers for measured values. These Registers can be accumulating
5316 (energy), demand, TOU, instantaneous, or other(s) as appropriate.
5319 DIM_REGS_TBL (Table 20) specifies the maximum dimensional values for measured values Registers. The
5320 constants defined are used for setting the absolute maximum limits of Arrays used in the transport of these values.
5362 DATE_TIME_FIELD_FLAG
5363 FALSE End Device is not capable of providing the date and time in
5364 Tables in this Decade.
5365 TRUE End Device is capable of providing the date and time in Tables
5366 in this Decade.
5367 DEMAND_RESET_CTR_FLAG
5368 FALSE End Device is not capable of counting the number of
5369 activations of demand resets.
5370 TRUE End Device is capable of counting the number of activations
5371 of demand resets.
5372 DEMAND_RESET_LOCK_FLAG
5373 FALSE Demand reset lockout is not supported by the End Device.
5374 TRUE Demand reset lockout is supported by the End Device.
5375 CUM_DEMAND_FLAG FALSE Cumulative Demand is not supported by the End Device.
5376 TRUE Cumulative Demand is supported by the End Device.
5377 CONT_CUM_DEMAND_FLAG
5378 FALSE Continuous Cumulative Demand is not supported by the End
5379 Device.
5380 TRUE Continuous Cumulative Demand is supported by the End
5381 Device.
5382 TIME_REMAINING_FLAG
5383 FALSE End Device is not capable of reporting the time remaining in
5384 the Demand interval.
5385 TRUE End Device is capable of reporting the time remaining in the
5386 Demand interval.
5387 REG_FUNC2_BFLD
5388 SELF_READ_INHIBIT_OVERFLOW_FLAG
5389 FALSE End Device is not capable of inhibiting Self-reads once an
5390 overflow occurs.
5391 TRUE End Device is capable of inhibiting Self-reads once an
5392 overflow occurs.
5393 SELF_READ_SEQ_NBR_FLAG
5394 FALSE End Device is not capable of providing a Self-read sequential
5395 number for each entry.
5396 TRUE End Device is capable of providing a Self-read sequential
5397 number.
126
DRAFT ANSI C12.19-2012
5419 REGS_RCD
5420 REG_FUNC1_FLAGS See REG_FUNC1_BFLD.
5422 NBR_SELF_READS 0..255 Maximum number of Self-reads supported by the End Device.
5423 NBR_SUMMATIONS 0..255 Maximum number of summation Registers in each data block.
5424 NBR_DEMANDS 0..255 Maximum number of Demand Registers in each data block.
5430 NBR_PRESENT_DEMANDS
5431 0..255 Maximum number of present demand values that can be
5432 stored.
5433 NBR_PRESENT_VALUES 0..255 Maximum number of present values that can be stored.
5436 ACT_REGS_TBL (Table 21) contains actual limiting values for Registers.
5443 SEASON_INFO_FIELD_FLAG
5444 FALSE End Device is not reporting the representative season in
5445 Tables in this Decade.
5446 TRUE End Device is reporting the representative season in Tables in
5447 this Decade.
5448 DATE_TIME_FIELD_FLAG
5449 FALSE End Device is not providing the date and time in Tables in this
5450 Decade.
5451 TRUE End Device is providing the date and time in Tables in this
5452 Decade.
5453 DEMAND_RESET_CTR_FLAG
5454 FALSE End Device is not counting the number of activations of
5455 Demand resets.
5456 TRUE End Device is counting the number of activations of Demand
5457 resets.
5458 DEMAND_RESET_LOCK_FLAG
5459 FALSE Demand reset lockout is not enabled.
5460 TRUE Demand reset lockout is enabled.
5461 CUM_DEMAND_FLAG FALSE Cumulative Demand is not in use by the End Device.
5462 TRUE Cumulative Demand is in use by the End Device.
5463 CONT_CUM_DEMAND_FLAG
5464 FALSE Continuous Cumulative Demand is not in use by the End
5465 Device.
5466 TRUE Continuous Cumulative Demand is in use by the End Device.
5467 TIME_REMAINING_FLAG FALSE End Device does not report the time remaining in Demand
5468 interval.
5469 TRUE End Device reports the time remaining in Demand interval.
128
DRAFT ANSI C12.19-2012
5471 SELF_READ_INHIBIT_OVERFLOW_FLAG
5472 FALSE End Device is not inhibiting Self-reads once an overflow
5473 occurs.
5474 TRUE End Device is inhibiting Self-reads once an overflow occurs.
5475 SELF_READ_SEQ_NBR_FLAG
5476 FALSE End Device is not providing a Self-read sequential number for
5477 each entry.
5478 TRUE End Device is providing a Self-read sequential number.
5479 DAILY_SELF_READ_FLAG Indicates whether daily self-reads are in use. These readings
5480 are taken at 00:00:00.
5481 FALSE Daily Self-reads are not in use.
5482 TRUE Daily Self-reads are in use.
5483 WEEKLY_SELF_READ_FLAG Indicates whether weekly Self-reads are in use. These readings
5484 are taken at 00:00:00 on Sunday.
5485 FALSE Weekly Self-reads are not in use.
5486 TRUE Weekly Self-reads are in use.
5487 SELF_READ_DEMAND_RESET Specifies whether the End Device will perform a Self-read
5488 whenever a Demand reset (by any method) is performed and
5489 whether the End Device will perform a Demand reset
5490 whenever a Self-read (by any method) is performed.
5491 0 End Device shall not perform either a Self-read on every
5492 Demand reset or a Demand reset on every Self-read.
5493 1 End Device shall perform a Self-read on every Demand reset.
5494 2 End Device shall perform a Demand reset on every Self-read.
5495 3 End Device shall perform a Self-read on every Demand reset
5496 and a Demand reset on every Self-read.
5503 NBR_COIN_VALUES 0..255 Number of coincident values saved in each data block.
5506 NBR_PRESENT_DEMANDS
5507 0..255 Number of present demand values that are stored.
5511 DATA_SELECTION_TBL (Table 22) contains grouped lists of source indices. These indices point toward Array
5512 elements in SOURCES_TBL (Table 16) when Table 22 is present. These lists are used to build the Table that
5513 contains the data to be captured.
5539 DEMAND_SELECT List of source selectors that groups together demand sources
5540 that are associated with DEMANDS defined in this Decade.
130
DRAFT ANSI C12.19-2012
5556 CURRENT_REG_DATA_TBL (Table 23) contains the current Register data. “Current” is with respect to the
5557 previous demand reset, season, or Self-read. Table 23 is intended for billing purposes.
132
DRAFT ANSI C12.19-2012
5596 DEMANDS_RCD
5597 EVENT_TIME Array that contains the date and time of each minimum or
5598 maximum recorded. Entry in position zero (0) corresponds to
5599 the entry in position zero (0) of the DEMAND Array. The
5600 presence of this field is dependent on the capability flag in the
5601 ACT_REGS_TBL. DATE_TIME_FIELD_FLAG
5602 (Table 21).
5605 DEMAND Array that contains the minimum or maximum values. The
5606 value in position zero (0) is the smallest minimum or largest
5607 maximum. In position one (1) is the second smallest minimum
5608 or the second largest maximum and so on until the end of the
5609 Array is reached.
5610 DATA_BLK_RCD
5611 SUMMATIONS Array that contains the values of the selected summation
5612 measurements.
5613 DEMANDS Array that contains the values of the selected min/max
5614 Demand measurements.
5615 COINCIDENTS Array that contains the values of the selected measurement
5616 coincident to the selected minimum/maximum Demands.
5617 REGISTER_DATA_RCD
5618 NBR_DEMAND_RESETS 0..255 Number of Demand resets executed by the End Device.
5625 PREVIOUS_SEASON_DATA_TBL (Table 24) contains a snapshot of the current Register data taken at the last
5626 season change.
5647 SEASON 0..255 Current season value when the snapshot of the current
5648 Register data occurred.
5649 PREVIOUS_SEASON_DATA_RCD
5650 REGISTER_INFO See REGISTER_INFO_RCD.
134
DRAFT ANSI C12.19-2012
5656 PREVIOUS_DEMAND_RESET_DATA_TBL (Table 25) contains a snapshot of the current Register data taken at
5657 the time of the last Demand reset.
5707 REGISTER_INFO Snapshot of Register data taken at the time of the Self-read.
5708 SELF_READ_REGISTER_DATA Snapshot of current Register data taken when requested by any
5709 means offered by the End Device.
5710
136
DRAFT ANSI C12.19-2012
5711 LIST_STATUS_BFLD
5712 ORDER Alias: ORDER_FLAG.
5713 0 Self-reads are transported in ascending order (N is older than
5714 N + 1).
5715 1 Self-reads are transported in descending order (N is newer
5716 than N + 1).
5726 SELF_READ_LIST_RCD
5727 LIST_STATUS See LIST_STATUS_BFLD above.
5728 NBR_VALID_ENTRIES 0..255 Number of valid Self-reads stored in the Self-reads Array. The
5729 range is zero (0), meaning no Self-reads in the Array, to the
5730 actual dimension of the number of Self-reads.
5731 LAST_ENTRY_ELEMENT 0..255 Array element number of the newest valid entry in the Self-
5732 read Array. This field is valid only if
5733 NBR_VALID_ENTRIES is greater than zero (0).
5734 LAST_ENTRY_SEQ_NBR 0..65535 Sequence number of the last element in the Self-read array.
5735 NBR_UNREAD_ENTRIES 0..255 Number of Self-read entries that have not been read. This
5736 number shall only be updated by a procedure.
5741 PRESENT_REGISTER_SELECT_TBL (Table 27) provides selections to sources of present demands and present
5742 values. These indices point toward array elements in SOURCES_TBL (Table 16) when Table 16 is present. The
5743 values selected are available in PRESENT_REGISTER_DATA_TBL (Table 28). Table 27 is used to select
5744 sources for Table 28, which is continually updated.
5764 PRESENT_VALUE_SELECT Array that contains data source selectors for quantities used to
5765 measure present value. The present values shall be reported at the
5766 same index position in
5767 PRESENT_REGISTER_DATA_TBL.PRESENT_VALUE
5768 (Table 28).
138
DRAFT ANSI C12.19-2012
5771 PRESENT_REGISTER_DATA_TBL (Table 28) contains the present demand and values as selected by the
5772 PRESENT_REGISTER_SELECT_TBL (Table 27). Table 28 is continually updated.
5795 PRESENT_REGISTER_DATA_RCD
5796 PRESENT_DEMAND Array that contains present demand selected by
5797 PRESENT_REGISTER_SELECT_TBL.
5798 PRESENT_DEMAND_SELECT (Table 27).
5804 LOCAL_DISPLAY_DEC
5806 This Decade contains tables associated with the transport of information required to establish a local display.
5809 DIM_DISP_TBL (Table 30) specifies the maximum dimensional values for local display operation in an End
5810 Device. The constants defined are used for setting the absolute maximum limits of display array sizes.
5834 OFF_TIME_FLAG FALSE Programmable off time is not supported by the End Device.
5835 TRUE Programmable off time is supported by the End Device.
5836 HOLD_TIME_FLAG FALSE Programmable hold time is not supported by the End Device.
5837 TRUE Programmable hold time is supported by the End Device.
140
DRAFT ANSI C12.19-2012
5838 DISP_RCD
5839 DISPLAY_CTRL See DISP_FLAG_BFLD.
5844 WIDTH_DISP_SOURCES 0..255 Maximum number of Octets a manufacturer may use to define
5845 the row width of all entries in DISP_SOURCE_TBL
5846 (Table 32).
5847 NBR_PRI_DISP_LIST_ITEMS
5848 0..65535 Maximum number of primary display items per display list
5849 defined in PRI_DISP_LIST_TBL (Table 33). The maximum
5850 number of items in all primary display lists shall not exceed
5851 this value.
5854 NBR_SEC_DISP_LIST_ITEMS
5855 0..65535 Maximum number of secondary display items per display list
5856 defined in SEC_DISP_LIST_TBL (Table 34). The maximum
5857 number of items in all secondary display lists shall not exceed
5858 this value.
5863 ACT_DISP_TBL (Table 31) specifies the actual dimensional values for local display operation in an End Device.
5864 The dimensions defined are used for setting the actual limits of display array sizes.
5873 OFF_TIME_FLAG FALSE Off time is not programmable in the End Device.
5874 TRUE Off time is programmable in the End Device.
5875 HOLD_TIME_FLAG FALSE Hold time is not programmable in the End Device.
5876 TRUE Hold time is programmable in the End Device.
5879 NBR_DISP_SOURCES 0..65535 Actual number of display sources. A number representing the
5880 actual number of manufacturer-defined display sources,
5881 described in DISP_SOURCE_TBL (Table 32), and which
5882 should be used for the creation of display lists.
5883 WIDTH_DISP_SOURCES 0..255 Actual number of Octets a manufacturer uses to define the row
5884 width of all entries in DISP_SOURCE_TBL (Table 32).
5885 NBR_PRI_DISP_LIST_ITEMS
5886 0..65535 Actual number of primary display items per display list
5887 defined in PRI_DISP_LIST_TBL (Table 33). The total
5888 number of items in all primary display lists shall not exceed
5889 this value.
5892
5893
142
DRAFT ANSI C12.19-2012
5894 NBR_SEC_DISP_LIST_ITEMS
5895 0..65535 Actual number of secondary display items per display list
5896 defined in SEC_DISP_LIST_TBL (Table 34). The total
5897 number of items in all secondary display lists shall not exceed
5898 this value.
5903 DISP_SOURCE_TBL (Table 32) manufacturer-defined display identifications and format characteristics. Although
5904 manufacturer specific, this table’s designation and dimensions (ACT_DISP_TBL.WIDTH_DISP_SOURCES by
5905 ACT_DISP_TBL.NBR_DISP_SOURCES) (Table 31) permit the protocol to deposit local display description
5906 information. The actual interpretation of each display entry is not defined by this standard. The entry offsets to
5907 individual items in this table are used in display scroll sequences entered in tables PRI_DISP_LIST_TBL
5908 (Table 33) and SEC_DISP_LIST_TBL (Table 34).
144
DRAFT ANSI C12.19-2012
5930 PRI_DISP_LIST_TBL (Table 33) contains a list of operational parameters and references into the table,
5931 DISP_SOURCE_TBL (Table 32), necessary for programming the primary display lists, timing, and scroll
5932 sequences.
5962 OFF_TIME 0..15 The number of seconds display is blank between display
5963 items. 0 = No deliberate OFF Time.
5964 DISP_SCROLL2_BFLD
5965 HOLD_TIME 0..15 The number of minutes to wait before automatically restarting
5966 the normal display scroll after hold has been initiated.
5967 DEFAULT_LIST Associates this display list with a standard display list type.
5968 The “normal” display list scrolling resumes after
5969 HOLD_TIME has expired.
5970 0 Display selectable via communication link only.
5971 1 Normal Display.
5972 2 Alternate Display.
5973 3 Test Display.
5974 4..15 Reserved.
5975 DISP_LIST_DESC_RCD
5976 DISP_SCROLL1 This contains the ON_TIME and OFF_TIME values for the
5977 associated list.
5980 NBR_LIST_ITEMS 0..255 Number of items in this display list. The total number of items
5981 (list entries) in all display lists of this table shall not exceed
5982 ACT_DISP_TBL.NBR_PRI_DISP_LIST_ITEMS
5983 (Table 31).
5984 PRI_DISP_LIST_RCD
5985 PRI_DISP_LIST An array of list descriptor records.
5989 This standard does not preclude additional items from popping
5990 up or being displayed out of sequence as a result of an End
5991 Device error condition or an End Device status report being
5992 generated.
146
DRAFT ANSI C12.19-2012
5995 SEC_DISP_LIST_TBL (Table 34) contains a list of operational parameters and references into the table,
5996 DISP_SOURCE_TBL (Table 32), necessary for programming the secondary display lists, timing, and scroll
5997 sequences.
6014 ON_TIME 0..15 The number of seconds each display item is displayed.
6015 OFF_TIME 0..15 The number of seconds display is blank between display
6016 items. 0 = No deliberate OFF Time.
6019 HOLD_TIME 0..15 The number of minutes to wait before automatically restarting
6020 the normal display scroll after hold has been initiated.
6021 DEFAULT_LIST Associates this display list with a standard display list type.
6022 The “normal” display list scrolling resumes after
6023 HOLD_TIME has expired.
6024 0 Display selectable via communication link only.
6025 1 Normal Display.
6026 2 Alternate Display.
6027 3 Test Display.
6028 4..15 Reserved.
6031 DISP_SCROLL1 This contains the ON_TIME and OFF_TIME values for the
6032 associated list.
6035 NBR_LIST_ITEMS 0..255 Number of items in this display list. The total number of items
6036 (list entries) in all display lists of this table shall not exceed
6037 ACT_DISP_TBL.NBR_PRI_DISP_LIST_ITEMS
6038 (Table 31).
6039 SEC_DISP_LIST_RCD
6040 SEC_DISP_LIST An array of list descriptor records.
6044 This standard does not preclude additional items from popping
6045 up or being displayed out of sequence as a result of an End
6046 Device error condition or an End Device status report being
6047 generated.
148
DRAFT ANSI C12.19-2012
6050 SECURITY_DEC
6052 The security tables provide holding areas for the placement of End Device passwords and Encryption/Authentication
6053 keys used to establish group access permissions. Access permissions are used to limit table read or write access and
6054 procedure execute permissions to groups of users based on the interpretation of the password and
6055 encryption/authentication fields. The exact means for granting access are not defined by this standard.
6058 DIM_SECURITY_LIMITING_TBL (Table 40) defines the maximum number of passwords and security access
6059 level entries supported by the End Device.
6083 KEY_LEN 0..255 Maximum length of keys in Octets this End Device is capable
6084 of supporting.
Tables / Decade 4: Security Tables 149
Table 40 Security Dimension Limits Table
DRAFT ANSI C12.19-2012
6085 NBR_PERM_USED 0..65535 Maximum number of user-defined security access entries this
6086 End Device supports in addition to those defined through
6087 default access permissions.
150
DRAFT ANSI C12.19-2012
6090 ACT_SECURITY_LIMITING_TBL (Table 41) defines the actual number of passwords and security access level
6091 entries supported by the End Device.
6099 NBR_PASSWORDS 0 Actual access levels are not established through the standard
6100 password mechanism.
6101 1..255 Actual number of passwords used by this End Device.
6106 NBR_KEYS 0..255 Actual number of keys this End Device is supporting.
6107 KEY_LEN 0..255 Actual length of keys in Octets this End Device is supporting.
6108 NBR_PERM_USED 0..65535 Actual number of user-defined security access entries this End
6109 Device supports in addition to those defined through default
6110 access permissions.
6113 SECURITY_TBL (Table 42) stores actual End Device passwords. It is used to associate passwords with read,
6114 write, and procedure execute access permission bits.
6115 Any table or procedure whose access control bits match with respect to position at least one of the group access
6116 permissions bits, as defined in SECURITY_TBL (Table 42) for the supplied password, can become a candidate for
6117 data transfers.
6119 a) Although it may be possible to read the security table, the values reported (read back) are not defined by
6120 this standard. Security best practice is to encrypt or otherwise provide access protection for this security-
6121 relevant information.
6122 b) When access permissions are given to a procedure that accesses or modifies table data, then the invoker of
6123 that procedure shall in addition be required to have read or write access to the table that is read or modified.
6124 c) When access permissions are given to a User-defined table, which accesses or modifies other tables, then
6125 the invoker of that User-defined table shall in addition be required to have read or write access to the tables
6126 indirectly read or written.
152
DRAFT ANSI C12.19-2012
6154 GROUP_PERM_1_FLAG FALSE Group 1 privileges are not granted by this password.
6155 TRUE Group 1 privileges are granted by this password.
6156 GROUP_PERM_2_FLAG FALSE Group 2 privileges are not granted by this password.
6157 TRUE Group 2 privileges are granted by this password.
6158 GROUP_PERM_3_FLAG FALSE Group 3 privileges are not granted by this password.
6159 TRUE Group 3 privileges are granted by this password.
6160 GROUP_PERM_4_FLAG FALSE Group 4 privileges are not granted by this password.
6161 TRUE Group 4 privileges are granted by this password.
6162 GROUP_PERM_5_FLAG FALSE Group 5 privileges are not granted by this password.
6163 TRUE Group 5 privileges are granted by this password.
6164 GROUP_PERM_6_FLAG FALSE Group 6 privileges are not granted by this password.
6165 TRUE Group 6 privileges are granted by this password.
6166 GROUP_PERM_7_FLAG FALSE Group 7 privileges are not granted by this password.
6167 TRUE Group 7 privileges are granted by this password.
6168 SECURITY_ENTRY_RCD
6169 PASSWORD Password to be matched and be associated with group access
6170 permission bits.
6172 SECURITY_RCD
6173 SECURITY_ENTRIES Array containing a list of security limiting parameters.
6176 DEFAULT_ACCESS_CONTROL_TBL (Table 43) is used to establish default table and procedure access
6177 permissions. These permissions are applied to any table that is not included in the ACCESS_CONTROL_TBL
6178 (Table 44).
6201 ANY_READ_FLAG FALSE Any unrecognized user does not have read access permission
6202 to any tables.
6203 TRUE Any unrecognized user has read access permission to any table
6204 not defined in ACCESS_CONTROL_TBL (Table 44).
6205 ANY_WRITE_FLAG FALSE Any unrecognized user does not have write access permission
6206 to any tables.
6207 TRUE Any unrecognized user has write access permission to any
6208 table not defined in ACCESS_CONTROL_TBL (Table 44).
6209 DEFAULT_ACCESS_CONTROL_ENTRY_RCD
6210 ACCESS_TABLE_DEF Alias: ACCESS_TABLE_DEFAULT.
6211 Read and write access permissions for unrecognized users as
6212 defined above.
154
DRAFT ANSI C12.19-2012
6213 READ Group security access permission bits for users that have been
6214 recognized and request read access to tables that are not listed
6215 in the ACCESS_CONTROL_TBL (Table 44).
6216 WRITE Group security access permission bits for users that have been
6217 recognized and request write access to tables that are not listed
6218 in the ACCESS_CONTROL_TBL (Table 44).
6219 DEFAULT_ACCESS_RCD
6220 TABLE_DEFAULT Default access control for all tables, except the
6221 PROC_INITIATE_TBL (Table 07).
6226 ACCESS_CONTROL_TBL (Table 44) establishes table and procedure access permissions on a table-by-table and
6227 a procedure-by-procedure basis for those not using the default access level.
6244 TBL_PROC_NBR 0..2039 Table or procedure number associated with this access
6245 permission entry.
156
DRAFT ANSI C12.19-2012
6265 ACCESS_CONTROL_ENTRY_RCD
6266 ACCESS_TABLE_DEF Table identification and public access control.
6271 ACCESS_CONTROL_RCD
6272 ACCESS_CONTROL Array containing access permission for specific table or
6273 procedure.
6276 KEY_TBL (Table 45) is a table established to contain authentication and/or encryption keys.
6277 NOTE—Although it may be possible to read the KEY_TBL (Table 45), the values reported (read back) are not defined by this
6278 standard. Security best practice is to encrypt or otherwise provide access protection for this security-relevant information.
6295 KEY_RCD
6296 KEY_ENTRIES An array of keys used to establish authentication and/or
6297 encryption.
158
DRAFT ANSI C12.19-2012
6303 TIME_OF_USE_DEC
6305 The tables in this Decade provide information related to the End Device date and time as well as to the Time-of-use
6306 (TOU) scheduler and event trigger operations. The rules governing the transport of date, time, and time stamp
6307 Elements within this Decade and their influence on the transport of Elements from other Decades are defined below.
6308 Date-time Elements representation during transport (HTIME_DATE, LTIME_DATE and STIME_DATE)
6309 When the End Device is programmed to transport time-related information according to representation indicated by
6310 GEN_CONFIG_TBL.TM_FORMAT, then HTIME_DATE, LTIME_DATE and STIME_DATE Elements can
6311 be represented as:
6312 End Device operational time: Date and time the End Device has been set to operate. This time is used
6313 by the End Device for doing its normal operations such as:
6314 1) Scheduling
6315 2) Display
6316 3) Triggers such as call back, load control, and so on
6317 Standard time: Date and time at the location where the End Device has been set to operate, without
6318 daylight saving time adjustment.
6319 UTC time: Universal Time Coordinated, international time standard also known as Greenwich Mean
6320 Time (GMT).
6324 Knowledge about the representation used by an End Device is found in the Clock Table (Table 52), Clock State
6325 Table (Table 55), or Precision Clock State Table (Table 57), Elements DST_APPLIED_FLAG and
6326 TM_ZN_APPLIED_FLAG. When these Tables are present, all common Elements shall be identical in value. At
6327 least one of these Tables shall be present when an End Device supports time (as indicated by the Final Element
6328 GEN_CONFIG_TBL.TM_FORMAT). The relation between the time representation and the
6329 DST_APPLIED_FLAG and TM_ZN_APPLIED_FLAG Final Elements is as follows:
6337 In all cases, and subject to the above conditions, the following algorithms can be used to convert transported date
6338 and time Elements to an End Device operational time or to UTC. The Elements DST_APPLIED_FLAG and
6339 TM_ZN_APPLIED_FLAG shall be retrieved from Clock Table (Table 52), Clock State Table (Table 55), or
6340 Precision Clock State Table (Table 57). In the following algorithms, it is assumed that Clock Table (Table 52) is
6341 being used.
6342 Algorithm for converting from transported End Device time to End Device operational time
6350 Algorithm for converting from transported End Device time to UTC
6351 The following is only applicable when GMT_FLAG = TRUE in Clock table (Table 52).
6360 RDATE, DATE, TIME, STIME, and HTIME Elements within Tables shall always be transported in End
6361 Device operational time.
160
DRAFT ANSI C12.19-2012
6364 DIM_TIME_TOU_TBL (Table 50) defines the maximum capabilities for Date and Time clock control and Time of
6365 Use (TOU) control for the End Device.
6404 SEASON_SELF_READ_FLAG
6405 FALSE Self-read with season change capability does not exist.
6406 TRUE Self-read with season change capability exists.
6407 SEASON_DEMAND_RESET_FLAG
6408 FALSE Automatic demand reset with season change capability does
6409 not exist.
6410 TRUE Automatic demand reset with season change capability exists.
6411 SEASON_CHNG_ARMED_FLAG
6412 FALSE Season change arming capability does not exist.
6413 TRUE Season change arming capability exists. That is, the End
6414 Device is only armed to do a season change as a result of an
6415 indicated change of season. The actual season change does not
6416 occur until the next demand reset occurs (by manual or other
6417 means).
6427 ANCHOR_DATE_FLAG FALSE End Device is not capable of accepting an anchor date for the
6428 Period/Delta RDATE type (recurring date).
6429 TRUE End Device is capable of accepting an Anchor Date for the
6430 Period/Delta RDATE type (recurring date).
6431 TIME_FUNC_FLAG2_BFLD
6432 CAP_DST_AUTO_FLAG FALSE End Device is not capable of handling daylight saving time
6433 changes independently of dates supplied by the
6434 CALENDAR_TBL (Table 54).
6435 TRUE End Device is capable of handling daylight saving time
6436 changes independently of dates supplied by the
6437 CALENDAR_TBL (Table 54).
6438 SEPARATE_WEEKDAYS_FLAG
6439 FALSE End Device is not capable of having a different schedule for
6440 each of the five weekdays.
6441 TRUE End Device is capable of having a different schedule for each
6442 of the five weekdays.
6443 SEPARATE_SUM_DEMANDS_FLAG
6444 FALSE End Device is not capable of switching summation and
6445 demands independently.
6446 TRUE End Device is capable of switching summation and demands
6447 independently.
162
DRAFT ANSI C12.19-2012
6448 SORT_TIER_SWITCHES_FLAG
6449 FALSE End Device does not require that
6450 CALENDAR_TBL.TIER_SWITCHES (Table 54) be
6451 presorted.
6452 TRUE End Device requires that
6453 CALENDAR_TBL.TIER_SWITCHES (Table 54) be
6454 presorted.
6455 CAP_TM_ZN_OFFSET_FLAG
6456 FALSE Reserved.
6457 TRUE TIME_ZONE_OFFSET is present in Time Offset Table
6458 (Table 53).
6459 CALENDAR_BFLD
6460 NBR_SEASONS 0..15 Maximum number of seasons supported by this End Device.
6461 NBR_SPECIAL_SCHED 0..12 Maximum number of special schedules supported by this End
6462 Device.
6463 13..15 Reserved.
6464 TIME_TOU_RCD
6465 TIME_FUNC_FLAG1 See TIME_FUNC_FLAG1_BFLD above.
6468 NBR_NON_RECURR_DATES
6469 0..255 Maximum number of nonrecurring dates supported by the End
6470 Device calendar. Each entry allows the control of one or more
6471 events like demand reset, Self-read, daylight saving time,
6472 season change, and special schedule.
6473 NBR_RECURR_DATES 0..255 Maximum number of recurring dates supported by the End
6474 Device calendar. Each entry allows the definition of a
6475 recurring event like demand reset, Self-read, daylight saving
6476 time, season change, and special schedule.
6477 NBR_TIER_SWITCHES 0..65535 Maximum number of tier switches supported by the End
6478 Device calendar. This number comprises the total collection of
6479 tier switches for all day types in the
6480 CALENDAR_TBL.DAILY_SCHEDULE_ID_MATRIX
6481 (Table 54).
6487 ACT_TIME_TOU_TBL (Table 51) defines the actual capabilities for Date and Time clock control limits as well as
6488 for the Time of Use (TOU) control limits for the End Device. The data structure of this table is identical to
6489 DIM_TIME_TOU_TBL (Table 50).
6499 SEASON_SELF_READ_FLAG
6500 FALSE Self-read with season change capability function is disabled.
6501 TRUE Self-read with season change capability function is enabled.
6502 SEASON_DEMAND_RESET_FLAG
6503 FALSE Automatic demand reset season change function is disabled.
6504 TRUE Automatic demand reset season change function is enabled.
6505 SEASON_CHNG_ARMED_FLAG
6506 FALSE Season change arming function is disabled.
6507 TRUE Season change arming function is enabled. That is, the End
6508 Device is only armed to do a season change as a result of an
6509 indicated change of season. The actual season change does not
6510 occur until the next demand reset occurs (by manual or other
6511 means).
6521 ANCHOR_DATE_FLAG FALSE End Device does not accept an anchor date for the
6522 Period/Delta RDATE type (recurring date).
6523 TRUE End Device accepts an anchor date for the Period/Delta
6524 RDATE type (recurring date).
164
DRAFT ANSI C12.19-2012
6533 SEPARATE_WEEKDAYS_FLAG
6534 FALSE End Device is not using a different schedule for each of the
6535 five weekdays.
6536 TRUE End Device is using a different schedule for each of the five
6537 weekdays.
6538 SEPARATE_SUM_DEMANDS_FLAG
6539 FALSE End Device is not switching summation and demands
6540 independently.
6541 TRUE End Device is switching summation and demands
6542 independently.
6543 SORT_TIER_SWITCHES_FLAG
6544 FALSE End Device does not require that
6545 CALENDAR_TBL.TIER_SWITCHES (Table 54) be
6546 presorted.
6547 TRUE End Device requires that
6548 CALENDAR_TBL.TIER_SWITCHES (Table 54) be
6549 presorted.
6550 CAP_TM_ZN_OFFSET_FLAG
6551 FALSE Reserved.
6552 TRUE TIME_ZONE_OFFSET is present in Time Offset Table
6553 (Table 53).
6555 NBR_SEASONS 0..15 Actual number of seasons in use by the End Device.
6556 NBR_SPECIAL_SCHED 0..12 Actual number of special schedules in use by the End Device.
6557 13..15 Reserved.
6562
6563
6564 NBR_NON_RECURR_DATES
6565 0..255 Actual number of nonrecurring dates in use by the End Device
6566 calendar. Each entry allows the control of one or more events
6567 like demand reset, Self-read, daylight saving time, season
6568 change, and special schedule.
6569 NBR_RECURR_DATES 0..255 Actual number of recurring dates in use by the End Device
6570 calendar. Each entry allows the definition of a recurring event
6571 like demand reset, Self-read, daylight saving time, season
6572 change, and special schedule.
6573 NBR_TIER_SWITCHES 0..65535 Actual number of tier switches in use by the End Device
6574 calendar. This number comprises the total collection of tier
6575 switches for all day types in the CALENDAR_TBL.
6576 DAILY_SCHEDULE_ID_MATRIX (Table 54).
166
DRAFT ANSI C12.19-2012
6582 CLOCK_TBL (Table 52) provides the End Device real-time clock information. This table provides a subset of the
6583 information available for reading from CLOCK_STATE_TBL (Table 55) or
6584 PRECISION_CLOCK_STATE_TBL (Table 57).
6585 Global Default Table Property Overrides: Atomic = “true”, Role=“DATA”, Accessibility=“READONLY”
6638 DST_APPLIED_FLAG FALSE Daylight saving adjustment is not applied by the End Device
6639 to date and time Elements prior to transport.
6640 TRUE Daylight saving adjustment is applied by the End Device to
6641 date and time Elements prior to transport.
6642 DST_SUPPORTED_FLAG FALSE The End Device does not implement the DST_FLAG value.
6643 The DST_FLAG value shall be ignored.
6644 TRUE The End Device supports the DST_FLAG. The DST_FLAG
6645 returned is meaningful.
6646 CLOCK_STATE_RCD
6647 CLOCK_CALENDAR Current End Device time.
168
DRAFT ANSI C12.19-2012
6651 TIME_OFFSET_TBL (Table 53) provides time zone offset and daylight saving time information for the End
6652 Device.
6675 DST_TIME_AMT 0..255 End Device daylight saving time adjustment specified in
6676 minutes.
6684 STD_TIME_EFF The time of day the End Device shifts from daylight saving
6685 time to standard time. The date of occurrence is based on
6686 entries in the CALENDAR_TBL (Table 54) and the
6687 ACT_TIME_TOU_TBL. CAP_DST_AUTO_FLAG
6688 (Table 51) flag. This time represents the daylight saving time
6689 just prior to the shift.
6692 CALENDAR_TBL (Table 54) is the schedule definition table for TOU metering activities.
170
DRAFT ANSI C12.19-2012
6732 SPECIAL_SCHEDULE :
6733 ARRAY[ACT_TIME_TOU_TBL.NBR_SPECIAL_SCHED] OF
6734 UINT8;
6735 END;
6796 If GEN_CONFIG_TBL.STD_TBLS_USED.
6797 PREVIOUS_SEASON_DATA_TBL (Table 00) = TRUE, a season
6798 change causes a copy of the current register data to be saved in the
6799 PREVIOUS_SEASON_DATA_TBL (Table 24).
6810 0 No Action.
6811 1 Daylight Saving Time On.
6812 2 Daylight Saving Time Off.
6813 3..17 Select Season 0 through Season 14.
6814 18 Reserved.
6815 19..30 Select Special Schedule 0 through Special Schedule 11.
6816 31 End Of List.
6817 DEMAND_RESET_FLAG
6818 FALSE Demand reset shall not occur.
6819 TRUE Demand reset shall occur at 00:00 A.M. on the date specified.
6820 If GEN_CONFIG_TBL.STD_TBLS_USED.
6821 PREVIOUS_DEMAND_RESET_DATA_TBL (Table 00) = TRUE,
172
DRAFT ANSI C12.19-2012
6830 RECURR_DATE_RCD
6831 RECURR_DATE Date definition of a recurring event. The recurrence can be yearly,
6832 monthly, or weekly. The recurring event is referenced to midnight.
6833 CALENDAR_ACTION Defined action that shall take place on this date. See
6834 CALENDAR_ACTION_BFLD above.
6835 NON_RECURR_DATE_RCD
6836 NON_RECURR_DATE Nonrecurring event date. Action shall occur at midnight.
6837 CALENDAR_ACTION Defined action that shall take place on this date. See
6838 CALENDAR_ACTION_BFLD above.
6839 TIER_SWITCH_BFLD
6840 NEW_TIER 0..7 Identifies the tier number that becomes effective at the time specified
6841 in the tier switch on the daily schedule type defined by the
6842 DAILY_SCHEDULE_ID_MATRIX.
6843 SUMMATION_SWITCH_FLAG Specifies whether or not this tier switch selects a new tier for
6844 summations. Only used when ACT_TIME_TOU_TBL.
6845 SEPARATE_SUM_DEMANDS_FLAG (Table 51) = TRUE.
6846 FALSE Tier switch is not specified for summations.
6847 TRUE Tier switch is specified for summations.
6848 DEMANDS_SWITCH_FLAG Specifies whether or not this tier switch selects a new tier for
6849 demands. Only used when ACT_TIME_TOU_TBL.
6850 SEPARATE_SUM_DEMANDS_FLAG (Table 51) = TRUE.
6851 FALSE Tier switch is not specified for demands.
6852 TRUE Tier switch is specified for demands.
6857 TIER_SWITCH_RCD
6858 TIER_SWITCH Defines a switch point for a certain day type defined by the
6859 DAILY_SCHEDULE_ID_MATRIX.
6860 DAY_SCH_NUM 0..255 Specifies the daily schedule type associated with the tier switch. All
6861 identifiers are stored in the DAILY_SCHEDULE_ID_MATRIX.
6862 SCHEDULE_RCD
6863 SUNDAY_SCHEDULE 0..255 Daily schedule selector programmed for Sunday.
6867 THURSDAY_SCHEDULE
6868 0..255 Daily schedule selector programmed for Thursday.
6870 SATURDAY_SCHEDULE
6871 0..255 Daily schedule selector programmed for Saturday.
6873 WEEKDAYS_SCHEDULE_RCD
6874 SATURDAY_SCHEDULE
6875 0..255 Daily schedule selector programmed for Saturday.
6877 WEEKDAY_SCHEDULE
6878 0..255 Daily schedule selector programmed for Monday to Friday.
6880 CALENDAR_RCD
6881 ANCHOR_DATE Anchor date is only used in conjunction with an RDATE type
6882 recurring date using the PERIOD/OFFSET mechanism. See 6.3.2,
6883 “RDATE type”. If specified, any recurring date using the
6884 PERIOD/OFFSET type shall use this date as a starting date.
6888 DAILY_SCHEDULE_ID_MATRIX An array containing daily schedule selectors. The calendar choice of
6889 selector is used to tie tier switch entries (See TIER_SWITCH_RCD.
6890 DAY_SCH_NUM) to specific daily schedules. An example of a daily
6891 schedule is Special Schedule 1 in Season 2 or Saturday Day Type in
6892 Season 1.
6894 If ACT_TIME_TOU_TBL.SEPARATE_WEEKDAYS_FLAG
6895 = TRUE, the End Device is programmed with a different schedule for
6896 each of the five weekdays, Sunday, Saturday, and the special schedules.
6897 See SCHEDULE_RCD. SPECIAL_SCHEDULE.
174
DRAFT ANSI C12.19-2012
6898 If ACT_TIME_TOU_TBL.SEPARATE_WEEKDAYS_FLAG =
6899 FALSE, the End Device has a common schedule for all of the five
6900 weekdays, and separate schedules for Sunday, Saturday, and the
6901 special schedules. See WEEKDAYS_SCHEDULE_RCD.
6902 SPECIAL_SCHEDULE.
6905 CLOCK_STATE_TBL (Table 55) provides the End Device real-time clock information that is accurate to the
6906 nearest second. For highest real-time clock precision reading, see PRECISION_CLOCK_STATE_TBL
6907 (Table 57).
6908 Global Default Table Property Overrides: Atomic = “true”, Role=“DATA”, Accessibility=“READONLY”
6931 CURR_SUMM_TIER 0..7 Active tier corresponding to summations. This Element is only
6932 used when the capability flag ACT_TIME_TOU_TBL.
6933 SEPARATE_SUM_DEMANDS_FLAG (Table 51) =
6934 TRUE.
6935 CURR_DEMAND_TIER 0..7 Active tier corresponding to demands. This Element is only
6936 used when the capability flag ACT_TIME_TOU_TBL.
6937 SEPARATE_SUM_DEMANDS_FLAG (Table 51) =
6938 TRUE.
6939 CURR_TIER 0..7 Number representing the tier that is currently active in the End
6940 Device. This Element is only used when the capability flag
6941 ACT_TIME_TOU_TBL.
6942 SEPARATE_SUM_DEMANDS_FLAG (Table 51) =
6943 FALSE.
176
DRAFT ANSI C12.19-2012
6948 SPECIAL_SCHD_ACTIVE
6949 0..11 Active special schedule number.
6950 12..14 Reserved.
6951 15 No special schedule active.
6952 SEASON 0..15 Number representing the season that is currently active in the
6953 End Device.
6954 CLOCK_STATE_RCD
6955 CLOCK_CALENDAR Current End Device date and time.
6956 TIME_DATE_QUAL See CLOCK_TBL.TIME_DATE_QUAL_BFLD.
6961 Global Default Table Property Overrides: Atomic = “true”, Role=“DATA”, Accessibility=“READONLY”
6980 DEMAND_TIER_TIME_REMAIN
6981 0..65535 Minutes remaining before the next tier change that affects demands.
6982 Used when the capability flag ACT_TIME_TOU_TBL.
6983 SEPARATE_SUM_DEMANDS_FLAG (Table 51) = TRUE.
6984 TIER_TIME_REMAIN 0..65535 Minutes remaining before the next tier change.
6985 SELF_READ_DAYS_REMAIN
6986 0..255 Days remaining before the next scheduled Self-read.
178
DRAFT ANSI C12.19-2012
6989 PRECISION_CLOCK_STATE_TBL (Table 57) provides the End Device real-time clock information with
6990 increased time precision using the HTIME_DATE data type. It is identical to CLOCK_STATE_TBL (Table 55)
6991 except for the extra sub-second precision capability offered.
6992 Global Default Table Property Overrides: Atomic = “true”, Role=“DATA”, Accessibility=“READONLY”
7008 LOAD_PROFILE_DEC
7013 DIM_LP_TBL (Table 60) specifies the maximum dimensional values and control selectors and options for Load
7014 Profile data. This Decade provides for up to four independent sets of Load Profile data.
7077 LP_SET1_INHIBIT_OVF_FLAG
7078 FALSE End Device is not capable of inhibiting Load Profile set 1 once
7079 an overflow occurs.
7080 TRUE End Device is capable of inhibiting Load Profile set 1 once an
7081 overflow occurs.
7082 LP_SET2_INHIBIT_OVF_FLAG
7083 FALSE End Device is not capable of inhibiting Load Profile set 2 once
7084 an overflow occurs.
7085 TRUE End Device is capable of inhibiting Load Profile set 2 once an
7086 overflow occurs.
7087 LP_SET3_INHIBIT_OVF_FLAG
7088 FALSE End Device is not capable of inhibiting Load Profile set 3 once
7089 an overflow occurs.
7090 TRUE End Device is capable of inhibiting Load Profile set 3 once an
7091 overflow occurs.
7092
7093
7094 LP_SET4_INHIBIT_OVF_FLAG
7095 FALSE End Device is not capable of inhibiting Load Profile set 4 once
7096 an overflow occurs.
7097 TRUE End Device is capable of inhibiting Load Profile set 4 once an
7098 overflow occurs.
7099 BLK_END_READ_FLAG FALSE End Device is not capable of providing block-end Register
7100 reading information.
7101 TRUE The End Device is capable of providing block-end Register
7102 reading information.
7103 BLK_END_PULSE_FLAG FALSE End Device is not capable of providing block-end pulse
7104 accumulator data.
7105 TRUE The End Device is capable of providing block-end pulse
7106 accumulator data.
7107 SCALAR_DIVISOR_FLAG_SET1
7108 FALSE End Device is not capable of having scalars and divisors
7109 associated with set 1 Load Profile interval data.
7110 TRUE End Device is capable of having scalars and divisors
7111 associated with set 1 Load Profile interval data.
7112 SCALAR_DIVISOR_FLAG_SET2
7113 FALSE End Device is not capable of having scalars and divisors
7114 associated with set 2 Load Profile interval data.
7115 TRUE End Device is capable of having scalars and divisors
7116 associated with set 2 Load Profile interval data.
7117 SCALAR_DIVISOR_FLAG_SET3
7118 FALSE End Device is not capable of having scalars and divisors
7119 associated with set 3 Load Profile interval data.
7120 TRUE End Device is capable of having scalars and divisors
7121 associated with set 3 Load Profile interval data.
7122 SCALAR_DIVISOR_FLAG_SET4
7123 FALSE End Device is not capable of having scalars and divisors
7124 associated with set 4 Load Profile interval data.
7125 TRUE End Device is capable of having scalars and divisors
7126 associated with set 4 Load Profile interval data.
7127 EXTENDED_INT_STATUS_FLAG
7128 FALSE End Device is not capable of returning extended interval status
7129 with Load Profile interval data.
7130 TRUE End Device is capable of returning extended interval status
7131 with Load Profile interval data.
7132 SIMPLE_INT_STATUS_FLAG
7133 FALSE End Device is not capable of returning simple interval status
7134 with Load Profile interval data.
7135 TRUE End Device is capable of returning simple interval status with
7136 Load Profile interval data.
7137
7138
182
DRAFT ANSI C12.19-2012
7139 BLK_END_RD_INDICATOR_FLAG
7140 FALSE Block-end readings (END_READINGS) are cumulative
7141 across all blocks.
7142 TRUE Block-end readings (END_READINGS) are cumulative only
7143 across the associated block.
7144 LP_FMATS_BFLD This set of booleans specifies the format(s) acceptable for use
7145 in DIM_LP_TBL (Table 60) and ACT_LP_TBL (Table 61).
7146 INV_UINT8_FLAG FALSE UINT8 format for intervals is not capable of being used.
7147 TRUE An interval format of UINT8 is capable of being used.
7148 INV_UINT16_FLAG FALSE UINT16 format for intervals is not capable of being used.
7149 TRUE An interval format of UINT16 is capable of being used.
7150 INV_UINT32_FLAG FALSE UINT32 format for intervals is not capable of being used.
7151 TRUE An interval format of UINT32 is capable of being used.
7152 INV_INT8_FLAG FALSE INT8 format for intervals is not capable of being used.
7153 TRUE An interval format of INT8 is capable of being used.
7154 INV_INT16_FLAG FALSE INT16 format for intervals is not capable of being used.
7155 TRUE An interval format of INT16 is capable of being used.
7156 INV_INT32_FLAG FALSE INT32 format for intervals is not capable of being used.
7157 TRUE An interval format of INT32 is capable of being used.
7158 INV_NI_FMAT1_FLAG FALSE NI_FMAT1 format for intervals is not capable of being used.
7159 TRUE An interval format of NI_FMAT1 is capable of being used.
7160 INV_NI_FMAT2_FLAG FALSE NI_FMAT2 format for intervals is not capable of being used.
7161 TRUE An interval format of NI_FMAT2 is capable of being used.
7162 LP_SET_RCD This record contains information defining how each set of
7163 Load Profile information works.
7174 NBR_BLK_INTS_SET1 0..65535 Maximum number of intervals per block that can be contained
7175 in LP_DATA_SET1_TBL (Table 64).
7176 NBR_CHNS_SET1 0..255 Maximum number of channels of Load Profile data that can be
7177 contained in LP_DATA_SET1_TBL (Table 64).
7178 MAX_INT_TIME_SET1 0..255 Maximum time in minutes for Load Profile interval duration
7179 that can be contained in LP_DATA_SET1_TBL (Table 64).
7182 NBR_BLK_INTS_SET2 0..65535 Maximum number of intervals per block that can be contained
7183 in LP_DATA_SET2_TBL (Table 65).
7184 NBR_CHNS_SET2 0..255 Maximum number of channels of Load Profile data that can be
7185 contained in LP_DATA_SET2_TBL (Table 65).
7186 MAX_INT_TIME_SET2 0..255 Maximum time in minutes for Load Profile interval duration
7187 that can be contained in LP_DATA_SET2_TBL (Table 65).
7190 NBR_BLK_INTS_SET3 0..65535 Maximum number of intervals per block that can be contained
7191 in LP_DATA_SET3_TBL (Table 66).
7192 NBR_CHNS_SET3 0..255 Maximum number of channels of Load Profile data that can be
7193 contained in LP_DATA_SET3_TBL (Table 66).
7194 MAX_INT_TIME_SET3 0..255 Maximum time in minutes for Load Profile interval duration
7195 that can be contained in LP_DATA_SET3_TBL (Table 66).
7198 NBR_BLK_INTS_SET4 0..65535 Maximum number of intervals per block that can be contained
7199 in LP_DATA_SET4_TBL (Table 67).
7200 NBR_CHNS_SET4 0..255 Maximum number of channels of Load Profile data that can be
7201 contained in LP_DATA_SET4_TBL (Table 67).
7202 MAX_INT_TIME_SET4 0..255 Maximum time in minutes for Load Profile interval duration
7203 that can be contained in LP_DATA_SET4_TBL (Table 67).
184
DRAFT ANSI C12.19-2012
7206 ACT_LP_TBL (Table 61) contains actual dimensions for Load Profile data. This Decade provides for up to four
7207 independent sets of Load Profile data.
7216 LP_SET1_INHIBIT_OVF_FLAG
7217 FALSE End Device is not inhibiting Load Profile set 1 once an
7218 overflow occurs.
7219 TRUE End Device is inhibiting Load Profile set 1 once an overflow
7220 occurs.
7221 LP_SET2_INHIBIT_OVF_FLAG
7222 FALSE End Device is not inhibiting Load Profile set 2 once an
7223 overflow occurs.
7224 TRUE End Device is inhibiting Load Profile set 2 once an overflow
7225 occurs.
7226 LP_SET3_INHIBIT_OVF_FLAG
7227 FALSE End Device is not inhibiting Load Profile set 3 once an
7228 overflow occurs.
7229 TRUE End Device is inhibiting Load Profile set 3 once an overflow
7230 occurs.
7231 LP_SET4_INHIBIT_OVF_FLAG
7232 FALSE End Device is not inhibiting Load Profile set 4 once an
7233 overflow occurs.
7234 TRUE End Device is inhibiting Load Profile set 4 once an overflow
7235 occurs.
7236 BLK_END_READ_FLAG FALSE End Device is not providing block-end register reading
7237 information.
7238 TRUE End Device is providing block-end register reading
7239 information. Although it is possible for
7240 BLK_END_READ_FLAG and BLK_END_PULSE_FLAG
7241 to both be set to TRUE, this combination shall not be used.
7242 BLK_END_PULSE_FLAG FALSE End Device does not have block-end pulse accumulator data.
7243 TRUE End Device has block-end pulse accumulator data. Although it
7244 is possible for BLK_END_READ_FLAG and
7245 BLK_END_PULSE_FLAG to both be set to TRUE, this
7246 combination shall not be used.
7247 SCALAR_DIVISOR_FLAG_SET1
7248 FALSE End Device does not have scalars and divisors associated with
7249 set 1 Load Profile interval data.
7250 TRUE End Device does have scalars and divisors associated with set
7251 1 Load Profile interval data.
7252 SCALAR_DIVISOR_FLAG_SET2
7253 FALSE End Device does not have scalars and divisors associated with
7254 set 2 Load Profile interval data.
7255 TRUE The End Device has scalars and divisors associated with set 2
7256 Load Profile interval data.
7257 SCALAR_DIVISOR_FLAG_SET3
7258 FALSE End Device does not have scalars and divisors associated with
7259 set 3 Load Profile interval data.
7260 TRUE End Device does have scalars and divisors associated with set
7261 3 Load Profile interval data.
7262 SCALAR_DIVISOR_FLAG_SET4
7263 FALSE End Device does not have scalars and divisors associated with
7264 set 4 Load Profile interval data.
7265 TRUE End Device does have scalars and divisors associated with set
7266 4 Load Profile interval data.
7267 EXTENDED_INT_STATUS_FLAG
7268 FALSE End Device does not return extended interval status with Load
7269 Profile interval data.
7270 TRUE End Device returns extended interval status with Load Profile
7271 interval data.
7272 SIMPLE_INT_STATUS_FLAG FALSE End Device does not return simple interval status
7273 with Load Profile interval data.
7274 TRUE End Device returns simple interval status with Load Profile
7275 interval data.
7276 BLK_END_RD_INDICATOR_FLAG The end block reading flag. When DIM_LP_TBL (Table 60)
7277 and ACT_LP_TBL (Table 61) are both present, then they
7278 shall have identical values for
7279 BLK_END_RD_INDICATOR_FLAG.
7280 FALSE Block-end readings (END_READINGS) are cumulative
7281 across all blocks.
7282 TRUE Block-end readings (END_READINGS) are only across the
7283 associated block.
186
DRAFT ANSI C12.19-2012
7303 LP_SET_RCD This record contains information defining each set of Load
7304 Profile information.
7305 Redefines: DIM_LP_TBL.LP_SET_RCD.
7306 LP_MEMORY_LEN 0..4294967295 Current number of Octets of storage being used for Load
7307 Profile data. This reflects the combined sizes of
7308 LP_DATA_SET1_TBL (Table 64), LP_DATA_SET2_TBL
7309 (Table 65), LP_DATA_SET3_TBL (Table 66), and
7310 LP_DATA_SET4_TBL (Table 67).
7317 NBR_CHNS_SET1 0..255 Actual number of channels of Load Profile data contained in
7318 LP_DATA_SET1_TBL (Table 64).
7319 MAX_INT_TIME_SET1 0..255 Actual interval duration in minutes for Load Profile contained
7320 in LP_DATA_SET1_TBL (Table 64).
7325 NBR_CHNS_SET2 0..255 Actual number of channels of Load Profile data contained in
7326 LP_DATA_SET2_TBL (Table 65).
7327 MAX_INT_TIME_SET2 0..255 Actual interval duration in minutes for Load Profile contained
7328 in LP_DATA_SET2_TBL (Table 65).
7333 NBR_CHNS_SET3 0..255 Actual number of channels of Load Profile data contained in
7334 LP_DATA_SET3_TBL (Table 66).
7335 MAX_INT_TIME_SET3 0..255 Actual interval duration in minutes for Load Profile contained
7336 in LP_DATA_SET3_TBL (Table 66).
7341 NBR_CHNS_SET4 0..255 Actual number of channels of Load Profile data contained in
7342 LP_DATA_SET4_TBL (Table 67).
7343 MAX_INT_TIME_SET4 0..255 Actual interval duration in minutes for Load Profile contained
7344 in LP_DATA_SET4_TBL (Table 67).
188
DRAFT ANSI C12.19-2012
7347 LP_CTRL_TBL (Table 62) defines the data sources and formats used in the collection of Load Profile data.
7391 LP_SEL_SET3 :
7392 ARRAY[ACT_LP_TBL.NBR_CHNS_SET3] OF
7393 LP_SOURCE_SEL_RCD;
7394 INT_FMT_CDE3 : UINT8;
7395 IF ACT_LP_TBL.SCALAR_DIVISOR_FLAG_SET3 THEN
7396 SCALARS_SET3 :
7397 ARRAY[ACT_LP_TBL.NBR_CHNS_SET3] OF
7398 UINT16;
7399 DIVISOR_SET3 :
7400 ARRAY[ACT_LP_TBL.NBR_CHNS_SET3] OF
7401 UINT16;
7402 END;
7403 END;
7404 IF GEN_CONFIG_TBL.STD_TBLS_USED[LP_DATA_SET4_TBL] THEN
7405 LP_SEL_SET4 :
7406 ARRAY[ACT_LP_TBL.NBR_CHNS_SET4] OF
7407 LP_SOURCE_SEL_RCD;
7408 INT_FMT_CDE4 : UINT8;
7409 IF ACT_LP_TBL.SCALAR_DIVISOR_FLAG_SET4 THEN
7410 SCALARS_SET4 :
7411 ARRAY[ACT_LP_TBL.NBR_CHNS_SET4] OF
7412 UINT16;
7413 DIVISOR_SET4 :
7414 ARRAY[ACT_LP_TBL.NBR_CHNS_SET4] OF
7415 UINT16;
7416 END;
7417 END;
7418 END;
7425 LP_SOURCE_SEL_RCD
7426 CHNL_FLAG Flags associated with a particular channel.
7427 LP_SOURCE_SELECT Data source selector of the interval data for a specific channel.
7428 END_BLK_RDG_SOURCE_SELECT Data source selector of the block end reading for a specific
7429 channel.
190
DRAFT ANSI C12.19-2012
7440 DATA_SELECTION_RCD This record stores all information concerning each of the
7441 selected channels.
7442 LP_SEL_SET1 Array of records that identifies sources of data for each
7443 channel of interval data in LP_DATA_SET1_TBL
7444 (Table 64).
7445 INT_FMT_CDE1 Single code selecting the format for all interval data in
7446 LP_DATA_SET1_TBL (Table 64). See INT_FMT_ENUM.
7447 SCALARS_SET1 Array of scalars applied to interval data before recording pulse
7448 data in Load Profile set 1.
7451 LP_SEL_SET2 An array of records that identifies sources of data for each
7452 channel of interval data in LP_DATA_SET2_TBL
7453 (Table 65).
7454 INT_FMT_CDE2 Single code selecting the format for all interval data in
7455 LP_DATA_SET2_TBL (Table 65). See INT_FMT_ENUM.
7456 SCALARS_SET2 Array of scalars applied to interval data before recording pulse
7457 data in Load Profile set 2.
7460 LP_SEL_SET3 Array of records that identifies sources of data for each
7461 channel of interval data in LP_DATA_SET3_TBL
7462 (Table 66).
7463 INT_FMT_CDE3 Single code selecting the format for all interval data in
7464 LP_DATA_SET3_TBL (Table 66). See INT_FMT_ENUM.
7465 SCALARS_SET3 Array of scalars applied to interval data before recording pulse
7466 data in Load Profile set 3.
7469 LP_SEL_SET4 Array of records that identifies sources of data for each
7470 channel of interval data in LP_DATA_SET4_TBL
7471 (Table 67).
7472 INT_FMT_CDE4 Single code selecting the format for all interval data in
7473 LP_DATA_SET4_TBL (Table 67). See INT_FMT_ENUM.
7474 SCALARS_SET4 Array of scalars applied to interval data before recording pulse
7475 data in Load Profile set 4.
192
DRAFT ANSI C12.19-2012
7480 LP_STATUS_TBL (Table 63) contains the status of each Load Profile data set.
7543 NBR_VALID_BLOCKS 0..65535 Number of valid Load Profile data blocks in Load Profile data
7544 tables LP_DATA_SET1_TBL (Table 64),
7545 LP_DATA_SET2_TBL (Table 65), LP_DATA_SET3_TBL
7546 (Table 66), and LP_DATA_SET4_TBL (Table 67), Load
7547 Profile block arrays. The range is zero (meaning no data
7548 blocks in Load Profile Data Table) to the actual dimension of
7549 the number of Load Profile data blocks. The block is
7550 considered valid when at least one interval is written.
7551 LAST_BLOCK_ELEMENT
7552 0..65535 Array element index of the newest valid data block in the
7553 Load Profile data array. This field is valid only if
7554 NBR_VALID_BLOCKS is greater than zero.
7555 LAST_BLOCK_SEQ_NBR 0..4294967295 Sequence number of the newest valid data block
7556 (LAST_BLOCK_ELEMENT) in the Load Profile data array.
7557 This sequence number corresponds to the first valid interval
7558 entry in the block.
7559 NBR_UNREAD_BLOCKS 0..65535 Number of Load Profile blocks that have not been read. This
7560 number shall only be updated through the invocation of
194
DRAFT ANSI C12.19-2012
7563 NBR_VALID_INT 0..65535 Number of valid intervals stored in the newest Load Profile
7564 block whose array index is LAST_BLOCK_ELEMENT.
7565 Valid values are in the range of zero (meaning no interval in
7566 the array) to the actual dimension of the number of intervals
7567 per block.
7568 LP_STATUS_RCD
7569 LP_STATUS_SET1 Status information for profile data set 1.
7575 LP_DATA_SET1_TBL (Table 64) contains information on Load Profile data set one.
7618 EXTENDED_INT_STATUS :
7619 ARRAY[(ACT_LP_TBL.NBR_CHNS_SET1/2)+1] OF
7620 EXTENDED_STATUS_BFLD;
7621 END;
7622 INT_DATA :
7623 ARRAY[ACT_LP_TBL.NBR_CHNS_SET1] OF
7624 INT_FMT1_RCD;
7625 END;
7656 CHANNEL_STATUS_ENUM The contents of the even and odd channel status nibbles. See
7657 EXTENDED_STATUS_BFLD.
7658 0 No exception status indicated.
7659 1 Numeric overflow condition detected.
7660 2 Partial interval due to common state. The cause is indicated in
7661 the common status flags.
7662 3 Long interval due to common state. The cause is indicated in
7663 the common status flags.
7681 COMMON_POWER_FAIL_FLAG Power fail detection flag. If the power fail condition spans an
7682 entire interval duration, then the value of INT_DATA shall be
7683 set to zero (0) in all applicable intervals of the affected block
7684 until the power is restored or the block is closed, whichever
7685 occurs first.
7686 FALSE Power fail did not occur during or at the start of this interval.
7687 TRUE Power fail occurred during or at the start of this interval.
7688 COMMON_CLOCK_SET_FWD_FLAG Clock set forward indication flag. Setting the clock forward
7689 may cause intervals and blocks to be partial or skipped. Time
7690 reset across a block boundary may result in the closure of that
7691 active block and setting all remaining interval INT_DATA to
7692 zero (0) asserting the
7693 COMMON_CLOCK_SET_FWD_FLAG repeatedly to
7694 TRUE and the channel’s status to skipped interval due to
7695 common state (4).
7696 FALSE The clock was not set forward during or at the start of this
7697 interval.
7698 TRUE The clock was set forward during or at start of this interval
7699 The interval may be short.
7705 CHANNEL_STATUS_EVEN The contents of the even channel status nibble. See
7706 CHANNEL_STATUS_ENUM.
7707 CHANNEL_STATUS_ODD The contents of the odd channel status nibble. See
7708 CHANNEL_STATUS_ENUM.
7709 INT_SET1_RCD
198
DRAFT ANSI C12.19-2012
7710 EXTENDED_INT_STATUS This is one or more single Octets of interval status conditions
7711 provided for all channels. One nibble (4 bits) of status
7712 information is provided for each channel in the set, plus one
7713 extra nibble is provided for status conditions common to all
7714 channels. This common status nibble is always the first nibble
7715 of the set (that is, the high order 4 bits of the first Octet of
7716 EXTENDED_INT_STATUS). Since
7717 EXTENDED_INT_STATUS is an integral number of Octets
7718 in length, this field contains one nibble of FILL, if the number
7719 of channels in the set is even. This fill field, when present,
7720 always occupies the last nibble of
7721 EXTENDED_INT_STATUS (that is, the low order 4 bits of
7722 the last Octet of EXTENDED_INT_STATUS). See
7723 EXTENDED_INT_STATUS_BFLD.
7724 INT_DATA Array of interval values for each channel in the block,
7725 recorded at a single time. Channels are presented in the same
7726 order. The order of the channels matches their definition in
7727 LP_CTRL_TBL (Table 62).
7728 READINGS_RCD
7729 BLOCK_END_READ End-of-block data reading.
7731 LP_BLK1_DAT_RCD
7732 BLK_END_TIME Parameter containing the ending date and time of the last
7733 interval of data entered in this data block. This shall only
7734 contain the expected end-of-interval value (for example, if a
7735 one-hour interval starting at 10:00 terminates prematurely at
7736 10:15, the BLK_END_TIME shall indicate 11:00). When the
7737 block is closed (it is no longer the current active block) for any
7738 reason, the BLK_END_TIME shall be set to the block’s
7739 starting time + NBR_BLK_INTS_SET1 *
7740 MAX_INT_TIME_SET1.
7741 END_READINGS Array of readings of the end reading sources, taken at the
7742 interval end time of the last interval of data entered in the
7743 block. One end reading is provided for each channel in the
7744 block. The order of the readings matches their definition in
7745 LP_CTRL_TBL (Table 62). The format is controlled by
7746 READINGS_RCD.
7747 SIMPLE_INT_STATUS Set of status bits, one per interval, that specifies whether the
7748 corresponding interval is valid.
7749 FALSE This interval data has one or more invalid entries.
7750 TRUE This interval data is valid.
7751 LP_INT Array of interval records in the block. Intervals are stored in
7752 the chronological order, specified by INTERVAL_ORDER.
7757 LP_DATA_SET2_TBL (Table 65) contains information on Load Profile data set two.
200
DRAFT ANSI C12.19-2012
7801 LP_INT :
7802 ARRAY[ACT_LP_TBL.NBR_BLK_INTS_SET2] OF
7803 INT_SET2_RCD;
7804 END;
7815 INT_SET2_RCD
7816 EXTENDED_INT_STATUS An array of extended status and flags per LP_DATA_SET1.
7817 EXTENDED_INT_STATUS_BFLD. For additional details,
7818 see LP_DATA_SET1.
7819 INT_SET1_RCD.EXTENDED_INT_STATUS.
7820 INT_DATA Array of interval values for each channel in the block,
7821 recorded at a single time. Channels are presented in the same
7822 order. The order of the channels matches their definition in
7823 LP_CTRL_TBL (Table 62).
7824 READINGS_RCD
7825 BLOCK_END_READ End-of-block data reading.
7827 LP_BLK2_DAT_RCD
7828 BLK_END_TIME Parameter containing the ending date and time of the last
7829 interval of data entered in this data block. This shall only
7830 contain the expected end-of-interval value (for example, if a
7831 one-hour interval starting at 10:00 terminates prematurely at
7832 10:15, the BLK_END_TIME shall indicate 11:00). When the
7833 block is closed (it is no longer the active block) for any reason,
7834 the BLK_END_TIME shall be set to the block’s starting time
7835 + NBR_BLK_INTS_SET2 * MAX_INT_TIME_SET2.
7836 END_READINGS Array of readings of the end reading sources, taken at the
7837 interval end time of the last interval of data entered in the
7838 block. One end reading is provided for each channel in the
7839 block. The order of the readings matches their definition in
7840 LP_CTRL_TBL (Table 62). The format is controlled by
7841 READINGS_RCD.
7842 SIMPLE_INT_STATUS Set of status bits, one per interval, that specifies whether the
7843 corresponding interval is valid.
Tables / Decade 6: Load Profile Tables 201
Table 65 Load Profile Data Set Two Table
DRAFT ANSI C12.19-2012
7844 FALSE This interval data has one or more invalid entries.
7845 TRUE This interval data is valid.
7846 LP_INT Array of interval records in the block. Intervals are stored in
7847 the chronological order, specified by INTERVAL_ORDER.
202
DRAFT ANSI C12.19-2012
7852 LP_DATA_SET3_TBL (Table 66) contains information on Load Profile data set three.
7895 LP_INT :
7896 ARRAY[ACT_LP_TBL.NBR_BLK_INTS_SET3] OF
7897 INT_SET3_RCD;
7898 END;
7909 INT_SET3_RCD
7910 EXTENDED_INT_STATUS An array of extended status and flags per LP_DATA_SET1.
7911 EXTENDED_INT_STATUS_BFLD. For additional details,
7912 see LP_DATA_SET1.
7913 INT_SET1_RCD.EXTENDED_INT_STATUS.
7914 INT_DATA Array of interval values for each channel in the block,
7915 recorded at a single time. Channels are presented in the same
7916 order. The order of the channels matches their definition in
7917 LP_CTRL_TBL (Table 62).
7918 READINGS_RCD
7919 BLOCK_END_READ End-of-block data reading.
7921 LP_BLK3_DAT_RCD
7922 BLK_END_TIME Parameter containing the ending date and time of the last
7923 interval of data entered in this data block. This shall only
7924 contain the expected end-of-interval value (for example, if a
7925 one-hour interval starting at 10:00 terminates prematurely at
7926 10:15, the BLK_END_TIME shall indicate 11:00). When the
7927 block is closed (it is no longer the active block) for any reason,
7928 the BLK_END_TIME shall be set to the block’s starting time
7929 + NBR_BLK_INTS_SET3 * MAX_INT_TIME_SET3.
7930 END_READINGS Array of readings of the end reading sources, taken at the
7931 interval end time of the last interval of data entered in the
7932 block. One end reading is provided for each channel in the
7933 block. The order of the readings matches their definition in
7934 LP_CTRL_TBL (Table 62). The format is controlled by
7935 READINGS_RCD.
7936 SIMPLE_INT_STATUS Set of status bits, one per interval, that specifies whether the
7937 corresponding interval is valid.
204
DRAFT ANSI C12.19-2012
7938 FALSE This interval data has one or more invalid entries.
7939 TRUE This interval data is valid.
7940 LP_INT Array of interval records in the block. Intervals are stored in
7941 the chronological order, specified by INTERVAL_ORDER.
7946 LP_DATA_SET4_TBL (Table 67) contains information on Load Profile data set four.
206
DRAFT ANSI C12.19-2012
7988 LP_INT :
7989 ARRAY[ACT_LP_TBL.NBR_BLK_INTS_SET4] OF
7990 INT_SET4_RCD;
7991 END;
8002 INT_SET4_RCD
8003 EXTENDED_INT_STATUS An array of extended status and flags per LP_DATA_SET1.
8004 EXTENDED_INT_STATUS_BFLD. For additional details,
8005 see LP_DATA_SET1.
8006 INT_SET1_RCD.EXTENDED_INT_STATUS.
8007 INT_DATA Array of interval values for each channel in the block,
8008 recorded at a single time. Channels are presented in the same
8009 order. The order of the channels matches their definition in
8010 LP_CTRL_TBL (Table 62).
8011 READINGS_RCD
8012 BLOCK_END_READ End-of-block data reading.
8014 LP_BLK4_DAT_RCD
8015 BLK_END_TIME Parameter containing the ending date and time of the last
8016 interval of data entered in this data block. This shall only
8017 contain the expected end-of-interval value (for example, if a
8018 one-hour interval starting at 10:00 terminates prematurely at
8019 10:15, the BLK_END_TIME shall indicate 11:00). When the
8020 block is closed (it is no longer the active block) for any reason,
8021 the BLK_END_TIME shall be set to the block’s starting time
8022 + NBR_BLK_INTS_SET4 * MAX_INT_TIME_SET4.
8023 END_READINGS Array of readings of the end reading sources, taken at the
8024 interval end time of the last interval of data entered in the
8025 block. One end reading is provided for each channel in the
8026 block. The order of the readings matches their definition in
8027 LP_CTRL_TBL (Table 62). The format is controlled by
8028 READINGS_RCD.
8029 SIMPLE_INT_STATUS Set of status bits, one per interval, that specifies whether the
8030 corresponding interval is valid.
Tables / Decade 6: Load Profile Tables 207
Table 67 Load Profile Data Set Four Table
DRAFT ANSI C12.19-2012
8031 FALSE This interval data has one or more invalid entries.
8032 TRUE This interval data is valid.
8033 LP_INT Array of interval records in the block. Intervals are stored in
8034 the chronological order, specified by INTERVAL_ORDER.
208
DRAFT ANSI C12.19-2012
8039 HISTORY_EVENT_DEC
8041 This Decade contains the tables associated with the maintenance of the History and Event Logs. Although very
8042 similar in design, the role of the History Log Data (Table 74) is significantly distinguished from that of the Event
8043 Log Data (Table 76). The Event Log Data (Table 76) was designed in a manner to facilitate the establishment and
8044 maintenance of consumer confidence in the End Device operation. For that reason, the event logger implementation
8045 needs to adhere to strict guidelines and uniform rules that are consistent with the implementation of an audit trail
8046 that is capable of tracking securely all End Device changes to entities of metrological importance. On the other
8047 hand, the history logger provides for monitoring any End Device activity or events that may be of general interest to
8048 the operator, utility, or technician (e.g., communication access logs, debugging information, clock drift data, demand
8049 reset tracking, etc.). Both history logger and event logger (secured audit trail) may coexist in an End Device.
8059 0 No Event.
8060 1 Primary Power Down.
8061 2 Primary Power Up.
8062 3 Time Changed (Time-stamp is old time).
8063 4 Time Changed (Time-stamp is new time).
8064 5 Time Changed (Time-stamp is old time in STIME_DATE
8065 format).
8066 6 Time Changed (Time-stamp new time in STIME_DATE
8067 format).
8068 7 End Device Accessed for Read.
8069 8 End Device Accessed for Write.
8070 9 Procedure Invoked.
8071 10 Table Written To.
8072 11 End Device Programmed.
8073 12 Communication Terminated Normally.
8074 13 Communication Terminated Abnormally.
8075 14 Reset List Pointers.
8076 15 Updated List Pointers.
8077 16 History Log Cleared.
8078 17 History Log Pointers Updated.
8079 18 Event Log Cleared.
8080 19 Event Log Pointers Updated.
Tables / Decade 7: History Log and Event Log Tables 209
DRAFT ANSI C12.19-2012
8141 DIM_LOG_TBL (Table 70) defines the maximum size and capabilities of the History and Event Log Decade.
212
DRAFT ANSI C12.19-2012
8181 HIST_DATE_TIME_FLAG FALSE Date and time cannot be maintained in the History Log.
8182 TRUE Date and time can be maintained in the History Log.
8183 HIST_SEQ_NBR_FLAG FALSE A sequence number cannot be transported through the History
8184 Log.
8185 TRUE A sequence number can be transported through the History
8186 Log.
8187 HIST_INHIBIT_OVF_FLAG
8188 FALSE History Log is not capable of inhibiting overflow.
8189 TRUE History Log is capable of inhibiting overflow.
8190 EVENT_INHIBIT_OVF_FLAG
8191 FALSE Event Log is not capable of inhibiting overflow.
8192 TRUE Event Log is capable of inhibiting overflow.
8195 METROLOGICAL_SIG_FLAG
8196 FALSE The End Device is not capable of including the
8197 METROLOGICAL_SIG field in the End Device program
8198 state table (Table 78).
8199 TRUE The End Device is capable of including the
8200 METROLOGICAL_SIG field in the End Device program
8201 state table (Table 78).
8202 PROGRAM_SIG_FLAG
8203 FALSE The End Device is not capable of including the
8204 PROGRAM_SIG field in the End Device program state table
8205 (Table 78).
8206 TRUE The End Device is capable of including the PROGRAM_SIG
8207 field in the End Device program state table (Table 78).
8208 ALTERNATE_SIG_FLAG
8209 FALSE The End Device is not capable of including the
8210 ALTERNATE_SIG field in the End Device program state
8211 table (Table 78).
8212 TRUE The End Device is capable of including the
8213 ALTERNATE_SIG field in the End Device program state
8214 table (Table 78).
8215 SECURED_REGISTER_FLAG The End Device secured register read events capability flag.
8216 FALSE The End Device is not capable of generating an End Device
8217 secured register event (Read Secured Register or Read
8218 Secured Table).
8219 TRUE The End Device is capable of generating an End Device
8220 secured register event (Read Secured Register or Read
8221 Secured Table).
8222 SIG_ALGORITHM Selector for the algorithm used to generate the event logger
8223 signatures in this Decade.
8224 0 The End Device signatures are computed using the MD5
8225 algorithm (ANSI X9.31-1998, ISO/IEC 10118-1-2000,
8226 ISO/IEC 10118-2-2000).
8227 1 The End Device signatures are computed using the SHA-256
8228 algorithm [Secure Hash Signature Standard (SHS) (FIPS PUB
8229 180-2)].
8230 2..7 Reserved.
8231 LOG_RCD
8232 LOG_FLAGS See LOG_FLAGS_BFLD.
8250 NBR_PROGRAM_TABLES 0..65535 Maximum number of tables that can be included in the
8251 TABLE_LIST of the End Device program state (Table 78).
214
DRAFT ANSI C12.19-2012
8254 ACT_LOG_TBL (Table 71) defines the actual size and capabilities of the History and Event Log Decade.
8261 EVENT_NUMBER_FLAG FALSE A common event number is not maintained in the History &
8262 Event Logs.
8263 TRUE A common event number is maintained in the History & Event
8264 Logs.
8265 HIST_DATE_TIME_FLAG FALSE A date & time is not maintained in the History Log.
8266 TRUE A date & time is maintained in the History Log.
8267 HIST_SEQ_NBR_FLAG FALSE A sequence number is not transported through the History
8268 Log.
8269 TRUE A sequence number is transported through the History Log.
8270 HIST_INHIBIT_OVF_FLAG
8271 FALSE History Log is not inhibiting new entries when an overflow
8272 condition exists.
8273 TRUE History Log is inhibiting new entries when an overflow
8274 condition exists.
8275 EVENT_INHIBIT_OVF_FLAG
8276 FALSE Event Log is not inhibiting new entries when an overflow
8277 condition exists.
8278 TRUE Event Log is inhibiting new entries when an overflow
8279 condition exists.
8283 METROLOGICAL_SIG_FLAG
8284 FALSE METROLOGICAL_SIG field is not included in the End
8285 Device program state table (Table 78).
8286 TRUE METROLOGICAL_SIG field is included in the End Device
8287 program state table (Table 78).
8288
8289 PROGRAM_SIG_FLAG
8290 FALSE PROGRAM_SIG field is not included in the End Device
8291 program state table (Table 78).
8292 TRUE PROGRAM_SIG field is included in the End Device
8293 program state table (Table 78).
8294 ALTERNATE_SIG_FLAG
8295 FALSE ALTERNATE_SIG field is not included in the End Device
8296 program state table (Table 78).
8297 TRUE ALTERNATE_SIG field is included in the End Device
8298 program state table (Table 78).
8299 SECURED_REGISTER_FLAG The End Device secured register read events enabling flag.
8300 FALSE The End Device shall not generate End Device secured
8301 register events (Read Secured Register or Read Secured
8302 Table).
8303 TRUE The End Device shall generate End Device secured register
8304 events (Read Secured Register or Read Secured Table)
8305 following the transfer of a secured register table or elements to
8306 an End Device reader, provided that this capability was
8307 enabled by a successful invocation of the “Start Secured
8308 Register” procedure. Event logging of secured register reads
8309 shall cease immediately upon invocation of the “Stop Secured
8310 Register” procedure, termination of the communication
8311 session (which invoked the “Start Secured Register”
8312 procedure), or upon reaching the maximum number of secured
8313 read operations that were permitted.
8314 SIG_ALGORITHM Selector for the algorithm used to generate the event logger
8315 signatures in this Decade. This Final Element value shall be
8316 identical to DIM_LOG_TBL.SIG_ALGORITHM.
8317 0 The End Device signatures are computed using the MD5
8318 algorithm (ANSI X9.31-1998, ISO/IEC 10118-1-2000,
8319 ISO/IEC 10118-2-2000).
8320 1 The End Device signatures are computed using the SHA-256
8321 algorithm [Secure Hash Signature Standard (SHS) (FIPS PUB
8322 180-2)].
8323 2..7 Reserved.
216
DRAFT ANSI C12.19-2012
8335 NBR_HISTORY_ENTRIES
8336 0..65535 Actual maximum number of entries in the History Log.
8337 NBR_EVENT_ENTRIES 0..65535 Actual maximum number of entries in the Event Log.
8339 NBR_PROGRAM_TABLES
8340 0..65535 Actual number of tables included in the TABLE_LIST of the
8341 End Device program state (Table 78).
8344 EVENTS_ID_TBL (Table 72) contains the events that are supported by the End Device. Any of these events may
8345 be expressed in the History Log Data (Table 74) and the Event Log Data (Table 76).
8363 MFG_EVENTS_SUPPORTED This set Element indicates which of the manufacturer events
8364 are supported in the Event Log. Events are enabled by bits 0
8365 through (8 * ACT_LOG_TBL.NBR_MFG_EVENTS - 1),
8366 with a one (1) representing a TRUE or implemented condition
8367 and a zero (0) representing a FALSE or not implemented
8368 condition.
218
DRAFT ANSI C12.19-2012
8371 HISTORY_LOG_CTRL_TBL (Table 73) defines the History Log codes to be written to the History Log Data
8372 (Table 74). It also defines which specific procedures and/or table writes are to be acknowledged in the History Log
8373 Data (Table 74). For a specific procedure or table to be acknowledged, three independent tests shall all be true:
8374 a) The procedure or table shall be used in the End Device, per the GEN_CONFIG_TBL (Table 00).
8375 b) The appropriate History Log code shall be used, per this table.
8376 c) The procedure or table shall be requested to be acknowledged, per this table.
8377 This table (Table 73) and its associated data logger table (Table 74) can be used to monitor any End Device activity
8378 that may be of interest to the operator, utility, or technician. The monitored events may include communication
8379 events, debugging information, or any other useful information that may be of general interest. When there is an
8380 expressed need to establish and maintain consumer confidence in the End Device metrology, the reliable audit trail
8381 (Event Logger Data Table 76) shall be implemented.
220
DRAFT ANSI C12.19-2012
8422 HISTORY_LOG_DATA_TBL (Table 74) provides the History Log Data that is controlled by Table 73, History
8423 Log Control Table.
8461 TRUE An attempt was made to enter a history event such that the
8462 number of unread events entries would have exceeded the
8463 actual number of possible entries in the log.
8490 HISTORY_ENTRY_RCD
8491 HISTORY_TIME Date and time of History Log entry.
8492 EVENT_NUMBER 0..65535 This Element is a common event counter that increments
8493 whenever a new event is generated, regardless of whether the
8494 event is recorded in the History Log, the Event Log, or both
8495 logs.
8496 HISTORY_SEQ_NBR 0..65535 Sequence number associated with the History Log only. This
8497 value represents the least significant 16 bits of
8498 LAST_ENTRY_SEQ_NBR.
8499 USER_ID 0..65535 The User ID associated with this History Log entry. It comes
8500 from the Log In Procedure or from a communication session
8501 initiation sequence. A USER_ID of zero (0) means the End
8502 Device initiated the event. A USER_ID of one (1) means the
8503 event was manually initiated.
222
DRAFT ANSI C12.19-2012
8508 HISTORY_ARGUMENT Argument associated with a specific entry. For standard event
8509 arguments, refer to Annex B, “(normative) History and event
8510 log code”.
8511 HISTORY_LOG_RCD
8512 HIST_FLAGS See LIST_STATUS_BFLD.
8513 NBR_VALID_ENTRIES 0..65535 Number of valid entries in the log. The range is from zero (0)
8514 (meaning the log is empty) to the actual dimension of the log.
8515 LAST_ENTRY_ELEMENT 0..65535 The array element number of the newest valid entry in the log.
8516 LAST_ENTRY_SEQ_NBR 0..4294967295 The sequence number of the newest valid entry in the log.
8517 NBR_UNREAD_ENTRIES 0..65535 The number of entries in the log that have not yet been read. It
8518 is only changed through a procedure.
8522 EVENT_LOG_CTRL_TBL (Table 75) defines the Event Log codes to be written to the Event Log. It also defines
8523 which specific procedures and/or table writes are to be acknowledged in the Event Log. For a specific procedure or
8524 table to be acknowledged, three independent tests shall all be true:
8525 a) The procedure or table shall be used in the End Device, per the GEN_CONFIG_TBL (Table 00).
8526 b) The appropriate Event code shall be used, per Table 75.
8527 c) The procedure or table shall be requested to be acknowledged, per Table 75.
8528 This data structure is identical to the structure in HISTORY_LOG_CTRL_TBL (Table 73). The associated table
8529 (Event Log Data Table 76) shall be used when there is an expressed need to establish and maintain consumer
8530 confidence in the End Device metrology using a reliable audit trail.
8564 EVENT_LOG_DATA_TBL (Table 76) provides the Event Log Data that is controlled by Table 75, Event Log
8565 Control Table. The event logger table is a secured audit trail tool capable of recording metrological signatures (see
8566 Table 78), secured register reading signatures, and event-check signatures.
226
DRAFT ANSI C12.19-2012
8611 TABLE_IDB_BFLD
8612 EVENT_NUMBER 0..2039 Event code number logged. See EVENT_CODES_ENUM
8613 for Standard values (MFG_FLAG == FALSE).
8614 Alias: TBL_PROC_NBR.
8630 EVENT_ENTRY_RCD
8631 EVENT_TIME Date and time of Event Log entry.
8632 EVENT_NUMBER 0..65535 This Element is a common event counter that increments
8633 whenever a new event is generated, regardless of whether the
8634 event is recorded in the History Log, the Event Log, or both
8635 logs.
8636 EVENT_SEQ_NBR 0..65535 Sequence number associated with the Event Log only.
8637 USER_ID 0..65535 The User ID associated with this Event Log entry. It comes
8638 from the Log In Procedure or from a communication session
8639 initiation sequence. A USER_ID of zero (0) means the End
8640 Device initiated the event. A USER_ID of one (1) means the
8641 event was manually initiated.
8642 USER_ID values in the range of 57344 (E000H) through
8643 65535 (FFFFH) are used for devices attached to the End
8644 Device.
8648 EVENT_LOG_RCD
8649 EVENT_FLAGS See LIST_STATUS_BFLD.
8650 NBR_VALID_ENTRIES 0..65535 Number of valid entries in the log. The range is zero (0)
8651 (meaning the log is empty) to the actual dimension of the log.
8652 LAST_ENTRY_ELEMENT
8653 0..65535 The array element number of the newest valid entry in the log.
8661 NBR_UNREAD_ENTRIES 0..65535 The number of entries in the log that have not yet been read. It
8662 is only changed through a procedure.
228
DRAFT ANSI C12.19-2012
8666 SIG_ENABLE_TBL (Table 77) contains three collections of Standard and Manufacturer Table set selectors that
8667 identify the tables that are included in the computation of the METROLOGICAL_SIG, PROGRAM_SIG, and
8668 ALTERNATE_SIG signatures found in the Signature table (Table 78). A fourth collection of Table set selectors is
8669 used to identify the tables that need to be logged in the Event Log data table (Table 76). A fifth collection of Table-
8670 set selectors is used to identify which tables are Secured Register Tables.
8671 Only tables identified within shall be recorded in the Signatures Table, and only those Tables identified in the
8672 EVENTLOG_SEL shall trigger a Table-changed event entry in the Event Log data table (Table 76). Also, only
8673 those Tables identified in the SECURED_REGISTER_SEL may trigger a Read Secured Table or Read Secured
8674 Register event entry in the Event Log data table (Table 76), when this capability is enabled by the End Device
8675 reader.
8703 STD_TBLS_SEL This SET indicates which of the Standard tables are selected.
8704 Tables are represented by bits 0 through (8 *
8705 DIM_STD_TBLS_USED - 1).
8709 MFG_TBLS_SEL This SET indicates which of the Manufacturer tables are
8710 selected. Tables are represented by bits 0 through (8 *
8711 DIM_STD_TBLS_USED - 1).
8712 FALSE No action is required for this table.
8713 TRUE When the corresponding table is modified, the action
8714 requested shall be performed.
8715 SIG_ENABLE_RCD
8716 METROLOGICAL_SEL Identifies the Tables that contain metrological elements and
8717 shall be included in the computation of the
8718 METROLOGICAL_SIG. Indirect changes to these Tables
8719 (through User-defined Tables, Extended User-defined Tables,
8720 or other means) shall also cause the computation of the
8721 METROLOGICAL_SIG of all affected Tables.
8722 EVENTLOG_SEL Indicates which of the Tables will trigger a “Table Written
8723 To” event (Event 10, 59, 64, or 69) or, alternatively, an “End
8724 Device Programmed” event (Event 11, 60, 65, or 70) in the
8725 Event Log data table (Table 76). Tables that are not selected
8726 within, but are identified in METROLOGICAL_SEL, shall
8727 trigger a re-verification (End Device unsealed) event upon
8728 change. Indirect changes to these Tables (through User-
8729 defined Tables, Extended User-defined Tables, or other
8730 means) shall also generate an Event Log entry, as if the
8731 referenced tables were modified or accessed directly;
8732 however, the table identifier (TABLE_IDA_BFLD) recorded
8733 in the EVENT_ARGUMENT shall be that of the User-
8734 defined Table or the Extended User-defined Table that
8735 triggered that event, when the change or access was carried
8736 out through a user-defined or extended-user-defined table (see
8737 Annex B, “(normative) History and event log codes”, for more
8738 details). A compliant implementation shall set all of the
8739 corresponding bits of
8740 EVENT_LOG_CTRL_TBL.STD_TBLS_MONITORED_F
8741 LAGS and
8742 EVENT_LOG_CTRL_TBL.MFG_TBLS_MONITORED_
8743 FLAGS to TRUE if they were also set to TRUE in the
8744 EVENTLOG_SEL. STD_TBLS_SEL and
8745 EVENTLOG_SEL.MFG_TBLS_SEL, respectively, for this
8746 trigger to be enabled.
8747 PROGRAM_SEL Identifies the Tables that contain program elements and will
8748 be included in the computation of the PROGRAM_SIG.
8749 ALTERNATE_SEL Identifies the Tables that contain metrological elements and
8750 will be included in the computation of the
8751 ALTERNATE_SIG.
8752 SECURED_REGISTER_SEL Identifies the Tables that contain secured register, sensors, or
8753 status elements that will be included in the computation of the
8754 SECURED_REGISTER_SIG (see Annex B, “(normative)
230
DRAFT ANSI C12.19-2012
8755 History and event log code”) and trigger a Read Secured Table
8756 event (Event 7, 73, or 75) or a Read Secured Register event
8757 (Event 74 or 76) depending on the value of
8758 ACT_LOG_TBL.SECURED_REGISTER_FLAG and if
8759 the “Start Secured Register” procedure has been executed. A
8760 compliant implementation shall set all of the corresponding
8761 bits of EVENTLOG_SEL to TRUE if they were also set to
8762 TRUE in SECURED_REGISTER_SEL.
8765 SIGNATURE_TBL (Table 78) contains a list of table identifiers and their corresponding signatures. This table
8766 provides information that can be used to validate the integrity of the Event Logger itself (EVENT_CHECK_SIG).
8767 This table also lists the tables that were modified and, hence, need to be downloaded when the Event Logger is
8768 downloadable (MODIFIED_FLAG). It also provides assist technology for improved field programming and
8769 program change detection in real time (PROGRAM_SIG and ALTERNATE_SIG).
8770 There are a number of variations of signatures: Global signatures that represent the programming state of a selection
8771 of Tables (METROLOGICAL_SIG, PROGRAM_SIG, and ALTERNATE_SIG); and audit trail signatures that
8772 cover the programming history of the End Device (EVENT_CHECK_SIG). When Table 78 is not implemented, its
8773 conceptual implementation logic shall be used to derive the event check signature, EVENT_CHECK_SIG, used in
8774 the Event Log data table (Table 76).
8775 Background information and description of the process required to generate these signatures is described in
8776 Annex E, “(informative) Event Logger implementation”.
232
DRAFT ANSI C12.19-2012
8833 TABLE_LIST_RCD
8834 TABLE_ID Identification number of the table.
8835 TABLE_SIG Active table signature. The signature is used to detect changes
8836 made to this Table. This signature is computed using the
8837 algorithm specified in
8838 ACT_LOG_TBL.SIG_ALGORITHM applied to the entire
8839 binary content of the Table. The resulting signature becomes
8840 available as input in the computation of the
8841 PROGRAM_SIG, EVENT_CHECK_SIG or the
8842 ALTERNATE_SIG. Only the first 16 Octets spanning index
8843 0–15 of the resulting signature are captured by this Element.
8844 SIGNATURE_RCD
8845 METROLOGICAL_SIG A signature that captures the active metrological state of an
8846 End Device. It is the digest of all tables with
8847 METROLOGICAL_FLAG set to TRUE.
8848 The algorithm digests each TABLE_SIG in order of
8849 increasing index, starting with Standard Tables and followed
8850 by Manufacturer Tables. Only the first 16 Octets spanning
Tables / Decade 7: History Log and Event Log Tables 233
Table 78 End Device Program State Table
DRAFT ANSI C12.19-2012
8853 EVENT_CHECK_SIG A signature that is used to detect event log discontinuity for
8854 the life of the End Device. This signature is created by the
8855 repeated application of the algorithm indicated by
8856 DIM_LOG_TBL.SIG_ALGORITHM applied to the new
8857 EVENT_ENTRY_RCD entries that are being added to the
8858 Event Log data table (Table 76). Only the first 16 Octets
8859 spanning index 0–15 of the resulting signature are captured by
8860 this Element.
8861 The processing logic for the creation of
8862 EVENT_CHECK_SIG in this table and in Table 76 is as
8863 follows:
8864 a) Update TABLE_SIGs to reflect the changes to all
8865 metrological tables.
8866 b) Update the signature element METROLOGICAL_SIG
8867 to reflect the changes to metrological tables. The
8868 METROLOGICAL_SIG value is the result of the use of
8869 the algorithm indicated by
8870 DIM_LOG_TBL.SIG_ALGORITHM to digest the
8871 concatenated signatures produced in step a). Only
8872 signatures of metrological tables shall be included in the
8873 computation. These shall be ordered for processing in
8874 increasing table numbers starting with Standard Tables
8875 and followed by Manufacturer Tables.
8876 c) Create a new event entry in Table 76, Event Log Data
8877 Table, and initialize its EVENT_ARGUMENT elements
8878 to binary 00H.
8879 d) Fill in the EVENT_TIME, the optional
8880 EVENT_NUMBER, the required EVENT_SEQ_NBR,
8881 USER_ID and EVENT_CODE, and all
8882 EVENT_ARGUMENT elements except for
8883 EVENT_CHECK_SIG (if present).
8884 e) Using the algorithm indicated by
8885 DIM_LOG_TBL.SIG_ALGORITHM digest the newly
8886 created event information that was placed in the
8887 EVENT_ENTRY_RCD. This includes all elements of
8888 the EVENT_ARGUMENT, but excludes the
8889 EVENT_CHECK_SIG element. For example, when
8890 EVENT_CODE=65, the EVENT_ARGUMENT will
8891 not be digested; when EVENT_CODE=64, only the
8892 TABLE_IDA_BFLD field of the
8893 EVENT_ARGUMENT will be digested; when
8894 EVENT_CODE=70, then all Octets starting at offset 16
8895 to offset ACT_LOG_TBL.EVENT_DATA_LENGTH-
8896 1 of the EVENT_ARGUMENT will be digested.
8897 f) Append to the EVENT_ENTRY_RCD’s signature
8898 [computed in step e)] the previous event log entry
8899 EVENT_CHECK_SIG (or use a signature of binary 0’s
8900 if this is the first event entry being created) and then
8901 append the metrological signature [computed in step b)]
8902 and finally digest the three concatenated signatures, using
8903 the algorithm indicated by
234
DRAFT ANSI C12.19-2012
8910 The Event Logger’s (Table 76) most recent signature shall be
8911 identical to the most recent EVENT_CHECK_SIG element
8912 of Table 78 at all times.
8922 ALTERNATE_SIG A signature that captures the active state of an End Device,
8923 subject to (alternate unspecified by this standard) application
8924 requirements. It is the digest of all tables with
8925 ALTERNATE_FLAG set to TRUE. The algorithm digests
8926 each TABLE_SIG in order of increasing index.
8927 A typical use of this signature is to check for changes to a
8928 collection of End Device identity independent programming
8929 Tables. This signature can be used to compare and validate the
8930 program state of a population of deployed End Device. Only
8931 the first 16 Octets spanning index 0–15 of the resulting
8932 signature are captured by this Element.
8933 TABLE_LIST Array containing the list of Tables monitored for change with
8934 signatures. See TABLE_LIST_RCD.
8937 EVENT_COUNTER_TBL (Table 79) contains Event Counters used to detect modification to calibration,
8938 programming, or metrological parameters.
8952 PROGRAM_COUNTER 0..65535 Incremented by one each time one or multiple programming or
8953 metrological parameters are modified. This counter may be
8954 used by upstream devices to trigger an update to the
8955 configuration information stored (caching of static
8956 information) for this device.
236
DRAFT ANSI C12.19-2012
8959 USER_DEFINED_TABLES_DEC
8961 These tables provide the capability for the End Device user to build custom tables using selections from the tables
8962 available in an End Device. The selections are bidirectional in the sense that any change to a value of a selected
8963 table element will manifest itself in the user-defined table that contains that selection, and any change to a selected
8964 identifier from the user-defined table shall result in a corresponding change in the selected table identifier. All event
8965 log, change events, and security constraints shall operate to maintain coherence between the user-defined tables and
8966 the table identifiers they point to. Support of writing to user-defined tables is optional at the manufacturer discretion
8967 on a per-table basis.
8970 DIM_UDT_FUNC_LIM_TBL (Table 80) contains maximum values and control parameters for the user-defined
8971 tables. These values set up to six independent sets of user-defined tables.
9020 DIM_UDT_FUNC_LIM_RCD
9021 NBR_XFR_LIST_ITEMS 0..65535 The maximum number of UINT16 entries used to make the
9022 list.
9023 UDT_FUNC_CTRL These are the limiting capabilities for user-defined table
9024 selections. This defines the maximum number of user-defined
9025 tables supported in this Decade and the data access method, as
9026 defined by UDT_CTRL_BFLD.
9045 ACT_UDT_FUNC_LIM_TBL (Table 81) contains actual limiting values for the user-defined tables. These
9046 parameters define up to six independent sets of user-defined tables definitions.
9054 NBR_UDTS 0..6 The actual number of user-defined tables that are defined
9055 concurrently by the list of data items.
9056 7 Reserved.
9060 DATA_ACCESS_METHOD Designates the actual method of selecting table entries for
9061 placement in a user-defined table.
9062 0 Complete tables are mapped into user tables. Partial table
9063 cannot be mapped.
9064 1 Offset-count access method is used.
9065 2 Index-count access method is used.
9066 3 Reserved.
9069 NBR_XFR_LIST_ITEMS 0..65535 The actual number of UINT16 entries used in the list.
9070 UDT_FUNC_CTRL The actual method used for user-defined tables selections.
9071 This identifies the actual number of user-defined tables and
9072 the data access method used in this Decade as defined by
9073 UDT_CTRL_BFLD.
240
DRAFT ANSI C12.19-2012
9091 UDT_LIST_TBL (Table 82) defines data elements used in the generation of user-defined tables for this Decade.
9115 TBL_PROC_NBR 0..2039 Information source table number. Note that the corresponding
9116 implementation bit shall be set in GEN_CONFIG_TBL
9117 (Table 00).
9138 OFFSET 0..65535 This field holds the least significant 16 bits of the offset to the
9139 data element required to locate the data item in a table.
9140 INDEX This is an array of indices, which combine to define the index
9141 to an item entry in a table.
9142 COUNT 0..65535 Length of data item(s) in Octets. When the value is zero, it is
9143 the end of the list.
9144 UDT_LIST_SEL_RCD
9145 UDT_LIST An array holding ACT_UDT_FUNC_LIM_TBL.
9146 NBR_XFR_LIST_ITEMS UINT16 quantities. This space is
9147 mapped using SOURCE_ITEM_RCD into variable length
9148 records that select table or partial tables for access via the
9149 user-defined tables.
9152 UDT_SEL_TBL (Table 83) specifies what data elements are used in user tables defined for this Decade. Each array
9153 entry in this table corresponds to a specific table in this Decade following this table. For example, the third entry in
9154 this array corresponds to Table 83 + 3 = Table 86.
9176 UDT_DATA_SETS_RCD
9177 UDT_DATA_SETS Array containing up to
9178 ACT_UDT_FUNC_LIM_TBL.NBR_UDTS (Table 81)
9179 entries. Each entry defines the source selections for a user-
9180 defined table.
244
DRAFT ANSI C12.19-2012
9183 This table is defined by the items in table UDT_LIST_TBL (Table 82) selected by the first entry in table
9184 UDT_SEL_TBL (Table 83).
9200 This table is defined by the items in table UDT_LIST_TBL (Table 82) selected by the second entry in table
9201 UDT_SEL_TBL (Table 83).
246
DRAFT ANSI C12.19-2012
9218 This table is defined by the items in table UDT_LIST_TBL (Table 82) selected by the third entry in table
9219 UDT_SEL_TBL (Table 83).
9236 This table is defined by the items in table UDT_LIST_TBL (Table 82) selected by the fourth entry in table
9237 UDT_SEL_TBL (Table 83).
248
DRAFT ANSI C12.19-2012
9254 This table is defined by the items in table UDT_LIST_TBL (Table 82) selected by the fifth entry in table
9255 UDT_SEL_TBL (Table 83).
9272 This table is defined by the items in table UDT_LIST_TBL (Table 82) selected by the sixth entry in table
9273 UDT_SEL_TBL (Table 83).
250
DRAFT ANSI C12.19-2012
9290 TELEPHONE_CONTROL_DEC
9292 This Decade contains tables associated with the use of a telephone modem.
9295 DIM_TELEPHONE_TBL (Table 90) specifies the maximum dimensional values for this Decade.
9330 S_ANCHOR_DATE_FLAG FALSE End Device is not capable of accepting a separate telephone
9331 schedule anchor date for the Period/Delta RDATE type
9332 (recurring date).
9333 TRUE End Device is capable of accepting a separate telephone
9334 schedule anchor date for the Period/Delta RDATE type
9335 (recurring date).
9336 OFFHOOK_DETECT_FLAG
9337 FALSE End Device is not capable of detecting off hook conditions.
9338 TRUE End Device is capable of detecting off hook conditions.
9339 BIT_RATE 0 End Device is not capable of modifying its bit rate.
9340 1 End Device is capable of modifying globally its originating
9341 and answering bit rate.
9342 2 End Device is capable of modifying separately its originating
9343 and answering bit rate.
9344 3 Reserved.
9353 EXTENDED_STATUS FALSE End Device is not capable of including Last call purpose in the
9354 CALL_STATUS_TBL (Table 97).
9355 TRUE End Device is capable of including Last call purpose in the
9356 CALL_STATUS_TBL (Table 97).
9357 TELEPHONE_RCD
9358 TELEPHONE_FLAGS See TELEPHONE_FLAGS_BFLD.
9359 NBR_ORIGINATE_WINDOWS
9360 0..255 Maximum number of originate time window descriptions
9361 supported by the End Device.
9362 NBR_SETUP_STRINGS 0..255 Maximum number of setup strings supported by the End
9363 Device.
9364 SETUP_STRING_LENGTH 0..255 Maximum length (in Octets) of setup strings supported by the
9365 End Device.
9366 PREFIX_LENGTH 0..255 Maximum length (in Octets) of phone number prefix
9367 supported by the End Device.
252
DRAFT ANSI C12.19-2012
9368 NBR_ORIGINATE_NUMBERS
9369 0..7 Maximum number of originate phone numbers supported by
9370 the End Device.
9371 8..255 Reserved.
9372 PHONE_NUMBER_LENGTH
9373 0..255 Maximum length (in Octets) of phone numbers supported by
9374 the End Device.
9375 NBR_RECURRING_DATES
9376 0..255 Maximum number of recurring dates supported to create the
9377 origination schedule.
9378 NBR_NON_RECURRING_DATES
9379 0..255 Maximum number of nonrecurring dates supported to create
9380 the origination schedule.
9383 NBR_WEEKLY_SCHEDULES
9384 0..255 Maximum number of weekly schedules supported to create the
9385 origination schedule.
9386 NBR_ANSWER_WINDOWS
9387 0..255 Maximum number of answer time window descriptions
9388 supported by the End Device.
9389 NBR_CALLER_IDS 0..255 Maximum number of Caller ID strings supported by the End
9390 Device.
9391 CALLER_ID_LENGTH 0..255 Maximum length (in Octets) of Caller ID strings supported by
9392 the End Device.
9395 ACT_TELEPHONE_TBL (Table 91) contains actual dimension values for this Decade.
9403 ANSWER_FLAG FALSE End Device shall not answer a phone call.
9404 TRUE End Device may answer a phone call.
9405 S_ANCHOR_DATE_FLAG FALSE End Device does not accept a separate telephone schedule
9406 anchor date for the Period/Delta RDATE type (recurring
9407 date).
9408 TRUE End Device accepts a separate telephone schedule anchor date
9409 for the Period/Delta RDATE type (recurring date).
9410 OFFHOOK_DETECT_FLAG
9411 FALSE End Device does not currently detect off hook conditions.
9412 TRUE End Device currently detects off hook conditions.
9421 ID_IN_PURPOSE FALSE End Device does not currently include an ID field in
9422 CALL_PURPOSE_TBL (Table 96).
9423 TRUE End Device currently includes an ID field in
9424 CALL_PURPOSE_TBL (Table 96).
9425 NO_LOCKOUT_PARM FALSE End Device currently includes lockout parameters in table
9426 ANSWER_PARAMETERS_TBL (Table 95).
9427 TRUE End Device does not currently include lockout parameters in
9428 table ANSWER_PARAMETERS_TBL (Table 95).
9429 EXTENDED_STATUS FALSE End Device is not including last call purpose information in
9430 the CALL_STATUS_TBL (Table 97).
254
DRAFT ANSI C12.19-2012
9431 TRUE End Device is including last call purpose information in the
9432 CALL_STATUS_TBL (Table 97).
9436 NBR_ORIGINATE_WINDOWS
9437 0..255 Actual number of originate time window descriptions used by
9438 the End Device.
9439 NBR_SETUP_STRINGS 0..255 Actual number of setup strings used by the End Device.
9440 SETUP_STRING_LENGTH 0..255 Actual length (in Octets) of setup strings used by the End
9441 Device.
9442 PREFIX_LENGTH 0..255 Actual length (in Octets) of phone number prefix used by the
9443 End Device.
9444 NBR_ORIGINATE_NUMBERS
9445 0..7 Actual number of originate phone numbers used by the End
9446 Device.
9447 8..255 Reserved.
9448 PHONE_NUMBER_LENGTH
9449 0..255 Actual length (in Octets) of phone numbers used by the End
9450 Device.
9451 NBR_RECURRING_DATES
9452 0..255 Actual number of recurring dates used to create the origination
9453 schedule.
9454 NBR_NON_RECURRING_DATES
9455 0..255 Actual number of nonrecurring dates used to create the
9456 origination schedule.
9457 NBR_EVENTS 0..255 Actual number of events used to create the origination
9458 schedule.
9459 NBR_WEEKLY_SCHEDULES
9460 0..255 Actual number of weekly schedules used to create the
9461 origination schedule.
9462 NBR_ANSWER_WINDOWS
9463 0..255 Actual number of answer time window descriptions used by
9464 the End Device.
9465 NBR_CALLER_IDS 0..255 Actual number of Caller ID strings used by the End Device.
9466 CALLER_ID_LENGTH 0..255 Actual length (in Octets) of Caller ID strings used by the End
9467 Device.
9470 GLOBAL_PARAMETERS_TBL (Table 92) defines general parameters used for both answering and originating a
9471 call.
9492 GLOBAL_PARAMETERS_RCD
9493 PSEM_IDENTITY 0..255 Value used by the <identity> field in Layer 2 of C12.21 for
9494 the End Device (meter, etc.) identity. It identifies the End
9495 Device in both the request and response packets.
9500 The individual End Device identity must be in the range 01H
9501 to FEH.
9502 In requests, this Octet may be set to FFH to target the calling
9503 party during an inbound call. Only the End Device that
9504 initiated the inbound call shall process packets with identity
9505 Octet equal to FFH. The value FFH may be used in both single-
9506 drop and multidrop environments.
256
DRAFT ANSI C12.19-2012
9507 The End Device shall use its own identity Octet in the
9508 response for all requests (including 00H and FFH) .
9509 BIT_RATE Bit rate at which the End Device will originate or answer a
9510 call.
9511 0 Denotes an externally defined bit rate.
9512 1..4294967295 End Device call origination bit rate in bits per second.
9516 ORIGINATE_PARAMETERS_TBL (Table 93) defines originate configuration parameters. Originate refers to the
9517 End Device placing calls to a utility host.
258
DRAFT ANSI C12.19-2012
9566 MONDAY FALSE This window does not start each Monday.
9567 TRUE This window does start each Monday.
9568 TUESDAY FALSE This window does not start each Tuesday.
9569 TRUE This window does start each Tuesday.
9570 WEDNESDAY FALSE This window does not start each Wednesday.
9571 TRUE This window does start each Wednesday.
9572 THURSDAY FALSE This window does not start each Thursday.
9573 TRUE This window does start each Thursday.
9574 FRIDAY FALSE This window does not start each Friday.
9575 TRUE This window does start each Friday.
9576 SATURDAY FALSE This window does not start each Saturday.
9577 TRUE This window does start each Saturday.
9578 WINDOW_RCD
9579 BEGIN_WINDOW_TIME The time of day the window starts.
9581 WINDOW_DAYS Defines the days that a window can start. See DAYS_BFLD.
9582 PHONE_NUMBER_RCD
9583 PHONE_NUMBER Phone number to use to place a call.
9584 PHONE_NUMBERS_RCD
9585 PREFIX This number will be inserted at the beginning of every phone
9586 number before beginning dialing.
9588 ORIGINATE_PARAMETERS_RCD
9589 ORIGINATE_BIT_RATE Bit rate at which the End Device will originate a call.
9590 0 Denotes an externally defined bit rate.
9591 1..4294967295 End Device call origination bit rate in bits per second.
9592 DIAL_DELAY 0..255 Delay in seconds the End Device will wait before dialing after
9593 going off-hook.
9596 ANSWER_TIMEOUT 0..255 Delay in seconds the End Device will wait after dialing before
9597 declaring no answer.
9598 RETRY_INTERVAL 0..65535 Delay in seconds the End Device will wait after a failed call
9599 before trying again. May include a random offset.
9600 MAX_RETRIES 0..255 Absolute maximum number of attempts. Same value used for
9601 all ORIGINATE_PHONE_NUMBERS. This value starts at
9602 zero for each unique call-out event.
260
DRAFT ANSI C12.19-2012
9605 ORIGINATE_SCHEDULE_TBL (Table 94) is used to configure when and why an End Device originates a call.
9647 WEEKLY_SCHEDULES :
9648 ARRAY[ACT_TELEPHONE_TBL.NBR_WEEKLY_SCHEDULES] OF
9649 WEEKLY_SCHEDULE_RCD;
9650 END;
9661 SECONDARY_PHONE_NUMBER
9662 0..6 Selection of the secondary phone number to use to originate a
9663 call. This value is an index into the PHONE_NUMBERS
9664 array in the ORIGINATE_PARAMETERS_TBL
9665 (Table 93).
9666 7 Indicates that no secondary number is provided.
9667 USE_WINDOWS FALSE An originate time window will not be used to restrict the
9668 period available to place this call. The call will be placed
9669 immediately.
9670 TRUE An Originate time window will be used to restrict the period
9671 available to place this call. Calls originating outside a window
9672 will be delayed until the next open window.
9673 RECURRING_DATES_RCD
9674 ORIGINATE_DATE Recurring date at which call originate procedures should
9675 begin.
9678 NON_RECURRING_DATES_RCD
9679 ORIGINATE_DATE Specific date at which a call originate procedure should begin.
9682 EVENTS_RCD
9683 ED_STD_STATUS1 Standard status events that initiate a call originate procedure.
9684 FALSE No call should take place for this status bit.
9685 TRUE A call should take place if an event is detected for this status
9686 bit.
9687 ED_STD_STATUS2 Standard status events that initiate a call originate procedure.
262
DRAFT ANSI C12.19-2012
9688 FALSE No call should take place for this status bit.
9689 TRUE A call should take place if an event is detected for this status
9690 bit.
9697 WEEKLY_SCHEDULE_RCD
9698 DAYS Days of the week in which the call originate procedure should
9699 begin.
9700 START_TIME Time at which the call originate procedure should begin.
9702 ORIGINATE_SCHEDULE_RCD
9703 S_ANCHOR_DATE A separate telephone schedule anchor date used with an
9704 RDATE recurring date using the PERIOD/OFFSET
9705 mechanism. If this table contains an anchor date, it is used
9706 with RDATE. If not present, and an anchor date is provided in
9707 Table 54 (CALENDAR_TBL), then RDATE will use that
9708 anchor date. If neither anchor date is present, then the anchor
9709 date is defined by the manufacturer.
9716 ANSWER_PARAMETERS_TBL (Table 95) defines the answer configuration for receiving calls placed by a
9717 utility host.
9749 ANSWER_PARAMETERS_RCD
9750 ANSWER_BIT_RATE Bit rate at which the End Device will answer a call.
9751 0 Indicates an externally defined bit rate.
9752 1..4294967295 End Device call origination bit rate in bits per second.
9753 LOCKOUT_DELAY 0..255 Number of minutes to lockout call answering after detecting a
9754 voice call.
264
DRAFT ANSI C12.19-2012
9757 RETRY_LOCKOUT_TIME
9758 0..255 Minutes to lockout logons after security retry attempts
9759 exceeded.
9760 NBR_RINGS 0..255 The number of rings to wait before answering while inside a
9761 time window. A value of 0 means do not answer.
9762 NBR_RINGS_OUTSIDE 0..255 The number of rings to answer while outside a time window.
9763 A value of 0 means do not answer.
9768 CALL_PURPOSE_TBL (Table 96) indicates the purpose for the current telephone-call originated by the End
9769 Device.
9794 POWER_RESTORAL This phone call was triggered by the detection of a power
9795 restoration.
9797 STATUS_CALL This phone call was triggered by a change in the status record.
9798 IMMEDIATE_CALL This phone call was triggered by an immediate call procedure.
9799 MANUFACTURER_PURPOSES
9800 0..15 This field if nonzero indicates that the phone call was
9801 triggered by a manufacturer-defined purpose.
9802 CALL_PURPOSE_RCD
9803 CALL_PURPOSE See CALL_PURPOSE_BFLD.
266
DRAFT ANSI C12.19-2012
9804 CALL_TRIGGER_STATUS If the STATUS_CALL bit is TRUE, then this field indicates
9805 which status bit change(s) caused the call. The field is in the
9806 image of ED_MODE_STATUS_TBL.
9807 IDENT Identity of the call originating End Device per Table 5,
9808 DEVICE_IDENT_TBL. IDENTIFICATION, or Table 6,
9809 UTIL_INFO_TBL. DEVICE_ID, whichever is available.
9812 CALL_STATUS_TBL (Table 97) indicates the status of the most recent call to each defined phone number.
9838 CALL_TRIGGER_STATUS From Table 96. This Element indicates the reason the most
9839 recent call was attempted. The field is in the image of
9840 ED_MODE_STATUS_RCD defined in Table 3.
9841 LAST_CALL_TIME This field indicates the time and date the most recent call
9842 attempt was made.
9845 EXTENDED_CALL_STATUS Status or disposition of the most recent call to each telephone
9846 number.
9847 0 No phone call made.
9848 1 Phone call in progress.
9849 2 Dialing.
268
DRAFT ANSI C12.19-2012
9860 EXTENDED_STATUS_ARRAY Extended Status of the most recent call to each telephone
9861 phone number.
9864 ORIGINATE_STATUS_TBL (Table 98) indicates the status of the defined Originate Schedule.
9897 RECURRING_STATUS This is a SET of bits. Each bit is set when the recurring date
9898 occurs and is cleared when the call is completed.
9899 NON_RECURRING_STATUS This is a SET of bits. Each bit is set when the nonrecurring
9900 date occurs and is cleared when the call is completed.
9901 WEEKLY_STATUS This is a SET of bits. Each bit is set when the Weekly
9902 Schedule occurs and is cleared when the call is completed.
270
DRAFT ANSI C12.19-2012
9903 CALL_TRIGGER_STATUS A bit that is set to TRUE indicates that the corresponding
9904 status bit change has occurred and is configured as a call home
9905 reason. The bit is cleared when the call is complete.
9906 WINDOW_STATUS This is a SET of bits. Each bit is set when the corresponding
9907 window is open, and it is cleared when it is closed.
9908 NEXT_RECURRING_DATE Array of actual dates for the next occurrence of each recurring
9909 date.
9910 NEXT_WEEKLY_SCHEDULE Array of actual dates for the next occurrence of each weekly
9911 schedule.
9913 Reserved.
272
DRAFT ANSI C12.19-2012
9916 LOAD_CONTROL_DEC
9918 This Decade contains Tables associated with load control operation. This Decade supports the management of up to
9919 255 control points. The state of control points can be changed based on one of the following methods:
9920 Direct load control: a command is sent directly to the End Device across a communication link to modify
9921 the state of one or multiple control points.
9922 Schedule: the End Device is programmed to modify the state of one or multiple control points at specific
9923 dates, recurring dates, period of the week, or event detection.
9924 Condition: the End Device is programmed to modify the state of one or multiple control points based on
9925 the magnitudes of metered quantities, price level (active tier), time of the day, period of the year, or any
9926 other condition that can be construct by a Single Line Math expression.
9927 Prepayment: the End Device is programmed to modify the state of one or multiple control points based on
9928 a remaining credit.
9931 DIM_LOAD_CONTROL_TBL (Table 110) specifies the maximum dimensional limits for this Decade.
9967 RANDOMIZATION_SUPPORTED_FLAG
9968 FALSE End Device is not capable of automatically randomizing a load
9969 control directive.
9970 TRUE End Device is capable of automatically randomizing a load
9971 control directive.
274
DRAFT ANSI C12.19-2012
9972 MANUAL_OVERRIDE_SUPPORTED_FLAG
9973 FALSE End Device is not capable of supporting manual override of
9974 load control directives.
9975 TRUE End Device is capable of supporting manual override of load
9976 control directives.
9977 MANUAL_TURN_ON_SUPPORTED_FLAG
9978 FALSE End Device is not capable of supporting manual turn-on of its
9979 control points after each turn-on directive.
9980 TRUE End Device is capable of supporting manual turn-on of its
9981 control points after each turn-on directive.
9982 STATE_VERIFICATION_SUPPORTED_FLAG
9983 FALSE End Device is not capable of measuring the state of its control
9984 points.
9985 TRUE End Device is capable of measuring the state of its control
9986 points.
9987 ANCHOR_DATE_SUPPORTED_FLAG
9988 FALSE End Device is not capable of accepting a separate load control
9989 schedule anchor date for the Period/Delta RDATE type
9990 (recurring date).
9991 TRUE End Device is capable of accepting a separate load control
9992 schedule anchor date for the Period/Delta RDATE type
9993 (recurring date).
9994 SOURCE_CONDITION_SUPPORTED_FLAG
9995 FALSE Load Control Conditions Table (Table 115) cannot include a
9996 condition based on a source limit.
9997 TRUE Load Control Conditions Table (Table 115) can include a
9998 condition based on a source limit.
9999 TIER_CONDITION_SUPPORTED_FLAG
10000 FALSE Load Control Conditions Table (Table 115) cannot include a
10001 condition based on the active tier.
10002 TRUE Load Control Conditions Table (Table 115) can include a
10003 condition based on the active tier.
10004 TIME_CONDITION_SUPPORTED_FLAG
10005 FALSE Load Control Conditions Table (Table 115) cannot include a
10006 condition based on the actual time of day and period of the
10007 year.
10008 TRUE Load Control Conditions Table (Table 115) can include a
10009 condition based on the actual time of day and period of the
10010 year.
10011 DIM_LOAD_CONTROL_RCD
10012 DIM_LOAD_CONTROL See DIM_LOAD_CONTROL_BFLD.
10013 NBR_OF_CONTROL_POINTS
10014 0..255 Maximum number of control points supported.
10015
10016
10017 NBR_RECURRING_DATES
10018 0..255 Maximum number of recurring dates supported in the Load
10019 Control Schedule Table (Table 114).
10020 NBR_NON_RECURRING_DATES
10021 0..255 Maximum number of nonrecurring dates supported in the
10022 Load Control Schedule Table (Table 114).
10023 NBR_EVENTS 0..255 Maximum number of event schedules supported in the Load
10024 Control Schedule Table (Table 114).
10025 NBR_OF_WEEKLY_SCHEDULES
10026 0..255 Maximum number of weekly schedules supported in the Load
10027 Control Schedule Table (Table 114).
10030 NBR_OF_CONSUMPTIONS
10031 0..255 Maximum number of consumption histories supported in the
10032 Prepayment Status Table (Table 116).
10033 SLM_CONDITION_LEN 0..65535 Maximum length of Single Line Math (SLM) expressions
10034 used to set load control conditions.
10035 SLM_EQUATION_LEN 0..65535 Maximum length of the Single Line Math (SLM) expressions
10036 used to set a billing equation.
276
DRAFT ANSI C12.19-2012
10039 ACT_LOAD_CONTROL_TBL (Table 111) specifies the actual dimensional limits for this Decade.
10047 DURATION_SUPPORTED_FLAG
10048 FALSE Load control directive does not include duration.
10049 TRUE Load control directive includes duration.
10050 RANDOMIZATION_SUPPORTED_FLAG
10051 FALSE End Device does not automatically randomize load control directives.
10052 TRUE End Device automatically randomizes load control directives.
10053 MANUAL_OVERRIDE_SUPPORTED_FLAG
10054 FALSE End Device is not configured for manual override of load control
10055 directives.
10056 TRUE End Device is configured for manual override of load control
10057 directives.
10058 MANUAL_TURN_ON_SUPPORTED_FLAG
10059 FALSE End Device does not support manual turn-on of its control points after
10060 each turn-on directive.
10061 TRUE End Device supports manual turn-on of its control points after each
10062 turn-on directive.
10063 STATE_VERIFICATION_SUPPORTED_FLAG
10064 FALSE End Device does not provide the measurement of the state of its control
10065 points in the Load Control Status Table (Table 112).
10066 TRUE End Device provides the measurement of the state of its control points
10067 in the Load Control Status Table (Table 112).
10068 ANCHOR_DATE_SUPPORTED_FLAG
10069 FALSE End Device is not accepting a separate load control schedule anchor
10070 date for the Period/Delta RDATE type (recurring date).
10071 TRUE End Device is accepting a separate load control schedule anchor date
10072 for the Period/Delta RDATE type (recurring date).
10073 SOURCE_CONDITION_SUPPORTED_FLAG
10074 FALSE Load Control Conditions Table (Table 115) does not include a
10075 condition based on a source limit.
Tables / Decade 11: Load Control and Pricing Tables 277
Table 111 Actual Load Control Limiting Table
DRAFT ANSI C12.19-2012
10076 TRUE Load Control Conditions Table (Table 115) includes a condition based
10077 on a source limit.
10078 TIER_CONDITION_SUPPORTED_FLAG
10079 FALSE Load Control Conditions Table (Table 115) does not include a
10080 condition based on the active Tier.
10081 TRUE Load Control Conditions Table (Table 115) includes a condition based
10082 on the active Tier.
10083 TIME_CONDITION_SUPPORTED_FLAG
10084 FALSE Load Control Conditions Table (Table 115) does not include a
10085 condition based on the actual time of day and period of the year.
10086 TRUE Load Control Conditions Table (Table 115) includes a condition based
10087 on the actual time of day and period of the year.
10091 NBR_OF_CONTROL_POINTS
10092 0..255 Actual number of control points.
10093 NBR_RECURRING_DATES
10094 0..255 Actual number of recurring dates in the Load Control Schedule Table
10095 (Table 114).
10096 NBR_NON_RECURRING_DATES
10097 0..255 Actual number of non-recurring dates supported in the Load Control
10098 Schedule Table (Table 114).
10099 NBR_EVENTS 0..255 Actual number of event schedules supported in the Load Control
10100 Schedule Table (Table 114).
10101 NBR_OF_WEEKLY_SCHEDULES
10102 0..255 Actual number of weekly schedules supported in the Load Control
10103 Schedule Table (Table 114).
10104 NBR_OF_CONDITIONS
10105 0..255 Actual number of conditions supported in the Load Control Conditions
10106 Table (Table 115).
10107 NBR_OF_CONSUMPTIONS
10108 0..255 Actual number of consumption history records supported in the
10109 Prepayment Status Table (Table 116).
10110 SLM_CONDITION_LEN
10111 0..65535 Actual length of Single Line Math (SLM) expressions used to set load
10112 control conditions.
10113 SLM_EQUATION_LEN
10114 0..65535 Actual length of the Single Line Math (SLM) expressions used to set a
10115 billing equation.
278
DRAFT ANSI C12.19-2012
10118 LC_STATUS_TBL (Table 112) provides the actual status of each control point supported by the End Device.
10166 MANUALLY_OVERRIDDEN_FLAG
10167 FALSE This control point is not actually manually overridden.
10168 TRUE This control point is actually manually overridden.
10169 WAITING_TO_BE_TURNED_ON_FLAG
10170 FALSE This control point does not wait for a manual intervention
10171 before changing state.
10172 TRUE This control point waits for a manual intervention before
10173 changing state.
10174 LC_STATUS_ENTRY_RCD
10175 NAME Descriptive name for this control point.
10176 REQUESTED_LEVEL 0..100 The desired level of this control point according to the last
10177 load control directive.
10178 OUTPUT_LEVEL 0..100 The asserted level at the input of the load control device. The
10179 difference between OUTPUT_LEVEL and
10180 REQUESTED_LEVEL can be caused by randomization,
10181 manual override, manual turn-on, or an output control failure.
10182 SENSED_LEVEL 0..100 Actual level sensed at the output of this control device. A
10183 significant difference between this level and the
10184 OUTPUT_LEVEL indicates a physical problem with either
10185 the control point or its sensor.
10187 DURATION_COUNT_DOWN Actual countdown of the duration value received in the last
10188 control directive. When this value reaches zero (0), the control
10189 point returns to its previous state (state before receiving this
10190 load control directive).
10197 LC_STATUS_RCD
10198 STATUS_ENTRIES Array that contains the actual status of each control point.
280
DRAFT ANSI C12.19-2012
10201 LC_CONFIGURATION_TBL (Table 113) allows the configuration of the basic behavior of each control point
10202 available.
10235 MANUAL_TURN_ON_ENABLE_FLAG
10236 FALSE Turn-on directive is applied without any manual intervention.
10237 TRUE Turn-on directive is applied after a manual intervention.
10238
10239 DIRECT_CONTROL_ENABLE_FLAG
10240 FALSE Control point cannot be directly controlled by the “Direct load
10241 control procedure” (Procedure 21).
10242 TRUE Control point can be directly controlled by the “Direct load
10243 control procedure” (Procedure 21).
10244 LC_CONFIGURATION_ENTRY_RCD
10245 NAME Descriptive name for this control point.
10246 MINIMUM_ON_TIME Minimum period this control point shall be turned on before
10247 turning it off again.
10248 MINIMUM_OFF_TIME Minimum period this control point shall be turned off before
10249 turning it on again.
10251 LC_CONFIGURATION_RCD
10252 CONFIGURATION Array that contains the configuration of each control point.
282
DRAFT ANSI C12.19-2012
10255 LC_SCHEDULE_TBL (Table 114) implements the schedule-based method of load control. This method consists
10256 of programming the days of the week and time of day a load control directive is executed.
10297 DATES :
10298 ARRAY[ACT_LOAD_CONTROL_TBL.
10299 NBR_NON_RECURRING_DATES] OF
10300 LC_NON_RECURRING_DATES_RCD;
10301 EVENTS :
10302 ARRAY[ACT_LOAD_CONTROL_TBL. NBR_EVENTS] OF
10303 LC_EVENTS_RCD;
10304 WEEKLY_SCHEDULES :
10305 ARRAY[ACT_LOAD_CONTROL_TBL.
10306 NBR_OF_WEEKLY_SCHEDULES] OF LC_SCHEDULE_RCD;
10307 END;
10316 LC_NON_RECURRING_DATES_RCD
10317 LC_DATE Date at which this load control directive is triggered.
10321 LC_EVENTS_RCD
10322 ED_STD_STATUS1 Standard status events on which a state change (from FALSE
10323 to TRUE) triggers a load control directive.
10324
10325 ED_STD_STATUS2 Standard status events on which a state change (from FALSE
10326 to TRUE) triggers a load control directive.
10331 DAYS_BFLD
10332 SUNDAY_FLAG FALSE Not triggered on Sunday.
10333 TRUE Triggered on Sunday.
284
DRAFT ANSI C12.19-2012
10346 LC_SCHEDULE_RCD
10347 DAYS Days on which this load control directive is triggered.
10351 LC_SCHEDULES_RCD
10352 ANCHOR_DATE A separate load control schedule anchor date used with an
10353 RDATE recurring date using the PERIOD/OFFSET
10354 mechanism. If this table contains an anchor date, it is used
10355 with RDATE. If not present, and an anchor date is provided in
10356 Table 54 (CALENDAR_TBL), then RDATE will use that
10357 anchor date. If neither anchor date is present, then the anchor
10358 date is defined by the manufacturer.
10359 RDATES Array of recurring dates that trigger load control directives.
10363 WEEKLY_SCHEDULES Array of weekly schedules that trigger load control directives.
10366 LC_CONDITIONS_TBL (Table 115) implements the condition-based method of load control. This method
10367 consists of programming conditions directly in the End Device that trigger control point directives. Conditions can
10368 be based on source limit, the active Tier, the time of the day, the period of the year, or any other condition that can
10369 be construct using a Single Line Math expression.
10439 SOURCE_CONDITION_RCD
10440 SOURCE Data source selector of the value to be compared.
10445 TIER_CONDITION_RCD
10446 OPERATOR See OPERATOR_ENUM.
10450 DATE_CONDITION_BFLD
10451 START_MONTH See CONDITION_MONTH_ENUM.
10457 TIME_CONDITION_RCD
10458 ALLOWED_DAYS Defines the days of the week where load control is allowed.
10459 START_TIME Defines the start time of the day where load control is allowed.
10460 START_TIME is inclusive. For example, START_TIME =
10461 10:00:00 means the load control begins at 10:00:00.
10462 END_TIME Defines the end time of the day where load control is allowed.
10463 END_TIME is exclusive. For example, END_TIME =
10464 12:00:00 means the load control is no longer in operation at
10465 12:00:00.
10466 LC_CONDITION_RCD All conditions defined in this structure must be TRUE or set to
10467 ignore before applying the associated directive.
10469 TIER_CONDITION Condition based on the active Tier that represents the actual
10470 pricing level.
10472 TIME_CONDITION Condition based on the time of day and day of week.
10479 LC_CONDITIONS_RCD
10480 CONDITIONS Array that contains load control conditions. Each entry of this
10481 Array works independently. If multiple CONDITIONS
10482 Elements apply to the same control point, the Element having
10483 the lower index shall apply.
288
DRAFT ANSI C12.19-2012
10486 PREPAYMENT_STATUS_TBL (Table 116) provides the actual prepayment status. This status includes the
10487 remaining credit available for this End Device and some consumption history to guide the customer in his
10488 consumption and transaction habits.
10510 CONSUMPTION_LCU Consumption measured for this period in local currency units.
10511 PREPAYMENT_STATUS_RCD
10512 REMAINING_CREDIT Actual remaining credit available. This value can be negative
10513 if OVERDRAFT_LIMIT defined in
10514 PREPAYMENT_CONTROL_TBL (Table 117) is different
10515 from zero (0).
10516 ACTUAL_CONSUMPTION Actual rate of consumption in local currency units per hour.
10517 AVERAGE_PER_DAY Average consumption per day based on the last month of
10518 consumption in local currency units per day.
10522 PREPAYMENT_CONTROL_TBL (Table 117) implements the prepayment method of load control. This Table is
10523 used to set credit limits for pre-warning, warning, and turn-off directive.
10547 OVERDRAFT_LIMIT Negative value tolerated before applying the load control
10548 directive.
290
DRAFT ANSI C12.19-2012
10554 BILLING_CONTROL_TBL (Table 118) includes all parameters necessary to directly bill the customer. This
10555 includes taxes, daily fix charges, and rate of measured quantities based on the current season, tier, and type of
10556 quantity. In addition, a Single Line Math expression can be added to express a more complex billing expression.
10597 END;
10598 END;
10604 OCCURRENCE_PRICING_RCD
10605 OCCURRENCE_PRICING Pricing of each occurrence supported.
10606 TIER_PRICING_RCD
10607 SUMMATIONS_PRICING Pricing of each summation supported.
10609 SEASON_PRICING_RCD
10610 TIER_PRICING Structure containing the pricing information for commodities
10611 measured based on the actual tier and type of measurement.
10612 BILLING_CONTROL_RCD
10613 DAILY_FIXED_CHARGE Fixed charge per day for service and equipment rental in local
10614 currency units per day.
292
DRAFT ANSI C12.19-2012
10636
10639 EXT_UDT_DEC
10641 The Extended User-defined Tables enable the C12.19 application to make selections from other tables that are
10642 present or implied to be present in an End Device and redirect the resulting values into a user-defined table. The
10643 values gathered may then be retrieved from a desired Extended User-defined Table as if the standard provided an
10644 explicit Table and descriptive syntax to express the resulting Table structure.
10645 The following general features are available to the application through the use of the Extended User-defined Tables:
10646 Elements, Sub-elements, Final Elements, and subsets of Final Elements may be referenced for use by
10647 an Extended User-Defined Table (EUDT).
10648 The Element referenced can be directed into any one of 2040 Extended User-defined Tables.
10649 The Elements are packed in accordance with the base-type packing rules.
10650 It is possible to define pseudo BIT FIELD records for selecting bit field ranges from other tables and
10651 mapping them into BIT FIELD records within the Extended User-defined Tables. Two mapping
10652 methods are supplied for bit fields:
10653 1) Index method, which maps Elements, Sub-elements, Final Elements, and subsets of Final
10654 Elements of a formal Table.
10655 2) Offset method, which maps any bit range of a formal Table.
10656 It is important to note that the Extended User-defined Tables are presumed not to be real tables inside the End
10657 Device. Logically they may be thought of as if they are:
294
DRAFT ANSI C12.19-2012
10660 9.15.1 Table 140 Extended User-defined Tables Function Limiting Table
10662 This table contains the maximum limits for values and control parameters for the Extended User-defined Tables.
10692 EUDT_LIMITS_RCD
10693 EUDT_CTRL See EUDT_BFLD.
10698 NBR_INSTANCES 0..65535 Maximum number of End Device Table instances (virtual
10699 devices) available for selections.
10704 NBR_LABEL_CHARS 0..255 Maximum supported number of characters per Extended User-
10705 defined Table-element label.
296
DRAFT ANSI C12.19-2012
10706 9.15.2 Table 141 Extended User-defined Tables Actual Limits Table
10708 This table contains the actual limits for values and control parameters for the Extended User-defined Tables.
10715 DATA_ACCESS_METHOD Designates the method used for selecting table entries for
10716 placement in an Extended User-defined Table.
10717 0 Complete tables are mapped into user tables. Partial tables
10718 cannot be mapped.
10719 1 Octet-offset/Octet-count and bit-offset/bit-count access
10720 method is used.
10721 2 Index/element-count access method is used.
10722 3 Reserved.
10731 NBR_INSTANCES 0..65535 Actual number of End Device Table instances (virtual
10732 devices) available for selections.
10733 NBR_SELECTIONS 0..65535 Actual number of selections per Extended User-defined Table.
10740 This table contains the Extended User-defined selections for constructing the Extended User-defined Tables records.
10741 These selections enable the C12.19 Device application to direct the placement of Formal Table, Elements, Final
10742 Elements, Sub-elements, and arbitrary bit field subsets of any Formal Element into an Extended User-defined Table.
298
DRAFT ANSI C12.19-2012
10834 TRUE Source padding functions are enabled. Source padding, sign
10835 extension, and limits will be set as per FORMAL_PADDING
10836 and FORMAL_LIMITED_FLAG.
10837 FORMAL_PADDING When the number of bits in the destination element is larger
10838 than the source element, then sign extension or padding may
10839 be required. FORMAL_UNIT_SIZE dictates the sign
10840 extension algorithm.
10841 0 Sign extension is required.
10842 The most significant bits are signed extended according to the
10843 Formal Element type indicated by FORMAL_UNIT_SIZE.
10844 1 Pad with fill Octets.
10845 Copy Octets starting at source bit to target with zero fill
10846 padding.
10847 2 Lead with fill Octets.
10848 Copy Octets starting at source bit to target with zero fill
10849 leading.
10850 3 Reserved.
10851 FORMAL_LIMITED_FLAG Controls the roll-over behavior of a numeric field that cannot
10852 be represented in a target space that has lesser resolution than
10853 that of the source.
10854 FALSE Do not limit value.
10855 On overflow the numeric result will not be limited (truncated
10856 or rolled over).
10857 TRUE Limit value.
10858 On overflow the numeric result will be the smallest negative
10859 or the largest positive representation of the overflowing
10860 numeric field. Example: if a 16-bit signed integer has the
10861 value -1000, then when limited to 8 bit, it will be set to set to -
10862 128.
10878 EUDT_PRODUCTION_CTRL Controls the bit-packing of BIT FIELDs of a target EUDT bit
10879 field element. First members of a BIT FIELD shall begin on
10880 an Octet boundary with zero Octet padding. Bit stuffing shall
10881 begin with bit 0 of the indicated data type and progress toward
10882 the highest bit position available.
10883 0 Start of a UINT8 bit field or collection of UINT8.
300
DRAFT ANSI C12.19-2012
10899 EUDT_ELEMENT_SIZE 0..65535 Size of one EUDT element in bits. When the source element
10900 size is smaller than the target element size, then only fitting
10901 bits will be transferred, and may be padded, sign extended, or
10902 truncated. When the source element size is greater than the
10903 target element size, then the target element may be truncated
10904 or be limited. See FORMAL_PAD_ENABLE_FLAG.
10909 EUDT_ELEMENT_NAME The optionally assigned label for the EUDT element used in
10910 the production of EDL schemas. If the size of this element is
10911 zero or it contains only spaces, then the element name is not
10912 assigned. If the element name contains a period, then the label
10913 to the left of the period represents the name of the container
10914 elements (as may be needed when this element is the first
10915 member of a bit-field) and the label on the right-hand side of
10916 the period is the bit-field member name.
10917 FORMAL_TABLE_ID The formal table identifier. This shall not be an EUDT or a
10918 UDT data table.
10919 FORMAL_INSTANCE_NBR
10920 0..65535 The End Device Table set instance number used for selecting
10921 the formal table. The instance number refers to a logical table
10922 set number that exists inside the same physical device.
10924 FORMAL_BYTE_OFFSET
10925 0..16777215 Offset in Octets to the beginning of a formal element relative
10926 to the beginning of the Table that contains that Element.
10927 FORMAL_OFFSET_NEXT
10928 0..16777215 Offset in Octets to the next element or group of elements
10929 relative to the beginning of current selection. The initial
10930 selection is defined by FORMAL_BYTE_OFFSET.
Tables / Decade 14: Extended User-defined Tables 301
Table 142 Extended User-defined Selections Table
DRAFT ANSI C12.19-2012
10945 FORMAL_ELEMENT_COUNT
10946 0..65535 The number of Formal Elements selected. This value shall be
10947 set to zero for unused selections.
10972 FORMAL_BIT_OFFSET 0..255 Offset in bits to the beginning of a bit sequence relative to the
10973 beginning of the selected element. This offset is independent
10974 of the GEN_CONFIG_TBL.DATA_ORDER, since bit
10975 offset zero (0) points to bit position zero (the least significant
10976 bit) of the selected element. The compliant application shall
10977 logically expand the Final Element referred to by the
10978 FORMAL_BYTE_OFFSET before applying the
10979 FORMAL_BIT_OFFSET.
10980 This value shall be ignored (i.e., no access to bit fields of sub-
10981 final elements) when
302
DRAFT ANSI C12.19-2012
10984 FORMAL_BIT_COUNT 0..65535 The number of bits selected. This value shall be set to zero for
10985 unused selections.
10986 Assert: ERROR on
10987 (ACT_EUDT_TBL. DATA_ACCESS_METHOD == 2 &&
10988 FORMAL_BIT_COUNT > 0 &&
10989 FORMAL_ELEMENT_COUNT > 1)
10990 due to “Invalid use of FORMAL_ELEMENT_COUNT != 1
10991 and FORMAL_BIT_COUNT > 0".
10992 FORMAL_REPEAT_COUNT
10993 0..65535 The number of times to repeat the selection made in this entry.
10994 This provides a capability for the selection of elements from
10995 Formal ARRAYs for delivery by EUDTs. The value 0 means
10996 that there is no repeat; only one Element shall be selected. The
10997 value 1 means that there is one repeat; therefore, two Elements
10998 shall be selected.
10999 TABLE_SELECTIONS_RCD
11000 EUDT_ID The Extended User-defined Table that is a collection of
11001 Elements from other tables from within the End-Device that
11002 have been selected for transmission via the EUDT_ID
11003 Extended User-defined Table.
11025 EUDT_SELECTIONS_RCD
11026 TABLE_SELECTIONS An array of Table selections. See
11027 TABLE_SELECTIONS_RCD.
304
DRAFT ANSI C12.19-2012
11030 This table provides a placeholder for placing various values that may be selected as Elements by Table 142,
11031 EUDT_SELECTIONS_TBL. A typical use for this Table is to fill elements with bit patterns or numeric values that
11032 are nonchanging and cannot be constructed from a reference to any standard- or manufacturer-defined Table Final
11033 Element.
11050 QUALITY_SERVICE_DEC
11052 This Decade provides the Tables required to capture information that is not necessarily used for the production
11053 commodity consumption reports. The information recorded pertains to the evaluation of the sustained quality
11054 commodity delivered. In the case of electrical services, these Tables are the placeholders of Power Quality
11055 monitoring controls and data values, such as identified by IEEE Std 1159-1995 and IEEE Std 519-1993. In the
11056 context of water and gas industries, these Tables are the placeholders for reports on water and gas commodity
11057 quality (such as purity) and sustained delivery of the commodities. Time-domain and frequency-domain input
11058 sample data (waveforms) can be captured periodically and as a result of a Quality-of-service event trigger. When the
11059 commodities’ properties or their sustained delivery fall below certain acceptable limits (as indicated by a service
11060 contract or regulation), then it leads to a Quality-of-service condition.
11061 For example, in the electrical industry context, it is desirable to record a voltage sag or short duration voltage
11062 interruption. The recording of these Events are known to the industry as power quality Events. However, the
11063 continual recurrence of voltage sag or repeated short duration power interruptions elevates Power Quality Events to
11064 Quality-of-service Events. This Decade provides the necessary framework to accommodate both.
11065 NOTE—In this Decade, the acronym “FD” is an abbreviation for the term “Frequency Domain”. The acronym “TD” is an
11066 abbreviation for the term “Time Domain”.
306
DRAFT ANSI C12.19-2012
11118 FD_SAMPLE_FORMAT_RCD A generalized data type used to express the format to be used
11119 for frequency-domain waveform transformed data
11120 representation in Quality-of-service Tables.
11121 Redefines: LP_DATA_SET1_TBL.INT_FMT1_RCD.
11124 WAVEFORM_LIST_STATUS_BFLD The generic waveform capture list management bit field.
11125 Redefines: LP_STATUS_TBL.LP_SET_STATUS_BFLD.
11139 BLOCK_INHIBIT_OVERFLOW_FLAG
11140 FALSE End Device is not inhibiting waveform capture once an
11141 overflow occurs.
11142 TRUE End Device inhibits waveform capture once an overflow
11143 occurs.
11156 WAVEFORM_LIST_STATUS_RCD The generic waveform capture list status management packed
11157 record.
11158 Redefines: LP_STATUS_TBL.LP_SET_STATUS_RCD.
11159 Accessibility=“READONLY”.
11160 Atomic=”TRUE”.
11162 NBR_VALID_ENTRIES 0..65535 Number of valid waveform data blocks in the associated table.
11163 The range is zero (0), to mean no data blocks in the table, to
11164 the actual dimension of the number of waveform data blocks.
11165 The block is considered valid when at least one sample is
11166 written.
11167 LAST_ENTRY_ELEMENT 0..65535 The array element of the newest valid data block in the
11168 waveform data array. This field is valid only if
11169 NBR_VALID_ENTRIES is greater than zero.(0).
11172 NBR_UNREAD_ENTRIES 0..65535 The number of data blocks that have not been read. This
11173 number is only updated through a procedure.
11174 NBR_VALID_INT 0..65535 Number of valid samples stored in the most current block
11175 array. The range is zero (0), to mean no data in the array, to
11176 the actual dimension of the number of possible entries per
11177 block.
308
DRAFT ANSI C12.19-2012
11180 This Table defines the maximum dimensions and limits for the Quality-of-service Decade.
11238 INHIBIT_OVF_QS_LOG_FLAG
11239 FALSE End Device is not capable of inhibiting block overflow on
11240 QUALITY_LOG_TBL.
11241 TRUE End Device is capable of inhibiting block overflow on
11242 QUALITY_LOG_TBL.
11252 INHIBIT_OVF_TD_ASYNC_FLAG
11253 FALSE End Device is not capable of inhibiting block overflow on
11254 TD_ASYNC_TBL.
11255 TRUE End Device is capable of inhibiting block overflow on
11256 TD_ASYNC_TBL.
11267 TD_SCALAR_DIVISOR_FLAG
11268 FALSE End Device is not capable of having scalars and divisors
11269 associated with TD_ASYNC_TBL waveform data.
11270 TRUE End Device is capable of having scalars and divisors
11271 associated with TD_ASYNC_TBL waveform data.
310
DRAFT ANSI C12.19-2012
11272 INHIBIT_OVF_FD_ASYNC_FLAG
11273 FALSE End Device is not capable of inhibiting block overflow on
11274 FD_ASYNC_TBL.
11275 TRUE End Device is capable of inhibiting block overflow on
11276 FD_ASYNC_TBL.
11287 SCALAR_DIVISOR_FD_ASYNC_FLAG
11288 FALSE End Device is not capable of having scalars and divisors
11289 associated with FD_ASYNC_TBL waveform data.
11290 TRUE End Device is capable of having scalars and divisors
11291 associated with FD_ASYNC_TBL waveform data.
11292 INHIBIT_OVF_TD_PERIODIC_FLAG
11293 FALSE End Device is not capable of inhibiting block overflow on
11294 TIME_DOMAIN_TBL.
11295 TRUE End Device is capable of inhibiting block overflow on
11296 TIME_DOMAIN_TBL.
11307 SCALAR_DIVISOR_TD_PERIODIC_FLAG
11308 FALSE End Device is not capable of having scalars and divisors
11309 associated with TIME_DOMAIN_TBL waveform data.
11310 TRUE End Device is capable of having scalars and divisors
11311 associated with TIME_DOMAIN_TBL waveform data.
11312 INHIBIT_OVF_FD_PERIODIC_FLAG
11313 FALSE End Device is not capable of inhibiting block overflow on
11314 FREQUENCY_DOMAIN_TBL.
11315 TRUE End Device is capable of inhibiting block overflow on
11316 FREQUENCY_DOMAIN_TBL.
11327 SCALAR_DIVISOR_FD_PERIODIC_FLAG
11328 FALSE End Device is not capable of having scalars and divisors
11329 associated with FREQUENCY_DOMAIN_TBL waveform
11330 data.
11331 TRUE End Device is capable of having scalars and divisors
11332 associated with FREQUENCY_DOMAIN_TBL waveform
11333 data.
11334 REPEAT_TD_FLAG An indication if the End Device can perform repeated and
11335 counted time-domain waveform capture following a Quality-
11336 of-service event.
11337 FALSE End Device is not capable of repeated counted waveform
11338 captures.
11339 TRUE End Device is capable of repeated counted waveform captures.
11340 REPEAT_FD_FLAG An indication if the End Device can perform counted repeated
11341 waveform transform (frequency domain) captures following a
11342 Quality-of-service event.
11343 FALSE End Device is not capable of repeated counted waveform
11344 transform (frequency domain) captures.
11345 TRUE End Device is capable of repeated counted waveform
11346 transform (frequency domain) captures.
11355 FD_PHASOR_FLAG A flag that indicates whether the End Device is capable of
11356 delivering frequency-domain spectral analysis encoded as
11357 spectral component phase angle and related magnitude pairs as
11358 elements.
11359 FALSE End Device is not capable of reporting spectral components as
11360 phase angles and magnitude.
11361 TRUE End Device is capable of reporting spectral components as
11362 phase angles and magnitude.
312
DRAFT ANSI C12.19-2012
11398 WAVEFORM_FORMATS_BFLD This set of Booleans specifies the format(s) acceptable for use
11399 in waveform capture tables.
11400 Redefines: DIM_LP_TBL.LP_FMATS_BFLD.
11401 INV_UINT8_FLAG FALSE UINT8 format for waveform capture is not supported by this
11402 End Device.
11403 TRUE UINT8 format for waveform capture is supported by this End
11404 Device.
11405 INV_UINT16_FLAG FALSE UINT16 format for waveform capture is not supported by this
11406 End Device.
11407 TRUE UINT16 format for waveform capture is supported by this
11408 End Device.
11409 INV_UINT32_FLAG FALSE UINT32 format for waveform capture is not supported by this
11410 End Device.
11411 TRUE UINT32 format for waveform capture is supported by this
11412 End Device.
11413 INV_INT8_FLAG FALSE INT8 format for waveform capture is not supported by this
11414 End Device.
Tables / Decade 15: Quality-of-service 313
Table 150 Quality-of-service Dimension Limits Table
DRAFT ANSI C12.19-2012
11415 TRUE INT8 format for waveform capture is supported by this End
11416 Device.
11417 INV_INT16_FLAG FALSE INT16 format for waveform capture is not supported by this
11418 End Device.
11419 TRUE INT16 format for waveform capture is supported by this End
11420 Device.
11421 INV_INT32_FLAG FALSE INT32 format for waveform capture is not supported by this
11422 End Device.
11423 TRUE INT32 format for waveform capture is supported by this End
11424 Device.
11425 INV_NI_FMAT1_FLAG FALSE NI_FMAT1 format for waveform capture is not supported by
11426 this End Device.
11427 TRUE NI_FMAT1 format for waveform capture is supported by this
11428 End Device.
11429 INV_NI_FMAT2_FLAG FALSE NI_FMAT2 format for waveform capture is not supported by
11430 this End Device.
11431 TRUE NI_FMAT2 format for waveform capture is supported by this
11432 End Device.
11433 QS_LIMITS_RCD This packed record defines the End Device maximum Quality-
11434 of-service operational limits.
11436 NBR_OF_EVENT_IDS 0..65535 Maximum total number of unique event identifier descriptors
11437 supported by this End Device.
11438 NBR_OF_EVENTS 0..65535 Maximum number of Quality-of-service events that the End
11439 Device can record internally.
11440 NBR_OF_INCIDENTS 0..65535 Maximum number of service quality incident reports recorded
11441 in QUALITY_INCIDENTS_TBL.
11442 NBR_OF_COINCIDENT_VALUES
11443 0..65535 Maximum number of coincidental data sources that can be
11444 bound to any one Quality-of-service event recorded.
11446 TD_SAMPLING_RATE Largest possible sampling rate, in hertz (Hz), supported by this
11447 End Device when capturing time-domain waveform data.
11448 NBR_OF_TD_SAMPLES 0..4294967295 Largest possible number of data samples that can be collected
11449 in one waveform capture by this End Device when capturing
11450 time-domain waveform data.
11451 NBR_OF_TD_BLOCKS 0..65535 Maximum number of time-domain waveform blocks that the
11452 End Device can capture in TD_ASYNC_TBL.
314
DRAFT ANSI C12.19-2012
11460 NBR_OF_TD_CHANNELS_PER_BLOCK
11461 0..65535 Maximum number of time-domain waveform channels
11462 (independent sources) that the End Device can capture per
11463 Quality-of-service data block. This value shall be ignored if
11464 NBR_OF_TD_CHANNELS == 0. Otherwise 0 <
11465 NBR_OF_TD_CHANNELS_PER_BLOCK <=
11466 NBR_OF_TD_CHANNELS.
11467 NBR_OF_TD_SAMPLES_PER_BLOCK
11468 0..65535 Maximum number of time-domain waveform samples that the
11469 End Device can capture per Quality-of-service data block per
11470 channel.
11471 NBR_OF_TD_PREFETCH_SAMPLES
11472 0..4294967295 Maximum number of samples that the End Device can capture
11473 continuously just prior to the asynchronous event that
11474 triggered a waveform capture.
11475 FD_SAMPLING_RATE Largest possible sampling rate, in hertz (Hz), supported by this
11476 End Device when transforming time-domain waveforms to
11477 frequency-domain data.
11478 NBR_OF_FD_SAMPLES 0..4294967295 Largest possible number of data samples that can be collected
11479 in one waveform capture by this End Device when capturing
11480 frequency-domain waveform data.
11481 NBR_OF_SPECTRAL_COMPONENTS
11482 0..65535 Largest possible number spectral components that can be
11483 collected in one spectral capture by this End Device when
11484 capturing frequency-domain data.
11485 NBR_OF_FD_BLOCKS 0..65535 Maximum number of frequency-domain blocks that the End
11486 Device can capture in FD_ASYNC_TBL.
11494
11495 NBR_OF_FD_CHANNELS_PER_BLOCK
11502 NBR_OF_FD_SPECTRA_PER_BLOCK
11503 0..65535 Maximum number of frequency-domain spectral components
11504 that the End Device reports per Quality-of-service data block
11505 per channel. This value shall be equal to the number of signal
11506 spectral components desired + 1. Although this value is
11507 numerically limited by the defining unsigned integer type,
11508 practically, the maximum spectral component possible shall be
11509 limited by the Nyquist sampling frequency defined by
11510 (sampling frequency / 2) in hertz (Hz). This will avoid the
11511 appearance of false aliases in the discrete Fourier transform of
11512 the waveform.
11513 NBR_OF_FD_PREFETCH_SAMPLES
11514 0..4294967295 Maximum number of samples that the End Device can capture
11515 continuously just prior to the asynchronous event that
11516 triggered a frequency-domain spectral capture.
11517 LABEL_LENGTH 0..255 The maximum number of characters that can be used to label
11518 (name) a single Quality-of-service event generation rule.
316
DRAFT ANSI C12.19-2012
11521 This Table defines the actual dimensions and limits for the Quality-of-service Decade.
11531 INHIBIT_OVF_QS_LOG_FLAG
11532 FALSE End Device is not inhibiting block overflow on
11533 QUALITY_LOG_TBL.
11534 TRUE End Device is inhibiting block overflow on
11535 QUALITY_LOG_TBL.
11545 INHIBIT_OVF_TD_ASYNC_FLAG
11546 FALSE End Device is not inhibiting block overflow on
11547 TD_ASYNC_TBL.
11548 TRUE End Device is inhibiting block overflow on
11549 TD_ASYNC_TBL.
11559 TD_SCALAR_DIVISOR_FLAG
Tables / Decade 15: Quality-of-service 317
Table 151 Actual Quality-of-Service Limiting Table
DRAFT ANSI C12.19-2012
11560 FALSE End Device does not have scalars and divisors associated with
11561 TD_ASYNC_TBL waveform data.
11562 TRUE End Device has scalars and divisors associated with
11563 TD_ASYNC_TBL waveform data.
11564 INHIBIT_OVF_FD_ASYNC_FLAG
11565 FALSE End Device is not inhibiting block overflow on
11566 FD_ASYNC_TBL.
11567 TRUE End Device is inhibiting block overflow on
11568 FD_ASYNC_TBL.
11578 SCALAR_DIVISOR_FD_ASYNC_FLAG
11579 FALSE End Device does not have scalars and divisors associated with
11580 FD_ASYNC_TBL waveform data.
11581 TRUE End Device has scalars and divisors associated with
11582 FD_ASYNC_TBL waveform data.
11583 INHIBIT_OVF_TD_PERIODIC_FLAG
11584 FALSE End Device is not inhibiting block overflow on
11585 TIME_DOMAIN_TBL.
11586 TRUE End Device is inhibiting block overflow on
11587 TIME_DOMAIN_TBL.
11597 SCALAR_DIVISOR_TD_PERIODIC_FLAG
11598 FALSE End Device does not have scalars and divisors associated with
11599 TIME_DOMAIN_TBL waveform data.
11600 TRUE End Device has scalars and divisors associated with
11601 TIME_DOMAIN_TBL waveform data.
11602 INHIBIT_OVF_FD_PERIODIC_FLAG
11603 FALSE End Device is not inhibiting block overflow on
11604 FREQUENCY_DOMAIN_TBL.
11605 TRUE End Device is inhibiting block overflow on
11606 FREQUENCY_DOMAIN_TBL.
318
DRAFT ANSI C12.19-2012
11617 SCALAR_DIVISOR_FD_PERIODIC_FLAG
11618 FALSE End Device does not have scalars and divisors associated with
11619 FREQUENCY_DOMAIN_TBL waveform data.
11620 TRUE End Device has scalars and divisors associated with
11621 FREQUENCY_DOMAIN_TBL waveform data.
11686 WAVEFORM_FORMATS_BFLD This set of Booleans specifies the format(s) acceptable for use
11687 in waveform capture tables.
11688 Redefines: DIM_QUALITY_OF_SERVICE_TBL.
11689 WAVEFORM_FORMATS_BFLD.
11690 INV_UINT8_FLAG FALSE UINT8 format for waveform capture is not used by this End
11691 Device.
11692 TRUE UINT8 format for waveform capture is used by this End
11693 Device.
11694 INV_UINT16_FLAG FALSE UINT16 format for waveform capture is not used by this End
11695 Device.
11696 TRUE UINT16 format for waveform capture is used by this End
11697 Device.
11698 INV_UINT32_FLAG FALSE UINT32 format for waveform capture is not used by this End
11699 Device.
11700 TRUE UINT32 format for waveform capture is used by this End
11701 Device.
320
DRAFT ANSI C12.19-2012
11702 INV_INT8_FLAG FALSE INT8 format for waveform capture is not used by this End
11703 Device.
11704 TRUE INT8 format for waveform capture is used by this End
11705 Device.
11706 INV_INT16_FLAG FALSE INT16 format for waveform capture is not used by this End
11707 Device.
11708 TRUE INT16 format for waveform capture is used by this End
11709 Device.
11710 INV_INT32_FLAG FALSE INT32 format for waveform capture is not used by this End
11711 Device.
11712 TRUE INT32 format for waveform capture is used by this End
11713 Device.
11714 INV_NI_FMAT1_FLAG FALSE NI_FMAT1 format for waveform capture is not used by this
11715 End Device.
11716 TRUE NI_FMAT1 format for waveform capture is used by this End
11717 Device.
11718 INV_NI_FMAT2_FLAG FALSE NI_FMAT2 format for waveform capture is not used by this
11719 End Device.
11720 TRUE NI_FMAT2 format for waveform capture is used by this End
11721 Device.
11722 QS_LIMITS_RCD This packed record defines the End Device actual maximum
11723 Quality-of-service operational limits.
11724 Redefines: DIM_QUALITY_OF_SERVICE_TBL.
11725 QS_LIMITS_RCD.
11727 NBR_OF_EVENT_IDS 0..65535 Actual total number of unique event identifier descriptors
11728 supported by this End Device.
11729 NBR_OF_EVENTS 0..65535 Actual number of Quality-of-service events that the End
11730 Device can record internally.
11733 NBR_OF_COINCIDENT_VALUES
11734 0..65535 Actual number of coincidental data sources that are bound to
11735 any one Quality-of-service event recorded.
11737 TD_SAMPLING_RATE Largest possible sampling rate, in hertz (Hz), used by this End
11738 Device when capturing time-domain waveform data.
11739 NBR_OF_TD_SAMPLES 0..4294967295 Actual largest possible number of data samples that shall be
11740 collected in one waveform capture by this End Device when
11741 capturing time-domain waveform data.
11742 NBR_OF_TD_BLOCKS 0..65535 Actual number of time-domain waveform blocks that the End
11743 Device can capture in TD_ASYNC_TBL.
11750 NBR_OF_TD_CHANNELS_PER_BLOCK
11751 0..65535 Actual number of time-domain waveform channels
11752 (independent sources) that the End Device captures per
11753 Quality-of-service data block. This value shall be ignored if
11754 NBR_OF_TD_CHANNELS == 0. Otherwise 0 <
11755 NBR_OF_TD_CHANNELS_PER_BLOCK <=
11756 NBR_OF_TD_CHANNELS.
11757 NBR_OF_TD_SAMPLES_PER_BLOCK
11758 0..65535 Actual number of time-domain waveform samples that the
11759 End Device can capture per Quality-of-service data block per
11760 channel.
11761 NBR_OF_TD_PREFETCH_SAMPLES
11762 0..4294967295 Actual maximum number of samples that the End Device can
11763 capture continuously just prior to the asynchronous event that
11764 triggered a waveform capture.
11765 FD_SAMPLING_RATE Largest possible sampling rate, in hertz (Hz), used by this End
11766 Device when transforming time-domain waveforms to
11767 frequency-domain data.
11768 NBR_OF_FD_SAMPLES 0..4294967295 Actual largest number of data samples that shall be collected
11769 in one waveform capture by this End Device when capturing
11770 frequency-domain waveform data.
11771 NBR_OF_SPECTRAL_COMPONENTS
11772 0..65535 Actual largest possible number of spectral components that
11773 shall be collected in one spectral capture by this End Device
11774 when capturing frequency-domain data.
11775 NBR_OF_FD_BLOCKS 0..65535 Actual number of frequency-domain waveform blocks that the
11776 End Device can capture in FD_ASYNC_TBL.
11784 NBR_OF_FD_CHANNELS_PER_BLOCK
322
DRAFT ANSI C12.19-2012
11791 NBR_OF_FD_SPECTRA_PER_BLOCK
11792 0..65535 Actual number of frequency-domain spectral components that
11793 the End Device reports per Quality-of-service data block per
11794 channel. This value shall be equal to the number of signal
11795 spectral components desired + 1. Although this value is
11796 numerically limited by the defining unsigned integer type,
11797 practically, the maximum spectral component possible shall be
11798 limited by the Nyquist frequency defined by (sampling
11799 frequency / 2) in hertz (Hz). This will avoid the appearance of
11800 false aliases in the discrete Fourier transform of the waveform.
11801 NBR_OF_FD_PREFETCH_SAMPLES
11802 0..4294967295 Actual maximum number of samples that the End Device can
11803 capture continuously just prior to the asynchronous event that
11804 triggered a frequency-domain capture.
11805 LABEL_LENGTH 0..255 The actual number of characters that are used to label (name) a
11806 single Quality-of-service event generation rule.
11809 This Table provides selections of Quality-of-service sources and related thresholds for the reporting of Quality-of-
11810 service events and capture of waveforms.
324
DRAFT ANSI C12.19-2012
12043 VALUE_REPORT_CTRL Defines the method used to capture the actual measurement
12044 value that is associated with the Quality-of-service incident.
12045 0 Worst (minimum or maximum as per measurement type)
12046 value sensed for this incident.
12047 1 Average value calculated during this incident.
12048 2 Average of the absolute values calculated during this incident.
12049 3 Average of the RMS values calculated during this incident.
12050 4 Maximum value sensed for this incident.
12051 5 Minimum value sensed for this incident.
12052 6 Last value sensed as the incident was reported.
12053 7..15 Reserved.
328
DRAFT ANSI C12.19-2012
12080 SOURCE_ID Data source selector for the measurement associated with this
12081 Quality-of-service time-domain waveform-capture or
12082 waveform-transform.
12083 SCALAR 0..65535 Scalar that has been applied to each sample value. The sample
12084 value needs to be divided by this SCALAR to recover the
12085 original value. When SCALAR is absent, the application shall
12086 assume the value 1.0. Additional constants and offsets may be
12087 applied subsequently according to the definitions and values
12088 provided in the relevant data source table.
12089 DIVISOR 0..65535 Divisor that has been applied to each sample value. The
12090 sample value needs to be multiplied by this DIVISOR to
12091 recover the original value. When DIVISOR is absent, the
12092 application shall assume the value 1.0. Additional constants
12093 and offsets may be applied subsequently according to the
12094 definitions and values provided in the relevant data source
12095 table.
12099 TIME_CAPTURE_TYPE This type identifies the nature of the time-domain capture
12100 trace.
12101 0 POINT_ON_WAVE_CNST—digitized waveform data
12102 points.
12103 1 RMS_CNST—digitized output of RMS calculation of
12104 waveform using a one (1) cycle integration period.
12105 2..255 Reserved.
12106
12113 NBR_OF_SAMPLES 0..4294967295 Total number of samples to capture at the indicated sampling
12114 rate. This value is common to all channels associated with this
12115 control record.
12116 Note that this value shall be less than or equal to
12117 ACT_QUALITY_OF_SERVICE_TBL.
12118 NBR_OF_TD_SAMPLES.
12119 NBR_OF_PREFETCH_SAMPLES
12120 0..4294967295 Number of samples that the End Device shall capture
12121 continuously just prior to the asynchronous event that
12122 triggered a waveform capture.
12123 Note that this value shall be less than or equal to
12124 ACT_QUALITY_OF_SERVICE_TBL.
12125 NBR_OF_TD_PREFETCH_SAMPLES.
12126 NBR_OF_CHANNELS 0..255 Number of channels that will be captured as a result of the
12127 event controlled by this entry.
12128 Note that this value shall be less than or equal to
12129 ACT_QUALITY_OF_SERVICE_TBL.
12130 NBR_OF_TD_CHANNELS.
12133 NBR_OF_WAVEFORM_REPEATS
12134 0..65535 Number of additional consecutive waveforms that shall be
12135 captured as a result of this Quality-of-service event.
12138 FD_CONTROL_RCD
12139 FREQUENCY_CAPTURE_TYPE This type identifies the nature of the frequency-domain
12140 capture trace.
12141 0 Harmonics.
12142 The frequencies in the spectrum are harmonically related. All
12143 frequencies are ordered integral multiples of a reference
12144 fundamental frequency. The harmonic frequency is implied
12145 from the array’s positional index of spectral component.
330
DRAFT ANSI C12.19-2012
12146 1 Interharmonics.
12147 The frequencies in the spectrum contain interharmonic values.
12148 All frequencies are ordered but not necessarily as integral
12149 multiples of a reference fundamental frequency. The harmonic
12150 or interharmonic frequency is explicitly included with the
12151 measurement of each spectral component.
12152 2 Discrete Spectra.
12153 The frequencies in the spectrum are specified as a control list.
12154 The frequency is explicitly included with the measurement of
12155 each spectral component.
12156 3..255 Reserved.
12157 SAMPLING_RATE Sampling rate in hertz (Hz) used to capture waveforms. This
12158 value is common to all channels associated with this element.
12159 Note that this value shall be less than or equal to
12160 ACT_QUALITY_OF_SERVICE_TBL.
12161 FD_SAMPLING_RATE.
12162 NBR_OF_SAMPLES 0..4294967295 Total number of samples to capture at the indicated sampling
12163 rate. This value is common to all channels associated with this
12164 control record.
12165 Note that this value shall be less than or equal to
12166 ACT_QUALITY_OF_SERVICE_TBL.
12167 NBR_OF_FD_SAMPLES, and this must equate to an
12168 integral number of cycles.
12169 NBR_OF_PREFETCH_SAMPLES
12170 0..4294967295 Number of samples that the End Device shall capture
12171 continuously just prior to the asynchronous event that
12172 triggered a waveform capture.
12173 Note that this value shall be less than or equal to
12174 ACT_QUALITY_OF_SERVICE_TBL.
12175 NBR_OF_FD_PREFETCH_SAMPLES. This does not
12176 apply for frequency.
12177 NBR_OF_SPECTRAL_COMPONENTS
12178 0..65535 Total number of spectral entries to retain following the
12179 frequency-domain information capture. The actual number of
12180 elements recorded will be one (1) greater than this value to
12181 allow for the DC component (bias) to be recorded as well.
12182 This value is common to all channels associated with this
12183 entry.
12184 Note that this value shall be less than or equal to
12185 ACT_QUALITY_OF_SERVICE_TBL.
12186 NBR_OF_SPECTRAL_COMPONENTS.
12187 NBR_OF_CHANNELS 0..255 Number of channels that will be captured as a result of the
12188 event controlled by this entry.
12189 Note that this value shall be less than or equal to
12190 ACT_QUALITY_OF_SERVICE_TBL
12191 .NBR_OF_FD_CHANNELS.
12194 NBR_OF_WAVEFORM_REPEATS
12195 0..65535 Number of additional consecutive waveforms that shall be
12196 captured as a result of this Quality-of-service event.
12209 SOURCE_ID Data source selector for the measurement associated with this
12210 Quality-of-service incident report.
12214 COINCIDENT_SOURCE_ENABLE_FLAGS
12215 Collection of flags that correspond positionally to
12216 .COINCIDENT_SOURCE_IDS. Entries in Quality-of-
12217 service tables that report coincident values shall be assumed to
12218 be valid when this flag is set to TRUE.
12219 FALSE Corresponding COINCIDENT_SOURCE_IDS entry does
12220 not contain a valid source identifier. Therefore, the
12221 corresponding measurement shall be ignored.
12222 TRUE Corresponding COINCIDENT_SOURCE_IDS entry is a
12223 valid source identifier. Therefore, the corresponding
12224 measurement is meaningful.
12230 TD_PERIODIC_INTERVAL
12231 0..4294967295 Time-domain triggering interval in seconds.
12234 FD_PERIODIC_INTERVAL
332
DRAFT ANSI C12.19-2012
12239 NOMINAL_POSITIVE_LIMITS Nominal values and limits used in comparisons with absolute
12240 positive magnitudes. See NOMINAL_VALUE_RCD and
12241 COMPARE_SIGNED_FLAG.
12242 NOMINAL_NEGATIVE_LIMITS Nominal values and limits used in signed comparisons for
12243 negative magnitudes. See NOMINAL_VALUE_RCD and
12244 COMPARE_SIGNED_FLAG.
12259 TRANSITION_CONDITIONS SET of flags that select positionally related rule-chaining for
12260 Quality-of-service processing.
12261 FALSE An indication that the corresponding (as per corresponding
12262 SET index) event condition does not impact the detection of
12263 this event.
12264 TRUE An indication that when the corresponding (as per
12265 corresponding SET index) event condition is detected, then
12266 that event is a follow-up event. Resulting in an event exit
12267 condition for the current event. Normally exit conditions do
12268 not generate (see REPORT_ON_EXIT_FLAG) reports.
12290 TD_SAMPLES_FORMAT_CODE
12291 A single code selecting the format for all time-domain
12292 waveform data. This value is common to all time-domain
12293 waveform captured sources and channels. See
12294 LP_CTRL_TBL. INT_FMT_ENUM.
12295 TD_SAMPLING_RATE Sampling rate in hertz (Hz) used to capture all time-domain
12296 waveforms. This value is common to all time-domain
12297 waveform captured sources and channels.
12298 Note that this value shall be less than or equal to
12299 ACT_QUALITY_OF_SERVICE_TBL.
12300 TD_SAMPLING_RATE.
12301 NBR_OF_TD_SAMPLES 0..4294967295 Total number of samples to capture at the indicated sampling
12302 rate. This value is common to all time-domain waveform
12303 captured sources and channels.
12304 Note that this value shall be less than or equal to
12305 ACT_QUALITY_OF_SERVICE_TBL.
12306 NBR_OF_TD_SAMPLES.
12307 NBR_OF_TD_PREFETCH_SAMPLES
12308 0..4294967295 Number of samples to pre-fetch prior to event time stamp at
12309 the indicated sampling rate. This value is common to all time-
12310 domain waveform captured sources and channels.
12311 FD_SAMPLES_FORMAT_CODE Single code selecting the format for all frequency-domain
12312 transformed waveform data. Possible values are as per
12313 LP_CTRL_TBL. INT_FMT_ENUM. This value is common
12314 to all frequency-domain waveform-transform captured sources
12315 and channels. See LP_CTRL_TBL. INT_FMT_ENUM.
12316 FD_SAMPLING_RATE Sampling rate in hertz (Hz) used to capture all frequency-
12317 domain spectra. This value is common to all frequency-
12318 domain waveform-transform captured sources and channels.
334
DRAFT ANSI C12.19-2012
12322 NBR_OF_FD_SAMPLES 0..4294967295 Total number of samples to capture at the indicated sampling
12323 rate. This value is common to all frequency-domain
12324 waveform-transform captured sources and channels.
12325 Note that this value shall be less than or equal to
12326 ACT_QUALITY_OF_SERVICE_TBL.
12327 NBR_OF_FD_SAMPLES.
12328 NBR_OF_FD_PREFETCH_SAMPLES
12329 0..4294967295 Number of samples to pre-fetch prior to event time stamp at
12330 the indicated sampling rate. This value is common to all
12331 frequency-domain waveform-transform captured sources and
12332 channels.
12333 NBR_OF_SPECTRAL_COMPONENTS
12334 0..65535 Total number of spectra to retain following the time-domain to
12335 frequency-domain transformation. The actual number of
12336 elements recorded will be one (1) greater than this value to
12337 allow for the DC component (bias) to be recorded as well.
12338 This value is common to all frequency-domain waveform-
12339 transform captured sources and channels (except when
12340 recording discrete spectra using a list).
12341 Note that this value shall be less than or equal to
12342 ACT_QUALITY_OF_SERVICE_TBL.
12343 NBR_OF_SPECTRAL_COMPONENTS.
12372 NOTIFY_OVERFLOW_CONTROL Control element that manages the list overflow generations of
12373 warnings and notifications. See
12374 NOTIFY_OVERFLOW_CONTROL_RCD.
336
DRAFT ANSI C12.19-2012
12386 This Table provides a real-time summary of Quality-of-service reports that were reported by the End Device. The
12387 entries have a fixed order. Older values are replaced by newer values, and peak values are ordered according to
12388 ascending event severity magnitude.
12424 EVENT_START_TIME Time when this event condition was initially detected. It is
12425 identical in value to QUALITY_LOG_TBL.
12426 QUALITY_LOG_ENTRY_RCD.
12427 EVENT_TIME_STAMP.
12428 EVENT_TIME_STAMP High-resolution date and time for this incident. This is the
12429 time at which the event has persisted long enough for it to be
12430 reported. The time difference between
12431 EVENT_TIME_STAMP and EVENT_START_TIME is
12432 the event duration prior to reporting. It is identical in value to
12433 QUALITY_LOG_TBL. QUALITY_LOG_ENTRY_RCD.
12434 EVENT_TIME_STAMP.
12435 QUALITY_LOG_SEQ_NBR
12436 0..4294967295 Associated event id used to correlate this report with the
12437 appropriate entry in QUALITY_LOG_TBL.
12438 EVENT_VALUE Actual value that was measured when this report was
12439 triggered. The measurement reporting algorithm is further
12440 qualified by the corresponding entry in
12441 QUALITY_CONTROL_TBL.
12442 CAPTURE_CONTROL_BFLD.
12443 VALUE_REPORT_CTRL.
12454 QUALITY_EVENT_RCD Container for the counters and time stamps for one type of
12455 Quality-of-service report.
12456 TOTAL_NBR_OF_INCIDENTS
12457 0..4294967295 Total number of times this quality report was generated since
12458 the last quality report reset.
338
DRAFT ANSI C12.19-2012
12471 QUALITY_CONTROL_TBL
12472 .QUALITY_CONTROL_RCD
12473 .INCIDENT_SORT_ORDER.
12474 QUALITY_INCIDENTS_RCD Collection of counters and time stamps that summarize all
12475 Quality-of-service reports.
12478 QUALITY_EVENT_DATA Array that maps corresponding entries for each Quality-of-
12479 service exception report. See QUALITY_EVENT_RCD.
12482 This Table provides a log capture area for any Quality-of-service event. It contains the necessary information to
12483 identify the event-trigger-related captured waveforms and incident reports.
12515 EVENT_START_TIME The time when this event condition was initially detected.
12516 EVENT_TIME_STAMP High-resolution date and time for this incident. This is the
12517 time at which the event has persisted long enough for it to be
12518 reported. The time difference between
12519 EVENT_TIME_STAMP and EVENT_START_TIME is
12520 the event duration prior to reporting.
340
DRAFT ANSI C12.19-2012
12521 EVENT_SEQ_NBR 0..65535 Unique numeric identifier that increments for each new
12522 Quality-of-service incident that is logged in this Table.
12526 TD_ASYNC_SEQ_NBR 0..4294967295 Sequence number of the first waveform block that was
12527 captured in TD_ASYNC_TBL.
12528 FD_ASYNC_SEQ_NBR 0..4294967295 Sequence number of the first waveform block that was
12529 captured in FD_ASYNC_TBL.
12530 EVENT_VALUE Actual value that was measured this report was triggered. The
12531 measurement reporting algorithm is further qualified by the
12532 corresponding entry in QUALITY_CONTROL_TBL
12533 .CAPTURE_CONTROL_BFLD
12534 .VALUE_REPORT_CTRL.
12551 This Table provides a waveform capture area for time-domain waveforms that are triggered by a Quality-of-service
12552 event. It contains the necessary information to identify the event trigger.
12557 When this triggering event requires more than NBR_OF_TD_CHANNELS_PER_BLOCK waveforms to be
12558 reported, additional blocks are provided, each containing NBR_OF_TD_CHANNELS_PER_BLOCK waveforms
12559 until the number of channels is exhausted. The actual number of valid channels in a block is indicated by the block
12560 header NBR_CHANNELS element.
12561 When, in addition, the triggering event requires more than NBR_OF_TD_SAMPLES_PER_BLOCK samples to
12562 be recorded contiguously, then additional data blocks (or groups of blocks) will be created until all requested
12563 samples are reported.
12601 ASSOCIATED_EVENT_ID
12602 0..65535 Index into QUALITY_CONTROL_TBL.
12603 QUALITY_DESC that is associated with this event.
12604 ASSOCIATED_EVENT_SEQ_NBR
12605 0..4294967295 Event sequence number of QUALITY_LOG_TBL.
12606 QUALITY_LOG_ENTRY_RCD. EVENT_SEQ_NBR that
12607 is associated with this waveform. This value shall be identical
12608 in all blocks that carry samples and channels that were
12609 triggered by the same Quality-of-service event.
12617 NBR_SAMPLES 0..65535 Number of samples in this block. This value may be less than
12618 the block size, ACT_QUALITY_OF_SERVICE_TBL.
12619 NBR_OF_TD_SAMPLES_PER_BLOCK, as a block may
12620 be partially filled with sample values.
12621 NBR_CHANNELS 0..65535 Number of channels in this block. This value may be less than
12622 the total number of channels,
12623 ACT_QUALITY_OF_SERVICE_TBL.
12624 NBR_OF_TD_CHANNELS_PER_BLOCK, as a block may
12625 be partially filled with channel values and the actual number
12626 of channels may vary from quality event to quality event
12627 recorded.
12628 END_BLOCK_TIME_STAMP Sample acquisition time of the last sample in this block. This
12629 sample is at block-relative sample offset of
12630 SAMPLE_DATA[NBR_SAMPLES-1].
12631 BLOCK_CHANNEL_OFFSET
12632 0..65535 Channel number associated with the first channel in this block.
12633 This value may range from zero (0) to
12634 ACT_QUALITY_OF_SERVICE_TBL.
12635 NBR_OF_TD_CHANNELS-1, as
Tables / Decade 15: Quality-of-service 343
Table 155 Asynchronous Time-Domain Waveforms Table
DRAFT ANSI C12.19-2012
12638 WAVEFORM_SEGMENT_NBR
12639 0..65535 This value ranges from N - 1 to zero (0), where N is the total
12640 number of segments needed to contain all fragments from all
12641 of the channels bound to one report. This value aims to assist
12642 the application to discover how many blocks of data are
12643 needed to recover all waveforms segments that make up
12644 continuous waveform.
12645 EVENT_SAMPLE_OFFSET
12646 -2147483648..2147483647
12647 Offset in samples from this block start. This value changes
12648 from block to block to reflect the first sample position in the
12649 fully assembled waveform. For example, if the sample pre-
12650 fetch value is 5, and a block can hold 10 samples and the End
12651 Device was programmed to collect 32 samples, then four
12652 blocks will be generated each having
12653 (WAVEFORM_SEGMENT_NBR, NBR_SAMPLES,
12654 EVENT_SAMPLE_OFFSET) successive triplet values as
12655 follows: (3,10,4), (2,10,-6),(1,10,-16) and (0,2,-26).
12656 SAMPLING_RATE Sampling rate in hertz (Hz) used to collect this waveform
12657 across all channels.
12658 TD_CHANNELS_RCD Collection of all samples from all related channels. These
12659 samples are collected concurrently.
12668 ASYNC_RCD Waveform captures area for time-domain waveforms that are
12669 triggered by a Quality-of-service event.
344
DRAFT ANSI C12.19-2012
12674 This Table provides a frequency-domain spectrum capture area for transforms of time-domain waveforms that are
12675 triggered by a Quality-of-service event. It contains the necessary information to identify the event trigger.
12680 When this triggering event requires more than NBR_OF_FD_CHANNELS_PER_BLOCK waveforms to be
12681 reported, additional blocks are provided, each containing NBR_OF_FD_CHANNELS_PER_BLOCK waveforms
12682 until the number of channels is exhausted. The actual number of valid channels in a block is indicated by the block
12683 header NBR_CHANNELS element.
12684 When, in addition, the triggering event requires more than NBR_OF_FD_SPECTRA_PER_BLOCK spectra to be
12685 recorded contiguously, then additional data blocks (or groups of blocks) will be created until all requested samples
12686 are reported.
12716 CHANNEL :
12717 ARRAY [ACT_QUALITY_OF_SERVICE_TBL.
12718 NBR_OF_FD_CHANNELS_PER_BLOCK] OF
12719 FD_ENTRY_RCD;
12720 END;
12737 FD_BLOCK_HEADER_RCD This element contains the block descriptor and status
12738 information.
12741 ASSOCIATED_EVENT_SEQ_NBR
12742 0..4294967295 Event sequence number of QUALITY_LOG_TBL.
12743 QUALITY_LOG_ENTRY_RCD. EVENT_SEQ_NBR that
12744 is associated with this waveform. This value shall be identical
12745 in all blocks that carry samples and channels that were
12746 triggered by the same Quality-of-service event.
12754 NBR_SPECTRAL_COMPONENTS
12755 0..65535 Number of spectral components reported in this block. This
12756 value includes all harmonic, interharmonic, or discrete spectral
12757 components including the DC (bias) value, if any.
12758 NBR_CHANNELS 0..65535 Number of channels in this block. This value may be less than
12759 the total number of channels,
346
DRAFT ANSI C12.19-2012
12760 ACT_QUALITY_OF_SERVICE_TBL.
12761 NBR_OF_FD_CHANNELS_PER_BLOCK, as a block may
12762 be partially filled with channel values and the actual number
12763 of channels may vary from quality event to quality event
12764 recorded.
12765 START_BLOCK_TIME_STAMP Time stamp of the first sample used in this transform. All
12766 blocks making up one spectrum report the same value.
12767 END_BLOCK_TIME_STAMP Time stamp of the last sample used in this transform. All
12768 blocks making up one spectrum shall report the same value.
12769 BLOCK_CHANNEL_OFFSET
12770 0..65535 Channel number associated with the first channel in this block.
12771 This value may range from zero (0) to
12772 ACT_QUALITY_OF_SERVICE_TBL.
12773 NBR_OF_FD_CHANNELS-1, as
12774 NBR_OF_FD_CHANNELS may be greater than
12775 NBR_OF_FD_CHANNELS_PER_BLOCK.
12776 SPECTRA_SEGMENT_NBR
12777 0..65535 Value ranging from N - 1 to zero (0), where N is the total
12778 number of segments needed to contain all fragments from all
12779 of the channels bound to one report. This value aims to assist
12780 the application to discover how many blocks of data are
12781 needed to recover all segments that make up the spectral
12782 components.
12783 EVENT_SAMPLE_OFFSET
12784 -2147483648..2147483647
12785 Offset in samples to the first sample used in the integration of
12786 this frequency spectrum. This value shall be identical in all
12787 blocks segments that are associated with the same event.
12788 SAMPLING_RATE Sampling rate in hertz (Hz) used to collect this frequency
12789 spectrum across all channels.
12799 ANGLE Phase angle between the real and imaginary parts of the
12800 spectral component. This value ranges from -360 degrees to
12801 +360 degrees before the application of scalar/divisor. See
12805 FD_CHANNELS_RCD Collection of all samples from all related channels. These
12806 samples are collected concurrently.
12809 FD_BLOCK_DATA_RCD
12810 BLOCK_HEADER See FD_BLOCK_HEADER_RCD.
348
DRAFT ANSI C12.19-2012
12822 This Table provides a waveform capture area for time-domain waveforms that are continually sampled for the
12823 purpose of obtaining real-time performance information.
12862 TD_PERIODIC_BLOCK_HEADER_RCD This element contains the block descriptor and status
12863 information.
12864 NBR_SAMPLES 0..65535 Number of samples in this block. This value may be less than
12865 the block size, ACT_QUALITY_OF_SERVICE_TBL.
12866 NBR_OF_TD_SAMPLES_PER_BLOCK, as a block may
12867 be partially filled with sample values.
12868 NBR_CHANNELS 0..65535 Number of channels in this block. This value may be less than
12869 the total number of channels,
12870 ACT_QUALITY_OF_SERVICE_TBL.
12871 NBR_OF_TD_CHANNELS_PER_BLOCK, as a block may
12872 be partially filled with channel values and the actual number
12873 of channels may vary from quality event to quality event
12874 recorded.
12875 END_BLOCK_TIME_STAMP Sample acquisition time of the last sample in this block. This
12876 sample is a block-relative sample offset of
12877 SAMPLE_DATA[NBR_SAMPLES-1].
12878 BLOCK_CHANNEL_OFFSET
12879 0..65535 Channel number associated with the first channel in this block.
12880 This value may range from zero (0) to
12881 ACT_QUALITY_OF_SERVICE_TBL.
12882 NBR_OF_TD_CHANNELS-1, as
12883 NBR_OF_TD_CHANNELS may be greater than
12884 NBR_OF_TD_CHANNELS_PER_BLOCK.
12885 WAVEFORM_SEGMENT_NBR
12886 0..65535 Value ranging from N - 1 to zero (0), where N is the total
12887 number of segments needed to contain all fragments from all
12888 of the channels bound to one report. This value aims to assist
12889 the application to discover how many blocks of data are
12890 needed to recover all waveform segments that make up a
12891 continuous waveform.
12892 EVENT_SAMPLE_OFFSET
12893 -2147483648..2147483647
12894 Offset to start of collection time from this block start. This
12895 value changes from block to block to reflect the first sample
12896 position in the fully assembled waveform.
12897 SAMPLING_RATE Sampling rate in hertz (Hz) used to collect this waveform
12898 across all channels.
350
DRAFT ANSI C12.19-2012
12905 WAVEFORM_RCD Waveform captures area for time-domain waveforms that are
12906 triggered periodically.
12911 This Table provides a frequency domain spectrum capture area for transforms of time-domain waveforms
12912 continually sampled for the purpose of obtaining real-time performance information.
12917 When the triggering event requires more than NBR_OF_FD_CHANNELS_PER_BLOCK waveforms to be
12918 reported, additional blocks are provided, each containing NBR_OF_FD_CHANNELS_PER_BLOCK waveforms
12919 until the number of channels is exhausted. The actual number of valid channels in a block is indicated by the block
12920 header NBR_CHANNELS element.
12921 When, in addition, the triggering event requires more than NBR_OF_FD_SPECTRA_PER_BLOCK spectra to be
12922 recorded contiguously, then additional data blocks (or groups of blocks) will be created until all requested samples
12923 are reported.
352
DRAFT ANSI C12.19-2012
12955 NBR_SPECTRAL_COMPONENTS
12956 0..65535 Number of spectra reported in this block. This value includes
12957 all spectral components including the DC (bias) value, if any.
12958 NBR_CHANNELS 0..65535 Number of channels in this block. This value may be less than
12959 the total number of channels,
12960 ACT_QUALITY_OF_SERVICE_TBL.
12961 NBR_OF_FD_CHANNELS_PER_BLOCK, as a block may
12962 be partially filled with channel values and the actual number
12963 of channels may vary from quality event to quality event
12964 recorded.
12965 START_BLOCK_TIME_STAMP Time stamp of the first sample used in this transform. All
12966 blocks making up one spectrum report the same value.
12967 END_BLOCK_TIME_STAMP Time stamp of the last sample used in this transform. All
12968 blocks making up one spectrum shall report the same value.
12969 BLOCK_CHANNEL_OFFSET
12970 0..65535 Channel number associated with the first channel in this block.
12971 This value may range from zero (0) to
12972 ACT_QUALITY_OF_SERVICE_TBL.
12973 NBR_OF_FD_CHANNELS-1, as
12974 NBR_OF_FD_CHANNELS may be greater than
12975 NBR_OF_FD_CHANNELS_PER_BLOCK.
12976 SPECTRA_SEGMENT_NBR
12977 0..65535 Value ranging from N - 1 to zero (0), where N is the total
12978 number of segments needed to contain all fragments from all
12979 of the channels bound to one report. This value aims to assist
12980 the application to discover how many blocks of data are
12981 needed to recover all segments that make up the spectral
12982 components.
12983 EVENT_SAMPLE_OFFSET
12984 -2147483648..2147483647
12985 Offset in samples to the first sample used in the integration of
12986 this frequency spectrum. This value shall be identical in all
12987 blocks segments that are associated with the same event.
12988 SAMPLING_RATE Sampling rate in hertz (Hz) used to collect this frequency
12989 spectrum across all channels.
354
DRAFT ANSI C12.19-2012
13004 ONEWAY_DEVICES_DEC
13005 The tables in this Decade provide information related to “One-way” End Device operation.
13008 DIM_ONE_WAY_TBL (Table 160) defines the maximum capabilities for One-way control for the End Device.
13058 PERIODIC_SELF_WAKE_FLAG
13059 FALSE End Device is not capable of self-waking at programmed
13060 period.
13061 TRUE End Device is capable of self-waking at programmed period.
13062 EXTERNAL_WAKE_FLAG
13063 FALSE End Device is not awakened by external stimulus.
13064 TRUE End Device is awakened by external stimulus.
13065 RF_TRANSM_WAKE_FLAG
13066 FALSE End Device is not capable of being awakened by specific RF
13067 transmission energy.
13068 TRUE End Device is capable of being awakened by specific RF
13069 transmission energy.
13070 IR_TRANSM_WAKE_FLAG
13071 FALSE End Device is not capable of being awakened by specific IR
13072 transmission energy.
13073 TRUE End Device is capable of being awakened by specific IR
13074 transmission energy.
13075 PL_TRANSM_WAKE_FLAG
13076 FALSE End Device is not capable of being awakened by specific PL
13077 transmission energy.
13078 TRUE End Device is capable of being awakened by specific PL
13079 transmission energy.
13080 POT_WAKE_FLAG FALSE End Device is not capable of being awakened by Plain Old
13081 Telephone modem energy.
13082 TRUE End Device is capable of being wakened by Plain Old
13083 Telephone modem energy.
13084 LAN_WAN_WAKE_FLAG FALSE End Device is not capable of being awakened by specific
13085 LAN/WAN energy.
356
DRAFT ANSI C12.19-2012
13089 REGISTER_READ_FUNC_FLAG_BFLD
13090 REG_READ_IMMEDIATE_WAKE_FLAG
13091 FALSE End Device is not capable of reading register immediately
13092 after waking.
13093 TRUE End Device is capable of reading register immediately after
13094 waking.
13095 REG_READ_DELAY_TO_TIME_FLAG
13096 FALSE End Device is not capable of reading register with a time delay
13097 after waking.
13098 TRUE End Device is capable of reading register with a time delay
13099 after waking.
13100 REG_READ_EXTERNAL_STIME_FLAG
13101 FALSE End Device is not capable of reading register after external
13102 stimulus.
13103 TRUE End Device is capable of reading register after external
13104 stimulus.
13106 DATA_TRANSMIT_FUNC_BFLD
13107 DATA_XMIT_IMMEDIATE_READ
13108 FALSE End Device is not capable of transmitting data immediately
13109 after register read.
13110 TRUE End Device is capable of transmitting data immediately after
13111 register read.
13112 DATA_XMIT_DELAY_TO_TIME_FLAG
13113 FALSE End Device is not capable of transmitting data after a chosen
13114 time delay after register read.
13115 TRUE End Device is capable of transmitting data after a chosen time
13116 delay after register read.
13118 COMMODITY_OUTAGE_DUTY_RCD
13119 COMMODITY_OUTAGE_DUTY_NUM
13120 0..65535 Maximum number of power outage events that can be counted
13121 and timed by the one-way End Device.
13122 RESTORATION_CALL_ATTEMPTS
13123 0..255 Maximum number of outage call tries the End Device shall
13124 perform.
13125 RESTORATION_CALL_WAIT
13126 0..255 Maximum time in seconds after outage is restored before
13127 outage message is transmitted.
13128 COMMODITY_ZERO_USAGE_RCD
13129 COMMODITY_ZERO_USAGE
13130 0..65535 Minimum amount of time in seconds before a commodity, not
13131 being utilized, can be treated as an “off” condition.
13132 COMMODITY_ZERO_USAGE_TRIGGER
13133 0..65535 Maximum period of time, in minutes, of zero commodity
13134 usage measured by the End Device that will trigger an alarm
13135 call, e.g., water usage stopped for 480 minutes.
13136 COMMODITY_NON_RETURN_ZERO_TRIGGER
13137 0..65535 Maximum period of time, in minutes, of “nonreturn to zero
13138 usage” that constitutes a trigger for a warning call to client for
13139 potential water or other commodity supply breach. A zero
13140 usage event is defined by a zero commodity usage of the
13141 client. It is a normal operation to have numerous small
13142 intervals of zero usage of commodities such as water. A
13143 “nonreturn to zero usage” event could describe a breach of a
13144 load-side line of metered commodity that would not allow the
13145 metering of the commodity to recognize a zero usage event.
13146 ONE_WAY_RCD
13147 WAKE_UP_FUNC_FLAGS See WAKE_UP_FUNC_FLAG_BFLD.
13150 WAKE_CODE_LEN 0..255 Maximum number of UINT8s that make up an End Device
13151 wake code.
358
DRAFT ANSI C12.19-2012
13159 ACT_ONE_WAY_TBL (Table 161) defines the actual settings for One-way control for the End Device.
13169 PERIODIC_SELF_WAKE_FLAG
13170 FALSE End Device is not self-waking at programmed period.
13171 TRUE End Device is self-waking at programmed period.
13174 RF_TRANSM_WAKE_FLAG
13175 FALSE End Device is not awakened by specific RF transmission
13176 energy.
13177 TRUE End Device is awakened by specific RF transmission energy.
13178 IR_TRANSM_WAKE_FLAG
13179 FALSE End Device is not awakened by specific IR transmission
13180 energy.
13181 TRUE End Device is awakened by specific IR transmission energy.
13182 PL_TRANSM_WAKE_FLAG
13183 FALSE End Device is not awakened by specific PL transmission
13184 energy.
13185 TRUE End Device is awakened by specific PL transmission energy.
13186 POT_WAKE_FLAG FALSE End Device is not awakened by Plain Old Telephone modem
13187 energy.
13188 TRUE End Device is awakened by Plain Old Telephone modem
13189 energy.
13190 LAN_WAN_WAKE_FLAG FALSE End Device is not awakened by specific LAN/WAN energy.
13191 TRUE End Device is awakened by specific LAN/WAN energy.
13195 REG_READ_IMMEDIATE_WAKE_FLAG
13196 FALSE End Device does not read registers immediately after waking.
13197 TRUE End Device reads registers immediately after waking.
13198 REG_READ_DELAY_TO_TIME_FLAG
13199 FALSE End Device does not read registers with a time delay after
13200 waking.
13201 TRUE End Device reads registers with a time delay after waking.
13202 REG_READ_EXTERNAL_STIME_FLAG
13203 FALSE End Device does not read registers after an external stimulus.
13204 TRUE End Device reads registers after an external stimulus.
13208 DATA_XMIT_IMMEDIATE_READ
13209 FALSE End Device does not transmit data immediately after registers
13210 were read.
13211 TRUE End Device transmits data immediately after registers were
13212 read.
13213 DATA_XMIT_DELAY_TO_TIME_FLAG
13214 FALSE End Device does not transmit data after a chosen time delay
13215 and after the registers were read.
13216 TRUE End Device transmits the data after a chosen time delay and
13217 after the registers were read.
13221 COMMODITY_OUTAGE_DUTY_NUM
13222 0..65535 Actual number of power outage events that can be counted
13223 and timed by the one-way End Device.
13224 RESTORATION_CALL_ATTEMPTS
13225 0..255 Actual number of outage call tries the End Device shall
13226 perform.
13227 RESTORATION_CALL_WAIT
13228 0..255 Actual time in seconds after outage is restored before outage
13229 message is transmitted.
13232
360
DRAFT ANSI C12.19-2012
13233 COMMODITY_ZERO_USAGE
13234 0..65535 Actual period of time in seconds after which the commodity
13235 will be defined to be off.
13236 COMMODITY_ZERO_USAGE_TRIGGER
13237 0..65535 Actual period of time, in minutes, of zero commodity usage
13238 measured by the End Device that will trigger an alarm call;
13239 water usage stopped for 480 minutes.
13240 COMMODITY_NON_RETURN_ZERO_TRIGGER
13241 0..65535 Actual period of time, in minutes, of “nonreturn to zero usage”
13242 that constitutes a trigger for a warning call to client for
13243 potential water or other commodity supply breach. A zero
13244 usage event is defined by a zero commodity usage of the
13245 client. It is a normal operation to have numerous small
13246 intervals of zero usage of commodities such as water. A
13247 “nonreturn to zero usage” event could describe a breach of a
13248 load-side line of metered commodity that would not allow the
13249 metering of the commodity to recognize a zero usage event.
13254 WAKE_CODE_LEN 0..255 Actual number of UINT8s that make up End Device wake
13255 code.
13263 ONE_WAY_CONTROL_TBL (Table 162) contains grouped control choices for managing waking, register
13264 reading, and transmitting data.
362
DRAFT ANSI C12.19-2012
13323 ONE_WAY_WAKE_RCD
13324 REG_READ_TIMING End Device performs a register read periodically defined by
13325 RDATE value.
13327 SELF_WAKE_PERIOD 0..4294967295 The period in seconds between awakenings. End Device
13328 wakes via internal means periodically from the beginning of
13329 awakening to the next beginning of awakening in seconds.
13335 INTENDED_REG_READ_XMIT_TIMING
13336 0..4294967295 End Device data delay till-transmit in seconds after register
13337 reads.
13338 ED_SECURITY_MODE_BFLD
13339 SECURITY_MODE Simple security mode.
13340 Security in the context of one-way devices is interpreted with
13341 respect to:
13342 a) The way the device data transmission was initiated.
13343 Whether inappropriate access of facility may be the cause
13344 of the transmission of the data or such indications may be
13345 contained in the data stream.
Tables / Decade 16: One-way Devices 363
Table 162 One-way Control Table
DRAFT ANSI C12.19-2012
13371 ED_CONTROL_RCD
13372 WAKE_DATA See ONE_WAY_WAKE_RCD.
364
DRAFT ANSI C12.19-2012
13376 SIMPLE_DEVICE_STATUS_DATA_TIMING_TBL (Table 163) contains data related to register reading and
13377 actual transmission of the data such that register data may be stamped more accurately at upstream communication
13378 nodes with the knowledge of the time of reading and actual data transmission. Also, this table contains the status
13379 data of this meter.
13421 LOCAL_NETWORK_COM
13422 FALSE End Device communicates via handheld reader or other point-
13423 to-point com node.
13424 TRUE End Device communicates via network or LAN/WAN.
13425 RELAY_MODE FALSE End Device does not provide relay com function.
13426 TRUE End Device provides relay com function.
13431 COMMODITY_OUTAGE_STATUS_BFLD
13432 NBR_POWER_OUTAGE_EVENTS
13433 0..7 Number of power outage events during that day; reset at
13434 00:00:00 local time.
13438 COMMODITY_OUTAGE_DUTY_BFLD
13439 OUTAGE_DURATION 0..65535 The outage duration in minutes (No Roll Over).
13440 POWERUP_DURATION 0..65535 The time in minutes since outage (No Roll Over).
13441 SIMPLE_END_DEVICE_STATUS_RCD
13442 COMMODITY_OUTAGE_STATUS See COMMODITY_OUTAGE_STATUS_BFLD.
13446 COMMODITY_RESTORATION
13447 0..65535 The time in seconds since commodity restoration.
13448 COMMODITY_NON_RETURN_TO_ZERO_DURATION
13449 0..65535 Minutes since last zero consumption event measured by End
13450 Device; End Device will report if commodity flow has not
13451 stopped in ACT_ONE_WAY_TBL.
13452 COMMODITY_NON_RETURN_ZERO_TRIGGER. A
13453 zero consumption event is defined when the commodity is not
13454 used for ACT_ONE_WAY_TBL.
13455 COMMODITY_ZERO_USAGE seconds.
13457 RTC_DRIFT -32768..32767 Number of seconds of drift since the last time the clock was
13458 adjusted.
13459 SPARE 0..255 Unassigned interpretation for use by End Device Owner.
13460 DEVICE_STATUS_RCD
13461 ACTUAL_REG_READ_XMIT_TIMING
13462 0..4294967295 Time in seconds between reading register(s) and transmitting
13463 of the data.
13497 COMMANDRESPONSE_NUMBER
13498 0..65535 Response number that corresponds to a specific command.
13499 CORRESPONDING_EUDT_FOR_COMMAND_NUMBER
13500 TABLE_IDA_BFLD represents the table number, table type,
13501 and two operational flags. The flags are not utilized in this
13502 context.
13503
13504
368
DRAFT ANSI C12.19-2012
13505 CORRESPONDING_EUDT_FOR_COMMANDRESPONSE_NUMBER
13506 TABLE_IDA_BFLD represents the table number, table type,
13507 and two operational flags. The flags are not utilized in this
13508 context.
13509 RESERVE_COMMAND_NUMBER
13510 0..65535 Reserve command number.
13511 RESERVE_COMMANDRESPONSE_NUMBER
13512 0..65535 Reserve command response number that corresponds to a
13513 specific reserve command response.
13514 CORRESPONDING_EUDT_FOR_RESCOMMAND_NUMBER
13515 TABLE_IDA_BFLD represents the table number, table type,
13516 and two operational flags. The flags are not utilized in this
13517 context.
13518 CORRESPONDING_EUDT_FOR_RESCOMMANDRESPONSE_NUMBER
13519 TABLE_IDA_BFLD represents the table number, table type,
13520 and two operational flags. The flags are not utilized in this
13521 context.
13522 COMMANDS_RCD
13523 COMMANDS A collection of commands.
13524
13525
Reserved Reserved
Reserved Company using
Relative Relative
Device Class ANSI C12.19-1997 (V1.0)
Device Class Device Class
Name End Device
(Dot Decimal) (Hex)
“ABB ” ABB .65.66.66.32 41 42 42 20
“AIL ” American Innovations, Ltd. .65.73.76.32 41 49 4C 20
“AMCO” American Meter Company .65.77.67.79 41 4D 43 4F
“APTH” Aptech Inc. .65.80.84.72 41 50 54 48
“BMI ” Badger Meter Inc. .66.77.73.32 42 4D 49 20
“CMVG” Comverge Technologies Inc. .67.77.86.71 43 4D 56 47
“DMTC” Datamatic, Inc. .68.77.84.67 44 4D 54 43
“EE ” Elster Electricity .69.69.32.32 45 45 20 20
“EPRI” Electric Power Research Institute .69.80.82.73 45 50 52 49
“GE ” General Electric .71.69.32.32 47 45 20 20
“ITD ” International Teldata Corporation .73.84.68.32 49 54 44 20
“ITRN” Itron .73.84.82.78 49 54 52 4E
“JEM ” Scientific Columbus Company .74.69.77.32 4A 45 4D 20
“LGYR” Landis+Gyr Inc. .76.71.89.82 4C 47 59 52
“MM ” Master Meter .77.77.32.32 4D 4D 20 20
“MTC ” Metering Technology Corporation .77.84.67.32 4D 54 43 20
“ND ” NERTEC Design Inc. .78.68.32.32 4E 44 20 20
“SCH ” Schlumberger .83.67.72.32 53 43 48 20
“SENS” Sensus Metering Systems .83.69.78.83 53 45 4E 53
“SPTD” Siemens Power Transmission & Distribution, Inc. .83.80.84.68 53 50 54 44
“TEMP” For new manufacturers who are not yet included in this .84.69.77.80 54 45 4D 50
list.
“WEXL” WeXL .87.69.88.76 57 45 58 4C
13530 Manufacturers implementing this standard and registrars shall not assign End Device classes from this reserved list.
13531 The presence of any of the above ID Codes is permitted only in ANSI C12.19-1997 V1.0 compliant
13532 implementations.
370
DRAFT ANSI C12.19-2012
READ_VALUE
11 NBR_CONSTANTS_ENTRIES 1
15 MULTIPLIER 0.0072
OFFSET 0.0
13581 Using the above information, the NEW_VALUE may have the
13582 following binary representation:
13583 4FH 000BH 000005H 0001H 01H FFH
13584 40H 000FH 0008H 0D0072BB0D0BBBBBH 38H
13585 where
13586 4FH is the first ANSI C12.18 PSEM partial write with
13587 offset service request code of the sequence with
13588 two requests.
13589 000BH is the table identifier.
13590 000005H is the Octet offset to
13591 NBR_CONSTANTS_ENTRIES.
13592 0001H is the number of Octets delivered.
13593 01H is the value of NBR_CONSTANTS_ENTRIES.
13594 FFH is the PSEM request’s Table-data checksum.
13595 Then:
13596 40H is the second ANSI C12.18 PSEM full write
13597 service request code in the sequence.
13598 000FH is the table identifier.
13599 0008H is the number of Octets delivered.
13600 0D0072BBH
13601 is the value of the MULTIPLIER = 0.0072
13602 (encoded in BCD; i.e., this assumes that Table 0
13603 element NI_FORMAT1 = 6).
13604 0D0BBBBBH
13605 is the value of the OFFSET = 0.0 (also encoded
13606 in BCD).
13607 38 H is the PSEM request’s Table-data checksum.
374
DRAFT ANSI C12.19-2012
11 NBR_CONSTANTS_ENTRIES 1
15 MULTIPLIER 0.0072
OFFSET 0.0
13659 Trailing 00H shall follow as needed to fill the remainder of the
13660 HISTORY_ARGUMENT or EVENT_ARGUMENT if
13661 there is no following READ_VALUE.
13662 READ_VALUE Collection of all data delivered from one or more secured
13663 register tables. These are sequenced in the same order as the
13664 corresponding PSEM read requests that triggered this event.
13665 The encoding of READ_VALUE is identical to
13666 NEW_VALUE.
13667 The corresponding SECURED_REGISTER_SIG is computed
13668 from the table data portions only. Reusing the values in the
13669 example for NEW_VALUE above, the logger would digest
13670 the following Table data values 01H, 0D0072BBH and
13671 0D0BBBBBH to yield the BINARY(16) secured register
13672 signatures in accordance with ACT_LOG_TBL.
13673 EXT_LOG_FLAGS.SIG_ALGORITHM.
13674 Case 0: MD5 algorithm,
13675 81D07F9F27978AD661D40945EFDA92D3 H
13676 Case 1: SHA-256 algorithm,
13677 D41940B52D3BE0409C7AF63681987FD7ECBEEC69BBB520BC99CBB8BAB203D006
13678 In the above example, the size of the SHA-256 hash is
13679 32 Octets. Only the first 16 Octets are retained as the
13680 signature. The remainders (grayed out) are discarded.
13682 Logger codes 0 through 55 have straightforward interpretations. However, logger codes 56 through 76 were
13683 introduced to facilitate an implementation of a well-defined logging and auditing system in environments where
13684 program change management, End Device state tracking, and data integrity audits are desired. The code descriptions
13685 and clarifications below are provided to facilitate a uniform implementation of these Loggers.
56 End Device Sealed This is an indication that the End Device has been fully
programmed and sealed.
57 End Device Unsealed This is an indication that the End Device Seal has been
removed or that the End Device program or configuration
data has been compromised.
58 Procedure Invoked A single metrological procedure invocation event.
TABLE_IDC_BFLD identifies the metrological procedure
that triggered this event.
NEW_VALUE represents the collection of all table
changes that occurred as a result of the invocation of
this metrological procedure.
59 Table Written To A single Metrological Table modification event.
TABLE_IDA_BFLD identifies the metrological table
change that triggered this event. All the fields are
identical to that of event code 58, except that the
TBL_PROC_NBR subelement is the table number.
NEW_VALUE represents the collection of all table
changes that occurred. No other tables were affected.
376
DRAFT ANSI C12.19-2012
If the EVENT_ARGUMENT or
HISTORY_ARGUMENT is too small to hold a copy
of all changes that triggered this event, this code shall
be preceded by one or more instances of codes 58, 59,
or 60 as needed to capture all changes to the End
Device metrological tables elements.
67 End Device Unsealed A seal removal and request for re-verification event (see
code 57).
EVENT_CHECK_SIG is the event check signature for
this event entry.
If the EVENT_ARGUMENT or
HISTORY_ARGUMENT is too small to hold a copy
of all metrological tables at the time of the
verification, then it is expected that this event code
shall be preceded by one or more instances of codes
58, 59, or 60 as needed to capture the state of all
metrological tables sealed.
378
DRAFT ANSI C12.19-2012
73 Read Secured Table Event code generated upon reading of a single secured
register table.
EVENT_CHECK_SIG is the event check signature for
this event entry.
SECURED_REGISTER_SIG is the signature of the
collation of all read responses sent as a result of
processing all the read requests indicated by
READ_REQUESTED.
TABLE_IDA_BFLD identifies the metrological table that
was read and triggered this event.
READ_REQUESTED is the collection of all read requests
whose responses were processed into the
SECURED_REGISTER_SIG.
74 Read Secured Register Event code generated upon reading one or more secured
register tables.
EVENT_CHECK_SIG is the event check signature for
this event entry.
SECURED_REGISTER_SIG is the signature of the
collation of all read responses sent as a result of
processing all the read requests indicated by
READ_REQUESTED.
READ_REQUESTED is the collection of all read requests
whose responses were processed into the
SECURED_REGISTER_SIG.
75 Read Secured Table Event code generated upon reading of a single secured
register table.
EVENT_CHECK_SIG is the event check signature for
this event entry.
SECURED_REGISTER_SIG is the signature of the
collation of all read responses sent as a result of
processing all the read requests indicated by
READ_REQUESTED.
TABLE_IDA_BFLD identifies the metrological table that
was read and triggered this event.
READ_VALUE is the collection of all read responses that
were processed into the SECURED_REGISTER_SIG.
380
DRAFT ANSI C12.19-2012
Annex C 381
DRAFT ANSI C12.19-2012
382
DRAFT ANSI C12.19-2012
Annex C 383
DRAFT ANSI C12.19-2012
384
DRAFT ANSI C12.19-2012
13690
386
DRAFT ANSI C12.19-2012
TABLE 00 - GEN_CONFIG_TBL
FORMAT_CONTROL_1 000
FORMAT_CONTROL_2 001
FORMAT_CONTROL_3 002
DEVICE_CLASS 003
NAMEPLATE_TYPE 004
DEFAULT_SET_USED 005
MAX_PROC_PARM_LENGTH 006
MAX_RESP_DATA_LEN 007
STD_VERSION_NO 008
STD_REVISION_NO 009
DIM_STD_TBLS_USED 010
DIM_MFG_TBLS_USED 011
DIM_STD_PROC_USED 012
DIM_MFG_PROC_USED 013
DIM_MFG_STATUS_USED 014
NBR_PENDING 015
STD_TBLS_USED (SET) 016
STD_TBLS_USED (8-BITS AT n/8) 016 [n]
MFG_TBLS_USED (SET) 017
MFG_TBLS_USED (8-BITS AT n/8) 017 [n]
STD_PROC_USED (SET) 018
STD_PROC_USED (8-BITS AT n/8) 018 [n]
MFG_PROC_USED (SET) 019
MFG_PROC_USED (8-BITS AT n/8) 019 [n]
STD_TBLS_WRITE (SET) 020
STD_TBLS_WRITE (8-BITS AT n/8) 020 [n]
MFG_TBLS_WRITE (SET) 021
MFG_TBLS_WRITE (8-BITS AT n/8) 021 [n]
TABLE 05 - DEVICE_IDENT_TBL
IDENTIFICATION (BINARY) 000
IDENTIFICATION (STRING) 001
TABLE 07 - PROC_INITIATE_TBL /
PROCEDURE 05 -
UPDATE_LAST_READ_ENTRY_PROC
PROC 000
SEQ_NBR 001
PARM 002
STANDARD 002 000
PROC_DATA_5 002 000 005
LIST 002 000 005 000
ENTRIES_READ 002 000 005 001
TABLE 23 - CURRENT_REG_DATA_TBL
NBR_DEMAND_RESETS 000
Annex D 387
DRAFT ANSI C12.19-2012
TOT_DATA_BLOCK 001
SUMMATIONS(ARRAY) 001 000
SUMMATIONS(ITEM) 001 000 [n]
DEMANDS(ARRAY) 001 001
DEMANDS(ITEM) 001 001 [n]
EVENT_TIME(ARRAY) 001 001 [n] 000
EVENT_TIME(ITEM) 001 001 [n] 000 [n]
CUM_DEMAND 001 001 [n] 001
CONT_CUM_DEMAND 001 001 [n] 002
DEMAND(ARRAY) 001 001 [n] 003
DEMAND(ITEM) 001 001 [n] 003 [n]
COINCIDENTS(ARRAY) 001 002
COINCIDENTS(ITEM) 001 002 [n]
COINCIDENT_VALUES(ARRAY) 001 002 [n] 000
COINCIDENT_VALUES(ITEM) 001 002 [n] 000 [n]
TIER_DATA_BLOCK(ARRAY) 002
TIER_DATA_BLOCK(ITEM) 002 [n]
SUMMATIONS (ARRAY) 002 [n] 000
SUMMATIONS(ITEM) 002 [n] 000 [n]
DEMANDS(ARRAY) 002 [n] 001
DEMANDS(ITEM) 002 [n] 001 [n]
EVENT_TIME(ARRAY) 002 [n] 001 [n] 000
EVENT_TIME(ITEM) 002 [n] 001 [n] 000 [n]
CUM_DEMAND 002 [n] 001 [n] 001
CONT_CUM_DEMAND 002 [n] 001 [n] 002
DEMAND(ARRAY) 002 [n] 001 [n] 003
DEMAND(ITEM) 002 [n] 001 [n] 003 [n]
COINCIDENTS(ARRAY) 002 [n] 002
COINCIDENTS(ITEM) 002 [n] 002 [n]
COINCIDENT_VALUES(ARRAY) 002 [n] 002 [n] 000
COINCIDENT_VALUES(ITEM) 002 [n] 002 [n] 000 [n]
13697
388
DRAFT ANSI C12.19-2012
13700 This standard provides five possible options of implementing an audit trail (Event Logger). The selections of the
13701 options implemented, allowed, or used are left to meter manufacturers, legislators, and end users. These
13702 implementation options are listed as follows.
13704 This option allows the detection of modification done to the meter but does not provide any trace of what have been
13705 modified. This option is implemented using the Event Counters Table (Table 79).
13707 This option provides a trace of which tables have been modified, when and by which user, but does not provide
13708 information about the content of these tables. This option is implemented with the Event Log Data Table (Table 76)
13709 using the following events:
13715 End Devices Implementing Event Logger With New Values Only (Option 3)
13716 This option provides a trace of which tables have been modified, when, by which user, and the new values
13717 programmed. This option is implemented with the Event Log data table (Table 76) using the following events:
13723 End Devices Implementing Event Logger With Metrological Signature Only (Option 4)
13724 This option provides a trace of which tables have been modified, when, by which user, and a signature used to
13725 validate an offline record-keeping system. The comparison of the signature provided by the meter with the signature
13726 based on the information kept by the record-keeping system guarantees that this information really represents the
13727 configuration of the meter at each event recorded.
13728
13729 This option is implemented with the Event Log Data Table (Table 76) using the following events:
13737 End Devices Implementing Event Logger With New Values and Metrological Signature (Option 5)
13738 This option combines the features of option 3 (New Values) and option 4 (Signature). This option could be used
13739 either with or without a record-keeping system.
13740 This option is implemented with the Event Log Data Table (Table 76) using the following events:
13749 The Event Logger data can be contained inside the End Device and in part at the End Device agent’s record-keeping
13750 system. The process described within establishes the means by which Event Logger data and program tables are
13751 continually secured when older entries in the Event Logger and program tables are no longer stored inside the End
13752 Device’s nonvolatile memory. The detailed computation algorithm is described in Figure E-1 and in accordance
13753 with the creation rules of the Event Logger record.
390
DRAFT ANSI C12.19-2012
Step 3
13759
13761 Annex F
13762 (informative)
13763 Transformer losses compensation
13765 Transformer losses are the sum of no-load losses and load losses (Electric Power Engineering Handbook [B2],
13766 Hannah [B4], Merritt and Chaitkin [B9], and IEEE Std C57.123-2010).
13768 The no-load losses are essentially the power required to keep the core energized. When the winding is energized, the
13769 exciting current consists of a real component (core loss) and a reactive component (energy stored momentarily in the
13770 winding inductance). The typical distribution transformer exciting current is less than 0.5% of the rated current.
13772 Transformer load losses result from the flow of load current in the windings. Load loss can be divided into two
13773 parts:
13777 I2R losses are caused by transformer winding electrical resistance when load currents flow.
13779 Eddy losses are caused by currents circulating within the winding conductors. Stray losses are proportional to the
13780 frequency of the current and thus can increase dramatically when loads with harmonic currents are served.
13781 A deeper discussion would include at least a minimum of the following elements; however, they are not covered in
13782 this document:
13788 The use of transformer losses compensation depends on the relationship between the transformer and the point of
13789 functional interest locations. Therefore, transformer loss compensation may be added or subtracted with respect to
13790 the location of the transformer and the point of interest such as billing meter (delivery) or a distribution system
13791 voltage regulation consideration. The following cases illustrate the typical use of transformer compensation with
13792 respect to metering for client billing and the location of the client delivery point:
13793
392
DRAFT ANSI C12.19-2012
13794 Case 1:
13795 In case 1, the billing (Delivery) point is on the high-voltage side of the power transformer, while the meter is located
13796 on the low-voltage side of the power transformer. Transformer losses are the responsibility of the client; that is, the
13797 client (typically a municipality) owns the delivery transformer. In this case, the transformer losses are added to the
13798 metered load (kW and kVAR, and ultimately to the kWh and kVARh as well) of the client downstream of the
13799 distribution transformer. This is a common situation where a large customer, such as a municipality, owns its
13800 substation and receives the electrical energy at the point of high-voltage conductor connection (e.g., 100 kV 3-phase
13801 delta transmission line connection to a municipality substation). The decision in this case to perform revenue
13802 metering on the low-voltage side of the distribution transformer is a decision of capital cost and maintenance cost.
13803 The cost of performing revenue metering on the 100-kV side of the transformer is much more expensive than on the
13804 12.47-kV or other lower distribution voltage side.
13805 Case 2:
13806 In case 2, the metering point is on the high-voltage side of the power transformer, while the billing (delivery) point
13807 is on the low-voltage side. Transformer losses should be subtracted from the kW and kVAR metering
13808 measurements, and ultimately from the kWh and kVARh metering values as well. In this case, the utility typically
13809 owns the delivery transformer. The client (typically industrial) is not responsible for the transformer losses as the
13810 delivery point is by contract located on the low-voltage winding side of the transformer. This is a common situation
13811 where the utility is delivering electrical energy from a distribution circuit such as 12.47 kV and the load of the
13812 industrial client requires numerous large conductors to carry the load current on the low-voltage side of the
13813 transformer (e.g., 480/277 3-phase, 4-wire). In this case, the low-voltage side metering is very difficult due to the
13814 very large conductors and the metering on the high side is relatively easy.
13816 Transformer Loss Compensation (TLC, Hannah [B4]) can be calculated using Equation (F.1) to
13817 Equation (F.4):
13826 In the above calculation, the delivery transformer parameters are treated in aggregate and not as per-phase or per-
13827 element values. Coefficients are introduced that facilitate the separate calculation of delivered and received no-load
13828 and load losses.
13829 Secondary current instrument transformers (CTs) and voltage (potential) instrument transformers (PTs) are not
13830 considered in the calculations.
Annex F / Transformer loss compensation calculations 393
DRAFT ANSI C12.19-2012
13832 The following is an example of a transformer loss compensation calculation, with transformer data borrowed from
13833 Hannah [B4].
13844 For this example, all energy is treated as “delivered” to the meter [delivered coefficient = 100, received coefficient =
13845 zero (0)].
13847 Delivered No-Load (Core, Iron) Losses kVA = 10 000 × 0.38% = 38.00
13848 Delivered No-Load (Core, Iron) Losses kVAR = 38.02 9.8782 36.96
13849 Delivered Load (Copper) Losses kVA = 10 000 × 6.92% = 692.00
13851 Based on Equation (F.1) through Equation (F.2), we can calculate and obtain the following Transformer Loss
13852 Constants:
13853 Delivered Transformer Copper Loss Watt Constant: TLC WCu (%) = 0.537%
13854 Delivered Transformer Copper Loss VAR Constant: TLC VCu (%) = 8.95%
13855 Delivered Transformer Iron Loss Watt Constant: TLC WFe (%) = 0.0762%
13856 Delivered Transformer Iron Loss VAR Constant: TLC VFe (%) = 0.283%
394
DRAFT ANSI C12.19-2012
13859 a) An Extended BNF production rule may extend across one or more lines. The actual number of lines parsed
13860 by an Extended BNF processor will be determined when the production rule syntax is fully satisfied
13861 without an encounter of an Extended BNF production rule parsing error.
13862 b) When one production rule is followed by another production rule or an operation, one shall not assume it to
13863 be a prohibition of adding additional production rules at the tail end of the first production rule, as long as
13864 the Extended BNF syntax is not violated. Therefore, A op B implies that A op B is a valid rule, but also A
13865 op1 B op2 C may be a valid rule (it depends on the definition of op).
13866 c) White space and line breaks placed between production rules and operands serve only to separate between
13867 the names of production rules and operands. They are otherwise ignored and do not add to or modify the
13868 effect of a production rule. If space is desired, it needs to be specified explicitly. For example, the
13869 production rule A B C D is equivalent to A B C D. Similarly the following production rules are not
13870 equivalent A ‘B C’ D and A ‘B C’ D.
13871 d) All bold symbols on the left column are to be entered explicitly. When a substitution is needed, the symbols
13872 are just italicized. Example: A valid production rule of the Extended BNF symbols #xN is #xFD05.
13873 Similarly, a valid production rule of the Extended BNF symbols A+ is [a-z]+, where [a-z] represents a
13874 production rule based on constructor A.
13875 e) The BNF notation does not differentiate between left and right quotation characters. Therefore, “XXXX” is
13876 equivalent to “XXXX” and ‘YYY’ is equivalent to ‘YYY’.
13877 f) Given a production rule A, a comment { comment } and a constraint / B expressed as A { comment } /B, the
13878 constraint /B applies to A and not to { comment }.
13881 \ The backslash is the escape control character. A character that follows a \ shall be interpreted as a simple
13882 character. Thus, a quote is escaped as \’ and the backslash is escaped as a \\.
13883 Example: The production rule “This is a \”bad\” expression” is equivalent to ‘This is a “bad” expression’.
13884 ‘ Terminal text string is enclosed between single quotes (#x0027, #x2018, or #x2019). Example: ‘A’ represents
13885 the letter A. All characters that follow a single quote, except for the single-quote and escape characters, are
13886 taken literally. All characters enclosed within single quotes are one entity.
13887 Also, the following escape sequences have special meaning as follows:
13892 “ Terminal text string is enclosed between double quotes (#x0022, #x201C, or #x201D). Example: “A”
13893 represents the letter A. All characters that follow a double quote, except for the double-quote and escape
Annex G / General notes on symbols, rules, and their meaning 395
DRAFT ANSI C12.19-2012
13894 characters, are taken literally. All characters enclosed within are one entity. The escape characters that are
13895 recognized within single quotes are also processed within double quotes.
13896 #xN where N is a hexadecimal integer. When interpreted as an unsigned binary number, it has the value indicated.
13897 The number of leading zeros in the #xN form is insignificant; the number of leading zeros in the
13898 corresponding code value is governed by the character encoding in use and is not significant.
13899 [ Start of character range selection symbol. Matches any character with a value in the binary range(s) indicated
13900 (inclusive). It is terminated with the end of character group symbol ‘]’.
13901 Interpretation of symbols that are enclosed within Start/End of character range symbols is as if the characters
13902 were enclosed within single or double quotes; with the following exception:
13903 ^ When encountered as the first character following the Start of character range selection, this symbol
13904 will negate the results of the match. Example: [^ABC] implies any single character except for A or B
13905 or C.
13906 - Expresses a range starting with the character on the left and ending with the character on its right
13907 (inclusive). Example: [A-Z0-9#x005F] defines a production rule that matches all capital letters of the
13908 canonical (UCS-4) character set (ISO/IEC 10646-2011), the decimal digits zero through nine and the
13909 underscore character ‘_’.
13910 \ The backslash escapes the regular interpretation of the next character (same action to that outside of
13911 the character range selection symbols, unless it is followed by a character sequence that is special
13912 within single or double quotes. Example: [\S] is the space character; and [\\S] is a backslash followed
13913 by an ‘S’).
13914 #xN Where N is a hexadecimal integer, the expression matches the character whose canonical (UCS-4) code
13915 value (ISO/IEC 10646-2011), when interpreted as an unsigned binary number, has the value indicated.
13916 ] End of character range selection symbol. Character range selection begins with Start of character range
13917 symbol.
13918 NOTE—The special meaning of all other characters is lost when used within the character-range selection symbols.
13919 Example: [ABC’[()] is a production rule that matches the letters ‘A’ or ‘B’ or ‘C’ or the single quote “’” or ‘[‘ or ‘(‘ or ‘)’.
13920 ( Start group symbol. The group ends with the end of group symbol ‘)’. If the end of group symbol is not found
13921 on the same line, then parsing shall continue on consecutive lines until the end group symbol is found; and all
13922 production rules are satisfied.
13923 ) End group symbol. The group begins with the start group symbol. Other production rules may follow.
13924 { Start of comment symbol. Text enclosed within curly braces is a comment provided for clarity and has no
13925 impact on the syntax or data definition. All characters are considered to be plain text with no special meaning,
13926 except for the end of comment symbol, ‘}’ and the escape character ‘\\’ which may be used to escape the
13927 closing comment symbol. If a production rule A is followed by a comment then followed by a constraint B,
13928 then the constraint B applies to A and not to the comment.
13929 } End of comment symbol. A comment begins with the start of comment symbol, ‘{‘.
13930 A? The production rule A followed by the superscript question mark may occur zero or one times without
13931 violating the grammar. Other production rules may follow.
396
DRAFT ANSI C12.19-2012
13932 A* The superscript asterisk is known as the Kleene star. A production rule A followed by the Kleene star may
13933 occur zero or more times without violating the grammar. Other production rules may follow.
+
13934 A The superscript plus sign is known as the Kleene cross. A production rule A followed by the Kleene cross
13935 shall occur one or more times. Other production rules may follow.
13936 Ax..y
13937 The production rule A followed by a superscript number range shall occur a minimum of x times to a
13938 maximum of y times (x shall be greater than or equal to zero, y shall be greater than or equal to x). Other
13939 production rules may follow. Example: [0..9]1..2 is a production rule providing for one to two digits in the
13940 range of ‘0’ to ‘9’.
13941 Ax The production rule A followed by a superscript number shall occur exactly x times. Other production rules
13942 may follow. This is equivalent to Ax..x.
13943 Ax.. The production rule A followed by a superscript number shall occur a minimum of x times (x shall be greater
13944 than or equal to zero). Other production rules may follow.
13945 A..B The two dots represent a range. The production rule will match any range starting with A ending with B.
13946 Example: When A or B are multi-character sequences, then the range shall span all possible multi-character
13947 sequences that are delimited by the stated range.
13950 is equivalent to
13952 A - B The production rule A followed by the minus sign (the except symbol) will match the production rule A
13953 unless it matches the pattern produced by production rule B. Other production rules may follow.
13954 Example:
13956 defines a production rule for an nonTableElementName that matches the production rule of identifier unless it
13957 also matches the production rule id followed by the suffix ‘_TBL’.
13958 A / unique : (B .)?C A production rule that introduces the uniqueness constraint C on the use case of A, where
13959 the constraint C belongs to the set:
13961 An End Device class level constraint B may be optionally provided to indicate whether the constraint C is
13962 limited to this document scope ‘TDL’, the referenced Standard document scope ‘STD’, or to all documents
13963 that describe this End Device class. The optional device class constraint B belongs to the set:
13965 When the optional constraint B is not provided, it shall default to the active document being used (it may be a
13966 Standard document or a Manufacturer-supplied document).
Annex G / Extended BNF symbols and meaning 397
DRAFT ANSI C12.19-2012
13968 ‘EDC’ Scopes defined within one instance of the End Device Class (this includes all TDL documents
13969 used to describe this End Device and all referenced Standard TDL documents).
13970 ‘TDL’ The top-level TDL scope of this TDL document. The TDL document is all collections of
13971 documents that are either Manufacturer-defined or Standard-defined, but not both.
13972 ‘STD’ The top-level TDL scope of the referenced Standard TDL documents only.
13973 ‘DEC’ Within the local scope of any one Decade defined within TDL documents.
13974 ‘TBL’ Within the local scope of any one table defined within TDL documents.
13975 ‘PROC’ Within the local scope of any one procedure defined within TDL documents.
13976 ‘RCD’ Within the local scope of any one packed record instance (and taking into account all conditionals)
13977 defined within TDL documents.
13978 ‘BFLD’ Within the local scope of any bit field instance (and taking into account all conditionals) defined
13979 within TDL documents.
13980 ‘ENUM’ Within the local scope of any enumerator instance (and taking into account all conditionals)
13981 defined within TDL documents.
13982 ‘ANY’ Any scope where this production rule can be used.
13983 The uniqueness constraints are generally applied to names of elements, names of derived types, and values of
13984 enumerators. The constraints shall be applied after the evaluation and expansion of all conditional statements,
13985 as shown in the examples below:
13988 and COUNT be an elementName then the following table syntax shall be considered invalid (with respect to
13989 the uniqueness constraint), because the final element COUNT is not defined uniquely within the PACKED
13990 RECORD below.
13996 However, the syntax below is valid because the final element COUNT is unique within any one instance of
13997 this packed record.
398
DRAFT ANSI C12.19-2012
14004 END;
14005 END;
14006 Example: Use of uniqueness constraints to tblIdentifier. This states that tblIdentifier shall be unique in all
14007 instances of this End Device class, in all scopes defined.
14009 Example: Use of uniqueness constraints to rcdIdentifier. This states that rcdIdentifier shall be locally unique
14010 in any one scope where it can be defined.
14013 Example: Use of uniqueness constraints to procIdentifier. This states that procIdentifier shall be unique across
14014 all definitions made in any End Device class instance document scope, decade scopes, and tables.
14019 This is also equivalent to (since the above scopes are the only scopes where procedures can be defined).
14021 A / constraint : B A production rule that introduces B’s size, type, or transport constraint on the run time
14022 and use case of A, where the constraint B belongs to the set:
14024 A may be an element, subelement, or final element referred to by the elementReference, a simple or derived
14025 type referred to by the derivedTypeReference, the BNF left-hand side, the BNF right-hand side definition (see
14026 description of ::= ), or the reserved word ‘atomic’ or ‘text’; as follows:
14027 ‘BNF’.LHS References to a BNF construction element that may be located on the left-hand side of the
14028 ‘::=’ and may limit the run-time size or range of the use case of a production rule.
14029 ‘BNF’.RHS References to a BNF construction element that may be located on the right-hand side of the
14030 ‘::=’ and may limit the run-time size or range of the use case of a production rule.
14031 ‘atomic’ A restriction on the transportation and access to data that is constructed based on a rule that is
14032 an atomically constrained production. Atomic elements shall be communicated entirely using
14033 a single element read or write request. Atomic tables have to be communicated using full
14034 table read or write requests. Subatomic entities shall not be requested and shall not be
14035 communicated.
14036 ‘text’ A free-form textual description of the constraint that makes up the production rule. This is
14037 useful in situations where the constraint is described elsewhere in a different document or
14038 standard, or it can be best expressed in plain text.
14039 elementReference References to a table element that may limit or further qualify the run-time influence on
14040 encoding rules use in production or communication.
14041 derivedTypeReference References to a built-in or derived data type that may limit the run-time
14042 transmitted size and content or use case of a production rule.
14046 Implies that all bnfNumber types are defined using the syntax ‘BCD(4)’. When interpreted for transmission at
14047 the base unit, fixedPointBCDNumber shall be used, as defined in a BNF production rules. The size of the
14048 transmitted data shall be exactly four (4) Octets.
14053 Implies that all twenty (20) character String types are defined using the syntax ‘STRING(20)’. When
14054 interpreted for transmission, the String format shall also be constrained by Table 0 CHAR_FORMAT value.
14055 The size of the transmission string shall be exactly twenty (20) times the size of an Octet. The String shall be
14056 transmitted as one unit since it is atomic.
14061 Implies that UINT16 is a run-time defining type that can carry binary data in the range of [#x0000-#xFFFF]
14062 [two (2) Octets]. When selected or transmitted, it is an atomic element, and its transmission Octet order
14063 depends on DATA_ORDER that is defined in GEN_CONFIG_TBL.
14067 Implies that the built-in type LTIME_DATE has the data structure and obeys the transmission rules
14068 expressed at Standard’s TDL-scope definition LTIME_DATE_RCD, and it is an atomic element.
14070 utf8 ::= eightBits (/constraint: text ‘As per Section 2.5 and Section 15.9 “Specials“ of
14071 “Encoding Forms / UTF-8” of The Unicode Standard [B13]. In UTF-8.
14072 the byte order mark, BOM, corresponds to the byte sequence [#xEF]
14073 [#xBB] [#xBF]. The BOM of UTF-8 shall be permitted only when it
14074 can be accommodated by the size of the element that is of type UTF-8
14075 whose size is at least three (3) Octets, but it shall be ignored (not
14076 produce displayable text) by the processing application.’,
14077 /constraint: atomic);
400
DRAFT ANSI C12.19-2012
14078 Requires that utf8 imports all the definitions and encoding rules implied by the Unicode Standard (see The
14079 Unicode Consortium [B13]). It also provides instructions on how to handle the UTF-8 BOM feature. Finally,
14080 it indicates that the utf8 entity is atomic.
14081 A / match : B A production rule that binds the publication of rule A to an XPath location path B in the
14082 XML/TDL source documents that describe the standard or the End Device table set. B is a LocationPath per
14083 BNF production rule [1] found in the XPATH-2010 [B14].
14084 Example:
14086 The example above indicates that the table identifier (tblIdentifier) that is published by this BNF syntax is
14087 associated with the ‘name’ attribute of the table element found in the XML/TDL document.
14088 Example:
14099 The example states that defaultSetNumber is a number ranging between 0 and 255 inclusive. Also its use is
14100 unique within the context of any End Device instance. It indicates that it is located in Table 0 of the End
14101 Device in the ‘DEFAULT_SET_USED’ final element; and it is imported or exported in the EDL file by the
14102 ‘number’ attribute of the ‘defaultSet’ element.
14104 A , B The comma introduces a sequence of production rules, all off which shall exist, but not necessary in the order
14105 as defined in the sequence. The production rule B may be followed by other alternatives. Example: A, B, C |
14106 D defines a production rule stating that either A and B and C rules shall apply (not necessary in that order) or
14107 D rules shall apply.
14108 A | B The vertical bar is an OR symbol. The OR symbol always occurs on the right-hand side of a production rule A
14109 and on the left-hand side of production rule B. The OR bar separates valid production rule alternatives. If the
14110 OR bar is not followed by a complete production rule on the same line, then parsing shall continue on
14111 consecutive lines until all production rules are satisfied. The OR introduces a sequence of production rules, of
14112 which any one shall exist. The production rule B may be followed by other alternatives. Example: A | B | C
14113 implies production rule A or B or C applies.
14115 ::= This symbol is read as “is defined as”. The nonterminal that occurs on the left-hand side (BNF.LHS) of this
14116 symbol consists of the elements (nonterminals, terminals, or a combination of the two) found on the right-
14117 hand side (BNF.RHS). For clarity, when a nonterminal element on the left-hand side is encountered in plain
14118 text, it will be written in italics. A line containing a left-hand side (LHS), ::=, and a right-hand side (RHS) is
14119 known as a production rule. An incomplete production rule continues across lines. A production rule
14120 terminates when any line completes without the need for additional rules, unless terminated by a semicolon.
14121 In the next subclauses, reserved words, characters, identifiers, and other symbols required for the language are also
14122 indicated by bold type.
14124 The flow of information is a stream of elements of multiple “n” Octet length, when “n” is greater than one. Elements
14125 are transmitted in order of their appearance in the table structure.
14126 For purposes of transmission, the smallest data type is an Octet, which is eight bits in length. The bits are numbered
14127 zero to seven. Bit zero is the least significant bit. Figure G-1 illustrates this bit numbering and ordering, when
14128 expressed in printed form. The order of transmission of the bits in an Octet is defined elsewhere in the appropriate
14129 OSI layer (ISO/IEC 7498-1-1994), which is typically the Data Link Layer (layer 2). An Octet may also be
14130 referenced as a Octet in this document.
MSBit LSBit
7 6 5 4 3 2 1 0
14131
14133 For some data types that are more than one Octet in length, it is possible to transmit them either most significant
14134 Octet first or least significant Octet first. The order of transmission is dictated by value of DATA_ORDER, found
14135 in the GEN_CONFIG_TBL (Table 00). Each data type shall indicate a specific order of transmission. Figure G-2
14136 illustrates a multi-Octet structure.
MSByte LSByte
Octet Octet Octet Octet Octet Octet Octet Octet
7-0 7-0 7-0 7-0 7-0 7-0 7-0 7-0
14137
14140 An identifier is a name identifying a decade, a table, a procedure, a packed record, a bit field, an enumerator, an
14141 element of a packed record, or a subelement of a bit field.
14142 An identifier is made of letters and/or numbers and/or the underscore character, '_'. Some suffixes were reserved for
14143 specific use. Identifiers ending with reservedSuffix are reserved for names of decades, tables, procedures, packed
14144 records, bit fields, and enumerators.
402
DRAFT ANSI C12.19-2012
14152 reservedSuffix ::= decSuffix | tblSuffix | procSuffix | rcdSuffix | bfldSuffix | enumSuffix | cnstSuffix;
14153 Identifiers that are identical to reservedName are reserved for the TDL, and they shall not be used to construct
14154 identifiers.
14155 bnf ::= ‘BNF’ { Reference to the scope of the BNF production. } ;
14156 edc ::= ‘EDC’ { Reference to the scope of the End Device class.} ;
14157 tdl ::= ‘TDL’ { Reference to the scope of the active TDL document.} ;
14158 std ::= ‘STD’ { Reference to the scope of the standard TDL document that is
14159 referenced by the active document.} ;
14160 dec ::= ‘DEC’ { Reference to the scope of a decade.} ;
14161 tbl ::= ‘TBL’ { Reference to the scope of a table.} ;
14162 proc ::= ‘PROC’ { Reference to the scope of a procedure.} ;
14163 bfld ::= ‘BFLD’ { Reference to the scope of a bit field.} ;
14164 rcd ::= ‘RCD’ { Reference to the scope of a packed record.} ;
14165 cnst ::= ‘CNST’ { Reference to a constant.} ;
14201 anyInt ::= int | unsignedInt | ‘U’?‘INT’ number? { Built-in type or the like } ;
Annex G / Identifiers 403
DRAFT ANSI C12.19-2012
14206 The following rules are used to identify the members of a packed record or of a bit field based on the production rule
14207 anyElementName.
406
DRAFT ANSI C12.19-2012
14353 The following are used as the ultimate constraint on basic data types for transmission purposes. All numbers,
14354 Booleans, and text strings are ultimately reduced to a collection of these types.
14378 iso646 ::= (eightBits (/constraint : text ‘As per ISO 7-bit coded character set for information
14379 interchange, per ISO/IEC 646-1991.’)
14380 ) /constraint : atomic ;
14381 iso8859 ::= (eightBits (/constraint : text ‘As per ISO 8859-1-1998 or ECMA 94-1996 Latin 1
14382 character set.’)
14383 ) /constraint : atomic ;
14384 utf8 ::= eightBits (/constraint : text ‘As per Section 2.5 “Encoding Forms / UTF-8” and
14385 Section15.9 “Specials” of The Unicode Standard [B13]. In UTF-8, the
14386 byte order mark, BOM, corresponds to the byte sequence [#xEF]
14387 [#xBB] [#xBF]. The BOM of UTF-8 shall be permitted only when it
14388 can be accommodated by the size of the element that is of type utf8
14389 whose size is eightBits3.., but it shall be ignored (not displayed) by the
14390 processing application.’,
14391 /constraint : atomic) ;
14395 fixedPointStringNumber ::= (S* anyNumber ([.] number)? S*) / constraint BNF.anyChar {
14396 This format may be used to represent fixed point numbers that are encapsulated
14397 as strings.} ;
14399 floatingPointStringNumber ::= (S* anyNumber ([.] number)? stringExponent? S*) / constraint
14400 BNF.anyChar {
14401 This format may be used to represent fixed point numbers that are encapsulated
14402 as strings.} ;
14403 bcdMinus ::= [#xA] { Used for the representation of the minus sign. When expressed as a
14404 CHAR, this value is mapped to the negation character ‘-’ } ;
14405 bcdSpace ::= [#xB] { Used for the representation of the space character. When represented as
14406 a CHAR, this value is mapped to the space character [#x20].} ;
14407 bcdDecimal ::= [#xD] { Used for the representation of the decimal point. When represented as a
14408 CHAR, this value is typically mapped to a period ‘.’ or a comma ‘,’,
14409 based on the End Device locale.} ;
14410 bcdStopDown ::= [#xF] { Provides numeric support for mechanical dial meters dial switch closure
14411 detection. This is used following a bcdDigit to indicate early numeric
14412 processing termination. All numeric evaluations shall stop, the next digit
14413 shall be assigned the value 0, and then the result shall be truncated by
14414 discarding all digits that follow the next. Example: the BCD sequence
14415 [#x1] [#x2] [#xD] [#x4] [#xF] [#x5], [#x6] representing the fixed point
14416 value ‘12.456’ shall be truncated upon evaluation to “12.40”. } ;
408
DRAFT ANSI C12.19-2012
14417 bcdStopUp ::= [#xE] { Provides numeric support for mechanical dial meters dial switch closure
14418 detection. This is used following a bcdDigit to indicate early numeric
14419 processing termination. All numeric evaluations shall stop, the next digit
14420 shall be assigned the value 5, and then the result shall be truncated by
14421 discarding all digits that follow the next digit. Example 1: the BCD
14422 sequence [#x1] [#x2] [#xD] [#x4] [#xE] [#x0], [#x6] representing the
14423 fixed point value ‘12.406’ shall be truncated upon evaluation to “12.45”.
14424 Example 2: the BCD sequence [#x1] [#x2] [#xD] [#x4] [#x5] [#x6] [#xE]
14425 representing the fixed point value ‘12.456’ shall be truncated upon
14426 evaluation to “12.4565”.} ;
?
14427 bcdDigit ::= [#x0-#x9] ( bcdStopDown | bcdStopUp) { Used for the representation of the binary
14428 values 0 to 9. When expressed as a CHAR, this value shall be mapped to
14429 [#x30-#x39] } ;
14430 bcdUnassignedDigit ::= [#xC] { Unused or unassigned codes. Values are reserved for future use. } ;
14433 bcdMSNibble ::= bcdNibble { The most significant nibble of a BCD. } / constraint : text ‘Occupies
14434 bits 4..7 of the Octet.’ ;
14435 bcdLSNibble ::= bcdNibble { The least significant nibble of a BCD. } / constraint : text ‘Occupies
14436 bits 0..3 of the Octet.’ ;
14437 bcdOctet ::= ( bcdMSNibble | bcdLSNibble) /constraint : eightBit{ Each Octet is two BCD digits.
14438 The most significant, bcdMSNibble, digit of each Octet is in bits 4..7. The
14439 least significant digit, bcdLSNibble, of each Octet is in bits 0..3 Invalid
14440 BCD digits are allowed as bcdOctet may be used to represent entities
14441 other than just numbers.};
+ +
14442 fixedPointBCDNumber ::= (bcdSpace* bcdMinus? bcdDigit (bcdDecimal bcdDigit )? bcdSpace*) {
14443 This format is used to represent fixed-point BCD numbers.}
14444 (/constraint BNF.bcdOctet) {
14445 Expressed as a sequence of two BCD nibbles. The most significant
14446 nibble, bcdMSNibble, of each Octet is in bits 4..7. The least
14447 significant nibbles, bcdLSNibble, of each Octet is in bits 0..3.},
+
14448 (/constraint : BNF.eightBit) /constraint : atomic {
14449 Expressed as a sequence of Octets that are transmitted as one entity.}
14450 );
14452 The following basic types shall be used to create elements within packed records and to build more complex derived
14453 types:
14454 nil ::= ‘NIL’/ constraint : BNF.fillNil { No bits delivered. An Indicator for field of length zero Octets. } ;
14465 unsignedInt
14466 ::= (‘UINT8’ /constraint : BNF.eightBits { 8 bits unsigned integer. } |
14467 (‘UINT16’ /constraint : BNF.sixteenBits { 16 bits unsigned integer. } |
14468 ‘UINT24’ /constraint : BNF.twentyFourBits { 24 bits unsigned integer. } |
14469 ‘UINT32’ /constraint : BNF.thirtyTwoBits { 32 bits unsigned integer. } |
14470 ‘UINT40’ /constraint : BNF.fortyBits { 40 bits unsigned integer. } |
14471 ‘UINT48’ /constraint : BNF.fortyEightBits { 48 bits unsigned integer. } |
14472 ‘UINT56’ /constraint : BNF.fiftySixBits { 56 bits unsigned integer. } |
14473 ‘UINT64’ /constraint : BNF.sixtyFourBits { 64 bits unsigned integer. }
14474 ) / constraint : GEN_CONFIG_TBL.DATA_ORDER
14475 ) /constraint : atomic;
14476 floatingPoint
14477 ::= (‘FLOAT32’ /constraint : BNF.thirtyTwoBits, /constraint: text ‘32 bits single-precision floating
14478 point real number, per IEEE Std 754-2008.’ |
14479 ‘FLOAT64’ /constraint : BNF.sixtyFourBits, /constraint: text ‘64 bits double-precision floating
14480 point real number, per IEEE Std 754-2008. }
14481 ) ( /constraint : GEN_CONFIG_TBL.DATA_ORDER , /constraint : atomic) ;
14482 floatingPointCHAR
14483 ::= (‘FLOAT_CHAR6’ (/constraint : BNF.eightBits)6 {A 6-Octet floating point number.} |
14484 ‘FLOAT_CHAR12’ (/constraint : BNF.eightBits)12 {A 12-Octet floating point number.} |
14485 ‘FLOAT_CHAR21’ (/constraint : BNF.eightBits)21 {A 21-Octet floating point number.}
14486 ) (/constraint : BNF.floatingPointStringNumber, /constraint : atomic, /constraint : BNF.anyChar +);
14487 fixedPointBCD
14488 ::= (‘FIXED_BCD4’ (/constraint : BNF.bcdOctet)4 {A fixed-point number consisting of eight (8) BCD
14489 digits.} |
14490 ‘FIXED_BCD6’ (/constraint : BNF.bcdOctet)6 {A fixed-point number consisting of twelve (12) BCD
14491 digits.} |
14492 ‘FIXED_BCD8’ (/constraint : BNF.bcdOctet)8 {A fixed-point number consisting of sixteen (16)
14493 BCD digits.}
14494 ) (/constraint : BNF.fixedPointBCDNumber, /constraint : atomic );
14495 fill ::= (‘FILL8’ /constraint : BNF.fillEightBits { Eight zero-filled bits used as space holder or filler. } |
14496 (‘FILL16’ /constraint : BNF.fillSixteenBits { Sixteen zero-filled bits used as space holder or filler. }
14497 |
14498 ‘FILL32’ /constraint : BNF.fillThirtyTwoBits { Thirty-two zero-filled bits used as space holder or
14499 filler. } |
14500 ‘FILL64’ /constraint : BNF.fillSixtyFourBits { Sixty-four zero-filled bits used as space holder or
14501 filler. }
14502 ) / constraint : GEN_CONFIG_TBL.DATA_ORDER
14503 ) /constraint :atomic ;
14541 derivedType ::= derivedTypeReference { Elements that are derived from packed records and bit fields. } ;
14542 simpleType ::= (baseType | derivedType) { Elements that are not arrays. }
14543 arrayType ::= (array S* ‘[’ intMathExpression ‘]’ S* of S+ simpleType S* ) { intMathExpression is the
14544 number of repetitions of simpleType in the array. The size of the array shall be
14545 intMathExpression times the size of simpleType in Octets.} ;
14546 anyElementType
14547 ::= (simpleType | arrayType | derivedType) { Any type that can be used in an Element
14548 declaration. } ;
14550 In order to add clarity to the structure of the tables, the generic data types can be used. Although their logical
14551 interpretation is identical across all implementations, their specific definition shall be determined using select fields
14552 from Table 00, GEN_CONFIG_TBL, as described next.
14554 To allow signed integer values to transmit without requiring data format translations tagging, an indicator in
14555 GEN_CONFIG_TBL (Table 00) is provided. This indicator, INT_FORMAT, specifies the data format for all
14556 INTx types within the tables. The presently delineated signed integer data formats are twos complement, ones
14557 complement and sign/magnitude. When INT_FORMAT is applicable to a type, the constraint
14558 GEN_CONFIG_TBL.INT_FORMAT is used in the BNF definition of that type.
14560 For the following three examples, the decimal number -1 is used.
14568 To allow different character sets to be used within the tables, the data types CHAR and STRING have been
14569 defined. A STRING is an atomic array of CHARs. CHAR are encoded according to the character set being used.
14570 Clause 6, “Special data types”, provides a definition for CHAR and STRING. The currently supported values of
14571 CHAR are defined in the GEN_CONFIG_TBL (Table 00) using the element CHAR_FORMAT. The CHAR data
14572 type affects both CHARs and STRINGs. When CHAR_FORMAT is applicable to a data type, the constraint
14573 GEN_CONFIG_TBL.CHAR_FORMAT is used in the BNF definition of that type.
14575 To allow noninteger numeric values to be transmitted by different methods within the tables, additional data types
14576 have been defined. NI_FMAT1 and NI_FMAT2 are used to transmit numeric values of varying precision. The
14577 value of the elements NI_FORMAT1 and NI_FORMAT2, which are found in the GEN_CONFIG_TBL
14578 (Table 00), define how NI_FMAT1 and NI_FMAT2 are to be interpreted when reading from or writing to tables in
14579 an End Device. Clause 6, “Special data types”, provides definitions for NI_FMAT1 and NI_FMAT2 and for the
14580 different values of NI_FORMAT1 and NI_FORMAT2. When NI_FORMAT1 or NI_FORMAT2 are applicable
14581 to a data type, the constraint GEN_CONFIG_TBL.NI_FORMAT1 or constraint
14582 GEN_CONFIG_TBL.NI_FORMAT2 is used in the BNF definition of that type.
14584 To allow date and time to be transmitted by different methods within the tables, additional data types were defined.
14585 These are HTIME_DATE, LTIME_DATE, STIME_DATE, TIME, STIME, HTIME, RDATE, and DATE.
14586 The value of the element TM_FORMAT, which is found in the GEN_CONFIG_TBL (Table 00), defines how the
14587 various date and time formats are to be interpreted when reading from or writing to tables in an End Device.
14588 Clause 6, “Special data types”, provides definitions for the date and time formats. When TM_FORMAT is
14589 applicable to a data type, the constraint GEN_CONFIG_TBL.TIME_FORMAT is used in the BNF definition of
14590 that type.
412
DRAFT ANSI C12.19-2012
14592 The table definition syntax provides the means for referencing decades, tables, procedures, data types, constants,
14593 elements, subelements, and final elements. In addition, it is possible to utilize expressions that evaluate to numeric
14594 values or Boolean results when defining the dimensions of arrays, sets, strings, and binary elements; or selectors in
14595 if/then/else or switch/case constructions.
14596 The defining syntax for elements may be placed nearly anywhere inside a packed record or bit fields of a table
14597 document. Packed records, bit fields, and named enumerators and constants may be placed in the beginning of the
14598 document (document scope), inside a Decade (decade scope), within a table (table scope), or within a procedure
14599 (procedure scope). Table and procedure definitions may also be placed in the document (document scope) or inside
14600 a Decade (decade scope).
14601 Unnamed enumerators and constants may also be placed in the definition of an element; as such, they acquire the
14602 name of the container element as their prefix.
14603 Resolution of (locating or not locating) any of the above types or constants shall be predictable and unambiguous
14604 when the reference is made from anywhere in a document. In order for an entity to be resolvable, it has to be defined
14605 either in the processed document syntax or by the syntax of the referenced Standard. A resolved referenced entity
14606 may or may not exist in a given End Device instance unless specifically disqualified as a nonexistent entity in the
14607 architecture of the End Device (e.g., when the entity’s accessibility attribute is UNIMPLEMENTED), whereby
14608 forcing an entity to become irresolvable.
14609 For example, the element DATA_ORDER was defined by the Standard within the context of the bit field container
14610 FORMAT_CONTROL_1, which in turn is defined within the scope of table GEN_CONFIG_TBL. of
14611 GEN_CONFIG_DEC. One may reference the element DATA_ORDER in a number of forms and from many
14612 different scopes. The subclauses below define rules that establish unambiguously the search algorithm that leads to a
14613 uniform resolution by all implementations.
14617 a) The referenced C12.19 Standard Table Definition file; and optionally
14618 b) The vendor (e.g., End Device manufacturer) supplied table definitions file that defines the variation,
14619 extension, restriction, or qualification of the End Device relative to the published referenced Standard.
14620 Within each of these files (the Standard published file and the vendor registered file), we may find definitions for
14621 types and constants that are defined at the document level.
14622 For example, if A_DATA_RCD were defined in a Standard document scope, then a nonstrict reference to this type
14623 may be made as follows:
14624 The reason for TDL.A_DATA_RCD, above, being resolved to Standard when referenced from the vendor registered
14625 document is that the TDL scope inherits all STD definitions. Therefore, if a TDL reference cannot be found in the
14626 current TDL and the current TDL is not STD, then STD scope shall be searched if the reference is not qualified as
14627 being strict.
14628 If A_DATA_RCD were defined in both Standard and Vendor document scopes, then a nonstrict reference to this
14629 type shall be resolved as follows:
14630 The reason for TDL.A_DATA_RCD, above, being resolved to Vendor when referenced from the vendor registered
14631 document is that the vendor’s TDL scope hides matching STD for those types defined within the vendor files. It is
14632 also important to note that under the same conditions, all TDL references made in the Standard documents shall
14633 refer to the Standard scope and not to the Vendor scope.
14634
414
DRAFT ANSI C12.19-2012
14635 If A_DATA_RCD were defined in the Vendor document scope only, then a nonstrict reference to this type shall be
14636 resolved as follows:
14638 The Table definition syntax provides the means for referencing decades, tables, and procedures. The names of the
14639 tables, decades, and procedures shall be unique in any context of the End Device. Therefore, if the Standard defines
14640 a Table, then the vendor-supplied End Device registered document shall not contain a definition of a table that
14641 shares the same name as one in the C12.19 Standard being referenced. Similarly, if the Standard defines a Decade
14642 (or a Procedure), then the vendor-supplied End Device registered document shall not contain a definition of a
14643 Decade (or a Procedure) that exists in the C12.19 Standard being referenced. The TDL syntax provides means for
14644 associating a vendor table or procedure to the context of a Decade. Given that the name of decades, tables, and
14645 procedures are unique for any instance of an End Device description, they shall not be qualified by an STD or TDL
14646 prefix.
14647 All references starting with STD resolve to entities starting at the top-most level of the Standard document. All
14648 references starting with TDL resolve entities starting at the top-most level of the document where the reference was
14649 made; then optionally (if not found and if the document is not a Standard) it resolves to the top-most level of the
14650 referenced Standard document.
14651 The names of Tables, Decades, and Procedures define container scopes. These are contained within the TDL and
14652 STD.
14653 Use of a Decade name, Table name, or Procedure name as a prefix to a type, enumerator, or type reference resolves
14654 the referenced entity starting at the top-most context of the corresponding Decade, Table, or Procedure referred,
14655 respectively.
14656 Use of a Decade name, Table name, or Procedure name in a value-expression shall be replaced by the Decade,
14657 Table, or Procedure number. It is equivalent to typing the numeric value of the Decade, Table, or Procedure number.
14658 For example, assume that A_TBL (Table 102) and A_DEC (Decade 10) were defined in the Standard document
14659 scope and that B_TBL (Table 202) and B_DEC (Decade 20) were defined in the vendor’s document scope; then the
14660 following illustrates possible interpretations:
14661 When processing fully qualified references that begin with TDL or STD as per referenceScope, the search shall
14662 begin in the leftmost scope (outer) and proceeded toward the right (the innermost scope) leading to the resolution of
14663 the reference. If the reference cannot be resolved and the outer scope is TDL and the scope qualifier is not strict,
14664 then a second search shall be performed, this time using STD instead of TDL. If the reference cannot be resolved,
14665 the search shall fail.
14666 When processing fully qualified references that begin with decScopeReference, tblScopeReference, or
14667 procScopeReference, the search shall begin in the leftmost scope (outer) and proceeded toward the right (the
14668 innermost scope) leading to the resolution of the reference. If the reference cannot be resolved, the search shall fail.
14669 When processing partially qualified references that begin with rcdIdentifier, bfldIdentifier, enumIdentifier, or
14670 constIdentifier, the initial search for the rcdIdentifier, bfldIdentifier, enumIdentifier, or constIdentifier shall begin in
14671 the current scope (the scope where the reference was made); then if not found, it shall be repeated in each of the
14672 parent scopes of the current document (TDL scope) until a match is found or until a match is not found. If the
14673 current document is vendor registered, then the search shall be repeated once in the STD scope of the registered
14674 referenced Standard. An exception to the above rule shall apply when a current scope being processed is a Table or
14675 Procedure that has been associated with a Decade scope. In this case, the Decade scope shall be searched first and
14676 then search shall continue in the TDL scope where that Decade is defined. Once all parent components were found,
14677 the reference shall be considered resolved; otherwise, it shall be considered unresolved.
14678 All rcdIdentifier, bfldIdentifier, enumIdentifier, and constIdentifier shall be unique within any inner scope where
14679 they were defined. rcdIdentifier, bfldIdentifier, enumIdentifier, and constIdentifier may be defined in an inner scope
14680 and an outer scope (upper). The first matching definition shall be the resolved one according to the search rules
14681 defined above.
14682 Example: Assume that A_RCD and A_TBL were defined in A_DEC and that A_RCD was also defined in A_TBL
14683 of a Standard document; then:
14685 References can be made to the values of any element, subelement, or constants that are defined within the structure
14686 of any table. Also, references can be made to Decade names, Table names, Procedure names, or enumerated
14687 constants. Such references, when found in a mathematical expression, shall be evaluated to values they were
14688 assigned when defined.
14689 simpleElementName ::= anyElementName / constraint : text “Shall be of type baseType other than set”;
416
DRAFT ANSI C12.19-2012
14696 S* localElement S* ) { This definition may be used to refer to run-time instantiated Table
14697 Element value. Correct dimensions (see index) shall be provided to by the
14698 application to avoid an error assert condition. A typical use is to refer to a specific
14699 value of an element for the purpose of communication or calculation.} ;
14707 psuedoElementName ::= ‘lastDimension’ { The actual number of Elements in the container of the referenced
14708 Element. See use-case example for value. } |
14709 ‘lastIndex’ { The positional index of the referencing Element in its container. For use-case,
14710 see value. } |
14711 S* psuedoElementName S* ;
14718 finalElement ::= element / constraint : BNF.baseType {Shall result in a baseType that yields the
14719 innermost Element member of the referenced Element leading to a value.} ;
418
DRAFT ANSI C12.19-2012
14730
14731 tdlScopeReference ::= tdl { The top-level scope of the active TDL document. } ;
14732 stdScopeReference ::= std { The top-level scope of the Standard document. When the Standard document is
14733 also the active document, then use of tdlScopeReference is equivalent to use of
14734 stdScopeReference. } ;
14735 decScopeReference ::= decIdentifier { The scope of the identified decade is the Decade name. } ;
14736 tblScopeReference ::= tblIdentifier { The scope of the identified table is the Table name. } ;
14737 procScopeReference ::= procIdentifier { The scope of the identified procedure is the Procedure name. } ;
14744 enumTypeReference ::= referenceScope? ((rcdIdentifier | bfldIdentifier) S* [.] S*) ? enumIdentifier {Reference
14745 to an named or unnamed enumerator. Unnamed enumerators required a
14746 derivedTypeReference to locate the final element whose name was used as a basis
14747 for the enumIdentifier. If the unnamed enumerator’s Element name is FOO, then
14748 the unnamed enumerator can be referenced as FOO_ENUM. } ;
14754 A value shall be a signed or unsigned integer, a reference to a Decade, Table, or Procedure number or a reference to
14755 a Final Element whose value can be converted to an integer. A value (in contrast to anyValue) returns an integer
14756 result based on the following conversion rules:
14757 a) NI_FMAT1 and NI_FMAT2, floatingPoint, floatingPointCHAR, and fixedPointBCD shall be truncated to
14758 an integer value.
14759 b) BCD where shall return zero if it cannot be reduced to a valid fix-point number, or be truncated to an
14760 integer value representation of the BCD number.
14762 d) STRING or CHAR elements shall return zero if their length is zero, or they hold only space; otherwise
14763 they shall return one.
14764 e) Boolean and SET members types shall return zero (false) or one (true).
14766 g) Inaccessible final elements (as per elements that are defined in a table that is unavailable in a run-time
14767 instance of the End Device table set) shall return zero.
14768 h) Inaccessible final elements (as per elements that are not available for selection due to a nonmatching
14769 condition of an IF or SWITCH clause) shall return zero.
14770 i) Inaccessible final elements (as per elements that are not available for selection due to irresolvable reference
14771 in the table set) shall return zero, and flag a table set error condition.
14772 j) The pseudo Final Element lastDimension shall return the actual number of Elements in its parent container,
14773 if the parent element is not an array; otherwise, it shall return the actual extent of its containing array (i.e.,
14774 lastDimension reports the actual number of “siblings” shared by the referred Element + 1).
14775 k) The pseudo Final Element lastIndex shall return the Element’s innermost index relative to the beginning of
14776 its defining packed record, bit field, array, or set. When the referenced Element is a packed record or a bit
14777 field, this value shall be identical to the Element index defined by the defining syntax. When the referred
14778 element is an array or a set member, then this is the index to the Element position within the array or set.
14792 value ::= anyValue /constraint : BNF.int { Evaluation is always cast to a signed integer. } ;
14793 infixMathExpression
14794 ::= mathExpression infixOp mathExpression { Infix expression
14795 following the precedence rules of BNF.infixOp. } ;
14796 cond ::= mathExpression /constraint : text “If the result is zero, it shall be
14797 interpreted as BNF.false; otherwise it shall be interpreted as
14798 BNF.true”
14799 '?' mathExpression { true case } (':' mathExpression {false case })? ;
14806 intMathExpression ::= mathExpression /constraint : BNF.int { Evaluation is always cast to a signed
14807 integer. } ;
420
DRAFT ANSI C12.19-2012
14814 multOp ::= ‘%’ { Modulus (remainder) operator } /constraint : text “casts arguments
14815 to BNF.int prior to computation” |
14816 ‘*’ { Multiplication operator } |
14817 ‘/’ { Division operator } ;
14832 bitAndOp ::= ‘&’ { Bitwise AND operator } /constraint : text “casts argument to
14833 BNF.int prior to computation” ;
14834 bitXOrOp ::= ‘^’ { Bitwise exclusive OR operator } /constraint : text “casts argument
14835 to BNF.int prior to computation” ;
14836 bitOrOp ::= ‘|’ { Bitwise OR operator } /constraint : text “casts argument to
14837 BNF.int prior to computation” ;
14838 logAndOp ::= ‘&&’ { Logical AND operator } /constraint : text “casts argument to
14839 BNF.boolValue prior to computation” ;
14840 logOrOp ::= ‘||’ { Logical OR operator } /constraint : text “casts argument to
14841 BNF.boolValue prior to computation” ;
14855 The IF condition shall be a Boolean resulting from the evaluation of an intMathExpression. If the result is zero, it
14856 shall be interpreted as false; otherwise it shall be interpreted as true.
14859 A SWITCH selection expression identifies an integer value that needs to be matched. This selection value is
14860 derived from the evaluation of an intMathExpression.
14863 Some data types do not always lend themselves to end on an Octet boundary. Where these occur, they shall be
14864 logically grouped together into a bit field definition, which shall end on an Octet boundary. For purposes of
14865 description, the bit field is treated as the basic object for appearance in the table structure. Figure G-3 illustrates a
14866 subtype structure.
14869 A bit field shall be created by bfldType. A bit field may contain one or more IF or SWITCH statements to modify
14870 its structure under some conditions. For the purpose of transport, the dimensions of a bit field and its Octet ordering
14871 shall be defined in terms of a basic data type (G.5.1, “Basic data type definitions”) as expressed in
14872 bfldAssignedType. The bit field identifier, bfldIdentifier, is the name of the derived bit field data type, and it can be
14873 referenced anywhere as if it were a built-in data type.
14874 bfldAssignedType ::= unsignedInt { Defines the data type associated with this bit field. } ;
14882 startBitInclusive ::= number { The first bit that is occupied by a bit-field subelement. } ;
14883 endBitInclusive ::= number { The last bit that is occupied by a bit-field subelement.} ;
422
DRAFT ANSI C12.19-2012
14884 bfldBitRange ::= ‘(‘ S* startBitInclusive S* ’..’ S* endBitInclusive S* ‘)’ { A bit field range selector. This
14885 identifies the staring (startBitInclusive) and ending endBitInclusive bit
14886 positions that the subelement occupies.
14887 Example: ‘UINT(2..5)’ is a four bit unsigned integer. This subelement
14888 occupies bit positions 2 through 5. } |
14889 S* bfldBitRange S* ;
14890 subType ::= (‘BOOL’ S* ‘(‘ S* startBitInclusive S* ‘)’ ) /constraint : BNF.boolValue { The
14891 startBitInclusive value identifies the bit position occupied by this
14892 Boolean. } |
14893 (‘INT’ bfldBitRange) /constraint : GEN_CONFIG_TBL.INT_FORMAT { A
14894 signed integer. } |
14895 ‘UINT’ bfldBitRange { An unsigned integer. } |
14896 (‘FILL’ bfldBitRange) /constraint : BNF.zeroValue { Bit range shall be set to
14897 zero. } |
14898 S* subType S* ;
14899 bfldIf ::= if S+ condition then S+ bfldMember* (S* else bfldMember* S*)? end S* ‘;’ |
14900 S* bfldIf S* ;
14903 bfldCaseMember ::= (case S+ (number | constValue) (S* ’..’ S* (number | constValue))? S* ‘:’ bfldMember+)*
14904 (default S* ‘:’ bfldMember+) |
14905 S* bfldCaseMember S* ;
14907 A SET is a sizedType member of the type set. It is a collection of Booleans, eight Booleans per Octet. The
14908 dimension of a SET is thus measured in Octets, where each Octet is an atomic element. Each Boolean member of
14909 the SET is a final element.
14910 SETs are transmitted as an array of UINT8; however, when using array notation, indices to SET members refer to
14911 the Boolean bits and not to the Octet. When transmitted, indices and offsets refer to the UINT8 atomic element. The
14912 first Octet transmitted contains bit 0 through 7, of the SET, and the second Octet contains bits 8 through 15, as
14913 shown in Figure G-4.
14916 Example: The following illustrates the method for specifying which member of a set is to be accessed.
14917 …
14918 FLAGS_USED : SET(16);
14919 …
14920 IF FLAGS_USED[1] THEN
14921 …
14922 END;
14926 Note that in this last example, UDT_0_TBL used in this context is interpreted as the corresponding table number
14927 (84). Also FLAGS_USED[1] is a reference to the second bit (bit 1) of the first Octet of 16 in the SET.
14929 Repetitions of the same data type, used to describe a single element, can be grouped together in an array. Array
14930 elements are indexed starting with zero. Arrays are always transmitted from element zero to the last element, as
14931 shown in Figure G-5. The order of transmission of an element is a function of the data type being used.
14934 Arrays are one-dimensional. Multidimensional arrays can be created indirectly through the use of arrays of arrays.
14935 Array dimension elements defined in the same local scope shall be defined before they are used in a dimension
14936 statement; otherwise, they shall be resolved in the referenced scope.
14937 When the dimension of the array, as expressed by intMathExpression, is zero, then the array content collapses to a
14938 zero elements and the array elements shall not be transported.
14939 Referenced final elements of array-elements that collapsed due to zero dimension, or due to other exclusion (such as
14940 rcdIf or rcdCase or un-implemented table), shall evaluate to 0 (numeric or binary elements), space (CHAR or
14941 STRING elements), or FALSE (set or Boolean elements).
14942 When evaluated for sizing of an array, the evaluation of intMathExpression shall produce a non-negative integer.
14943 The size in Octets of each element of an array shall be identical to the size of any other element of the same array.
14944 When CHAR is used as the array type, there is no justification implied and each char is treated as a single array
14945 member. When STRING is used in the array type, there is no justification implied for the individual CHAR
14946 members of the string and all CHARS within the STRING shall be transported. It is suggested that a space character
14947 (0x20) be used as fill or pad.
14949 Packed records are used to group element types, anyElementType, together as a new derived data type. A packed
14950 record can contain one or more IF statements or SWITCH statements to modify its structure conditionally. The
14951 content (elements) and size of a packed record may vary with changing run-time IF or SWITCH conditions.
14952 All derived types and referenced elements shall be defined before they are used in a packed record.
14953 rcdType ::= type S+ rcdIdentifier S* ’=’ S* packed S+ record S+ rcdMember* end (S+
14954 memberProperties*)? S* ‘;’ |
14955 S* rcdType S* ;
424
DRAFT ANSI C12.19-2012
14960 rcdIf ::= if S+ condition S+ then S+ rcdMember* (S* else rcdMember* S*)? end S* ‘;’ |
14961 S* rcdIf S* ;
14964 rcdCaseMember::= (case S+ (number | constValue) (S* ‘..’ S* (number | constValue)) ? S* ‘:’ rcdMember+ )* {
14965 Implements one or more rcdMember if the switch evaluation matches the numeric
14966 range stated in the case expression. }
14967 (default S* ‘:’ rcdMember+)? { The default implementation when none of the case members
14968 matches the switch value. } |
14969 S* rcdCaseMember S* ;
14971 Constants are symbolic representations of integer values that may be used in any math expression, and to reference
14972 ARRAY and SET elements by position. Table names, decade names, and procedure names are implicit constants
14973 derived from their respective number.
?
14974 constValue ::= ((referenceScope | enumTypeReference S* [.] S*) constIdentifier) / constraint :
14975 BNF.anyNumber { Evaluates to the corresponding constant numeric value. } |
14976 tblIdentifier / constraint : BNF.tblNumber { Evaluates to the corresponding table number. } |
14977 decIdentifier / constraint : BNF.decNumber { Evaluates to the corresponding decade
14978 number. } |
14979 procIdentifier / constraint : BNF.procNumber { Evaluates to the corresponding procedure
14980 number. } |
14981 S* constValue S* ;
14983 Tables expose and instantiate one packed record into a final data structure. This packed record shall be resolved
14984 before it is used in a table. The table element also introduces a table scope. All types and enumerators that are
14985 defined inside a table scope are local to the table’s scope without conflict with all other types that may be defined in
14986 any other scope.
14990 Procedures represent actions that can be performed by the End Device. A procedure is initiated by writing to Table
14991 7, and the result is retrieved by reading Table 8. The rcdReference in the request part of this statement defines the
14992 PARM_RCD in Table 7. Similarly, the rcdReference in the response part of this statement defines the
14993 RESP_DATA_RCD in Table 8.
14997 The procDefinition introduces a procedure definition and a procedure scope. All types defined inside a procedure
14998 scope are local to the procedure’s scope without conflict with all other types that may be defined in any other scope.
14999 In addition to providing yet another scope, procedure elements also provide implicit instructions to construct the
15000 parameters and the response elements in Table 7, PROC_INITIATE_TBL, and Table 8, PROC_RESP_TBL.
15006 The invocation of the procDefinition directive effectively “builds” an extension to PROC_INITIATE_TBL and
15007 PROC_RESPONSE_TBL.
15008 Example: The following shows the result of invoking procDefinition for standard procedure numbers X, Y, and Z,
15009 and manufacturer procedures X and Y.
15045 The index of each implied IF statement is the procedure number, thus ensuring that the extension is not order of
15046 declaration dependent. The listing below illustrates this process when applied to Table 7, PROC_INITIATE_TBL:
15047
426
DRAFT ANSI C12.19-2012
Example index values for elements of PROC_FORMAT_RCD that are found in Table 7, PROC_INITATE_TBL
Procedure # Element Name Element Index
PROC 0
SEQ_NBR 1
0 PARM. STANDARD 2.0
1 PARM. STANDARD 2.0
2 PARM. STANDARD 2.0
3 PARM. STANDARD 2.0
4 PARM. STANDARD 2.0
PARM. STANDARD.PROC_DATA_4.LIST 2.0.4.0
5 PARM. STANDARD.PROC_DATA_5 2.0.5
PARM. STANDARD.PROC_DATA_5.LIST 2.0.5.0
PARM. STANDARD.PROC_DATA_5.ENTRIES_READ 2.0.5.1
6 PARM. STANDARD PROC_DATA_6 2.0.6
PARM. STANDARD.PROC_DATA_6.ED_MODE 2.0.6.0
3 PARM. MANUFACTURER.PROC_DATA_3 2.1.3
PARM. MANUFACTURER.PROC_DATA_3.FEATURE 2.1.3.0
PARM. MANUFACTURER.PROC_DATA_3.KEY 2.1.3.1
Etc.
15048
15050 Single-Line Math (SLM) Expressions represent information that is provided by the programmer of the End Device
15051 for use as information for the Utility or service provider. The information is a mathematical expression, similar to an
15052 equation that may be used in a spreadsheet. The expression is typically used to clarify the implementation or to
15053 describe how a Table Element value is computed and its dependence on other Table Elements. When used, SLM is
15054 encoded as STRINGs in Tables. The following BNF notation defines the construction rules for SLM.
15055 Note that this release of the Standard does not provide a list of “built-in” functions.
15062 slmLocalElement ::= localElement | number { Number is the index of the element. } ;
15067 slmFinalElement ::= slmElement /constraint : BNF.baseType { Shall result in a path to a base type that
15068 yields a Final Element. } ;
15071 slmIntMathExpression
15072 ::= slmMathExpression /constraint : BNF.int { Evaluation is always cast to a
15073 signed integer. } ;
15074 slmInfixMathExpression
15075 ::= slmMathExpression infixOp slmMathExpression { Infix expression following the
15076 precedence rules of BNF.infixOp. } ;
15084 slmCond ::= slmMathExpression '?' slmMathExpression { true case } (':' slmMathExpression
15085 {false case })? ;
15086 slmValueOrReference
15087 ::= slmMathExpression | slmElement { The Element may be Final Element or the name
15088 of an array, set, or derived type. This facilitates the use of an expression
15089 in arguments to function that operates on a data structure not only a
15090 Final Element. Example: The SLM expression
15091 “@SUM(GEN_CONFIG_TBL.STD_TBLS_USED)” may sum all the
15092 set bits in the set, yielding the number of Standard Tables used by the
15093 End Device. } ;
15095 slmFunction ::= 'SL' S* '(' slmIntMathExpression ')' { Alias for the result returned by the SLM
15096 expression found at index BNF.arrayElementName [
15097 BNF.slmIntMathExpression] entry of the table that contains the ‘SL’
15098 term. This is equivalent to a verbatim replacement of the expression
15099 IN(BNF.slmIntMathExpression) with the SLM expression found at the
15100 integer index BNF.slmIntMathExpression of the array of the
15101 referencing SLM. } |
15102 'IN' S* '(' slmIntMathExpression ')' { Alias for the value sensed, measured of
15103 reported value by the associated source selection at index
15104 BNF.slmIntMathExpression in the array of source selections that
15105 related to this SLM. Example: Assume we have three sources: RMS
15106 Volts (Vrms at index 0), RMS Current (Irms at index 1), and Apparent
15107 Power (VA at index 2); then the SLM expression "IN(0) * IN(1)"
15108 indicates that the Apparent Power VA was computed as the product of
15109 Irms and Vrms. } |
15110 'OU' '(' slmIntMathExpression ')' ('=' slmMathExpression)? { Alias for sensing and
15111 optional driving an output control BNF.slmIntMathExpression. } |
15114 S* slmFunction S* ;
428
DRAFT ANSI C12.19-2012
15117 Example 2: The value shown in example 1 (assuming it to be at index 3) plus 10:
15118 “SL(3) + 10”
15119 This is equivalent to entering “IN(5) * 0.7 + 10”
15120 Example 3: Assuming that source select 0 is Volts RMS and source select 1 is Ampere RMS and source select 2 is
15121 VA apparent, then the following expression expresses VA apparent:
15122 “IN(0) * IN(1)”
15123 Example 4: If the average demand is >1000, then report 1, otherwise 0, based on the demands reported in Table 28,
15124 at indices 2 and 6:
15125 “((ST(27).PRESENT_DEMAND[0].DEMAND_VALUE +
15126 ST(27).PRESENT_DEMAND[6]. DEMAND_VALUE) > 1000) ? 1 : 0”
15127 Example 5: The total energy consumed across Phase A (index 2), Phase B (index 4) and Phase C (index 6):
15128 “@SUM(ST(27).PRESENT_VALUE[2], ST(27).PRESENT_VALUE[4],
15129 ST(27).PRESENT_VALUE[6])”
15133 Properties represent information that can be attached to an End Device Document Form definition or any item in the
15134 definition. A single property or multiple properties can be attached to an End Device, Table, Procedure, PACKED
15135 RECORD, or BIT FIELD types; or any member of a PACKED RECORD, BIT FIELD, or SET declaration such as
15136 Element, Sub-element, or Final Element.
15137 The DESCRIPTION property is common across all items. This property allows information about an item to be
15138 specified.
15139 The LABEL property is common across all items. It allows a short meaningful string to be associated with an item
15140 definition. A label is intended to be an alternate presentation text for the name of the item. The name of an item shall
15141 be used in TDL expression only.
15142 The ENUM property enumerates a list of valid values for an element. This property can only be applied to a final
15143 element. Values that are not explicitly listed shall be considered invalid.
15144 The ASSERT property provides a validation expression for an element or describes an inter-field or inter-table
15145 constraint.
15146 text ::= ["] anyChar* ["] { Semi colons are allowed within text as they are distinguished
15147 from the terminal ‘;’ by virtue that they are enclosed within double
15148 quotes.
15149 A double quote may be present by prefixing it with the escape character.
15150 e.g., "This is a valid \"text\" ; followed by a semicolon" ; } ;
15153 enumerator ::= enum S+ (enumIdentifier S* '=' S*)? enumMember* end S* ';' |
15154 S* enumerator S* ;
15180 The BNF.syntax production-rule is the starting point for encoding the Document Form Table-definitions.
430
DRAFT ANSI C12.19-2012
15182 Annex H
15183 (informative)
15184 Date-time elements conversion algorithm (TM_FORMAT=3 and
15185 TM_FORMAT=4)
15186 The following algorithm shows how date and time fields represented using TM_FORMAT=3 or TM_FORMAT=4
15187 are converted to a date and time in the Gregorian calendar. This algorithm includes the complete leap years rules
15188 handling: Leap years are all years divisible by 4, with the exception of those divisible by 100, but not by 400. This
15189 algorithm can be used before or after the “Algorithm for converting from transported End Device time to End
15190 Device operational time” as defined in the intro of Decade 5. This algorithm is provided as reference, and any other
15191 equivalent algorithms can be used instead.
15234 As an example, calling this method with a timestamp set to 19 241 336 return:
15236 This result can further be converted to a specific locale by adding the time zone offset and DST offset. If we take
15237 “America/New York” (the locale) as an example, we need to add a -5:00 time zone offset and a 1:00 DST offset.
432
DRAFT ANSI C12.19-2012
15240 Annex I (normative) XML file format of TDL and EDL files
15242 The Standard files C1219TDL-1997.xml and C1219-2008.xml define the Standard tables syntax and meta-data
15243 using XML notation for the first and second versions of this standard. These can be used to generate the Document
15244 Form described in Clause 5, “Syntax”. The XML-element production rules defined in this annex are directly based
15245 on the standard’s structure, defined types, and constraints. The TDL/XML meta-data can provide additional
15246 structural information and constraints, some of them are exposed in the published text of Clause 6, “Special data
15247 types” and Clause 9, “Tables”. The EDL/XML meta-data and values can provide additional information and
15248 constraints on actual data values, such as Default Sets used and element indices. The hierarchical relation among all
15249 XML/TDL and XML/EDL elements and their attribute is presented using XML DTD syntax. The DTD described
15250 within together with the BNF definitions provide sufficient framework for the creation of an automated advanced
15251 metering infrastructure.
15253 In Figure I-1 through Figure I-5, we use the following terms to document the TDL/EDL XML Form framework.
15254 a) C1219TDLSchema.xsd, a reference schema for TDL/XML file structure and constraints validation.
15255 b) C1219TDLTransform.xsl, is an XML style sheet, that can be used to transform the End Device TDL file
15256 into a formatted document, which looks like Clause 6, “Special data types” and Clause 9, “Tables”.
15257 c) C1219TDLIndicesTransform.xsl, is an XML style sheet, that can be used to transform the End Device TDL
15258 file into a formatted document, which can be placed in Annex D, “(normative) Indices for partial table
15259 read/write access”.
15260 d) C1219TDLEDLTransform.xsl is an XML style sheet, that can be used to transform the End Device TDL
15261 file into C1219TDL-xxxx-EDLSchema.xsd document, which is a validation template for creating constant,
15262 data and Default Sets to be placed in a file like C1219TDL-xxxx-DefaultSet.xml.
15263 e) C1219TDL-xxxx-EDLSchema.xsd, a reference schema for EDL/XML file structure and constraints
15264 validation.
15265 f) C1219EDLTransform.xsl, is an XML style sheet, that can be used to transform the C12.19 EDL files (such
15266 as Default Sets) into a formatted document, which can be placed in Annex C, “(normative) Default Sets for
15267 Decade Tables”, of this standard.
C1219TDLSchema.xsd
C1219TDLTransform.xsl
XSL Processor
C1219TDL-xxxx.xml
Document Form of
Section 9
15268
15269
15270 Figure I-1—Production of the Document Form (Document Format of Section 9.0, “Tables”) from the
15271 TDL XML File
C1219TDLSchema.xsd
C1219TDLEDLTransform.xsl
XSL Processor
C1219TDL-xxxx.xml
C1219TDL-xxxx-EDLSchema.xsd
15272
15273
15274 Figure I-2—Production of Exchange Data Language (EDL) validation schema file from a
15275 TDL XML File
C1219TDL-xxxx-EDLSchema.xsd
C1219EDLTransform.xsl
XSL Processor
C1219TDL-xxxx-DefaultSet.xml
Document Form of
Annex C
15276
15277
15278 Figure I-3—Production of the Document Form (Document Format of Annex C, “Default Sets for
15279 Decade Tables”) from the EDL XML Default Sets file
434
DRAFT ANSI C12.19-2012
C1219TDLSchema.xsd
C1219TDLIndicesTransform.xsl
XSL Processor
C1219TDL-xxxx.xml
Document Form of
Annex D
15280
15281
15282 Figure I-4—Production of final element indices (Document Format of Annex D, “Indices for partial
15283 table read/write access”) from a TDL XML file
15284 Similarly, End Device manufacturers can use the above production rules, to process End Device TDL documents
15285 and publish Manufacturer Tables, implementation variations, and constants (see Figure I.5).
Referenced Standards
C1219TDLSchema.xsd
C1219TDLTransform.xsl
C1219TDL-xxxx.xml
C1219TDL-xxxx-DefaultSet.xml
<MfgEdClass>-Constants.xml
XSL Processor
or AMI Application
<Utility-Site>-Constants.xml
C1219TDL-xxxx-EDLSChema.xsd
<MfgEdClass>.doc
<MfgEdClass>-EDLSChema.xsd
15286
15287
15288 Figure I-5—From XML to AMI application—the pathways for using C12.19 Standard and
15289 Manufacturer-defined TDL/XML tables for Documentation, EDL, and
15290 AMI application processing
15291 Figure I-1 through Figure I-5 depict the following files as inputs or outputs to XSL and AMI processors. These are
15292 described as follows:
C1219TDLTransform.xsl Input for :XSL processor Table pseudo PASCAL publication rules
Used by: Document Form producer used to generate the Document Form.
C1219EDLTransform.xsl Input for :XSL processor Publication rules used to generate the
Used by: Document Form producer Document Form of constant values and
Default Sets used to be assumed in Table
Elements embedded in the End Device.
436
DRAFT ANSI C12.19-2012
15295 The formats of all elements and attributes found in a TDL/XML File Form is described next.
15297 The <tdl> element is a container of the Table syntax and meta-data (descriptions) of either one Standard-defined
15298 tables subset or one Manufacturer-defined tables subset. The union of the Standard-defined tables subset and the
15299 Manufacturer-defined tables subset makes up the entire table set of an End Device.
15300 A tables subset document can describe Standard table definitions, revise an existing Standard into a new Standard,
15301 or implement existing Standards using Manufacturer-supplied <tdl> files.
15302 There may be only one <tdl> root element in a single XML file.
15304 <!ELEMENT tdl ((description, extension?)?| enumerator | packedRecord | bitField | decade | table |
15305 procedure | qualify | assert)*>
438
DRAFT ANSI C12.19-2012
title Published in the title section of The text to display in a graphic context or at the beginning of the
the document. document. Example: “ANSI C12.19-2008 Utility Industry
Standard Tables”.
validation Published in the title section of When the standards organization registers a TDL file or when a
the document. manufacturer registers a device class, then the registrar shall insert
a validation text (reference to signature) that can be used as an
indication that the registered file has been validated. The
validation of the TDL file assumes the following steps (see
XMLSig-2008 for full details):
1) Inclusion of the signature reference URI as the
validation content.
2) XML Canonicalization of the entire TDL file.
3) Production of a "detached" signature that contains a
digest of the XML that was generated by the registrar
and made available separately to the user.
date Published in the title section of The date this document was last revised.
the document.
15317
15319 A new section heading is generated, and then the TDL title version, deviceClass, standard, registry, isoBranch,
15320 date, and validation attributes may be expressed in the section’s heading.
15322 The <description> element is a text-formatting container that accepts simple formatting directives that are a
15323 restricted subset of XHTML (XHTML-2002). It provides a text area to describe the parent element or provide
15324 general inter-element descriptions. All elements, except for <description> and <extension>, shall minimally provide
15325 an optional <description> child element.
15327 <!ELEMENT description (#PCDATA | br | p | pre | blockquote | ol | ul | dl | b | i | u | tt | sp | sub | sup | object | table |
15328 h1 | h2 | h3 )*>
15336 The following paragraph and inline entry elements may be used within any <description>.
15355
15356 <!ELEMENT li (#PCDATA | br | p | pre | blockquote | ol | ul | dl | b | i | u | tt | sp | sub | sup | object | table
15357 )*>
15358
15359 <!ELEMENT ul (li)*>
15360 <!ATTLIST ul style ( bullet | dash | star ) #IMPLIED>
15361
15362 <!ELEMENT li (#PCDATA | br | p | pre | blockquote | ol | ul | dl | b | i | u | tt | sp | sub | sup | object | table
15363 )*>
15364 <!ATTLIST li value (CDATA) #IMPLIED>
15365
15366 <!ELEMENT dl (dt, dd )*>
15367
15368 <!ELEMENT dd (#PCDATA | br | p | pre | blockquote | ol | ul | dl | b | i | u | tt | sp | sub | sup | object | table
15369 )*>
15370 <!ATTLIST dd value (CDATA) #IMPLIED>
15371
15372 <!ELEMENT dt (#PCDATA | br | p | pre | blockquote | ol | ul | dl | b | i | u | tt | sp | sub | sup | object | table
15373 )*>
15374 <!ATTLIST dt value (CDATA) #IMPLIED>
15375
15376 <!ELEMENT (b | i | u | tt | sub | sup)
15377 (#PCDATA | br | p | pre | blockquote | ol | ul | dl | b | i | u | tt | sp | sub | sup | object | table
15378 )*>
15379
15380 <!ELEMENT object (#PCDATA)>
15381 <!ATTLIST object align (top|bottom|left|right) #IMPLIED
15382 border (CDATA) “0”
15383 declare (true|false) “false”
15384 data (CDATA) “http://www.ansi.org/C1219TDL/object/inline-data”
15385 type (image/svg) “image/svg”
15386 height (CDATA) #IMPLIED
15387 width (CDATA) #IMPLIED
15388 >
15389
15390 <!ELEMENT table (caption?, col*, thead?, tfoot?, tbody+)>
15391 <!ATTLIST table align (left | center | right ) #IMPLIED
15392 border (CDATA) #IMPLIED
15393 frame (box|void|above|below|border|lhs|rhs|hsides|vsides) #IMPLIED
15394 rules (all|rows|cols|none) #IMPLIED
15395 title (CDATA) #IMPLIED
15396 width (CDATA) #IMPLIED >
15397
15398 <!ELEMENT caption (#PCDATA | br | p | pre | blockquote | ol | ul | dl | b | i | u | tt | sp | sub | sup | object | table
15399 )*>
15400 <!ATTLIST caption align (top | bottom ) #IMPLIED
15401
15402 <!ELEMENT col EMPTY>
15403 <!ATTLIST col align (left | right | center | justify ) #IMPLIED
15404 span (CDATA) “1”
15405 valign (top | middle | bottom) #IMPLIED
15406 width (CDATA) #IMPLIED>
15407
442
DRAFT ANSI C12.19-2012
15438
15441 I.2.2.14 <caption>, <col>, <thead>, <tfoot> and <tbody> sub-element usage of <table>
15442 These elements follow the description defined in XHTML (XHTML-2002); as a result, their inner elements will not
15443 be described in great detail since they are identical in construction and in interpretation.
15444
15446 The formatted text in any of the main section bodies, type descriptions, and element descriptions is produced.
15475 </description>
15476 ….
15477 </table>
15481 This table defines the History Log codes to be written to the History Log. It also defines which specific procedures
15482 and/or table writes are to be acknowledged in the History Log. For a specific procedure or table to be acknowledged,
15483 three independent tests shall all be true:
15484 1. The procedure or table shall be used in the End Device, per the GEN_CONFIG_TBL (Table 00).
15485 2. The appropriate History Log code shall be used, per this table.
15486 3. The procedure or table shall be requested to be acknowledged, per this table.
15487
15488
15490 Application-specific extensions. The extension element is made available to implementers of AMI application and
15491 vendors who need to embed additional information in support of their application. The content of this element is not
15492 defined by this standard.
15496 None.
15498 None.
Annex I / TDL XML File Format of the TDL Document 447
<description> element
DRAFT ANSI C12.19-2012
15500 The assert element is provided to document relationships among Table data Elements and optionally to alert the
15501 application about inconsistencies or unexpected End Device settings.
15508 Each <condition> element of <assert> contains one assertion condition, encoded as BNF.mathExpression, which
15509 evaluates to a Boolean. If any of the <condition> elements evaluate to true then an assertion is raised.
15513 The named <enumerator> element introduces an association between a numeric, string, or Boolean data value, and a
15514 descriptive label. It also provides for associating array or set elements with constants and labels. For example, it may
15515 be more efficient, storage-wise, to designate numeric values to days of the week, say 0, 1, 2, 3, 4, 5, and 6; but for
15516 humans or Graphical User Interfaces (GUIs), it is easier to relate to Sunday, Monday, Tuesday, and so on. The
15517 enumerator element binds numbers to labels. There are two flavors to the enumerator type. The first is a named type
15518 when it is introduced outside an element or subelement body, and it can be referenced for association with a Final
15519 Element. The second is unnamed, as it is introduced inline within an Element or Subelement body. The first unique
15520 instance of an un-named enumerator can be accessed using the Final Element’s name suffixed with
15521 BNF.enumSuffix., as if it were to be a named enumerator.
450
DRAFT ANSI C12.19-2012
15541 The named enumerator is not listed in the syntax section of the Document Form. The name and its enumerations are
15542 presented in the description section that documents the enumerator name.
15543
15550 ….
15551 </ enumerator>
15572 The use of an unnamed enumerator shall be restricted to the immediate children of <element>, <subElement>,
15573 <array>, or <set>.
15574 An unnamed enumerator can be referenced using the name attribute of its parent element suffixed by
15575 BNF.enumSuffix, if the resulting name is unique within the scope of the parent element. The interpretation of all the
15576 attributes of the unnamed enumerator is identical to those of the named enumerator.
15578 The <enum> element introduces a single enumeration value or a range of enumeration values.
452
DRAFT ANSI C12.19-2012
15590 Introduces a BNF.enumMember in Definitions in types and elements description. The definitions shall preserve all
15591 constraints expressed in the subelement <description>, and the attributes value, endValueInclusive, text.
15604 text="Full table access and index-count methods are supported." />
15605 <enum value="3"
15606 text="Both methods 1 and 2 of data access methods are supported." />
15607 </enumerator>
15608 </subElement>
15609 The following may be a partial output generated by a TDL processor in the description section:
15622 Default text used to label unknown values. It is also the preferred initialization value for unprogrammed fields or
15623 uninitialized Final Elements.
15632 Introduces a BNF.enumDefault in Definitions in types and elements description. The definitions shall preserve all
15633 constraints expressed in the subelement description, and the attributes value and text.
15635 The <packedRecord> element introduces the PACKED RECORD derived type. This maps to the BNF. rcdType.
15636 This type is defined to be local to the parent scope (either Standard or Manufacturer context) TDL, decade, table, or
15637 procedure (see G.6.1, “Scoping rules”).
454
DRAFT ANSI C12.19-2012
15639 <!ELEMENT packedRecord (description, extension?)?, (element | array | set | if | switch | assert)*>
15640 <!ATTLIST packedRecord
15641 name CDATA #REQUIRED
15642 replace CDATA #IMPLIED
15643 override CDATA #IMPLIED
15644 redefine CDATA #IMPLIED
15645 showRedefined ( true | false ) “false”
15646 strict ( true | false ) "true"
15647 atomic ( true | false ) "false"
15648 label CDATA #IMPLIED
15649 accessibility (READWRITE| READONLY| WRITEONLY) “READWRITE “
15650 deprecated (true | false) “false”
15651 metrological (true | false) “false”>
456
DRAFT ANSI C12.19-2012
15655 The <packedRecord> definitions are mapped to BNF.rcdType in the syntax section, and all the descriptions and
15656 enumerations are expressed in the description section.
15667 The following may be a partial output generated by a TDL processor in the syntax section:
15672 The following may be a partial output generated by a TDL processor in the description section:
15679 The <element> element binds a packed record data type to an identifier. This type is defined to be local to the
15680 packed record scope.
458
DRAFT ANSI C12.19-2012
15700 The <element> definitions are mapped to BNF.rcdMember, and all the descriptions and enumerations are expressed
15701 in the description section.
15712 The following may be a partial output generated by a TDL processor in the syntax section:
15718 The following may be a partial output generated by a TDL processor in the description section:
15720 GEN_CONFIG_RCD
15721 FORMAT_CONTROL_1 See FORMAT_CONTROL_1_BFLD.
15722 FORMAT_CONTROL_2 See FORMAT_CONTROL_2_BFLD.
15724 The <array> element binds a collection of a single type of identifier. This type is defined to be local to the
15725 containing packed record scope, and it maps to BNF.arrayType.
460
DRAFT ANSI C12.19-2012
15744 The <array> definitions are mapped to BNF.rcdMember of type BNF.arrayType, and all the descriptions and
15745 enumerations are expressed in the description section.
15753 The following may be a partial output generated by a TDL processor in the syntax section:
15756 The following may be a partial output generated by a TDL processor in the description section:
15761 The <set> element binds a collection of a Boolean values to an identifier. This type is defined to be local to the
15762 containing packed record scope, and it maps to BNF.set member of BNF.sizedType.
462
DRAFT ANSI C12.19-2012
15780 The <set> definitions are mapped to BNF.rcdMember of type BNF.sizedType of BNF.set, and all the descriptions
15781 and enumerations are expressed in the description section.
15792 The following may be a partial output generated by a TDL processor in the syntax section:
15794 The following may be a partial output generated by a TDL processor in the description section:
15799
15801 The <if> element introduces a Boolean expression. The <then> child element is to be processed when the expression
15802 evaluates to true. The optional <else> child element is to be processed by the application when the expression
15803 evaluates to false.
464
DRAFT ANSI C12.19-2012
15812 The <if> definitions are mapped to BNF.rcdIf in the syntax section. Any <description> elements that precede or are
15813 contained in the <if> element may be produced in the syntax section prior to the introduction of the BNF.rcdIf
15814 syntax enclosed within the comment characters ‘{‘ and ‘}’.
15816 The <then> element introduces Table Elements that are present when the <if>’s parent attribute condition evaluates
15817 to true.
15819 <!ELEMENT then ((description, extension?)? | element | array | set | if | switch | assert)*>
15821 None.
15823 The <then> definitions are mapped to the BNF.rcdMember member’s THEN clause of the BNF.rcdIf clause. If this
15824 element contains a <description> element, then the description may be produced in the syntax section following to
15825 the THEN token. This description shall be enclosed within the comment characters ‘{‘ and ‘}’. All elements
15826 enclosed will be published in the syntax section. All Elements’ descriptions and enumerations may be published in
15827 the description section.
15829 The <else> element introduces Table Elements that are present when the <if>’s parent attribute condition evaluates
15830 to false.
15832 <!ELEMENT else (((description, extension?)? | element | array | set | if | switch | assert)*)>
15834 None.
15836 The <else> definitions are mapped to the BNF.rcdMember member’s ELSE clause of the BNF.rcdIf clause. If this
15837 element contains a <description> element, then the description may be produced in the syntax section following to
15838 the ELSE token. This description shall be enclosed within the comment characters ‘{‘ and ‘}’. All elements enclosed
15839 will be published in the syntax section. All Element descriptions and enumerations may be published in the
15840 description section.
15845 <description>
15846 Manufacturer's firmware revision number. Changes in value imply
15847 product corrections or improvements. Recommend use of '0'
15848 to designate preproduction or prototyping software.
15849 </description>
15850 </element>
15851 <if condition="GEN_CONFIG_TBL.ID_FORM != 0">
15852 <description>
15853 This is an example of dual use of <b>BCD</b> or <b>STRING</b> to
15854 express an <b>ID_FORM</b>.
15855 </description>
15856 <then>
15857 <description>Encoded as <b>BCD(8)</b>.</description>
15858 <element name="MFG_SERIAL_NUMBER" type="BCD" length="8">
15859 <description>
15860 Manufacturer's serial number for the End Device.
15861 16 BCD digits or CHARs.
15862 </description>
15863 </element>
15864 </then>
15865 <else>
15866 <description>Encoded as <b>STRING(16)</b>.</description>
15867 <element name="MFG_SERIAL_NUMBER" type="STRING" length="16">
15868 <description documentation="false">
15869 Manufacturer's serial number for the End Device.
15870 16 BCD digits or CHARs.
15871 </description>
15872 </element>
15873 </else>
15874 </if>
15875 …
15876 </packedRecord>
15877 The following may be a partial output generated by a TDL processor in the syntax section:
15890 The following may be a partial output generated by a TDL processor in the description section:
15892 MANUFACTURER_IDENT_RCD
466
DRAFT ANSI C12.19-2012
15893 …
15901 The <switch> element introduces a selector expression. The <case> child elements are to be included when
15902 startValueInclusive/endValueInclusive attributes match the evaluated expression of the selection attribute. The
15903 optional <default> child element is to be processed by the application when the expression evaluates none of the
15904 available selection.
15912 The <switch> definitions are mapped to the BNF.rcdCase syntax. If this element contains a <description> element,
15913 then the description may be produced in the syntax section just prior to the SWITCH token. This description shall be
15914 enclosed within the comment characters ‘{‘ and ‘}’.
15916 The <case> definitions are mapped to the BNF.rcdCaseMember, which introduces the CASE token in the syntax
15917 section.
15919 <!ELEMENT case (((description, extension?)? | element | array | set | if | switch | assert)*)>
15920 <!ATTLIST case
15921 startValueInclusive CDATA #REQUIRED
15922 endValueInclusive CDATA #IMPLIED>
15923
15927 The <case> definitions are mapped to the BNF.rcdCaseMember CASE token and related ranges. The
15928 startValueInclusive and the optional endValueInclusive range attributes are expressed only in the syntax section
15929 followed by the Elements definitions. All Element descriptions and enumerations may be published in the
15930 description section. If this element contains a <description> element, then the description may be produced in the
15931 syntax section just prior to the CASE token. This description shall be enclosed within the comment characters ‘{‘
15932 and ‘}’.
15934 The <default> definitions are mapped to the BNF.rcdCaseMember DEFAULT token syntax.
15936 <!ELEMENT default ((description, extension?)? | element | array | set | if | switch | assert)*>
15938 None.
15940 The <default> definitions are mapped to the default clause of the BNF.rcdCaseMember DEFAULT syntax followed
15941 by the Elements definitions. All Element descriptions and enumerations may be published in the description section.
15942 If this element contains a <description> element, then the description may be produced in the syntax section just
15943 prior to the DEFAULT token. This description shall be enclosed within the comment characters ‘{‘ and ‘}’.
468
DRAFT ANSI C12.19-2012
15977 The following may be a partial output generated by a TDL processor in the syntax section:
15988 The following may be a partial output generated by a TDL processor in the description section:
15990 G_GAS_DEVICE Element present when the End Device is a gas meter.
15991 See G_GAS_DEVICE_RCD for details.
15992 W_WATER_DEVICE Element present when the End Device is a water
15993 meter. See W_WATER_DEVICE for details.
15994 E_ELECTRIC_DEVICE Element present when the End Device is an
15995 electricity meter. See E_ELECTRIC_DEVICE for
15996 details.
15998 The <bitField> element introduces the BIT FIELD OF derived type. This maps to the BNF.bfldType. This type is
15999 defined to be local to the parent scope (either Standard or Manufacturer context) TDL, decade, table, or procedures
16000 (see G.6.1, “Scoping rules”).
470
DRAFT ANSI C12.19-2012
472
DRAFT ANSI C12.19-2012
16019 The <bitField> definitions are mapped to BNF.bfldType in the syntax section, and all the descriptions and
16020 enumerations are expressed in the description section.
16061 The following may be a partial output generated by a TDL processor in the syntax section:
16066 The following may be a partial output generated by a TDL processor in the description section:
16082 The <subElement> element binds a bit field member type to an identifier. This type is defined to be local to the bit
16083 field scope.
474
DRAFT ANSI C12.19-2012
16104 The <subElement> definitions are mapped to BNF.bfldMember, and all the descriptions and enumerations are
16105 expressed in the description section.
16106 For a Document Form publication example, see the definition of <bitField> above.
16108 The <if> element provides for encoding alternative syntax based on a conditional expression.
16116 The <if> definitions are mapped to BNF.bfldIf in the syntax section. Any <description> elements that precede or are
16117 contained in the <if> element may be produced in the syntax section prior to the introduction of the BNF.bfldIf
16118 syntax and be enclosed within the comment characters ‘{‘ and ‘}’.
476
DRAFT ANSI C12.19-2012
16119 For a Document form publication example, see <if>/<then>, <if>/<else> of <packedRecord>.
16121 The <then> element introduces Table Subelements that are present when the <if>’s parent attribute condition
16122 evaluates to true.
16126 None.
16128 The <then> definitions are mapped to the BNF.bfldMember member’s THEN clause of the BNF.bfldIf clause. If this
16129 element contains a <description> element, then the description may be produced in the syntax section following to
16130 the THEN token. This description shall be enclosed within the comment characters ‘{‘ and ‘}’. All elements
16131 enclosed will be published in the syntax section. All Subelements’ descriptions and enumerations may be published
16132 in the description section.
16134 The <else> element introduces Table Subelements that are present when the <if>’s parent attribute condition
16135 evaluates to false.
16139 None.
16141 The <else> definitions are mapped to the BNF.bfldMember member’s ELSE clause of the BNF.bfldIf clause. If this
16142 element contains a <description> element, then the description may be produced in the syntax section following to
16143 the ELSE token. This description shall be enclosed within the comment characters ‘{‘ and ‘}’. All elements enclosed
16144 will be published in the syntax section. All Element descriptions and enumerations may be published in the
16145 description section.
16146 For a Document form publication example, see <if>/<then>, <if/else> of <packedRecord>.
16148 The <switch> element introduces a selector expression. The <case> child elements are to be included when
16149 startValueInclusive/endValueInclusive attributes match the evaluated expression of the selection attribute. The
16150 optional <default> child element is to be processed by the application when the expression evaluates none of the
16151 available selection.
16152 For a Document form publication example, see <switch>/<case>, <switch>/<default> of <packedRecord>.
16160 The <switch> definitions are mapped to the BNF.bfldCase syntax. If this element contains a <description> element,
16161 then the description may be produced in the syntax section just prior to the SWITCH token. This description shall be
16162 enclosed within the comment characters ‘{‘ and ‘}’.
16164 The <case> definitions are mapped to the BNF.bfldCaseMember, which introduces the CASE token in the syntax
16165 section.
16174 The <case> definitions are mapped to the BNF.bfldCaseMember CASE token and related ranges. The
16175 startValueInclusive and the optional endValueInclusive range attributes are expressed only in the syntax section
16176 followed by the Subelements definitions. All Subelement descriptions and enumerations may be published in the
16177 description section. If this element contains a <description> element, then the description may be produced in the
16178 syntax section just prior to the CASE token. This description shall be enclosed within the comment characters ‘{‘
16179 and ‘}’.
16181 The <default> definitions are mapped to the BNF.bfldCaseMember DEFAULT token syntax.
478
DRAFT ANSI C12.19-2012
16185 None.
16187 The <default> definitions are mapped to the default clause of the BNF.bfldCaseMember DEFAULT syntax
16188 followed by the Subelements definitions. All Subelement descriptions and enumerations may be published in the
16189 description section. If this element contains a <description> element, then the description may be produced in the
16190 syntax section just prior to the DEFAULT token. This description shall be enclosed within the comment characters
16191 ‘{‘ and ‘}’.
16193 The decade element introduces a Decade. A Decade is a common processing scope, and it can contain a maximum
16194 of ten Tables of any one kind. Standard-defined or Manufacturer-defined Tables or procedures may also be
16195 associated with a Decade, thus, effectively increasing the total number of tables in a Decade. All types (see
16196 <packedRecord>, <bitField>, and <enumerator> elements) defined inside a decade scope are local to the Decade’s
16197 scope without conflict with all other types that may be defined in any other scope (see G.6.1, “Scoping rules”).
16198 However, these types are visible to associated tables or procedures, as if they were introduced inside the decade
16199 scope.
16210 Introduces a Decade section whose name is obtained from the name attribute, number from the number attribute,
16211 and description from the <description> element. Following the Decade description, the Decade scope type
16212 definition syntax and type descriptions are presented, followed by the Tables defined in the Decade. The Tables
16213 shall be ordered in increasing table number.
16220 The following may be a partial output generated by a TDL processor in the description section:
16223 …
16229 The <table> Element introduces a Table definition and a Table scope. All types (see <packedRecord>, <bitField>,
16230 and <enumerator> elements) defined inside a table scope are local to the table’s scope without conflict with any
16231 other type that may be defined in any other scope.
480
DRAFT ANSI C12.19-2012
482
DRAFT ANSI C12.19-2012
16252 The <table> definitions are mapped to BNF.tableDefinition in a new Table section. All the Table scope defined
16253 (contained) descriptions, enumerators, packed records, and bit fields are published in this section.
16297
16298
16299
16300 The following may be the output generated by a TDL processor in the new Table section:
16304 Table 56 Non-default properties: Atomic = true, Role = DATA, Accessibility = READONLY.
16318 TIME_REMAIN_RCD
16319 SUMM_TIER_TIME_REMAIN 0..65535 Minutes remaining until the next tier change that
16320 affects summations. Used when the capability flag
16321 ACT_TIME_TOU_TBL.
16322 SEPARATE_SUM_DEMANDS_FLAG (Table 51)
16323 = TRUE.
16324 DEMAND_TIER_TIME_REMAIN
16325 0..65535 Minutes remaining before the next tier change that
16326 affects demands. Used when the capability flag
16327 ACT_TIME_TOU_TBL.
16328 SEPARATE_SUM_DEMANDS_FLAG (Table 51)
16329 = TRUE.
16330 TIER_TIME_REMAIN 0..65535 Minutes remaining before the next tier change.
16331 SELF_READ_DAYS_REMAIN 0..255 Days remaining before the next scheduled Self-read.
16333 The <procedure> element introduces a procedure definition that maps to BNF.procDefinition and creates a
16334 Procedure scope. All types defined inside a procedure scope are local to the procedure’s scope without conflict with
16335 all other types that may be defined in any other scope. In addition to providing yet another scope, procedure
16336 elements also provide implicit instructions to construct the parameters and the response elements in Table 7,
16337 PROC_INITIATE_TBL, and Table 8, PROC_RESP_TBL (see G.14, “Procedures”, for details).
484
DRAFT ANSI C12.19-2012
16339 <!ELEMENT procedure ((description, extension?)?, (enumerator | packedRecord | bitField | assert)*, extend?,
16340 extend?)>
16341 <!ATTLIST procedure
16342 name CDATA #REQUIRED
16343 number CDATA #REQUIRED
16344 label CDATA #IMPLIED
16345 associate CDATA #IMPLIED>
16346 atomic ( true | false ) "true"
16347 accessibility (UNIMPLEMENTED | WRITEONLY | READWRITE)
16348 “READWRITE”
16349 deprecated (true | false) “false”
16350 metrological (true | false) “false”
16351 class ((CDATA) | STD) “STD”>
atomic The text “Non-default The Procedure is monolithic, when true. When communicating
properties: Atomic = value” in an atomic Procedure, it shall be transported and presented as one
the description of the Procedure unit, including all of its internal element members. The
shall be generated. communication protocol shall only utilize a full-table read or full-
table write service request when referencing this procedure via
Table 7 or Table 8.
accessibility The text “Non-default Implementer’s intended design for read and write access for this
properties: Accessibility = Procedure. Possible values are:
value” in the description of the
Procedure shall be generated. READWRITE (default): This Procedure (Table 7 and Table 8)
can be read or written from or to the End Device.
WRITEONLY: This Procedure can be read or written from or to
the End Device. It contains one or more Elements that may
not read back exactly as written.
UNIMPLEMENTED: This Procedure is not implemented in this
End Device; therefore, it should not be listed in
GEN_CONFIG_TABLE.
16355 The <procedure> definitions are mapped to BNF.procDefinition in a new Procedure section. All the Procedure
16356 scope defined (contained) descriptions, enumerators, packed records, and bit fields are published in this section.
486
DRAFT ANSI C12.19-2012
16370 </element>
16371 <element name="ENTRIES_READ" type="UINT16">
16372 <description>Number of entries confirmed.</description>
16373 </element>
16374 </packedRecord>
16375 <extend type="UPDATE_LAST_READ_ENTRY_PROC.PARM_DATA_RCD"
16376 target="PROC_INITIATE_TBL.STD_PARM_RCD"/>
16377 </procedure>
16378 The following may be the output generated by a TDL processor in the new Procedure section:
16381 When this procedure is invoked, the End Device attempts to reduce the list Element NBR_UNREAD_ENTRIES by
16382 the value specified. To execute this procedure, the initiator shall in addition be required to have access to the
16383 procedure and write access to the table containing the selected list(s).
16393 UPDATE_LAST_READ_ENTRY_RCD
16394 LIST List selected. See
16395 RESET_LIST_POINTERS_PROC.LIST_ENUM.
16398 The extend element within the procedure element introduces parameter and response field extensions to Table 7,
16399 STD.PROC_INITIATE_TBL, and Table 8, STD.PROC_RESP_TBL, respectively. When an extension is not
16400 provided, then the value of the PARM or RESP is NIL.
16410 See the example in definition I.2.25.3, “<procedure> Document Form”. For more discussion and examples, see
16411 G.14, “Procedures”.
16413 The qualify element enables the Standard and the End Device Manufacturer extensions to the Standard to provide
16414 additional information about decades, tables, and procedures as a whole or about single elements that are defined
16415 within. General qualifications can be provided by the Standard (as published in C12.19). These are considered to be
16416 suggestions to implementers. Additional qualifications or re-qualifications can be provided by manufactures when
16417 they register the device classes (new meter models) to describe the actual restrictions, capabilities, and features of
16418 their device. Therefore, a manufacturer device class can add, replace, or extend any Standard qualification.
16422 None.
16424 When expressing the qualified information in Document form as part of the Standard, then it shall document the
16425 corresponding types, Tables, and Elements where defined, inline, as if the types, Tables, or Elements were qualified
488
DRAFT ANSI C12.19-2012
16426 at the definition time. When expressing the qualified information in Document form as part of a specific End Device
16427 registration, then it shall document the corresponding changes to types, Tables, and Elements in a tabular form that
16428 identifies the components affected and the nature of the qualification applied.
16430 Qualifies the properties of a predefined Table. Any supplied attribute value acts to override the value set at
16431 definition time. For example, if a Table is defined to be atomic (atomic=“true”) and it is re-qualified as
16432 atomic=“false”, then it is no longer atomic.
16450 Qualifies the properties of a predefined Procedure. Any supplied attribute value acts to override the value set at
16451 definition time.
16452
16466 Qualifies the properties of a predefined Table Element. Any supplied attribute value acts to override the value set at
16467 definition time.
490
DRAFT ANSI C12.19-2012
16483 Qualifies the properties of a predefined PACKED RECORD type. Any supplied attribute value acts to override the
16484 value set at definition time.
16496 Qualifies the properties of a predefined BIT FIELD type. Any supplied attribute value acts to override the value set
16497 at definition time.
16507 The assert element is provided to document additional relationships among Table and Elements to enable application
16508 alert processing.
16518 The EDL XML Form is described in this subclause. It is an expression of the TDL/EDL architecture described in
16519 I.2. The EDL XML Form is used to express End Device data values that make up the device tables in a manner that
16520 is independent solely on the C12.19 Tables and independent of the communication protocol used to acquire them.
16521 The EDL XML Form provides the following features:
16522 a) XML encoding of Default Sets used values assigned to the Standard’s FLC and FLC+1 tables.
16523 b) XML encoding of constants or fixed values that may be assigned to select elements within Standard Tables
16524 by the Standard.
492
DRAFT ANSI C12.19-2012
16525 c) XML encoding of constant or fixed values that may be assigned to select elements of Standard or
16526 Manufacturer tables by the End Device manufacturer.
16527 d) XML encoding of Final Element values that were read from or written to an End Device by any
16528 communication protocol (e.g., C12.18, C12.21, or C12.22).
16529 The EDL XML Form file is associated with one specific End Device model; thus, it is uniquely associated with an
16530 End Device class. This property implies that the structure of the EDL file is derived from the data model of all tables
16531 (Standard and Manufacturer) and all procedures (Standard and Manufacturer) that are defined for that End Device
16532 class.
16533 The EDL XML Form can be validated by EDL schemas like C1219TDL-xxxx-EDLSchema.xsd (for exclusively
16534 Standard-based End Devices) or by augmented schemas like <MfgEdClass>-EDLSChema.xsd (for Manufacturer
16535 expansion on the Standard). In this context, xxxx stands for the Standard’s year of publication and <MfgEdClass> is
16536 the registered End Device class. These schemas can be automatically generated from the Standard and Manufacturer
16537 TDL XML Form using an XSL transform, such as the C1219TDLEDLTransform.xsl and related technology.
16538 Thereafter, Default Sets, constant values, and End Device communicated Final Element values can be imported and
16539 exported using the EDL XML Forms, like C1219TDL-xxxx-DefaultSet.xml or <MfgEdClass>.xml, where xxxx is
16540 the Standard’s year of publication and <MfgEdClass> is the registered End Device Class (although the use of
16541 <MfgEdClass> does not have to be encoded in the name of the EDL XML Form).
16542 The EDL XML Form file may also be processed to yield a printable EDL Document Form for inclusion in the
16543 Standard’s or manufacturer’s documentation.
16545 The <edl> element is a container of the End Device Default Sets, constants, and imported or exported Final Element
16546 data values. It provides some limited meta-data, such as Table name, Table number, Table source being the Standard
16547 or the Manufacturer, and the names of Final Elements and their index position within the containing packed record
16548 or bit field. The <edl> element also documents the End Device class attribute (deviceClass), which identifies the
16549 matching TDL XML Form file of that End Device class.
16550 A table’s subset document can describe Standard table definitions, extend (or revise) an existing Standard into a new
16551 Standard, or extend existing an Standard using Manufacturer-supplied extensions.
16552 There shall be only one <edl> element in an EDL XML Form file. The target EDL XML Form namespace and the
16553 EDL Schema namespace shall be derived uniquely from the End Device class registered via a TDL XML Form file.
16555 The <edl> element has the following attributes and child elements.
16569 A Default Set values section is introduced (when Default Sets are provided) or a new constants section is introduced
16570 (when constants are provided); otherwise a new End Device values section is introduced. The Default Sets section is
16571 Annex C, “(normative) Default Sets for Decade Tables”.
16573 The <description> element is an optional text-formatting element that accepts simple formatting directives. It
16574 provides a text area to document the EDL.
494
DRAFT ANSI C12.19-2012
16576 Identical to the DTD definition of the <description> element of the TDL XML Form.
16580 In order to facilitate TDL XML Form driven Table names and Element names generation, the Standard introduces
16581 the BNF definitions for XML-element macro types. These need to be substituted for the actual names of the
16582 indicated content (in this case, an Element name). The following macros are defined:
16583 ${tableName} ::= BNF.tblIdentifier / constraint : text { The name of a Table obtained from the
16584 name attribute of a <table> element or ‘EUDT_TBL’. } /
16585 match : (‘/tdl//table/@name’ | ‘EUDT_TBL’);
16586 ${limitingTableName} ::= BNF.tblIdentifier / constraint : text { The name of a FCL+1 Table as obtained
16587 from the name attribute of a <table> element that is also
16588 qualified as “LIMITING”. } / match :
16589 ‘/tdl//table/@name[@role=“LIMITING”]’ ;
16590 ${elementName} ::= BNF.anyElementName
16591 / constraint : text { Any Element or Final Element that may
16592 be used as a component in the path that leads to a the value of
16593 a Final Element. } (
16594 / match : ‘/tdl//element/@name’ |
16595 / match : ‘/tdl//subElement/@name’ |
16596 / match : ‘/tdl//array/@name’ |
16597 / match : ‘/tdl//set/@name’ );
16598 For example, if the TDL XML Form contains entries like:
16612 is a valid production rule for the above Table entries in an EDL file.
16640 The following resolution may provide some relief in some implementation; however, it does not provide a universal
16641 resolution to the uniqueness constraint in all implementations. The root cause is that in this standard it is possible to
16642 define different Element types for Elements that have a same name within a given hierarchy level in a Table
16643 definition. For this reason, and to provide relief, it shall be permissible for implementers not to enforce the rule
16644 described below and not to enforce the EDL schema uniqueness constraint on element types.
16645 ANSI C12.19 promotes the construction of types that do not meet the above constraint. The Schema Component
16646 Constraint violation can be seen clearly in the definition of Table 5, Device Identification Table.
16655 It is rather obvious that this table contains the Element IDENTIFICATION, which repeats two times in the same
16656 packed record. Also, each IDENTIFICATION definition has different types.
16657 This problem can only manifest itself in elements delimited by IF / THEN / ELSE or SWITCH / CASE /
16658 DEFAULT statements (see Document Form syntax).
496
DRAFT ANSI C12.19-2012
16660 The EDL XML form definition introduces the macro notation ${if-switch-clause} to be used ahead of any collection
16661 of EDL elements that are derived from TDL elements contained within a <then>…</then>, <else>…</else>,
16662 <case>…</case>, or <default>…</default> members of the <if> and <switch> XML elements. Each instance of the
16663 ${if-switch-clause} has to be unique so that the Schema Component Constraint is not violated. Otherwise this
16664 element shall be ignored by all processors.
16666 constraint : text { Each instance of this element shall be automatically generated
16667 by the EDL processor so that the Schema Component Constraint is not violated. } ;
16669 The <${if-switch-clause}> element is optional unless its absence can lead to a Schema Component Constraint
16670 violation.
16673 Using the above DEVICE_IDENT_TBL example, it can be demonstrated that the following XML EDL file
16674 element names are uniquely consistent with the XML schema constraint rules.
16675 Case 1:
16684 Case 2:
16694 The <defaultSet> element is an optional Standards placeholder for up to 254 Default Sets (1..255). Each default set
16695 provides information about the End Device FLC+1 Tables and assumed values.
16703 A tabulation of all Final Elements listed as one column for the table indicated by the ${limitingTableName}
16704 attribute per default set number indicated by the number attribute. These are sorted first by table number followed
16705 by the element index.
498
DRAFT ANSI C12.19-2012
16738 <RESET_EXCLUDE_FLAG>true</RESET_EXCLUDE_FLAG>
16739 <BLOCK_DEMAND_FLAG>true</BLOCK_DEMAND_FLAG>
16740 <SLIDING_DEMAND_FLAG>false</SLIDING_DEMAND_FLAG>
16741 <THERMAL_DEMAND_FLAG>false</THERMAL_DEMAND_FLAG>
16742 <SET1_PRESENT_FLAG>false</SET1_PRESENT_FLAG>
16743 <SET2_PRESENT_FLAG>false</SET2_PRESENT_FLAG>
16744 <FILLER>0</FILLER>
16745 </SOURCE_FLAGS>
16746 <NBR_UOM_ENTRIES>0</NBR_UOM_ENTRIES>
16747 <NBR_DEMAND_CTRL_ENTRIES>1</NBR_DEMAND_CTRL_ENTRIES>
16748 <DATA_CTRL_LENGTH>1</DATA_CTRL_LENGTH>
16749 <NBR_DATA_CTRL_ENTRIES>2</NBR_DATA_CTRL_ENTRIES>
16750 <NBR_CONSTANTS_ENTRIES>1</NBR_CONSTANTS_ENTRIES>
16751 <CONSTANTS_SELECTOR>2</CONSTANTS_SELECTOR>
16752 <NBR_SOURCES>2</NBR_SOURCES>
16753 </ACT_SOURCES_LIM_TBL>
16754 …
16755 </defaultSet>
16756 <defaultSet number="3">
16757 <ACT_SOURCES_LIM_TBL>
16758 <SOURCE_FLAGS>
16759 <PF_EXCLUDE_FLAG>true</PF_EXCLUDE_FLAG>
16760 <RESET_EXCLUDE_FLAG>true</RESET_EXCLUDE_FLAG>
16761 <BLOCK_DEMAND_FLAG>true</BLOCK_DEMAND_FLAG>
16762 <SLIDING_DEMAND_FLAG>false</SLIDING_DEMAND_FLAG>
16763 <THERMAL_DEMAND_FLAG>false</THERMAL_DEMAND_FLAG>
16764 <SET1_PRESENT_FLAG>false</SET1_PRESENT_FLAG>
16765 <SET2_PRESENT_FLAG>false</SET2_PRESENT_FLAG>
16766 <FILLER>0</FILLER>
16767 </SOURCE_FLAGS>
16768 <NBR_UOM_ENTRIES>0</NBR_UOM_ENTRIES>
16769 <NBR_DEMAND_CTRL_ENTRIES>3</NBR_DEMAND_CTRL_ENTRIES>
16770 <DATA_CTRL_LENGTH>1</DATA_CTRL_LENGTH>
16771 <NBR_DATA_CTRL_ENTRIES>2</NBR_DATA_CTRL_ENTRIES>
16772 <NBR_CONSTANTS_ENTRIES>1</NBR_CONSTANTS_ENTRIES>
16773 <CONSTANTS_SELECTOR>2</CONSTANTS_SELECTOR>
16774 <NBR_SOURCES>2</NBR_SOURCES>
16775 </ACT_SOURCES_LIM_TBL>
16776 …
16777 </defaultSet>
16778 <defaultSet number="4">
16779 <ACT_SOURCES_LIM_TBL>
16780 <SOURCE_FLAGS>
16781 <PF_EXCLUDE_FLAG>false</PF_EXCLUDE_FLAG>
16782 <RESET_EXCLUDE_FLAG>false</RESET_EXCLUDE_FLAG>
16783 <BLOCK_DEMAND_FLAG>true</BLOCK_DEMAND_FLAG>
16784 <SLIDING_DEMAND_FLAG>false</SLIDING_DEMAND_FLAG>
16785 <THERMAL_DEMAND_FLAG>false</THERMAL_DEMAND_FLAG>
16786 <SET1_PRESENT_FLAG>false</SET1_PRESENT_FLAG>
16787 <SET2_PRESENT_FLAG>false</SET2_PRESENT_FLAG>
16788 <FILLER>0</FILLER>
16789 </SOURCE_FLAGS>
16790 <NBR_UOM_ENTRIES>0</NBR_UOM_ENTRIES>
16791 <NBR_DEMAND_CTRL_ENTRIES>1</NBR_DEMAND_CTRL_ENTRIES>
16792 <DATA_CTRL_LENGTH>1</DATA_CTRL_LENGTH>
Annex I / EDL XML Format 499
<defaultSet> Element (Child of <edl>)
DRAFT ANSI C12.19-2012
16793 <NBR_DATA_CTRL_ENTRIES>2</NBR_DATA_CTRL_ENTRIES>
16794 <NBR_CONSTANTS_ENTRIES>1</NBR_CONSTANTS_ENTRIES>
16795 <CONSTANTS_SELECTOR>2</CONSTANTS_SELECTOR>
16796 <NBR_SOURCES>2</NBR_SOURCES>
16797 </ACT_SOURCES_LIM_TBL>
16798 …
16799 </defaultSet>
16800 </edl>
16801 The following may be a partial tabular output generated by an EDL processor:
16802 The following values are assigned to the Decade and Decade+1 table values based on the value of the TABLE 00
16803 Element DEFAULT_SET_USED.
16806 The <${limitingTableName}> element is a container for Final Element default set values of FLC+1, Function
16807 Limiting Control Tables, which are strictly used for defining Default Sets.
16808
16809
500
DRAFT ANSI C12.19-2012
16818 A tabulation of all final elements listed as one column for the table indicated by the ${limitingTableName} attribute
16819 for default set number indicated by the number attribute, and by the Final Element index.
16821 The <data> element is an optional Standard or Manufacturer data value placeholder for zero or more self-consistent
16822 Table value-sets. A self-consistent Table value-set is a collection of tables and values that together with the
16823 registered device class form a data set that can be interpreted uniformly and unambiguously. A Table value-set
16824 contains constants and imported or exported values. All the values expressed and contained within one <data>
16825 element are related and shall originate from one instance of a source or destination data set that belongs to one End
16826 Device values and instance.
16830 One tabulation for each <data> element. Each <data> element tabulation consists of a list of all found Tables and
16831 their Final Elements’ name and value. The Elements and Final Elements of each Table are sorted by their Element
16832 index.
16834 The <${tableName}> element is a container for Final Element data values. The minimum requirement is that all
16835 Elements and Final Elements be present in the order defined in corresponding Table definitions and the inner-most
16836 elements shall be Final Elements.
16837
16847 A tabulation of all final elements listed as one column for the table indicated by the ${tableName}, sorted by the
16848 Final Element index. See <${elementName}> for an example.
16850 The <${elementName}> element maps any TDL Element name of type <element>, <subElement> <array>, <set>,
16851 and ultimately their Final Element values.
502
DRAFT ANSI C12.19-2012
16860 Non Final Element ${elementName} is published by its name. If the element is not the first Element in the Final
16861 Element’s list, then it is preceded with a period ‘.’. If the Element is a Final Element, then the its data value is
16862 presented. A number of presentation formats variations may be possible.
16871 The following may be a partial tabular output generated by an EDL processor:
16872 Alternatively, the following may be a partial relative textual output generated by an EDL processor:
16873 Alternatively, the following may be an absolute textual output generated by an EDL processor:
16876 The <entry> element is a container of TDL <array> elements or TDL <set> elements.
index :: = ([0-9]+\S*([\-]\S*[0-9]+)?)(\S*,\S*([0-9]+\S*([\-
]\S*[0-9]+)?))* { A number, a range of numbers separated by ‘-‘;
or a collection of numbers or ranges each separated by a ‘,’}.
binary Hex dump of the values. The Element’s entry value encoded using hexadecimal notation
exactly as transmitted to or received from the End Device. The
content of this attribute shall span recursively all of the Final
Elements contained within. When this element is present, then
the data set shall also minimally include
GEN_CONFIG_TBL.FORMAT_CONTROL_1,
GEN_CONFIG_TBL.FORMAT_CONTROL_2, and
GEN_CONFIG_TBL. FORMAT_CONTROL_3 binaries or
their Final Elements to guarantee the interpretability of the binary
content.
16883
16885 Array entry is presented by an empty set or brackets, [], or using the index, such as: [n].
16919 The <pendingHeader> element is a container for an event descriptor of a pending event that will trigger or has
16920 triggered the Table values provided. This element shall be present when the instance attribute of the
16921 <${tableName}> element is set to “pending”.
16936 Publish an expression of the pending event that will activate this table or an expression of the pending event and the
16937 table activation date of an activated table in front of all related Element values.
16939 Final Element #PCDATA values shall be encoded as shown in the table below, where the prefix “xsd” in front of the
16940 “EDL XML Form Type” column represents the association between the schema namespace prefix for the referenced
16941 XML schema namespace “http://www.w3.org/2001/XMLSchema”. The actual data type definition shall be derived
16942 from the corresponding TDL XML File that shares the same End Device class.
16944 a) Some computer languages do not support unsigned integer types. Special care shall be taken when
16945 processing unsigned types in systems capable of handling only signed types.
16946 b) Some computer languages do not support unsigned integer types. In addition, they cannot handle signed
16947 integers that are encoded with more than 64 bits. These systems need to apply extra special handling for the
16948 type UINT64. It is recommended that the use of UINT64 data type be minimized by End Device
16949 manufacturers.
INT8 xsd:byte
INT16 xsd:short
INT24 xsd:int
INT32 xsd:int
INT40 xsd:long
INT48 xsd:long
INT56 xsd:long
INT64 xsd:long
506
DRAFT ANSI C12.19-2012
FLOAT32 xsd:double
FLOAT64 xsd:double
FLOAT_CHAR6 xsd:double
FLOAT_CHAR12 xsd:double
FLOAT_CHAR21 xsd:double
FIXED_BCD4 xsd:double
FIXED_BCD6 xsd:double
FIXED_BCD8 xsd:double
NI_FMAT1 xsd:double
NI_FMAT2 xsd:double
DATE xsd:date
RDATE xsd:unsignedShort Maps to/from RDATE_RCD during TDL processing.
16953 <device-class-root-oid> ::= 2.16.124.113620.1.19 {ISO registered absolute object identifier root for End
16954 Device Classes. This value shall be encoded for the
16955 purpose of transmission using ISO/IEC 8825-1:2002
16956 [BER] as:
16957 06 07 60 7C 86 F7 54 01 13H }
16958 The following table summarizes the list of objects actually defined:
16961 Absolute C12.19 Device Class identifiers shall be globally unique. To ensure this, users of the Standard may register
16962 a Device Class Universal Identifier. It is not necessary to register a Device Class Universal Identifier already defined
16963 by this Standard. However, any other Device Class Universal Identifier shall be registered. This identifier shall be
16964 common to all End Devices that share the same End Device operating model, data structures, and operational
16965 constants (i.e., C12.19 TDL and C12.19 EDL). This identifier may be used by an upstream device to interpret
16966 incoming data structures and operational assumptions made by the manufacturer of the End Device.
16967 Device Classes will be assigned on a “first come, first served” basis. The first 128 Device Class IDs are reserved for
16968 registration of one-way devices. Preferred Device Class IDs may also be requested and assigned if available.
16969 Also submitted with the registration request is a simple XML-text TDL file (as defined in this standard) and an
16970 optional EDL if desired. For one-way devices, EDL and TDL shall include enough information to completely
16971 describe any unsolicited messages that the C12.22 Node might generate. For two-way devices, no specific
16972 information is required to be included in the EDL and TDL.
16973 Registration
16974 Information on registration can be found through the North American End Device Registration Authority
16975 (NAEDRA)19, or an equivalent registration authority.
19
Available from NAEDRA at http://www.naedra.org.
508
DRAFT ANSI C12.19-2012
16987 a) The first step in the sequence is the locating of conversion factors in Decade 1. This step is necessary to
16988 obtain the correct conversion factors, scalars, multipliers, and unit of measure that need to be applied.
16989 b) The second step in the sequence is the de-normalization of interval data elements. This step is needed only
16990 when processing interval data of load profile or Quality-of-service (Decade 6 or Decade 15).
16991 c) The third step in the sequence is the conversion to engineering units at the point of metering. This step is
16992 always required in order to scale the data as sensed by the End Device where the End Device is attached.
16993 d) The fourth step in the sequence is the conversion to engineering units at the point of delivery. This step is
16994 needed only when it is desired to scale the data as seen at the point of delivery (e.g., kWh consumed for
16995 billing data).
16996 e) Finally, it is necessary to assign to the result the correct engineering units. This final step provides two key
16997 attributes:
16999 2) Assignment if correct power-of-ten prefix expression to the converted value (e.g., value reported is in
17000 kWh).
17001 These steps are illustrated in the following subclauses using pseudo-code. Table Elements are shown in BOLD.
17002 Pseudo-code variables are shown in BOLD-ITALICS. Pseudo-code is illustrated by box enclosure.
17004 When a Table Final Element represents a register value, it is also associated with a data source selection Element in
17005 a corresponding control Table. This association is based on the Element’s placement index in its containing array.
17006 For example, the Final Element CURRENT_REG_DATA_TBL . TOT_DATA_BLOCK . SUMMATIONS[ N ]
17007 is the Nth summation in an array of summation retrieved from in Table 23. The corresponding data source selector
17008 that is association with this Final Element may be retrieved from DATA_SELECTION_TBL .
17009 SUMMATION_SELECT[ N ], whose type is STD.SOURCE_SELECT_RCD. The packed record
17010 STD.SOURCE_SELECT_RCD contains the Final Element SI = SOURCE_INDEX, which links the above
17011 register with the source-attributes Element, SOURCES_TBL.SOURCES_LINK [SI]. This Element contains
17012 selection-flags (per SOURCES_TBL.SOURCE_LINK_BFLD) that identify the conversion factors used from
17013 Table Elements found in Decade 1, “Data Sources Tables”, as shown in the table below:
17014
17015 Array indices SI_UOM, SI_DMD, SI_CTL, and SI_CST are the indices of the referenced Elements that need be
17016 retrieved from Table 12 through Table 15 to affect calculations. When the dimension of any one of
17017 NBR_UOM_ENTRIES, NBR_DEMAND_CTRL_ENTRIES, NBR_DATA_CTRL_ENTRIES, or
17018 NBR_CONSTANTS_ENTRIES that are found in ACT_SOURCES_LIM_TBL is the same as
17019 ACT_SOURCES_LIM_TBL.NBR_SOURCES, the value of the corresponding SI_UOM, SI_DMD, SI_CTL,
17020 SI_CST shall be set to SI. Otherwise the index is computed by performing a “bit walk” across all flags in
17021 SOURCES_TBL and by counting all the flags that are set to TRUE, as shown in the pseudo-code below:
17039 IF ACT_SOURCES_LIM_TBL.NBR_DEMAND_CTRL_ENTRIES ==
17040 ACT_SOURCES_LIM_TBL.NBR_SOURCES THEN
17041 SI_DMD = SI
17042 ELSE
17043 SI_DMD = -1
17044 IF SOURCES_TBL.SOURCES_LINK[SI].DEMAND_CTRL_FLAG == TRUE THEN
17045 K = 0
17046 WHILE K <= SI REPEAT
17047 IF SOURCES_TBL.SOURCES_LINK[K].DEMAND_CTRL_FLAG == TRUE
17048 THEN
17049 SI_DMD = SI_DMD + 1
17050 END
17051 K = K + 1
17052 END
510
DRAFT ANSI C12.19-2012
17053 END
17054 END
17055 IF ACT_SOURCES_LIM_TBL.NBR_DATA_CTRL_ENTRIES ==
17056 ACT_SOURCES_LIM_TBL.NBR_SOURCES THEN
17057 SI_CTL = SI
17058 ELSE
17059 SI_CTL = -1
17060 IF SOURCES_TBL.SOURCES_LINK[SI].DATA_CTRL_FLAG == TRUE THEN
17061 K = 0
17062 WHILE K <= SI REPEAT
17063 IF SOURCES_TBL.SOURCES_LINK[K].DATA_CTRL_FLAG == TRUE THEN
17064 SI_CTL = SI_CTL + 1
17065 END
17066 K = K + 1
17067 END
17068 END
17069 END
17070 IF ACT_SOURCES_LIM_TBL.NBR_CONSTANTS_ENTRIES ==
17071 ACT_SOURCES_LIM_TBL.NBR_SOURCES THEN
17072 SI_CST = SI
17073 ELSE
17074 SI_CST = -1
17075 IF SOURCES_TBL.SOURCES_LINK[SI].CONSTANTS_FLAG == TRUE THEN
17076 K = 0
17077 WHILE K <= SI REPEAT
17078 IF SOURCES_TBL.SOURCES_LINK[K].CONSTANTS_FLAG == TRUE THEN
17079 SI_CST = SI_CST + 1
17080 END
17081 K = K + 1
17082 END
17083 END
17084 END
17085 The above algorithm yields the values SI_UOM, SI_DMD, SI_CTL, and SI_CST. Positive values are index entries
17086 into the corresponding conversion factors of the related Table 12 through Table 15. Negative values imply that there
17087 is no applicable information available for that source.
17088 Note that when Table 16 is not retrievable from the End Device (meter) or from the an EDL file, then there shall be
17089 an assumed correspondence of 1:1 between each entry index in Table 16 and index into the corresponding entry in
17090 Table 12 through Table 15.
17095 The content of VALUE represents the Final Element-value read from a Table. The remainder of this annex describes
17096 how to apply the necessary conversion factors to convert VALUE to physically meaningful engineering units (e.g.,
17097 Wh) when the End Device is an electricity meter.
17099 Register Elements that represent interval data that are retrieved from load profile Tables or Quality-of-service Tables
17100 need to be “de-normalized” before proceeding with the remaining algorithm conversions described in the next
17101 subclause. This preliminary conversion applies to register Elements that are found in load profile Table 64 through
17102 Table 67 and Quality-of-service Table 155 through Table 158.
17103 Note that the reference to Elements from ACT_LP_TBL assumes that when ACT_LP_TBL is not available from
17104 the End Device, then the application shall obtain values of the needed Elements by consulting other available
17105 resources in the following order of priority: (1) utilize the FLC/FLC+1 rules; (2) search the EDL file (when
17106 available); (3) use Default Sets (if available); and (4) otherwise assume a value of 0 (of FALSE) to all numeric
17107 Elements.
17108 CH = The load profile or Quality-of-service channel number that is associated with VALUE
17109 DIVISOR = SCALAR = 1
17110
17111 IF VALUE from Table 64 && ACT_LP_TBL.LP_FLAGS.SCALAR_DIVISOR_FLAG_SET1 THEN
17112 SCALAR = LP_CTRL_TBL.SCALARS_SET1[ CH ]
17113 DIVISOR = LP_CTRL_TBL.DIVISOR_SET1[ CH ]
17114 END
512
DRAFT ANSI C12.19-2012
17163 With source selection indices SI, SI_UOM, SI_DMD, SI_CTL, and SI_CST at hand and a de-normalized VALUE,
17164 it is now the time to apply the internal metering conversion factors. For a better understanding of the intended use of
17165 SET1_CONSTANTS and SET2_CONSTANTS in the following algorithms, consult Figure K-1.
Point of delivery
voltage
transformer
277V / 120V = 2.0833
SET2_CONSTANTS.RATIO_P1
Point of metering
17190 At this point VALUE should be the End Device reading at the point of metering. This is because
17191 SET1_CONSTANTS represent the intermediary transformer that is closest to the End Device or embedded within
514
DRAFT ANSI C12.19-2012
17192 the End Device, whereas SET2_CONSTANTS represent the intermediary transformer that is next in proximity to
17193 the End Device (e.g., the utility metering transformer).
17194 Note that the reader needs to be made aware of a possible condition where ACT_SOURCES_LIM_TBL.
17195 SET2_PRESENT_FLAG is TRUE and CONSTANTS_TBL.SELECTION [ SI_CST ].
17196 GENERIC_CONSTANTS. SET_FLAGS. SET_APPLIED_FLAG is also TRUE; i.e., the register value reported
17197 was already converted internally by the End Device to engineering units at the point of delivery. When this
17198 condition is true, then VALUE computed in this subclause already represents the point of delivery and not the point
17199 of metering.
17201 With source selection indices SI, SI_UOM, SI_DMD, SI_CTL, and SI_CST at hand and VALUE scaled in the
17202 previous steps, it may be desirable to apply conversion factors so that VALUE represents the measurement as
17203 “would be seen” at the point of delivery as consumed by the load and billed by the Utility.
17214 At this point, the VALUE represents the measurement at the point of delivery. The engineering units can be derived
17215 from the Unit of Measure Table (Table 12). This calculation cannot be performed when Table 12 cannot be retrieved
17216 from the End Device or from an EDL.
17223 The following operation can be done (as an alternative to the units assigned in K.5) to normalize the VALUE to the
17224 fundamental unit of measure. Fundamental units is a set of units for physical quantities from which every other unit
17225 can be generated (e.g., Watt-hour). This calculation cannot be performed when Table 12 cannot be retrieved from
17226 the End Device or from an EDL.
17251 At this point, VALUE is the reading at the point of delivery with all the fundamental engineering unit-attributes
17252 applied.
17254 Let us assume the application retrieved the following Final Element values from the End Device:
516
DRAFT ANSI C12.19-2012
Integral of
commodity usage
rate over a
specified period of
time T1 to T2
Values have the
units stated in the
ID_CODE × Hour
(Energy units), i.e.,
Wh
UOM_ENTRY_TBL.UOM_ENTRY[SI_UOM].MULTIPLIER 2 1.0E+03
CONSTANTS_TBL.SELECTION[SI_CST].GENERIC_CONSTANTS. 20 Internal meter
MULTIPLIER factor.
CONSTANTS_TBL.SELECTION[SI_CST].GENERIC_CONSTANTS. 0 Offset to adjust to
OFFSET actual dial reading
at the time of
installation when
the register
Element cannot be
preset
CONSTANTS_TBL.SELECTION[SI_CST].GENERIC_CONSTANTS. 1000 Internal meter
DIVISOR factor
CONSTANTS_TBL.SELECTION[SI_CST].GENERIC_CONSTANTS. 1 Internal factor
SET1_CONSTANTS.RATIO_F1
CONSTANTS_TBL.SELECTION[SI_CST].GENERIC_CONSTANTS. 1 Internal factor
SET1_CONSTANTS.RATIO_F1
CONSTANTS_TBL.SELECTION[SI_CST].GENERIC_CONSTANTS. 400 Transforming 2000
SET2_CONSTANTS.RATIO_F1 amps to 5 amps
CONSTANTS_TBL.SELECTION[SI_CST].GENERIC_CONSTANTS. 60 Transforming 7200
SET2_CONSTANTS.RATIO_F1 volts to 120 volts
ACT_LP_TBL.LP_FLAGS.SCALAR_DIVISOR_FLAG_SET1 TRUE Applicable to
Table 64
LP_CTRL_TBL.DIVISOR_SET1[CH] 25 Applicable to
Table 64
LP_CTRL_TBL.SCALARS_SET1[CH] 10000 Applicable to
Table 64
17255 NOTE—The above values are just an example. There is no reason to assume that Elements that are encoded as NI_FMAT1 (e.g.,
17256 CONSTANTS_TBL.SELECTION[SI_CST].GENERIC_CONSTANTS’ MULTIPLIER, OFFSET, RATIO_F1 and
17257 RATIO_P1) cannot have fractional values like 0.25 or 0.0001, subject to the proper value set for
17258 GEN_CONFIG_TBL.FORMAT_CONTROL_3.NI_FORMAT1.
17259 Example 1:
17260 Based on the above values, the application can reliably convert the value T23_VALUE retrieved from Table 23 into
17261 fundamental engineering units as follows:
17268 Given that UOM_ENTRY_TBL.UOM_ENTRY[SI_UOM].TIME_BASE = 0, the results represent the total energy
17269 recorded by this register.
17270 Example 2:
17271 Based on the above values, the application can reliably convert the value T64_VALUE retrieved from Table 64 into
17272 fundamental engineering units as follows:
17277 ((39 × 25 / 10000) × 20 / 1000 + 0) × (1 × 1) × (400 × 60) × (1.0E+03 Wh) = 46.8 kWh
17278 = 46,800 Wh
17281
518
DRAFT ANSI C12.19-2012
17297 a) In the context of issuing a Device Class, what do we mean by End Devices that share the same End Device
17298 operating model, data structures, and operational constants?
17299 b) Can (or how can) an End Device be deployed without registering its Device Class?
17300 c) What are the criteria for re-registering (assigning a new Device Class) to an already registered End Device
17301 following a change in its firmware and/or operating modes?
17302 d) When can one just issue an update to the registration files of an End Device without requiring it to be re-
17303 registered with a new Device Class?
17304 Subclauses L.1 through L.3 look at each of the above questions and scenarios and provide guidance and examples so
17305 that users of the Standard (including meter manufacturers, meter vendors, and utilities and service providers) have a
17306 consistent operational understanding and expectation for the registration process.
17308 End Device instantiated entity manifests itself on an AMI system as a combination of the knowledge of this
17309 Standard, available information that may be retrieved from the End Device, and information that may be retrieved
17310 off-line from an information system, e.g., Meter Data Management System (MDMS). The aggregation of this
17311 knowledge is commonly referred to as an End Device Instance, as shown in Figure L-1. The off-line content that is
17312 common to all End Devices that share the same Device Class is commonly referred to as the End Device Data
17313 Model. The Data Models are expressed as a collation of TDL and EDL files that are registered and therefore can be
17314 uniquely associated with a single Device Class. That is, the Data Model aims to document any End Device instance
17315 information that is either unavailable directly from the End Device or it is a constant and nonchanging property of
17316 the End Device.
17317
17319 A change in the End Device registered Data Model may necessitate a change in the End Device Class designation.
17320 The governing criteria for re-registration is that the change may cause a reader, who uses the previously registered
17321 Device Class, to misinterpret the revised End Devices’ Table-elements, Structures, or Behaviors. That is, the revised
17322 Data Model represents a new End Device model that needs to be registered with a new Device Class. These
17323 statements loosely address the first question regarding the meaning of End Devices sharing the same operating
17324 model, data structures, and operational constants. Figure L-2 should be used to make a determination of the need to
17325 re-register an End Device that has undergone changes to its Data Model.
520
DRAFT ANSI C12.19-2012
START
Did not change anything in the
1 End Device hardware,
firmware, software, features,
Changed registered TDL options, and operating
+ EDL Standard types or characteristics.
Tables, or Manufacturer 2.2
types or Tables, or End No Reuse Device
Device Behavior ?
Class
Yes
Changed or re-qualified 2.1
existing Tables or Elements or Changed existing
data types or operating Yes documented Tables or
instructions or Elements or values or
constants that
known behavior ?
are already
known based
on the No Created new Tables or new data types or appended
registered new Elements at the end of existing Tables or added
Device Class. documentation where none existed before or
provided values for external entities or exposed
Manufacturer content that was previously obscure.
3.1
The changes are backward and
Did the change create forward compatible with any
Yes conflicting behavior or No reader that uses the
create conflict with previously registered Device
existing syntax or Class; therefore, it will
assumed values of the not misinterpret the
End Device ? revised End Device
Table-elements,
Structures, and
Behaviors.
3.2 4
END
17326
17328 Whenever the End Device Data Model of a registered Device Class changes, it is necessary to determine whether to
17329 re-register the revised End Device. The flowchart shown in Figure L-2 should be used to make this determination.
17330 When the concluding step is (3.2), then the End Device needs to be registered as “new” and obtain a new Device
17331 Class. When the concluding step is (4), then the End Device may reuse its existing Device Class, but it must update
17332 the registered TDLs and EDLs and issue a new version number that will be placed in the version attribute of the
17333 <tdl> root element of the registered TDL and in the <edl> root element of the registered EDL. When the concluding
17334 step is (2.2), then no further action is necessary.
17336 It was mentioned previously that relative Device Classes that begin with zero (0) under the <device-class-root-oid>
17337 are reserved for use by ANSI C12.19. For instance, Device Class 0.2.0.0 refers to version 2 and revision 0 of this
17338 Standard.
17339 When an End Device is a compliant instance of a version/revision of this Standard then it is permissible to use the
17340 Standard’s registered Device Class without the necessity for the Manufacturer to register a TDL or an EDL. When
17341 using the Standard’s registered Device Classes, it is not permissible for the End Device Data Model to deviate from
17342 the Table structures, Default-sets Used, Element offsets, Element indices, data types, FLC/FLC+1 behavior of
17343 Decades, and all other normative behaviors prescribed in the referenced Standard.
17344 Under this scenario, any AMI application or End Device reader implementing the referenced Standard should be
17345 able to interpret the data sets and behaviors of the End Device strictly by consulting the retrieved DEVICE_CLASS
17346 Element from GEN_CONFIG_TBL (Table 00), the referenced Standard TDL and EDL files, and Element values
17347 retrieved from the End Device. However, because the End Device is implicitly registered, it is not possible to
17348 ascertain more information about the device type or to identify its manufacturer strictly from the DEVICE_CLASS
17349 Element.
17351 In this subclause, we present a collection of example of possible revisions to registered End Device Data Models.
17352 The nature of the revisions are explained, and then the algorithm shown in Figure L-2 is applied. Each step executed
17353 in this algorithm is explained leading to one of two conclusions. Conclusion (3.2), where the End Device needs to be
17354 registered, or conclusion (4), where the End Device may reuse its existing Device Class with updated
17355 version/revision. Outcome (2.2) is not considered here because all of the examples begin with the presumption that
17356 the End Device has undergone some change.
17358 In this example, we assume that the manufacturer registers an empty TDL in order to enable the industry to discover
17359 the device type and manufacturer identification strictly from the DEVICE_CLASS Element. The registrar issues
17360 Device Class 10.20.30.40 for the submitted TDL as follows:
17372 In this example, the Manufacturer of the End Device chooses to provide an elaboration on controlling the display
17373 format of data values that may be displayed. The Standard provides a binary placeholder for that purpose in
522
DRAFT ANSI C12.19-2012
</tdl>
17379 The logic flow above lets the Manufacturer retain the originally registered Device Class and simply update its
17380 version number.
17384 …
17389 …
17393 The above document form representation translates to the equivalent TDL referenced by the standard attribute
17394 (“http://www.ansi.org/C1219TDL-2008.xml”) of the registered Device Class as follows:
17405 …
17419 …
17421 FORMATTING_HINTS_BFLD
17422 LEADING_DIGITS 0..15 This Element defines the number of digits before the decimal
17423 point used.
524
DRAFT ANSI C12.19-2012
17428 TRAILING_DIGITS 0..15 This Element defines the number of digits after the decimal
17429 point.
17430 SCALE -16..15 This Element defines the scale factor to be applied computed
17431 as 10SCALE.
17440 The above manufacturer Document Form elaboration translates to TDL as shown below:
17486 In this example, the Manufacturer of the End Device chooses to provide an elaboration of the behavioral fact that
17487 DIM_REGS_TBL (Table 20) cannot be not retrievable from the End Device and that ACT_REGS_TBL (Table 21)
17488 can only be retrieved using full table read mechanism (i.e., partial read index or partial read offsets are not supported
17489 by this device). Finally, it may be useful to the AMI application to know that ACT_REGS_TBL (Table 21) cannot
17490 be changed.
</tdl>
17492 The flow logic above requires the manufacturer to obtain a new Device Class since the behavior of the End Device
17493 changed sufficiently to cause a read error on Table 21, when invoking a partial table read.
526
DRAFT ANSI C12.19-2012
17495 The following is the standard’s description of DIM_REGS_TBL (Table 20) and ACT_REGS_TBL (Table 21) for
17496 registered Device Class 10.20.30.40 version 1.0.
17497 …
17499 DIM_REGS_TBL (Table 20) specifies the maximum dimensional values for measured values Registers. The
17500 constants defined are used for setting the absolute maximum limits of Arrays used in the transport of these values.
17502 …
17504 ACT_REGS_TBL (Table 21) contains actual limiting values for Registers.
17506 …
17507 The above document form representation translates to the equivalent TDL referenced by the standard attribute
17508 (“http://www.ansi.org/C1219TDL-2008.xml”) of the registered Device Class as follows:
17512 <description>
17513 <b>DIM_REGS_TBL</b> (Table 20) specifies the maximum dimensional values for
17514 Measured values Registers. The constants defined are used for setting the absolute
17515 maximum limits of Arrays used in the transport of these values.
17516 </description>
17517 …
17518 </table>
17519 …
17522 <description>
17523 <b>ACT_REGS_TBL</b> (Table 21) contains actual limiting values for Registers.
17524 </description>
17525 …
17526 </table>
17533 …
17534 The above manufacturer elaboration can be translated to a TDL segment as follows:
17535 <qualify>
17536 <table name="DIM_REGS_TBL" accessibility="UNIMPLEMENTED"/>
17537 <table name="ACT_REGS_TBL" accessibility="READONLY" atomic="true"/>
17538 </qualify>
17539 The above elaboration preserves all of the standard’s attributes except for the accessibility (for Table 20 and
17540 Table 21) and atomic (for Table 21).
17542 The Manufacturer registers a TDL with some content in order to enable the industry to ascertain information about
17543 the type and manufacturer of this End Device strictly from its DEVICE_CLASS Element and to obtain behavioral
17544 information about the End Device. The registrar issues the following Device Class 10.20.30.42 for the bound TDL
17545 as follows:
528
DRAFT ANSI C12.19-2012
17570 </tdl>
17571 The above registration states that Table 20 is not available from the End Device and that in fact it cannot be made
17572 available. Table 21 is also unavailable for retrieval from the End Device; however, its Element values can be
17573 obtained externally from the registered EDL. Therefore, it is expected that the Manufacturer also submits an EDL
17574 file as a companion to this TDL. Also the TDL includes a definition of METER_Z_AAA_TBL (Manufacturer
17575 Table 322). The following is an example of what this EDL may look like:
17612 In this example, the Manufacturer of the End Device determined that there is a need to extend
17613 METER_Z_AAA_TBL.METER_Z_AAA_RCD by adding a new Element FIELD_3 of type UINT16. All other
17614 information remains identical. The implication is that the manufacturer changed the
17615 METER_Z_AAA_TBL.METER_Z_AAA_RCD member of the TDL as shown in the elaboration section that
17616 follows the process flow.
17618 The flow logic above requires the manufacturer to update the version of the Device Class registered since it exposed
17619 new Elements that otherwise were not known.
530
DRAFT ANSI C12.19-2012
17652 In this example, the Manufacturer of the End Device determined that there is a need to extend
17653 METER_Z_AAA_TBL.METER_Z_AAA_RCD by adding a new Element FIELD_3 of type UINT8. All other
17654 information remains identical. The implication is that the manufacturer changed the
17655 METER_Z_AAA_TBL.METER_Z_AAA_RCD member of the TDL as shown in the elaboration section that
17656 follows the process flow.
17658 The flow logic above requires the manufacturer to obtain a new Device Class since the behavior of the End Device
17659 changed sufficiently to cause a misinterpretation of FIELD_2 of Table 322.
17661 The following is the resulting TDL produced for the new Device Class:
17692 In this example, the Manufacturer of the End Device determined that there is a need to modify
17693 METER_Z_AAA_TBL.METER_Z_AAA_RCD by changing a the Element FIELD_1 to be of type UINT16. All
17694 other information remains identical. The implication is that the manufacturer changed the
17695 METER_Z_AAA_TBL.METER_Z_AAA_RCD member of the TDL as shown in the elaboration section that
17696 follows.
17698 The flow logic above requires the manufacturer to obtain a new Device Class since the behavior of the End Device
17699 changed sufficiently to cause a data interpretation error for FIELD_1 (size and data order) and FIELD_2. Also note
17700 that process (3.1) acts as a trap that catches conflicts.
17721 </packedRecord>
17722 </table>
17723 <qualify>
17724 <table name="DIM_REGS_TBL" accessibility="UNIMPLEMENTED"/>
17725 <table name="ACT_REGS_TBL" accessibility="EXTERNAL" atomic="true"/>
17726 </qualify>
17727 </tdl>
17730 In this example, the Manufacturer of the End Device decided to release a new End Device that has fewer self-reads
17731 (down to 12 from 64) and time-of-use tiers (down to 4 from 24). Otherwise the End Device is identical to the
17732 previously register Device Class 10.20.30.42. The implication is that the manufacturer changed an externally
17733 available constant leading to the following process flow.
17735 The flow logic above requires the Manufacturer to obtain a new Device Class that uses the same TDL body but with
17736 a new EDL that captures the change in the Element values.
17738 As per discussion above, a new Device Class is registered. The body (content) of the re-registered TDL is identical
17739 to the TDL registered previously as Device Class 10.20.30.42. The re-registration serves to produce a unique
17740 reference to the EDL file (see below).
17761 <qualify>
17762 <table name="DIM_REGS_TBL" accessibility="UNIMPLEMENTED"/>
17763 <table name="ACT_REGS_TBL" accessibility="EXTERNAL" atomic="true"/>
17764 </qualify>
17765 </tdl>
17766 The above TDL is identical to the TDL of Device Class 10.20.30.42. The actual change occurs only in the EDL
17767 below.
534
DRAFT ANSI C12.19-2012
17805 In this example, the Manufacturer of the End Device decided to introduce a new Table in an End Device that was
17806 previously registered with Device Class 10.20.30.42. All other attributes and behaviors of the registered Device
17807 Class remained the same.
17809 The flow logic above lets the Manufacturer retain the originally registered Device Class and simply update its
17810 version number.
17812 As per discussion above, an existing Device Class is reused, but the version of the TDL is updated.
17842 </element>
17843 </packedRecord>
17844 </table>
17845 <qualify>
17846 <table name="DIM_REGS_TBL" accessibility="UNIMPLEMENTED"/>
17847 <table name="ACT_REGS_TBL" accessibility="EXTERNAL" atomic="true"/>
17848 </qualify>
17849 </tdl>
536
DRAFT ANSI C12.19-2012
17853 [B1] CRC Standard Mathematical Tables and Formulae, 30th ed. Boca Raton, FL: CRC Press, 2011.
17854 [B2] Grisby, L. L., ed. The Electric Power Engineering Handbook. Boca Raton, FL: CRC Press, 2000.
17855 [B3] Handbook for Electricity Metering, 10th ed. Washington, DC: Edison Electric Institute, 2002.
17856 [B4] Hannah, A.“Algorithm for computing and programming transformer loss constants in solid-state
17857 meters,” 1998 Rural Electric Power Conference, pp. B3-1–B3-17.
17858 [B5] Measurement Canada, 1999-07-26, Principles for Sealing Meters and Trade Devices. 20
17859 [B6] Measurement Canada, MC S-EG-05:2011, Measurement Canada Specifications for the Approval of
17860 Software Controlled Electricity and Gas Metering Devices.
17861 [B7] Measurement Canada, MC S-EG-06:2011, Measurement Canada Specifications Relating to Event
17862 Loggers for Electricity and Gas Metering Devices (supersedes: IS-E-01).
17863 [B8] Measurement Canada, Utility Industry Standard Tables User’s Guide, Revised Version 3.2, 2005.
17864 [B9] Merritt, S. Y., and S. D. Chaitkin, “No-load versus load loss,” IEEE Industry Applications Magazine,
17865 pp. 21–28, Nov./Dec. 2003.
17866 [B10] The IEEE Standards Dictionary: Glossary of Terms & Definitions. Piscataway, NJ: IEEE.21
17867 [B11] The Unified Modeling Language Reference Manual. The Addison-Wesley Object Technology Series.
17868 Upper Saddle River, NJ: Addison-Wesley, 1999.
17869 [B12] The Unified Modeling Language Reference Manual, 2d ed. Upper Saddle River, NJ: Addison-Wesley,
17870 2005.
17871 [B13] Unicode Consortium, The Unicode Standard, Version 4.0. Boston, MA: Addison-Wesley, 2003.22
17872 [B14] XML Path Language (XPATH), Version 2.0, 2d ed., W3C Recommendation 14, Dec. 2010.23
20
MC publications are available from Measurement Canada (http://www.ic.gc.ca/eic/site/mc-mc.nsf/eng/home).
21
The IEEE Standards Dictionary Online subscription is available at http://www.ieee.org/portal/innovate/products/standard/
standards_dictionary.html.
22
This document is available at http://www.unicode.org/versions/Unicode4.0.0/.
23
World Wide Web (W3) Consortium publications are available from the World Wide Web Consortium (http://www.w3.org/). This document is
available at http://www.w3.org/TR/xpath20/.
Annex M 537
DRAFT ANSI C12.19-2012
17926
17927 Pacificorp Lauren Pananen
17928 Clark J. Smith
17929
17930 Florida Public Service Commission James Ruehl
17931
17932 Arizona Public Service Company Paul Taylor
17933
17934 Pacific Gas & Electric Tim Vahstrom
17935
17936 The following members of the C12.17 Data Communications Protocols Committee were actively involved in the
17937 revision of this standard:
17938
17939 Wesley Ray, Chairman
17940
17941 Organization Represented Name of Representative
17942
17943 Indianapolis Power & Light Company Robert D. Adams
17944
17945 Landis & Gyr Michael Anderson
17946
17947 Public Utillities Commission Vlado Bevc
17948
17949 APTECH, Inc. William C. Beverly, Jr.
17950
17951 ITRON William J. Buckley
17952
17953 American Innovations, Ltd. Randall Chance
17954
17955 Rick Darby
17956
17957 Entergy Services, Inc. Lynnda K. Ell
17958
17959 Lucent Technologies Stuart M. Garland
17960
17961 Centerior Energy Corporation Kenneth E. Hauzer
17962
17963 T U Electric Brad Johnson
17964 James Mining (Alt.)
17965
17966 LILCO Sunil Katwala
17967
17968 MidAmerican Energy Company Jerry Klipkenberg
17969
17970 Commonwealth Edison Larry Kotewa
17971
17972 Echelon Chris Stanfield
17973 Pradip Madan (Alt.)
17974
17975 Southern California Edison Company Kit Maughan
17976 Mario A. Natividad
17977
17978 Georgia Power Company Kevin McDonald
17979 Terry Penn
17980
Annex N / Foreword of American National Standard C12.19-1997 539
DRAFT ANSI C12.19-2012
18034 data is transferred from or to the End Device by reading from or writing to a particular table or portion of a table.
18035
18036 The second release of the standard represents a philosophical departure from the first release. This release of the
18037 standard is intended to accommodate the concept of an advanced metering infrastructure such as that identified by
18038 the Office of Electricity Delivery and Energy Reliability of the U.S. Department of Energy; the Smart Metering
18039 Initiative of the Ontario Ministry of Energy (Canada) and the stated requirements of Measurement Canada for the
18040 approval of a metering device for use in Canada.
18041
18042 This standard covers a broader range of functionality relative to its previous version; however, it does not follow that
18043 implementations of this standard need to be large or complex. Implementers are encouraged to choose an
18044 appropriate subset that is suitable for their needs. Therefore, it is very unlikely for any one End Device to embed all
18045 tables or even the majority of the tables described herein. Thereby, implementers are encouraged to deploy their
18046 desired functionalities using complete and consistent suites of standard tables from standard decades to the largest
18047 extent practical.
18048
18049 Readers that are acquainted with ANSI C12.19-1997 will discover that the new version contains many changes. The
18050 changes may be categorized as follows:
18051
18052 1. Additions of new features or new functionality through the introduction of new tables, decades, or syntax.
18053 2. Extensions or improvements to pre-existing functionality in support of contemporary and anticipated
18054 industry needs.
18055 3. Corrections of errors and provision of clarifications that address known deficiencies and documentation of
18056 the accepted or anticipated industry practice.
18057 4. Introduction of XML-based table description language (TDL/EDL) and documentation of services
18058 supporting the needs expressed by initiatives such as Smart Metering, Advanced Metering Infrastructure
18059 and alike.
18060 5. Removal of features that were found undesirable.
18061 6. Provision of guidelines for implementers of this standard and developers of future versions of the standard
18062 on backward compatibility and planned phase-out of obsolete features.
18063
18064 Some of the many new features introduced in this revision of the standard include:
18065
18066 Addition of new data types in support of high-precision sub-second time stamps, such as HTIME_DATE
18067 and HTIME.
18068 Creation of new syntax for the aggregation of transmitted characters into strings, STRING.
18069 Creation of new syntax for the aggregation of transmitted octets into opaque blobs, BINARY.
18070 Addition of new Decade 9, Telephone tables. This decade imports and supersedes the tables and syntax
18071 defined in ANSI C12.21.
18072 Creation of new Decade 11, Load Control and Pricing Tables. This decade provides for demand-side
18073 management capabilities, including load control, demand response, prepayment and direct customer billing
18074 functions.
18075 Creation of Decade 14, Extended User-defined Tables. This decade provides capability for transmitting
18076 and receiving a contiguous stream of element and sub-element data. The data are referenced methodically
18077 to the legitimate and formal C12.19 data element.
18078 Creation of Decade 15, Quality-of-service Tables. This decade provides control, capture and logging of
18079 high-precision Quality-of-service performance indicators, such as power quality, and the inclusion of
18080 detailed waveforms, power spectra and related information.
18081 Creation of Decade 16, One-way Devices Tables. This decade provides control and management tables in
18082 support of one-way (talk-only) End Devices.
18083
18084 Some extensions or improvements to pre-existing functionality include:
18085
18086 Table 0, General Configuration Table, retains its original form and it is backward compatible with ANSI
18087 C12.19-1997. However, a few notable control elements were modified:
18088
18089 i. Extended CHAR_FORMAT to support UTF-8.
18090 ii. Replaced MANUFACTURER element with DEVICE_CLASS element to facilitate a more
18091 dynamic End Device data model recognition.
18092 iii. Extended TM_FORMAT in support of high-precision, sub-second, time stamps.
18093
18094 Changed all data source selections in all tables (e.g., Table 22) from UINT8 to SOURCE_SELECT_RCD.
18095 This form is backward and forward compatible with ANSI C12.19-1997 when MODEL_SELECT is 0.
18096 Table 3, End Device Mode Status Table, incorporates the changes proposed in ANSI C12.21.
18097 Table 7, Procedure Initiate Table, and Table 8, Procedure Response Table, were updated and extended to
18098 provide procedures in support of new functionality that is needed by:
18099 i. Decade 7, History and Event Log Tables;
18100 ii. Decade 9, Telephone Control Tables;
18101 iii. Decade 11, Load Control and Pricing Tables;
18102 iv. Decade 12, Network Control Tables and
18103 v. Decade 15 Quality-of-service Tables.
18104
18105 Table 12, Unit of Measure Entry table, was expanded with new UOMs.
18106 Table 17, Transformer Loss Compensation, was added to Decade 1.
18107 Extended the event log tables to provide a new capability to manage and detect program changes through
18108 the life of the End Device.
18109 Extended the event log tables to provide a new capability to manage, authenticate and verify the integrity of
18110 data read from an End Device service point by any receiving client application that may reside across any
18111 communication system.
18112 Extended the table type that can be transmitted to include up to 2040 extended-user-defined tables via
18113 TABLE_IDA_BFLD. Also introduced a new Decade 14, Extended User-defined Tables, to manage the
18114 collation of table elements, down to the bit level, into extended-user-defined tables.
18115
18116 Major corrections of errors and provision of clarifications include:
18117
18118 Section 7.0, Compliance, was updated to reduce variations in the implementation of the standard.
18119 Section 8.0, Table Transportation Issues, was updated to include the “Errata to ANSI Standard C12.19-
18120 1997, Utility Industry Data Tables” published in 2001. It also updated to harmonize this standard with
18121 ANSI C12.18, ANSI C12.21 and ANSI C12.22.
18122 Table 7, Procedure Initiate Table, and Table 8, Procedure Response Table, indices calculations were
18123 completely rewritten in order to eliminate a fatal error in the production of unique indices for procedure
18124 parameters when using index/count access methods.
18125
18126 Removal of features that were found undesirable include:
18127
18128 Section 5.0, Syntax, no longer supports two-dimensional arrays. Appropriate corrections were applied
18129 wherever this syntax was used. This does not impact the offset/count data access methods.
18130
18131 The reader is encouraged to review the descriptive text as it brings significant clarifications and examples of use
18132 where appropriate.
18133
18134 Suggestions for improvement to this Standard are welcome. They should be sent to:
18135
18136 National Electrical Manufacturers Association
18137 Vice President, Technical Services
18138 1300 North 17th Street
18139 Suite 1752
18140 Rosslyn, VA 22209
18141
18142 The Secretariat of the Accredited Standards Committee on Electricity Metering, C12, is held by the National Electrical
542
DRAFT ANSI C12.19-2012
18143 Manufacturers Association (NEMA) and the National Institute of Standards and Technology. At the time this standard
18144 was processed and approved, the C12 Committee had the following members:
18145
18146 Tom Nelson, Chairman
18147 Paul Orr, Secretary
18148
18149 Organization Represented: Name of Representative:
18150 Georgia Power Larry Barto
18151 Underwriters Laboratories, Inc. Ron Breschini
18152 Itron, Inc. Brent Cain
18153 GE Energy Curt Crittenden
18154 Florida Power & Light Co. Jim DeMars
18155 Public Service Electric & Gas David Ellis
18156 Radian Research, Inc. Tim Everidge
18157 Milbank Manufacturing Shawn Glasgow
18158 Technology for Energy Corporation Bill Hardy
18159 Schweitzer Engineering Labs, Inc. Bob Hughes
18160 Oncor Group Brad Johnson
18161 Center for Neighborhood Technology Lawrence Kotewa
18162 Austin Energy Herman Millican
18163 Future DOS R&D Avygdor Moise
18164 Duke Energy Company Tim Morgan
18165 Natl Inst. of Standards & Technology Tom Nelson
18166 Pacific Gas & Electric Company D. Young Nguyen
18167 Xcel Energy EMC Dan Nordell
18168 Plexus Dave Scott
18169 EnerNex Corporation Aaron Snyder
18170 Sensus Metering George Steiner
18171 Baltimore Gas & Electric Company Jim Thurber
18172 Tucker Engineering Richard Tucker
18173 Trilliant Networks, Inc. Michel Veillette
18174 Landis+Gyr John Voisine
18175 Watthour Engineering Co. H.A. Wall
18176
18177 The following members of Working Group 2 of Subcommittee 17 worked on the development of this revision of the
18178 standard since its first publication:
18179
18180 Avygdor Moise, Chairman
18181 Michael Anderson, Past Chairman
18182 Richard D. Tucker, Vice Chairman
18183 Terry L. Penn, Editor
18184 Paul Orr, Secretary
18185
18186
Organizations Represented: Name of Representative:
544