ansi-c12.19-2008

April 23, 2017 | Author: adeleongiron | Category: N/A
Share Embed Donate


Short Description

ANSI-C12.19-2008 Utility Industry End Device Data Tables...

Description

ANSI C12.19-2008 American National Standard For Utility Industry End Device Data Tables

ANSI C12.19-2008

American National Standard For Utility Industry End Device Data Tables

Secretariat:

National Electrical Manufacturers Association IEEE Number: 1377-2009 Measurement Canada Number: MC1219-2009 Approved February 24, 2009

American National Standards Institute, Inc.

NOTICE AND DISCLAIMER The information in this publication was considered technically sound by the consensus of persons engaged in the development and approval of the document at the time it was developed. Consensus does not necessarily mean that there is unanimous agreement among every person participating in the development of this document. NEMA standards and guideline publications, of which the document contained herein is one, are developed through a voluntary consensus standards development process. This process brings together volunteers and/or seeks out the views of persons who have an interest in the topic covered by this publication. While NEMA administers the process and establishes rules to promote fairness in the development of consensus, it does not write the document and it does not independently test, evaluate, or verify the accuracy or completeness of any information or the soundness of any judgments contained in its standards and guideline publications. NEMA disclaims liability for any personal injury, property, or other damages of any nature whatsoever, whether special, indirect, consequential, or compensatory, directly or indirectly resulting from the publication, use of, application, or reliance on this document. NEMA disclaims and makes no guaranty or warranty, express or implied, as to the accuracy or completeness of any information published herein, and disclaims and makes no warranty that the information in this document will fulfill any of your particular purposes or needs. NEMA does not undertake to guarantee the performance of any individual manufacturer or seller’s products or services by virtue of this standard or guide. In publishing and making this document available, NEMA is not undertaking to render professional or other services for or on behalf of any person or entity, nor is NEMA undertaking to perform any duty owed by any person or entity to someone else. Anyone using this document should rely on his or her own independent judgment or, as appropriate, seek the advice of a competent professional in determining the exercise of reasonable care in any given circumstances. Information and other standards on the topic covered by this publication may be available from other sources, which the user may wish to consult for additional views or information not covered by this publication. NEMA has no power, nor does it undertake to police or enforce compliance with the contents of this document. NEMA does not certify, test, or inspect products, designs, or installations for safety or health purposes. Any certification or other statement of compliance with any health or safety-related information in this document shall not be attributable to NEMA and is solely the responsibility of the certifier or maker of the statement.

ANSI C12.19-2008

AMERICAN NATIONAL STANDARD

Approval of an American National Standard requires verification by ANSI that the requirements for due process, consensus, and other criteria for approval have been met by the standards developer. Consensus is established when, in the judgment of the ANSI Board of Standards Review, substantial agreement has been reached by directly and materially affected interests. Substantial agreement means much more than a simple majority, but not necessarily unanimity. Consensus requires that all views and objections be considered, and that a concerted effort be made toward their resolution. The use of American National Standards is completely voluntary; their existence does not in any respect preclude anyone, whether he has approved the standards or not, from manufacturing, marketing, purchasing, or using products, processes, or procedures not conforming to the standards. The American National Standards Institute does not develop standards and will in no circumstances give an interpretation of any American National Standard. Moreover, no person shall have the right or authority to issue an interpretation of an American National Standard in the name of the American National Standards Institute. Requests for interpretations should be addressed to the secretariat or sponsor whose name appears on the title page of this standard. Caution Notice: This American National Standard may be revised or withdrawn at any time. The procedures of the American National Standards Institute require that action be taken periodically to reaffirm, revise, or withdraw this standard. Purchasers of American National Standards may receive current information on all standards by calling or writing the American National Standards Institute.

Published by

National Electrical Manufacturers Association 1300 North 17th Street, Rosslyn, VA 22209 © Copyright 2008 by National Electrical Manufacturers Association All rights reserved including translation into other languages, reserved under the Universal Copyright Convention, the Berne Convention for the Protection of Literary and Artistic Works, and the International and Pan American Copyright Conventions. No part of this publication may be reproduced in any form, in an electronic retrieval system or otherwise, without the prior written permission of the publisher.

Printed in the United States of America

i

ANSI C12.19-2008

This page intentionally left blank.

ii

ANSI C12.19-2008

Contents Page

1 SCOPE..................................................................................................................................................... 1 2 REFERENCES......................................................................................................................................... 1 2.1 NORMATIVE ......................................................................................................................................... 1 2.2 OTHER ................................................................................................................................................ 2 3 DEFINITIONS .......................................................................................................................................... 3 3.1 ACT ................................................................................................................................................... 3 3.2 ADDRESS ............................................................................................................................................ 3 3.3 ADVANCED METERING INFRASTRUCTURE (AMI).................................................................................... 3 3.4 ALIAS .................................................................................................................................................. 3 3.5 ARRAY.............................................................................................................................................. 3 3.6 BIT FIELD (BFLD) ............................................................................................................................ 3 3.7 BLOCK ................................................................................................................................................ 3 3.8 CHANNEL ............................................................................................................................................ 3 3.9 CLOCK ................................................................................................................................................ 3 3.10 COUNT .............................................................................................................................................. 3 3.11 CUMULATIVE DEMAND ....................................................................................................................... 3 3.12 CUSTOMER ........................................................................................................................................ 4 3.13 DATA ENCRYPTION ............................................................................................................................ 4 3.14 DECADE ............................................................................................................................................ 4 3.15 DEFAULT SET .................................................................................................................................... 4 3.16 DEMAND............................................................................................................................................ 4 3.17 DEMAND, BLOCK ............................................................................................................................... 4 3.18 DEMAND, MAXIMUM ........................................................................................................................... 4 3.19 DEMAND, MINIMUM ............................................................................................................................ 4 3.20 DEMAND, PRESENT ........................................................................................................................... 4 3.21 DEMAND, SLIDING WINDOW (ROLLING-INTERVAL)............................................................................... 4 3.22 DEPRECATED .................................................................................................................................... 4 3.23 DIM .................................................................................................................................................. 4 3.24 DOCUMENT TYPE DEFINITION (DTD) .................................................................................................. 4 3.25 ELEMENT .......................................................................................................................................... 4 3.26 ELEMENT, ATOMIC ............................................................................................................................ 5 3.27 ELEMENT, FINAL................................................................................................................................ 5 3.28 ELEMENT, VOLATILE .......................................................................................................................... 5 3.29 ELEMENT-COUNT ............................................................................................................................... 5 3.30 END DEVICE ...................................................................................................................................... 5 3.31 END DEVICE AGENT........................................................................................................................... 5 3.32 EVENT............................................................................................................................................... 5 3.33 EVENT INSTANCE ............................................................................................................................... 5 3.34 EVENT LOGGER DATA........................................................................................................................ 5 3.35 EVENT LOGGER RECORD ................................................................................................................... 5 3.36 EVENT, CALL .................................................................................................................................... 6 3.37 EVENT, CHANGE ................................................................................................................................ 6 3.38 EVENT, SIGNAL ................................................................................................................................. 6 3.39 EVENT, TIME ..................................................................................................................................... 6 3.40 EXCHANGE DATA LANGUAGE (EDL)................................................................................................... 6 3.41 EXTENSIBLE MARKUP LANGUAGE (XML)............................................................................................ 6 3.42 INDEX ................................................................................................................................................ 6 3.43 INTERHARMONICS .............................................................................................................................. 6 iii

ANSI C12.19-2008

3.44 LOAD PROFILE .................................................................................................................................. 6 3.45 METER .............................................................................................................................................. 6 3.46 METROLOGICAL ADJUSTMENT ............................................................................................................ 6 3.47 MODE, FACTORY ............................................................................................................................... 7 3.48 MODE, METER SHOP ......................................................................................................................... 7 3.49 MODE, METERING.............................................................................................................................. 7 3.50 MODE, TEST...................................................................................................................................... 7 3.51 OBJECT ............................................................................................................................................ 7 3.52 OBJECT, ELEMENT ............................................................................................................................ 7 3.53 OBJECT, TABLE ................................................................................................................................ 7 3.54 OCTET .............................................................................................................................................. 7 3.55 OFFSET ............................................................................................................................................. 7 3.56 OVERRIDE ......................................................................................................................................... 7 3.57 PACKED RECORD......................................................................................................................... 7 3.58 PROCEDURE ...................................................................................................................................... 7 3.59 PROCEDURE, MANUFACTURER ........................................................................................................... 7 3.60 PROCEDURE, METROLOGICAL ............................................................................................................ 7 3.61 PROCEDURE, STANDARD ................................................................................................................... 8 3.62 QUADRANT ........................................................................................................................................ 8 3.63 REDEFINE.......................................................................................................................................... 8 3.64 REGISTER ......................................................................................................................................... 8 3.65 REGISTER, SECURED ......................................................................................................................... 9 3.66 REPLACE .......................................................................................................................................... 9 3.67 RESERVED ........................................................................................................................................ 9 3.68 SEAL................................................................................................................................................. 9 3.69 SEAL, LOGICAL (EVENT LOGGABLE) .................................................................................................. 9 3.70 SEAL, PHYSICAL................................................................................................................................ 9 3.71 SEALABLE PARAMETER ..................................................................................................................... 9 3.72 SEASON ............................................................................................................................................ 9 3.73 SECURED READ ................................................................................................................................. 9 3.74 SELF-READ...................................................................................................................................... 10 3.75 SET................................................................................................................................................ 10 3.76 SIGNATURE ..................................................................................................................................... 10 3.77 STRICT ............................................................................................................................................ 10 3.78 STRING ......................................................................................................................................... 10 3.79 SUB-ELEMENT ................................................................................................................................. 10 3.80 TABLE ............................................................................................................................................. 10 3.81 TABLE DEFINITION LANGUAGE (TDL) ............................................................................................... 10 3.82 TABLE, EXTENDED USER-DEFINED (EUDT) ...................................................................................... 10 3.83 TABLE, FUNCTION LIMITING CONTROL (FLC).................................................................................... 10 3.84 TABLE, MANUFACTURER .................................................................................................................. 10 3.85 TABLE, METROLOGICAL ................................................................................................................... 10 3.86 TABLE, PENDING ............................................................................................................................. 10 3.87 TABLE, PROGRAM ........................................................................................................................... 11 3.88 TABLE, SECURED ............................................................................................................................ 11 3.89 TABLE, STANDARD .......................................................................................................................... 11 3.90 TABLE, USER-DEFINED (UDT).......................................................................................................... 11 3.91 TARIFF ............................................................................................................................................ 11 3.92 TIER ................................................................................................................................................ 11 3.93 TIME-OF-USE (TOU) METERING ...................................................................................................... 11 3.94 UNDEFINED ..................................................................................................................................... 11 3.95 UTILITY ........................................................................................................................................... 11 4 GENERAL.............................................................................................................................................. 12 4.1 STANDARD TABLES ........................................................................................................................... 12

iv

ANSI C12.19-2008

Standard Tables Grouping ............................................................................................... 12 4.1.1 4.1.2 Standard Tables Properties ............................................................................................. 12 4.1.3 Standard Procedure Properties ....................................................................................... 13 4.2 MANUFACTURER TABLES ................................................................................................................... 14 4.2.1 Manufacturer Tables Grouping........................................................................................ 14 4.2.2 Manufacturer Tables Properties ...................................................................................... 14 4.2.3 Manufacturer Procedure Properties................................................................................ 14 4.3 PACKED RECORD, BIT FIELD AND ELEMENT PROPERTIES ................................................................... 15 4.4 EXTENDED USER-DEFINED TABLES PROPERTIES................................................................................. 15 5 SYNTAX................................................................................................................................................. 16 5.1 DESCRIPTIVE SYNTAX ........................................................................................................................ 16 6 SPECIAL DATA TYPES........................................................................................................................ 16 6.1 CHARACTER SET SELECTION ............................................................................................................. 16 6.2 NON-INTEGER FORMATS .................................................................................................................... 17 6.2.1 STRING Numbers .............................................................................................................. 18 6.3 DATE AND TIME FORMATS .................................................................................................................. 19 6.3.1 HTIME_DATE, LTIME_DATE, STIME_DATE, TIME, STIME, HTIME types .................... 20 6.3.2 RDATE type........................................................................................................................ 25 6.3.3 DATE Type ......................................................................................................................... 26 6.4 COMMON TABLE OR PROCEDURE IDENTIFIER FORMATS ........................................................................ 27 6.4.1 TABLE_IDA_BFLD bit field............................................................................................... 27 6.4.2 TABLE_IDB_BFLD bit field............................................................................................... 28 6.4.3 TABLE_IDC_BFLD bit field............................................................................................... 29 6.4.4 SOURCE_SEL_RCD .......................................................................................................... 30 7 COMPLIANCE & COMPATIBILITY ...................................................................................................... 31 7.1 COMPLIANCE ..................................................................................................................................... 31 7.2 BACKWARD AND FORWARD COMPATIBILITY ........................................................................................ 31 8 TABLE TRANSPORTATION ISSUES .................................................................................................. 33 8.1 MINIMUM SERVICES AND PARAMETERS ............................................................................................... 33 8.1.1 Read Service ...................................................................................................................... 33 8.1.2 Write Service...................................................................................................................... 34 8.1.3 Partial Table Access Using the Index/element-count Method...................................... 36 8.1.4 Partial Table Access Using the Offset/octet-count Method.......................................... 38 8.1.5 Index Count Access Method Examples .......................................................................... 39 8.2 PENDING EVENT DESCRIPTION ........................................................................................................... 39 8.3 LIST MANAGEMENT DESCRIPTION ....................................................................................................... 42 9 TABLES................................................................................................................................................. 44 9.1 DECADE 0: GENERAL CONFIGURATION TABLES .................................................................................. 44 9.1.1 Table 00 General Configuration Table ............................................................................ 44 9.1.2 Table 01 General Manufacturer Identification Table...................................................... 51 9.1.3 Table 02 Device Nameplate Table.................................................................................... 53 9.1.4 Table 03 End Device Mode Status Table......................................................................... 61 9.1.5 Table 04 Pending Status Table ........................................................................................ 64 9.1.6 Table 05 Device Identification Table ............................................................................... 67 9.1.7 Table 06 Utility Information Table.................................................................................... 68 9.1.8 Table 07 Procedure Initiate Table .................................................................................... 71 9.1.9 Table 08 Procedure Response Table .............................................................................. 76 9.1.10 Standard Procedures ........................................................................................................ 81 9.1.10.1 9.1.10.2

Procedure 00 Cold Start...........................................................................................................81 Procedure 01 Warm Start.........................................................................................................81

v

ANSI C12.19-2008

9.1.10.3 9.1.10.4 9.1.10.5 9.1.10.6 9.1.10.7 9.1.10.8 9.1.10.9 9.1.10.10 9.1.10.11 9.1.10.12 9.1.10.13 9.1.10.14 9.1.10.15 9.1.10.16 9.1.10.17 9.1.10.18 9.1.10.19 9.1.10.20 9.1.10.21 9.1.10.22 9.1.10.23 9.1.10.24 9.1.10.25 9.1.10.26 9.1.10.27 9.1.10.28 9.1.10.29 9.1.10.30 9.1.10.31 9.1.10.32 9.1.10.33

Procedure 02 Save Configuration ...........................................................................................81 Procedure 03 Clear Data ..........................................................................................................81 Procedure 04 Reset List Pointers ...........................................................................................81 Procedure 05 Update Last Read Entry ...................................................................................82 Procedure 06 Change End Device Mode ................................................................................83 Procedure 07 Clear Standard Status Flags ............................................................................84 Procedure 08 Clear Manufacturer Status Flags.....................................................................84 Procedure 09 Remote Reset....................................................................................................85 Procedure 10 Set Date and/or Time ........................................................................................86 Procedure 11 Execute Diagnostics Procedure ......................................................................88 Procedure 12 Activate All Pending Tables .............................................................................88 Procedure 13 Activate Specific Pending Table(s) .................................................................88 Procedure 14 Clear All Pending Tables..................................................................................89 Procedure 15 Clear Specific Pending Table(s) ......................................................................89 Procedure 16 Start Load Profile..............................................................................................89 Procedure 17 Stop Load Profile ..............................................................................................90 Procedure 18 Log In.................................................................................................................90 Procedure 19 Log Out ..............................................................................................................90 Procedure 20 Initiate an Immediate Call.................................................................................91 Procedure 21 Direct Load Control ..........................................................................................91 Procedure 22 Modify Credit.....................................................................................................92 Procedure 23 Reserved............................................................................................................93 Procedure 24 Reserved............................................................................................................93 Procedure 25 Reserved............................................................................................................93 Procedure 26 Reserved............................................................................................................93 Procedure 27 Clear Pending Call Status ................................................................................93 Procedure 28 Start Quality-of-service Monitors ....................................................................93 Procedure 29 Stop Quality-of-service Monitors.....................................................................93 Procedure 30 Start Secured Register .....................................................................................94 Procedure 31 Stop Secured Register .....................................................................................95 Procedure 32 Set Precision Date and/or Time .......................................................................96

9.2 DECADE 1: DATA SOURCE TABLES .................................................................................................... 98 9.2.1 Table 10 Data Source Dimension Limits Table .............................................................. 99 9.2.2 Table 11 Actual Data Sources Limiting Table .............................................................. 102 9.2.3 Table 12 Units of Measure Entry Table ......................................................................... 104 9.2.4 Table 13 Demand Control Table .................................................................................... 113 9.2.5 Table 14 Data Control Table ........................................................................................... 115 9.2.6 Table 15 Constants Table ............................................................................................... 116 9.2.7 Table 16 Source Definition Table................................................................................... 123 9.2.8 Table 17 Transformer Loss Compensation Table........................................................ 125 9.3 DECADE 2: REGISTER TABLES ......................................................................................................... 127 9.3.1 Table 20 Register Dimension Limits Table ................................................................... 127 9.3.2 Table 21 Actual Register Limiting Table ....................................................................... 131 9.3.3 Table 22 Data Selection Table........................................................................................ 134 9.3.4 Table 23 Current Register Data Table ........................................................................... 135 9.3.5 Table 24 Previous Season Data Table........................................................................... 137 9.3.6 Table 25 Previous Demand Reset Data Table .............................................................. 138 9.3.7 Table 26 Self-read Data Table ........................................................................................ 139 9.3.8 Table 27 Present Register Selection Table................................................................... 141 9.3.9 Table 28 Present Register Data Table ........................................................................... 142 9.4 DECADE 3: LOCAL DISPLAY TABLES ................................................................................................ 143 9.4.1 Table 30 Display Dimension Limits Table..................................................................... 143 9.4.2 Table 31 Actual Display Limiting Table......................................................................... 145 9.4.3 Table 32 Display Source Table....................................................................................... 147 9.4.4 Table 33 Primary Display List Table .............................................................................. 148 9.4.5 Table 34 Secondary Display List Table ......................................................................... 150 9.5 DECADE 4: SECURITY TABLES ......................................................................................................... 152 9.5.1 Table 40 Security Dimension Limits Table ................................................................... 152

vi

ANSI C12.19-2008

Table 41 Actual Security Limiting Table ....................................................................... 154 9.5.2 9.5.3 Table 42 Security Table ................................................................................................. 155 9.5.4 Table 43 Default Access Control Table......................................................................... 157 9.5.5 Table 44 Access Control Table ...................................................................................... 159 9.5.6 Table 45 Key Table .......................................................................................................... 161 9.5.7 Table 46 Reserved........................................................................................................... 162 9.5.8 Table 47 Reserved........................................................................................................... 162 9.6 DECADE 5: TIME-OF-USE TABLES .................................................................................................... 163 9.6.1 Table 50 Time and TOU Dimension Limits Table ......................................................... 165 9.6.2 Table 51 Actual Time and TOU Limiting Table ............................................................. 168 9.6.3 Table 52 Clock Table....................................................................................................... 171 9.6.4 Table 53 Time Offset Table............................................................................................. 173 9.6.5 Table 54 Calendar Table ................................................................................................. 174 9.6.6 Table 55 Clock State Table ............................................................................................. 180 9.6.7 Table 56 Time Remaining Table..................................................................................... 182 9.6.8 Table 57 Precision Clock State Table............................................................................ 182 9.7 DECADE 6: LOAD PROFILE TABLES .................................................................................................. 184 9.7.1 Table 60 Load Profile Dimension Limits Table............................................................. 184 9.7.2 Table 61 Actual Load Profile Limiting Table................................................................. 190 9.7.3 Table 62 Load Profile Control Table.............................................................................. 194 9.7.4 Table 63 Load Profile Status Table................................................................................ 197 9.7.5 Table 64 Load Profile Data Set One Table .................................................................... 200 9.7.6 Table 65 Load Profile Data Set Two Table.................................................................... 205 9.7.7 Table 66 Load Profile Data Set Three Table ................................................................. 208 9.7.8 Table 67 Load Profile Data Set Four Table ................................................................... 211 9.8 DECADE 7: HISTORY & EVENT LOGS ................................................................................................ 214 9.8.1 Table 70 Log Dimension Limits Table........................................................................... 216 9.8.2 Table 71 Actual Log Limiting Table............................................................................... 219 9.8.3 Table 72 Events Identification Table ............................................................................. 222 9.8.4 Table 73 History Log Control Table............................................................................... 223 9.8.5 Table 74 History Log Data Table.................................................................................... 225 9.8.6 Table 75 Event Log Control Table ................................................................................. 228 9.8.7 Table 76 Event Log Data Table ...................................................................................... 230 9.8.8 Table 77 Event Log and Signatures Enable Table ....................................................... 233 9.8.9 Table 78 End Device Program State Table ................................................................... 236 9.8.10 Table 79 Event Counters Table ...................................................................................... 240 9.9 DECADE 8: USER-DEFINED TABLES .................................................................................................. 241 9.9.1 Table 80 User-defined Tables Dimension Limits Table............................................... 241 9.9.2 Table 81 Actual User-defined Tables Limiting Table................................................... 244 9.9.3 Table 82 User-defined Tables List Table....................................................................... 246 9.9.4 Table 83 User-defined Tables Selections Table........................................................... 248 9.9.5 Table 84 User-defined Table Zero.................................................................................. 249 9.9.6 Table 85 User-defined Table One .................................................................................. 250 9.9.7 Table 86 User-defined Table Two .................................................................................. 251 9.9.8 Table 87 User-defined Table Three................................................................................ 252 9.9.9 Table 88 User-defined Table Four ................................................................................. 253 9.9.10 Table 89 User-defined Table Five .................................................................................. 254 9.10 DECADE 9: TELEPHONE CONTROL TABLES..................................................................................... 255 9.10.1 Table 90 Telephone Dimension Limits Table ............................................................... 255 9.10.2 Table 91 Actual Telephone Table .................................................................................. 258 9.10.3 Table 92 Telephone Global Parameters Table ............................................................. 260 9.10.4 Table 93 Telephone Call Originate Parameters Table ................................................. 262 9.10.5 Table 94 Telephone Call Originate Schedule Table..................................................... 265 9.10.6 Table 95 Telephone Call Answer Parameters .............................................................. 268 9.10.7 Table 96 Originating Telephone Call Purpose ............................................................. 270 vii

ANSI C12.19-2008

9.10.8 Table 97 Last Telephone Call Status............................................................................. 272 9.10.9 Table 98 Telephone Call Originate Status .................................................................... 274 9.11 DECADE 10: UNASSIGNED ............................................................................................................. 276 9.12 DECADE 11: LOAD CONTROL AND PRICING TABLES ........................................................................ 277 9.12.1 Table 110 Load Control Dimension Limits Table......................................................... 278 9.12.2 Table 111 Actual Load Control Limiting Table ............................................................. 281 9.12.3 Table 112 Load Control Status ...................................................................................... 283 9.12.4 Table 113 Load Control Configuration.......................................................................... 285 9.12.5 Table 114 Load Control Schedule ................................................................................. 287 9.12.6 Table 115 Load Control Conditions............................................................................... 290 9.12.7 Table 116 Prepayment Status ........................................................................................ 294 9.12.8 Table 117 Prepayment Control....................................................................................... 296 9.12.9 Table 118 Billing Control ................................................................................................ 297 9.13 DECADE 12: RESERVED................................................................................................................. 300 9.14 DECADE 13: RESERVED................................................................................................................. 301 9.15 DECADE 14: EXTENDED USER-DEFINED TABLES ............................................................................. 302 9.15.1 Table 140 Extended User-defined Tables Function Limiting Table ........................... 303 9.15.2 Table 141 Extended User-defined Tables Actual Limits Table................................... 305 9.15.3 Table 142 Extended User-defined Selections Table .................................................... 307 9.15.4 Table 143 Extended User-defined Constants Table .................................................... 315 9.16 DECADE 15: QUALITY-OF-SERVICE ................................................................................................. 316 9.16.1 Table 150 Quality-of-service Dimension Limits Table................................................. 319 9.16.2 Table 151 Actual Quality-of-Service Limiting Table .................................................... 329 9.16.3 Table 152 Quality-of-service Control Table .................................................................. 337 9.16.4 Table 153 Quality-of-service Incidents Table ............................................................... 352 9.16.5 Table 154 Quality-of-service Log Table ........................................................................ 355 9.16.6 Table 155 Asynchronous Time-Domain Waveforms Table......................................... 357 9.16.7 Table 156 Asynchronous Frequency-Domain Spectrum Table.................................. 360 9.16.8 Table 157 Periodic Time Domain Waveforms Table .................................................... 364 9.16.9 Table 158 Periodic Frequency-Domain Spectrum Table............................................. 367 9.17 DECADE 16: ONE-WAY DEVICES .................................................................................................... 370 9.17.1 Table 160 Dimension One-way ...................................................................................... 370 9.17.2 Table 161 actual One-way table ..................................................................................... 374 9.17.3 Table 162 One-way Control Table.................................................................................. 377 9.17.4 Table 163 One-way Data Table....................................................................................... 380 9.17.5 Table 164 One-way Commands/Responses/Extended User-defined Tables Table . 383 ANNEX A: RESERVED CLASSES FOR METER EQUIPMENT MANUFACTURERS IMPLEMENTING ANSI C12.19-1997 DEVICES................................................................................................................. 385 ANNEX B: HISTORY & EVENT LOG CODES ...................................................................................... 386 B.1 CODES ........................................................................................................................................... 386 B.2 LOGGER ARGUMENTS IMPLEMENTATION DETAILS ............................................................................. 388 B.3 LOGGER CODES INTERPRETATION DETAILS ...................................................................................... 392 ANNEX C: DEFAULT SETS FOR DECADE TABLES .......................................................................... 397 ANNEX D: INDICES FOR PARTIAL TABLE READ/WRITE ACCESS ................................................ 404 ANNEX E: EVENT LOGGER IMPLEMENTATION................................................................................ 406 E.1 BACKGROUND ................................................................................................................................. 406 E.2 SIGNATURE ALGORITHM ................................................................................................................... 407 ANNEX F: TRANSFORMER LOSSES COMPENSATION.................................................................... 409 F.1 TRANSFORMER LOSSES CONSIDERATION .......................................................................................... 409

viii

ANSI C12.19-2008

F.1.1 No-Load Loss and Exciting Current ................................................................................... 409 F.1.2 Load Loss.............................................................................................................................. 409 F.1.3 Transformer Losses Compensation................................................................................... 409 F.2 TRANSFORMER LOSS COMPENSATION CALCULATIONS [ACPTLC : 1998] ........................................ 410 F.3 TRANSFORMER LOSS COMPENSATION CALCULATION EXAMPLE ........................................................ 410 ANNEX G: DOCUMENT-FORM DESCRIPTIVE SYNTAX.................................................................... 412 G.1 GENERAL NOTES ON SYMBOLS, RULES AND THEIR MEANING BELOW: ................................................. 412 G.2 EXTENDED BNF SYMBOLS AND MEANING ........................................................................................ 412 G.3 FLOW OF INFORMATION ................................................................................................................... 419 G.4 IDENTIFIERS .................................................................................................................................... 419 G.5 BASIC DATA TYPES.......................................................................................................................... 425 G.5.1 Basic data type definitions ................................................................................................. 427 G.5.2 Data type handling ............................................................................................................... 429 G.5.2.1 Signed integers..............................................................................................................................429 G.5.2.2 Characters and Strings .................................................................................................................430 G.5.2.3 Non-integer numbers ....................................................................................................................430 G.5.2.4 Date and time formats...................................................................................................................430

G.6 REFERENCES TO TYPES, CONSTANTS AND VALUES .......................................................................... 430 G.6.1 Scoping Rules ...................................................................................................................... 431 G.6.1.1 Predefined STD and TDL Scopes.................................................................................................431 G.6.1.2 Container scopes ..........................................................................................................................432

G.6.2 References to values ........................................................................................................... 434 G.6.3 Value...................................................................................................................................... 437 G.7 CONDITIONALS................................................................................................................................ 439 G.7.1 IF statements ........................................................................................................................ 439 G.7.2 SWITCH statements............................................................................................................. 440 G.8 BIT FIELD........................................................................................................................................ 440 G.9 SET ................................................................................................................................................ 441 G.10 ARRAY ......................................................................................................................................... 442 G.11 PACKED RECORD .......................................................................................................................... 442 G.12 CONSTANTS ................................................................................................................................. 443 G.13 TABLES ........................................................................................................................................ 444 G.14 PROCEDURES ............................................................................................................................... 444 G.15 SINGLE LINE MATH EXPRESSIONS ................................................................................................. 446 G.16 PROPERTIES ................................................................................................................................. 448 G.17 DOCUMENT FORM STARTING PRODUCTION RULE ........................................................................... 449 ANNEX H: DATE-TIME ELEMENTS CONVERSION ALGORITHM (TM_FORMAT=3 AND TM_FORMAT=4) .................................................................................................................................... 450 ANNEX I: XML FILE FORMAT OF TDL AND EDL FILES .................................................................... 451 I.1 OVERVIEW OF THE TDL/EDL XML DOCUMENT FRAMEWORK............................................................. 451 I.1.1 TDL/EDL Files and Terminology .......................................................................................... 451 I.2 TDL XML FILE FORMAT OF THE TDL DOCUMENT ............................................................................. 455 I.2.1 Root Element ................................................................................................................ 456 I.2.1.1 DTD .........................................................................................................................................456 I.2.1.2 Attributes................................................................................................................................456 I.2.1.3 Document Form .....................................................................................................................457

I.2.2 element........................................................................................................... 457 I.2.2.1 DTD ..........................................................................................................................457 I.2.2.2 Attributes .................................................................................................................458 I.2.2.3 Child Elements........................................................................................................458 I.2.2.4 Child DTDs ..............................................................................................................458 I.2.2.5 Child Elements Summary.......................................................................................460 I.2.2.6 Attributes ..................................................................................................................................461

ix

ANSI C12.19-2008

I.2.2.7 Attributes .................................................................................................................461 I.2.2.8 Attributes .................................................................................................................................461 I.2.2.9 Attributes .................................................................................................................................461 I.2.2.10 and sub-element usage................................................................................................461 I.2.2.11 and sub-element usage of ..................................................................................462 I.2.2.12 Document Form ....................................................................................................462 I.2.2.13 Element ....................................................................................................................463 I.2.2.14 DTD ...........................................................................................................................463 I.2.2.15 Attributes..................................................................................................................463 I.2.2.16 Document Form .......................................................................................................463

I.2.3 Element ................................................................................................................... 463 I.2.3.1 DTD (named) ....................................................................................................................463 I.2.3.2 Attributes..........................................................................................................................463

I.2.4 Element.......................................................................................................... 464 I.2.4.1 DTD (named) ...........................................................................................................464 I.2.4.2 Attributes (named)..................................................................................................464 I.2.4.3 Document Form (named) .......................................................................................467

I.2.5 element of (named) ................................................................ 468 I.2.5.1 DTD.............................................................................................................................468 I.2.5.2 DTD (un-named)......................................................................................................468 I.2.5.3 Document Form.........................................................................................................468

I.2.6 Element (Child of ) .......................................................................... 468 I.2.6.1 DTD ....................................................................................................................................469 I.2.6.2 Attributes...........................................................................................................................469 I.2.6.3 Document Form ................................................................................................................469

I.2.7 element (Child of element) ......................................................... 470 I.2.7.1 DTD..................................................................................................................................470 I.2.7.2 Attributes ........................................................................................................................471 I.2.7.3 Document Form..............................................................................................................471

I.2.8 Element..................................................................................................... 471 I.2.8.1 DTD .....................................................................................................................471 I.2.8.2 Attributes............................................................................................................471 I.2.8.3 Document Form .................................................................................................474

I.2.9 Element (Child of )................................................................. 474 I.2.9.1 DTD ................................................................................................................................475 I.2.9.2 Attributes.......................................................................................................................475 I.2.9.3 Document Form ............................................................................................................476

I.2.10 Element (Child of ).................................................................... 477 I.2.10.1 DTD ...................................................................................................................................477 I.2.10.2 Attributes..........................................................................................................................477 I.2.10.3 Document Form ...............................................................................................................479

I.2.11 Element (Child of element)......................................................... 479 I.2.11.1 DTD ......................................................................................................................................479 I.2.11.2 Attributes .............................................................................................................................480 I.2.11.3 Document Form ..................................................................................................................481

I.2.12 Element (Child of ) .......................................................................... 481 I.2.12.1 DTD (Child of ) ...........................................................................................482 I.2.12.2 Attributes (Child of )..................................................................................482 I.2.12.3 Document Form .....................................................................................................................482 I.2.12.4 Element (Child of /)........................................................................482 I.2.12.5 DTD ....................................................................................................................................482 I.2.12.6 Attributes...........................................................................................................................482 I.2.12.7 Document Form ................................................................................................................482

I.2.13 Element (Child of /) .............................................................. 482 I.2.13.1 DTD.....................................................................................................................................482 I.2.13.2 Attributes ...........................................................................................................................482 I.2.13.3 Document Form.................................................................................................................483

I.2.14 Element (Child of ) ................................................................. 484 I.2.14.1 DTD ................................................................................................................................484

x

ANSI C12.19-2008

I.2.14.2 Attributes .......................................................................................................................484 I.2.14.3 Document Form ............................................................................................................484 I.2.14.4 Element (Child of /) ..............................................................485 I.2.14.5 DTD....................................................................................................................................485 I.2.14.6 Attributes ..........................................................................................................................485 I.2.14.7 Document Form................................................................................................................485 I.2.14.8 element (Child of /)...........................................................485 I.2.14.9 DTD ................................................................................................................................485 I.2.14.10 Attributes ....................................................................................................................485 I.2.14.11 Document Form..........................................................................................................485

I.2.15 element ............................................................................................................... 487 I.2.15.1 DTD...............................................................................................................................487 I.2.15.2 Attributes .....................................................................................................................487 I.2.15.3 Document Form...........................................................................................................490

I.2.16 Element (Child of ) .................................................................... 491 I.2.16.1 DTD .......................................................................................................................491 I.2.16.2 Attributes ..............................................................................................................491 I.2.16.3 Document Form Equivalent ................................................................................493

I.2.17 Element (Child of ) ...................................................................................... 493 I.2.17.1 DTD .........................................................................................................................................493 I.2.17.2 Attributes ................................................................................................................................493 I.2.17.3 Document Form .....................................................................................................................493

I.2.18 Element (Child of /).......................................................................... 494 I.2.18.1 DTD ....................................................................................................................................494 I.2.18.2 Attributes .......................................................................................................................................494 I.2.18.3 Document Form ................................................................................................................494

I.2.19 Element (Child of /) .......................................................................... 494 I.2.19.1 DTD definition...................................................................................................................494 I.2.19.2 Attributes ...........................................................................................................................494 I.2.19.3 Document Form.................................................................................................................494

I.2.20 Element (Child of ) ............................................................................. 494 I.2.20.1 DTD ................................................................................................................................495 I.2.20.2 Attributes .......................................................................................................................495 I.2.20.3 Document Form ............................................................................................................495

I.2.21 Element (Child of /) ................................................................ 495 I.2.21.1 DTD....................................................................................................................................495 I.2.21.2 Attributes ..........................................................................................................................495 I.2.21.3 Document Form................................................................................................................495

I.2.22 Element (Child of /) ............................................................ 495 I.2.22.1 DTD ................................................................................................................................496 I.2.22.2 Attributes ......................................................................................................................496 I.2.22.3 Document Form............................................................................................................496

I.2.23 Element (Child of )..................................................................................... 496 I.2.23.1 DTD ...............................................................................................................................496 I.2.23.2 Attributes ......................................................................................................................496 I.2.23.3 Document Form ...........................................................................................................497

I.2.24 Element (Child of or ) .................................................................. 497 I.2.24.1 DTD ...................................................................................................................................497 I.2.24.2 Attributes..........................................................................................................................498 I.2.24.3 Document Form ...............................................................................................................500

I.2.25 Element (Child of or ) ......................................................... 502 I.2.25.1 DTD ..........................................................................................................................502 I.2.25.2 Attributes.................................................................................................................502 I.2.25.3 Document Form ......................................................................................................504

I.2.26 Element (Child of ) ........................................................................ 505 I.2.26.1 DTD definition ...............................................................................................................505 I.2.26.2 Attributes.......................................................................................................................505 I.2.26.3 Document Form ............................................................................................................506

I.2.27 Element (Child of ) ..................................................................................... 506 xi

ANSI C12.19-2008

I.2.27.1 DTD ................................................................................................................................506 I.2.27.2 Attributes.......................................................................................................................506 I.2.27.3 Document Form ............................................................................................................506

I.2.28 element (Child of element) ................................................................... 506 I.2.28.1 DTD definition ..................................................................................................................507 I.2.28.2 Attributes..........................................................................................................................507

I.2.29 Element (Child of ) ........................................................................ 507 I.2.29.1 DTD ..........................................................................................................................508 I.2.29.2 Attributes.................................................................................................................508

I.2.30 Element (Child of ) ............................................................................ 508 I.2.30.1 DTD ..............................................................................................................................508 I.2.30.2 Attributes.....................................................................................................................509

I.2.31 Element (Child of ) ................................................................. 509 I.2.31.1 DTD ...................................................................................................................509 I.2.31.2 Attributes .......................................................................................................................................509

I.2.32 Element (Child of ) ............................................................................. 510 I.2.32.1 DTD...............................................................................................................................510 I.2.32.2 Attributes .....................................................................................................................510

I.2.33 Element (Child of ) ............................................................................... 510 I.2.33.1 DTD .................................................................................................................................510 I.2.33.2 Attributes........................................................................................................................510

I.3 EDL XML FORMAT .......................................................................................................................... 511 I.3.1 Overview ................................................................................................................................. 511 I.3.2 Root Element ............................................................................................................... 511 I.3.2.1 DTD ........................................................................................................................................512 I.3.2.2 Attributes ...............................................................................................................................512 I.3.2.3 Document Form ....................................................................................................................513

I.3.3 Element (Child of )............................................................................... 513 I.3.3.1 DTD ..........................................................................................................................513 I.3.3.2 Document Form ......................................................................................................513

I.3.4 Pseudo Element Names ........................................................................................................ 513 I.3.5 Resolving Second Edition XML Schema Constraints........................................................ 514 I.3.5.1 The Schema Constraints Problem .................................................................................................514 I.3.5.2 Resolution of The Schema Constraints Problem .........................................................................515

I.3.6 Element.............................................................................................. 515 I.3.6.1 DTD ..............................................................................................................515

I.3.7 Element (Child of )................................................................................. 516 I.3.7.1 DTD ............................................................................................................................516 I.3.7.2 Attributes ...................................................................................................................516 I.3.7.3 Document Form ........................................................................................................516

I.3.8 Element (Child of ) ................................................. 518 I.3.8.1 DTD .........................................................................................................518 I.3.8.2 Attributes................................................................................................519 I.3.8.3 Document Form .....................................................................................519

I.3.9 Element (Child of )........................................................................................... 519 I.3.9.1 DTD ......................................................................................................................................519 I.3.9.2 Document Form ..................................................................................................................519

I.3.10 Element..................................................................................................... 519 I.3.10.1 DTD.....................................................................................................................519 I.3.10.2 Attributes ...........................................................................................................520 I.3.10.3 Document Form..................................................................................................520

I.3.11 Element ............................................................................................... 520 I.3.11.1 DTD................................................................................................................520 I.3.11.2 Attributes ......................................................................................................520 I.3.11.3 Document Form............................................................................................521

I.3.12 Element ................................................................................................................... 522 I.3.12.1 DTD ...................................................................................................................................522 I.3.12.2 Attributes .........................................................................................................................522

xii

ANSI C12.19-2008

I.3.12.3 Document Form...............................................................................................................523

I.3.13 element.................................................................................................. 524 I.3.13.1 DTD..................................................................................................................524 I.3.13.2 Document Form..............................................................................................524

I.4 EDL XML FORM ENCODING OF FINAL ELEMENT VALUES................................................................... 525 ANNEX J: UNIVERSAL IDENTIFIER .................................................................................................... 527 ANNEX K: ALGORITHMS FOR THE CONVERSION OF TABLE ELEMENT VALUES TO ENGINEERING UNITS ........................................................................................................................... 528 K.1 LOCATING CONVERSION FACTORS FROM DECADE 1......................................................................... 528 K.2 DE-NORMALIZING INTERVAL DATA ELEMENTS .................................................................................. 531 K.3 CONVERTING TO ENGINEERING UNITS AT THE POINT OF METERING ................................................... 532 K.4 CONVERTING TO ENGINEERING UNITS AT THE POINT OF DELIVERY .................................................... 534 K.5 ASSIGNING ENGINEERING UNITS ...................................................................................................... 534 K.6 ASSIGNING FUNDAMENTAL ENGINEERING UNITS............................................................................... 534 K.7 TABLE VALUE TO ENGINEERING UNITS CONVERSION: AN EXAMPLE .................................................. 535 VALUE................................................................................................................................................... 535 COMMENT ............................................................................................................................................. 535 ANNEX L: REGISTERING OR UPDATING DEVICE CLASS OID........................................................ 538 L.1 END DEVICES REFERENCING THE STANDARD’S DEVICE CLASS ......................................................... 541 L.2 PRACTICAL EXAMPLES AND USE-CASES ........................................................................................... 541 L.2.1 Examples: Initial Registration Condition—an Empty TDL ............................................... 541 L.2.1.1 Case 1: Exposing Manufacturer’s Content ..................................................................................541 L.2.1.2 Case 2: Changing End Device Behavior ......................................................................................545

L.2.2 Examples: Initial Registration Conditions—Non-empty TDL........................................... 547 L.2.2.1 Case 1: Appending a New Element to an Existing Table............................................................549 L.2.2.2 Case 2: Inserting a New Element to an Existing Table ...............................................................550 L.2.2.3 Case 3: Modifying an Element of an Existing Table....................................................................551 L.2.2.4 Case 4: Modifying a Constant Element in a Table.......................................................................552 L.2.2.5 Case 5: Adding a New Table to an End Device............................................................................554

ANNEX M: HISTORICAL BACKGROUND............................................................................................ 556 M.1 FOREWORD OF AMERICAN NATIONAL STANDARD C12.19-1997 ....................................................... 556

xiii

ANSI C12.19-2008

Foreword (This Foreword is not part of American National Standard C12.19-2008.) The ANSI C12.19 standard provides a common data structure for use in transferring data to and from utility End Devices, typically meters. It has been approved after considerable cooperative effort among utilities, meter manufacturers, automated meter reading service companies, ANSI, Measurement Canada (for Industry Canada), NEMA, IEEE, Utilimetrics, and other interested parties. The standard data structure is defined as sets of tables. The tables are grouped together into sections called decades. Each decade pertains to a particular feature-set and related function such as Time-ofuse, Load Profile, etc. Table data is transferred from or to the End Device by reading from or writing to a particular table or portion of a table. The second release of the standard represents a philosophical departure from the first release. This release of the standard is intended to accommodate the concept of an advanced metering infrastructure such as that identified by the Office of Electricity Delivery and Energy Reliability of the U.S. Department of Energy; the Smart Metering Initiative of the Ontario Ministry of Energy (Canada) and the stated requirements of Measurement Canada for the approval of a metering device for use in Canada. This standard covers a broader range of functionality relative to its previous version; however, it does not follow that implementations of this standard need to be large or complex. Implementers are encouraged to choose an appropriate subset that is suitable for their needs. Therefore, it is very unlikely for any one End Device to embed all tables or even the majority of the tables described herein. Thereby, implementers are encouraged to deploy their desired functionalities using complete and consistent suites of standard tables from standard decades to the largest extent practical. Readers that are acquainted with ANSI C12.19-1997 will discover that the new version contains many changes. The changes may be categorized as follows: 1. Additions of new features or new functionality through the introduction of new tables, decades, or syntax. 2. Extensions or improvements to pre-existing functionality in support of contemporary and anticipated industry needs. 3. Corrections of errors and provision of clarifications that address known deficiencies and documentation of the accepted or anticipated industry practice. 4. Introduction of XML-based table description language (TDL/EDL) and documentation of services supporting the needs expressed by initiatives such as Smart Metering, Advanced Metering Infrastructure and alike. 5. Removal of features that were found undesirable. 6. Provision of guidelines for implementers of this standard and developers of future versions of the standard on backward compatibility and planned phase-out of obsolete features. Some of the many new features introduced in this revision of the standard include: • • • • • •

xiv

Addition of new data types in support of high-precision sub-second time stamps, such as HTIME_DATE and HTIME. Creation of new syntax for the aggregation of transmitted characters into strings, STRING. Creation of new syntax for the aggregation of transmitted octets into opaque blobs, BINARY. Addition of new Decade 9, Telephone tables. This decade imports and supersedes the tables and syntax defined in ANSI C12.21. Creation of new Decade 11, Load Control and Pricing Tables. This decade provides for demandside management capabilities, including load control, demand response, prepayment and direct customer billing functions. Creation of Decade 14, Extended User-defined Tables. This decade provides capability for transmitting and receiving a contiguous stream of element and sub-element data. The data are referenced methodically to the legitimate and formal C12.19 data element.

ANSI C12.19-2008 • •

Creation of Decade 15, Quality-of-service Tables. This decade provides control, capture and logging of high-precision Quality-of-service performance indicators, such as power quality, and the inclusion of detailed waveforms, power spectra and related information. Creation of Decade 16, One-way Devices Tables. This decade provides control and management tables in support of one-way (talk-only) End Devices.

Some extensions or improvements to pre-existing functionality include: •

Table 0, General Configuration Table, retains its original form and it is backward compatible with ANSI C12.19-1997. However, a few notable control elements were modified: i. ii. iii.

Extended CHAR_FORMAT to support UTF-8. Replaced MANUFACTURER element with DEVICE_CLASS element to facilitate a more dynamic End Device data model recognition. Extended TM_FORMAT in support of high-precision, sub-second, time stamps.



Changed all data source selections in all tables (e.g., Table 22) from UINT8 to SOURCE_SELECT_RCD. This form is backward and forward compatible with ANSI C12.191997 when MODEL_SELECT is 0. • Table 3, End Device Mode Status Table, incorporates the changes proposed in ANSI C12.21. • Table 7, Procedure Initiate Table, and Table 8, Procedure Response Table, were updated and extended to provide procedures in support of new functionality that is needed by: i. Decade 7, History and Event Log Tables; ii. Decade 9, Telephone Control Tables; iii. Decade 11, Load Control and Pricing Tables; iv. Decade 12, Network Control Tables and v. Decade 15 Quality-of-service Tables. • • • • •

Table 12, Unit of Measure Entry table, was expanded with new UOMs. Table 17, Transformer Loss Compensation, was added to Decade 1. Extended the event log tables to provide a new capability to manage and detect program changes through the life of the End Device. Extended the event log tables to provide a new capability to manage, authenticate and verify the integrity of data read from an End Device service point by any receiving client application that may reside across any communication system. Extended the table type that can be transmitted to include up to 2040 extended-user-defined tables via TABLE_IDA_BFLD. Also introduced a new Decade 14, Extended User-defined Tables, to manage the collation of table elements, down to the bit level, into extended-user-defined tables.

Major corrections of errors and provision of clarifications include: • • •

Section 7.0, Compliance, was updated to reduce variations in the implementation of the standard. Section 8.0, Table Transportation Issues, was updated to include the “Errata to ANSI Standard C12.19-1997, Utility Industry Data Tables” published in 2001. It also updated to harmonize this standard with ANSI C12.18, ANSI C12.21 and ANSI C12.22. Table 7, Procedure Initiate Table, and Table 8, Procedure Response Table, indices calculations were completely rewritten in order to eliminate a fatal error in the production of unique indices for procedure parameters when using index/count access methods.

Removal of features that were found undesirable include: •

Section 5.0, Syntax, no longer supports two-dimensional arrays. Appropriate corrections were applied wherever this syntax was used. This does not impact the offset/count data access methods. xv

ANSI C12.19-2008

The reader is encouraged to review the descriptive text as it brings significant clarifications and examples of use where appropriate. Suggestions for improvement to this Standard are welcome. They should be sent to: National Electrical Manufacturers Association Vice President, Technical Services 1300 North 17th Street Suite 1752 Rosslyn, VA 22209 The Secretariat of the Accredited Standards Committee on Electricity Metering, C12, is held by the National Electrical Manufacturers Association (NEMA) and the National Institute of Standards and Technology. At the time this standard was processed and approved, the C12 Committee had the following members: Tom Nelson, Chairman Paul Orr, Secretary Organization Represented: Georgia Power Underwriters Laboratories, Inc. Itron, Inc. GE Energy Florida Power & Light Co. Public Service Electric & Gas Radian Research, Inc. Milbank Manufacturing Technology for Energy Corporation Schweitzer Engineering Labs, Inc. Oncor Group Center for Neighborhood Technology Austin Energy Future DOS R&D Duke Energy Company Natl Inst. of Standards & Technology Pacific Gas & Electric Company

Name of Representative: Larry Barto Ron Breschini Brent Cain Curt Crittenden Jim DeMars David Ellis Tim Everidge Shawn Glasgow Bill Hardy Bob Hughes Brad Johnson Lawrence Kotewa Herman Millican Avygdor Moise Tim Morgan Tom Nelson D. Young Nguyen

Xcel Energy EMC Plexus EnerNex Corporation Sensus Metering Baltimore Gas & Electric Company Tucker Engineering Trilliant Networks, Inc. Landis+Gyr Watthour Engineering Co.

Dan Nordell Dave Scott Aaron Snyder George Steiner Jim Thurber Richard Tucker Michel Veillette John Voisine H.A. Wall

The following members of Working Group 2 of Subcommittee 17 worked on the development of this revision of the standard since its first publication: Avygdor Moise, Chairman Michael Anderson, Past Chairman Richard D. Tucker, Vice Chairman Terry L. Penn, Editor Paul Orr, Secretary

xvi

ANSI C12.19-2008 Organizations Represented:

Name of Representative:

American Innovations Ltd.

John Taylor

Austin International, Inc. Badger Meter Center for Neighborhood Technology C-MAC Consultant for Itron, Inc. Datamatic Energy Systems Distribution Control Systems, Inc.

William Beverly Greg Gomez Larry Kotewa Raymond Gaudreault William Buckley Robert McMichael Mark Iacoviello Peter Martin David Wiseman Wesley Ray Edward J. Beroset Avygdor Moise Virginia Zinkowski Jack Pazdon Kendall Smith Jean Joly Martin Burns William Rush Ron Begley William Mazza Don Grundhauser Aaron Snyder Chris Schafer Janice Jennings Ken Gilmer Bin Qiu Michael Anderson Stuart Garland Thomas Chen Vuong Nguyen Dan Nordell, Shawn Bagley Alex Lunycz John Newbury Richard Stetler Gregory Bray Brian Seal Marc Purc Norbert Balko Terry L. Penn Keith Martin David Taylor Ted York Michel Veillette Paul Aubin Richard D. Tucker

Duke Energy Corp. Elster Electricity, LLC Future DOS R&D, Inc. General Electric Hexagram, Inc. Hydro-Québec Hypertek Inc. for EPRI IGT IntraLynx Canada Invensys Metering Systems Itron, Inc.

Landis+Gyr Inc. Lucent Technologies, Bell Labs Main Street Networks Measurement Canada Northern States Power Co. Ontario Hydro Services Co. Open University Power Measurement Rochester Instrument Systems Schlumberger Sensus Metering Systems Southern Company Tantalus Systems Corp. Terasen Gas THY Consulting, Inc. Trilliant Networks Tucker Engineering Associates Inc.

xvii

ANSI C12.19-2008

This page intentionally left blank.

xviii

ANSI C12.19-2008

AMERICAN NATIONAL STANDARD

ANSI C12.19-2008

Utility Industry End Device Data Tables 1 Scope This Standard defines a Table structure for utility application data to be passed between an End Device and any other device. It neither defines device design criteria nor specifies the language or protocol used to transport that data.

2 References 2.1 Normative ANSI C12.10-2004

American National Standard for Physical Aspects of Watthour Meters— Safety Standard, (or latest version).

ANSI X9.31-1998

Public Key Cryptography Using Reversible Algorithms for the Financial Services Industry (rDSA), 1998.

ANSI/IEEE 100-2000

The Authoritative Dictionary of IEEE Standards Terms, Seventh Edition (New York, New York, IEEE Press, 2000, ISBN 0-7381-2601-2).

AS 4140-1995

Australian Standard, Metering and Utility Information Exchange—Glossary of Terms.

CAN/CSA ISO/IEC-10118-1: 2000 Information Technology—Security Techniques—Hash-functions—Part 1: General. CAN/CSA ISO/IEC-10118-2: 2000 Information Technology—Security Techniques—Hash-functions—Part 2: Hash-Functions Using an n-bit Block Cipher. ECMA 94 (1996)

8-Bit Single-Byte Coded Graphic Character Sets—Latin Alphabets No. 1 to No. 4-2nd Edition.

IEEE Std 519-1992

IEEE Recommended Practices and Requirements for Harmonic Control in Electrical Power Systems.

IEEE Std 754-1985

IEEE Standard for Binary Floating-Point Arithmetic.

IEEE Std 1159-1995 (R2001)

IEEE Recommended Practice for Monitoring Electric Power Quality.

IEEE Std C57.123-2002

IEEE Guide for Transformer Loss Measurement.

IEC 62053-23 (2003-01)

Electricity Metering Equipment (a.c.)—Particular Requirements—Part 23: Static Meters for Reactive Energy (classes 2 and 3).

IEC/TR 61000-2-1 (1990-05) Electromagnetic Compatibility (EMC)—Part 2: Environment—Section 1: Description of the Environment—Electromagnetic Environment for Low-

1

ANSI C12.19-2008

References frequency Conducted Disturbances and Signalling in Public Power Supply Systems.

ISO 8859-1: 1998

Information Technology—8-bit Single-byte Coded Graphic Character Sets— Part 1: Lating Alphabet No 1.

ISO/IEC 646: 1991

Information Technology—ISO 7-bit Coded Character Set for Information Interchange.

ISO/IEC 7498-1: 1996

Information Technology—Open Systems Interconnection—Basic Reference Model: The Basic Model.

ISO/IEC 10646: 2003

Information Technology—Universal Multiple-Octet Coded Character Set (UCS).

2.2 Other ACPTLC : 1998

Algorithm for Computing and Programming Transformer Loss Constants in Solid-State Meters, A. Hannah, “in Proc. 1998 Rural Electric Power Conference, pp. B3-1-17.

EEI HEM : 2002

Handbook for Electricity Metering, 10th Edition (Washington, District of Columbia, Edison Electric Institute, 2002, ISBN 0-931032-52-0).

IEEE EPEH : 2000

The Electric Power Engineering Handbook, CRC Press and IEEE Press, 2000, L. L. Grigsby, Ed., Section 3, “Transformers”, J.H. Harlow, Ed.

IEEE IAM : 11/12 2003

S. Y. Merritt and S. D. Chaitkin, “No-load Versus Load Loss,” IEEE Industry Applications Magazine, pp. 21-28, Nov./Dec. 2003.

ISBN 0-201-30998-X

The Unified Modeling Language Reference Manual (The Addison-Wesley Object Technology Series, 1999, ISBN 0-201-30998-X)

ISBN 0-321-18578-1

The Unicode Consortium. The Unicode Standard, Version 4.0.0, defined by: The Unicode Standard, Version 4.0 (Boston, Massachusetts, AddisonWesley, 2003. ISBN 0-321-18578-1). http://www.unicode.org/versions/Unicode4.0.0/

ISBN 0-321-24562-8

The Unified Modeling Language Reference Manual, Second Edition (Upper Saddle River, New Jersey, Addison-Wesley, 2005, ISBN 0-321-24562-8).

ISBN 0-8493-0628-0

CRC Standard Mathematical Tables, 28th Edition (CRC Press, Inc.,1987, Boca Raton, Florida, ISBN 0-8493-0628-0).

IS-E-01-E

Specifications Relating to Event Loggers for Electricity Metering Devices and Systems (Measurement Canada, IS-E-01-E, 2003)

MCPSMTD : 1999

Principles for Sealing Meters and Trade Devices (Measurement Canada, 1999-07-26)

UG : 2005

Utility Industry Standard Tables User’s Guide (Measurement Canada, Revised Version 3.2, 2005) .

2

Other

Definitions

ANSI C12.19-2008

3 Definitions The definitions used in this Standard have been derived from the sources cited in Section 2, References, with the exception of those introduced in this Standard revision, labeled “[New]”.

3.1 ACT Abbreviation for "ACTUAL"; the programmed functional capabilities of an End Device. [ANSI C12.191997]

3.2 Address Those inputs whose states select a particular cell or group of cells. [IEEE 100-2000]

3.3 Advanced Metering Infrastructure (AMI) AMI is defined as the communications hardware and software and associated system and data management software that creates a network between advanced meters and utility business systems and which allows collection and distribution of information to customers and other parties such as competitive retail providers, in addition to providing it to the utility itself. [Federal Energy Regulatory Commission, FERC-727 and FERC-728, OMB Control Nos. 1902-0214 & 1902-0213 Glossary, Survey on Demand Response, Time-Based Rate Programs/Tariffs and Advanced Metering Infrastructure]

3.4 Alias An alternate name of a Table, Procedure, Element or a derived type. An alias name can be used as an alternative when making references to Tables, Procedures, Elements or derived types. Example: Table 0 of ANSI C12.19-1997 contains the Element MANUFACTURER, whereas this Standard renamed it to DEVICE_CLASS, and defined it to be an aliased it to MANUFACTURER for backward compatibility. All references to MANUFACTURER and DEVICE_CLASS refer to the same Element.

3.5 ARRAY In text form, “Array” or “array,” a grouping of repetitions of the same data type, used to describe a single Element. [New]

3.6 BIT FIELD (BFLD) In text form, “Bit Field” or “bit field” is a collection of data sub-elements, each spanning one or more of bits, that may not be aligned on an Octet boundary nor span an integral multiple of Octets. Multiple occurrences of these sub-elements are grouped (packed) together so that the entire collection of bits ends on an Octet boundary. For purposes of transmission, the entire group of bits is treated as an Atomic Element having the type of unsigned integer. [New]

3.7 Block A collection of interval-based Register values spanning one or more channels. [New]

3.8 Channel A single path for the collection of interval-based Register values over a period of time. [New]

3.9 Clock A device that generates periodic signals used for synchronization. A device that measures and indicates time. A register whose content changes at regular intervals in such a way as to measure time. [ANSI C12.19-1997]

3.10 Count The number of Octets selected when using the offset/octet-count partial Table access method. [ANSI C12.19-1997]

3.11 Cumulative Demand Summation of Maximum Demands during the preceding periods is indicated during the period after the meter has had a demand reset performed and before it has been reset again. Note: The maximum demand for any one demand interval is equal or proportional to the difference between the accumulated readings before and after reset. [IEEE 100-2000]

ACT

3

ANSI C12.19-2008

Definitions

3.12 Customer The purchaser/user of a product or service supplied by a service provider or utility. [AS4140-1995]

3.13 Data Encryption The changing of the form of a data stream such that only the intended recipient can read or alter the information and detect unauthorized messages. [ANSI C12.19-1997]

3.14 Decade A functional grouping of Tables by application into groups of ten. The Tables are numbered “X0” through “X9”, with “X” representing the Decade number. [ANSI C12.19-1997]

3.15 Default Set Element-values provided when FLC Tables or FLC+1 Tables of any Decade are not used by the End Device. This Standard provides Default Set Element-values for all FLC and FLC+1 Table-elements. End Device vendors may provide Default Set Element-values for any Manufacturer-defined Decades FLC and FLC+1 using EDL. [New]

3.16 Demand The consumption (e.g., energy, volume) recorded during the integration time period divided by the integration time period. [ANSI C12.19-1997]

3.17 Demand, Block An average value (e.g., Watthours/hours) occurring over a Demand period specified by the End Device. This value may be used by the End Device for maximum or minimum registration computation. [ANSI C12.19-1997]

3.18 Demand, Maximum The highest Demand measured over a selected period of time. Also referred to as “Peak Demand.” [ANSI C12.19-1997]

3.19 Demand, Minimum The lowest Demand measured over a selected period of time. [ANSI C12.19-1997]

3.20 Demand, Present Demand occurring during the present Demand interval or subinterval (e.g., Watts or VA). [ANSI C12.191997]

3.21 Demand, Sliding Window (Rolling-Interval) The Block Demand calculated over an integration period which includes sub-intervals of previous Demand calculations. [ANSI C12.19-1997]

3.22 Deprecated Outdated or superseded. Deprecated syntax. Tables or Elements are defined in the Standard or Manufacturer reference documentation of the End Device (TDL) and are clearly marked in the document.

3.23 DIM Abbreviation for "DIMENSION"; the maximum functional capability designed into an End Device. See definition of “Function Limiting Control Table”. [ANSI C12.19-1997]

3.24 Document Type Definition (DTD) The XML document type declaration contains or points to markup declarations that provide a grammar for a class of documents. This grammar is known as a document type definition, or DTD. The document type declaration can point to an external subset (a special kind of external entity) containing markup declarations, or can contain the markup declarations directly in an internal subset, or can do both. The DTD for a document consists of both subsets taken together. [W3C Recommendation, Extensible Markup Language (XML) 1.1 (Second Edition)]

3.25 Element The union of all of the Atomic Elements which share the same index prefix. An Element can be any type, a set, an array or a selection from an array. [ANSI C12.19-1997]

4

Customer

Definitions

ANSI C12.19-2008

3.26 Element, Atomic A restricted subset of an Element that is the smallest component of an Element that can be transmitted as an integral number of Octets without loss of its meaning or interpretation during transmission, in accordance with Octet ordering and bit packing. [New]

3.27 Element, Final An inner-most expression of an Atomic Element or a Sub-element. This expression can be used to retrieve a single value. Only Final Elements can be used in calculations. Decade names, Table names, Procedure names and constants are also Final Elements, when used in a calculation. The value returned by Decade, Table, and Procedure names is their corresponding number. The value returned by a constant is the constant’s assigned value. [New]

3.28 Element, Volatile A Table Element whose values may change asynchronously by means other than reading or writing Tables. Two consecutive reads of the same Table Element may yield different values due to real-time changes to the End Device Register, sensed values, state or status. [New]

3.29 Element-count The number of Elements selected when using the index/element-count partial Table access method. The Elements selected are derived from the serialization of all Elements, starting with the one identified by the index, sequentially, which share part or all of the selection index prefix. [ANSI C12.19-1997]

3.30 End Device The closest device to the sensor or control point within a metering application communication system which is compliant with the Utility Industry End Device Data Tables. [ANSI C12.19-1997]

3.31 End Device Agent The entity responsible for managing the End Device operations and programs. It is capable of affecting change to the End Device program. It is also responsible for keeping a record of all End Device programming parameters, constants, change history and event logger records. The End Device Agent is also responsible for maintaining and demonstrating continuity between metrological data records and End Device programs, exclusively through the use of Utility Industry End Device Data Tables. [ANSI C12.191997]

3.32 Event A noteworthy occurrence that has a location in time and space, and does not have duration. Event parameters include information about the state of the End Device before the Event, after the Event, the Event time and related Event-identifying information. Event parameters can be made available for inspection directly or indirectly through a calculable derivative. [Adopted from ANSI C12.19-1997 and ISBN 0-201-30998-X, The Unified Modeling Reference Language Manual]

3.33 Event Instance A specific occurrence of an Event. Each Event Instance is characterized by a set of Event parameters There are four kinds of Event Instances: Call Event, Change Event, Signal Event and Time Event. [Adopted from ANSI C12.19-1997 and ISBN 0-201-30998-X, The Unified Modeling Reference Language Manual]

3.34 Event Logger Data The entire content of all Tables designated as Program Tables, all associated pointers and all signatures that are expressed by or implied by Event Logger Record for a specific Event. The Event Logger Data originates initially inside the End Device, but it may extend into the End Device Agent record-keeping system. [ANSI C12.19-1997]

3.35 Event Logger Record The pointers and signatures that are expressed by or implied by EVENT_LOG_DATA_TBL.EVENT_LOG_RCD and EVENT_LOG_DATA_TBL.EVENT_ENTRY_RCD to define the Event Logger Data for a specific Event. [New]

Element, Atomic

5

ANSI C12.19-2008

Definitions

3.36 Event, Call An Event Instance caused by a receipt of an explicit synchronous request (e.g., a request to write a Table by a communication protocol). [Adopted from ISBN 0-201-30998-X, The Unified Modeling Reference Language Manual]

3.37 Event, Change An Event Instance caused by change in the value of a Boolean expression (e.g., tamper detect, change in metering mode). [Adopted from ISBN 0-201-30998-X, The Unified Modeling Reference Language Manual]

3.38 Event, Signal An Event Instance caused by explicitly named asynchronous communication among Objects (e.g., advancing list pointers as a result of execution of an advance list pointers procedure). [Adopted from ISBN 0-201-30998-X, The Unified Modeling Reference Language Manual]

3.39 Event, Time An Event Instance caused by the occurrence of an absolute time or the passage of a relative amount of time (e.g., time-of-use schedule invoking a self-read). [Adopted from ISBN 0-201-30998-X, The Unified Modeling Reference Language Manual]

3.40 Exchange Data Language (EDL) Exchange Data Language is for encoding, import and export of Default Sets defined by this Standard, Table Element values retrieved from an End Device, Table Element values to be stored in an End Device, Manufacturer constant Element-values and Utility or Customer site-specific constant Element-values that need to be known by application. The Exchange Data Language Element-values are encoded using XML. [New]

3.41 Extensible Markup Language (XML) Extensible Markup Language is a recommendation for a lexical grammar produced by the World Wide Web Consortium (W3C). The Extensible Markup Language, abbreviated XML, describes a class of data objects called XML documents and partially describes the behavior of computer programs that process them. XML is an application profile or restricted form of SGML, the Standard Generalized Markup Language [ISO 8879]. By construction, XML documents are conforming SGML documents. [Adopted from W3C Recommendation, Extensible Markup Language (XML) 1.1 (Second Edition)]

3.42 Index A unique sequence of numbers used to select a Table Element. An Index may be represented in dotnotation format (text transmission form) or as in binary array (binary transmission form). An Index may reference any Table Element. [ANSI C12.19-1997]

3.43 Interharmonics Frequencies between the harmonics of the power frequency voltage and current that can be observed but are not an integer multiple of the fundamental frequency. They can appear as discrete frequencies or as a wide-band spectrum. [Adapted from IEC/TR 61000-2-1 and IEEE 100-2000]

3.44 Load Profile The recording, storage and analysis of consumption data over a period of time for a particular installation. [ANSI C12.19-1997]

3.45 Meter A device that measures and records the consumption or usage of the product/service. [ANSI C12.191997]

3.46 Metrological Adjustment Any physical means or methods designed or used, whether directly or indirectly, whether intentionally or unintentionally, to alter or correct the measurement characteristics of an End Device or any of its subsystems that are used for trade measurement purposes. This includes altering or replacing Registers, components, connections or internal working parts of the End Device. It also includes the alteration of any Metrological Parameter that would be made available from the End Device or any of its outputs.

6

Event, Call

Definitions

ANSI C12.19-2008

Metrological Adjustments manifest themselves in changes to Metrological Tables. [Adopted from Measurement Canada IS-E-01-E and Utility Industry Standard Tables User’s Guide].

3.47 Mode, Factory A superset of Meter Shop Mode where, in addition, manufacturer limited functions and parameters are also available for modification. [New]

3.48 Mode, Meter Shop The operating state of the End Device where revenue metering is prohibited. The entry state and the exit state of the End Device may be unrelated and untraceable. An exit from Meter Shop Mode represents a new initial state for the End Device. While operating in Meter Shop Mode, all operational safeguards such as logging, security and accumulation may be disabled. [New]

3.49 Mode, Metering The operating state of the End Device wherein measured or input quantities are accumulated for the purpose of revenue metering. [New]

3.50 Mode, Test The operating state of the End Device wherein the Metering Mode state parameters are saved prior to entry and restored upon exit. [New, Adopted from ANSI C12.1-2001]

3.51 Object A Table Object or an Element Object [Revised]

3.52 Object, Element An Atomic Element, an Element, Sub-element or a Final Element of a Table that can be described, encoded or communicated using this Standard. [New]

3.53 Object, Table A Table and all the Elements it contains that can be described, encoded or communicated according to this Standard. When the Table referenced is a Pending Table, then the Table Object includes the Pending Header. [New]

3.54 Octet A sequence of eight bits. [ANSI C12.19-1997]

3.55 Offset The number of Octets, relative to the beginning of a Table, that precede the desired Element. When the Table is a Pending Table, then Offset zero (0) is the first Element at beginning of the Table following the Pending Table header. [ANSI C12.19-1997]

3.56 Override In the context of declaration of type, a relaxed variation of the Replace attribute in that Overridden types have different Offsets and Indices from those of the referenced Elements, and thus can expose additional detail to internal structure of Elements that were otherwise opaque. [New]

3.57 PACKED RECORD In text form, “Packed Record”, or any variation thereof, a group of Element types, anyElementType, created as a new derived data type. [New]

3.58 Procedure An action that can be performed by the End Device. A Procedure is initiated by writing to Standard Table 07 and the result may be retrieved by reading Standard Table 08. [New]

3.59 Procedure, Manufacturer A Procedure whose structure and actions are defined by an individual End Device manufacturer. [New]

3.60 Procedure, Metrological A Procedure whose action causes a change to a Metrological Parameter or results in a Metrological Adjustment. [New]

Mode, Factory

7

ANSI C12.19-2008

Definitions

3.61 Procedure, Standard A Procedure whose structure and actions are defined by this Standard. [New]

3.62 Quadrant Divisions of the plane formed by the representation of active power (watts), reactive power (VAR) and vector apparent power (voltamperes) in a Cartesian coordinate system. In this standard, the convention used is that the vectors rotate counter clockwise and the quadrants are numbered as shown in the diagram below. For clarity, the diagram includes both the Handbook definition and the IEC terminology in parentheses. It should be noted that the ANSI terms are with respect to the utility (e.g., “delivered” means delivered by the utility) and the IEC 62053 terms are with respect to the consumer (e.g., “imported” means imported by the consumer). [Adapted from the Handbook for Electricity Metering, IEC 62053-23: 2003, and the CRC Standard Mathematical Tables] Delivered VAR (Q+, Import ReactivePower)

Quadrant 2 Leading current Capacitive

Quadrant 1 Lagging current Inductive

Received Watts (P-, Export Power)

Delivered Watts (P+, Import Power) Quadrant 3 Lagging current Inductive

Quadrant 4 Leading current Capacitive

Received VAR (Q-, Export ReactivePower)

3.63 Redefine Used in the context of declaration of type. The new type definition is constrained by the referenced type definition whereby the new definition shall have identical Element content, types, Indices and Offsets to those found in the referenced type. The referenced type is left unaffected. This feature is useful when defining ACT Tables, then reusing only the Element types (not the Element names or descriptions) of the DIM Tables to define actual limits Tables. The local redefinition feature is subject to the following constraints: 1. A type can be Redefined any number of times. Redefinition of a type that has already been previously redefined elsewhere is possible. 2. New types based on Redefined types can be defined in the same TDL document that defines the referenced type. 3. Redefinition of a Replaced packed record is possible. 4. Redefinitions are processed after Replacements and Overrides.

3.64 Register A device for use with a meter that indicates or records units of the delivered commodity or other quantity measured. Registers in End Devices are often spoken of according to the units involved, such as accumulation (energy, volume, mass), Demand, Time-of-use (TOU), instantaneous values or other(s) as

8

Procedure, Standard

Definitions

ANSI C12.19-2008

appropriate. [New, portions adopted from ANSI C12.1-2001 and ANSI C12.19-1997]

3.65 Register, Secured A Volatile Element whose transmitted value can be encoded by the End Device as a one-way hash in response to a Read Service request from an initiator. The purpose of the encoding is to detect whether the value transmitted was subsequently altered and to enable the receiver to verify the authenticity of the value in a manner that is independent from the transport protocol used. The Reading of a Secured Register may generate a Read Secured Register or Read Secured Table event within the End Device. [New]

3.66 Replace The action whereby an older type definition shall be replaced by (i.e., mapped to) a new type definition. Any reference to the old definition shall resolve to the new definition. This feature enables one Standard to be derived from another Standard and for a manufacturers of End Devices to define (thus document) opaque fields that are defined by the referenced Standard and implemented in the End Device. The replacement feature is subject to the following constraints: 1. A referenced type can be Replaced only once in any one instance of an End Device TDL definition; therefore, Replacement of a type that has already been previously replaced elsewhere is not possible. 2. The Replaced type cannot be defined in the same TDL document that defines the original type. 3. Replaced types have identical Element Offsets and Indices as those of the referenced Elements; however, they can expose additional detail to internal structure of Element that were otherwise opaque. 4. A Replaced type cannot be Overridden in the same TDL document. [New]

3.67 Reserved Qualifier applied to one or more Elements or values indicating they are not available for use with this Standard. The use of a Reserved Element or value shall render an application non-compliant with this Standard. [New]

3.68 Seal An item or process that has the purpose of providing marketplace integrity and confidence against End Device tampering and as such it has three main functions: (1) To secure an End Device so that access or changes to Metrological Adjustments and Sealable Parameters will be detectable. (2) To identify the date and organization which verified the End Device. This information is necessary for the administration and enforcement of legislation, for complaint or dispute investigation purposes, and also for seal period and seal extension purposes. (3) To act as a deterrent to the unauthorized access or changing of metrologically sensitive adjustments and Sealable Parameters. Seals may be implemented as Physical Seals and/or Logical Seals. [Adopted from Measurement Canada, 1999-07-26 Principles for Sealing Meters and Trade Devices]

3.69 Seal, Logical (Event Loggable) A Seal that is comprised of firmware and software mechanisms that work together to secure access to an End Device’s Metrological Adjustments and Sealable Parameters. This Standard provides Event Log Tables for the management of Seals. [New]

3.70 Seal, Physical A physical mechanism that is used to secure access to an End Device’s Metrological Adjustments and Sealable Parameters. [New]

3.71 Sealable Parameter A Metrological Parameter that is secured or protected from alteration by a Seal. [New]

3.72 Season A calendar-specified period used for activation of rate schedules. [ANSI C12.19-1997]

3.73 Secured Read Reading of a Secured Register from an End Device that is capable of generating an End Device Secured

Register, Secured

9

ANSI C12.19-2008

Definitions

Register event, and provided that this capability was enabled in the End Device. [New]

3.74 Self-read A copy of Elements from one Table to another Table inside of an End Device, often at periodic intervals, triggered by an Event. [New]

3.75 SET A collection of Booleans, eight Booleans per Octet. Each Boolean member of the SET is a Final Element. [New]

3.76 Signature Often referred to as a hash-code; an n-bit sequence that is generated using an algorithm on the content of an End Device Table or a group of End Device Tables. The resulting sequence of bits is truncated to a small number of bits (e.g., 128 bits). A good hash function will enable (a) detection of file (or table) content corruption (unauthorized change), and (b), authentication of the End Device Agent who created the file (or Table). [ANSI C12.19-1997]

3.77 Strict In the context of declaration of type. When a type is created and the Replace, Redefine or the Override attribute is used and strictness is asserted (TRUE), then the search rule for the target type shall be strictly applied. A strict search requires that the implied or explicit target scope contains the Replaced, Redefined or Overridden type. A non-strict search requires that the implied or explicit target scope is where the search starts in the End Device TDL document scope hierarchy. This search is carried in such a manner that the first encounter of the target type within any of the parent scopes will be considered a match for the sought Replaced or Redefined type. [New]

3.78 STRING An Atomic Array of Octets to be interpreted as characters dependent upon CHAR_FORMAT. Section 6.1, “Character Set Selection”. [New]

See

3.79 Sub-element A subset of an Atomic Element, which is a single bit of a SET or a member of a BIT FIELD. [ANSI C12.19-1997]

3.80 Table Functionally related utility application data Elements, grouped together into a single data structure for transport. [ANSI C12.19-1997]

3.81 Table Definition Language (TDL) Syntax used for detailing the Standard’s or an End Device’s Table structure, defined types and constraints in a machine-readable format. The Table Definition Language is encoded using XML. [new]

3.82 Table, Extended User-defined (EUDT) An extension on UDTs to add up to 2040 virtual Tables that can select from, or reference into, Standard Tables and Manufacturer Tables. Extended User-defined Tables shall not refer to, or select from, Extended User-defined Tables. [New]

3.83 Table, Function Limiting Control (FLC) The first Table in each Decade. This Table specifies the limits designed into an End Device with respect to Elements used within that Decade. [ANSI C12.19-1997]

3.84 Table, Manufacturer A Table whose structure is defined by an individual End Device manufacturer. [New]

3.85 Table, Metrological A Table that contains at least one Element that is also a Metrological Parameter. [New]

3.86 Table, Pending Tables that have yet to be activated through conditions specified by the EVENT_CODE and trigger conditions in the EVENT_STORAGE_RCD in the Pending Event Description of the End Device. [New]

10

Self-read

Definitions

ANSI C12.19-2008

3.87 Table, Program An End Device Table that contains setup, configuration or general product or record keeping information about the End Device. Programming Tables shall not contain sensory information, End Device state information or End Device logs that are volatile and change in the normal course of operation of the End Device. [New]

3.88 Table, Secured A Table that contains Secured Register. [New]

3.89 Table, Standard A Table whose structure is defined by this Standard. [New]

3.90 Table, User-defined (UDT) A Table whose Elements values that are derived from references (for writing) or Element values (for reading) into a temporary common area, which enables applications to make references to Tables and Table Elements that are present or implied to be present in an End Device. The Elements gathered may then be retrieved, and the Elements referenced may be written, as if the Standard provided an explicit Table and descriptive syntax to express the resulting User-defined Table structure. [New]

3.91 Tariff A published list of rate schedules and terms and conditions. [ANSI C12.19-1997]

3.92 Tier A consumption-based or time-based rate range for the commodity. [New]

3.93 Time-Of-Use (TOU) Metering The use of metering equipment to separately record metered or measured quantities according to a time schedule. [ANSI C12.19-1997]

3.94 Undefined Qualifier applied to one or more Elements or values that are not defined by this Standard. The use of an Undefined Element or value shall not affect compliance with this Standard; however, the outcome is indeterminate. [New]

3.95 Utility A provider of electricity, gas, water, telecommunications or related services to a community. [ANSI C12.19-1997]

Table, Program

11

ANSI C12.19-2008

General

4 General 4.1 Standard Tables Standard Tables are those whose structures are specified by this Standard. They should be used for both End Device programming and reading. The Tables provide control Tables as well as data Tables for a wide variety of functions to be implemented in addition to those presently defined. This Standard provides for a total of 2040 Standard Tables, although not all are defined. 4.1.1

Standard Tables Grouping

The Standard Tables are grouped together in Decades, with each Decade covering a general area of functionality. The first Table of each Decade, beginning with the Decade 1, is referred to as a Function Limiting Control (FLC) Table. The purpose of the FLC Table is to specify the designed DIMENSION (DIM) limits (maximum limits) for Elements used within the Decade for the End Device. If present, the Table immediately following an FLC table is called the FLC+1 Table. The FLC+1 Table defines the ACTUAL (ACT) limits used for Elements in the current configuration of the End Device. If the FLC+1 Table is not present, the ACTUAL (ACT) limits are identical to the designed DIMENSION (DIM) limits specified in the FLC Table. 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 default sets for a particular Decade are defined within this Standard in Annex C, “Default Sets for 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

Not Used Not Used Not Used Not Used Used Used Used Used

Not Used Not Used Used Used Not Used Not Used Used Used

Not Used Used Not Used Used Not Used Used Not Used Used

None - Decade not used Default set, per Standard Decade FLC+1 Table** Decade FLC+1 Table Decade FLC Table** Decade FLC Table Decade FLC+1 Table** Decade FLC+1 Table

A B C D E F G H

** Not recommended practice.

Figure 4.1—Possible Combinations of FLC, FLC+1, and Decade Tables 4.1.2

Standard Tables Properties

All Standard Tables assume a set of properties that are defined by this Standard. Listed below are the Tables’ default properties to be assumed when not explicitly qualified by this Standard. The default Table properties are shown in the figure below:

12

Table Property*

Required

name

Yes

number label

Yes No

type

Yes

role

No

FLC Table

Global Default Table Property Value FLC+1 Table FLC+n Table (n>1)

Table name

Table name

Table name

“LIMITING”

“ACTUAL”

“UNDEFINED”

Standard Tables / Standard Tables Grouping

General

ANSI C12.19-2008

Global Default Table Property Value FLC+1 Table FLC+n Table (n>1)

Table Property*

Required

FLC Table

associate

No

Scope of the Decade where defined

Scope of the Decade where defined

Scope of the Decade where defined

atomic

No

“false”

“false”

“false”

accessibility

No

“READONLY”

“READWRITE”

“READWRITE”

deprecated

No

“false”

“false”

“false”

metrological volatile**

No No

“false” “AUTO_AS_PER_ROLE”

“false” “AUTO_AS_PER_ROLE”

“false” “AUTO_AS_PER_ROLE”

class***

No

“STD”

“STD”

“STD”

* For more information, see Annex I.2.25, “ Element (Child of or )”. ** When the volatile attribute is set to “AUTO_AS_PER_ROLE”, then the values shall be assumed for Table volatility based on their assumed role as follows: role = “UNDEFINED” implies volatility is “true”. role = “LIMITING” implies volatility is “false”. role = “ACTUAL” implies volatility is “false”. role = “CONTROL” implies volatility is “false”. role = “DATA” implies volatility is “true”. role = “PRIVATE” implies volatility is “true”.. *** A tag that identifies an application run-time class (module) that should be used to manage this Table. Standard classes defined are STD.UDT, STD.EUDT and STD.

Figure 4.2—Default Standard Tables Properties 4.1.3

Standard Procedure Properties

All Standard Procedures (Table 7, Table 8 and procedures defined within) assume a set of properties that are defined by this Standard. Listed below are the default properties to be assumed when not explicitly qualified by this Standard. The default Procedure properties are shown in the figure below: Procedure Property* name number label type role associate

Required

atomic accessibility deprecated metrological volatile class target

No No No No No No Yes

strict

No

Yes Yes No Yes No No

Global Default Procedure Property Value Table 7 / Procedure Request Table 8 / Procedure Response

TABLE name / Procedure Name

TABLE name / Procedure Name

“CONTROL” Scope of Procedure where defined then PROC_INITIATE_TBL. STD_PARM_RCD then its parents’ scope. “true” “READWRITE” “false” “false” “AUTO_AS_PER_ROLE” “STD” Not Applicable / “PROC_INITIATE_TBL. STD_PARM_RCD” Not applicable / “true”

“DATA” Scope of Procedure where defined then PROC_RESPONSE_TBL. STD_RESP_RCD then its parents’ scope. “true” “READONLY” “false” “false” “AUTO_AS_PER_ROLE” “STD” Not Applicable / “PROC_RESPONSE_TBL. STD_RESP_RCD” Not applicable / “true”

* For more information see Annex I.2.26, “ Element (Child of or )”.

Figure 4.3—Default Standard Tables 7,8 and Procedures Properties

Standard Tables / Standard Procedure Properties

13

ANSI C12.19-2008

General

4.2 Manufacturer Tables Manufacturer Tables are those structures specified by individual End Device vendors. They should be used to introduce innovations or to provide customer-requested data structures that are not defined by this Standard. It is noted that the Standard also provides for the latter to be accomplished in a limited manner through user-defined Tables (Decade 8) and extended user-defined Tables (Decade 14). Manufacturer Tables also provide a path for new functions to evolve into a Standard Tables. 4.2.1

Manufacturer Tables Grouping

This Standard provides access for a total of 2040 Manufacturer Tables. When Manufacturer Tables may introduce new Decades, then the implementation guidance enumerated in Figure 4.1 shall be followed. When Manufacturer Tables are introduced singly (i.e., as FLC+N Tables), they shall be associated with an existing Decade. More details are found in Annex I.2, “TDL XML File Format of the TDL Document” and more specifically see the associate attribute described in Annex I.2.25, “ Element (Child of or )”. 4.2.2

Manufacturer Tables Properties

All Manufacturer Tables assume a set of properties that are defined by this Standard. Listed below are the Tables’ default properties to be assumed when not explicitly qualified by the manufacturer’s TDL. The default Manufacturer Table properties are shown in the figure below: Mfg Table Property* name number label type role associate

Required

atomic accessibility deprecated metrological volatile Class*

No No No No No No

Yes Yes No Yes No No

Global Default Table Property Value

Table name “UNDEFINED” Scope of the TDL or Decade where defined “false” “READWRITE” “false” “false” “AUTO_AS_PER_ROLE” “STD”

* A tag that identifies an application run-time class (module) that should be used to manage this Manufacturer Table. STD signifies that the Standards Table-read and Table-write and TDL rules apply, with no additional assumptions for interpretation. Other predefined algorithms are STD.UDT and STD.EUDT.

Figure 4.4—Default Manufacturer Tables Properties 4.2.3

Manufacturer Procedure Properties

All Manufacturer Procedures share, by default, a set of properties that are defined by this Standard. Listed below are the default properties to be assumed when not explicitly qualified by the Manufacturer’s TDL. The default Procedure properties are shown in the figure below:

14

Manufacturer Tables / Manufacturer Tables Grouping

General

ANSI C12.19-2008

Procedure Property name number label extend role associate

Required

atomic accessibility deprecated metrological volatile class target

No No No No No No Yes

strict

No

Yes Yes No Yes No No

Global Default Procedure Property Value MFG Procedure Request MFG Procedure Response

Procedure Name

Procedure Name

“CONTROL” Scope of Procedure where defined then PROC_INITIATE_TBL. MFG_PARM_RCD then its parents’ scope. “true” “READWRITE” “false” “false” “AUTO_AS_PER_ROLE” “STD” “PROC_INITIATE_TBL. MFG_PARM_RCD” “true”

“DATA” Scope of Procedure where defined then PROC_RESPONSE_TBL. MFG_RESP_RCD then its parents’ scope. “true” “READWRITE” “false” “false” “AUTO_AS_PER_ROLE” “STD” “PROC_RESPONSE_TBL. MFG_RESP_RCD” “true”

Figure 4.5—Default Manufacturer Procedures Properties

4.3 Packed Record, Bit Field and Element Properties Packed Records, Bit Fields and the contained Element definitions also have default properties. These default properties are fully described in Annex I, “XML File Format of TDL and EDL Files”.

4.4 Extended User-defined Tables Properties Extended User-defined Tables default properties are identical to the properties shown in Section 4.1.2, “Standard Tables properties”, except for the class=“STD.EUDT”. The class “STD.EUDT” invokes the Standard’s processing requirements for Extended User-defined Tables.

Packed Record, Bit Field and Element Properties

15

ANSI C12.19-2008

Syntax

5 Syntax 5.1 Descriptive syntax Describing data definitions is usually accomplished within the confines of a given language and the grammar rules of that language. Since the data definitions embodied within this document are meant to be independent of a specific language and capable of being implemented within the confines of any language, a method for describing the data definitions has been adopted. The descriptive syntax is expressed using the Extended BNF definitions defined in Annex G, "Document-form Descriptive Syntax”. The definition syntax is a merge between the traditional Backus Naur Format and XML simple BNF as described in http://www.w3.org/TR/2000/REC-xml-20001006 Extensible Markup Language (XML) 1.0, Second Edition, with extensions that facilitate the binding of production rules needed for the definition of the published pseudo PASCAL text (Section 9.0) and the machine-readable XML based TDL. In addition, the Extended BNF syntax provides definitions for constraints on binary transmission and interpretation of types.

6 Special Data Types In order to add flexibility to the definition of some of the data types used within the tables, special data types are provided. The selection of special data type definitions are place in GEN_CONFIG_TBBL (Table 00) and remain in effect for all Tables. This section defines the encoding used to transmit the special data type. All special data types, just like built-in types, are Atomic.

6.1 Character Set Selection This selection is used to determine the encoding of characters that are used in the Tables. GEN_CONFIG_TBL.FORMAT_CONTROL_1.CHAR_FORMAT is the controlling selector for the encoding of CHAR, STRING, FLOAT_CHAR6, FLOAT_CHAR12 and FLOAT_CHAR21. TDL Type Definitions { Enumerator CHAR_FORMAT_ENUM } TDL Element Descriptions Identifier

Value

Definition

0

Reserved.

1

ISO 7-bit coded character set for information interchange, per ISO/IEC 646: 1991, a fixedwidth encoding using 8 bits as its base unit for length calculations and UINT8 as the base unit for transmission.

2

ISO 8-bit coded character as per ISO 8859/1 or ECMA-94 Latin 1 character set, a fixed-width encoding using 8 bits as its base unit for length calculations and UINT8 as the base unit for transmission.

CHAR_FORMAT_ENUM

16

Descriptive syntax

Special Data Types

ANSI C12.19-2008 3

UTF-8 as per utf8., variable-width encoding using 8 bits as its base unit for length calculations and UINT8 as the base unit for transmission. This type maximizes compatibility with CHAR_FORMATs 1 and 2 as per Section 2.5, “Encoding Forms / UTF-8” and Section 15.9, “Specials“ of “The Unicode Standard”, Version 4.0. In UTF-8 the byte order mark, BOM, corresponds to the byte sequence [#xEF] [#xBB] [#xBF]. The BOM of UTF-8 shall be permitted only when it can be accommodated by the size of the element that is of type UTF-8 whose size is at least three octets, but it shall be ignored (not produce displayable text) by the processing application.

4..7

Reserved.

6.2 Non-integer Formats This selection is used to determine the structure of non-integer numbers used in the Tables. The Table Elements GEN_CONFIG_TBL.FORMAT_CONTROL_3.NI_FORMAT1 and GEN_CONFIG_TBL. FORMAT_CONTROL_3.NI_FORMAT2 are the controlling selectors for the built-in types NI_FMAT1 and NI_FMAT2. They provide the final associations between BNF.anyFloat non-integer data types and the actual atomic encoding used to transmit NI_FMAT1 and NI_FMAT2 data items as defined below. TDL Type Definitions { Enumerator NI_FORMAT_ENUM } TDL Element Descriptions Identifier

Value

NI_FORMAT_ENUM

Values that may be assumed by GEN_CONFIG_TBL.FORMAT_CONTROL_3.N I_FORMAT1 (which controls the interpretation of the built-in type NI_FMAT1) and GEN_CONFIG_TBL.FORMAT_CONTROL_3.N I_FORMAT2 (which controls the interpretation of the built-in type NI_FMAT2). 0 1 2 3 4 5 6 7 8 9 10

Non-integer Formats

Definition

FLOAT64 FLOAT32 FLOAT_CHAR12 (A STRING Number) FLOAT_CHAR6 (A STRING Number) INT32 (Implied decimal point between fourth and fifth digits from least significant digit. For example 0.0001 is represented as 1) FIXED_BCD6 FIXED_BCD4 INT24 INT32 INT40 INT48

17

ANSI C12.19-2008

Special Data Types

11 12 13 14..15 6.2.1

INT64 FIXED_BCD8 FLOAT_CHAR21 (A STRING Number) Reserved

STRING Numbers

When STRING is used and GEN_CONFIG_TBL.FORMAT_CONTROL_3.NI_FORMAT1 or GEN_CONFIG_TBL.FORMAT_CONTROL_3.NI_FORMAT2 has a value of 2, 3 or 13, the number shall be represented according to BNF.floatingPointStringNumber. A STRING number (BNF.floatingPointStringNumber) representation can have any number of leading spaces, followed by an optional plus or minus sign, followed by a mandatory one or more digits, followed by an optional period and zero or more digits, followed by an optional exponent. An exponent is composed of the letter “E”, “e”; followed by an optional plus or minus sign, followed by a mandatory one or more digits. Any number of spaces can lead or follow the BNF.floatingPointStringNumber, but spaces shall not be embedded within. This format ensures that clear identification of any BNF.floatingPointStringNumber is possible in a stream (sequence) of BNF.floatingPointStringNumber+, using the space character as a separator. Examples: Valid production based on BNF.floatingPointStringNumber ‘+1.0E-7’ ‘123.6478e+03’ ‘1.2345’ ‘1.0E-3’ Invalid production based on BNF.floatingPointStringNumber ‘.5’ ‘e+03’ ‘e3’ ‘-1.e3’

18

Non-integer Formats / STRING Numbers

Special Data Types

ANSI C12.19-2008

6.3 Date and Time Formats This selection is used to determine the structure of dates and times used in the tables. The Element GEN_CONFIG_TBL.FORMAT_CONTROL_2.TM_FORMAT is the controlling selector for HTIME_DATE, LTIME_DATE, STIME_DATE, TIME, STIME and HTIME. TDL Type Definitions { Enumerator NI_FORMAT_ENUM } TDL Element Descriptions Identifier

Value

TM_FORMAT_ENUM

Date and Time Formats

Definition Values that may be assumed by GEN_CONFIG_TBL.FORMAT_CONTROL_2. TM_FORMAT (which controls the interpretation of the built-in types HTIME_DATE, LTIME_DATE, STIME_DATE, TIME, STIME and HTIME).

0

No clock in the End Device.

1

BCD type with discrete fields for year, month, day, hour, minute seconds and fractional seconds.

2

UINT8 type with discrete fields for year, month, day, hour, minute seconds and fractional seconds.

3

UINT32 counters where HTIME_DATE, LTIME_DATE and STIME_DATE types are encoded relative to 01/01/1970 @ 00:00:00 UTC, with discrete fields for minutes and fraction of a minute.

4

UINT32 counters where HTIME_DATE, LTIME_DATE and STIME_DATE types are encoded relative to 01/01/1970 @ 00:00:00 UTC), with discrete fields for seconds and fraction of a second.

5..7

Reserved.

19

ANSI C12.19-2008

6.3.1

Special Data Types

HTIME_DATE, LTIME_DATE, STIME_DATE, TIME, STIME, HTIME types

The date and time structures are described next as packed records, but are transmitted as Atomic Table Elements. TDL Type Definitions TYPE HTIME_DATE_RCD = PACKED RECORD SWITCH GEN_CONFIG_TBL.TM_FORMAT OF CASE 0 : NIL : NIL; CASE 1 : YEAR : BCD; MONTH : BCD; DAY : BCD; HOUR : BCD; MINUTE : BCD; SECOND : BCD; BCD_SEC_FRACTION : BCD(3); CASE 2 : YEAR : UINT8; MONTH : UINT8; DAY : UINT8; HOUR : UINT8; MINUTE : UINT8; SECOND : UINT8; UINT_SEC_FRACTION : UINT24; CASE 3 : U_TIME : UINT32; SECOND : UINT8; UINT_SEC_FRACTION : UINT24; CASE 4 : U_TIME_SEC : UINT32; U_SEC_FRACTION : UINT32; END; END; TYPE LTIME_DATE_RCD = PACKED RECORD SWITCH GEN_CONFIG_TBL.TM_FORMAT OF CASE 0 : NIL : NIL; CASE 1 : YEAR : BCD; MONTH : BCD; DAY : BCD; HOUR : BCD; MINUTE : BCD; SECOND : BCD; CASE 2 : YEAR : UINT8; MONTH : UINT8; DAY : UINT8; HOUR : UINT8; MINUTE : UINT8; SECOND : UINT8; CASE 3 : U_TIME : UINT32; SECOND : UINT8 CASE 4 : U_TIME_SEC : UINT32; END; END;

20

Date and Time Formats / HTIME_DATE, LTIME_DATE, STIME_DATE, TIME, STIME, HTIME types

Special Data Types

ANSI C12.19-2008

TYPE STIME_DATE_RCD = PACKED RECORD SWITCH GEN_CONFIG_TBL.TM_FORMAT OF CASE 0 : NIL : NIL; CASE 1 : YEAR : BCD; MONTH : BCD; DAY : BCD; HOUR : BCD; MINUTE : BCD; CASE 2 : YEAR : UINT8; MONTH : UINT8; DAY : UINT8; HOUR : UINT8; MINUTE : UINT8; CASE 3 : U_TIME : UINT32; CASE 4 : U_TIME_SEC : UINT32; END; END; TYPE HTIME_RCD = PACKED RECORD SWITCH GEN_CONFIG_TBL.TM_FORMAT OF CASE 0 : NIL : NIL; CASE 1 : HOUR : BCD; MINUTE : BCD; SECOND : BCD; BCD_SEC_FRACTION : BCD(3); CASE 2 : HOUR : UINT8; MINUTE : UINT8; SECOND : UINT8; UINT_SEC_FRACTION : UINT24; CASE 3 : D_TIME : UINT32; U_SEC_FRACTION : UINT32; CASE 4 : D_TIME : UINT32; U_SEC_FRACTION : UINT32; END; END; TYPE TIME_RCD = PACKED RECORD SWITCH GEN_CONFIG_TBL.TM_FORMAT OF CASE 0 : NIL : NIL; CASE 1 : HOUR : BCD; MINUTE : BCD; SECOND : BCD; CASE 2 : HOUR : UINT8; MINUTE : UINT8; SECOND : UINT8; CASE 3 : D_TIME : UINT32; CASE 4 : D_TIME : UINT32; END; END;

Date and Time Formats / HTIME_DATE, LTIME_DATE, STIME_DATE, TIME, STIME, HTIME types

21

ANSI C12.19-2008

Special Data Types

TYPE STIME_RCD = PACKED RECORD SWITCH GEN_CONFIG_TBL.TM_FORMAT OF CASE 0 : NIL : NIL; CASE 1 : HOUR : BCD; MINUTE : BCD; CASE 2 : HOUR : UINT8; MINUTE : UINT8; CASE 3 : D_TIME : UINT32; CASE 4 : D_TIME : UINT32; END; END; TDL Element Descriptions Value

Definition

YEAR

00..89 90..99 > 100

High-precision (sub-second) time stamp. This is the prototype definition of the built-in type HTIME_DATE. Years 2000..2089. Years 1990..1999. Reserved.

MONTH

0 1..12 > 12

Reserved. Month of year. Reserved.

DAY

0 1..31 > 31

Unassigned. Day of month. Reserved.

HOUR

00..23 > 23

Hour of day, 24 hour basis. Reserved.

MINUTE

00..59 > 59

Minute of hour. Reserved.

SECOND

00..59 > 59

Seconds of minute. Reserved.

BCD_SEC_FRACTION

0..999999

The sub-minute portion of SECOND expressed in units of 1 / 1000000 of a second.

UINT_SEC_FRACTION

0..16777215

The sub-minute portion of SECOND expressed in units of 1 / 16777216 of a second.

U_TIME

0.. 4294967295 Time in minutes since 01/01/1970 @ 00:00:00 GMT.

U_TIME_SEC

0..4294967295 Time in seconds since 01/01/1970 @ 00:00:00 GMT.

U_SEC_FRACTION

0..4294967295 The sub-second portion of U_TIME_SEC expressed in units of 1 / 4294967296 of a second.

Identifier HTIME_DATE_RCD

22

Date and Time Formats / HTIME_DATE, LTIME_DATE, STIME_DATE, TIME, STIME, HTIME types

Special Data Types

ANSI C12.19-2008

LTIME_DATE_RCD YEAR

00..89 90..99 > 100

Normal-precision (seconds) time stamp. This is the prototype definition of the built-in type LTIME_DATE. Years 2000..2089. Years 1990..1999. Reserved.

MONTH

0 1..12 > 12

Reserved. Month of year. Reserved.

DAY

0 1..31 > 31

Unassigned. Day of month. Reserved.

HOUR

00..23 > 23

Hour of day, 24 hour basis. Reserved.

MINUTE

00..59 > 59

Minute of hour. Reserved.

SECOND

00..59 > 59

Seconds of minute. Reserved.

U_TIME

0.. 4294967295 Time in minutes since 01/01/1970 @ 00:00:00 GMT.

U_TIME_SEC

0..4294967295 Time in seconds since 01/01/1970 @ 00:00:00 GMT.

STIME_DATE_RCD YEAR

00..89 90..99 > 100

Low-precision (minutes) time stamp. This is the prototype definition of the built-in type STIME_DATE. Years 2000..2089. Years 1990..1999. Reserved.

MONTH

0 1..12 > 12

Reserved. Month of year. Reserved.

DAY

0 1..31 > 31

Unassigned. Day of month. Reserved.

HOUR

00..23 > 23

Hour of day, 24 hour basis. Reserved.

MINUTE

00..59 > 59

Minute of hour. Reserved.

U_TIME

0.. 4294967295 Time in minutes since 01/01/1970 @ 00:00:00 GMT.

Date and Time Formats / HTIME_DATE, LTIME_DATE, STIME_DATE, TIME, STIME, HTIME types

23

ANSI C12.19-2008

Special Data Types

HTIME_RCD

High-precision (sub-second) time interval or localized time. This is the prototype definition of the built-in type HTIME.

HOUR

00..23 > 23

Hour of day, 24 hour basis. Reserved.

MINUTE

00..59 > 59

Minute of hour. Reserved.

SECOND

00..59 > 59

Seconds of minute. Reserved.

BCD_SEC_FRACTION

0..999999

The sub-minute portion of SECOND expressed in units of 1 / 1000000 of a second.

UINT_SEC_FRACTION

0..16777215

The sub-minute portion of SECOND expressed in units of 1 / 16777216 of a second.

D_TIME

0.. 4294967295 Time in seconds since 00:00:00 localized time.

U_SEC_FRACTION

0..4294967295 The sub-second portion of D_TIME expressed in units of 1 / 4294967296 of a second.

TIME_RCD HOUR

00..23 > 23

Normal-precision (seconds) time interval or localized time. This is the prototype definition of the built-in type TIME. Hour of day, 24 hour basis. Reserved.

MINUTE

00..59 > 59

Minute of hour. Reserved.

SECOND

00..59 > 59

Seconds of minute. Reserved.

D_TIME

0.. 4294967295 Time in seconds since 00:00:00 localized time.

STIME_RCD

24

HOUR

00..23 > 23

Low-precision (minutes) time interval or localized time. This is the prototype definition of the built-in type STIME. Hour of day, 24 hour basis. Reserved.

MINUTE

00..59 > 59

Minute of hour. Reserved.

D_TIME

0.. 4294967295 Time in seconds since 00:00:00 localized time.

Date and Time Formats / HTIME_DATE, LTIME_DATE, STIME_DATE, TIME, STIME, HTIME types

Special Data Types

6.3.2

ANSI C12.19-2008

RDATE type

This type defines a recurrent date. This recurrence can be yearly, monthly, or weekly, based on a constant cycle of days or minutes. TDL Type Definitions TYPE RDATE_BFLD = BIT FIELD OF UINT16 MONTH : UINT(0..3); SWITCH .MONTH OF CASE 0 : PERIOD_IN_MINUTES CASE 1..13 : OFFSET WEEKDAY DAY CASE 14 : FILLER1 WEEKDAY FILLER2 CASE 15 : PERIOD_IN_DAYS DELTA END; END;

: UNIT(4..15); : UINT(4..7); : UINT(8..10); : UINT(11..15); : FILL(4..7); : UINT(8..10); : FILL(11..15); : UINT(4..9); : UINT(10..15);

TDL Element Descriptions Identifier

Value

RDATE_BFLD MONTH

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

PERIOD_IN_MINS

Date and Time Formats / RDATE type

0..4095

Definition This is the prototype definition of the built-in type RDATE. Action is repeated each PERIOD_IN_MINS. The starting date and time shall be supplied separately. Action is repeated each January. Action is repeated each February. Action is repeated each March. Action is repeated each April. Action is repeated each May. Action is repeated each June. Action is repeated each July. Action is repeated each August. Action is repeated each September. Action is repeated each October. Action is repeated each November. Action is repeated each December. Action is repeated monthly. Action is repeated weekly. Action is repeated each PERIOD_IN_DAYS referenced by an ANCHOR_DATE plus DELTA. The ANCHOR_DATE shall be supplied separately. 0 to 4095 minutes (or 68 hours).

25

ANSI C12.19-2008

OFFSET

Special Data Types

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

6.3.3

No offset. Advance to WEEKDAY before date entered. Postpone to the first WEEKDAY on or after date entered. Postpone to the second WEEKDAY on or after date entered. Postpone to the third WEEKDAY on or after date entered. Postpone to the fourth WEEKDAY on or after date entered. Postpone to the last WEEKDAY of the MONTH on or after date entered. Observe on date entered as well as day following date entered. Postpone to Monday if Sunday. Advance to Friday if Sunday. Postpone to Monday if Saturday. Advance to Friday if Saturday. Postpone to Monday if Sunday or Saturday. Advance to Friday if Sunday or Saturday. Postpone to Monday if Sunday, advance to Friday if Saturday. Do not observe date entered. Observe on day following date entered.

WEEKDAY

0 1 2 3 4 5 6 7

Sunday Monday. Tuesday. Wednesday. Thursday. Friday. Saturday. Reserved.

DAY

0 1-31

Reserved. Day of month.

PERIOD_IN_DAYS

0..63

0 to 63 days.

DELTA

0..63

0 to 63 days.

DATE Type

This type defines a non recurrent date in the localized time using a field having the same size as the recurrent date type "RDATE". TDL Type Definitions TYPE DATE_BFLD = BIT FIELD OF UINT16 YEAR : UINT(0..6); MONTH : UINT(7..10); DAY : UINT(11..15); END;

26

Date and Time Formats / DATE Type

Special Data Types

ANSI C12.19-2008

TDL Element Descriptions Value

Definition

YEAR

00..89 90..99 > 100

This is the prototype definition of the built-in type DATE. Years 2000..2089. Years 1990..1999. Reserved.

MONTH

0 1..12 > 12

Reserved. Month of year. Reserved.

DAY

0 1-31

Reserved. Day of month.

Identifier DATE_BFLD

6.4 Common table or procedure identifier formats These types are provided to ease the specification of table access parameters and provide consistent specification of these table access parameters throughout the document. 6.4.1

TABLE_IDA_BFLD bit field

Type TABLE_IDA_BFLD provides the table or procedure number; a flag indicating standard or manufacturer table or procedure; a flag indicating pending status; a flag indicating extended-user-defined table and two additional fields for definition and use within the defining data structure. When the EUDT_FLAG flag is set then MFG_FLAG shall be set to zero. TDL Type Definitions TYPE TABLE_IDA_BFLD = BIT FIELD OF UINT16 TBL_PROC_NBR : UINT(0..10); MFG_FLAG : BOOL(11); PENDING_FLAG : BOOL(12); EUDT_FLAG : BOOL(13); FLAG2 : BOOL(14); FLAG3 : BOOL(15); END; TDL Element Descriptions Identifier

Value

Definition

TABLE_IDA_BFLD TBL_PROC_NBR

0..2039

Table number or Procedure number selected or identified.

MFG_FLAG FALSE TRUE

Alias: STD_VS_MFG_FLAG. The Table or Procedure selected or identified by TBL_PROC_NBR is defined by this standard. The Table or Procedure selected or identified by TBL_PROC_NBR is defined by the End Device manufacturer.

Common table or procedure identifier formats / TABLE_IDA_BFLD bit field

27

ANSI C12.19-2008

Special Data Types

PENDING_FLAG

FALSE TRUE

EUDT_FLAG FALSE

TRUE

FLAG2

Alias: FLAG1. The entity selected or identified by TBL_PROC_NBR shall be an instance of a Table within the End Device. This table shall be listed in one of the sets GEN_CONFIG_TBL.STD_TBLS_USED or GEN_CONFIG_TBL.MFG_TBLS_USED. The entity selected or identified by TBL_PROC_NBR shall be an instance of an extended-user-defined Table of the End Device.

FALSE TRUE

General purpose flag to be Redefined where used. As defined where used. As defined where used.

FALSE TRUE

General purpose flag to be Redefined where used. As defined where used. As defined where used.

FLAG3

6.4.2

The Table or Procedure selected or identified by TBL_PROC_NBR is an active instance of a Table or Procedure of the End Device. The Table or Procedure selected or identified by TBL_PROC_NBR is an pending (deferred) instance of a Table or Procedure of the End Device.

TABLE_IDB_BFLD bit field

Type TABLE_IDB_BFLD provides the table or procedure number; a flag indicating standard or manufacturer table or procedure; and a four bit unsigned integer for definition and use within the defining data structure. TDL Type Definitions TYPE TABLE_IDB_BFLD = BIT FIELD OF UINT16 TBL_PROC_NBR : UINT(0..10); MFG_FLAG : BOOL(11); SELECTOR : UINT(12..15); END; TDL Element Descriptions Identifier

Value

Definition

TABLE_IDB_BFLD TBL_PROC_NBR

0..2039

Table number or Procedure number selected or identified. This reference number shall be to an active Table or Procedure of the End Device. i.e., it shall not reference a pending Table, pending Procedure or extended-user-defined Table.

MFG_FLAG

28

Alias: STD_VS_MFG_FLAG.

Common table or procedure identifier formats / TABLE_IDB_BFLD bit field

Special Data Types

ANSI C12.19-2008 FALSE TRUE

SELECTOR

6.4.3

0..15

The Table or Procedure selected or identified by TBL_PROC_NBR is defined by this standard. The Table or Procedure selected or identified by TBL_PROC_NBR is defined by the End Device manufacturer. A general purpose selector that is encoded as an enumerated Sub-element which shall be Redefined where used.

TABLE_IDC_BFLD bit field

Type TABLE_IDC_BFLD provides the table or procedure number; a flag indicating standard or manufacturer; a flag indicating table or procedure; and three additional fields for definition and use within the defining data structure. TDL Type Definitions TYPE TABLE_IDC_BFLD = BIT FIELD OF UINT16 TBL_PROC_NBR : UINT(0..10); MFG_FLAG : BOOL(11); PROC_FLAG : BOOL(12); FLAG1 : BOOL(13); FLAG2 : BOOL(14); FLAG3 : BOOL(15); END; TDL Element Descriptions Identifier

Value

Definition

TABLE_IDC_BFLD TBL_PROC_NBR

0..2039

Table number or Procedure number selected or identified. This reference number shall be to an active Table or Procedure of the End Device. i.e., it shall not reference a pending Table, pending Procedure or extended-user-defined Table.

MFG_FLAG FALSE TRUE

PROC_FLAG

FALSE TRUE

The TBL_PROC_NBR is a table number. The TBL_PROC_NBR is a procedure number.

FALSE TRUE

General purpose flag to be Redefined where used. As defined where used. As defined where used.

FLAG1

FLAG2

Alias: STD_VS_MFG_FLAG. The Table or Procedure selected or identified by TBL_PROC_NBR is defined by this standard. The Table or Procedure selected or identified by TBL_PROC_NBR is defined by the End Device manufacturer.

General purpose flag to be Redefined where used.

Common table or procedure identifier formats / TABLE_IDC_BFLD bit field

29

ANSI C12.19-2008

Special Data Types FALSE TRUE

As defined where used. As defined where used.

FALSE TRUE

General purpose flag to be Redefined where used. As defined where used. As defined where used.

FLAG3

6.4.4

SOURCE_SEL_RCD

Type SOURCE_SEL_RCD provides a data source selection index and related qualifiers that describe the data source completely and unambiguously used in selections of data sources in control areas. This data type is used each time a measurement needs to be selected from a source defined in Decade 1. TDL Type Definitions TYPE SOURCE_SELECT_RCD = PACKED RECORD SWITCH GEN_CONFIG_TBL.MODEL_SELECT OF CASE 0 : SOURCE_INDEX : UINT8; END; END; TDL Element Descriptions Identifier SOURCE_SELECT_RCD SOURCE_INDEX

30

Value

Definition When MODEL_SELECT is set to 0, this index selects a source defined in Decade 1 using 8-bit selection indices.

Common table or procedure identifier formats / SOURCE_SEL_RCD

Compliance & Compatibility

ANSI C12.19-2008

7 Compliance & Compatibility 7.1 Compliance An End Device is considered to be in compliance with this Standard if all of the following conditions are met: a

Two-way communicating End Devices shall accept and act upon all services defined in Section 8.0, Table Transportation Issues.

b

The DEVICE_CLASS field in GEN_CONFIG_TBL (Table 00) shall contain a relative universal object identifier relative to the End Device class registered root context.

c

Two-way communicating End Devices shall transmit GEN_CONFIG_TBL (Table 00) on request.

d

One-way communicating End Devices shall include the DEVICE_CLASS field in each of their transmissions. In addition, these End Devices shall be registered using the TDL file format. This file shall contain the definition of the corresponding Table 00 and any other Tables necessary to understand all possible valid unsolicited messages.

e

Any Table transported between an End Device and any other device shall be either a Standard Table as defined by this Standard or a Manufacturer Table defined by the End Device manufacturer. All Standard and Manufacturer Tables supported for the current End Device implementation shall be specified in GEN_CONFIG_TBL (Table 00). A Table shall be considered to be supported if and only if it is specified in GEN_CONFIG_TBL (Table 00).

f

Any procedure written to the End Device shall be either a procedure as defined by this Standard or a manufacturer procedure defined by the device manufacturer. All standard and manufacturer procedures supported for the current End Device implementation shall be specified in GEN_CONFIG_TBL (Table 00).

g

Some Standard Tables contain data structures that can be collapsed by a control flag. The control flag shall be determinable based on this Standard. Collapsed Elements shall not be transported. An array of zero (0) Elements is a collapsed Element.

h

An End Device is not required to use every data structure within a Table; however, it shall transport all non-collapsed data structures within a Table. Unused fields are considered in compliance if byte Count and format are correct and if manufacturers identify unused fields. It is recommended that unused fields be filled with zeros or spaces.

i

This Standard specifies variable formats for some data structures. The variable formats shall be consistent with the format as specified in GEN_CONFIG_TBL (Table 00). Refer to Section 5, “Syntax,” and Section 6, “Special Data Types,” for details.

j

Function Limiting Tables (FLC) and Actual Function Limiting Tables (FLC+1) specify the designed and usable limits for variables used within a given Decade. The permissible combinations of these Tables are listed in Figure 4.1.

7.2 Backward and Forward Compatibility Any future revision of this Standard shall be backward compatible with the previous two (2) revisions of the Standard according to the governing Standard's revision cycle requirement. It is recommended that new implementations of the Standard avoid using Deprecated Elements and attributes whenever practical. Forward compatibility is not ensured as Deprecated Elements may become obsolete in future

Compliance

31

ANSI C12.19-2008

Compliance & Compatibility

versions of the Standard or End Device. Element extensions to the tail end of the Tables of the previous versions of this Standard are defined in a manner that does not change the structure of the Tables Elements defined by the previous Standard version. Also, when Element fields were modified, the changes do not impact on the interoperation of those Elements according to the previous Standard version.

32

Backward and Forward Compatibility

Table Transportation Issues

ANSI C12.19-2008

8 Table Transportation Issues The effective transport of Table structures is dependent only on the presence of basic Read and Write services (e.g., those as defined in ANSI C12.18, ANSI C12.21 and ANSI C12.22). While the marketplace may dictate the incorporation of more sophisticated services, it is left to the implementers of specific protocol stacks to select the specific Read and Write services to be included.

8.1 Minimum Services and Parameters 8.1.1

Read Service

The Read Service causes the transfer of data from the initiating device to the target device and is required for two-way communications. Read Service Request

The Read Service Request shall be capable of both a complete and a partial Table read. This is accomplished by one required parameter and optional parameters. The required parameter is a Table Identifier. Optional parameters define partial Table retrieval.

Identifier

Value

Definition

Table Identifier

This parameter has a range of 0 to 65535 and is further subdivided. 0..2039

Provides access to Standard Tables 00 to 2039.

2048..4087

Provides access to Manufacturer Tables 00 to 2039.

4096..6135

Provides access to Standard Pending Tables 00 to 2039.

6144-8183

Provides access to Tables 00 to 2039.

8192..10231

Provides access to User-defined Tables 00 to 2039.

12288..14327

Provides access to Tables 00 to 2039.

Manufacturer

User-defined

Pending

Pending

All others values are Reserved. The maximum number of Decades supported is 204 (10 Tables per Decade) resulting in the Standard supporting a maximum of 2040 tables in each of the Standard, Standard Pending, Manufacturer, and Manufacturer Pending groups of Tables. The User-defined Tables do not use the Decade structure since they

Minimum Services and Parameters

33

ANSI C12.19-2008

Table Transportation Issues represent a sequential set of views of selections from other Tables.

Partial Table Retrieval

The retrieval of a portion of a Table, a partial Table, is possible through the use of one of two methods, the index/element count method and offset/octet count method. The absence of either of these methods implies the entire Table shall be read.

Index/Element-Count Method

The index/element-count method is based upon accommodating a minimum of five (5) indices relative to the beginning of the Table data structure, and optionally a count of the number of elements to read starting at that index. Each index shall range from zero (0) to a maximum of 65535. The range of the count of the number of elements read from that index point is zero (0) to a maximum of 65535 elements. A zero for the count value or the absence of the count value shall cause the remaining portion of the table to be read starting at the stated index value (for additional details see section 8.1.3).

Offset/Octet-Count Method

The offset/octet-count method is based upon supplying an offset from the beginning of the selected Table and, optionally, a count of the number of Octets to read from the offset point. The range of the offset from the beginning of the Table shall be at least 65535 Octets. The range of the count of the number of Octets to read from the offset point shall be at least 65535 Octets. A zero for the count value or the absence of the count value shall cause the remaining portion of the Table to be read starting at the offset point (for additional details, see section 8.1.5). The count does not include the pending header length for pending Tables.

Read Service Response Data

The Read Service Response shall contain as a minimum the Table data selected by the aforementioned parameters supplied with the Read Service Request. When the Read Service Request Table Identifier specifies a Pending Table, a six-octet pending event description precedes the requested information. The pending event description parameters are described in Section 8.2, Pending Event Description.

8.1.2

Write Service

The Write Service causes the transfer of un-requested data to a target device from the initiating device

34

Minimum Services and Parameters / Write Service

Table Transportation Issues

ANSI C12.19-2008

and is required for both one and two way communications. Write Service Request

The Write Service Request shall be capable of both a complete and a partial Table write. This is accomplished by one required parameter and partial Table Identifiers and the write data field. The required parameter is a Table Identifier. Optional parameters define partial Table write.

Identifier

Value

Definition

Table Identifier

This parameter has a range of 0 to 65535 and is further subdivided as follows: 0..2039

Provides access to Standard Tables 00 to 2039.

2048..4087

Provides access to Manufacturer Tables 00 to 2039.

4096..6135

Provides access to Standard Pending Tables 00 to 2039. Several additional parameters are required for writing to a Pending Table. These parameters are appended to the front of the Table data to be written. These parameters are described in Section 8.2, “Pending Event Description.”

6144..8183

Provides access to Manufacturer Pending Tables 00 to 2039. Several additional parameters are required for writing to a Pending Table. These parameters are appended to the front of the Table data to be written as a pending event description. The pending event description parameters are described in Section 8.2, “Pending Event Description.”

8192..10231

Provides access to User-defined Tables 00 to 2039.

12288..14327

Provides access to User-defined pending Tables 00 to 2039. All other values are Reserved. The maximum number of Decades supported is 204 (10 Tables per Decade) resulting in the Standard supporting a maximum of 2040 Tables in each of the Standard, Standard Pending, Manufacturer, and Manufacturer Pending groups of Tables. The User-defined Tables do not use the Decade structure since they represent a sequential set of views of selections from other Tables.

Partial Table Identifier

Minimum Services and Parameters / Write Service

The writing of a portion of a Table, a partial Table, is possible through the use of one of two

35

ANSI C12.19-2008

Table Transportation Issues methods, the index/element-count method and offset/octet-count method. The absence of either of these methods implies the entire Table shall be written.

Index/Element-count Method

The Index/Element-count Method is based upon accommodating a minimum of five indices relative to the beginning of the Table data structure and, optionally, a count of the number of elements to write starting at the index point. Each index shall range from zero (0) to a maximum of 65535. The range of the count of the number of elements to write shall range from zero (0) to a maximum of 65535. A zero for the count value or the absence of the count value shall imply writing the remaining portion of the Table from the index point (for additional details, see section 8.1.3).

Offset/Octet-Count Method

The offset/octet-count method is based upon supplying an offset from the beginning of the selected Table and, optionally, a count of the number of Octets to write to the offset point. The range of the offset from the beginning of the Table shall be at least 65535 octets. The range of the count of the number of Octets to write to the offset point shall be at least 65535 octets. A zero for the count value or the absence of the count value shall cause the remaining portion of the Table to be written from the offset point (for additional details, see Section 8.1.5).

Data

The data field contains the information to write. When the Write Service Request Table Identifier specifies a Pending Table, a six-octet pending event description precedes the information in the data field.

Write Service Response 8.1.3

No response is required to the Write Service Request.

Partial Table Access Using the Index/element-count Method

1. An index sets up a start of selection into a table object relative to the beginning of the table as follows:

36



Each member of a PACKED RECORD gets a unique number.



The positional number of the first element of a PACKED RECORD is assigned the value zero.



The positional numbers of subsequent elements in the same PACKED RECORD are incremented by one for each subsequent element in the PACKED RECORD.

Minimum Services and Parameters / Partial Table Access Using the Index/element-count Method

Table Transportation Issues

ANSI C12.19-2008



Each sub element of a BIT FIELD is assigned a unique positional number.



The positional number of the first sub element of a BIT FIELD is assigned the value zero.



The positional numbers of subsequent sub elements in the same BIT FIELD are incremented by one for each subsequent sub element in the BIT FIELD, independent of the bit range assigned to the sub element.



Positional numbers are assigned independently of any IF or SWITCH statements that may be present inside PACKED RECORDs or BIT FIELDs, as if the elements or sub-elements were not enclosed within any IF or SWITCH statements.



For non final elements, one level of index is appended to the index of the parent’s element index for use in selections.



Boolean members within a SET are referenced in the same way as array members of a onedimensional array.



For elements of an ARRAY one level of index is appended to the index of the array’s element for each dimension (as per BNF.dim) for use in selections into entries of the ARRAY.

2. Selection based on an index method using element count=1 will deliver the whole selected element. 3. For the purpose of binary transmission, index cannot select into a sub-element or final elements that are not atomic, with the exception of SETs, where the first octet selected for transmission is that computed by integer division of the atomic index number requested by eight (8), and the number of elements is the number of bits requested 4. For the purpose of transmission, an index selection into a non-existing element shall result in an "Inappropriate Action Requested" error. However, it is permissible to append zeros at the end of an index to indicate the desired access level of an index selection within the table element hierarchy. 5. When element-count > 1, the application shall return up to element-count elements at the same or higher hierarchical level of the index used to initiate the request traversing all element types serially. 6. When element-count > (number of elements available for transmission), the number of elements transmitted will be limited to the maximum number of elements available at the same or higher hierarchical level of the index used to initiated the request. The response elementcount shall be adjusted to reflect the actual number of elements transferred in the response. 7. The number of numeric segments that make up the index (using trailing zero segments if necessary) defines the initial hierarchical level for element serialization and for element-count interpretation. 8. For the purpose of transmission, as a part of a request, element-count = 0 shall be interpreted as all data to be written or all data requested. 9. For the purpose of transmission, as a part of a response, element-count = 0 shall be interpreted as no data was written, or no data was received.

Minimum Services and Parameters / Partial Table Access Using the Index/element-count Method

37

ANSI C12.19-2008

Table Transportation Issues

10. For the purpose of transmission, as a part of a write request, element-count shall correctly represent the actual number of elements requested to be written, at the hierarchical level of the selection start index. 11. For the purpose of transmission, as a part of a read request, element-count represents the maximum number of elements requested. 12. For the purpose of transmission, the counter shall not count elements that are not present in the table by virtue of the elements themselves being excluded from the data stream through the use of the IF or SWITCH conditional statements. 13. For the purpose of transmission, the counter shall not count elements that are not present in the table by virtue of themselves being excluded from the data stream through the use of zero length arrays, sets, strings, binaries, or bcd. 14. Generally, for the purpose of transmission, any element whose size is zero shall not be a candidate for transmission and not be counted. 15. The element-count counts elements and not octets. 16. If the respondent application does not support the transmission elements at the requested index level, or the respondent application cannot deliver the element requested from an ARRAY the respondent application shall assert the error condition "Inappropriate Action Requested". The requester may then attempt a retry of the read/write request on an index of an element that is higher or lower in hierarchy relative to the index of the failed attempt. 8.1.4

Partial Table Access Using the Offset/octet-count Method

1. An offset sets up a start of selection into a table object relative to the beginning of the table. 2. Offset zero (0) is the octet offset to the first octet of the first object in the table as prescribed by the object data type and the value of DATA_ORDER, found in the GEN_CONFIG_TBL (Table 00). 3. When count > 1, the application shall return up to count octets from the offset used to initiate the request, traversing all element types serially, where each element will be transferred according to its type and the value of DATA_ORDER, found in the GEN_CONFIG_TBL (Table 00). 4. When count > (number of octets available for transmission), the number of octets transmitted will be limited to the maximum number octets available. The response count shall be adjusted to reflect the actual number of octets transferred in the response. 5. For the purpose of transmission, as a part of a read request, count = 0 shall be interpreted as all data requested. 6. For the purpose of transmission, as a part of a response, count = 0 shall be interpreted as no data was written, or no data was received. 7. For the purpose of transmission, as a part of a write request, octet count shall correctly represent the actual number of octets requested to be written starting at the table offset requested. 8. For the purpose of transmission, as a part of a read request, count represents the maximum number of octets requested.

38

Minimum Services and Parameters / Partial Table Access Using the Offset/octet-count Method

Table Transportation Issues

ANSI C12.19-2008

9. For the purpose of transmission, the counter shall not count elements that are not present in the table by virtue of themselves being excluded from the data stream through the use of zero length arrays, sets, strings, binaries or bcd. 10. Generally, for the purpose of transmission, any element whose size is zero shall not be a candidate for transmission and not be counted. 11. The octet counter counts octets and not elements. 12. If the respondent application does not support the transmission of octets at the requested offset, then the respondent application shall assert the error condition "Inappropriate Action Requested. 8.1.5

Index Count Access Method Examples

The following are examples for the use of the Index/Element-Count method to select data. Example 1 Index = 1.0 Element-Count = 2

0 1.0 1.1 1.2 2 3.0 3.1.0 3.1.1 3.2 4

8.2

(Selected) (Selected)

Example 2 Index = 1, Element-Count = 2 or Index = 1.0, Element-Count = 4 0 1.0 (Selected) 1.1 (Selected) 1.2 (Selected) 2 (Selected) 3.0 3.1.0 3.1.1 3.2 4

Example 3 Index = 1.2.0, Element-Count = 4

0 1.0 1.1 1.2 2 3.0 3.1.0 3.1.1 3.2 4

(Selected) (Selected) (Selected) (Selected)

Example 4 Index = 1.2, Element-Count = 4 or Index = 1.2.0, Element-Count = 5 0 1.0 1.1 1.2 (Selected) 2 (Selected) 3.0 (Selected) 3.1.0 (Selected) 3.1.1 (Selected) 3.2 4

Pending Event Description

This Standard supports the transmission of a set of shadow Tables, known as Pending Tables. Data read from or written to a Pending Table is identical in format to the data read from or written to regular Tables (Standard Tables or Manufacturer Tables), except for the addition of the fixed length Pending Event Description that is placed ahead of the Table data during transmission, defined below. TDL Type Definitions TYPE STATUS_BFLD = BIT FIELD OF UINT8 EVENT_CODE : UINT(0..3); SELF_READ_FLAG : BOOL(4); DEMAND_RESET_FLAG : BOOL(5); RESERVED : FILL(6..7); END;

Pending Event Description

39

ANSI C12.19-2008

Table Transportation Issues

TYPE PE_STIME_DATE_RCD = PACKED RECORD SWITCH GEN_CONFIG_TBL.TM_FORMAT OF CASE 0: RESERVED : ARRAY[5] of FILL8; CASE 1: YEAR : BCD; MONTH : BCD; DAY : BCD; HOUR : BCD; MINUTE : BCD; CASE 2: YEAR : UINT8; MONTH : UINT8; DAY : UINT8; HOUR : UINT8; MINUTE : UINT8; CASE 3: U_TIME : UINT32; FILL : FILL8; CASE 4: U_TIME_SEC :UINT32; FILL : FILL8; END; END; TYPE EVENT_STORAGE_RCD = PACKED RECORD SWITCH STATUS_BFLD.EVENT_CODE OF CASE 0: PE_STIME_DATE : PE_STIME_DATE_RCD; CASE 1: WEEKS : UINT8; DAYS : UINT8; HOURS : UINT8; MINUTES : UINT8; SECONDS : UINT8; CASE 2: MFG_CODE : BINARY(4); MFG_EVENT_CODE : UINT8; END; END; TYPE PENDING_EVENT_DESC_RCD = PACKED RECORD EVENTS_SELECTOR : STATUS_BFLD; EVENT_STORAGE : EVENT_STORAGE_RCD; END; TDL Element Descriptions Identifier

Value

STATUS_BFLD

Selectors indicating action to be performed upon activation of selected Pending Table.

EVENT_CODE

0

40

Definition

Element that specifies the condition upon which the Pending Table shall be made active. The trigger condition is stored in the EVENT_STORAGE record. Pending Table is activated based on an absolute time contained in the EVENT_STORAGE record. The time is interpreted as SDATE_TIME.

Pending Event Description

Table Transportation Issues

ANSI C12.19-2008 1 2 3..15

SELF_READ_FLAG

FALSE TRUE

DEMAND_RESET_FLAG

FALSE TRUE

RESERVED

Pending Table is activated based on a relative time contained in the EVENT_STORAGE record. Pending Table is activated based on a non-time associated trigger contained in the EVENT_STORAGE record. Reserved. Do not perform a Self-read before Pending Table is activated. Perform a Self-read, if capable, before Pending Table is activated. Do not perform a demand reset before Pending Table is activated. Perform a demand reset, if capable, before Pending Table is activated. Reserved.

PE_STIME_DATE_RCD

Fields and interpretation of the pending event short time and date format is identical to that of STIME_DATE, except that the data structure length is fixed in length.

EVENT_STORAGE_RCD

Pending event trigger condition that causes a Pending Table to become active. The size of EVENT_STORAGE_RCD always occupies five Octets and is transmitted as ARRAY[5] of UINT8. The actual interpretation of this record is controlled by the content of EVENT_SELECTOR.EVENT_CODE as follows:

PENDING_EVENT_DESC_RCD

0

PE_STIME_DATE_RCD, year, month, day, hour, and minute, in the format of STIME_DATE, padded to fill an ARRAY[5] of UINT8. The STIME_DATE occupies the low index array elements.

1

WEEKS, DAYS, HOURS, MINUTES and SECONDS represented as a UINT8 (0..255).

2

Four-byte manufacturer code as per GEN_CONFIG_TBL.DEVICE_CLASS, followed by a one-byte manufacturer-specific event code (MFG_EVENT_CODE). Any Table’s PENDING_EVENT_DESC PENDING_EVENT_DESC_RCD.

=

EVENTS_SELECTOR

Status bits indicating various associated with a Pending Table.

EVENT_STORAGE

Trigger condition that causes a Pending Table to become active, as defined in

Pending Event Description

conditions

41

ANSI C12.19-2008

Table Transportation Issues

EVENT_STORAGE_RCD.EVENT_STORAGE. It always occupies five Octets and is transmitted as ARRAY[5] of UINT8.

8.3 List Management Description The following declarations are of value to any list management system that requires a capability for issuing an advance warning or notification when a list is about to overflow or when a list contains a minimum number of events. TYPE LIST_OVERFLOW_CONTROL_BFLD = BIT FIELD OF UINT8 PERCENT_OR_VALUE_FLAG : BOOL(0); LOW_OVERFLOW_INDICATION_FLAG : BOOL(1); HIGH_OVERFLOW_INDICATION_FLAG : BOOL(2); REPEAT_OVERFLOW_INDICATION_FLAG : BOOL(3); FILLER : FILL(4..7); END; TYPE LIST_OVERFLOW_CONTROL_RCD LIST_OVERFLOW_ENABLE : STD.LIST_OVERFLOW_CONTROL_BFLD; IF .LIST_OVERFLOW_ENABLE.LOW_OVERFLOW_INDICATION_FLAG == TRUE THEN LOW_THRESHOLD : UINT16; END; IF .LIST_OVERFLOW_ENABLE.HIGH_OVERFLOW_INDICATION_FLAG == TRUE THEN HIGH_THRESHOLD : UINT16; IF .LIST_OVERFLOW_ENABLE.REPEAT_OVERFLOW_INDICATION_FLAG == TRUE THEN REPEAT_INTERVAL : UINT16; MAX_REPEATS : UINT16; END; END; END; TDL Element Descriptions Identifier

Value

LIST_OVERFLOW_CONTROL_BFLD PERCENT_OR_VALUE_FLAG

FALSE TRUE

LOW_OVERFLOW_INDICATION_FLAG FALSE

42

Definition A bit field which contains selections and enabling mechanisms for list overflow management. A selector that provides an interpretation for the controlling values of the limiting values exposed by LOW_OVERFLOW_INDICATION_FLAG, HIGH_OVERFLOW_INDICATION_FLAG, and REPEAT_OVERFLOW_INDICATION_FLAG. Number of entries. The controlling value is the number of entries in the list. Percent of full list. The controlling value is expressed in percent of full list size. A selector for low limit list overflow threshold. Low threshold value indication is not available.

List Management Description

Table Transportation Issues

ANSI C12.19-2008

TRUE

HIGH_OVERFLOW_INDICATION_FLAG FALSE

TRUE

REPEAT_OVERFLOW_INDICATION_FLAG FALSE

TRUE

LIST_OVERFLOW_CONTROL_RCD LIST_OVERFLOW_ENABLE

List management warnings, such as notification on overflow, are not possible based on low threshold value. Low threshold value indication is available. List management warnings, such as notification on overflow, are not possible based on low threshold value. A selector for high limit list overflow threshold. High threshold value indication is not available. List management warnings, such as notification on overflow, are not possible based on low threshold value. High threshold value indication is available. List management warnings, such as notification on overflow, are possible based on low threshold value. A selector for repeat interval following the issuance of a high limit list overflow indication. Repeat threshold value not available. List management, such as notification on overflow, is not possible following initial high threshold report. Repeat threshold value available. List management, such as notification on overflow, is possible following initial high threshold report. A general list management control element used by End Devices to manage the action taken as a result of list overflows. See STD.LIST_OVERFLOW_CONTROL_BFLD.

LOW_THRESHOLD

The low threshold value or percent of full list size (See by .LIST_OVERFLOW_ENABLE. PERCENT_OR_VALUE_FLAG) used to sense a possible list overflow.

HIGH_THRESHOLD

The high threshold value or percent of full list size (See by .LIST_OVERFLOW_ENABLE. PERCENT_OR_VALUE_FLAG) used to sense a possible list overflow.

REPEAT_INTERVAL

The repeat threshold value or percent of full list size (See by .LIST_OVERFLOW_ENABLE. PERCENT_OR_VALUE_FLAG) used re-trigger a sense a possible list overflow, following an initial trigger based on HIGH_THRESHOLD.

MAX_REPEATS

The maximum number of times an overflow condition shall re-trigger following detection if not serviced and cleared.

List Management Description

43

ANSI C12.19-2008

Tables

9 Tables 9.1 Decade 0: General Configuration Tables Decade 0 Name GEN_CONFIG_DEC Decade 0 Data Description This decade contains tables associated with End Device configuration, identification, procedures and responses, and information required for data manipulation due to hardware configurations. 9.1.1

Table 00 General Configuration Table

Table 00 Data Description GEN_CONFIG_TBL (Table 00) contains general End Device configuration information. It also establishes the total set of tables, procedures, and the selection of special types used in the End Device. If a default set is used, it is indicated by this table. Global Default Table Property Overrides: atomic = “true”, role=“CONTROL”, accessibility=“READONLY” Table 00 Type Definitions TYPE FORMAT_CONTROL_1_BFLD = BIT FIELD OF UINT8 DATA_ORDER : UINT(0..0); CHAR_FORMAT : UINT(1..3); MODEL_SELECT : UINT(4..6); FILLER : FILL(7); END; TYPE FORMAT_CONTROL_2_BFLD = BIT FIELD OF UINT8 TM_FORMAT : UINT(0..2); DATA_ACCESS_METHOD : UINT(3..4); ID_FORM : UINT(5..5); INT_FORMAT : UINT(6..7); END; TYPE FORMAT_CONTROL_3_BFLD = BIT FIELD OF UINT8 NI_FORMAT1 : UINT(0..3); NI_FORMAT2 : UINT(4..7); END;

44

Decade 0: General Configuration Tables / Table 00 General Configuration Table

Tables

ANSI C12.19-2008

TYPE GEN_CONFIG_RCD = PACKED RECORD FORMAT_CONTROL_1 : FORMAT_CONTROL_1_BFLD; FORMAT_CONTROL_2 : FORMAT_CONTROL_2_BFLD; FORMAT_CONTROL_3 : FORMAT_CONTROL_3_BFLD; DEVICE_CLASS : BINARY(4); NAMEPLATE_TYPE : UINT8; DEFAULT_SET_USED : UINT8; MAX_PROC_PARM_LENGTH : UINT8; MAX_RESP_DATA_LEN : UINT8; STD_VERSION_NO : UINT8; STD_REVISION_NO : UINT8; DIM_STD_TBLS_USED : UINT8; DIM_MFG_TBLS_USED : UINT8; DIM_STD_PROC_USED : UINT8; DIM_MFG_PROC_USED : UINT8; DIM_MFG_STATUS_USED : UINT8; NBR_PENDING : UINT8; STD_TBLS_USED : SET(GEN_CONFIG_TBL.DIM_STD_TBLS_USED); MFG_TBLS_USED : SET(GEN_CONFIG_TBL.DIM_MFG_TBLS_USED); STD_PROC_USED : SET(GEN_CONFIG_TBL.DIM_STD_PROC_USED); MFG_PROC_USED : SET(GEN_CONFIG_TBL.DIM_MFG_PROC_USED); STD_TBLS_WRITE : SET(GEN_CONFIG_TBL.DIM_STD_TBLS_USED); MFG_TBLS_WRITE : SET(GEN_CONFIG_TBL.DIM_MFG_TBLS_USED); END; TABLE 0 GEN_CONFIG_TBL = GEN_CONFIG_RCD; Table 00 Element Descriptions Identifier

Value

Definition

0 1

Element to define order of multi-byte numeric data transfer. Least significant byte first. Most significant byte first.

FORMAT_CONTROL_1_BFLD DATA_ORDER

CHAR_FORMAT

Character set selection as described in Section 6.1, “Special Data Types”. See STD.CHAR_FORMAT_ENUM.

MODEL_SELECT

Unsigned binary code indicating the decade to be used for selecting the data sources as follows:

FORMAT_CONTROL_2_BFLD TM_FORMAT

0

A code indicating the data source selection model selects sources as an 8-bit index into the SOURCES_TBL (Table 16).

1..7

Reserved. Data representation format selector for use by HTIME_DATE, LTIME_DATE, STIME_DATE, TIME, STIME and HTIME. See STD. TM_FORMAT_ENUM.

Decade 0: General Configuration Tables / Table 00 General Configuration Table

45

ANSI C12.19-2008

Tables

DATA_ACCESS_METHOD 0 1 2 3 ID_FORM 0 1 INT_FORMAT 0 1 2 3 FORMAT_CONTROL_3_BFLD NI_FORMAT1

NI_FORMAT2

Element to designate method of passing the table data after GEN_CONFIG_TBL (Table 00) has been interrogated. Full table access only. No partial table access methods are supported. Full table access and offset-count access methods are supported. Full table access and index-count methods are supported. Both methods 1 and 2 of data access methods are supported. Indicates the format of the defined in Decade 00. STRING. BCD.

identifier fields

Indicates the format of signed integer types. Signed integer types are represented in two’s complement format. Signed integer types are represented in one’s complement format. Signed integer types are represented in sign/magnitude format. Reserved. Indicates the type of non-integer value used throughout the tables where specified as NI_FMAT1. Refer to Section 6.2, “Non-integer Formats”, for details. See STD.NI_FORMAT_ENUM. Indicates the type of non-integer value throughout the tables where shown as NI_FMAT2. Refer to Section 6.2, “Non-integer Formats”, for details. See STD.NI_FORMAT_ENUM.

GEN_CONFIG_RCD FORMAT_CONTROL_1 FORMAT_CONTROL_2 FORMAT_CONTROL_3 DEVICE_CLASS

See FORMAT_CONTROL_1_BFLD. See FORMAT_CONTROL_2_BFLD. See FORMAT_CONTROL_3_BFLD. A group of End Devices sharing the same table structure. This Element contains a relative universal object identifier derived from the following structure: . The (DEVICE_CLASS) is registered in a manner that it shall be unique among all C12.19 implementations, within a registered root

46

Decade 0: General Configuration Tables / Table 00 General Configuration Table

Tables

ANSI C12.19-2008 context. This numeric sequence is encoded according to ISO 8825-1-1997 “Basic Encoding Rules”. The value to be used for this Element by unregistered End Devices that implement this Standard shall be “0.2.0.0”. For registered End Devices, refer to Annex J, “Universal Identifier”. Example: = 35. DEVICE_CLASS = 23H 00H 00H 00H. Relative UID ASN.1 Encoding = 0DH 01H 23H. For ANSI C12.19-1997 End Device MANUFACTURER codes, refer to Annex A, “Reserved Classes for Meter Equipment Manufacturers Implementing ANSI C12.19-1997 Devices”. Alias: MANUFACTURER. NAMEPLATE_TYPE 0 1 2 3..255 DEFAULT_SET_USED 0 1 2 3 4 5..255

Entry used to select the nameplate record structure to be used in DEVICE_NAMEPLATE_TBL (Table 02). Gas. Water. Electric. Reserved. Indicates which, if any, default sets are used. See Annex C, “Default Sets for Decade Tables”, for the default set definitions. Default sets are not used. See Section 4.1, “Standard Tables”, Figure 4.1, conditions C through H for more detail. Default set #1, Simple Meter Register, in use. Default set #2, Simple Demand Meter, in use. Default set #3, Simple TOU Meter, in use. Default set #4, Simple Profile Recorder, in use. Reserved.

MAX_PROC_PARM_LENGTH 0..255

Manufacturer-defined maximum length for argument parameters passed to procedures in PROC_INITIATE_TBL (Table 07).

MAX_RESP_DATA_LEN

Manufacturer-defined maximum length representing length returned by procedures in PROC_RESPONSE_TBL (Table 08).

0..255

STD_VERSION_NO 0 1

2

A number that designates the version of the particular industry set of Standard Tables. Pre-release or informal release document. Original Standard Table Set, first release of the standard, C12.19-1997. If the Decade 9 tables are implemented, this implies the use of C12.211999. Second Standard Table Set, second release of the standard as defined by this document.

Decade 0: General Configuration Tables / Table 00 General Configuration Table

47

ANSI C12.19-2008

Tables 3..255

STD_REVISION_NO

A number that designates a minor change to a version of this standard. Within a given version of this standard, all revisions with a lower revision number shall be backward compatible. If this is not true then a new version number shall be required. 0 1..255

Representing both STD_VERSION_NO = 1 and STD_VERSION_NO = 2. Reserved.

DIM_STD_TBLS_USED

0..255

The number of octets required to represent the set of standard tables used in GEN_CONFIG_TBL.STD_TBLS_USED (Table 00). This is a mechanism to allow the table identifier set to expand in size from simple devices to complex devices.

DIM_MFG_TBLS_USED

0..255

The number of octets required to represent the set of manufacturer tables used in GEN_CONFIG_TBL.MFG_TBLS_USED (Table 00). This is a mechanism to allow the table identifier set to expand in size from simple devices to complex devices.

DIM_STD_PROC_USED

Octets required to represent the set of standard procedures used in GEN_CONFIG_TBL.STD_PROC_USED (Table 00). This is a mechanism to allow the standard defined procedure identifier set to expand in size.

DIM_MFG_PROC_USED

0..255

The number of octets required to represent the set of manufacturer procedures used in GEN_CONFIG_TBL.MFG_PROC_USED (Table 00). This is a mechanism to allow the manufacturer-defined procedure identifier set to expand in size.

DIM_MFG_STATUS_USED

0..255

The number of octets allocated for indicating manufacturer specific status flags.

NBR_PENDING

0..255

The number of pending status PENDING_STATUS_TBL (Table 04).

STD_TBLS_USED

sets

in

This set Element indicates which of the Standard Tables are implemented by the End Device. Tables are represented by bit-indices 0 through (8*DIM_STD_TBLS_USED-1). FALSE

48

Reserved.

The Standard Table represented by this SET index is not available from the End Device.

Decade 0: General Configuration Tables / Table 00 General Configuration Table

Tables

ANSI C12.19-2008

TRUE

MFG_TBLS_USED

This set Element indicates which of the Manufacturer Tables are implemented by the End Device. Tables are represented by bitindices 0 through (8*DIM_MFG_TBLS_USED1). FALSE TRUE

STD_PROC_USED

The Manufacturer Table represented by this SET index is not available from the End Device. The Manufacturer Table represented by this SET index is implemented and it is available from the End Device. This set Element indicates which of the Standard Procedures are implemented by the End Device. Procedures are represented by bitindices 0 through (8*DIM_STD_PROC_USED1).

FALSE TRUE MFG_PROC_USED

The Standard Procedure represented by this SET index is not implemented by the End Device. The Standard Procedure represented by this SET index is implemented the End Device. This set Element indicates which of the Manufacturer's Procedures are implemented by the End Device. Procedures are represented by bit-indices 0 through (8*DIM_MFG_PROC_USED-1).

FALSE TRUE STD_TBLS_WRITE

The Manufacturer Procedure represented by this SET index is not implemented by the End Device. The Manufacturer Procedure represented by this SET index is implemented the End Device. This set Element indicates which of the Standard Tables are capable of being written-to. Tables are represented by bit-indices 0 through (8*DIM_STD_TBLS_USED-1).

FALSE TRUE

MFG_TBLS_WRITE

The Standard Table represented by this SET index is implemented and it is available from the End Device.

The Standard Table represented by this SET index cannot be written. The Standard Table represented by this SET index may be written (as constrained by other security and access provisions). This set Element indicates which of the Manufacturer's Tables are capable of being written-to. Tables are represented by bits 0 through (8*DIM_MFG_TBLS_USED-1).

Decade 0: General Configuration Tables / Table 00 General Configuration Table

49

ANSI C12.19-2008

Tables

FALSE TRUE

50

The Manufacturer Table represented by this SET index cannot be written. The Manufacturer Table represented by this SET index may be written (as constrained by other security and access provisions).

Decade 0: General Configuration Tables / Table 00 General Configuration Table

Tables

9.1.2

ANSI C12.19-2008

Table 01 General Manufacturer Identification Table

Table 01 Data Description GENERAL_MFG_ID_TBL (Table 01) is a general manufacturer identification data table for Water, Gas, and Electric Utility End Devices. The values of the data items shall be set up by the manufacturer and left unchanged since they are determined by the functionality of the device. Global Default Table Property Overrides: Role=“CONTROL”, Accessibility=“READONLY” Table 01 Type Definitions TYPE MANUFACTURER_IDENT_RCD = PACKED RECORD MANUFACTURER : STRING(4); ED_MODEL : STRING(8); HW_VERSION_NUMBER : UINT8; HW_REVISION_NUMBER : UINT8; FW_VERSION_NUMBER : UINT8; FW_REVISION_NUMBER : UINT8; IF GEN_CONFIG_TBL.ID_FORM THEN MFG_SERIAL_NUMBER : BCD(8); ELSE MFG_SERIAL_NUMBER : STRING(16); END; END; TABLE 1 GENERAL_MFG_ID_TBL = MANUFACTURER_IDENT_RCD; Table 01 Element Descriptions Identifier

Value

MANUFACTURER_IDENT_RCD MANUFACTURER

Definition Acronym for the manufacturer name.

ED_MODEL

Model identifier of the End Device left justified. For example 'ENG M3 '.

HW_VERSION_NUMBER

0..255

Manufacturer's hardware Implies functional changes.

version

HW_REVISION_NUMBER

0..255

Manufacturer's hardware revision number. Implies product corrections or improvements. Recommended use of '0' to designate prototyping device.

FW_VERSION_NUMBER

0..255

Manufacturer's firmware version number. Changes in value imply functional differences.

FW_REVISION_NUMBER

0..255

Manufacturer's firmware revision number. Changes in value imply product corrections or improvements. Recommend use of '0' to designate preproduction or prototyping software.

Decade 0: General Configuration Tables / Table 01 General Manufacturer Identification Table

number.

51

ANSI C12.19-2008

MFG_SERIAL_NUMBER

52

Tables

Manufacturer's serial number for the End Device.

Decade 0: General Configuration Tables / Table 01 General Manufacturer Identification Table

Tables

9.1.3

ANSI C12.19-2008

Table 02 Device Nameplate Table

Table 02 Data Description DEVICE_NAMEPLATE_TBL (Table 02) is the nameplate data table. This table contains a record structure for each type of End Device (e.g., water, gas, electric). The structure to be used is specified in GEN_CONFIG_TBL.NAMEPLATE_TYPE (Table 00). This table presently has nameplate structures defined for an electric meter, a gas meter and a water meter. Global Default Table Property Overrides: Role=“CONTROL” Table 02 Type Definitions {water device structures} TYPE W_WATER_DEVICE_BFLD = BIT FIELD OF UINT16 W_ED_TYPE : UINT(0..2); W_FLUID_TYPE : UINT(3..6); W_ED_DRIVE : UINT(7..10); W_ED_PIPE_SIZE : UINT(11..15); END; {gas device structures} TYPE G_ED_TYPE_BFLD = BIT FIELD OF UINT8 G_ED_TYPE : UINT(0..2); G_MECH_FORM : UINT(3..5); G_ENG_METRIC : UINT(6..6); FILLER : FILL(7..7); END; TYPE G_PRESSURE_RCD = PACKED RECORD G_MAX_PRESS : NI_FMAT2; G_UOM_PRESS : UINT8; END; TYPE G_FLOW_RCD = PACKED RECORD G_MAX_FLOW : NI_FMAT2; G_UOM_FLOW : UINT8; END; TYPE G_SIZE_BFLD = BIT FIELD OF UINT8 G_GEAR_DRIVE : UINT(0..2); G_INPUT_OUTPUT_PIPE : UINT(3..7); END; TYPE G_COMPENSATION_BFLD = BIT FIELD OF UINT8 G_COMP_TEMP : UINT(0..4); G_COMP_PRESS : UINT(5..7); END; TYPE G_GAS_DEVICE_RCD = PACKED RECORD G_ED_TYPE : G_ED_TYPE_BFLD; G_MAX_PRESS : G_PRESSURE_RCD; G_FLOW : G_FLOW_RCD;

Decade 0: General Configuration Tables / Table 02 Device Nameplate Table

53

ANSI C12.19-2008

Tables

G_GEAR_PIPE_SIZE G_COMPENSATION

: G_SIZE_BFLD; : G_COMPENSATION_BFLD;

END; {electric device structures} TYPE E_ELEMENTS_BFLD = BIT FIELD OF UINT16 E_FREQ : UINT(0..2); E_NO_OF_ELEMENTS : UINT(3..5); E_BASE_TYPE : UINT(6..9); E_ACCURACY_CLASS : UINT(10..15); END; TYPE E_VOLTS_BFLD = BIT FIELD OF UINT8 E_ELEMENTS_VOLTS : UINT(0..3); E_ED_SUPPLY_VOLTS : UINT(4..7); END; TYPE E_AMPS_RCD = PACKED RECORD E_CLASS_MAX_AMPS : STRING(6); E_TA : STRING(6); END; TYPE E_ELECTRIC_DEVICE_RCD = PACKED RECORD E_KH : STRING(6); E_KT : STRING(6); E_INPUT_SCALAR : UINT8; E_ED_CONFIG : STRING(5); E_ELEMENTS : E_ELEMENTS_BFLD; E_VOLTS : E_VOLTS_BFLD; E_AMPS : E_AMPS_RCD; END; TYPE DEVICE_DEFINITION_RCD = PACKED RECORD SWITCH GEN_CONFIG_TBL.NAMEPLATE_TYPE OF CASE 0 : G_GAS_DEVICE : G_GAS_DEVICE_RCD; CASE 1 : W_WATER_DEVICE : W_WATER_DEVICE_BFLD; CASE 2 : E_ELECTRIC_DEVICE : E_ELECTRIC_DEVICE_RCD; CASE 3..255 : RESERVED : NIL; END; END; TABLE 2 DEVICE_NAMEPLATE_TBL = DEVICE_DEFINITION_RCD; Table 02 Water Data Description The following structures are generally associated with Water Utility End Devices. The values of the data items shall be set up by the manufacturer and left unchanged since they are determined by the functionality of the device.

54

Decade 0: General Configuration Tables / Table 02 Device Nameplate Table

Tables

ANSI C12.19-2008

Table 02 Water Element Descriptions Identifier

Value

Definition

0 1 2 3 4 5 6..7

Code representing water End Device type. Meter. Valve. Pressure Regulator. Pressure gauge. Backflow. Other. Reserved.

0 1 2 3 4 5 6 7

Code representing type of fluid measured by water End Device. Potable water. Hot water. Non-potable water. Sewage primary water. Sewage secondary water. Sewage tertiary water. Other. Reserved.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14..15

Code representing water End Device drive. Piston. Disc. Multi-jet. Turbine. Compound. Propeller. Ultra-sonic. Magnetic-coupled. Differential pressure. Mass. Variable area. Open channel. Oscillatory. Other. Reserved.

0 1 2 3 4 5 6 7 8 9 10 11

Code representing End Device pipe size. English Metric. 1/2" 13 mm. 5/8" 15 mm. 3/4” 20 mm. 1" 25 mm. 1 1/2" 40 mm. 2" 50 mm. 3" 80 mm. 4" 100 mm. 6" 160 mm. 8" 200 mm. 10" 250 mm. 12" 300 mm.

W_WATER_DEVICE_BFLD W_ED_TYPE

W_FLUID_TYPE

W_ED_DRIVE

W_ED_PIPE_SIZE

Decade 0: General Configuration Tables / Table 02 Device Nameplate Table

55

ANSI C12.19-2008

Tables 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26..31

14" 16" 18" 20" 22" 24" 26" 28" 30" 32" 34" 36" 40” 48” Reserved.

350 mm. 400 mm. 450 mm. 500 mm. Not standard. 600 mm. Not standard. Not standard. Not standard. 800 mm. Not standard. 900 mm. 1000 mm. 1200 mm.

Table 02 Gas Data Description The following structures are generally associated with Gas Utility End Devices. The values of the data items shall be set up by the manufacturer and left unchanged since they are determined by the functionality of the device. Table 02 Gas Element Descriptions Identifier

Value

Definition

0 1 2 3 4 5 6..7

Code representing gas End Device type. Unclassified. Gas meter. Gas pressure regulator. Sensor. Load shed device. Cathodic protection unit. Reserved.

0 1 2 3 4 5 6..7

Unsigned binary number identifying the primary mechanical design principle of the device depending upon value of G_ED_TYPE. For G_ED_TYPE = 1. Unclassified. Bellows meter. Rotary. Turbine meter. Fluidic oscillator. Anemometer. Reserved.

0 1 2..7

For G_ED_TYPE = 2. Unclassified. Diaphragm. Reserved.

0 1

For G_ED_TYPE = 3. Unclassified. Physical parameter to voltage.

G_ED_TYPE_BFLD G_ED_TYPE

G_MECH_FORM

56

Decade 0: General Configuration Tables / Table 02 Device Nameplate Table

Tables

ANSI C12.19-2008

G_ENG_METRIC

2 3 4 5..7

Physical parameter to current. Physical parameter to frequency. Open/closed switch. Reserved.

0 1 2 3..7

For G_ED_TYPE = 5. Unclassified. Pipe to soil. Impedance. Reserved.

0 1

English. Metric.

G_PRESSURE_RCD G_MAX_PRESS

End Device maximum design pressure.

G_UOM_PRESS

See UOM_ID_CODES_ENUM enumerator in UOM_ENTRY_TBL (Table 12).

G_FLOW_RCD G_MAX_FLOW G_UOM_FLOW

End Device maximum design flow rate. See

G_SIZE_BFLD G_GEAR_DRIVE

UOM_ID_CODES_ENUM enumerator UOM_ENTRY_TBL (Table 12).

in

0 1 2 3 4 5 6 7

Code representing gas meter gear drive size. English Metric. None None. 0.01 or 0.015 m3. 1/2 ft3 3 0.02 m3. 1 ft 3 0.05 m3. 2 ft 3 0.1 m3. 5 ft 3 10 ft 0.2 m3. 3 1.0 m3. 100 ft 10 m3. 1000 ft3

0 1 2 3 4 5 6 7 8 9 10 11 12 13

Code representing gas meter internal pipe diameter (ID). English Metric. None None. 1/2" 13 mm. 5/8" 15 mm. 3/4" 20 mm. 1" 25 mm. 1 1/2" 40 mm. 2" 50 mm. 4" 100 mm. 6" 150 mm. 8" 200 mm. 10" 250 mm. 12" 300 mm. 14" 350 mm. 16" 400 mm.

G_INPUT_OUTPUT_PIPE

Decade 0: General Configuration Tables / Table 02 Device Nameplate Table

57

ANSI C12.19-2008

Tables 14 15 16 17 18 19 20 21 22 23 24..31

18" 20" 22" 24" 26" 28" 30" 32" 34" 36" Reserved.

0 1 2 3..31

Code representing the gas meter temperature compensation type. Uncompensated. Mechanical. Sensor. Reserved.

0 1 2 3..7

Code representing the gas meter pressure compensation type. Uncompensated. Mechanical. Sensor. Reserved.

G_COMPENSATION_BFLD G_COMP_TEMP

G_COMP_PRESS

G_GAS_DEVICE_RCD G_ED_TYPE G_MAX_PRESS G_FLOW G_GEAR_PIPE_SIZE G_COMPENSATION

450 mm. 500 mm. Not standard. 600 mm. Not standard. Not standard. 750 mm. Not standard. Not standard. 900 mm.

See G_ED_TYPE_BFLD. See G_PRESSURE_RCD. See G_FLOW_RCD. See G_SIZE_BFLD. See G_COMPENSATION_BFLD.

Table 02 Electric Data Description The following structures are generally associated with Electric Utility End Devices. The values of the data items shall be set up by the manufacturer and left unchanged since they are determined by the functionality of the device. Table 02 Electric Element Descriptions Identifier

Value

E_ELEMENTS_BFLD

Contains binary codes physically describing the End Device.

E_FREQ 0 1 2 3 4 5 6 7 58

Definition

Power frequency rating code. DC. 25 Hz. 50 Hz. 50 or 60 Hz. 60 Hz. 400 Hz. Reserved. Unclassified.

Decade 0: General Configuration Tables / Table 02 Device Nameplate Table

Tables

ANSI C12.19-2008

E_NO_OF_ELEMENTS 0 1 2 3 4 5 6 7

Number of commodity measuring elements per measuring input to the End Device. This code indicates the number of elements. None. 1 element. 2 elements. 2.5 elements. 3 elements. 6 elements. 1.5 elements. Reserved.

0 1 2 3 4 5 6 7 8 9..15

Indicates the type of meter base. None. S-base (socket). A-base (ANSI bottom connected). K-base. IEC bottom connected. switchboard. rack mount. B-base. P-base (Canadian Standard). Reserved.

E_BASE_TYPE

E_ACCURACY_CLASS

0..63

E_VOLTS_BFLD

ANSI solid state meter standard accuracy class definitions. Contains binary codes describing meter RMS voltages.

E_ELEMENTS_VOLTS 0 1 2 3 4 5 6 7 8 9 10 11 12..15

Meter element voltage code. This binary code indicates the End Device voltage class. None. 69.3. 72. 120. 208. 240. 277. 480. 120 thru 277. 120 thru 480. 347. 600. Reserved.

0 1 2 3 4 5 6

External supply voltage code. This Element identifies the End Device supply voltage. Internal. 69.3 AC. 72 AC. 120 AC. 208 AC. 240 AC. 277 AC.

E_ED_SUPPLY_VOLTS

Decade 0: General Configuration Tables / Table 02 Device Nameplate Table

59

ANSI C12.19-2008

Tables 7 8 9 10 11 12 13 14 15

E_AMPS_RCD E_CLASS_MAX_AMPS E_TA

End Device class or IEC max amp rating. The RMS amperage test amps (TA) specified by the manufacturer for the main test and/or adjustment of the meter.

E_ELECTRIC_DEVICE_RCD E_KH

Watt-hours per revolution. (May be represented as unit-hours per equivalent revolution).

E_KT

The commodity amount selected for the test pulse output.

E_INPUT_SCALAR

Divisor by which to scale input values. For example if input consists of pulses, an INPUT_SCALAR value of 2 would cause the pulse stream to be divided by 2.

E_ED_CONFIG

Form number per ANSI C12.10. characters.

E_ELEMENTS

See E_ELEMENTS_BFLD.

E_VOLTS

See E_VOLTS_BFLD.

E_AMPS

See E_AMPS_RCD.

DEVICE_DEFINITION_RCD

This is full device nameplate data structure configured as a switch statement for selection of water, gas or electric End Devices. The selection Element is GEN_CONFIG_TBL.NAMEPLATE_TYPE (Table 00).

G_GAS_DEVICE W_WATER_DEVICE E_ELECTRIC_DEVICE

60

480 AC. 120 thru 277 AC. 120 thru 480 AC. 48 DC. 25 DC. 250 DC. 347 AC. 600 AC. Reserved.

Element present when the End Device is a gas meter. See G_GAS_DEVICE_RCD for details. Element present when the End Device is a water meter. See W_WATER_DEVICE_BFLD for details. Element present when the End Device is an electricity meter. See E_ELECTRIC_DEVICE_RCD for details.

Decade 0: General Configuration Tables / Table 02 Device Nameplate Table

Tables

9.1.4

ANSI C12.19-2008

Table 03 End Device Mode Status Table

Table 03 Data Description ED_MODE_STATUS_TBL (Table 03) provides the current operating mode and status of various conditions in the End Device. It allows for both standard and manufacturer specific status definitions. Global Default Table Property Overrides: Role=“DATA”, Accessibility=“READONLY” Table 03 Type Definitions TYPE ED_MODE_BFLD = BIT FIELD OF UINT8 METERING_FLAG : BOOL(0); TEST_MODE_FLAG : BOOL(1); METER_SHOP_MODE_FLAG : BOOL(2); FACTORY_FLAG : BOOL(3); FILLER : FILL(4..7); END; TYPE ED_STD_STATUS1_BFLD = BIT FIELD OF UINT16 UNPROGRAMMED_FLAG : BOOL(0); CONFIGURATION_ERROR_FLAG : BOOL(1); SELF_CHK_ERROR_FLAG : BOOL(2); RAM_FAILURE_FLAG : BOOL(3); ROM_FAILURE_FLAG : BOOL(4); NONVOL_MEM_FAILURE_FLAG : BOOL(5); CLOCK_ERROR_FLAG : BOOL(6); MEASUREMENT_ERROR_FLAG : BOOL(7); LOW_BATTERY_FLAG : BOOL(8); LOW_LOSS_POTENTIAL_FLAG : BOOL(9); DEMAND_OVERLOAD_FLAG : BOOL(10); POWER_FAILURE_FLAG : BOOL(11); TAMPER_DETECT_FLAG : BOOL(12); REVERSE_ROTATION_FLAG : BOOL(13); FILLER : FILL(14..15); END; TYPE ED_STD_STATUS2_BFLD = BIT FIELD OF UINT8 FILLER : FILL(0..7); END; TYPE ED_MFG_STATUS_RCD = PACKED RECORD ED_MFG_STATUS : SET(GEN_CONFIG_TBL.DIM_MFG_STATUS_USED); END; TYPE ED_MODE_STATUS_RCD = PACKED RECORD ED_MODE : ED_MODE_BFLD; ED_STD_STATUS1 : ED_STD_STATUS1_BFLD; ED_STD_STATUS2 : ED_STD_STATUS2_BFLD; ED_MFG_STATUS : ED_MFG_STATUS_RCD; END; TABLE 3 ED_MODE_STATUS_TBL = ED_MODE_STATUS_RCD; Table 03 Element Descriptions

Decade 0: General Configuration Tables / Table 03 End Device Mode Status Table

61

ANSI C12.19-2008

Tables

Identifier ED_MODE_BFLD METERING_FLAG

TEST__MODE_FLAG

Value

Definition

FALSE TRUE

End Device is not in Metering Mode. End Device is in Metering Mode. The METER_SHOP_FLAG cannot be true while this flag is true.

FALSE TRUE

End Device is not in Test Mode. End Device is in Test Mode.

METER_SHOP_MODE_FLAG FALSE TRUE

End Device is not in Meter Shop Mode. End Device is in Meter Shop Mode. The METERING_FLAG cannot be true while this flat is true.

FACTORY_FLAG

FALSE TRUE

End Device is not in Factory Mode. End Device is in Factory Mode.

FALSE TRUE

End Device is programmed. End Device is not programmed or it is in a factory default state.

ED_STD_STATUS1_BFLD UNPROGRAMMED_FLAG

CONFIGURATION_ERROR_FLAG FALSE TRUE SELF_CHK_ERROR_FLAG

FALSE TRUE

End Device did not detect a self check error. End Device did detect a self check error.

RAM_FAILURE_FLAG

FALSE

End Device did not detect a RAM Memory failure. End Device did detect a RAM Memory failure.

TRUE ROM_FAILURE_FLAG

FALSE TRUE

NONVOL_MEM_FAILURE_FLAG FALSE TRUE CLOCK_ERROR_FLAG

FALSE TRUE

MEASUREMENT_ERROR_FLAG FALSE TRUE

62

End Device did not detect a configuration error. End Device did detect a configuration error.

End Device did not detect a ROM memory failure. End Device did detect a ROM Memory failure. End Device did not detect a nonvolatile memory failure. End Device did detect a nonvolatile memory failure. End Device did not detect a clock error. End Device did detect a clock error. End Device did not detect a measurement element error. End Device did detect a measurement element error.

Decade 0: General Configuration Tables / Table 03 End Device Mode Status Table

Tables

ANSI C12.19-2008

LOW_BATTERY_FLAG

FALSE TRUE

LOW_LOSS_POTENTIAL_FLAG FALSE TRUE DEMAND_OVERLOAD_FLAG FALSE TRUE

End Device did not detect a low battery error. End Device did detect a low battery error. End Device did not detect a potential that is below a predetermined value. End Device did detect a device potential that is below a predetermined value. End Device did not detect a demand threshold overload. End Device did detect a demand threshold overload.

POWER_FAILURE_FLAG

FALSE TRUE

End Device did not detect a power failure. End Device did detect a power failure.

TAMPER_DETECT_FLAG

FALSE TRUE

End Device did not detect tamper activity. End Device did detect tamper activity.

REVERSE_ROTATION_FLAG FALSE TRUE ED_STD_STATUS2_BFLD ED_MFG_STATUS_RCD ED_MFG_STATUS ED_MODE_STATUS_RCD ED_MODE ED_STD_STATUS1 ED_STD_STATUS2 ED_MFG_STATUS

End Device did not detect reverse rotation. End Device did detect reverse rotation. Standard status code bit field 2 is a place holder for future expansion. Set containing the manufacturer specific status flags. See ED_MODE_BFLD. See ED_STD_STATUS1_BFLD. See ED_STD_STATUS2_BFLD. See ED_MFG_STATUS_RCD.

Decade 0: General Configuration Tables / Table 03 End Device Mode Status Table

63

ANSI C12.19-2008

9.1.5

Tables

Table 04 Pending Status Table

Table 04 Data Description PENDING_STATUS_TBL (Table 04) is established to provide an indication of the tables present in the End Device with a pending status. Information contained within this table includes table number, manufacturer or standard table indicator, conditions (events) upon which activation of a pending table is to occur, self-read or demand reset upon activation indicators and several additional status Elements. Global Default Table Property Overrides: Role=“DATA”, Accessibility=“READONLY” Table 04 Type Definitions TYPE PE_STATUS_BFLD = BIT FIELD OF UINT8 EVENT_CODE : UINT(0..3); SELF_READ_FLAG : BOOL(4); DEMAND_RESET_FLAG : BOOL(5); RESERVED : FILL(6..7); END; TYPE PE_STIME_DATE_RCD = PACKED RECORD SWITCH GEN_CONFIG_TBL.TM_FORMAT OF CASE 0: RESERVED : ARRAY[5] OF FILL8; CASE 1: YEAR : BCD; MONTH : BCD; DAY : BCD; HOUR : BCD; MINUTE : BCD; CASE 2: YEAR : UINT8; MONTH : UINT8; DAY : UINT8; HOUR : UINT8; MINUTE : UINT8; CASE 3: U_TIME : UINT32; FILLER : FILL8; CASE 4: U_TIME_SEC :UINT32; FILLER : FILL8; END; END; TYPE EVENT_STORAGE_RCD = PACKED RECORD SWITCH .EVENT_SELECTOR.EVENT_CODE OF CASE 0: PE_STIME_DATE : PE_STIME_DATE_RCD; CASE 1: WEEKS : UINT8; DAYS : UINT8; HOURS : UINT8; MINUTES : UINT8; SECONDS : UINT8; CASE 2: MFG_CODE : BINARY(4); MFG_EVENT_CODE : UINT8; END; END;

64

Decade 0: General Configuration Tables / Table 04 Pending Status Table

Tables

ANSI C12.19-2008

TYPE EVENT_RCD = PACKED RECORD EVENT_SELECTOR : PE_STATUS_BFLD; EVENT_STORAGE : EVENT_STORAGE_RCD; END; TYPE ENTRY_ACTIVATION_RCD = PACKED RECORD EVENT : EVENT_RCD; TABLE_SELECTOR : TABLE_IDA_BFLD; END; TYPE PENDING_ACTIVATION_RCD = PACKED RECORD STANDARD_PENDING : SET(GEN_CONFIG_TBL.DIM_STD_TBLS_USED); MANUFACT_PENDING : SET(GEN_CONFIG_TBL.DIM_MFG_TBLS_USED); LAST_ACTIVATION_DATE_TIME : STIME_DATE; NBR_PENDING_ACTIVATION : UINT8; PENDING_TABLES : ARRAY[GEN_CONFIG_TBL.NBR_PENDING] OF ENTRY_ACTIVATION_RCD; END; TABLE 4 PENDING_STATUS_TBL = PENDING_ACTIVATION_RCD; Table 04 Element Descriptions Identifier

Value

PE_STATUS_BFLD EVENT_CODE

0 1 2 3..15 SELF_READ_FLAG

FALSE TRUE

DEMAND_RESET_FLAG

FALSE TRUE

RESERVED

Definition Selectors indicating action to be performed upon activation of selected table. Element that specifies the condition upon which the pending table shall be made active. The trigger condition is stored in the EVENT_STORAGE Element. The pending table is activated based on an absolute time contained in the EVENT_STORAGE Element. The pending table is activated based on a relative time contained in the EVENT_STORAGE Element. The pending table is activated based on a nontime associated trigger contained in the EVENT_STORAGE Element. Reserved. Do not perform a Self-read before pending table is activated. Perform a Self-read, if capable, before pending table is activated. Do not perform a demand reset before pending table is activated. Perform a demand reset, if capable, before pending table is activated. Reserved for future use.

Decade 0: General Configuration Tables / Table 04 Pending Status Table

65

ANSI C12.19-2008

Tables

PE_STIME_DATE_RCD

The fields and interpretation of the pending event short time and date format is identical to that of STIME_DATE, except that the data structure length is fixed in length.

EVENT_STORAGE_RCD

The pending event trigger condition that causes a pending table to become active. The EVENT_STORAGE_RCD always occupies five octets and is transmitted as BINARY(5). The actual interpretation of this record is controlled by the content of EVENTS_SELECTOR.EVENT_CODE. In the case where EVENT_SELECTOR.EVENT_CODE = 2, this structure contains a four-byte manufacturer code (MFG_CODE) as per GEN_CONFIG_TBL .DEVICE_CLASS followed by a one-byte manufacturer-defined event code (MFG_EVENT_CODE).

EVENT_RCD EVENTS_SELECTOR

Status bits indicating various associated with a pending table.

EVENT_STORAGE

Element for storage of the trigger condition that causes a pending table to become active.

ENTRY_ACTIVATION_RCD EVENT

Details of the event that triggers pending table activation(s). Element containing the table number, the standard or manufacturer flag and the pending flag. The pending flag, if set, indicates that the associated table has not been activated.

TABLE_SELECTOR

PENDING_ACTIVATION_RCD STANDARD_PENDING

66

conditions

This set Element indicates which of the standard tables are capable of being written with a pending status.

MANUFACT_PENDING

This set Element indicates which of the manufacturer tables are capable of being written with a pending status.

LAST_ACTIVATION_DATE_TIME

Date and time of the last pending table activated.

NBR_PENDING_ACTIVATION

Number of activation events in the PENDING_STATUS_TBL structure that have yet to be activated.

PENDING_TABLES

List of pending tables and associated activation triggers.

Decade 0: General Configuration Tables / Table 04 Pending Status Table

Tables

9.1.6

ANSI C12.19-2008

Table 05 Device Identification Table

Table 05 Data Description DEVICE_IDENT_TBL (Table 05) This table provides the unique identifier for the device as specified by the user. Global Default Table Property Overrides: Role=“CONTROL” Table 05 Type Definitions TYPE IDENT_RCD = PACKED RECORD IF GEN_CONFIG_TBL.ID_FORM != 0 THEN IDENTIFICATION : BCD(10); ELSE IDENTIFICATION : STRING(20); END; END; TABLE 5 DEVICE_IDENT_TBL = IDENT_RCD; Table 05 Element Descriptions Identifier IDENT_RCD IDENTIFICATION

Value

Definition String of 20 characters or 20 BCD digits used to uniquely identify the device. This Element is the same as UTIL_INFO_TBL.DEVICE_ID when they both are available.

Decade 0: General Configuration Tables / Table 05 Device Identification Table

67

ANSI C12.19-2008

9.1.7

Tables

Table 06 Utility Information Table

Table 06 Data Description UTIL_INFO_TBL (Table 06) is for utility use in providing additional End Device identifying or tracking information. Global Default Table Property Overrides: Role=“CONTROL” Table 06 Type Definitions TYPE UTIL_INFO_RCD = PACKED RECORD OWNER_NAME : STRING(20); UTILITY_DIV : STRING(20); IF GEN_CONFIG_TBL.ID_FORM THEN SERVICE_POINT_ID : BCD(10); ELEC_ADDR : BCD(10); DEVICE_ID : BCD(10); UTIL_SER_NO : BCD(10); CUSTOMER_ID : BCD(10); ELSE SERVICE_POINT_ID : STRING(20); ELEC_ADDR : STRING(20); DEVICE_ID : STRING(20); UTIL_SER_NO : STRING(20); CUSTOMER_ID : STRING(20); END; COORDINATE_1 : BINARY(10); COORDINATE_2 : BINARY(10); COORDINATE_3 : BINARY(10); TARIFF_ID : STRING(8); EX1_SW_VENDOR : STRING(4); EX1_SW_VERSION_NUMBER : UINT8; EX1_SW_REVISION_NUMBER : UINT8; EX2_SW_VENDOR : STRING(4); EX2_SW_VERSION_NUMBER : UINT8; EX2_SW_REVISION_NUMBER : UINT8; PROGRAMMER_NAME : STRING(10); MISC_ID : STRING(30); IF GEN_CONFIG_TBL.STD_VERSION_NO >= 2 THEN IF GEN_CONFIG_TBL.TM_FORMAT != 0 THEN FW_LOAD_DATE : DATE; END; END; END; TABLE 6 UTIL_INFO_TBL = UTIL_INFO_RCD; Table 06 Element Descriptions Identifier

Value

Definition

UTIL_INFO_RCD

68

Decade 0: General Configuration Tables / Table 06 Utility Information Table

Tables

ANSI C12.19-2008

OWNER_NAME

Up to 20 characters. All printable characters are valid.

UTILITY_DIV

Utility division number. Up to 16 characters. All printable characters are valid.

SERVICE_POINT_ID

Up to 20 characters or BCD digits. ID number attached to the service point.

ELEC_ADDR

End Device logical electrical address for mapping and study purposes. This is used by the utility as information only.

DEVICE_ID

The ID attached to the hardware. 20 characters or 20 BCD digits. This DEVICE_ID shall have the same value and interpretation as DEVICE_IDENT_TBL.IDENTIFICATION.

UTIL_SER_NO

Utility-specified serial number. characters or 20 BCD digits.

CUSTOMER_ID

Up to 20 characters or 20 BCD digits. All printable characters are valid if characters.

COORDINATE_1

Generalized mapping coordinate x.

COORDINATE_2

Generalized mapping coordinate y.

COORDINATE_3

Generalized mapping coordinate z.

TARIFF_ID

Identification of the billing tariff.

EX1_SW_VENDOR

Name of manufacturer that configuration/programming software.

EX1_SW_VERSION_NUMBER 0..255

Configuration/programming software version number, unsigned binary number. Changes in value imply functional differences.

EX1_SW_REVISION_NUMBER 0..255

Configuration/programming software revision number, unsigned binary number. Changes in value imply product corrections or improvements. Recommend use of '0' to designate preproduction or prototyping software.

EX2_SW_VENDOR

Name of the manufacturer that configuration/programming software.

EX2_SW_VERSION_NUMBER 0..255

Configuration/programming software version number. Changes in value imply functional differences.

EX2_SW_REVISION_NUMBER 0..255

Configuration/programming software revision number, unsigned binary number. Changes in value imply product corrections or

Decade 0: General Configuration Tables / Table 06 Utility Information Table

Up

to

20

provided

provided

69

ANSI C12.19-2008

Tables improvements. Recommend use of '0' to designate preproduction or prototyping software.

70

PROGRAMMER_NAME

Name of the last programmer or programming device.

MISC_ID

Thirty characters, free form. All printable characters are allowed. This could be used to contain approval number, verification number, bar code, etc.

FW_LOAD_DATE

Date of the last End Device firmware loading in the field. The initial value, if the End Device was not updated yet in the field, shall be left to the discretion of the Manufacturer. This may be used to track End Devices that have suspect firmware, as an example.

Decade 0: General Configuration Tables / Table 06 Utility Information Table

Tables

9.1.8

ANSI C12.19-2008

Table 07 Procedure Initiate Table

Table 07 Data Description PROC_INITIATE_TBL (Table 07) allows for the execution of commands using the table structure. To execute a command, a procedure identifier (PROC), a sequence number (SEQ_NBR), and an optional parameter list (PARM) are written into this table. The response to the command is placed in PROC_RESPONSE_TBL (Table 08) and is available to be read. As a minimum response, all commands shall produce an echo of the procedure identifier (PROC), an echo of the sequence number (SEQ_NBR), and a result code in the procedure response table (Table 08). When the End Device supports more than one concurrent session or association, then the binding between procedure initiation and procedure response shall be limited to the session or association which initiated the procedure. The processing of procedure initiates and procedure responses of any session or association shall not interfere with another concurrent session or association. If a procedure initiate request is followed by another procedure initiate request, the procedure response for the first procedure initiate request may be lost. Note that the scope of the Procedure request parameters (defined in section “Standard Procedures” below) needs to be specified absolutely when referenced in syntax within the context of PROC_INITIATE_TBL (Table 7), since the scope of the Procedure Initiate Table is different from the scope of any one Procedure definition. Global Default Table Property Overrides: Atomic = “true”, Role=“CONTROL” Table 07 Type Definitions TYPE STD_PARM_RCD = PACKED RECORD IF PROC.TABLE_PROC_NBR == COLD_START_PROC THEN PROC_DATA_0 : NIL; END; IF PROC.TABLE_PROC_NBR == WARM_START_PROC THEN PROC_DATA_1 : NIL; END; IF PROC.TABLE_PROC_NBR == SAVE_CONFIGURATION_PROC THEN PROC_DATA_2 : NIL; END; IF PROC.TABLE_PROC_NBR == CLEAR_DATA_PROC THEN PROC_DATA_3 : NIL; END; IF PROC.TABLE_PROC_NBR == RESET_LIST_POINTERS_PROC THEN PROC_DATA_4 : RESET_LIST_POINTERS_PROC.PARM_DATA_RCD; END; IF PROC.TABLE_PROC_NBR == UPDATE_LAST_READ_ENTRY_PROC THEN PROC_DATA_5 : UPDATE_LAST_READ_ENTRY_PROC.PARM_DATA_RCD; END; IF PROC.TABLE_PROC_NBR == CHANGE_END_DEVICE_MODE_PROC THEN PROC_DATA_6 : CHANGE_END_DEVICE_MODE_PROC.PARM_DATA_RCD; END; IF PROC.TABLE_PROC_NBR == CLEAR_STANDARD_STATUS_FLAGS_PROC THEN

Decade 0: General Configuration Tables / Table 07 Procedure Initiate Table

71

ANSI C12.19-2008

Tables

PROC_DATA_7 : NIL; END; IF PROC.TABLE_PROC_NBR == CLEAR_MANUFACTURER_STATUS_FLAGS_PROC THEN PROC_DATA_8 : NIL; END; IF PROC.TABLE_PROC_NBR == REMOTE_RESET_PROC THEN PROC_DATA_9 : REMOTE_RESET_PROC.PARM_DATA_RCD; END; IF PROC.TABLE_PROC_NBR == SET_DATE_TIME_PROC THEN PROC_DATA_10 : SET_DATE_TIME_PROC.PARM_DATA_RCD; END; IF PROC.TABLE_PROC_NBR == EXECUTE_DIAGNOSTICS_PROC THEN PROC_DATA_11 : NIL; END; IF PROC.TABLE_PROC_NBR == ACTIVATE_ALL_PENDING_TABLES_PROC THEN PROC_DATA_12 : NIL; END; IF PROC.TABLE_PROC_NBR == ACTIVATE_SPECIFIC_PENDING_TABLE_PROC THEN PROC_DATA_13 : ACTIVATE_SPECIFIC_PENDING_TABLE_PROC.PARM_DATA_RCD; END; IF PROC.TABLE_PROC_NBR == CLEAR_ALL_PENDING_TABLES_PROC THEN PROC_DATA_14 : NIL; END; IF PROC.TABLE_PROC_NBR == CLEAR_SPECIFIC_PENDING_TABLE_PROC THEN PROC_DATA_15 : CLEAR_SPECIFIC_PENDING_TABLE_PROC.PARM_DATA_RCD; END; IF PROC.TABLE_PROC_NBR == START_LOAD_PROFILE_PROC THEN PROC_DATA_16 : NIL; END; IF PROC.TABLE_PROC_NBR == STOP_LOAD_PROFILE_PROC THEN PROC_DATA_17 : NIL; END; IF PROC.TABLE_PROC_NBR == LOGIN_PROC THEN PROC_DATA_18 : LOGIN_PROC.PARM_DATA_RCD; END; IF PROC.TABLE_PROC_NBR == LOGOUT_PROC THEN PROC_DATA_19 : NIL; END; IF PROC.TABLE_PROC_NBR == INITIATE_AN_IMMEDIATE_CALL_PROC THEN PROC_DATA_20 : INITIATE_AN_IMMEDIATE_CALL_PROC.PARM_DATA_RCD; END;

72

Decade 0: General Configuration Tables / Table 07 Procedure Initiate Table

Tables

ANSI C12.19-2008

IF PROC.TABLE_PROC_NBR == DIRECT_LOAD_CONTROL_PROC THEN PROC_DATA_21 : DIRECT_LOAD_CONTROL_PROC.PARM_DATA_RCD; END; IF PROC.TABLE_PROC_NBR == MODIFY_CREDIT_PROC THEN PROC_DATA_22 : MODIFY_CREDIT_PROC.PARM_DATA_RCD; END; { Procedures 23-26 are reserved. } IF PROC.TABLE_PROC_NBR == CLEAR_PENDING_CALL_STATUS_PROC THEN PROC_DATA_27 : NIL; END; IF PROC.TABLE_PROC_NBR == START_QUALITY_SERVICE_PROC THEN PROC_DATA_28 : NIL; END; IF PROC.TABLE_PROC_NBR == STOP_QUALITY_SERVICE_PROC THEN PROC_DATA_29 : NIL; END; IF PROC.TABLE_PROC_NBR == START_SECURED_REGISTER_PROC THEN PROC_DATA_30 : START_SECURED_REGISTER_PROC.PARM_DATA_RCD; END; IF PROC.TABLE_PROC_NBR == STOP_SECURED_REGISTER_PROC THEN PROC_DATA_31 : STOP_SECURED_REGISTER_PROC.PARM_DATA_RCD; END; IF PROC.TABLE_PROC_NBR == SET_HTIME_DATE_PROC THEN PROC_DATA_32 : SET_HTIME_DATE_PROC.PARM_DATA_RCD; END; END; TYPE MFG_PARM_RCD = PACKED RECORD { NO PROCEDURES DEFINED. } END; TYPE PARM_RCD = PACKED RECORD IF PROC.MFG_FLAG == FALSE THEN STANDARD: STD_PARM_RCD; END; IF PROC.MFG_FLAG == TRUE THEN MANUFACTURER: MFG_PARM_RCD; END; END; TYPE PROC_FORMAT_RCD = PACKED RECORD PROC : TABLE_IDB_BFLD; SEQ_NBR : UINT8; PARM : PARM_RCD; END;

Decade 0: General Configuration Tables / Table 07 Procedure Initiate Table

73

ANSI C12.19-2008

Tables

TABLE 7 PROC_INITIATE_TBL = PROC_FORMAT_RCD; Table 07 Element Descriptions Identifier

Value

Definition

TABLE_IDB_BFLD TBL_PROC_NBR

0..2039

Redefines: STD.TABLE_IDB_BFLD. Procedure number to be executed.

MFG_FLAG FALSE TRUE SELECTOR 0 1 2 3

4..15

Alias: STD_VS_MFG_FLAG. Procedure selected by TBL_PROC_NBR is a standard defined procedure. Procedure selected by TBL_PROC_NBR is a manufacturer-defined procedure. Describes how the response to the procedure is handled. Post response in PROC_RESPONSE_TBL (Table 08) on completion. Post response in PROC_RESPONSE_TBL (Table 08) on exception. Do not post response in PROC_RESPONSE_TBL (Table 08). Post response in PROC_RESPONSE_TBL (Table 08) immediately and post another response in PROC_RESPONSE_TBL (Table 08) on completion. Reserved.

STD_PARM_RCD

The place holder for the Elements of all Standard defined Procedure parameters. Each Standard-procedure’s request parameter extends this packed record by adding a conditional PROC_DATA_x element whose index x is the Standard procedure number expressed without leading zeros. This definition al applies to version 1.0 of the Standard since the version 1.0 Standard is unclear in regards to the assignment of procedure indices. For more details on the procedure specific parameters see Section 9.1.10, “Standard Procedures”.

MFG_PARM_RCD

The place holder for the Elements of all Manufacturer-defined Procedure parameters. Each Manufacturer-procedure’s request parameter extends this packed record by adding a conditional PROC_DATA_x element whose index x is the Manufacturer procedure number expressed without leading zeros. This definition al applies to version 1.0 of the Standard since the version 1.0 Standard is unclear in regards to the assignment of procedure indices. This Standard does not define any manufacturer Procedures.

74

Decade 0: General Configuration Tables / Table 07 Procedure Initiate Table

Tables

ANSI C12.19-2008

PARM_RCD STANDARD

See STD_PARM_RCD.

MANUFACTURER

See MFG_PARM_RCD.

PROC_FORMAT_RCD PROC

SEQ_NBR

PARM

Bit field indicating procedure number to be executed and whether the procedure is a standard defined procedure or a manufacturerdefined procedure. It also defines the response format. 0..255

The sequence number is supplied by initiator of the procedure. It shall be returned with procedure response in PROC_RESPONSE_TBL (Table 08) as a means of coordination. Argument for procedure as defined for individual procedures as defined in Section 9.1.10, “Standard Procedures”.

Decade 0: General Configuration Tables / Table 07 Procedure Initiate Table

75

ANSI C12.19-2008

9.1.9

Tables

Table 08 Procedure Response Table

Table 08 Data Description PROC_RESPONSE_TBL (Table 08) is a complementary table to PROC_INITIATE_TBL (Table 07). This table contains a response, which gets posted to Table 08 as a result of a write to PROC_INITIATE_TBL (Table 07). When the End Device supports more than one concurrent session or association then the binding between procedure initiation and procedure response shall be limited to the session or association which initiated the procedure. If a procedure initiate request is followed by another procedure initiate request (within a session or association), the procedure response for the first initiated procedure may be lost. However, receipt of the first sequence number (SEQ_NBR) instead of a later sequence number indicates that one or more reads of Table 08 may be required to recover the related procedure response. Also the content of the procedure response table following termination of a session or association is not defined by this Standard. Note that the scope of the Procedure response parameters (defined in section “Standard Procedures” above) needs to be specified absolutely when referenced in syntax within the context of PROC_RESPONSE_TBL (Table 08), since the scope of the Procedure Response Table is different from the scope of any one Procedure definition. Global Default Table Property Overrides: Atomic = “true”, Role=“DATA” Table 08 Type Definitions TYPE STD_RESP_RCD = PACKED RECORD IF PROC.TABLE_PROC_NBR == COLD_START_PROC THEN PROC_DATA_0 : NIL; END; IF PROC.TABLE_PROC_NBR == WARM_START_PROC THEN PROC_DATA_1 : NIL; END; IF PROC.TABLE_PROC_NBR == SAVE_CONFIGURATION_PROC THEN PROC_DATA_2 : NIL; END; IF PROC.TABLE_PROC_NBR == CLEAR_DATA_PROC THEN PROC_DATA_3 : NIL; END; IF PROC.TABLE_PROC_NBR == RESET_LIST_POINTERS_PROC THEN PROC_DATA_4 : NIL; END; IF PROC.TABLE_PROC_NBR == UPDATE_LAST_READ_ENTRY_PROC THEN PROC_DATA_5 : NIL; END; IF PROC.TABLE_PROC_NBR == CHANGE_END_DEVICE_MODE_PROC THEN PROC_DATA_6 : CHANGE_END_DEVICE_MODE_PROC.RESP_DATA_RCD; END; IF PROC.TABLE_PROC_NBR == CLEAR_STANDARD_STATUS_FLAGS_PROC THEN PROC_DATA_7 : CLEAR_STANDARD_STATUS_FLAGS_PROC.RESP_DATA_RCD; END;

76

Decade 0: General Configuration Tables / Table 08 Procedure Response Table

Tables

ANSI C12.19-2008

IF PROC.TABLE_PROC_NBR == CLEAR_MANUFACTURER_STATUS_FLAGS_PROC THEN PROC_DATA_8 : CLEAR_MANUFACTURER_STATUS_FLAGS_PROC.RESP_DATA_RCD; END; IF PROC.TABLE_PROC_NBR == REMOTE_RESET_PROC THEN PROC_DATA_9 : REMOTE_RESET_PROC.RESP_DATA_RCD; END; IF PROC.TABLE_PROC_NBR == SET_DATE_TIME_PROC THEN PROC_DATA_10 : SET_DATE_TIME_PROC.RESP_DATA_RCD; END; IF PROC.TABLE_PROC_NBR == EXECUTE_DIAGNOSTICS_PROC THEN PROC_DATA_11 : NIL; END; IF PROC.TABLE_PROC_NBR == ACTIVATE_ALL_PENDING_TBL_PROC THEN PROC_DATA_12 : NIL; END; IF PROC.TABLE_PROC_NBR == ACTIVATE_SPECIFIC_PENDING_TBL_PROC THEN PROC_DATA_13 : NIL; END; IF PROC.TABLE_PROC_NBR == CLEAR_ALL_PENDING_TBL_PROC THEN PROC_DATA_14 : NIL; END; IF PROC.TABLE_PROC_NBR == CLEAR_SPECIFIC_PENDING_TBL_PROC THEN PROC_DATA_15 : NIL; END; IF PROC.TABLE_PROC_NBR == START_LOAD_PROFILE_PROC THEN PROC_DATA_16 : NIL; END; IF PROC.TABLE_PROC_NBR == STOP_LOAD_PROFILE_PROC THEN PROC_DATA_17 : NIL; END; IF PROC.TABLE_PROC_NBR == LOGIN_PROC THEN PROC_DATA_18 : NIL; END; IF PROC.TABLE_PROC_NBR == LOGOUT_PROC THEN PROC_DATA_19 : NIL; END; IF PROC.TABLE_PROC_NBR == INITIATE_IMMEDIATE_CALL_PROC THEN PROC_DATA_20 : NIL; END; IF PROC.TABLE_PROC_NBR == DIRECT_LOAD_CONTROL_PROC THEN PROC_DATA_21 : NIL; END;

Decade 0: General Configuration Tables / Table 08 Procedure Response Table

77

ANSI C12.19-2008

Tables

IF PROC.TABLE_PROC_NBR == MODIFY_CREDIT_PROC THEN PROC_DATA_22 : MODIFY_CREDIT_PROC. RESP_DATA_RCD; END; { Procedures 23-26 are reserved. } IF PROC.TABLE_PROC_NBR == CLEAR_PENDING_CALL_STATUS_PROC THEN PROC_DATA_27 : NIL; END; IF PROC.TABLE_PROC_NBR == START_QUALITY_SERVICE_PROC THEN PROC_DATA_28 : NIL; END; IF PROC.TABLE_PROC_NBR == STOP_QUALITY_SERVICE_PROC THEN PROC_DATA_29 : NIL; END; IF PROC.TABLE_PROC_NBR == START_SECURED_REGISTER_PROC THEN PROC_DATA_30 : START_SECURED_REGISTER_PROC.RESP_DATA_RCD; END; IF PROC.TABLE_PROC_NBR == STOP_SECURED_REGISTER_PROC THEN PROC_DATA_31 : STOP_SECURED_REGISTER_PROC.RESP_DATA_RCD; END; IF PROC.TABLE_PROC_NBR == SET_HTIME_DATE_PROC THEN PROC_DATA_32 : SET_HTIME_DATE_PROC.RESP_DATA_RCD; END; END; TYPE MFG_RESP_RCD = PACKED RECORD { NO PROCEDURES DEFINED } END; TYPE RESP_DATA_RCD = PACKED RECORD IF PROC.MFG_FLAG == FALSE THEN STANDARD : STD_RESP_RCD; END; IF PROC.MFG_FLAG == TRUE THEN MANUFACTURER : MFG_RESP_RCD; END; END; TYPE PROC_RESPONSE_RCD = PACKED RECORD PROC : TABLE_IDB_BFLD; SEQ_NBR : UINT8; RESULT_CODE : UINT8; RESP_DATA : RESP_DATA_RCD; END; TABLE 8 PROC_RESPONSE_TBL = PROC_RESPONSE_RCD; Table 08 Element Descriptions

78

Decade 0: General Configuration Tables / Table 08 Procedure Response Table

Tables

ANSI C12.19-2008

Identifier

Value

Definition

TABLE_IDB_BFLD TBL_PROC_NBR

0..2039

Redefines: STD.TABLE_IDB_BFLD. Procedure number executed by End Device.

MFG_FLAG FALSE TRUE SELECTOR

Alias: STD_VS_MFG_FLAG. Procedure was a standard procedure. Procedure was a manufacturer-defined procedure. Not used in PROC_RESPONSE_TBL (Table 08). See PROC_INITIATE_TBL (Table 07).

STD_RESP_RCD

The place holder for the Elements of all Standard defined Procedure responses. Each Standard-procedure’s response data extends this packed record by adding a conditional PROC_DATA_x element whose index x is the Standard procedure number expressed without leading zeros. This definition al applies to version 1.0 of the Standard since the version 1.0 Standard is unclear in regards to the assignment of procedure indices. For more details on the procedure specific responses see Section 9.1.10, “Standard Procedures”.

MFG_RESP_RCD

The place holder for the Elements of all Manufacturer-defined Procedure responses. Each Manufacturer-procedure’s response data extends this packed record by adding a conditional PROC_DATA_x element whose index x is the Manufacturer procedure number expressed without leading zeros. This definition applies to version 1.0 of the Standard since the version 1.0 Standard is unclear in regards to the assignment of procedure indices. This Standard does not define any manufacturer Procedures.

RESP_DATA_RCD STANDARD MANUFACTURER

See STD_RESP_RCD. See MFG_RESP_RCD.

PROC_RESPONSE_RCD PROC

SEQ_NBR

Bit field indicating procedure number executed and whether the procedure was a standard defined or a manufacturer-defined. 0..255

RESULT_CODE 0

Supplied by initiator of the procedure PROC_INITIATE_TBL (Table 07). Returned with response as a means of coordination. Code which identifies the status of the procedure execution. The codes are defined as follows: Procedure completed.

Decade 0: General Configuration Tables / Table 08 Procedure Response Table

79

ANSI C12.19-2008

Tables 1 2 3 4 5 6 7..255

RESP_DATA_RCD

80

Procedure accepted but not fully completed. Invalid parameter for known procedure, procedure was ignored. Procedure conflicts with current device setup, procedure was ignored. Timing constraint, procedure was ignored. No authorization for requested procedure, procedure was ignored. Un-recognized procedure, procedure was ignored. Reserved. Procedure response record as defined for individual procedures in PROC_INITIATE_TBL (Table 07). RESP_DATA_RCD is posted if procedure was successfully completed (RESULT_CODE = 0) and SELECTOR in PROC_INITIATE_TBL (Table 07) is not set to a value of 2.

Decade 0: General Configuration Tables / Table 08 Procedure Response Table

Tables

ANSI C12.19-2008

9.1.10 Standard Procedures The following procedures are defined as standard procedures by this document. MFG_FLAG shall be set to FALSE. 9.1.10.1

Procedure 00 Cold Start

Procedure 00 Data Description This procedure causes the End Device to return to a manufacturer default known state. All data values, programs and conditions may be lost. Communication may be broken. If an Event Log exists, an attempt shall be made to retain it. Procedure 00 Type Definitions PROCEDURE 0 COLD_START_PROC; 9.1.10.2

Procedure 01 Warm Start

Procedure 01 Data Description This procedure causes the End Device to return to a "power-up" state. Communication may be broken. Procedure 01 Type Definitions PROCEDURE 1 WARM_START_PROC; 9.1.10.3

Procedure 02 Save Configuration

Procedure 02 Data Description This procedure causes the End Device to save its active configuration. Procedure 02 Type Definitions PROCEDURE 2 SAVE_CONFIGURATION_PROC; 9.1.10.4

Procedure 03 Clear Data

Procedure 03 Data Description This procedure causes the End Device to purge generated data fields but retain programming fields. Data fields to be purged are specified by the device manufacturer. Procedure 03 Type Definitions PROCEDURE 3 CLEAR_DATA_PROC; 9.1.10.5

Procedure 04 Reset List Pointers

Procedure 04 Data Description When this procedure is invoked, the End Device attempts to reset list control Elements to their initial state. To execute this procedure, the initiator shall in addition be required to have access permission to the procedure and write access permission to the table containing the selected list(s).

Decade 0: General Configuration Tables / Standard Procedures

81

ANSI C12.19-2008

Tables

Note: When PARM_DATA_RCD.LIST is set to 1,2,8,9,10,11,12 or 11 then the related LAST_ENTRY_SEQ_NBR Element may be reset to zero. When PARM_DATA_RCD.LIST is set to 3,4,5,6 or 7 then the related LAST_BLOCK_SEQ_NBR Element may be reset to zero. Procedure 04 Type Definitions TYPE PARM_DATA_RCD = PACKED RECORD LIST : UINT8; END; PROCEDURE 4 RESET_LIST_POINTERS_PROC REQUEST = PARM_DATA_RCD; Procedure 04 Element Descriptions Identifier PARM_DATA_RCD LIST

Value

Definition

0 1 2 3 4 5 6 7

Reserved. EVENT_LOG_TBL (Table 76). SELF_READ_DATA_TBL (Table 26). LP_DATA_SET1_TBL (Table 64). LP_DATA_SET2_TBL (Table 65). LP_DATA_SET3_TBL (Table 66). LP_DATA_SET4_TBL (Table 67). LP_DATA_SET1_TBL (Table 64) and LP_DATA_SET2_TBL (Table 65) and LP_DATA_SET3_TBL (Table 66) and LP_DATA_SET4_TBL (Table 67). HISTORY_LOG_TBL (Table 74). QUALITY_LOG_TBL (Table 154). TD_ASYNC_TBL (Table 155). FD_ASYNC_TBL (Table 156). TIME_DOMAIN_TBL (Table 157). FREQUENCY_DOMAIN_TBL (Table 158). Reserved. Reserved for Manufacturer’s Lists. All lists except EVENT_LOG_TBL (Table 76).

8 9 10 11 12 13 14..127 128..254 255 9.1.10.6

Procedure 05 Update Last Read Entry

Procedure 05 Data Description When this procedure is invoked, the End Device attempts to reduce the list Element NBR_UNREAD_ENTRIES by the value specified. To execute this procedure, the initiator shall in addition be required to have access to the procedure and write access to the table containing the selected list(s). Note: When PARM_DATA_RCD.LIST is set to 1,2,8,9,10,11,12 or 11 then the related LAST_ENTRY_SEQ_NBR Element shall not reset to zero. When PARM_DATA_RCD.LIST is set to 3,4,5,6 or 7 then the related LAST_BLOCK_SEQ_NBR Element shall not reset to zero. Procedure 05 Type Definitions

82

Decade 0: General Configuration Tables / Standard Procedures

Tables

ANSI C12.19-2008

TYPE PARM_DATA_RCD = PACKED RECORD LIST : UINT8; ENTRIES_READ : UINT16; END; PROCEDURE 5 UPDATE_LAST_READ_ENTRY_PROC REQUEST = PARM_DATA_RCD; Procedure 05 Element Descriptions Identifier PARM_DATA_RCD LIST

ENTRIES_READ 9.1.10.7

Value

Definition

0 1 2 3 4 5 6 7

8 9 10 11 12 13 14..127 128..254 255

Reserved. EVENT_LOG_TBL (Table 76). SELF_READ_DATA_TBL (Table 26). LP_DATA_SET1_TBL (Table 64). LP_DATA_SET2_TBL (Table 65). LP_DATA_SET3_TBL (Table 66). LP_DATA_SET4_TBL (Table 67). LP_DATA_SET1_TBL (Table 64) and LP_DATA_SET2_TBL (Table 65) and LP_DATA_SET3_TBL (Table 66) and LP_DATA_SET4_TBL (Table 67). HISTORY_LOG_TBL (Table 74). QUALITY_LOG_TBL (Table 154). TD_ASYNC_TBL (Table 155). FD_ASYNC_TBL (Table 156). TIME_DOMAIN_TBL (Table 157). FREQUENCY_DOMAIN_TBL (Table 158). Reserved. Reserved for Manufacturer’s Lists. All lists except EVENT_LOG_TBL (Table 76).

0..65535

Number of entries confirmed.

Procedure 06 Change End Device Mode

Procedure 06 Data Description This procedure changes the operational modes of the End Device. Procedure 06 Type Definitions TYPE PARM_DATA_RCD = PACKED RECORD ED_MODE : ED_MODE_STATUS_TBL.ED_MODE_BFLD; END; TYPE RESP_DATA_RCD = PACKED RECORD ED_MODE : ED_MODE_STATUS_TBL.ED_MODE_BFLD; END; PROCEDURE 6 CHANGE_END_DEVICE_MODE_PROC REQUEST = PARM_DATA_RCD RESPONSE = RESP_DATA_RCD;

Decade 0: General Configuration Tables / Standard Procedures

83

ANSI C12.19-2008

Tables

Procedure 06 Element Descriptions Value

Identifier PARM_DATA_RCD ED_MODE

See ED_MODE_STATUS_TBL.ED_MODE (Table 03). This Element contains the desired mode.

RESP_DATA_RCD ED_MODE

9.1.10.8

Definition

See ED_MODE_STATUS_TBL.ED_MODE (Table 03). This Element contains the mode resulting from the execution of this Procedure.

Procedure 07 Clear Standard Status Flags

Procedure 07 Data Description When invoked, this procedure causes the End Device to attempt to clear all standard status flags. Procedure 07 Type Definitions TYPE RESP_DATA_RCD = PACKED RECORD ED_STD_STATUS_1 : ED_MODE_STATUS_TBL.ED_STD_STATUS1_BFLD; ED_STD_STATUS_2 : ED_MODE_STATUS_TBL.ED_STD_STATUS2_BFLD; END; PROCEDURE 7 CLEAR_STANDARD_STATUS_FLAGS_PROC RESPONSE = RESP_DATA_RCD; Procedure 07 Element Descriptions Value

Identifier RESP_DATA_RCD ED_STD_STATUS_1 ED_STD_STATUS_2

9.1.10.9

Definition The End Device resulting status flags following the execution of this Procedure. See ED_MODE_STATUS_TBL.ED_STD_STATUS1 _BFLD (Table 03). See ED_MODE_STATUS_TBL.ED_STD_STATUS2 _BFLD (Table 03).

Procedure 08 Clear Manufacturer Status Flags

Procedure 08 Data Description When invoked, the End Device attempts to clear all manufacturer status flags. Procedure 08 Type Definitions TYPE RESP_DATA_RCD = PACKED RECORD ED_MFG_STATUS : ED_MODE_STATUS_TBL.ED_MFG_STATUS_RCD;

84

Decade 0: General Configuration Tables / Standard Procedures

Tables

ANSI C12.19-2008

END; PROCEDURE 8 CLEAR_MANUFACTURER_STATUS_FLAGS_PROC RESPONSE = RESP_DATA_RCD; Procedure 08 Element Descriptions Value

Identifier RESP_DATA_RCD ED_MFG_STATUS

9.1.10.10

Definition See ED_MODE_STATUS_TBL.ED_MFG_STATUS _RCD (Table 03).

Procedure 09 Remote Reset

Procedure 09 Data Description When invoked, this procedure attempts to perform the specified combination of resets. The following resets are supported: Self-read, Demand Reset, and Season Change. Procedure 09 Type Definitions TYPE ACTION_FLAG_BFLD = BIT FIELD OF UINT8 DEMAND_RESET_FLAG : BOOL(0); SELF_READ_FLAG : BOOL(1); SEASON_CHANGE_FLAG : BOOL(2); NEW_SEASON : UINT(3..6); FILLER : FILL(7..7); END; TYPE PARM_DATA_RCD = PACKED RECORD ACTION_FLAG : ACTION_FLAG_BFLD; END; TYPE RESP_DATA_RCD = PACKED RECORD SUCCESS_FLAG : ACTION_RESPONSE_FLAG_BFLD; END; PROCEDURE 9 REMOTE_RESET_PROC REQUEST = PARM_DATA_RCD RESPONSE = RESP_DATA_RCD; Procedure 09 Element Descriptions Identifier ACTION_FLAG_BFLD DEMAND_RESET_FLAG SELF_READ_FLAG

Value

Definition

FALSE TRUE

Do not perform a demand reset. Perform a demand reset.

FALSE TRUE

Do not perform a Self-read. Perform a Self-read.

Decade 0: General Configuration Tables / Standard Procedures

85

ANSI C12.19-2008

SEASON_CHANGE_FLAG

Tables

FALSE TRUE

NEW_SEASON

0..15

Do not perform a change to the new season specified. Perform a change to the new season specified. Season to change to if SEASON_CHANGE bit is set.

PARM_DATA_RCD ACTION_FLAG

Bit mask denotes the reset actions to perform.

ACTION_RESPONSE_FLAG_BFLD

Redefines: ACTION_FLAG_BFLD.

DEMAND_RESET_FLAG

FALSE TRUE

Did not perform a demand reset. Performed a demand reset.

SELF_READ_FLAG

FALSE TRUE

Did not perform a Self-read. Performed a Self-read.

SEASON_CHANGE_FLAG

FALSE

Did not perform a change to the new season specified. Performed a change to the new season specified.

TRUE NEW_SEASON

0..15

RESP_DATA_RCD SUCCESS_FLAG 9.1.10.11

The season number the End Device changed to if SEASON_CHANGE bit was set. Indicates which "resets" were successful by setting corresponding bits.

Procedure 10 Set Date and/or Time

Procedure 10 Data Description 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 field within this procedure REQUEST (DATE_TIME) might be transported using a different time reference (End Device operational time, Standard time or UTC) from the one published by the Clock Table (Table 52), Clock State Table (Table 55) or Precision Clock State Table (Table 57). See the introduction of Decade 5 for more information. Procedure 10 Type Definitions TYPE SET_MASK_BFLD = BIT FIELD OF UINT8 SET_TIME_FLAG : BOOL(0); SET_DATE_FLAG : BOOL(1); SET_TIME_DATE_QUAL : BOOL(2); FILLER : FILL(3..7); END; TYPE PARM_DATA_RCD = PACKED RECORD SET_MASK : SET_MASK_BFLD; DATE_TIME : LTIME_DATE; TIME_DATE_QUAL : TIME_DATE_QUAL_BFLD; END; TYPE RESP_DATA_RCD = PACKED RECORD DEV_DATE_TIME_BEFORE : LTIME_DATE;

86

Decade 0: General Configuration Tables / Standard Procedures

Tables

ANSI C12.19-2008

DEV_DATE_TIME_AFTER

: LTIME_DATE;

END; PROCEDURE 10 SET_DATE_TIME_PROC REQUEST = PARM_DATA_RCD RESPONSE = RESP_DATA_RCD; Procedure 10 Element Descriptions Value

Definition

FALSE TRUE

Do not set time. Set time.

SET_DATE_FLAG

FALSE TRUE

Do not set date. Set date.

SET_TIME_DATE_QUAL

FALSE TRUE

Do not set time date qualifier. Set time date qualifier.

0 1 2 3 4 5 6 7

Redefines: CLOCK_TBL.TIME_DATE_QUAL_BFLD. Current day of the week. Sunday. Monday. Tuesday. Wednesday. Thursday. Friday. Saturday. Do not set DAY_OF_WEEK.

Identifier SET_MASK_BFLD SET_TIME_FLAG

TIME_DATE_QUAL_BFLD DAY_OF_WEEK

DST_FLAG

FALSE TRUE

GMT_FLAG

FALSE TRUE

TM_ZN_APPLIED_FLAG

FALSE TRUE DST_APPLIED_FLAG

FALSE

The DATE_TIME Element is not within a daylight saving time period. The DATE_TIME Element is within a daylight saving time period. Reserved. Shall be set to true. This field and the following one (DST_APPLIED_FLAG) define the time reference (End Device operational time, Standard time or UTC time) used during the transport of the new date-time field (DATE_TIME). The DATE_TIME Element does not include time zone offset adjustment. The DATE_TIME Element includes time zone offset adjustment. The DATE_TIME Element does not include daylight savings adjustment.

Decade 0: General Configuration Tables / Standard Procedures

87

ANSI C12.19-2008

DST_SUPPORTED_FLAG

Tables TRUE

The DATE_TIME Element includes daylight savings adjustment.

FALSE TRUE

Disable Daylight Saving Time tracking. Enable Daylight Saving Time tracking.

PARM_DATA_RCD SET_MASK

Bit mask denotes the actions to perform.

DATE_TIME

New date and time.

TIME_DATE_QUAL

See TIME_DATE_QUAL_BFLD.

RESP_DATA_RCD DEV_DATE_TIME_BEFORE

Date and time in the End Device just before setdate-time procedure was executed. This field is transported according to TIME_DATE_QUAL found in any one of Clock table (Table 52), Clock State Table (Table 55) or Precision Clock State Table (Table 57).

DEV_DATE_TIME_AFTER

9.1.10.12

Date and time in the End Device just after setdate-time procedure was executed. This field is transported according to TIME_DATE_QUAL in any one of the Clock table (Table 52), Clock State Table (Table 55) and Precision Clock State Table (Table 57).

Procedure 11 Execute Diagnostics Procedure

Procedure 11 Data Description This procedure initiates an End Device diagnostic procedure. Procedure 11 Type Definitions PROCEDURE 11 EXECUTE_DIAGNOSTICS_PROC; 9.1.10.13

Procedure 12 Activate All Pending Tables

Procedure 12 Data Description This procedure causes the End Device to immediately activate all pending tables regardless of activation trigger(s). Procedure 12 Type Definitions PROCEDURE 12 ACTIVATE_ALL_PENDING_TABLES_PROC; 9.1.10.14 Procedure 13 Activate Specific Pending Table(s) Procedure 13 Data Description This procedure causes the End Device to immediately activate any pending table(s) with the specified activation trigger.

88

Decade 0: General Configuration Tables / Standard Procedures

Tables

ANSI C12.19-2008

Procedure 13 Type Definitions TYPE PARM_DATA_RCD = PACKED RECORD EVENT : PENDING_STATUS_TBL.EVENT_RCD; END; PROCEDURE 13 ACTIVATE_SPECIFIC_PENDING_TABLE_PROC REQUEST = PARM_DATA_RCD; Procedure 13 Element Descriptions Value

Identifier PARM_DATA_RCD EVENT 9.1.10.15

Definition See PENDING_STATUS_TBL.EVENT_RCD (Table 04).

Procedure 14 Clear All Pending Tables

Procedure 14 Data Description This procedure causes the End Device to immediately clear the pending state of all pending tables. Procedure 14 Type Definitions PROCEDURE 14 CLEAR_ALL_PENDING_TABLES_PROC; 9.1.10.16

Procedure 15 Clear Specific Pending Table(s)

Procedure 15 Data Description This procedure causes the End Device to immediately clear the pending status of all pending table(s) with the specified activation trigger. Procedure 15 Type Definitions TYPE PARM_DATA_RCD = PACKED RECORD EVENT : PENDING_STATUS_TBL.EVENT_RCD; END; PROCEDURE 15 CLEAR_SPECIFIC_PENDING_TABLE_PROC REQUEST = PARM_DATA_RCD; Procedure 15 Element Descriptions Value

Identifier PARM_DATA_RCD EVENT 9.1.10.17

Definition See PENDING_STATUS_TBL.EVENT_RCD (Table 04).

Procedure 16 Start Load Profile

Procedure 16 Data Description

Decade 0: General Configuration Tables / Standard Procedures

89

ANSI C12.19-2008

Tables

This procedure starts all defined load profile sets. Procedure 16 Type Definitions PROCEDURE 16 START_LOAD_PROFILE_PROC; 9.1.10.18

Procedure 17 Stop Load Profile

Procedure 17 Data Description This procedure stops all active load profile sets. Procedure 17 Type Definitions PROCEDURE 17 STOP_LOAD_PROFILE_PROC; 9.1.10.19

Procedure 18 Log In

Procedure 18 Data Description When invoked, this procedure establishes the active USER_ID that is used in the HISTORY_LOG_TBL (Table 74) and in the EVENT_LOG_TBL (Table 76) and supplies a password. Procedure 18 Type Definitions TYPE PARM_DATA_RCD = PACKED RECORD USER_ID : UINT16; PASSWORD : BINARY(20); END; PROCEDURE 18 LOGIN_PROC REQUEST = PARM_DATA_RCD; Procedure 18 Element Descriptions Identifier

Value

Definition

PARM_DATA_RCD USER_ID

0..65535

ID associated with current user. Note: USER_ID of zero and USER_ID of one should be avoided since it represents an End Device initiated event and manually initiated event respectively in the loggers.

PASSWORD

9.1.10.20

Password supplied. The first octet of the password shall be placed in the lowest index position of the Element.

Procedure 19 Log Out

Procedure 19 Data Description Deactivates the USER_ID and password.

90

Decade 0: General Configuration Tables / Standard Procedures

Tables

ANSI C12.19-2008

Procedure 19 Type Definitions PROCEDURE 19 LOGOUT_PROC; 9.1.10.21

Procedure 20 Initiate an Immediate Call

Procedure 20 Data Description This procedure causes the End Device to immediately initiate a call with the phone number specified. Call windows are ignored. Procedure 20 Type Definitions TYPE PARM_DATA_RCD = PACKED RECORD PHONE_NUMBER_INDEX : UINT8; END; PROCEDURE 20 INITIATE_AN_IMMEDIATE_CALL_PROC REQUEST = PARM_DATA_RCD; Procedure 20 Element Descriptions Identifier

Value

Definition

PARM_DATA_RCD PHONE_NUMBER_INDEX

0..6

Selection of which phone number to use for the call originating procedure. This value is an index to the PHONE_NUMBERS array in table ORIGINATE_PARAMETERS_TBL (Table 93).

9.1.10.22

Procedure 21 Direct Load Control

Procedure 21 Data Description This procedure provides direct load control through a communication link. The load control directive data structure used by this procedure is shared by all other methods supported in the load control decade. Procedure 21 Type Definitions TYPE PARM_DATA_RCD = PACKED RECORD NEW_LEVEL : UINT8; TO_SET : SET((ACT_LOAD_CONTROL_TBL.NBR_OF_CONTROL_POINTS + 7) / 8); IF ACT_LOAD_CONTROL_TBL.DURATION_SUPPORTED_FLAG THEN DURATION : TIME; END; IF ACT_LOAD_CONTROL_TBL.RANDOMIZATION_SUPPORTED_FLAG THEN RANDOMIZATION_PERIOD : TIME; END; END; PROCEDURE 21 DIRECT_LOAD_CONTROL_PROC REQUEST = PARM_DATA_RCD; Procedure 21 Element Descriptions

Decade 0: General Configuration Tables / Standard Procedures

91

ANSI C12.19-2008

Tables

Identifier

Value

Definition

PARM_DATA_RCD NEW_LEVEL

0..100

New level (0% to 100%) requested for the selected control points. For control points that don’t support level, where LEVEL_SUPPORTED in the Load control status table (Table 112) = FALSE, NEW_LEVEL lower than 50% means OFF and greater than or equal to means ON.

TO_SET FALSE TRUE

List of control points selected. This control point is not affected by this load control directive. This control point is affected by this load control directive.

DURATION

Period of time before automatically restoring the original state of the selected control points. Duration set to 00:00:00 means no duration and produces a permanent state change.

RANDOMIZATION_PERIOD

The upper bound allowable for the randomization period in minutes. The requested load control directive shall be asserted within 0 to RANDOMIZATION_PERIOD minutes, based on a random value computed by some means.

9.1.10.23

Procedure 22 Modify Credit

Procedure 22 Data Description This procedure is used to modify the PREPAYMENT_STATUS_TBL.REMAINING_CREDIT as defined in table “Prepayment status table” (Table 116). Procedure 22 Type Definitions TYPE PARM_DATA_RCD = PACKED RECORD OPERATION : UINT8; VALUE : NI_FMAT1; END; TYPE RESP_DATA_RCD = PACKED RECORD NEW_REMAINING_CREDIT : NI_FMAT1; END; PROCEDURE 22 MODIFY_CREDIT_PROC REQUEST = PARM_DATA_RCD RESPONSE = RESP_DATA_RCD; Procedure 22 Element Descriptions Identifier

Value

Definition

PARM_DATA_RCD

92

Decade 0: General Configuration Tables / Standard Procedures

Tables

ANSI C12.19-2008

OPERATION 0 1 2 3..255 VALUE RESP_DATA_RCD NEW_REMAINING_CREDIT

Operation requested on the PREPAYMENT_STATUS_TBL. REMAINING_CREDIT value. Add to credit. Subtract from credit. Adjust credit. Reserved. Parameter of this operation. PREPAYMENT_STATUS_TBL. REMAINING_CREDIT available processing this request.

after

9.1.10.24 Procedure 23 Reserved Reserved for ANSI C12.22. 9.1.10.25 Procedure 24 Reserved Reserved for ANSI C12.22. 9.1.10.26 Procedure 25 Reserved Reserved for ANSI C12.22. 9.1.10.27 Procedure 26 Reserved Reserved for ANSI C12.22. 9.1.10.28 Procedure 27 Clear Pending Call Status Procedure 27 Data Description This procedure causes the End Device to immediately clear all pending call reasons in Table 98 Originate Status. Procedure 27 Type Definitions PROCEDURE 27 CLEAR_PENDING_CALL_STATUS_PROC; 9.1.10.29

Procedure 28 Start Quality-of-service Monitors

Procedure 28 Data Description This procedure starts all Quality-of-service reporting. Procedure 28 Type Definitions PROCEDURE 28 START_QUALITY_SERVICE_PROC; 9.1.10.30

Procedure 29 Stop Quality-of-service Monitors

Procedure 29 Data Description This procedure stops all active Quality-of-service reporting. Procedure 29 Type Definitions PROCEDURE 29 STOP_QUALITY_SERVICE_PROC;

Decade 0: General Configuration Tables / Standard Procedures

93

ANSI C12.19-2008

9.1.10.31

Tables

Procedure 30 Start Secured Register

Procedure 30 Data Description This procedure enables event logging (if implemented) of secure register reads (if implemented) and volatile data freezing (if implemented), in Event Log Data Table (Table 76), to facilitate End Device reading. Procedure 30 Type Definitions TYPE SECURED_READ_REQ_BFLD = BIT FIELD OF UINT16 SECURED_REGISTER_FLAG : BOOL(0); DATA_FREEZE_FLAG : BOOL(1); RESERVED : FILL(2..15); END; TYPE PARM_DATA_RCD = PACKED RECORD READ_ENABLE : SECURED_READ_REQ_BFLD; SECURED_READ_MAX : UINT16; END; PROCEDURE 30 START_SECURED_REGISTER_PROC REQUEST = PARM_DATA_RCD RESPONSE = RESP_DATA_RCD; Procedure 30 Element Descriptions Identifier

Value

SECURED_READ_REQ_BFLD

Definition Bit field use to indicate the secured read related operational parameters being enabled.

SECURED_REGISTER_FLAG FALSE TRUE

DATA_FREEZE_FLAG

FALSE TRUE

94

The operational state of the secured register read is left un-changed. Begin secured read operations. The End Device shall generate End Device secured register events (Read Secured Register or Read Secured Table) following the transfer of a secured register Table or Element to an EndDevice reader, provided that this feature is implemented by the End Device. Event logging of secured-register reads shall cease immediately upon invocation of the “Stop Secured Register” procedure, termination of the communication session that invoked the “Start Secured Register” procedure, or upon reaching the maximum number of secured read operations that were permitted for this session or association. The operational state of the data freeze is left un-changed. Create a frozen (unchanging) copy of all volatile End Device data values. Following acceptance of this optional capability all values read from the

Decade 0: General Configuration Tables / Standard Procedures

Tables

ANSI C12.19-2008 End Device shall be non-changing and coincident. The data shall remain frozen while the number of active sessions plus active communication associations that initiated a data freeze is greater than zero (0).

PARM_DATA_RCD READ_ENABLE SECURED_READ_MAX 0 1..65535 SECURED_READ_RESP_BFLD

See request SECURED_READ_REQ_BFLD. The maximum number of Event Log entries estimated as needed to report the upcoming secured read events. Reserved. The maximum number of events requested. Redefines: SECURED_READ_REQ_BFLD. Bit field used to indicate the secured read related operations enabled status.

SECURED_REGISTER_FLAG

DATA_FREEZE_FLAG

FALSE TRUE

Secured read Event Logging is disabled. Secured read Event Logging is enabled.

FALSE

End Device Table data is not frozen (the End Device shall report real-time data values). End Device Table data is frozen (the End Device shall continue normal data processing in the background to prevent loss of data).

TRUE

RESP_DATA_RCD

Redefines: PARM_DATA_RCD. Procedure response data.

READ_ENABLE SECURED_READ_MAX 0 1..65535 9.1.10.32

See response SECURED_READ_RESP_BFLD. The maximum number of Event Log entries available to report the upcoming secured read events. The maximum number of secured register reading events has been reached. The remaining number of secured register reading events that can be recorded.

Procedure 31 Stop Secured Register

Procedure 31 Data Description This procedure disables event logging (if implemented) of secure register reads (if implemented) and volatile data freezing (if implemented), in Event Log Data Table (Table 76), to reinstate non-secured End Device reading. Procedure 31 Type Definitions TYPE PARM_DATA_RCD = PACKED RECORD READ_DISABLE : SECURED_READ_REQ_BFLD; END; PROCEDURE 31 STOP_SECURED_REGISTER_PROC REQUEST = PARM_DATA_RCD

Decade 0: General Configuration Tables / Standard Procedures

95

ANSI C12.19-2008

Tables

RESPONSE = RESP_DATA_RCD; Procedure 31 Element Descriptions Value

Identifier SECURED_READ_REQ_BFLD

Definition Redefines: START_SECURED_REGISTER_PROC. SECURED_READ_REQ_BFLD. Bit field used to indicate the secured read related operations parameters being disabled.

SECURED_REGISTER_FLAG FALSE TRUE DATA_FREEZE_FLAG

FALSE TRUE

PARM_DATA_RCD READ_DISABLE

The operational state of the secured register read is left unchanged. Stop secured read operations. The operational state of the data freeze is left unchanged. Unfreeze all volatile End Device data values. See request SECURED_READ_REQ_BFLD.

SECURED_READ_RESP_BFLD

Redefines: SECURED_READ_REQ_BFLD. Bit field used to indicate the secured read related operations completion status.

SECURED_REGISTER_FLAG

DATA_FREEZE_FLAG

FALSE TRUE

Secured read Event Logging is disabled. Secured read Event Logging is enabled.

FALSE

End Device Table data not frozen (the End Device shall report real-time data values). End Device Table data copy is frozen (the End Device shall continue normal data processing in the background to prevent loss of data).

TRUE

RESP_DATA_RCD

Redefines: STOP_SECURED_REGISTER_PROC. PARM_DATA_RCD. Procedure response data.

READ_ENABLE SECURED_READ_MAX

0 1..65535 9.1.10.33

See response SECURED_READ_RESP_BFLD. The total number of Event Log entries created to report the secured read events since the last initiation of the Stop Secured Register procedure in Event Log Data Table (Table 76). No events recorded. The actual number of secured register reading events recorded.

Procedure 32 Set Precision Date and/or Time

Procedure 32 Data Description

96

Decade 0: General Configuration Tables / Standard Procedures

Tables

ANSI C12.19-2008

This procedure is used to set the date and/or time in the End Device with higher precision than that provided by Procedure 10, SET_DATE_TIME_PROC. It is important to note that the new date-time field within this procedure REQUEST (DATE_TIME) can be transported using a different time reference (End Device operational time, Standard time or UTC) from the one published by the Clock Table (Table 52), Clock State Table (Table 55) or Precision Clock State Table (Table 57). See the introduction of Decade 5 for more information. Procedure 32 Type Definitions TYPE PARM_DATA_RCD = PACKED RECORD SET_MASK : SET_DATE_TIME_PROC.SET_MASK_BFLD; DATE_TIME : HTIME_DATE; TIME_DATE_QUAL : SET_DATE_TIME_PROC.TIME_DATE_QUAL_BFLD; END; TYPE RESP_DATA_RCD = PACKED RECORD DEV_DATE_TIME_BEFORE : HTIME_DATE; DEV_DATE_TIME_AFTER : HTIME_DATE; END; PROCEDURE 32 SET_HTIME_DATE_PROC REQUEST = PARM_DATA_RCD; RESPONSE = RESP_DATA_RCD; Procedure 32 Element Descriptions Identifier PARM_DATA_RCD SET_MASK

Value

Definition Bit mask denotes the actions to perform. See SET_DATE_TIME_PROC.SET_MASK_BFLD

DATE_TIME

New date and time.

TIME_DATE_QUAL

See SET_DATE_TIME_PROC.TIME_DATE_QUAL_ BFLD.

RESP_DATA_RCD DEV_DATE_TIME_BEFORE

DEV_DATE_TIME_AFTER

Date and time in the End Device just before setdate-time procedure was executed. This field is transported according to TIME_DATE_QUAL found in any one of Clock table (Table 52), Clock State Table (Table 55) or Precision Clock State Table (Table 57). Date and time in the End Device just after setdate-time procedure was executed. This field is transported according to TIME_DATE_QUAL in any one of the Clock table (Table 52), Clock State Table (Table 55) and Precision Clock State Table (Table 57).

Decade 0: General Configuration Tables / Standard Procedures

97

ANSI C12.19-2008

Tables

9.2 Decade 1: Data Source Tables Decade 1 Name DATA_SOURCE_DEC Decade 1 Data Description The role of a Data Sources is to provide information about the different measurements supported by the End Device such as the Unit Of Measure, accountability, scalars, and to allows control and configuration of these measurements. When Decade 1 is used, the MODEL_SELECT field defined in the General Configuration Table (Table 0) shall be set to 0. See Annex K, “Algorithms For The Conversion Of Table Element Values To Engineering Units”, for details on possible Algorithms for computing Metering Data.

98

Decade 1: Data Source Tables

Tables

9.2.1

ANSI C12.19-2008

Table 10 Data Source Dimension Limits Table

Table 10 Data Description DIM_SOURCES_LIM_TBL (Table 10) contains maximum dimensions and End Device capabilities for establishing data sources. Global Default Table Property Overrides: Role=“LIMITING”, Accessibility=“READONLY” Table 10 Type Definitions TYPE SOURCE_FLAGS_BFLD = BIT FIELD OF UINT8 PF_EXCLUDE_FLAG : BOOL(0); RESET_EXCLUDE_FLAG : BOOL(1); BLOCK_DEMAND_FLAG : BOOL(2); SLIDING_DEMAND_FLAG : BOOL(3); THERMAL_DEMAND_FLAG : BOOL(4); SET1_PRESENT_FLAG : BOOL(5); SET2_PRESENT_FLAG : BOOL(6); IF GEN_CONFIG_TBL.STD_VERSION_NO < 2 THEN FILLER : FILL(7..7); ELSE CONVERSION_ALG_FLAG : BOOL(7); END; END; TYPE SOURCE_RCD = PACKED RECORD SOURCE_FLAGS NBR_UOM_ENTRIES NBR_DEMAND_CTRL_ENTRIES DATA_CTRL_LENGTH NBR_DATA_CTRL_ENTRIES NBR_CONSTANTS_ENTRIES CONSTANTS_SELECTOR NBR_SOURCES END;

: SOURCE_FLAGS_BFLD; : UINT8; : UINT8; : UINT8; : UINT8; : UINT8; : UINT8; : UINT8;

TABLE 10 DIM_SOURCES_LIM_TBL = SOURCE_RCD; Table 10 Element Descriptions Identifier

Value

SOURCE_FLAGS_BFLD PF_EXCLUDE_FLAG FALSE TRUE RESET_EXCLUDE_FLAG

Definition Power fail exclusion is defined as ignoring demand for maximum calculations for some period immediately after a power failure. End Device is not capable of power fail exclusion. End Device is capable of power fail exclusion. Reset exclusion is defined as inhibiting demand reset for some period after a reset.

Decade 1: Data Source Tables / Table 10 Data Source Dimension Limits Table

99

ANSI C12.19-2008

Tables FALSE TRUE

BLOCK_DEMAND_FLAG

FALSE TRUE

SLIDING_DEMAND_FLAG

FALSE TRUE

THERMAL_DEMAND_FLAG

FALSE TRUE

SET1_PRESENT_FLAG

FALSE TRUE

SET2_PRESENT_FLAG

FALSE TRUE

CONVERSION_ALG_FLAG

FALSE

TRUE

SOURCE_RCD SOURCE_FLAGS

NBR_UOM_ENTRIES

100

Reset exclusion is not supported by the End Device. Reset exclusion is supported by the End Device. Block demand is not supported by the End Device. Block demand is supported by the End Device. Sliding demand is not supported by the End Device. Sliding demand is supported by the End Device. Thermal demand is not supported by the End Device. Thermal demand is supported by the End Device. The End Device does not support the first set of optional constants in the electric record of the CONSTANTS_TBL (Table 15). The End Device does support the first set of optional constants in the electric record of the CONSTANTS_TBL (Table 15). The End Device does not support the second set of optional constants in the electric record of the CONSTANTS_TBL (Table 15). The End Device does support the second set of optional constants in the electric record of the CONSTANTS_TBL (Table 15). The algorithm used for the conversion of measurements to engineering values, based on the information contained within this decade and as defined in Annex K, is not implemented by this End Device. The algorithm used for the conversion of measurements to engineering values, based on the information contained within this decade and as defined in Annex K, is implemented by this End Device. Bit fields that indicate what demand and TOU register functions the End Device is capable of performing.

0..255

entries

in

NBR_DEMAND_CTRL_ENTRIES 0..255

Maximum number of entries in DEMAND_CONTROL_TBL (Table 13).

the

DATA_CTRL_LENGTH

Manufacturer supplied value that determines the width in octets of an entry in the first array of the DATA_CONTROL_TBL (Table 14).

0..255

Maximum number of UOM_ENTRY_TBL (Table 12).

Decade 1: Data Source Tables / Table 10 Data Source Dimension Limits Table

Tables

ANSI C12.19-2008

NBR_DATA_CTRL_ENTRIES 0..255

Maximum number of entries DATA_CONTROL_TBL (Table 14).

in

the

NBR_CONSTANTS_ENTRIES 0..255

Maximum number of entries CONSTANTS_TBL (Table 15).

in

the

CONSTANTS_SELECTOR

This value is the selector for the record structure used in the CONSTANTS_TBL (Table 15). GAS_CONSTANTS_AGA3_RCD data structure selected. GAS_CONSTANTS_AGA7_RCD data structure selected. ELECTRIC_CONSTANTS_RCD data structure selected. Reserved.

0 1 2 3..255 NBR_SOURCES

0..255

Maximum number of entries SOURCES_TBL (Table 16).

Decade 1: Data Source Tables / Table 10 Data Source Dimension Limits Table

in

the

101

ANSI C12.19-2008

9.2.2

Tables

Table 11 Actual Data Sources Limiting Table

Table 11 Data Description ACT_SOURCES_LIM_TBL (Table 11) contains the actual parameters of Table 10 the End Device has been configured with. Global Default Table Property Overrides: Role=“ACTUAL” Table 11 Type Definitions TABLE 11 ACT_SOURCES_LIM_TBL = SOURCE_RCD; Table 11 Element Descriptions Value

Definition

FALSE TRUE

Redefines: DIM_SOURCES_LIM_TBL. SOURCE_FLAGS_BFLD. Power fail exclusion is defined as ignoring demand for maximum calculations for some period immediately after a power failure. Power fail exclusion is not active. Power fail exclusion is active.

FALSE TRUE

Reset exclusion is defined as inhibiting demand reset for some period after a reset. Reset exclusion is not in use by the End Device. Reset exclusion is in use by the End Device.

BLOCK_DEMAND_FLAG

FALSE TRUE

Block demand is not in use by the End Device. Block demand is in use by the End Device.

SLIDING_DEMAND_FLAG

FALSE TRUE

Sliding demand is not in use by the End Device. Sliding demand is in use by the End Device.

THERMAL_DEMAND_FLAG

FALSE

Thermal demand is not in use by the End Device. Thermal demand is in use by the End Device.

Identifier SOURCE_FLAGS_BFLD PF_EXCLUDE_FLAG

RESET_EXCLUDE_FLAG

TRUE SET1_PRESENT_FLAG

FALSE TRUE

SET2_PRESENT_FLAG

FALSE TRUE

102

The End Device is not using the first set of optional constants in the electric record of the CONSTANTS_TBL (Table 15). The End Device is using the first set of optional constants in the electric record of the CONSTANTS_TBL (Table 15). The End Device is not using the second set of optional constants in the electric record of the CONSTANTS_TBL (Table 15). The End Device is using the second set of optional constants in the electric record of the CONSTANTS_TBL (Table 15).

Decade 1: Data Source Tables / Table 11 Actual Data Sources Limiting Table

Tables

ANSI C12.19-2008

CONVERSION_ALG_FLAG

FALSE TRUE

SOURCE_RCD

Redefines: DIM_SOURCES_LIM_TBL. SOURCE_RCD. Bit fields that indicate what demand and TOU register functions are in use by the End Device as configured.

SOURCE_FLAGS

NBR_UOM_ENTRIES

This field has the same meaning and shall have the same value as the corresponding field in the Data Source Dimension Limits Table (Table 10). This field has the same meaning and shall have the same value as the corresponding field in the Data Source Dimension Limits Table (Table 10).

0..255

Actual number of entries in UOM_ENTRY_TBL (Table 12).

NBR_DEMAND_CTRL_ENTRIES 0..255

Actual number of entries in DEMAND_CONTROL_TBL (Table 13).

DATA_CTRL_LENGTH

Manufacturer-defined number of octets in an element of the array of the DATA_CONTROL_TBL (Table 14).

0..255

the

NBR_DATA_CTRL_ENTRIES 0..255

Actual number of entries DATA_CONTROL_TBL (Table 14).

in

the

NBR_CONSTANTS_ENTRIES 0..255

Actual number of entries CONSTANTS_TBL (Table 15).

in

the

CONSTANTS_SELECTOR

This value is the selector for the record structure used in the CONSTANTS_TBL (Table 15). GAS_CONSTANTS_AGA3_RCD data structure selected. GAS_CONSTANTS_AGA7_RCD data structure selected. ELECTRIC_CONSTANTS_RCD data structure selected. Reserved.

0..255 0 1 2 3..255

NBR_SOURCES

0..255

Actual number of entries in the SOURCES_TBL (Table 16).

Decade 1: Data Source Tables / Table 11 Actual Data Sources Limiting Table

103

ANSI C12.19-2008

9.2.3

Tables

Table 12 Units of Measure Entry Table

Table 12 Data Description UOM_ENTRY_TBL (Table 12) provides a method for describing data attributes. It may be used to tag data sources. One entry exists in this Table (UOM_ENTRY_TBL) only for each entry in SOURCES_TBL.SOURCE_LINK_RCD.UOM_ENTRY_FLAG that is set to TRUE. Therefore the application has to perform a “bit” walk across all UOM_ENTRY_FLAG in SOURCES_TBL that are set to TRUE, in order to locate the related SELECTION array Element found in this Table (UOM_ENTRY_TBL). Global Default Table Property Overrides: Role=“CONTROL” Table 12 Type Definitions TYPE UOM_ENTRY_BFLD = BIT FIELD OF UINT32 ID_CODE : UINT(0..7); TIME_BASE : UINT(8..10); MULTIPLIER : UINT(11..13); Q1_ACCOUNTABILITY : BOOL(14); Q2_ACCOUNTABILITY : BOOL(15); Q3_ACCOUNTABILITY : BOOL(16); Q4_ACCOUNTABILITY : BOOL(17); NET_FLOW_ACCOUNTABILITY : BOOL(18); SEGMENTATION : UINT(19..21); HARMONIC : BOOL(22); RESERVED : FILL(28..30); NFS : BOOL(31); ID_RESOURCE : UINT(23..27); END; TYPE UOM_ENTRY_RCD = PACKED RECORD UOM_ENTRY : ARRAY[ACT_SOURCES_LIM_TBL.NBR_UOM_ENTRIES] OF UOM_ENTRY_BFLD; END; TABLE 12 UOM_ENTRY_TBL = UOM_ENTRY_RCD; Table 12 Element Descriptions Identifier

Value

UOM_ID_CODES_ENUM

Definition The following are the Unit of Measure codes used throughout this Standard. Electric Industry units Power:

0 1

2

104

Active power – W. Reactive power – VAR. Direct measurement, e.g., by lagging the current waveform by 90˚ relative to the voltage waveform. Apparent power – VA, e.g., Result of IRMS x VRMS.

Decade 1: Data Source Tables / Table 12 Units of Measure Entry Table

Tables

ANSI C12.19-2008 3 4 5 6

7

Phasor power - VA = sqrt (W2+VAR2). Quantity power - Q(60). Quantity power - Q(45). Phasor Reactive Power - RMS. This is computed as square root (VA2 - W2), where W is associated with UOM.ID_CODE 0 and VA is associated with UOM.ID_CODE 2. This term (UOM.ID_CODE 6) includes the distortion voltamperes quantity D defined by VA2 = W2 + VAR2 + D2. Distortion volt-amperes - RMS. Defined as VA2 = W2 + VAR2 + D2, where VA is selected by UOM.ID_CODE 2 (VRMS x IRMS), W is selected by UOM.ID_CODE 0 and VAR is selected by UOM.ID_CODE 1. The distortion D can also be computed (when D is not reported directly by the meter via (new) UOM.ID_CODE 7) from UOM.ID_CODE 2 and UOM.ID_CODE 3 as follows: D2 = VA2 (UOM.ID_CODE 2) - VA2 (UOM.ID_CODE 3). Voltage:

8 9 10 11

RMS Volts. Average Volts (average of |V|). RMS Volts Squared (V2). Instantaneous volts. Current:

12 13 14 15

RMS Amps. Average Current (average of |I|). RMS Amps Squared (I2). Instantaneous current. Percent Total Harmonic Distortion:

16 17 18 19

T.H.D. V (IEEE—Institute of Electrical and Electronics Engineers). T.H.D. I (IEEE). T.H.D. V (IC—Industry Canada). T.H.D. I (IC). Phase Angle:

20 21 22 23 24 25 26

V-VA, Voltage phase angle. Vx-Vy, where x and y are phases defined in phase selector. I-VA, Current phase angle. Ix-Iy, where x and y are phases defined in phase selector. Power factor computed using apparent power, UOM.ID_CODE=2. Power factor computed using phasor power, UOM.ID_CODE=3. Average Power Factor.

Decade 1: Data Source Tables / Table 12 Units of Measure Entry Table

105

ANSI C12.19-2008

Tables 27..28

Reserved. Time:

29 30 31 32 33 34 35 36 37 38

39 40 41 42 43 44 45 46 47 48 49

Time of day. Date. Time of day and Date. Interval timer. Frequency. Counter. Sense input (TRUE/on or FALSE/off). Pulse output Form A. Single Pole Single Throw (SPST), Normally Open. Pulse output Form B. Single Pole Single Throw (SPST), Normally Closed. Pulse output Form C. Single Pole Double Throw (SPDT), also referred to as a changeover switch. The form C has two contacts, one that opens and one that closes. Zero Flow Duration (Condition which is normally timed for diagnostics). Voltage sag. Voltage swell. Power outage (system mains). Voltage excursion low. Voltage excursion high. Normal voltage level. Phase voltage phase imbalance. Voltage T.H.D. excess. Current T.H.D. excess. Power outage (End Device) device may be powered separately from power being monitored. Event Counters:

50 51 52 53 54 55 56 57 58 59 60 61 62 63

Number of power outages. Number of demand resets. Number of times programmed. Number of minutes on battery carryover. Number of inversion tampers. Number of removal tampers. Number of reprogramming tampers. Number of power loss tampers. Number of reverse rotation tampers. Number of physical tampers. Number of encoder tampers. Number of watchdog timeout-recoveries the End Device has encountered. Number of diagnostic alarms. Reserved. Gas Industry units Volume:

106

Decade 1: Data Source Tables / Table 12 Units of Measure Entry Table

Tables

ANSI C12.19-2008 64 65 66 67 68 69

Cubic meter gas (volume un-corrected , meter index reading) per Hr. Cor cubic meter gas (volume corrected to base conditions) per Hr. Cor cubic meter gas (volume corrected to pressure base, without supercompressibility per Hr. Cubic feet gas (volume corrected, meter index reading) per Hr. Cor cubic feet gas (volume corrected to base conditions) per Hr. Pcor cubic feet gas (volume corrected to pressure base, without supercompressibility per Hr. Temperature:

70 71 72 73 74 75

Dry bulb temp degree C. Wet bulb temp degree C. Dry bulb temp degree F. Wet bulb temp degree F. Dry bulb temp degree K. Wet bulb temp degree K. Energy:

76 77

Joules per Hr. Therm per Hr. Pressure:

78 79 80 81 82 83 84 85 86

Static Pascal. Differential Pascal. Static pound per square inch. Differential pound per square inch. Gram cm2. Meter Hg column. Inch Hg column. Inch H2O column. Bar. Other:

87 88 89 90 91 92 93..127

% relative humidity. Parts per million odorant. Absolute pressure (PSIA). Degree rankine. Mole %. Calories. Reserved. Water Industry units

128 129 130 131

Cubic meter liquid per Hr. Cubic feet liquid per Hr. US gallons per Hr. IMP gallons per Hr.

Decade 1: Data Source Tables / Table 12 Units of Measure Entry Table

107

ANSI C12.19-2008

Tables 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146..189

Acre feet per Hr. Parts per million lead. Turbidity. Parts per million chlorine. PH factor. Corrosion. Ionization. Parts per million SO2. Liters. Cubic feet liquid. Pounds per sq. ft. differential. Inches of water. Feet of water. Atmospheres. Reserved. Generic industry units

190 191 192 193 194 195 196 197 198 199 200 201..209

Local currency (e.g., $0.01). Inch. Foot. Meter. Differential value (diff val=x2-x1). dBm (Receive Signal Strength Indicator). % Capacity. Second(s). Angle in degrees. Frequency in Hertz (Hz). Bandwidth in Hertz (Hz). Reserved. HVAC Industry

210 211 212 213 214 215 216 217 218 219 220 220 221..255 UOM_ENTRY_BFLD ID_CODE

108

Return air temp. Return air flow (Cubic feet). Return humidity. Supply air temp. Supply air humidity. Discharge suction line pressure. Discharge line temp. Ambient temperature. Ambient humidity. Suction discharge line temp. Suction line pressure liquid line temp. Suction line temp. Reserved. The UOM ID_CODE identifies the physical quantity of interest (equivalent to physical units in the field of physics as used for dimensional analysis). The standard defines entries for use by the Water, Gas, or Electrical Utilities and provides for generic entries for description of internal data items. The defined units of measure have been grouped solely for

Decade 1: Data Source Tables / Table 12 Units of Measure Entry Table

Tables

ANSI C12.19-2008 readability purposes. Note that because the unit of measure record includes a time base indicator some of the units have an extra time factor that is canceled out by the unit of measure record time base indicator. For example, ID_CODE 77, Therm per Hr is actually Therm once the time base indicator is properly set. See UOM_ID_CODES_ENUM. TIME_BASE 0

1 2 3 4

5

6 7 MULTIPLIER

This field describes the measurement method with respect to time. Bulk Quantity of Commodity (Dial Reading). Quantity of commodity; integral of commodity usage rate. Values have the units stated in the ID_CODE x Hour (Energy units). Instantaneous (Sampled). This is the fastest rate at which a measurement is acquired. Period based. This is a time period based upon the period of a fundamental frequency (Power, RMS). Sub-block Average Demand. Sub-block Average Demand values are the most recent averaging demand subinterval values (Demand). Block Average Demand. Block Average Demand values may be either the average over a number of Sub-block Average Demand subintervals or the average over a single interval. The averaging period is typically greater or equal to the Sub-block Average Demand period (Demand). Net Bulk Quantity of Commodity (Relative Dial Reading). Quantity of commodity; integral of commodity usage rate over a specified period of time T1 to T2. T1 and T2 are quite arbitrary and defined by mechanisms and table driven schedules. Values have the units stated in the ID_CODE x Hour, e.g., W x h = Wh (Energy) Thermal quantity (Demand). Event quantity (Number of occurrences of an identified item). The multiplier identifies the decimal scaling value to apply to the reported value after delivery to the application of all conversion constants of the tagged item; e.g., if the ID_CODE = 0 and MULTIPLIER = 2 then the UOM represents kW (Other flags are assumed to have been set accordingly and all conversions applied).

0 1 2 3 4 5

100 102 103 106 109 10-2

Decade 1: Data Source Tables / Table 12 Units of Measure Entry Table

109

ANSI C12.19-2008

Tables 6 7

Q1_ACCOUNTABILITY FALSE TRUE Q2_ACCOUNTABILITY FALSE TRUE Q3_ACCOUNTABILITY FALSE TRUE Q4_ACCOUNTABILITY FALSE TRUE NET_FLOW_ACCOUNTABILITY FALSE

TRUE

110

10-3 10-6 Indication that tagged quantity lies in Quadrant 1 (See Quadrant definition). Tagged item is not in quadrant 1. It shall be excluded accounting or measurement. Tagged item is in quadrant 1. It shall be included accounting or measurement. Indication that tagged quantity lies in Quadrant 2 (See Quadrant definition). Tagged item is not in quadrant 2. It shall be excluded accounting or measurement. Tagged item is in quadrant 2. It shall be included accounting or measurement. Indication that tagged quantity lies in Quadrant 3 (See Quadrant definition). Tagged item is not in quadrant 3. It shall be excluded accounting or measurement. Tagged item is in quadrant 3. It shall be included accounting or measurement. Indication that tagged quantity lies in Quadrant 4 (See Quadrant definition). Tagged item is not in quadrant 4. It shall be excluded accounting or measurement. Tagged item is in quadrant 4. It shall be included accounting or measurement. This bit is required to identify the manner in which the quadrants specified are being summed. Absolute power or commodity flow per time unit delivered through selected quadrants, i.e., power or commodity per hour is added positively regardless of direction of flow, |delivered| + |received|. Net of delivered - received, where Watts are delivered in quadrants 1 & 4, received in quadrants 2 & 3; and VARs are delivered in quadrants 1 & 2, received in quadrants 3 & 4. Other commodities, i.e., Water in gallons per time unit are delivered in 1 and received in quadrant 2. Note that Electricity must be measured by vectorial summation, requiring the use of all four (4) quadrants, 1 through 4. Commodity measurement such as water and gas require only two accumulators to segregate delivered and received amounts. To utilize the accountability tools available, commodities such

Decade 1: Data Source Tables / Table 12 Units of Measure Entry Table

Tables

ANSI C12.19-2008 as water and gas are assigned to 1 and 2 (describing 0 to 180 degrees) for delivered and received quantities per time unit respectively. SEGMENTATION

When the ID_CODE field represents the electric utility industry unit of measures this bit indicates phase measurement associations. When the ID_CODE does not represent an electric utility unit of measure then this field represents an a yet to be defined quantity, except for the value 0, which stands for all sources and flows. In this case the value should be set to zero. 0 1 2 3 4 5 6 7

HARMONIC FALSE TRUE

Measurement is not a phase related or no phase information is applicable. e.g., All phases on a polyphase End Device. Phase A to B. i.e. A-B. Phase B to C. i.e. B-C. Phase C to A. i.e. C-A. Neutral to ground, or no phase information. e.g., Neutral current in a 4Y wire system. Phase A to Neutral. i.e. A-N. Phase B to Neutral. i.e. B-N. Phase C to Neutral. i.e. C-N. When the ID_CODE does not represent an electric utility unit of measure then this field represents an as yet to be defined quantity, except for the value 0, which stands for all sources and flows. This identifies harmonic related quantities. The identified ID_CODE is the entire signal unfiltered. The identified ID_CODE is a harmonic component of an associated source.

RESERVED

Reserved.

NFS

Not Fully Supported: Bit used to indicate that this unit of measure entry does not follow the unit of measure definition in some manner. FALSE TRUE

ID_RESOURCE

This unit of measure entry description follows the unit of measure definitions defined in this standard. This unit of measure entry description does not follow the unit of measure definitions defined in this standard. A descriptive code identifying to the reader the resource used to generated the commodity selected by ID_CODE. This field was specifically requested by the REA Research

Decade 1: Data Source Tables / Table 12 Units of Measure Entry Table

111

ANSI C12.19-2008

Tables Institute for the express desire to tabulate “Green Power”. The metering and instrumentation utilizing this UOM is not limited to but intended to be used for the generation facilities of the interested region or power system. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25..31

UOM_ENTRY_RCD UOM_ENTRY

112

Unspecified or unknown resource. Green Source. Nuclear, U235 fission. Nuclear U238 breeder. Hydro. Hydro-pump storage. Coal fired fossil. Natural gas turbine. MSW (Municipal Solid Waste) gasification Methane turbine. Animal waste gasification Methane turbine. Coal gasification Methane turbine. Wind horizontal vanes. Wind vertical vanes. Solar electric-panels. Solar steam turbines. Ethanol engine generation. Bio-diesel fuel engine generation. Automobile tire reclaimed diesel engine generation. Geothermal steam turbine. Hydro-tidal storage generation. Wave action generation. Fuel cells. Plug In Hybrid Electric Vehicle. Plant Biomass methane gasification Methane turbine. Reserved. Each of the entries in this array is associated to an entry in the SOURCES_TBL (Table 16). This array contains one entry for each SOURCES_TBL (Table 16) entry having the UOM_ENTRY_FLAG set. The order of the parameters in this array corresponds to the order of the sources in table SOURCES_TBL (Table 16).

Decade 1: Data Source Tables / Table 12 Units of Measure Entry Table

Tables

9.2.4

ANSI C12.19-2008

Table 13 Demand Control Table

Table 13 Data Description DEMAND_CONTROL_TBL (Table 13) contains information pertaining to the application of rates and global rate controls. Global Default Table Property Overrides: Role=“CONTROL” Table 13 Type Definitions TYPE INT_CONTROL_RCD = PACKED RECORD IF ACT_SOURCES_LIM_TBL.SLIDING_DEMAND_FLAG THEN SUB_INT : UINT8; INT_MULTIPLIER : UINT8; ELSE INT_LENGTH : UINT16; END; END; TYPE DEMAND_CONTROL_RCD = PACKED RECORD IF ACT_SOURCES_LIM_TBL.RESET_EXCLUDE_FLAG THEN RESET_EXCLUSION : UINT8; END; IF ACT_SOURCES_LIM_TBL.PF_EXCLUDE_FLAG THEN P_FAIL_RECOGNTN_TM : UINT8; P_FAIL_EXCLUSION : UINT8; COLD_LOAD_PICKUP : UINT8; END; INTERVAL_VALUE : ARRAY[ACT_SOURCES_LIM_TBL. NBR_DEMAND_CTRL_ENTRIES] OF INT_CONTROL_RCD; END; TABLE 13 DEMAND_CONTROL_TBL = DEMAND_CONTROL_RCD; Table 13 Element Descriptions Identifier

Value

Definition

INT_CONTROL_RCD SUB_INT

0..255

The number of minutes in the subinterval.

INT_MULTIPLIER

0..255

The multiplier by which the SUB_INT is multiplied.

INT_LENGTH

0..65535

The length of the demand interval in minutes.

0..255

Number of minutes after demand reset to exclude additional reset action.

DEMAND_CONTROL_RCD RESET_EXCLUSION

Decade 1: Data Source Tables / Table 13 Demand Control Table

113

ANSI C12.19-2008

P_FAIL_RECOGNTN_TM

0..255

Number of seconds after a power failure occurs until a valid power failure is recorded and a specified action is initiated.

P_FAIL_EXCLUSION

0..255

Number of minutes after a valid power failure occurs to inhibit demand calculations.

COLD_LOAD_PICKUP

0..255

Number of minutes after a valid power failure occurs to provide cold load pickup functions.

INTERVAL_VALUE

114

Tables

Each of the entries in this array is associated with an entry in the SOURCES_TBL (Table 16). This array contains one entry for each SOURCES_TBL (Table 16) entry having the DEMAND_CTRL_FLAG set. The order of the parameters in this array corresponds to the order of the sources in table SOURCES_TBL (Table 16).

Decade 1: Data Source Tables / Table 13 Demand Control Table

Tables

9.2.5

ANSI C12.19-2008

Table 14 Data Control Table

Table 14 Data Description DATA_CONTROL_TBL (Table 14) contains the data source information that serves as data input sources for the following tables. This table serves as an interface between areas of the End Device considered manufacturer specific and the areas of the End Device to be standardized. Each entry in the table is manufacturer defined. Examples of entries into this table are: entry contains address of data to be processed; or entry contains data to be processed. Global Default Table Property Overrides: Role=“CONTROL” Table 14 Type Definitions TYPE DATA_RCD = PACKED RECORD SOURCE_ID : BINARY(ACT_SOURCES_LIM_TBL.DATA_CTRL_LENGTH); END; TYPE DATA_CONTROL_RCD = PACKED RECORD SOURCES_ID : ARRAY[ACT_SOURCES_LIM_TBL.NBR_DATA_CTRL_ENTRIES] OF DATA_RCD; END; TABLE 14 DATA_CONTROL_TBL = DATA_CONTROL_RCD; Table 14 Element Descriptions Identifier DATA_RCD SOURCE_ID

DATA_CONTROL_RCD SOURCES_ID

Value

Definition Each entry is defined by the manufacturer as to length and content. The length is identical for all entries. Each of the entries in this array is associated with an entry in the SOURCES_TBL (Table 16). This array contains one entry for each SOURCES_TBL (Table 16) entry having the DATA_CTRL_FLAG set. The order of the parameters in this array corresponds to the order of the sources in table SOURCES_TBL (Table 16).

Decade 1: Data Source Tables / Table 14 Data Control Table

115

ANSI C12.19-2008

9.2.6

Tables

Table 15 Constants Table

Table 15 Data Description CONSTANTS_TBL (Table 15) contains the record structures supporting constants for application to the sources. This table has been designed for easy inclusion of new constants structures. Global Default Table Property Overrides: Role=“CONTROL” Table 15 Type Definitions {gas industry constants} TYPE GAS_PRESS_RCD = PACKED RECORD GAS_PRESS_ZERO : NI_FMAT2; GAS_PRESS_FULLSCALE : NI_FMAT2; BASE_PRESSURE : NI_FMAT2; END; TYPE GAS_TEMP_RCD = PACKED RECORD GAS_TEMP_ZERO : NI_FMAT2; GAS_TEMP_FULLSCALE : NI_FMAT2; BASE_TEMP : NI_FMAT2; END; TYPE GAS_DP_RCD = PACKED RECORD GAS_DP_ZERO : NI_FMAT2; GAS_DP_FULLSCALE : NI_FMAT2; END; TYPE PIPE_ORIF_DIA_RCD = PACKED RECORD PIPE_DIA : NI_FMAT2; ORIF_DIA : NI_FMAT2; END; TYPE GAS_AGA3_CORR_RCD = PACKED RECORD AUX_CORR_FCTR : NI_FMAT2; GAS_AGA3_CORR_FCTR : NI_FMAT2; PIPE_ORIF_DIA : PIPE_ORIF_DIA_RCD; TAP_UP_DN : UINT8; GAS_PRESS_PARM : GAS_PRESS_RCD; GAS_TEMP_PARM : GAS_TEMP_RCD; END; TYPE GAS_AGA7_CORR_RCD = PACKED RECORD GAS_PRESS_PARM : GAS_PRESS_RCD; GAS_TEMP_PARM : GAS_TEMP_RCD; AUX_CORR_FCTR : NI_FMAT2; GAS_AGA7_CORR : NI_FMAT2; END; TYPE GAS_ENERGY_RCD = PACKED RECORD GAS_ENERGY_ZERO : NI_FMAT2; GAS_ENERGY_FULL : NI_FMAT2;

116

Decade 1: Data Source Tables / Table 15 Constants Table

Tables

ANSI C12.19-2008

END; TYPE GAS_DP_SHUTOFF_RCD = PACKED RECORD GAS_SHUTOFF : NI_FMAT2; END; {Constant selector 0} TYPE GAS_CONSTANTS_AGA3_RCD = PACKED RECORD GAS_DP_PARM : GAS_DP_RCD; GAS_DP_SHUTOFF : GAS_DP_SHUTOFF_RCD; GAS_PRESS_PARM : GAS_PRESS_RCD; GAS_AGA3_CORR : GAS_AGA3_CORR_RCD; GAS_ENERGY : GAS_ENERGY_RCD; END; {Constant selector 1} TYPE GAS_CONSTANTS_AGA7_RCD = PACKED RECORD GAS_AGA7_CORR : GAS_AGA7_CORR_RCD; GAS_ENERGY : GAS_ENERGY_RCD; END; {Constant selector 2} TYPE SET_CTRL_BFLD = BIT FIELD OF UINT8 SET_APPLIED_FLAG : BOOL(0); FILLER : FILL(1..7); END; TYPE SET_APPLIED_RCD = PACKED RECORD SET_FLAGS : SET_CTRL_BFLD; RATIO_F1 : NI_FMAT1; RATIO_P1 : NI_FMAT1; END; TYPE ELECTRIC_CONSTANTS_RCD = PACKED RECORD MULTIPLIER : NI_FMAT1; OFFSET : NI_FMAT1; IF ACT_SOURCES_LIM_TBL.SET1_PRESENT_FLAG THEN SET1_CONSTANTS : SET_APPLIED_RCD; END; IF ACT_SOURCES_LIM_TBL.SET2_PRESENT_FLAG THEN SET2_CONSTANTS : SET_APPLIED_RCD; END; END; {Constant selector 3} TYPE GENERIC_CONSTANTS_RCD = PACKED RECORD MULTIPLIER : NI_FMAT1; DIVISOR : NI_FMAT1; OFFSET : NI_FMAT1;

Decade 1: Data Source Tables / Table 15 Constants Table

117

ANSI C12.19-2008

Tables

IF ACT_SOURCES_LIM_TBL.SET1_PRESENT_FLAG THEN SET1_CONSTANTS : SET_APPLIED_RCD; END; IF ACT_SOURCES_LIM_TBL.SET2_PRESENT_FLAG THEN SET2_CONSTANTS : SET_APPLIED_RCD; END; END; {Constants record structure selection} TYPE CONSTANTS_RCD = PACKED RECORD SWITCH ACT_SOURCES_LIM_TBL.CONSTANTS_SELECTOR OF CASE 0 : GAS_CONSTANTS_AGA3 : GAS_CONSTANTS_AGA3_RCD; CASE 1 : GAS_CONSTANTS_AGA7 : GAS_CONSTANTS_AGA7_RCD; CASE 2 : ELECTRIC_CONSTANTS : ELECTRIC_CONSTANTS_RCD; CASE 3 : GENERIC_CONSTANTS : GENERIC_CONSTANTS_RCD; CASE 4..255 : RESERVED : NIL; END; END; TYPE CONSTANT_SELECTION_RCD = PACKED RECORD SELECTION : ARRAY[ACT_SOURCES_LIM_TBL.NBR_CONSTANTS_ENTRIES] OF CONSTANTS_RCD; END; TABLE 15 CONSTANTS_TBL = CONSTANT_SELECTION_RCD; Table 15 Element Descriptions Identifier GAS_PRESS_RCD GAS_PRESS_ZERO

Definition Flow pressure calibration, zero offset.

GAS_PRESS_FULLSCALE

Flow pressure calibration, full scale.

BASE_PRESSURE

Pressure for base condition. absolute base pressure.

GAS_TEMP_RCD GAS_TEMP_ZERO

This value is

Flow temperature calibration, zero offset.

GAS_TEMP_FULLSCALE

Flow temperature calibration, full scale.

BASE_TEMP

Temperature for base condition.

GAS_DP_RCD GAS_DP_ZERO GAS_DP_FULLSCALE PIPE_ORIF_DIA_RCD PIPE_DIA

118

Value

Flow Differential pressure calibration, zero offset (used for AGA 3 only). Flow Differential pressure calibration, full scale (used for AGA 3 only). The pipe diameter of an orifice meter (used for AGA 3 only).

Decade 1: Data Source Tables / Table 15 Constants Table

Tables

ANSI C12.19-2008

ORIF_DIA

The orifice diameter of an orifice meter (used for AGA 3 only).

GAS_AGA3_CORR_RCD AUX_CORR_FCTR

Factor to provide other possible correction to the gas corrected volume.

GAS_AGA3_CORR_FCTR

Factor is used to correct the uncorrected gas volume using AGA3 (used for AGA3 only).

PIPE_ORIF_DIA

Record structure from above.

TAP_UP_DN 0 1 2 3 4 5..255

Tap configuration (used for AGA3 only). No tap or flange. Up stream flange. Down stream flange. Upstream pipe. Down stream pipe. Reserved.

GAS_PRESS_PARM

Refer to GAS_PRESS_RCD.

GAS_TEMP_PARM

Refer to GAS_TEMP_RCD.

GAS_AGA7_CORR_RCD GAS_PRESS_PARM

Refer to GAS_PRESS_RCD.

GAS_TEMP_PARM

Refer to GAS_TEMP_RCD.

AUX_CORR_FCTR

Factor to provide other possible correction to the gas corrected volume.

GAS_AGA7_CORR

Factor is used to correct the uncorrected gas volume using AGA7 (used for AGA7 only).

GAS_ENERGY_RCD GAS_ENERGY_ZERO GAS_ENERGY_FULL GAS_DP_SHUTOFF_RCD GAS_SHUTOFF

Energy calibration, zero offset. Energy calibration, full scale. This parameter is used to disable the AGA3 flow calculations when differential pressure is below the value indicated by this parameter (used for AGA 3 only).

GAS_CONSTANTS_AGA3_RCD GAS_DP_PARM GAS_DP_SHUTOFF GAS_PRESS_PARM GAS_AGA3_CORR GAS_ENERGY

When Constants selector is 0. Refer to GAS_DP_RCD. Refer to GAS_DP_SHUTOFF_RCD. Refer to GAS_PRESS_RCD. Refer to GAS_AGA3_CORR_RCD. Refer to GAS_ENERGY_RCD.

GAS_CONSTANTS_AGA7_RCD GAS_AGA7_CORR

When Constants selector is 1. Refer to GAS_AGA7_CORR_RCD.

Decade 1: Data Source Tables / Table 15 Constants Table

119

ANSI C12.19-2008

Tables

GAS_ENERGY SET_CTRL_BFLD SET_APPLIED_FLAG

Refer to GAS_ENERGY_RCD. FALSE TRUE

SET_APPLIED_RCD SET_FLAGS

When Constants selector is 2. The RATIO_P1 and RATIO_F1 represented by this flag have not been applied to the associated source. The RATIO_P1 and RATIO_F1 represented by this flag have been applied to the associated source. See SET_CTRL_BFLD above.

RATIO_F1

Ratio of intermediary device to allow interface of commodity flow to utility meters. For example, electric utilities use a current transformer to reduce the current at the meter. Transforming 2000 amps to 5 amps is a ratio of 400.

RATIO_P1

Ratio of intermediary device to allow interface of commodity pressure to utility meters. For example, electric utilities use a voltage transformer to reduce the voltage at the meter. Transforming 7200 volts to 120 volts is a ratio of 60.

ELECTRIC_CONSTANTS_RCD

Offsets, multipliers and divisors that were applied (or need to be applied) in order to convert raw End Device Table Element values to engineering units. MULTIPLIER and OFFSET shall be applied if the corresponding CONSTANT_TO_BE_APPLIED that is found in SOURCES_TBL.SOURCE_LINK_BFLD is set to TRUE.

MULTIPLIER

Final Element value used in multiplication/division adjustment. This multiplier shall be applied before OFFSET.

OFFSET

Final Element value used in addition/subtraction adjustment. This Element shall be applied after MULTIPLIER.

SET1_CONSTANTS

Conditional conversion ratios that were applied (or need to be applied) immediately after the application of MULTIPLIER and OFFSET Final Elements. This Element is associated with the intermediary device that is closest to the End Device or embedded within the End Device.

SET2_CONSTANTS

120

Conditional conversion ratios that were applied (or need to be applied) immediately after the application of SET1_CONSTANTS Elements.

Decade 1: Data Source Tables / Table 15 Constants Table

Tables

ANSI C12.19-2008

This Element is associated with the intermediary device that is next in proximity to the End Device relative to the intermediary device that is scaled by the SET1_CONSTANTS Element. GENERIC_CONSTANTS_RCD

Offsets, multipliers and divisors that were applied (or need to be applied) in order to convert raw End Device Table Element values to engineering units. MULTIPLIER, DIVISOR and OFFSET shall be applied if the corresponding CONSTANT_TO_BE_APPLIED that is found in SOURCES_TBL.SOURCE_LINK_BFLD is set to TRUE.

MULTIPLIER

Final Element value used in multiplication adjustment. This multiplier shall be applied before OFFSET.

DIVISOR

Final Element value used in division adjustment. This divisor shall be applied before OFFSET and after the MULTIPLIER.

OFFSET

Final Element value used in addition/subtraction adjustment. This Element shall be applied after MULTIPLIER.

SET1_CONSTANTS

Conditional conversion ratios that were applied (or need to be applied) immediately after the application of MULTIPLIER, DIVISOR and OFFSET Final Elements. This Element is associated with the intermediary device that is closest to the End Device or embedded within the End Device.

SET2_CONSTANTS

Conditional conversion ratios that were applied (or need to be applied) immediately after the application of SET1_CONSTANTS Elements. This Element is associated with the intermediary device that is next in proximity to the End Device relative to the intermediary device that is scaled by the SET1_CONSTANTS Element.

CONSTANTS_RCD GAS_CONSTANTS_AGA3 GAS_CONSTANTS_AGA7 ELECTRIC_CONSTANTS CONSTANT_SELECTION_RCD SELECTION

Structure that selects the constant record structure to use. See GAS_CONSTANTS_AGA3_RCD. See GAS_CONSTANTS_AGA7_RCD. See ELECTRIC_CONSTANTS_RCD. Each of the entries in this array is associated with an entry in the SOURCES_TBL (Table 16).

Decade 1: Data Source Tables / Table 15 Constants Table

121

ANSI C12.19-2008

Tables This array contains one entry for each SOURCES_TBL (Table 16) entry having the CONSTANTS_FLAG set. The order of the parameters in this array corresponds to the order of the sources in table SOURCES_TBL (Table 16).

122

Decade 1: Data Source Tables / Table 15 Constants Table

Tables

9.2.7

ANSI C12.19-2008

Table 16 Source Definition Table

Table 16 Data Description SOURCES_TBL (Table 16) contains the information regarding the sources selected by the other tables. Global Default Table Property Overrides: Role=“CONTROL” Table 16 Type Definitions TYPE SOURCE_LINK_BFLD = BIT FIELD OF UINT8 UOM_ENTRY_FLAG : BOOL(0); DEMAND_CTRL_FLAG : BOOL(1); DATA_CTRL_FLAG : BOOL(2); CONSTANTS_FLAG : BOOL(3); PULSE_ENGR_FLAG : BOOL(4); CONSTANT_TO_BE_APPLIED : BOOL(5); FILLER : FILL(6..7); END; TYPE SOURCE_LINK_RCD = PACKED RECORD SOURCES_LINK : ARRAY[ACT_SOURCES_LIM_TBL.NBR_SOURCES] OF SOURCE_LINK_BFLD; END; TABLE 16 SOURCES_TBL = SOURCE_LINK_RCD; Table 16 Element Descriptions Identifier

Value

Definition

SOURCE_LINK_BFLD UOM_ENTRY_FLAG

FALSE

A UOM_ENTRY_TBL (Table 12) entry does not exist for this source. A UOM_ENTRY_TBL (Table 12) entry is associated with this source.

TRUE DEMAND_CTRL_FLAG

FALSE TRUE

DATA_CTRL_FLAG

FALSE TRUE

CONSTANTS_FLAG

FALSE TRUE

PULSE_ENGR_FLAG

A DEMAND_CONTROL_TBL (Table 13) entry does not exist for this source. A DEMAND_CONTROL_TBL (Table 13) entry is associated with this source. A DATA_CONTROL_TBL (Table 14) entry does not exist for this source. A DATA_CONTROL_TBL (Table 14) entry is associated with this source. A CONSTANTS_TBL (Table 15) entry does not exist for this source. A CONSTANTS_TBL (Table 15) entry is associated with this source. This Final Element is just a source descriptor. It is provided solely for information purpose. The

Decade 1: Data Source Tables / Table 16 Source Definition Table

123

ANSI C12.19-2008

Tables conversion algorithm from raw Table values to final usable engineering values does not depend on the state of the PULSE_ENGR_FLAG being TRUE or FALSE. FALSE TRUE

The source is in pulse units. The source is in engineering units.

CONSTANT_TO_BE_APPLIEDThis flag affects the use of the MULTIPLIER and OFFSET Elements of CONSTANTS_TBL. ELECTRIC_CONSTANTS_RCD. Otherwise this flag has no effect.

124

FALSE

The entry in the CONSTANTS_TBL (Table 15) if present, does not have to be applied by the Utility application. The constants have been applied by the End Device to the source prior to transmission.

TRUE

The entry in the CONSTANTS_TBL (Table 15) if present, have to be applied by the Utility application. The constants were not applied bye the End Device to the source prior to transmission.

Decade 1: Data Source Tables / Table 16 Source Definition Table

Tables

9.2.8

ANSI C12.19-2008

Table 17 Transformer Loss Compensation Table

Table 17 Data Description TLC_TBL (Table 17) provides the electrical End Device with information for accounting for transformer related losses. This table shows total no-load losses and load losses calculated by the End Device. It also contains the Watt losses and VAR losses constants. See Annex F, “Transformer Losses Compensation”, for a detailed discussion on the implementation model assumed by this Standard. Global Default Table Property Overrides: Role=“CONTROL” Table 17 Type Definitions TYPE TLC_COEFFICIENTS_RCD = PACKED RECORD KWCU : NI_FMAT1; KVCU : NI_FMAT1; KWFE : NI_FMAT1; KVFE : NI_FMAT1; DELIVERED_PCT : UINT8; RECEIVED_PCT : UINT8; END; TYPE TLC_INFORMATION_RCD = PACKED RECORD DELIVERED_WATT_CU : NI_FMAT1; DELIVERED_VAR_CU : NI_FMAT1; DELIVERED_WATT_FE : NI_FMAT1; DELIVERED_VAR_FE : NI_FMAT1; RECEIVED_WATT_CU : NI_FMAT1; RECEIVED_VAR_CU : NI_FMAT1; RECEIVED_WATT_FE : NI_FMAT1; RECEIVED_VAR_FE : NI_FMAT1; END; TYPE TLC_RCD = PACKED RECORD TR_CONFIGURE : UINT8; TLC_CONSTANTS : TLC_COEFFICIENTS_RCD; TLC_SUM : TLC_INFORMATION_RCD; END; TABLE 17 TLC_TBL = TLC_RCD; Table 17 Element Descriptions Identifier TLC_COEFFICIENTS_RCD KWCU

KVCU

Value

Definition Copper coefficient used in determining watt losses of the transformer due to load (Copper) losses Copper coefficient used in determining var losses of the transformer due to load (Copper) losses.

Decade 1: Data Source Tables / Table 17 Transformer Loss Compensation Table

125

ANSI C12.19-2008

Tables

KWFE

Iron coefficient used in determining watt losses of the transformer due to no-load (Iron) losses.

KVFE

Iron coefficient used in determining VAR losses of the transformer due to no-load (Iron) losses.

DELIVERED_PCT

0..100

Percentage of losses in the delivered direction.

RECEIVED_PCT

0..100

Percentage of losses in the received direction. Note: when directionality is not available this Element shall be set to zero (0).

TLC_INFORMATION_RCD

This record delivers the compensation calculations.

loss

DELIVERED_WATT_CU

Delivered total Watt copper loss accumulator.

DELIVERED_VAR_CU

Delivered total VAR copper loss accumulator.

DELIVERED_WATT_FE

Delivered total Watt iron loss accumulator.

DELIVERED_VAR_FE

Delivered total VAR iron loss accumulator.

RECEIVED_WATT_CU

Received Watt copper loss accumulator.

RECEIVED_VAR_CU

Received VAR copper loss accumulator.

RECEIVED_WATT_FE

Received Watt iron loss accumulator.

RECEIVED_VAR_FE

Received VAR iron loss accumulator.

TLC_RCD TR_CONFIGURE

0 1 2…255

126

transformer

The billing point is on the high voltage side of a transformer, the meter is located on the low voltage side of the transformer. The billing point is on the low voltage side of a transformer, the meter is located on the high voltage side of the transformer. Reserved.

TLC_CONSTANTS

See TLC_COEFFICIENTS_RCD.

TLC_SUM

See TLC_INFORMATION_RCD.

Decade 1: Data Source Tables / Table 17 Transformer Loss Compensation Table

Tables

ANSI C12.19-2008

9.3 Decade 2: Register Tables Decade 2 Name REGISTER_DEC This Decade contains Tables associated with Registers for measured values. These Registers can be accumulating (energy), demand, TOU, instantaneous or other(s) as appropriate. 9.3.1

Table 20 Register Dimension Limits Table

Table 20 Data Description DIM_REGS_TBL (Table 20) specifies the maximum dimensional values for measured values Registers. The constants defined are used for setting the absolute maximum limits of Arrays used in the transport of these values. Global Default Table Property Overrides: Role=“LIMITING”, Accessibility=“READONLY” Table 20 Type Definitions TYPE REG_FUNC1_BFLD = BIT FIELD OF UINT8 SEASON_INFO_FIELD_FLAG : BOOL(0); DATE_TIME_FIELD_FLAG : BOOL(1); DEMAND_RESET_CTR_FLAG : BOOL(2); DEMAND_RESET_LOCK_FLAG : BOOL(3); CUM_DEMAND_FLAG : BOOL(4); CONT_CUM_DEMAND_FLAG : BOOL(5); TIME_REMAINING_FLAG : BOOL(6); FILLER : FILL(7..7); END; TYPE REG_FUNC2_BFLD = BIT FIELD OF UINT8 SELF_READ_INHIBIT_OVERFLOW_FLAG SELF_READ_SEQ_NBR_FLAG DAILY_SELF_READ_FLAG WEEKLY_SELF_READ_FLAG SELF_READ_DEMAND_RESET FILLER END;

: BOOL(0); : BOOL(1); : BOOL(2); : BOOL(3); : UINT(4..5); : FILL(6..7);

TYPE REGS_RCD = PACKED RECORD REG_FUNC1_FLAGS : REG_FUNC1_BFLD; REG_FUNC2_FLAGS : REG_FUNC2_BFLD; NBR_SELF_READS : UINT8; NBR_SUMMATIONS : UINT8; NBR_DEMANDS : UINT8; NBR_COIN_VALUES : UINT8; NBR_OCCUR : UINT8; NBR_TIERS : UINT8; NBR_PRESENT_DEMANDS : UINT8; NBR_PRESENT_VALUES : UINT8; END; TABLE 20 DIM_REGS_TBL = REGS_RCD; Decade 2: Register Tables / Table 20 Register Dimension Limits Table

127

ANSI C12.19-2008

Tables

Table 20 Element Descriptions Identifier

Value

Definition

FALSE

End Device is not capable of reporting the representative season in Tables in this decade. End Device is capable of reporting the representative season in Tables in this decade.

REG_FUNC1_BFLD SEASON_INFO_FIELD_FLAG TRUE DATE_TIME_FIELD_FLAG

FALSE TRUE

End Device is not capable of providing the date and time in Tables in this decade. End Device is capable of providing the date and time in Tables in this decade.

DEMAND_RESET_CTR_FLAG FALSE TRUE DEMAND_RESET_LOCK_FLAG FALSE TRUE CUM_DEMAND_FLAG

FALSE TRUE

End Device is not capable of counting the number of activations of demand resets. End Device is capable of counting the number of activations of demand resets. Demand reset lockout is not supported by the End Device. Demand reset lockout is supported by the End Device. Cumulative Demand is not supported by the End Device. Cumulative Demand is supported by the End Device.

CONT_CUM_DEMAND_FLAG FALSE TRUE TIME_REMAINING_FLAG

FALSE TRUE

Continuous Cumulative Demand is not supported by the End Device. Continuous Cumulative Demand is supported by the End Device. End Device is not capable of reporting the time remaining in the Demand interval. End Device is capable of reporting the time remaining in the Demand interval.

REG_FUNC2_BFLD SELF_READ_INHIBIT_OVERFLOW_FLAG FALSE TRUE SELF_READ_SEQ_NBR_FLAG FALSE

128

End Device is not capable of inhibiting Selfreads once an overflow occurs. End Device is capable of inhibiting Self-reads once an overflow occurs. End Device is not capable of providing a Selfread sequential number for each entry.

Decade 2: Register Tables / Table 20 Register Dimension Limits Table

Tables

ANSI C12.19-2008 TRUE DAILY_SELF_READ_FLAG

End Device is capable of providing a Self-read sequential number.

FALSE TRUE

Indicates whether daily Self-reads are supported. These readings are taken at 00:00:00. Daily Self-reads are not supported. Daily Self-reads are supported.

FALSE TRUE

Indicates whether weekly Self-reads are supported. These readings are taken at 00:00:00 on Sunday. Weekly Self-reads are not supported. Weekly Self-reads are supported.

WEEKLY_SELF_READ_FLAG

SELF_READ_DEMAND_RESET

0 1 2 3

Specifies whether the End Device is capable of performing a Self-read whenever a Demand reset (by any method) is performed and whether the End Device is capable of performing a Demand reset whenever a Self-read (by any method) is performed. End Device is not capable of performing either a Self-read on every Demand reset or a Demand reset on every Self-read. End Device is capable of performing only a Selfread on every Demand reset. End Device is capable of performing only a Demand reset on every Self-read. End Device is capable of performing a Self-read on every Demand reset and a Demand reset on every Self-read.

REGS_RCD REG_FUNC1_FLAGS

See REG_FUNC1_BFLD.

REG_FUNC2_FLAGS

See REG_FUNC2_BFLD.

NBR_SELF_READS

0..255

Maximum number of Self-reads supported by the End Device.

NBR_SUMMATIONS

0..255

Maximum number of summation Registers in each data block.

NBR_DEMANDS

0..255

Maximum number of Demand Registers in each data block.

NBR_COIN_VALUES

0..255

Maximum number of coincident values saved concurrently in each data block.

NBR_OCCUR

0..255

Maximum number of occurrences stored for a particular selection.

NBR_TIERS

0..255

Maximum number of tiers for data storage.

Decade 2: Register Tables / Table 20 Register Dimension Limits Table

129

ANSI C12.19-2008

130

Tables

NBR_PRESENT_DEMANDS

0..255

Maximum number of present demand values that can be stored.

NBR_PRESENT_VALUES

0..255

Maximum number of present values that can be stored.

Decade 2: Register Tables / Table 20 Register Dimension Limits Table

Tables

9.3.2

ANSI C12.19-2008

Table 21 Actual Register Limiting Table

Table 21 Data Description ACT_REGS_TBL (Table 21) contains actual limiting values for Registers. Global Default Table Property Overrides: Role=“ACTUAL” Table 21 Type Definitions TABLE 21 ACT_REGS_TBL = REGS_RCD; Table 21 Element Descriptions Identifier

Value

REG_FUNC1_BFLD

Definition Redefines: REG_FUNC1_BFLD.

DIM_REGS_TBL.

SEASON_INFO_FIELD_FLAG FALSE TRUE DATE_TIME_FIELD_FLAG

FALSE TRUE

End Device is not reporting the representative season in Tables in this Decade. End Device is reporting the representative season in Tables in this Decade. End Device is not providing the date and time in Tables in this Decade. End Device is providing the date and time in Tables in this Decade.

DEMAND_RESET_CTR_FLAG FALSE TRUE DEMAND_RESET_LOCK_FLAG FALSE TRUE CUM_DEMAND_FLAG

FALSE TRUE

End Device is not counting the number of activations of Demand resets. End Device is counting the number of activations of Demand resets. Demand reset lockout is not enabled. Demand reset lockout is enabled. Cumulative Demand is not in use by the End Device. Cumulative Demand is in use by the End Device.

CONT_CUM_DEMAND_FLAG FALSE TRUE TIME_REMAINING_FLAG

FALSE

Continuous Cumulative Demand is not in use by the End Device. Continuous Cumulative Demand is in use by the End Device. End Device does not report the time remaining in Demand interval.

Decade 2: Register Tables / Table 21 Actual Register Limiting Table

131

ANSI C12.19-2008

Tables TRUE

REG_FUNC2_BFLD

Redefines: REG_FUNC2_BFLD.

SELF_READ_INHIBIT_OVERFLOW_FLAG FALSE TRUE SELF_READ_SEQ_NBR_FLAG FALSE TRUE DAILY_SELF_READ_FLAG

End Device is not inhibiting Self-reads once an overflow occurs. End Device is inhibits Self-reads once an overflow occurs. End Device is not providing a Self-read sequential number for each entry. End Device is providing a Self-read sequential number.

FALSE TRUE

FALSE TRUE

Indicates whether weekly Self-reads are in use. These readings are taken at 00:00:00 on Sunday. Weekly Self-reads are not in use. Weekly Self-reads are in use.

SELF_READ_DEMAND_RESET

0 1 2 3

REGS_RCD

Specifies whether the End Device will perform a Self-read whenever a Demand reset (by any method) is performed and whether the End Device will perform a Demand reset whenever a self-read (by any method) is performed. End Device shall not perform either a Self-read on every Demand reset or a Demand reset on every Self-read. End Device shall perform a Self-read on every Demand reset. End Device shall perform a Demand reset on every Self-read. End Device shall perform a Self-read on every Demand reset and a Demand reset on every Self-read. Redefines: DIM_REGS_TBL.REGS_RCD.

REG_FUNC1_FLAGS

See REG_FUNC1_BFLD.

REG_FUNC2_FLAGS

See REG_FUNC2_BFLD.

NBR_SELF_READS

Number of Self-reads in use.

NBR_SUMMATIONS

DIM_REGS_TBL.

Indicates whether daily self-reads are in use. These readings are taken at 00:00:00. Daily Self-reads are not in use. Daily Self-reads are in use.

WEEKLY_SELF_READ_FLAG

132

End Device reports the time remaining in Demand interval.

0..255

Number of summation Registers in each data block.

Decade 2: Register Tables / Table 21 Actual Register Limiting Table

Tables

ANSI C12.19-2008

NBR_DEMANDS

0..255

Number of Demand Registers in each data block.

NBR_COIN_VALUES

0..255

Number of coincident values saved in each data block.

NBR_OCCUR

0..255

Number of occurrences stored for a particular selection.

NBR_TIERS

0..255

Number of tiers in use.

NBR_PRESENT_DEMANDS

0..255

Number of present demand values that are stored.

NBR_PRESENT_VALUES

0..255

Number of present values that are stored.

Decade 2: Register Tables / Table 21 Actual Register Limiting Table

133

ANSI C12.19-2008

9.3.3

Tables

Table 22 Data Selection Table

Table 22 Data Description DATA_SELECTION_TBL (Table 22) contains grouped lists of source indices. These indices point towards Array elements in SOURCES_TBL (Table 16) when Table 22 is present. These lists are used to build the Table that contains the data to be captured. The groupings are described below. Global Default Table Property Overrides: Role=“CONTROL” Table 22 Type Definitions TYPE DATA_SELECTION_RCD = PACKED RECORD SUMMATION_SELECT : ARRAY[ACT_REGS_TBL.NBR_SUMMATIONS] OF STD.SOURCE_SELECT_RCD; DEMAND_SELECT : ARRAY[ACT_REGS_TBL.NBR_DEMANDS] OF STD.SOURCE_SELECT_RCD; MIN_OR_MAX_FLAGS : SET((ACT_REGS_TBL.NBR_DEMANDS+7)/8); COINCIDENT_SELECT : ARRAY[ACT_REGS_TBL.NBR_COIN_VALUES] OF STD.SOURCE_SELECT_RCD; COIN_DEMAND_ASSOC : ARRAY[ACT_REGS_TBL.NBR_COIN_VALUES] OF UINT8; END; TABLE 22 DATA_SELECTION_TBL = DATA_SELECTION_RCD; Table 22 Element Descriptions Identifier

Value

Definition

DATA_SELECTION_RCD SUMMATION_SELECT

List of source selectors that groups together bulk/energy/summation that are associated with the SUMMATIONS defined in this decade.

DEMAND_SELECT

List of source selectors that groups together demand sources that are associated with DEMANDS defined in this decade. SET of bit flags, each corresponding to an entry in DEMAND_SELECT. Indicates that the associated DEMAND_SELECT entry is a minimum. Indicates that the associated DEMAND_SELECT entry is a maximum.

MIN_OR_MAX_FLAGS FALSE TRUE

134

COINCIDENT_SELECT

Data source selectors for quantites to be placed in the COINCIDENTS array of the Current Register Data Table (Table 23).

COIN_DEMAND_ASSOC

Each entry corresponds to an entry in COINCIDENT_SELECT and provides an index into DEMAND_SELECT identifying the Demand for which this coincident value is taken.

Decade 2: Register Tables / Table 22 Data Selection Table

Tables

9.3.4

ANSI C12.19-2008

Table 23 Current Register Data Table

Table 23 Data Description CURRENT_REG_DATA_TBL (Table 23) contains the current Register data. “Current” is with respect to the previous demand reset, season or Self-read. Table 23 is intended for billing purposes. Global Default Table Property Overrides: Role=“DATA”, Accessibility=“READONLY” Table 23 Type Definitions TYPE COINCIDENTS_RCD = PACKED RECORD COINCIDENT_VALUES : ARRAY[ACT_REGS_TBL.NBR_OCCUR] OF NI_FMAT2; END; TYPE DEMANDS_RCD = PACKED RECORD IF ACT_REGS_TBL.DATE_TIME_FIELD_FLAG THEN EVENT_TIME : ARRAY[ACT_REGS_TBL.NBR_OCCUR] OF STIME_DATE; END; IF ACT_REGS_TBL.CUM_DEMAND_FLAG THEN CUM_DEMAND : NI_FMAT1; END; IF ACT_REGS_TBL.CONT_CUM_DEMAND_FLAG THEN CONT_CUM_DEMAND : NI_FMAT1; END; DEMAND : ARRAY[ACT_REGS_TBL.NBR_OCCUR] OF NI_FMAT2; END; TYPE DATA_BLK_RCD = PACKED RECORD SUMMATIONS : ARRAY[ACT_REGS_TBL.NBR_SUMMATIONS] OF NI_FMAT1; DEMANDS : ARRAY[ACT_REGS_TBL.NBR_DEMANDS] OF DEMANDS_RCD; COINCIDENTS : ARRAY[ACT_REGS_TBL.NBR_COIN_VALUES] OF COINCIDENTS_RCD; END; TYPE REGISTER_DATA_RCD = PACKED RECORD IF ACT_REGS_TBL.DEMAND_RESET_CTR_FLAG THEN NBR_DEMAND_RESETS : UINT8; END; TOT_DATA_BLOCK : DATA_BLK_RCD; TIER_DATA_BLOCK : ARRAY[ACT_REGS_TBL.NBR_TIERS] OF DATA_BLK_RCD; END; TABLE 23 CURRENT_REG_DATA_TBL = REGISTER_DATA_RCD;

Decade 2: Register Tables / Table 23 Current Register Data Table

135

ANSI C12.19-2008

Tables

Table 23 Element Descriptions Identifier

Value

COINCIDENTS_RCD COINCIDENT_VALUES

Definition Coincident values selected by DATA_SELECTION_TBL.COINCIDENT_SELE CT (Table 22).

DEMANDS_RCD EVENT_TIME

Array that contains the date and time of each minimum or maximum recorded. Entry in position zero (0) corresponds to the entry in position zero (0) of the DEMAND Array. The presence of this field is dependent on capability flag in the ACT_REG_TBL.DATE_TIME_FIELD_FLAG (Table 21).

CUM_DEMAND

Value of the Cumulative Demand register.

CONT_CUM_DEMAND

Value of the Continuous Cumulative Demand register.

DEMAND

Array that contains the minimum or maximum values. The value in position zero (0) is the smallest minimum or largest maximum. In position one (1) is the second smallest minimum or the second largest maximum and so on until the end of the Array is reached.

DATA_BLK_RCD SUMMATIONS

Array that contains the values of the selected summation measurements.

DEMANDS

Array that contains the values of the selected min/max Demand measurements.

COINCIDENTS

Array that contains the values of the selected measurement coincident to the selected minimum/maximum Demands.

REGISTER_DATA_RCD NBR_DEMAND_RESETS

136

0..255

Number of Demand resets executed by the End Device.

TOT_DATA_BLOCK

Data block independent of Time-of-Use structures or other means of selection.

TIER_DATA_BLOCK

Data block dependent on Time-of-Use structures or other means of selection.

Decade 2: Register Tables / Table 23 Current Register Data Table

Tables

9.3.5

ANSI C12.19-2008

Table 24 Previous Season Data Table

Table 24 Data Description PREVIOUS_SEASON_DATA_TBL (Table 24) contains a snapshot of the current Register data taken at the last season change. Global Default Table Property Overrides: Role=“DATA”, Accessibility=“READONLY” Table 24 Type Definitions TYPE REGISTER_INFO_RCD = PACKED RECORD IF ACT_REGS_TBL.DATE_TIME_FIELD_FLAG THEN END_DATE_TIME : STIME_DATE; END; IF ACT_REGS_TBL.SEASON_INFO_FIELD_FLAG THEN SEASON : UINT8; END; END; TYPE PREVIOUS_SEASON_DATA_RCD = PACKED RECORD REGISTER_INFO : REGISTER_INFO_RCD; PREV_SEASON_REG_DATA : CURRENT_REG_DATA_TBL.REGISTER_DATA_RCD; END; TABLE 24 PREVIOUS_SEASON_DATA_TBL = PREVIOUS_SEASON_DATA_RCD; Table 24 Element Descriptions Identifier

Value

Definition

REGISTER_INFO_RCD END_DATE_TIME

End Eevice time when the snapshot of the current Register data occurred.

SEASON

Current season value when the snapshot of the current Register data occurred.

PREVIOUS_SEASON_DATA_RCD REGISTER_INFO

See REGISTER_INFO_RCD.

PREV_SEASON_REG_DATA

Snapshot of the CURRENT_DATA_REG_TBL (Table 23) stored at the time of the last season change. See CURRENT_DATA_REG_TBL (Table 23).

Decade 2: Register Tables / Table 24 Previous Season Data Table

137

ANSI C12.19-2008

9.3.6

Tables

Table 25 Previous Demand Reset Data Table

Table 25 Data Description PREVIOUS_DEMAND_RESET_DATA_TBL (Table 25) contains a snapshot of the current Register data taken at the time of the last Demand reset. Global Default Table Property Overrides: Role=“DATA”, Accessibility=“READONLY” Table 25 Type Definitions TYPE PREV_DEMAND_RESET_DATA_RCD = PACKED RECORD REGISTER_INFO : PREVIOUS_SEASON_DATA_TBL.REGISTER_INFO_RCD; PREV_DEMAND_RESET_DATA: CURRENT_REG_DATA_TBL.REGISTER_DATA_RCD; END; TABLE 25 PREVIOUS_DEMAND_RESET_DATA_TBL = PREV_DEMAND_RESET_DATA_RCD; Table 25 Element Descriptions Value

Identifier

Definition

PREV_DEMAND_RESET_DATA_RCD

138

REGISTER_INFO

Snapshot of Register information included with previous Demand reset register data.

PREV_DEMAND_RESET_DATA

Snapshot of the CURRENT_DATA_REG_TBL (Table 23) stored at the time of the last Demand reset.

Decade 2: Register Tables / Table 25 Previous Demand Reset Data Table

Tables

9.3.7

ANSI C12.19-2008

Table 26 Self-read Data Table

Table 26 Data Description SELF_READ_DATA_TBL (Table 26) contains Self-read data. Global Default Table Property Overrides: Role=“DATA”, Accessibility=“READONLY” Table 26 Type Definitions TYPE SELF_READ_DATA_RCD = PACKED RECORD IF ACT_REGS_TBL.SELF_READ_SEQ_NBR_FLAG THEN SELF_READ_SEQ_NBR : UINT16; END; REGISTER_INFO : PREVIOUS_SEASON_DATA_TBL.REGISTER_INFO_RCD; SELF_READ_REGISTER_DATA: CURRENT_REG_DATA_TBL.REGISTER_DATA_RCD; END; TYPE LIST_STATUS_BFLD = BIT FIELD OF UINT8 ORDER : UINT(0..0); OVERFLOW_FLAG : BOOL(1); LIST_TYPE : UINT(2..2); INHIBIT_OVERFLOW_FLAG : BOOL(3); FILLER : FILL(4..7); END; TYPE SELF_READ_LIST_RCD = PACKED RECORD LIST_STATUS : LIST_STATUS_BFLD; NBR_VALID_ENTRIES : UINT8; LAST_ENTRY_ELEMENT : UINT8; LAST_ENTRY_SEQ_NBR : UINT16; NBR_UNREAD_ENTRIES : UINT8; SELF_READS_ENTRIES : ARRAY[ACT_REGS_TBL.NBR_SELF_READS] OF SELF_READ_DATA_RCD; END; TABLE 26 SELF_READ_DATA_TBL = SELF_READ_LIST_RCD; Table 26 Element Descriptions Identifier

Value

Definition

SELF_READ_DATA_RCD SELF_READ_SEQ_NBR

0..65535

Sequence number assigned to the Self-read measurement. This number is set to zero (0) when the End Device is configured. This number is incremented with each Self-read occurrence.

REGISTER_INFO

Snapshot of Register data taken at the time of the Self-read.

Decade 2: Register Tables / Table 26 Self-read Data Table

139

ANSI C12.19-2008

Tables

SELF_READ_REGISTER_DATA

Snapshot of current Register data taken when requested by any means offered by the End Device.

LIST_STATUS_BFLD ORDER

Alias: ORDER_FLAG. Self-reads are transported in ascending order (N is older than N+1). Self-reads are transported in descending order (N is newer than N+1).

0 1 OVERFLOW_FLAG

FALSE TRUE

LIST_TYPE

Alias: LIST_TYPE_FLAG. FIFO (First In First Out), as placed in Self-read list. Circular list, as placed in Self-read list.

0 1 INHIBIT_OVERFLOW_FLAG

The same value as ACT_REG_TBL.SELF_READ_INHIBIT_OVER FLOW (Table 21).

SELF_READ_LIST_RCD LIST_STATUS

See LIST_STATUS_BFLD above.

NBR_VALID_ENTRIES

0..255

Number of valid Self-reads stored in the Selfreads Array. The range is zero (0), meaning no self-reads in the Array, to the actual dimension of the number of Self-reads.

LAST_ENTRY_ELEMENT

0..65535

Array element number of the newest valid entry in the Self-read Array. This field is valid only if NBR_VALID_ENTRIES is greater than zero (0).

LAST_ENTRY_SEQ_NBR

0..65535

Sequence number of the last element in the Self-read array.

NBR_UNREAD_ENTRIES

0..255

Number of Self-read entries that have not been read. This number shall only be updated by a procedure.

SELF_READS_ENTRIES

140

Overflow has not occurred. An attempt was made to enter a Self-read such that the number of unread Self-reads would have exceeded the actual number of possible entries in the log.

Array of snapshots of Register data taken at prescribed instance in time.

Decade 2: Register Tables / Table 26 Self-read Data Table

Tables

9.3.8

ANSI C12.19-2008

Table 27 Present Register Selection Table

Table 27 Data Description PRESENT_REGISTER_SELECT_TBL (Table 27) provides selections to sources of present demands and present values. These indices point towards array elements in SOURCES_TBL (Table 16) when Table 16 is present. The values selected are available in PRESENT_REGISTER_DATA_TBL (Table 28). Table 27 is used to select sources for Table 28, which is continually updated. Global Default Table Property Overrides: Role=“CONTROL” Table 27 Type Definitions TYPE PRESENT_REGISTER_SELECT_RCD = PACKED RECORD PRESENT_DEMAND_SELECT : ARRAY[ACT_REGS_TBL.NBR_PRESENT_DEMANDS] OF STD.SOURCE_SELECT_RCD; PRESENT_VALUE_SELECT : ARRAY[ACT_REGS_TBL.NBR_PRESENT_VALUES] OF STD.SOURCE_SELECT_RCD; END; TABLE 27 PRESENT_REGISTER_SELECT_TBL = PRESENT_REGISTER_SELECT_RCD; Table 27 Element Descriptions Identifier

Value

Definition

PRESENT_REGISTER_SELECT_RCD PRESENT_DEMAND_SELECT

Array that contains data source selectors for quantities used to measure present demand. The present demand values shall be reported at the same index position in PRESENT_REGISTER_DATA_TBL. PRESENT_DEMAND (Table 28).

PRESENT_VALUE_SELECT

Array that contains data source selectors for quantities used to measure present value. The present values shall be reported at the same index position in PRESENT_REGISTER_DATA_TBL.PRESENT _VALUES (Table 28).

Decade 2: Register Tables / Table 27 Present Register Selection Table

141

ANSI C12.19-2008

9.3.9

Tables

Table 28 Present Register Data Table

Table 28 Data Description PRESENT_REGISTER_DATA_TBL (Table 28) contains the present demand and values as selected by the PRESENT_REGISTER_SELECT_TBL (Table 27). Table 28 is continually updated. Global Default Table Property Overrides: Role=“DATA”, Accessibility=“READONLY” Table 28 Type Definitions TYPE PRESENT_DEMAND_RCD = PACKED RECORD IF ACT_REGS_TBL.TIME_REMAINING_FLAG THEN TIME_REMAINING : TIME; END; DEMAND_VALUE : NI_FMAT2; END; TYPE PRESENT_REGISTER_DATA_RCD = PACKED RECORD PRESENT_DEMAND : ARRAY[ACT_REGS_TBL.NBR_PRESENT_DEMANDS] OF PRESENT_DEMAND_RCD; PRESENT_VALUE : ARRAY[ACT_REGS_TBL.NBR_PRESENT_VALUES] OF NI_FMAT1; END; TABLE 28 PRESENT_REGISTER_DATA_TBL = PRESENT_REGISTER_DATA_RCD; Table 28 Element Descriptions Identifier

Value

Definition

PRESENT_DEMAND_RCD TIME_REMAINING

Time remaining to the end of the present demand interval.

DEMAND_VALUE

Present demand value.

PRESENT_REGISTER_DATA_RCD

142

PRESENT_DEMAND

Array that contains present demand selected by PRESENT_REGISTER_SELECT_TBL. PRESENT_DEMAND_SELECT (Table 27).

PRESENT_VALUE

Array that contains present value selected by PRESENT_REGISTER_SELECT_TBL. PRESENT_VALUE_SELECT (Table 27).

Decade 2: Register Tables / Table 28 Present Register Data Table

Tables

ANSI C12.19-2008

9.4 Decade 3: Local Display Tables Decade 3 Name LOCAL_DISPLAY_DEC This decade contains tables associated with the transport of information required to establish a local display. 9.4.1

Table 30 Display Dimension Limits Table

Table 30 Data Description DIM_DISP_TBL (Table 30) specifies the maximum dimensional values for local display operation in an End Device. The constants defined are used for setting the absolute maximum limits of display array sizes. Global Default Table Property Overrides: Role=“LIMITING”, Accessibility=“READONLY” Table 30 Type Definitions TYPE DISP_FLAG_BFLD = BIT FIELD OF UINT8 ON_TIME_FLAG : BOOL(0); OFF_TIME_FLAG : BOOL(1); HOLD_TIME_FLAG : BOOL(2); FILLER : FILL(3..7); END; TYPE DISP_RCD = PACKED RECORD DISPLAY_CTRL NBR_DISP_SOURCES WIDTH_DISP_SOURCES NBR_PRI_DISP_LIST_ITEMS NBR_PRI_DISP_LISTS NBR_SEC_DISP_LIST_ITEMS NBR_SEC_DISP_LISTS END;

: DISP_FLAG_BFLD; : UINT16; : UINT8; : UINT16; : UINT8; : UINT16; : UINT8;

TABLE 30 DIM_DISP_TBL = DISP_RCD; Table 30 Element Descriptions Identifier

Value

Definition

DISP_FLAG_BFLD ON_TIME_FLAG

FALSE

Programmable on time is not supported by the End Device. Programmable on time is supported by the End Device.

TRUE OFF_TIME_FLAG

FALSE TRUE

Programmable off time is not supported by the End Device. Programmable off time is supported by the End Device.

Decade 3: Local Display Tables / Table 30 Display Dimension Limits Table

143

ANSI C12.19-2008

Tables

HOLD_TIME_FLAG

FALSE TRUE

DISP_RCD DISPLAY_CTRL

Programmable hold time is not supported by the End Device. Programmable hold time is supported by the End Device. See DISP_FLAG_BFLD above.

NBR_DISP_SOURCES

0..65535

Maximum number of display sources. A number representing the maximum number of manufacturer-defined display sources, described in DISP_SOURCE_TBL (Table 32), and which may be used for the creation of display lists.

WIDTH_DISP_SOURCES

0..255

Maximum number of octets a manufacturer may use to define the row width of all entries in DISP_SOURCE_TBL (Table 32).

0..65535

Maximum number of primary display items per display list defined in PRI_DISP_LIST_TBL (Table 33). The maximum number of items in all primary display lists shall not exceed this value.

0..255

Maximum number of primary display lists defined in PRI_DISP_LIST_TBL (Table 33).

0..65535

Maximum number of secondary display items per display list defined in SEC_DISP_LIST_TBL (Table 34). The maximum number of items in all secondary display lists shall not exceed this value.

0..255

Maximum number of secondary display lists defined in SEC_DISP_LIST_TBL (Table 34).

NBR_PRI_DISP_LIST_ITEMS

NBR_PRI_DISP_LISTS NBR_SEC_DISP_LIST_ITEMS

NBR_SEC_DISP_LISTS

144

Decade 3: Local Display Tables / Table 30 Display Dimension Limits Table

Tables

9.4.2

ANSI C12.19-2008

Table 31 Actual Display Limiting Table

Table 31 Data Description ACT_DISP_TBL (Table 31) specifies the actual dimensional values for local display operation in an End Device. The dimensions defined are used for setting the actual limits of display array sizes. Global Default Table Property Overrides: Role=“ACTUAL” Table 31 Type Definitions TABLE 31 ACT_DISP_TBL = DISP_RCD; Table 31 Element Descriptions Value

Definition

ON_TIME_FLAG

FALSE TRUE

Redefines: DIM_DISP_TBL. DISP_FLAG_BFLD. On time is not programmable in the End Device. On time is programmable in the End Device.

OFF_TIME_FLAG

FALSE TRUE

Off time is not programmable in the End Device. Off time is programmable in the End Device.

HOLD_TIME_FLAG

FALSE

Hold time is not programmable in the End Device. Hold time is programmable in the End Device.

Identifier DISP_FLAG_BFLD

TRUE DISP_RCD DISPLAY_CTRL

Redefines: DIM_DISP_TBL. DISP_RCD. See DISP_FLAG_BFLD above.

NBR_DISP_SOURCES

0..65535

Actual number of display sources. A number representing the actual number of manufacturerdefined display sources, described in DISP_SOURCE_TBL (Table 32), and which should be used for the creation of display lists.

WIDTH_DISP_SOURCES

0..255

Actual number of octets a manufacturer uses to define the row width of all entries in DISP_SOURCE_TBL (Table 32).

0..65535

Actual number of primary display items per display list defined in PRI_DISP_LIST_TBL (Table 33). The total number of items in all primary display lists shall not exceed this value.

0..255

Actual number of primary display lists defined in PRI_DISP_LIST_TBL (Table 33).

0..65535

Actual number of secondary display items per display list defined in SEC_DISP_LIST_TBL

NBR_PRI_DISP_LIST_ITEMS

NBR_PRI_DISP_LISTS NBR_SEC_DISP_LIST_ITEMS

Decade 3: Local Display Tables / Table 31 Actual Display Limiting Table

145

ANSI C12.19-2008

Tables (Table 34). The total number of items in all secondary display lists shall not exceed this value.

NBR_SEC_DISP_LISTS

146

0..255

Actual number of secondary display lists defined in SEC_DISP_LIST_TBL (Table 34).

Decade 3: Local Display Tables / Table 31 Actual Display Limiting Table

Tables

9.4.3

ANSI C12.19-2008

Table 32 Display Source Table

Table 32 Data Description DISP_SOURCE_TBL (Table 32) manufacturer-defined display identifications and format characteristics. Although manufacturer specific, this table’s designation and dimensions (ACT_DISP_TBL.WIDTH_DISP_SOURCES by ACT_DISP_TBL.NBR_DISP_SOURCES) (Table 31), permit the protocol to deposit local display description information. The actual interpretation of each display entry is not defined by this standard. The entry offsets to individual items in this table are used in display scroll sequences entered in tables PRI_DISP_LIST_TBL (Table 33) and SEC_DISP_LIST_TBL (Table 34). Global Default Table Property Overrides: Role=“CONTROL” Table 32 Type Definitions TYPE DISP_SOURCE_DESC_RCD = PACKED RECORD DISPLAY_SOURCE : BINARY(ACT_DISP_TBL.WIDTH_DISP_SOURCES); END; TYPE DISPLAY_SOURCE_RCD = PACKED RECORD DISPLAY_SOURCES : ARRAY[ACT_DISP_TBL.NBR_DISP_SOURCES] OF DISP_SOURCE_DESC_RCD; END; TABLE 32 DISP_SOURCE_TBL = DISPLAY_SOURCE_RCD; Table 32 Element Descriptions Identifier DISP_SOURCE_DESC_RCD DISPLAY_SOURCE DISPLAY_SOURCE_RCD DISPLAY_SOURCES

Value

Definition Manufacturer-defined display description entry. Contains the manufacturer-defined description entries. Manufacturer-defined entries.

display

display

description

These entries make up the DISP_SOURCE_TBL (Table 32). Indices to these entries (starting with 0) are used in subsequent display scrolling sequences.

Decade 3: Local Display Tables / Table 32 Display Source Table

147

ANSI C12.19-2008

9.4.4

Tables

Table 33 Primary Display List Table

Table 33 Data Description PRI_DISP_LIST_TBL (Table 33) contains a list of operational parameters and references into the table, DISP_SOURCE_TBL, (Table 32) necessary for programming the primary display lists, timing, and scroll sequences. Global Default Table Property Overrides: Role=“CONTROL” Table 33 Type Definitions TYPE DISP_SCROLL1_BFLD = BIT FIELD OF UINT8 ON_TIME : UINT(0..3); OFF_TIME : UINT(4..7); END; TYPE DISP_SCROLL2_BFLD = BIT FIELD OF UINT8 HOLD_TIME : UINT(0..3); DEFAULT_LIST : UINT(4..7); END; TYPE DISP_LIST_DESC_RCD = PACKED RECORD DISP_SCROLL1 : DISP_SCROLL1_BFLD; DISP_SCROLL2 : DISP_SCROLL2_BFLD; NBR_LIST_ITEMS : UINT8; END; TYPE PRI_DISP_LIST_RCD = PACKED RECORD PRI_DISP_LIST : ARRAY[ACT_DISP_TBL.NBR_PRI_DISP_LISTS] OF DISP_LIST_DESC_RCD; PRI_DISP_SOURCES : ARRAY[ACT_DISP_TBL.NBR_PRI_DISP_LIST_ITEMS] OF UINT16; END; TABLE 33 PRI_DISP_LIST_TBL = PRI_DISP_LIST_RCD; Table 33 Element Descriptions Identifier

Value

Definition

DISP_SCROLL1_BFLD ON_TIME

0..15

The number of seconds each display item is displayed.

0..15

The number of seconds display is blank between display items. 0 = No deliberate OFF Time.

0..15

The number of minutes to wait before automatically restarting the normal display scroll after hold has been initiated.

OFF_TIME DISP_SCROLL2_BFLD HOLD_TIME

148

Decade 3: Local Display Tables / Table 33 Primary Display List Table

Tables

ANSI C12.19-2008

DEFAULT_LIST

Associates this display list with a standard display list type. The "normal" display list scrolling resumes after HOLD_TIME has expired. The following values are recognized: 0 1 2 3 4..15

DISP_LIST_DESC_RCD DISP_SCROLL1

This contains the ON_TIME and OFF_TIME values for the associated list.

DISP_SCROLL2 NBR_LIST_ITEMS

PRI_DISP_LIST_RCD PRI_DISP_LIST PRI_DISP_SOURCES

Display selectable via communication link only. Normal display. Alternate Display. Test Display. Reserved.

This contains the HOLD_TIME and DEFAULT_LIST values for the associated list. 0..255

Number of items in this display list. The total number of items (list entries) in all display lists of this table shall not exceed ACT_DISP_TBL.NBR_PRI_DISP_LIST_ITEM (Table 31). An array of list descriptor records. Ordered list of references to display items contained in DISP_SOURCE_TBL (Table 32). This list establishes the order of the primary display. This standard does not preclude additional items from popping up or being displayed out of sequence as a result of an End Device error condition or an End Device status report being generated.

Decade 3: Local Display Tables / Table 33 Primary Display List Table

149

ANSI C12.19-2008

9.4.5

Tables

Table 34 Secondary Display List Table

Table 34 Data Description SEC_DISP_LIST_TBL (Table 34) contains a list of operational parameters and references into the table, DISP_SOURCE_TBL, (Table 32) necessary for programming the secondary display lists, timing, and scroll sequences. Global Default Table Property Overrides: Role=“CONTROL” Table 34 Type Definitions TYPE SEC_DISP_LIST_RCD = PACKED RECORD SEC_DISP_LIST : ARRAY[ACT_DISP_TBL.NBR_SEC_DISP_LISTS] OF DISP_LIST_DESC_RCD; SEC_DISP_SOURCES : ARRAY[ACT_DISP_TBL.NBR_SEC_DISP_LIST_ITEMS] OF UINT16; END; TABLE 34 SEC_DISP_LIST_TBL = SEC_DISP_LIST_RCD; Table 34 Element Descriptions Identifier

Value

DISP_SCROLL1_BFLD ON_TIME

0..15

OFF_TIME

0..15

DISP_SCROLL2_BFLD HOLD_TIME

0..15

DEFAULT_LIST

150

Redfines: PRI_DISP_LIST_TBL.DISP_SCROLL1_BFLD. The number of seconds each display item is displayed. The number of seconds display is blank between display items. 0 = No deliberate OFF Time. Redfines: PRI_DISP_LIST_TBL.DISP_SCROLL2_BFLD. The number of minutes to wait before automatically restarting the normal display scroll after hold has been initiated. Associates this display list with a standard display list type. The "normal" display list scrolling resumes after HOLD_TIME has expired. The following values are recognized:

0 1 2 3 4..15 DISP_LIST_DESC_RCD

Definition

Display selectable via communication link only. Normal display. Alternate Display. Test Display. Reserved. Redfines: PRI_DISP_LIST_TBL.DISP_LIST_DESC_RCD.

Decade 3: Local Display Tables / Table 34 Secondary Display List Table

Tables

ANSI C12.19-2008

DISP_SCROLL1

This contains the ON_TIME and OFF_TIME values for the associated list.

DISP_SCROLL2

This contains the HOLD_TIME and DEFAULT_LIST values for the associated list.

NBR_LIST_ITEMS

SEC_DISP_LIST_RCD SEC_DISP_LIST SEC_DISP_SOURCES

0..255

Number of items in this display list. The total number of items (list entries) in all display lists of this table shall not exceed ACT_DISP_TBL.NBR_PRI_DISP_LIST_ITEM (Table 31). An array of list descriptor records. Ordered list of references to display items contained in DISP_SOURCE_TBL (Table 32). This list establishes the order of the secondary display. This standard does not preclude additional items from popping up or being displayed out of sequence as a result of an End Device error condition or an End Device status report being generated.

Decade 3: Local Display Tables / Table 34 Secondary Display List Table

151

ANSI C12.19-2008

Tables

9.5 Decade 4: Security Tables Decade 4 Name SECURITY_DEC The security tables provide holding areas for the placement of End Device passwords and Encryption/Authentication keys used to establish group access permissions. Access permissions are used to limit table read or write access and procedure execute permissions to groups of users based on the interpretation of the password and encryption/authentication fields. The exact means for granting access are not defined by this standard. 9.5.1

Table 40 Security Dimension Limits Table

Table 40 Data Description DIM_SECURITY_LIMITING_TBL (Table 40) defines the maximum number of passwords and security access level entries supported by the End Device. Global Default Table Property Overrides: Role=“LIMITING”, Accessibility=“READONLY” Table 40 Type Definitions TYPE SECURITY_RCD = PACKED RECORD NBR_PASSWORDS : UINT8; PASSWORD_LEN : UINT8; NBR_KEYS : UINT8; KEY_LEN : UINT8; NBR_PERM_USED : UINT16; END; TABLE 40 DIM_SECURITY_LIMITING_TBL = SECURITY_RCD; Table 40 Element Descriptions Identifier

Value

Definition

SECURITY_RCD NBR_PASSWORDS

0

Access levels cannot be established using the Standard password mechanism. Maximum number of passwords this End Device is capable of supporting.

1..255 PASSWORD_LEN

0 1..20 21..255

152

Reserved. Maximum length of passwords in octets this End Device is capable of supporting. Reserved.

NBR_KEYS

0..255

Maximum number of keys for authentication/encryption this End Device is capable of supporting.

KEY_LEN

0..255

Maximum length of keys in octets this End Device is capable of supporting.

Decade 4: Security Tables / Table 40 Security Dimension Limits Table

Tables

ANSI C12.19-2008

NBR_PERM_USED

0..65535

Maximum number of user-defined security access entries this End Device supports in addition to those defined through default access permissions.

Decade 4: Security Tables / Table 40 Security Dimension Limits Table

153

ANSI C12.19-2008

9.5.2

Tables

Table 41 Actual Security Limiting Table

Table 41 Data Description ACT_SECURITY_LIMITING_TBL (Table 41) defines the actual number of passwords and security access level entries supported by the End Device. Global Default Table Property Overrides: Role=“ACTUAL” Table 41 Type Definitions TABLE 41 ACT_SECURITY_LIMITING_TBL = SECURITY_RCD; Table 41 Element Descriptions Identifier

Value

SECURITY_RCD NBR_PASSWORDS

0 1..255

PASSWORD_LEN

0 1..20 21..255

154

Definition Redefines: DIM_SECURITY_LIMITING_TBL. SECURITY_RCD. Actual access levels are not established through the Standard password mechanism. Actual number of passwords used by this End Device. Reserved. Actual length of passwords in octets this End Device is supporting. Reserved.

NBR_KEYS

0..255

Actual number of keys this End Device is supporting.

KEY_LEN

0..255

Actual length of keys in octets this End Device is supporting.

NBR_PERM_USED

0..65535

Actual number of user-defined security access entries this End Device supports in addition to those defined through default access permissions.

Decade 4: Security Tables / Table 41 Actual Security Limiting Table

Tables

9.5.3

ANSI C12.19-2008

Table 42 Security Table

Table 42 Data Description SECURITY_TBL (Table 42) stores actual End Device passwords. It is used to associate passwords with read, write and procedure execute access permission bits. Any table or procedure whose access control bits match with respect to position at least one of the group access permissions bits, as defined in SECURITY_TBL (Table 42) for the supplied password, can become a candidate for data transfers. Notes: 1. Although it may be possible to read the security table, the values reported (read back) are not defined by this standard. 2. When access permissions are given to a procedure that accesses or modifies table data, then the invoker of that procedure shall in addition be required to have read or write access to the table that is read or modified. 3. When access permissions are given to a User-defined table, which accesses or modifies other tables, then the invoker of that User-defined table shall in addition be required to have read or write access to the tables indirectly read or written. Global Default Table Property Overrides: Role=“CONTROL”, Accessibility=“WRITEONLY” Table 42 Type Definitions TYPE ACCESS_PERMISSION_BFLD = BIT FIELD OF UINT8 GROUP_PERM_0_FLAG : BOOL(0); GROUP_PERM_1_FLAG : BOOL(1); GROUP_PERM_2_FLAG : BOOL(2); GROUP_PERM_3_FLAG : BOOL(3); GROUP_PERM_4_FLAG : BOOL(4); GROUP_PERM_5_FLAG : BOOL(5); GROUP_PERM_6_FLAG : BOOL(6); GROUP_PERM_7_FLAG : BOOL(7); END; TYPE SECURITY_ENTRY_RCD = PACKED RECORD PASSWORD : BINARY(ACT_SECURITY_LIMITING_TBL.PASSWORD_LEN); ACCESS_PERMISSIONS : ACCESS_PERMISSION_BFLD; END; TYPE SECURITY_RCD = PACKED RECORD SECURITY_ENTRIES : ARRAY[ACT_SECURITY_LIMITING_TBL.NBR_PASSWORDS] OF SECURITY_ENTRY_RCD; END; TABLE 42 SECURITY_TBL = SECURITY_RCD; Table 42 Element Descriptions Identifier

Value

Decade 4: Security Tables / Table 42 Security Table

Definition

155

ANSI C12.19-2008

ACCESS_PERMISSIONS_BFLD GROUP_PERM_0_FLAG

Tables

FALSE TRUE

GROUP_PERM_1_FLAG

FALSE TRUE

GROUP_PERM_2_FLAG

FALSE TRUE

GROUP_PERM_3_FLAG

FALSE TRUE

GROUP_PERM_4_FLAG

FALSE TRUE

GROUP_PERM_5_FLAG

FALSE TRUE

GROUP_PERM_6_FLAG

FALSE TRUE

GROUP_PERM_7_FLAG

FALSE TRUE

SECURITY_ENTRY_RCD PASSWORD ACCESS_PERMISSIONS SECURITY_RCD SECURITY_ENTRIES

156

Group 0 privileges are not granted by this password. Group 0 privileges are granted by this password. Group 1 privileges are not granted by this password. Group 1 privileges are granted by this password. Group 2 privileges are not granted by this password. Group 2 privileges are granted by this password. Group 3 privileges are not granted by this password. Group 3 privileges are granted by this password. Group 4 privileges are not granted by this password. Group 4 privileges are granted by this password. Group 5 privileges are not granted by this password. Group 5 privileges are granted by this password. Group 6 privileges are not granted by this password. Group 6 privileges are granted by this password. Group 7 privileges are not granted by this password. Group 7 privileges are granted by this password. Password to be matched and be associated with group access permission bits. Group access password.

permissions

bits

for

this

Array containing a list of security limiting parameters.

Decade 4: Security Tables / Table 42 Security Table

Tables

9.5.4

ANSI C12.19-2008

Table 43 Default Access Control Table

Table 43 Data Description DEFAULT_ACCESS_CONTROL_TBL (Table 43) is used to establish default table and procedure access permissions. These permissions are applied to any table that is not included in the ACCESS_CONTROL_TABLE (Table 44). Global Default Table Property Overrides: Role=“CONTROL” Table 43 Type Definitions TYPE DEFAULT_ACCESS_TABLE_DEF_BFLD = BIT FIELD OF UINT16 RESERVED : FILL(0..12); ANY_READ_FLAG : BOOL(13); ANY_WRITE_FLAG : BOOL(14); FILL2 : FILL(15..15); END; TYPE DEFAULT_ACCESS_CONTROL_RCD = PACKED RECORD ACCESS_TABLE_DEFAULT : DEFAULT_ACCESS_TABLE_DEF_BFLD; READ : SECURITY_TBL.ACCESS_PERMISSION_BFLD; WRITE : SECURITY_TBL.ACCESS_PERMISSION_BFLD; END; TYPE DEFAULT_ACCESS_RCD = PACKED RECORD TABLE_DEFAULT : DEFAULT_ACCESS_CONTROL_RCD; PROCEDURE_DEFAULT : DEFAULT_ACCESS_CONTROL_RCD; END; TABLE 43 DEFAULT_ACCESS_CONTROL_TBL = DEFAULT_ACCESS_RCD; Table 43 Element Descriptions Identifier

Value

DEFAULT_ACCESS_TABLE_DEF_BFLD RESERVED ANY_READ_FLAG

FALSE TRUE

ANY_WRITE_FLAG

FALSE TRUE

DEFAULT_ACCESS_CONTROL_ENTRY_RCD ACCESS_TABLE_DEF

Definition Reserved. Any unrecognized user does not have read access permission to any tables. Any unrecognized user has read access permission to any table not defined in ACCESS_CONTROL_TBL (Table 44). Any unrecognized user does not have write access permission to any tables. Any unrecognized user has write access permission to any table not defined in ACCESS_CONTROL_TBL (Table 44). Read and write access permissions unrecognized users as defined above.

Decade 4: Security Tables / Table 43 Default Access Control Table

for

157

ANSI C12.19-2008

READ

Group security access permission bits for users that have been recognized and request read access to tables that are not listed in the ACCESS_CONTROL_TBL (Table 44).

WRITE

Group security access permission bits for users that have been recognized and request write access to tables that are not listed in the ACCESS_CONTROL_TBL (Table 44).

DEFAULT_ACCESS_RCD TABLE_DEFAULT PROCEDURE_DEFAULT

158

Tables

Default access control for all tables, except the PROC_INITIATE_TBL (Table 07). Default access control for all procedures using PROC_INITIATE_TBL (Table 07).

Decade 4: Security Tables / Table 43 Default Access Control Table

Tables

9.5.5

ANSI C12.19-2008

Table 44 Access Control Table

Table 44 Data Description ACCESS_CONTROL_TBL (Table 44) establishes table and procedure access permissions on a tableby-table and a procedure-by-procedure basis for those not using the default access level. Global Default Table Property Overrides: Role=“CONTROL” Table 44 Type Definitions TYPE ACCESS_CONTROL_ENTRY_RCD = PACKED RECORD ACCESS_TABLE_DEF : TABLE_IDC_BFLD; READ : SECURITY_TBL.ACCESS_PERMISSION_BFLD; WRITE : SECURITY_TBL.ACCESS_PERMISSION_BFLD; END; TYPE ACCESS_CONTROL_RCD = PACKED RECORD ACCESS_CONTROL : ARRAY[ACT_SECURITY_LIMITING_TBL.NBR_PERM_USED] OF ACCESS_CONTROL_ENTRY_RCD; END; TABLE 44 ACCESS_CONTROL_TBL = ACCESS_CONTROL_RCD; Table 44 Element Descriptions Identifier

Value

Definition

TABLE_IDC_BFLD TBL_PROC_NBR

0..2039

Redefines: STD.TABLE_IDC_BFLD. Table or procedure number associated with this access permission entry.

FALSE TRUE

Alias: STD_VS_MFG_FLAG. Entry is a Standard table or Standard procedure. Entry is a manufacturer table or manufacturer procedure.

FALSE TRUE

Numeric ID is a table number. Numeric ID is a procedure number.

MFG_FLAG

PROC_FLAG

UNRESTRICTED_READ_FLAG FALSE

TRUE

UNRESTRICTED_WRITE_FLAG FALSE

Alias: FLAG1. Associated table or procedure requires read access control bits. Only approved group members may access the associated table or procedure. Associated table or procedure has unrestricted read access. Any user may read the associated table or procedure. Alias: FLAG2. Associated table or procedure requires write access control bits. Only approved group members may write to the associated table or execute the associated procedure.

Decade 4: Security Tables / Table 44 Access Control Table

159

ANSI C12.19-2008

Tables TRUE

FLAG3 ACCESS_CONTROL_ENTRY_RCD ACCESS_TABLE_DEF

Reserved. Table identification and public access control.

READ

Group read access control bits. See SECURITY_TBL. ACCESS_PERMISSION_BFLD (Table 42).

WRITE

Group write access control bits. See SECURITY_TBL. ACCESS_PERMISSION_BFLD (Table 42).

ACCESS_CONTROL_RCD ACCESS_CONTROL

160

Associated table or procedure has unrestricted write or execute permission. Any user may write into the associated table or execute the associated procedure.

Array containing access permission for specific table or procedure.

Decade 4: Security Tables / Table 44 Access Control Table

Tables

9.5.6

ANSI C12.19-2008

Table 45 Key Table

Table 45 Data Description KEY_TBL (Table 45) is a table established to contain authentication and/or encryption keys. Note: Although it may be possible to read the KEY_TBL (Table 45), the values reported (read back) are not defined by this standard. Global Default Table Property Overrides: Role=“CONTROL”, Accessibility=“WRITEONLY” Table 45 Type Definitions TYPE KEY_ENTRY_RCD = PACKED RECORD KEY : BINARY(ACT_SECURITY_LIMITING_TBL.KEY_LEN); END; TYPE KEY_RCD = PACKED RECORD KEY_ENTRIES : ARRAY[ACT_SECURITY_LIMITING_TBL.NBR_KEYS] OF KEY_ENTRY_RCD; END; TABLE 45 KEY_TBL = KEY_RCD; Table 45 Element Descriptions Identifier

Value

KEY_ENTRY_RCD KEY

KEY_RCD KEY_ENTRIES

Decade 4: Security Tables / Table 45 Key Table

Definition A key to be applied in the authentication and/or encryption processes. the use of the key is not defined by this standard. An array of keys used to establish authentication and/or encryption.

161

ANSI C12.19-2008

9.5.7

Table 46 Reserved

9.5.8

Table 47 Reserved

162

Tables

Decade 4: Security Tables / Table 46 Reserved

Tables

ANSI C12.19-2008

9.6 Decade 5: Time-of-Use Tables Decade 5 Name TIME_OF_USE_DEC The tables in this decade provide information related to the End Device date and time as well as the Time-of-use (TOU) scheduler and event trigger operations. The rules governing the transport of date, time and time stamp Elements within this Decade and their influence on the transport of Elements from other Decades are defined below. Date-time Elements representation during transport (HTIME_DATE, LTIME_DATE and STIME_DATE) When the End Device is programmed to transport time related information according to representation indicated by GEN_CONFIG_TBL.TM_FORMAT then HTIME_DATE, LTIME_DATE and STIME_DATE Elements can be represented as: • End Device operational time: Date and time the End Device has been set to operate. This time is used by the End Device for doing its normal operations such as: o Scheduling o Display o Triggers such as call back, load control, … • Standard time: date and time at the location where the End Device has been set to operate; without daylight saving time adjustment. • UTC time: Universal Time Coordinated, international time standard also known as Greenwich Mean Time (GMT). In general terms: • Standard time = UTC time + Time zone offset. • End Device operational time = Standard time + Daylight Saving Time offset. Knowledge about the representation used by an End Device is found in the Clock Table (Table 52), Clock State Table (Table 55) or Precision Clock State Table (Table 57), Elements DST_APPLIED_FLAG and TM_ZN_APPLIED_FLAG. When these Tables are present, all common Elements shall be identical in value. At least one of these Tables shall be present when a End Device supports time (as indicated by the Final Element GEN_CONFIG_TBL.TM_FORMAT). The relation between the time representation and the DST_APPLIED_FLAG and TM_ZN_APPLIED_FLAG Final Elements is as follows: Transported Time stamp End Device operational time Standard time UTC time

TM_ZN_APPLIED_FLAG True True False

DST_APPLIED_FLAG True False False

When implemented using TM_FORMAT=3 or TM_FORMAT=4, HTIME_DATE, LTIME_DATE and STIME_DATE Elements shall be transported in UTC, being the number of minutes (or seconds as per selected data type) since 01/01/1970 @ 00:00:00 UTC. This implies that when these implementations are used, DST_APPLIED_FLAG and TM_ZN_APPLIED_FLAG shall be set to FALSE; also ACT_TIME_TOU_TBL.CAP_TM_ZN_OFFSET_FLAG shall be set to TRUE. For a code example on how date and time Elements can be converted to a Gregorian calendar date, see ANNEX H, “Date-time Element Conversion Algorithm (TM_FORMAT=3 and TM_FORMAT=4)”. In all cases, and subject to the above conditions, the following algorithms can be used to convert transported date and time Elements to an End Device operational time or to UTC. The Elements DST_APPLIED_FLAG and TM_ZN_APPLIED_FLAG shall be retrieved from Clock Table (Table 52),

Decade 5: Time-of-Use Tables

163

ANSI C12.19-2008

Tables

Clock State Table (Table 55) or Precision Clock State Table (Table 57). In the following algorithms, it is assumed that Clock Table (Table 52) is being used. Algorithm for converting from transported End Device time to End Device operational time dateTimeField = HTIME_DATE, LTIME_DATE or STIME_DATE Element of interest if (CLOCK_TBL.TM_ZN_APPLIED_FLAG == false) dateTimeField = dateTimeField + TIME_OFFSET_TBL.TIME_ZONE_OFFSET if (dateTimeField within a Daylight Saving Time period and CLOCK_TBL.DST_APPLIED_FLAG == false) dateTimeField = dateTimeField + TIME_OFFSET_TBL.DST_TIME_AMT dateTimeField is the End Device operational time. Algorithm for converting from transported End Device time to UTC The following is only applicable when GMT_FLAG = TRUE in Clock table (Table 52). dateTimeField = HTIME_DATE, LTIME_DATE or STIME_DATE Element of interest if (CLOCK_TBL.TM_ZN_APPLIED_FLAG == true) dateTimeField = dateTimeField - TIME_OFFSET_TBL.TIME_ZONE_OFFSET if (dateTimeField within a Daylight Saving Time period and CLOCK_TBL.DST_APPLIED_FLAG == true) dateTimeField = dateTimeField - TIME_OFFSET_TBL.DST_TIME_AMT dateTimeField is in UTC Date-only and Time-only Element Representation for Transport RDATE, DATE, TIME, STIME and HTIME Elements within Tables shall always be transported in End Device operational time.

164

Decade 5: Time-of-Use Tables

Tables

9.6.1

ANSI C12.19-2008

Table 50 Time and TOU Dimension Limits Table

Table 50 Data Description DIM_TIME_TOU_TBL (Table 50) defines the maximum capabilities for Date and Time clock control and Time of Use (TOU) control for the End Device. Global Default Table Property Overrides: Role=“LIMITING”, Accessibility=“READONLY” Table 50 Type Definitions TYPE TIME_FUNC_FLAG1_BFLD = BIT FIELD OF UINT8 TOU_SELF_READ_FLAG : BOOL(0); SEASON_SELF_READ_FLAG : BOOL(1); SEASON_DEMAND_RESET_FLAG : BOOL(2); SEASON_CHNG_ARMED_FLAG : BOOL(3); SORT_DATES_FLAG : BOOL(4); ANCHOR_DATE_FLAG : BOOL(5); FILLER : FILL(6..7); END; TYPE TIME_FUNC_FLAG2_BFLD = BIT FIELD OF UINT8 CAP_DST_AUTO_FLAG : BOOL(0); SEPARATE_WEEKDAYS_FLAG : BOOL(1); SEPARATE_SUM_DEMANDS_FLAG : BOOL(2); SORT_TIER_SWITCHES_FLAG : BOOL(3); CAP_TM_ZN_OFFSET_FLAG : BOOL(4); FILLER : FILL(5..7); END; TYPE CALENDAR_BFLD = BIT FIELD OF UINT8 NBR_SEASONS : UINT(0..3); NBR_SPECIAL_SCHED : UINT(4..7); END; TYPE TIME_TOU_RCD = PACKED RECORD TIME_FUNC_FLAG1 : TIME_FUNC_FLAG1_BFLD; TIME_FUNC_FLAG2 : TIME_FUNC_FLAG2_BFLD; CALENDAR_FUNC : CALENDAR_BFLD; NBR_NON_RECURR_DATES : UINT8; NBR_RECURR_DATES : UINT8; NBR_TIER_SWITCHES : UINT16; CALENDAR_TBL_SIZE : UINT16; END; TABLE 50 DIM_TIME_TOU_TBL = TIME_TOU_RCD; Table 50 Element Descriptions Identifier

Value

Definition

TIME_FUNC_FLAG1_BFLD TOU_SELF_READ_FLAG

FALSE

End Device is not capable of TOU-triggered selfreads.

Decade 5: Time-of-Use Tables / Table 50 Time and TOU Dimension Limits Table

165

ANSI C12.19-2008

Tables TRUE

SEASON_SELF_READ_FLAG FALSE TRUE SEASON_DEMAND_RESET_FLAG FALSE TRUE SEASON_CHNG_ARMED_FLAG FALSE TRUE

SORT_DATES_FLAG

FALSE

TRUE

ANCHOR_DATE_FLAG

FALSE TRUE

TIME_FUNC_FLAG2_BFLD CAP_DST_AUTO_FLAG

FALSE TRUE

SEPARATE_WEEKDAYS_FLAG FALSE TRUE

End Device is capable of TOU-triggered selfreads. Self-read with season change capability does not exist. Self-read with season change capability exists. Automatic demand reset with season change capability does not exist. Automatic demand reset with season change capability exists. Season change arming capability does not exist. Season change arming capability exists. That is, the End Device is only armed to do a season change as a result of an indicated change of season. The actual season change does not occur until the next demand reset occurs (by manual or other means). End Device does not require the CALENDAR_TBL.NON_RECURR_DATES (Table 54) be presorted by date (Year, Month, Day) when received. End Device requires the CALENDAR_TBL.NON_RECURR_DATES (Table 54) be presorted by date (Year, Month, Day) when received. Non-recurring dates starting with 1990 and ending with 2089 shall occur in that order. No sorting of recurring dates, if present, is assumed. End Device is not capable of accepting an anchor date for the Period/Delta RDATE type (recurring date). End Device is capable of accepting an Anchor Date for the Period/Delta RDATE type (recurring date). End Device is not capable of handling daylight saving time changes independently of dates supplied by the CALENDAR_TBL (Table 54). End Device is capable of handling daylight saving time changes independently of dates supplied by the CALENDAR_TBL (Table 54). End Device is not capable of having a different schedule for each of the five weekdays. End Device is capable of having a different schedule for each of the five weekdays.

SEPARATE_SUM_DEMANDS_FLAG

166

Decade 5: Time-of-Use Tables / Table 50 Time and TOU Dimension Limits Table

Tables

ANSI C12.19-2008 FALSE TRUE SORT_TIER_SWITCHES_FLAG FALSE TRUE

CAP_TM_ZN_OFFSET_FLAG FALSE TRUE CALENDAR_BFLD NBR_SEASONS NBR_SPECIAL_SCHED

End Device is not capable of switching summation and demands independently. End Device is capable of switching summation and demands independently. End Device does not require that CALENDAR_TBL.TIER_SWITCHES (Table 54) be presorted. End Device requires that CALENDAR_TBL.TIER_SWITCHES (Table 54) be presorted. Reserved. TIME_ZONE_OFFSET is present in Time Offset Table (Table 53).

0..15

Maximum number of seasons supported by this End Device.

0..12

Maximum number of special supported by this End Device. Reserved.

13..15 TIME_TOU_RCD TIME_FUNC_FLAG1 TIME_FUNC_FLAG2 CALENDAR_FUNC

schedules

See TIME_FUNC_FLAG1_BFLD above. See TIME_FUNC_FLAG2_BFLD above. See CALENDAR_BFLD above.

NBR_NON_RECURR_DATES 0..255

Maximum number of non-recurring dates supported by the End Device calendar. Each entry allows the control of one or more events like demand reset, Self-read, daylight saving time, season change and special schedule.

NBR_RECURR_DATES

0..255

Maximum number of recurring dates supported by the End Device calendar. Each entry allows the definition of a recurring event like demand reset, Self-read, daylight saving time, season change and special schedule.

NBR_TIER_SWITCHES

0..65535

Maximum number of tier switches supported by the End Device calendar. This number comprises the total collection of tier switches for all day types in the CALENDAR_TBL. DAILY_SCHEDULE_ID_MATRIX (Table 54).

CALENDAR_TBL_SIZE

0..65535

Maximum octets of data transported by CALENDAR_TBL (Table 54). This includes recurring dates, non-recurring dates and tier switches. Anchor date is counted even if it is unused.

Decade 5: Time-of-Use Tables / Table 50 Time and TOU Dimension Limits Table

167

ANSI C12.19-2008

9.6.2

Tables

Table 51 Actual Time and TOU Limiting Table

Table 51 Data Description ACT_TIME_TOU_TBL (Table 51) defines the actual capabilities for Date and Time clock control limits as well as the Time of Use (TOU) control limits for the End Device. The data structure of this table is identical to DIM_TIME_TOU_TBL (Table 50). Global Default Table Property Overrides: Role=“ACTUAL” Table 51 Type Definitions TABLE 51 ACT_TIME_TOU_TBL = TIME_TOU_RCD; Table 51 Element Descriptions Value

Identifier TIME_FUNC_FLAG1_BFLD TOU_SELF_READ_FLAG

FALSE TRUE

SEASON_SELF_READ_FLAG FALSE TRUE SEASON_DEMAND_RESET_FLAG FALSE TRUE SEASON_CHNG_ARMED_FLAG FALSE TRUE

SORT_DATES_FLAG

FALSE

TRUE

168

Definition Redefines: DIM_TIME_TOU_TBL. TIME_FUNC_FLAG1_BFLD. End Device TOU-triggered self-read function is disabled. End Device TOU-triggered self-read function is enabled. Self-read with season change capability function is disabled. Self-read with season change capability function is enabled. Automatic demand function is disabled. Automatic demand function is enabled.

reset

season

change

reset

season

change

Season change arming function is disabled. Season change arming function is enabled. That is, the End Device is only armed to do a season change as a result of an indicated change of season. The actual season change does not occur until the next demand reset occurs (by manual or other means). End Device does not require the CALENDAR_TBL.NON_RECURR_DATES (Table 54) to be presorted by date (Year, Month, Day) when received. End Device requires the CALENDAR_TBL.NON_RECURR_DATES (Table 54) be presorted by date (Year, Month, Day) when received. Non-recurring dates starting with 1990 and ending with 2089 shall be

Decade 5: Time-of-Use Tables / Table 51 Actual Time and TOU Limiting Table

Tables

ANSI C12.19-2008 sorted in that order. No sorting of recurring dates, if present, is required. ANCHOR_DATE_FLAG

FALSE TRUE

TIME_FUNC_FLAG2_BFLD CAP_DST_AUTO_FLAG

FALSE TRUE

SEPARATE_WEEKDAYS_FLAG FALSE TRUE SEPARATE_SUM_DEMANDS_FLAG FALSE TRUE SORT_TIER_SWITCHES_FLAG FALSE TRUE

CAP_TM_ZN_OFFSET_FLAG FALSE TRUE CALENDAR_BFLD NBR_SEASONS

0..15

NBR_SPECIAL_SCHED

0..12 13..15

TIME_TOU_RCD TIME_FUNC_FLAG1 TIME_FUNC_FLAG2 CALENDAR_FUNC

End Device does not accept an anchor date for the Period/Delta RDATE type (recurring date). End Device accepts an anchor date for the Period/Delta RDATE type (recurring date). Redefines: DIM_TIME_TOU_TBL. TIME_FUNC_FLAG2_BFLD. End Device is not handling daylight saving time changes independently of dates supplied by the CALENDAR_TBL (Table 54). End Device is handling daylight saving time changes independently of dates supplied by the CALENDAR_TBL (Table 54). End Device is not using a different schedule for each of the five weekdays. End Device is using a different schedule for each of the five weekdays. End Device is not switching summation and demands independently. End Device is switching summation and demands independently. End Device does not require that CALENDAR_TBL.TIER_SWITCHES (Table 54) be presorted. End Device requires that CALENDAR_TBL.TIER_SWITCHES (Table 54) be presorted. Reserved. TIME_ZONE_OFFSET is present in Time Offset Table (Table 53). Redefines: DIM_TIME_TOU_TBL. CALENDAR_BFLD. Actual number of seasons in use by the End Device. Actual number of special schedules in use by the End Device. Reserved. Redefines: DIM_TIME_TOU_TBL. TIME_TOU_RCD. See TIME_FUNC_FLAG1_BFLD above. See TIME_FUNC_FLAG2_BFLD above. See CALENDAR_BFLD above.

Decade 5: Time-of-Use Tables / Table 51 Actual Time and TOU Limiting Table

169

ANSI C12.19-2008

170

Tables

NBR_NON_RECURR_DATES 0..255

Actual number of non-recurring dates in use by the End Device calendar. Each entry allows the control of one or more events like demand reset, Self-read, daylight saving time, season change and special schedule.

NBR_RECURR_DATES

0..255

Actual number of recurring dates in use by the End Device calendar. Each entry allows the definition of a recurring event like demand reset, Self-read, daylight saving time, season change and special schedule.

NBR_TIER_SWITCHES

0..65535

Actual number of tier switches in use by the End Device calendar. This number comprises the total collection of tier switches for all day types in the CALENDAR_TBL. DAILY_SCHEDULE_ID_MATRIX (Table 54).

CALENDAR_TBL_SIZE

0..65535

Actual octets of data transported by CALENDAR_TBL (Table 54). This includes the recurring dates, non-recurring dates and tier switches.

Decade 5: Time-of-Use Tables / Table 51 Actual Time and TOU Limiting Table

Tables

9.6.3

ANSI C12.19-2008

Table 52 Clock Table

Table 52 Data Description CLOCK_TBL (Table 52) provides the End Device real time clock information. This table provides a subset of the information available for reading from CLOCK_STATE_TBL (Table 55) or PRECISION_CLOCK_STATE_TBL (Table 57). Global Default Table Property Overrides: Atomic = “true”, Role=“DATA”, Accessibility=“READONLY” Table 52 Type Definitions TYPE TIME_DATE_QUAL_BFLD = BIT FIELD OF UINT8 DAY_OF_WEEK : UINT(0..2); DST_FLAG : BOOL(3); GMT_FLAG : BOOL(4); TM_ZN_APPLIED_FLAG : BOOL(5); DST_APPLIED_FLAG : BOOL(6); IF GEN_CONFIG_TBL.STD_VERSION_NO < 2 THEN FILLER : FILL(7..7); ELSE DST_SUPPORTED_FLAG : BOOL(7); END; END; TYPE CLOCK_STATE_RCD = PACKED RECORD CLOCK_CALENDAR : LTIME_DATE; TIME_DATE_QUAL : TIME_DATE_QUAL_BFLD; END; TABLE 52 CLOCK_TBL = CLOCK_STATE_RCD; Table 52 Element Descriptions Identifier

Value

TIME_DATE_QUAL_BFLD DAY_OF_WEEK 0 1 2 3 4 5 6 7 DST_FLAG

Decade 5: Time-of-Use Tables / Table 52 Clock Table

Definition Status qualifying the End Device time. Current day of the week. Sunday. Monday. Tuesday. Wednesday. Thursday. Friday. Saturday. DAY_OF_WEEK is undefined, this field is not supported by the End Device. Daylight saving time status. When DST_APPLIED_FLAG is false, there is no expectation that the state of this flag is meaningful. To determine if this flag tracks DST, see DST_SUPPORTED_FLAG.

171

ANSI C12.19-2008

Tables FALSE TRUE

GMT_FLAG

FALSE

TRUE TM_ZN_APPLIED_FLAG

FALSE TRUE DST_APPLIED_FLAG

FALSE TRUE

DST_SUPPORTED_FLAG

FALSE TRUE

CLOCK_STATE_RCD CLOCK_CALENDAR TIME_DATE_QUAL

172

End Device operational time is not in daylight saving time. End Device operational time is in daylight saving time. TIME_ZONE_OFFSET in Time Offset Table (Table 53) is not relative to GMT. The value of the TIME_ZONE_OFFSET reference is indeterminate. This value is not permitted when TM_FORMAT = 3 or TM_ FORMAT = 4. TIME_ZONE_OFFSET in Time Offset Table (Table 53) is relative to GMT. This flag and the following one (DST_APPLIED_FLAG) define the time representation (End Device operational time, Standard time or UTC time) used during the transport of date and time Elements. Time zone offset is not applied by the End Device to date and time Elements prior to transport. Time zone offset is applied by the End Device to date and time Elements prior to transport. Daylight saving adjustment is not applied by the End Device to date and time Elements prior to transport. Daylight saving adjustment is applied by the End Device to date and time Elements prior to transport. The End Device does not implement the DST_FLAG value. The DST_FLAG value shall be ignored. The End Device supports the DST_FLAG. The DST_FLAG returned is meaningful. Current End Device time. See DATE_TIME_QUAL_BFLD above.

Decade 5: Time-of-Use Tables / Table 52 Clock Table

Tables

9.6.4

ANSI C12.19-2008

Table 53 Time Offset Table

Table 53 Data Description TIME_OFFSET_TBL (Table 53) provides time zone offset and daylight saving time information for the End Device. Global Default Table Property Overrides: Role=“CONTROL” Table 53 Type Definitions TYPE TIME_OFFSET_RCD = PACKED RECORD DST_TIME_EFF : TIME; DST_TIME_AMT : UINT8; IF ACT_TIME_TOU_TBL.CAP_TM_ZN_OFFSET_FLAG THEN TIME_ZONE_OFFSET : INT16; END; IF GEN_CONFIG_TBL.STD_VERSION_NO > 1 THEN STD_TIME_EFF : TIME; END; END; TABLE 53 TIME_OFFSET_TBL = TIME_OFFSET_RCD; Table 53 Element Descriptions Identifier

Value

TIME_OFFSET_RCD DST_TIME_EFF

Definition The time of day the End Device shifts to daylight saving time from standard time. The date of occurrence is based on entries in the CALENDAR_TBL (Table 54) and the ACT_TIME_TOU_TBL. CAP_DST_AUTO_FLAG (Table 51) flag. This time represents the standard time just prior to the shift.

DST_TIME_AMT

0..255

TIME_ZONE_OFFSET

-32368..32767 Time zone offset is geographical displacement in minutes from GMT to the End Device standard time. It does not vary over the calendar year. It represents the number of ±1 minute segments relative to Greenwich Mean Time; negative number means west of Greenwich Mean Time.

STD_TIME_EFF

End Device daylight saving time adjustment specified in minutes.

The time of day the End Device shifts from daylight saving time to standard time. The date of occurrence is based on entries in the CALENDAR_TBL (Table 54) and the ACT_TIME_TOU_TBL.

Decade 5: Time-of-Use Tables / Table 53 Time Offset Table

173

ANSI C12.19-2008

Tables

CAP_DST_AUTO_FLAG (Table 51) flag. This time represents the daylight saving time just prior to the shift. 9.6.5

Table 54 Calendar Table

Table 54 Data Description CALENDAR_TBL (Table 54) is the schedule definition table for TOU metering activities. Global Default Table Property Overrides: Role=“CONTROL” Table 54 Type Definitions TYPE CALENDAR_ACTION_BFLD = BIT FIELD OF UINT8 CALENDAR_CTRL : UINT(0..4); DEMAND_RESET_FLAG : BOOL(5); SELF_READ_FLAG : BOOL(6); FILLER : FILL(7..7); END; TYPE RECURR_DATE_RCD = PACKED RECORD RECURR_DATE : RDATE; CALENDAR_ACTION : CALENDAR_ACTION_BFLD; END; TYPE NON_RECURR_DATE_RCD = PACKED RECORD NON_RECURR_DATE : DATE; CALENDAR_ACTION : CALENDAR_ACTION_BFLD; END; TYPE TIER_SWITCH_BFLD = BIT FIELD OF UINT16 NEW_TIER : UINT(0..2); IF ACT_TIME_TOU_TBL.SEPARATE_SUM_DEMANDS_FLAG THEN SUMMATION_SWITCH_FLAG : BOOL(3); DEMANDS_SWITCH_FLAG : BOOL(4); ELSE FILLER : FILL(3..4); END; SWITCH_MIN : UINT(5..10); SWITCH_HOUR : UINT(11..15); END; TYPE TIER_SWITCH_RCD = PACKED RECORD TIER_SWITCH : TIER_SWITCH_BFLD; DAY_SCH_NUM : UINT8; END; TYPE SCHEDULE_RCD = PACKED RECORD SUNDAY_SCHEDULE : UINT8; MONDAY_SCHEDULE : UINT8; TUESDAY_SCHEDULE : UINT8; WEDNESDAY_SCHEDULE : UINT8; THURSDAY_SCHEDULE : UINT8;

174

Decade 5: Time-of-Use Tables / Table 54 Calendar Table

Tables

ANSI C12.19-2008

FRIDAY_SCHEDULE SATURDAY_SCHEDULE SPECIAL_SCHEDULE

: UINT8; : UINT8; : ARRAY[ACT_TIME_TOU_TBL.NBR_SPECIAL_SCHED] OF UINT8;

END; TYPE WEEKDAYS_SCHEDULE_RCD = PACKED RECORD SATURDAY_SCHEDULE : UINT8; SUNDAY_SCHEDULE : UINT8; WEEKDAY_SCHEDULE : UINT8; SPECIAL_SCHEDULE : ARRAY[ACT_TIME_TOU_TBL.NBR_SPECIAL_SCHED] OF UINT8; END; TYPE CALENDAR_RCD = PACKED RECORD IF ACT_TIME_TOU_TBL.ANCHOR_DATE_FLAG THEN ANCHOR_DATE : DATE; END; NON_RECURR_DATES : ARRAY[ACT_TIME_TOU_TBL.NBR_NON_RECURR_DATES] OF NON_RECURR_DATE_RCD; RECURR_DATES : ARRAY[ACT_TIME_TOU_TBL.NBR_RECURR_DATES] OF RECURR_DATE_RCD; TIER_SWITCHES : ARRAY[ACT_TIME_TOU_TBL.NBR_TIER_SWITCHES] OF TIER_SWITCH_RCD; IF ACT_TIME_TOU_TBL.SEPARATE_WEEKDAYS_FLAG THEN DAILY_SCHEDULE_ID_MATRIX : ARRAY[ACT_TIME_TOU_TBL.NBR_SEASONS] OF SCHEDULE_RCD; ELSE DAILY_SCHEDULE_ID_MATRIX : ARRAY[ACT_TIME_TOU_TBL.NBR_SEASONS] OF WEEKDAYS_SCHEDULE_RCD; END; END; TABLE 54 CALENDAR_TBL = CALENDAR_RCD; Table 54 Element Descriptions Identifier CALENDAR_ACTION_BFLD CALENDAR_CTRL

Value

Definition Number specifying the calendar action that takes place on the date specified. Daylight Saving Time On/Off Daylight Saving Time On and Off actions causes a time adjustment to be made at TIME_OFFSET_TBL.DST_TIME_EFF (Table 53) time. If TIME_OFFSET_TBL (Table 53) is not supported, the time adjustment is made at 02:00 A.M. and the time adjustment equals one (1) hour.

Decade 5: Time-of-Use Tables / Table 54 Calendar Table

175

ANSI C12.19-2008

Tables

If ACT_TIME_TOU_TBL. CAP_DST_AUTO_FLAG (Table 51) = TRUE then Daylight Saving Time On/Off actions in this table are ignored. Season Changes If ACT_TIME_TOU_TBL. SEASON_CHNG_ARMED_FLAG (Table 51) = FALSE, a season change action causes a season change to occur at 00:00 A.M. hours on the date specified. If ACT_TIME_TOU_TBL. SEASON_CHNG_ARMED_FLAG (Table 51) = TRUE, a season change action "arms" a season change, but the season change will not occur until the next demand reset. If ACT_TIME_TOU_TBL. SEASON_DEMAND_RESET_FLAG (Table 51) = TRUE, a season change causes a demand reset to occur automatically. A Self-read of the current register data is saved in the SELF_READ_DATA_TBL (Table 26) if ACT_TIME_TOU_TBL. SEASON_SELF_READ_FLAG (Table 51) = TRUE when the season change occurs. If GEN_CONFIG_TBL.STD_TBLS_USED. PREVIOUS_SEASON_DATA_TBL (Table 00) = TRUE, a season change causes a copy of the current register data to be saved in the PREVIOUS_SEASON_DATA_TBL (Table 24). Special Schedules Special schedules are used for holidays or other special daily schedules. These schedules take effect at midnight (00:00 A.M.) and end 24 hours later (23:59 P.M.). The special schedule takes precedence over the normal day of week schedule. End of List End of List Action is to trigger a notification that the CALENDAR_TBL (Table 54) entries are approaching expiration. Notification is by history message, display, or other means provided by the device End Device. 0 1 2 3..17 18 19..30

176

No Action. Daylight Saving Time On. Daylight Saving Time Off. Select Season 0 through Season 14. Reserved. Select Special Schedule 0 through Special Schedule 11.

Decade 5: Time-of-Use Tables / Table 54 Calendar Table

Tables

ANSI C12.19-2008

DEMAND_RESET_FLAG

31

End Of List.

FALSE TRUE

Demand reset shall not occur. Demand reset shall occur at 00:00 A.M. on the date specified. If GEN_CONFIG_TBL.STD_TBLS_USED. PREVIOUS_DEMAND_RESET_DATA_TBL (Table 00) = TRUE, a Demand Reset causes data to be saved in PREVIOUS_DEMAND_RESET_DATA_TBL (Table 25). If ACT_REGS_TBL. SELF_READ_DEMAND_RESET_FLAG (Table 21) = 1 or 3, a Self-read shall occur in conjunction with the demand reset.

SELF_READ_FLAG

FALSE TRUE

Self-read shall not occur. Self-read shall occur at 00:00 A.M. on the date specified. If ACT_REGS_TBL. SELF_READ_DEMAND_RESET_FLAG (Table 21) = 2 or 3, a demand reset shall occur in conjunction with the Self-read.

RECURR_DATE_RCD RECURR_DATE

Date definition of a recurring event. The recurrence can be yearly, monthly, or weekly. The recurring event is referenced to midnight. Defined action that shall take place on this date. See CALENDAR_ACTION_BFLD above.

CALENDAR_ACTION NON_RECURR_DATE_RCD NON_RECURR_DATE

Non-recurring event date. Action shall occur at midnight. Defined action that shall take place on this date. See CALENDAR_ACTION_BFLD above.

CALENDAR_ACTION TIER_SWITCH_BFLD NEW_TIER

0..7

SUMMATION_SWITCH_FLAG

FALSE TRUE DEMANDS_SWITCH_FLAG

Identifies the tier number that becomes effective at the time specified in the tier switch on the daily schedule type defined by the DAILY_SCHEDULE_ID_MATRIX. Specifies whether or not this tier switch selects a new tier for summations. Only used when ACT_TIME_TOU_TBL. SEPARATE_SUM_DEMANDS_FLAG (Table 51) = TRUE. Tier switch is not specified for summations. Tier switch is specified for summations. Specifies whether or not this tier switch selects a new tier for demands. Only used when ACT_TIME_TOU_TBL.

Decade 5: Time-of-Use Tables / Table 54 Calendar Table

177

ANSI C12.19-2008

SWITCH_MIN SWITCH_HOUR

Tables

FALSE TRUE 0..59 60..63 0..23 24..31

TIER_SWITCH_RCD TIER_SWITCH DAY_SCH_NUM

0..255

SEPARATE_SUM_DEMANDS_FLAG (Table 51) = TRUE. Tier switch is not specified for demands. Tier switch is specified for demands. Minute when the tier switch occurs. Reserved. Hour when the tier switch occurs. Reserved. Defines a switch point for a certain day type defined by the DAILY_SCHEDULE_ID_MATRIX. Specifies the daily schedule type associated with the tier switch. All identifiers are stored in the DAILY_SCHEDULE_ID_MATRIX.

SCHEDULE_RCD SUNDAY_SCHEDULE

0..255

MONDAY_SCHEDULE

0..255

TUESDAY_SCHEDULE

0..255

WEDNESDAY_SCHEDULE

0..255

THURSDAY_SCHEDULE

0..255

FRIDAY_SCHEDULE SATURDAY_SCHEDULE

0..255 0..255

SPECIAL_SCHEDULE

Daily schedule selector programmed for Sunday. Daily schedule selector programmed for Monday. Daily schedule selector programmed for Tuesday. Daily schedule selector programmed for Wednesday. Daily schedule selector programmed for Thursday. Daily schedule selector programmed for Friday. Daily schedule selector programmed for Saturday. Array of special schedule selectors programmed.

WEEKDAYS_SCHEDULE_RCD SATURDAY_SCHEDULE

0..255

SUNDAY_SCHEDULE

0..255

WEEKDAY_SCHEDULE

0..255

SPECIAL_SCHEDULE CALENDAR_RCD ANCHOR_DATE

NON_RECURR_DATES

178

Daily schedule selector programmed for Saturday. Daily schedule selector programmed for Sunday. Daily schedule selector programmed for Monday to Friday. Array of special schedule selectors programmed. Anchor date is only used in conjunction with an RDATE type recurring date using the PERIOD/OFFSET mechanism. See Section 6.3.2, RDATE Type. If specified, any recurring date using the PERIOD/OFFSET type shall use this date as a starting date. Array containing non-recurring dates.

Decade 5: Time-of-Use Tables / Table 54 Calendar Table

Tables

ANSI C12.19-2008

RECURR_DATES

Array containing recurring dates.

TIER_SWITCHES

Array that contains the tier switches.

DAILY_SCHEDULE_ID_MATRIX

An array containing daily schedule selectors. The calendar choice of selector is used to tie tier switch entries (See TIER_SWITCH_RCD. DAY_SCH_NUM) to specific daily schedules. An example of a daily schedule is Special Schedule 1 in Season 2 or Saturday Day Type in Season 1. The assignment of selector values is left to the utility’s discretion. If ACT_TIME_TOU_TBL.SEPARATE_WEEKD AYS_FLAG = TRUE, the End Device is programmed with a different schedule for each of the five weekdays, Sunday, Saturday and the special schedules. See SCHEDULE_RCD. SPECIAL_SCHEDULE. If ACT_TIME_TOU_TBL.SEPARATE_WEEKDA YS_FLAG = FALSE, the End Device has a common schedule for all of the five weekdays, and separate schedules for Sunday, Saturday and the special schedules. See WEEKDAYS_SCHEDULE_RCD. SPECIAL_SCHEDULE.

Decade 5: Time-of-Use Tables / Table 54 Calendar Table

179

ANSI C12.19-2008

9.6.6

Tables

Table 55 Clock State Table

Table 55 Data Description CLOCK_STATE_TBL (Table 55) provides the End Device real time clock information that is accurate to the nearest second. For highest real-time clock precision reading see PRECISION_CLOCK_STATE_TBL (Table 57). Global Default Table Property Overrides: Atomic = “true”, Role=“DATA”, Accessibility=“READONLY” Table 55 Type Definitions TYPE STATUS_BFLD = BIT FIELD OF UINT16 IF ACT_TIME_TOU_TBL.SEPARATE_SUM_DEMANDS_FLAG THEN CURR_SUMM_TIER : UINT(0..2); CURR_DEMAND_TIER : UINT(3..5); ELSE CURR_TIER : UINT(0..2); FILLER : FILL(3..5); END; TIER_DRIVE : UINT(6..7); SPECIAL_SCHD_ACTIVE : UINT(8..11); SEASON : UINT(12..15); END; TYPE CLOCK_STATE_RCD = PACKED RECORD CLOCK_CALENDAR : LTIME_DATE; TIME_DATE_QUAL : CLOCK_TBL.TIME_DATE_QUAL_BFLD; STATUS : STATUS_BFLD; END; TABLE 55 CLOCK_STATE_TBL = CLOCK_STATE_RCD; Table 55 Element Descriptions Identifier

Value

STATUS_BFLD

180

Definition The status of the active TOU tier.

CURR_SUMM_TIER

0..7

Active tier corresponding to summations. This Element is only used when the capability flag ACT_TIME_TOU_TBL. SEPARATE_SUM_DEMANDS_FLAG (Table 51) = TRUE.

CURR_DEMAND_TIER

0..7

Active tier corresponding to demands. This Element is only used when the capability flag ACT_TIME_TOU_TBL. SEPARATE_SUM_DEMANDS_FLAG (Table 51) = TRUE.

CURR_TIER

0..7

Number representing the tier that is currently active in the End Device. This Element is only used when the capability flag

Decade 5: Time-of-Use Tables / Table 55 Clock State Table

Tables

ANSI C12.19-2008

ACT_TIME_TOU_TBL. SEPARATE_SUM_DEMANDS_FLAG 51) = FALSE. TIER_DRIVE

(Table

1..3

Tier drive source. Tier selection is controlled by CALENDAR_TBL.TIER_SWITCHES (Table 54). Tier selection is not controlled by this Standard.

SPECIAL_SCHD_ACTIVE

0..11 12..14 15

Active special schedule number. Reserved. No special schedule active.

SEASON

0..15

Number representing the season currently active in the End Device.

0

CLOCK_STATE_RCD CLOCK_CALENDAR

that

is

Current End Device date and time.

TIME_DATE_QUAL

See CLOCK_TBL.TIME_DATE_QUAL_BFLD.

STATUS

See STATUS_BFLD.

Decade 5: Time-of-Use Tables / Table 55 Clock State Table

181

ANSI C12.19-2008

9.6.7

Tables

Table 56 Time Remaining Table

Table 56 Data Description TIME_REMAIN_TBL (Table 56) provides predictive time quantities. Global Default Table Property Overrides: Atomic = “true”, Role=“DATA”, Accessibility=“READONLY” Table 56 Type Definitions TYPE TIME_REMAIN_RCD = PACKED RECORD IF ACT_TIME_TOU_TBL.SEPARATE_SUM_DEMANDS_FLAG THEN SUMM_TIER_TIME_REMAIN : UINT16; DEMAND_TIER_TIME_REMAIN : UINT16; ELSE TIER_TIME_REMAIN : UINT16; END; SELF_READ_DAYS_REMAIN : UINT8; END; TABLE 56 TIME_REMAIN_TBL = TIME_REMAIN_RCD; Table 56 Element Descriptions Identifier

Value

Definition

TIME_REMAIN_RCD SUMM_TIER_TIME_REMAIN

0..65535

Minutes remaining until the next tier change which affects summations. Used when the capability flag ACT_TIME_TOU_TBL. SEPARATE_SUM_DEMANDS_FLAG (Table 51) = TRUE.

DEMAND_TIER_TIME_REMAIN 0..65535

Minutes remaining before the next tier change which affects demands. Used when the capability flag ACT_TIME_TOU_TBL. SEPARATE_SUM_DEMANDS_FLAG (Table 51) = TRUE.

TIER_TIME_REMAIN

Minutes remaining before the next tier change.

0..65535

SELF_READ_DAYS_REMAIN 0..255 9.6.8

Days remaining before the next scheduled Selfread.

Table 57 Precision Clock State Table

Table 57 Data Description PRECISION_CLOCK_STATE_TBL (Table 57) provides the End Device real time clock information with increased time precision using the HTIME_DATE data type. It is identical to CLOCK_STATE_TBL (Table 55) except for the extra sub-second precision capability offered. Global Default Table Property Overrides: Atomic = “true”, Role=“DATA”, Accessibility=“READONLY”

182

Decade 5: Time-of-Use Tables / Table 56 Time Remaining Table

Tables

ANSI C12.19-2008

Table 57 Type Definitions TYPE CLOCK_STATE_RCD = PACKED RECORD CLOCK_CALENDAR : HTIME_DATE; TIME_DATE_QUAL : CLOCK_TBL.TIME_DATE_QUAL_BFLD; STATUS : CLOCK_STATE_TBL.STATUS_BFLD; END; TABLE 57 PRECISION_CLOCK_STATE_TBL = CLOCK_STATE_RCD; Table 57 Element Descriptions Identifier CLOCK_STATE_RCD CLOCK_CALENDAR

Value

Definition Current End Device high-precision date and time.

TIME_DATE_QUAL

See CLOCK_TBL.TIME_DATE_QUAL_BFLD.

STATUS

See CLOCK_STATE_TBL.STATUS_BFLD.

Decade 5: Time-of-Use Tables / Table 57 Precision Clock State Table

183

ANSI C12.19-2008

Tables

9.7 Decade 6: Load Profile Tables Decade 6 Name LOAD_PROFILE_DEC Decade 6 Data Description These Tables provide structures for Load Profile data. 9.7.1

Table 60 Load Profile Dimension Limits Table

Table 60 Data Description DIM_LP_TBL (Table 60) specifies the maximum dimensional values and control selectors and options for Load Profile data. This Decade provides for up to four independent sets of Load Profile data. Global Default Table Property Overrides: Role=“LIMITING”, Accessibility=“READONLY” Table 60 Type Definitions TYPE LP_FLAGS_BFLD = BIT FIELD OF UINT16 LP_SET1_INHIBIT_OVF_FLAG : BOOL(0); LP_SET2_INHIBIT_OVF_FLAG : BOOL(1); LP_SET3_INHIBIT_OVF_FLAG : BOOL(2); LP_SET4_INHIBIT_OVF_FLAG : BOOL(3); BLK_END_READ_FLAG : BOOL(4); BLK_END_PULSE_FLAG : BOOL(5); SCALAR_DIVISOR_FLAG_SET1 : BOOL(6); SCALAR_DIVISOR_FLAG_SET2 : BOOL(7); SCALAR_DIVISOR_FLAG_SET3 : BOOL(8); SCALAR_DIVISOR_FLAG_SET4 : BOOL(9); EXTENDED_INT_STATUS_FLAG : BOOL(10); SIMPLE_INT_STATUS_FLAG : BOOL(11); BLK_END_RD_INDICATOR_FLAG : BOOL(12); FILLER : FILL (13..15); END; TYPE LP_FMATS_BFLD = BIT FIELD OF UINT8 INV_UINT8_FLAG : BOOL(0); INV_UINT16_FLAG : BOOL(1); INV_UINT32_FLAG : BOOL(2); INV_INT8_FLAG : BOOL(3); INV_INT16_FLAG : BOOL(4); INV_INT32_FLAG : BOOL(5); INV_NI_FMAT1_FLAG : BOOL(6); INV_NI_FMAT2_FLAG : BOOL(7); END;

184

Decade 6: Load Profile Tables / Table 60 Load Profile Dimension Limits Table

Tables

ANSI C12.19-2008

TYPE LP_SET_RCD = PACKED RECORD LP_MEMORY_LEN : UINT32; LP_FLAGS : LP_FLAGS_BFLD; LP_FMATS : LP_FMATS_BFLD; IF GEN_CONFIG_TBL.STD_TBLS_USED[LP_DATA_SET1_TBL] THEN NBR_BLKS_SET1 NBR_BLK_INTS_SET1 NBR_CHNS_SET1 MAX_INT_TIME_SET1

: UINT16; : UINT16; : UINT8; : UINT8;

END; IF GEN_CONFIG_TBL.STD_TBLS_USED[LP_DATA_SET2_TBL] THEN NBR_BLKS_SET2 : UINT16; NBR_BLK_INTS_SET2 : UINT16; NBR_CHNS_SET2 : UINT8; MAX_INT_TIME_SET2 : UINT8; END; IF GEN_CONFIG_TBL.STD_TBLS_USED[LP_DATA_SET3_TBL] THEN NBR_BLKS_SET3 : UINT16; NBR_BLK_INTS_SET3 : UINT16; NBR_CHNS_SET3 : UINT8; MAX_INT_TIME_SET3 : UINT8; END; IF GEN_CONFIG_TBL.STD_TBLS_USED[LP_DATA_SET4_TBL] THEN NBR_BLKS_SET4 : UINT16; NBR_BLK_INTS_SET4 : UINT16; NBR_CHNS_SET4 : UINT8; MAX_INT_TIME_SET4 : UINT8; END; END; TABLE 60 DIM_LP_TBL = LP_SET_RCD; Table 60 Element Descriptions Identifier

Value

LP_FLAGS_BFLD

Definition This bit field specifies management capabilities.

LP_SET1_INHIBIT_OVF_FLAG FALSE TRUE LP_SET2_INHIBIT_OVF_FLAG FALSE TRUE LP_SET3_INHIBIT_OVF_FLAG FALSE

Load

Profile

list

End Device is not capable of inhibiting Load Profile set 1 once an overflow occurs. End Device is capable of inhibiting Load Profile set 1 once an overflow occurs. End Device is not capable of inhibiting Load Profile set 2 once an overflow occurs. End Device is capable of inhibiting Load Profile set 2 once an overflow occurs. End Device is not capable of inhibiting Load Profile set 3 once an overflow occurs.

Decade 6: Load Profile Tables / Table 60 Load Profile Dimension Limits Table

185

ANSI C12.19-2008

Tables TRUE

LP_SET4_INHIBIT_OVF_FLAG FALSE TRUE BLK_END_READ_FLAG

FALSE TRUE

BLK_END_PULSE_FLAG

FALSE TRUE

SCALAR_DIVISOR_FLAG_SET1 FALSE TRUE SCALAR_DIVISOR_FLAG_SET2 FALSE TRUE

SCALAR_DIVISOR_FLAG_SET3 FALSE TRUE

SCALAR_DIVISOR_FLAG_SET4 FALSE TRUE

EXTENDED_INT_STATUS_FLAG FALSE TRUE

186

End Device is capable of inhibiting Load Profile set 3 once an overflow occurs. End Device is not capable of inhibiting Load Profile set 4 once an overflow occurs. End Device is capable of inhibiting Load Profile set 4 once an overflow occurs. End Device is not capable of providing blockend Register reading information. The End Device is capable of providing blockend Register reading information. End Device is not capable of providing blockend pulse accumulator data. The End Device is capable of providing blockend pulse accumulator data. End Device is not capable of having scalars and divisors associated with set 1 Load Profile interval data. End Device is capable of having scalars and divisors associated with set 1 Load Profile interval data. End Device is not capable of having scalars and divisors associated with set 2 Load Profile interval data. End Device is capable of having scalars and divisors associated with set 2 Load Profile interval data. End Device is not capable of having scalars and divisors associated with set 3 Load Profile interval data. End Device is capable of having scalars and divisors associated with set 3 Load Profile interval data. End Device is not capable of having scalars and divisors associated with set 4 Load Profile interval data. End Device is capable of having scalars and divisors associated with set 4 Load Profile interval data. End Device is not capable of returning extended interval status with Load Profile interval data. End Device is capable of returning extended interval status with Load Profile interval data.

Decade 6: Load Profile Tables / Table 60 Load Profile Dimension Limits Table

Tables

ANSI C12.19-2008

SIMPLE_INT_STATUS_FLAG FALSE TRUE BLK_END_RD_INDICATOR_FLAG FALSE TRUE LP_FMATS_BFLD

INV_UINT8_FLAG

FALSE

FALSE TRUE

INV_UINT32_FLAG

FALSE TRUE

INV_INT8_FLAG

FALSE TRUE

INV_INT16_FLAG

FALSE TRUE

INV_INT32_FLAG

FALSE TRUE

INV_NI_FMAT1_FLAG

FALSE TRUE

INV_NI_FMAT2_FLAG

Block-end readings (END_READINGS) are cumulative across all blocks. Block-end readings (END_READINGS) are cumulative only across the associated block. This set of booleans specifies the format(s) acceptable for use in DIM_LP_TBL (Table 60) and ACT_LP_TBL (Table 61).

TRUE INV_UINT16_FLAG

End Device is not capable of returning simple interval status with Load Profile interval data. End Device is capable of returning simple interval status with Load Profile interval data.

FALSE TRUE

UINT8 format for intervals is not capable of being used. An interval format of UINT8 is capable of being used. UINT16 format for intervals is not capable of being used. An interval format of UINT16 is capable of being used. UINT32 format for intervals is not capable of being used. An interval format of UINT32 is capable of being used. INT8 format for intervals is not capable of being used. An interval format of INT8 is capable of being used. INT16 format for intervals is not capable of being used. An interval format of INT16 is capable of being used. INT32 format for intervals is not capable of being used. An interval format of INT32 is capable of being used. NI_FMAT1 format for intervals is not capable of being used. An interval format of NI_FMAT1 is capable of being used. NI_FMAT2 format for intervals is not capable of being used. An interval format of NI_FMAT2 is capable of being used.

Decade 6: Load Profile Tables / Table 60 Load Profile Dimension Limits Table

187

ANSI C12.19-2008

Tables

LP_SET_RCD

This record contains information defining how each set of Load Profile information works.

LP_MEMORY_LEN

0..4294967295 Maximum number of octets of storage available for Load Profile data. This reflects the combined sizes of tables LP_DATA_SET1_TBL (Table 64), LP_DATA_SET2_TBL (Table 65), LP_DATA_SET3_TBL (Table 66), and LP_DATA_SET4_TBL (Table 67).

188

LP_FLAGS

See LP_FLAGS_BFLD.

LP_FMATS

See LP_FMATS_BFLD.

NBR_BLKS_SET1

0..65535

Maximum number of blocks that can be contained in LP_DATA_SET1_TBL (Table 64).

NBR_BLK_INTS_SET1

0..65535

Maximum number of intervals per block that can be contained in LP_DATA_SET1_TBL (Table 64).

NBR_CHNS_SET1

0..255

Maximum number of channels of Load Profile data that can be contained in LP_DATA_SET1_TBL (Table 64).

MAX_INT_TIME_SET1

0..255

Maximum time in minutes for Load Profile interval duration that can be contained in LP_DATA_SET1_TBL (Table 64).

NBR_BLKS_SET2

0..65535

Maximum number of blocks that can be contained in LP_DATA_SET2_TBL (Table 65).

NBR_BLK_INTS_SET2

0..65535

Maximum number of intervals per block that can be contained in LP_DATA_SET2_TBL (Table 65).

NBR_CHNS_SET2

0..255

Maximum number of channels of Load Profile data that can be contained in LP_DATA_SET2_TBL (Table 65).

MAX_INT_TIME_SET2

0..255

Maximum time in minutes for Load Profile interval duration that can be contained in LP_DATA_SET2_TBL (Table 65).

NBR_BLKS_SET3

0..65535

Maximum number of blocks that can be contained in LP_DATA_SET3_TBL (Table 66).

NBR_BLK_INTS_SET3

0..65535

Maximum number of intervals per block that can be contained in LP_DATA_SET3_TBL (Table 66).

NBR_CHNS_SET3

0..255

Maximum number of channels of Load Profile data that can be contained in LP_DATA_SET3_TBL (Table 66).

Decade 6: Load Profile Tables / Table 60 Load Profile Dimension Limits Table

Tables

ANSI C12.19-2008

MAX_INT_TIME_SET3

0..255

Maximum time in minutes for Load Profile interval duration that can be contained in LP_DATA_SET3_TBL (Table 66).

NBR_BLKS_SET4

0..65535

Maximum number of blocks that can be contained in LP_DATA_SET4_TBL (Table 67).

NBR_BLK_INTS_SET4

0..65535

Maximum number of intervals per block that can be contained in LP_DATA_SET4_TBL (Table 67).

NBR_CHNS_SET4

0..255

Maximum number of channels of Load Profile data that can be contained in LP_DATA_SET4_TBL (Table 67).

MAX_INT_TIME_SET4

0..255

Maximum time in minutes for Load Profile interval duration that can be contained in LP_DATA_SET4_TBL (Table 67).

Decade 6: Load Profile Tables / Table 60 Load Profile Dimension Limits Table

189

ANSI C12.19-2008

9.7.2

Tables

Table 61 Actual Load Profile Limiting Table

Table 61 Data Description ACT_LP_TBL (Table 61) contains actual dimensions for Load Profile data. This Decade provides for up to four independent sets of Load Profile data. Global Default Table Property Overrides: Role=“ACTUAL” Table 61 Type Definitions TABLE 61 ACT_LP_TBL = LP_SET_RCD; Table 61 Element Descriptions Value

Identifier LP_FLAGS_BFLD

Redefines: DIM_LP_TBL.LP_FLAGS_BFLD. This bit field specifies Load Profile list management capabilities.

LP_SET1_INHIBIT_OVF_FLAG FALSE TRUE LP_SET2_INHIBIT_OVF_FLAG FALSE TRUE LP_SET3_INHIBIT_OVF_FLAG FALSE TRUE LP_SET4_INHIBIT_OVF_FLAG FALSE TRUE BLK_END_READ_FLAG

FALSE TRUE

190

Definition

End Device is not inhibiting Load Profile set 1 once an overflow occurs. End Device is inhibiting Load Profile set 1 once an overflow occurs. End Device is not inhibiting Load Profile set 2 once an overflow occurs. End Device is inhibiting Load Profile set 2 once an overflow occurs. End Device is not inhibiting Load Profile set 3 once an overflow occurs. End Device is inhibiting Load Profile set 3 once an overflow occurs. End Device is not inhibiting Load Profile set 4 once an overflow occurs. End Device is inhibiting Load Profile set 4 once an overflow occurs. End Device is not providing block-end register reading information. End Device is providing block-end register reading information. Although it is possible for BLK_END_READ_FLAG and BLK_END_PULSE_FLAG to both be set to TRUE, this combination shall not be used.

Decade 6: Load Profile Tables / Table 61 Actual Load Profile Limiting Table

Tables

ANSI C12.19-2008

BLK_END_PULSE_FLAG

FALSE TRUE

SCALAR_DIVISOR_FLAG_SET1 FALSE TRUE SCALAR_DIVISOR_FLAG_SET2 FALSE TRUE SCALAR_DIVISOR_FLAG_SET3 FALSE TRUE SCALAR_DIVISOR_FLAG_SET4 FALSE TRUE EXTENDED_INT_STATUS_FLAG FALSE TRUE SIMPLE_INT_STATUS_FLAG FALSE TRUE BLK_END_RD_INDICATOR_FLAG

FALSE TRUE LP_FMATS_BFLD

End Device does not have block-end pulse accumulator data. End Device has block-end pulse accumulator data. Although it is possible for BLK_END_READ_FLAG and BLK_END_PULSE_FLAG to both be set to TRUE, this combination shall not be used. End Device does not have scalars and divisors associated with set 1 Load Profile interval data. End Device does have scalars and divisors associated with set 1 Load Profile interval data. End Device does not have scalars and divisors associated with set 2 Load Profile interval data. The End Device has scalars and divisors associated with set 2 Load Profile interval data. End Device does not have scalars and divisors associated with set 3 Load Profile interval data. End Device does have scalars and divisors associated with set 3 Load Profile interval data. End Device does not have scalars and divisors associated with set 4 Load Profile interval data. End Device does have scalars and divisors associated with set 4 Load Profile interval data. End Device does not return extended interval status with Load Profile interval data. End Device returns extended interval status with Load Profile interval data. End Device does not return simple interval status with Load Profile interval data. End Device returns simple interval status with Load Profile interval data. The end block reading flag. When DIM_LP_TBL (Table 60) and ACT_LP_TBL (Table 61) are both present then they shall have identical values for BLK_END_RD_INDICATOR_FLAG. Block-end readings (END_READINGS) are cumulative across all blocks. Block-end readings (END_READINGS) are only across the associated block. Redefines: DIM_LP_TBL.LP_FMATS_BFLD. This set of Booleans specifies the format(s) in use in LP_CTRL_TBL (Table 62).

Decade 6: Load Profile Tables / Table 61 Actual Load Profile Limiting Table

191

ANSI C12.19-2008

Tables

INV_UINT8_FLAG

FALSE TRUE

UINT8 format is not in use. An interval format of UINT8 is being used.

INV_UINT16_FLAG

FALSE TRUE

UINT16 format is not in use. An interval format of UINT16 is being used.

INV_UINT32_FLAG

FALSE TRUE

UINT32 format is not in use. An interval format of UINT32 can be used.

INV_INT8_FLAG

FALSE TRUE

INT8 format is not in use. An interval format of INT8 is being used.

INV_INT16_FLAG

FALSE TRUE

INT16 format is not in use. An interval format of INT16 is being used.

INV_INT32_FLAG

FALSE TRUE

INT32 format is not in use. An interval format of INT32 is being used.

INV_NI_FMAT1_FLAG

FALSE TRUE

NI_FMAT1 format is not in use. An interval format of NI_FMAT1 is being used.

INV_NI_FMAT2_FLAG

FALSE TRUE

NI_FMAT2 format is not in use. An interval format of NI_FMAT2 is being used.

LP_SET_RCD

Redefines: DIM_LP_TBL.LP_SET_RCD. This record contains information defining each set of Load Profile information.

LP_MEMORY_LEN

0..4294967295 Current number of octets of storage being used for Load Profile data. This reflects the combined sizes of LP_DATA_SET1_TBL (Table 64), LP_DATA_SET2_TBL (Table 65), LP_DATA_SET3_TBL (Table 66), and LP_DATA_SET4_TBL (Table 67).

192

LP_FLAGS

See LP_FLAGS_BFLD.

LP_FMATS

See LP_FMATS_BFLD.

NBR_BLKS_SET1

0..65535

Actual number of blocks in LP_DATA_SET1_TBL (Table 64).

use

NBR_BLK_INTS_SET1

0..65535

Actual number of intervals per block contained in LP_DATA_SET1_TBL (Table 64).

NBR_CHNS_SET1

0..255

Actual number of channels of Load Profile data contained in LP_DATA_SET1_TBL (Table 64).

MAX_INT_TIME_SET1

0..255

Actual interval duration in minutes for Load Profile contained in LP_DATA_SET1_TBL (Table 64).

NBR_BLKS_SET2

0..65535

Actual number of blocks in LP_DATA_SET2_TBL (Table 65).

use

in

in

Decade 6: Load Profile Tables / Table 61 Actual Load Profile Limiting Table

Tables

ANSI C12.19-2008

NBR_BLK_INTS_SET2

0..65535

Actual number of intervals per block contained in LP_DATA_SET2_TBL (Table 65).

NBR_CHNS_SET2

0..255

Actual number of channels of Load Profile data contained in LP_DATA_SET2_TBL (Table 65).

MAX_INT_TIME_SET2

0..255

Actual interval duration in minutes for Load Profile contained in LP_DATA_SET2_TBL (Table 65).

NBR_BLKS_SET3

0..65535

Actual number of blocks in LP_DATA_SET3_TBL (Table 66).

NBR_BLK_INTS_SET3

0..65535

Actual number of intervals per block contained in LP_DATA_SET3_TBL (Table 66).

NBR_CHNS_SET3

0..255

Actual number of channels of Load Profile data contained in LP_DATA_SET3_TBL (Table 66).

MAX_INT_TIME_SET3

0..255

Actual interval duration in minutes for Load Profile contained in LP_DATA_SET3_TBL (Table 66).

NBR_BLKS_SET4

0..65535

Actual number of blocks in LP_DATA_SET4_TBL (Table 67).

NBR_BLK_INTS_SET4

0..65535

Actual number of intervals per block contained in LP_DATA_SET4_TBL (Table 67).

NBR_CHNS_SET4

0..255

Actual number of channels of Load Profile data contained in LP_DATA_SET4_TBL (Table 67).

MAX_INT_TIME_SET4

0..255

Actual interval duration in minutes for Load Profile contained in LP_DATA_SET4_TBL (Table 67).

Decade 6: Load Profile Tables / Table 61 Actual Load Profile Limiting Table

use

use

in

in

193

ANSI C12.19-2008

9.7.3

Tables

Table 62 Load Profile Control Table

Table 62 Data Description LP_CTRL_TBL (Table 62) defines the data sources and formats used in the collection of Load Profile data. Global Default Table Property Overrides: Role=“CONTROL” Table 62 Type Definitions TYPE LP_CTRL_FLAGS_BFLD = BIT FIELD OF UINT8 END_RDG_FLAG : BOOL(0); FILLER : FILL(1..7); END; TYPE LP_SOURCE_SEL_RCD = PACKED RECORD CHNL_FLAG : LP_CTRL_FLAGS_BFLD; LP_SOURCE_SELECT : STD.SOURCE_SELECT_RCD; END_BLK_RDG_SOURCE_SELECT : STD.SOURCE_SELECT_RCD; END; {Enumerator INT_FMT_ENUM} TYPE DATA_SELECTION_RCD = PACKED RECORD IF GEN_CONFIG_TBL.STD_TBLS_USED[LP_DATA_SET1_TBL] THEN LP_SEL_SET1 : ARRAY[ACT_LP_TBL.NBR_CHNS_SET1] OF LP_SOURCE_SEL_RCD; INT_FMT_CDE1 : UINT8; IF ACT_LP_TBL.SCALAR_DIVISOR_FLAG_SET1 THEN SCALARS_SET1 : ARRAY[ACT_LP_TBL.NBR_CHNS_SET1] OF UINT16; DIVISOR_SET1: ARRAY[ACT_LP_TBL.NBR_CHNS_SET1] OF UINT16; END; END; IF GEN_CONFIG_TBL.STD_TBLS_USED[LP_DATA_SET2_TBL] THEN LP_SEL_SET2 : ARRAY[ACT_LP_TBL.NBR_CHNS_SET2] OF LP_SOURCE_SEL_RCD; INT_FMT_CDE2 : UINT8; IF ACT_LP_TBL.SCALAR_DIVISOR_FLAG_SET2 THEN SCALARS_SET2 : ARRAY[ACT_LP_TBL.NBR_CHNS_SET2] OF UINT16; DIVISOR_SET2: ARRAY[ACT_LP_TBL.NBR_CHNS_SET2] OF UINT16; END; END; IF GEN_CONFIG_TBL.STD_TBLS_USED[LP_DATA_SET3_TBL] THEN LP_SEL_SET3 : ARRAY[ACT_LP_TBL.NBR_CHNS_SET3] OF LP_SOURCE_SEL_RCD; INT_FMT_CDE3 : UINT8; IF ACT_LP_TBL.SCALAR_DIVISOR_FLAG_SET3 THEN SCALARS_SET3 : ARRAY[ACT_LP_TBL.NBR_CHNS_SET3] OF UINT16; DIVISOR_SET3: ARRAY[ACT_LP_TBL.NBR_CHNS_SET3] OF UINT16; END; 194

Decade 6: Load Profile Tables / Table 62 Load Profile Control Table

Tables

ANSI C12.19-2008

END; IF GEN_CONFIG_TBL.STD_TBLS_USED[LP_DATA_SET4_TBL] THEN LP_SEL_SET4 : ARRAY[ACT_LP_TBL.NBR_CHNS_SET4] OF LP_SOURCE_SEL_RCD; INT_FMT_CDE4 : UINT8; IF ACT_LP_TBL.SCALAR_DIVISOR_FLAG_SET4 THEN SCALARS_SET4 : ARRAY[ACT_LP_TBL.NBR_CHNS_SET4] OF UINT16; DIVISOR_SET4: ARRAY[ACT_LP_TBL.NBR_CHNS_SET4] OF UINT16; END; END; END; TABLE 62 LP_CTRL_TBL = DATA_SELECTION_RCD; Table 62 Element Descriptions Identifier

Value

Definition

FALSE

Channel does not have an associated end reading. Channel does have an associated end reading.

LP_CTRL_FLAGS_BFLD END_RDG_FLAG

TRUE LP_SOURCE_SEL_RCD CHNL_FLAG

Flags associated with a particular channel.

LP_SOURCE_SELECT

Data source selector of the interval data for a specific channel.

END_BLK_RDG_SOURCE_SELECT

Data source selector of the block end reading for a specific channel.

INT_FMT_ENUM 1 2 4 8 16 32 64 128

Code identifying the format of interval data. UINT8 UINT16 UINT32 INT8 INT16 INT32 NI_FMAT1 NI_FMAT2 All other code values are Reserved.

DATA_SELECTION_RCD LP_SEL_SET1

This record stores all information concerning each of the selected channels. Array of records that identifies sources of data for each channel of interval data in LP_DATA_SET1_TBL (Table 64).

Decade 6: Load Profile Tables / Table 62 Load Profile Control Table

195

ANSI C12.19-2008

196

Tables

INT_FMT_CDE1

Single code selecting the format for all interval data in LP_DATA_SET1_TBL (Table 64). See INT_FMT_ENUM.

SCALARS_SET1

Array of scalars applied to interval data before recording pulse data in Load Profile set 1.

DIVISORS_SET1

Array of divisors applied to interval data before recording pulse data in Load Profile set 1.

LP_SEL_SET2

An array of records that identifies sources of data for each channel of interval data in LP_DATA_SET2_TBL (Table 65).

INT_FMT_CDE2

Single code selecting the format for all interval data in LP_DATA_SET2_TBL (Table 65). See INT_FMT_ENUM.

SCALARS_SET2

Array of scalars applied to interval data before recording pulse data in Load Profile set 2.

DIVISORS_SET2

Array of divisors applied to interval data before recording pulse data in Load Profile set 2.

LP_SEL_SET3

Array of records that identifies sources of data for each channel of interval data in LP_DATA_SET3_TBL (Table 66).

INT_FMT_CDE3

Single code selecting the format for all interval data in LP_DATA_SET3_TBL (Table 66). See INT_FMT_ENUM.

SCALARS_SET3

Array of scalars applied to interval data before recording pulse data in Load Profile set 3.

DIVISORS_SET3

Array of divisors applied to interval data before recording pulse data in Load Profile set 3.

LP_SEL_SET4

Array of records that identifies sources of data for each channel of interval data in LP_DATA_SET4_TBL (Table 67).

INT_FMT_CDE4

Single code selecting the format for all interval data in LP_DATA_SET4_TBL (Table 67). See INT_FMT_ENUM.

SCALARS_SET4

Array of scalars applied to interval data before recording pulse data in Load Profile set 4.

DIVISORS_SET4

Array of divisors applied to interval data before recording pulse data in Load Profile set 4.

Decade 6: Load Profile Tables / Table 62 Load Profile Control Table

Tables

9.7.4

ANSI C12.19-2008

Table 63 Load Profile Status Table

Table 63 Data Description LP_STATUS_TBL (Table 63) contains the status of each Load Profile data set. Global Default Table Property Overrides: Role=“DATA”, Accessibility=“READONLY” Table 63 Type Definitions TYPE LP_SET_STATUS_BFLD = BIT FIELD OF UINT8 ORDER : UINT(0..0); OVERFLOW_FLAG : BOOL(1); LIST_TYPE : UINT(2..2); BLOCK_INHIBIT_OVERFLOW_FLAG : BOOL(3); INTERVAL_ORDER : UINT(4..4); ACTIVE_MODE_FLAG : BOOL(5); TEST_MODE : UINT(6..6); FILLER : FILL(7..7); END; TYPE LP_SET_STATUS_RCD = PACKED RECORD LP_SET_STATUS_FLAGS : LP_SET_STATUS_BFLD; NBR_VALID_BLOCKS : UINT16; LAST_BLOCK_ELEMENT : UINT16; LAST_BLOCK_SEQ_NBR : UINT32; NBR_UNREAD_BLOCKS : UINT16; NBR_VALID_INT : UINT16; END; TYPE LP_STATUS_RCD = PACKED RECORD IF GEN_CONFIG_TBL.STD_TBLS_USED[LP_DATA_SET1_TBL] THEN LP_STATUS_SET1 : LP_SET_STATUS_RCD; END; IF GEN_CONFIG_TBL.STD_TBLS_USED[LP_DATA_SET2_TBL] THEN LP_STATUS_SET2 : LP_SET_STATUS_RCD; END; IF GEN_CONFIG_TBL.STD_TBLS_USED[LP_DATA_SET3_TBL] THEN LP_STATUS_SET3 : LP_SET_STATUS_RCD; END; IF GEN_CONFIG_TBL.STD_TBLS_USED[LP_DATA_SET4_TBL] THEN LP_STATUS_SET4 : LP_SET_STATUS_RCD; END; END; TABLE 63 LP_STATUS_TBL = LP_STATUS_RCD;

Decade 6: Load Profile Tables / Table 63 Load Profile Status Table

197

ANSI C12.19-2008

Tables

Table 63 Element Descriptions Identifier

Value

Definition

LP_SET_STATUS_BFLD ORDER 0 1 OVERFLOW_FLAG

FALSE TRUE

LIST_TYPE 0 1

Overflow has not occurred. An attempt was made to enter an interval in a new data block such that the number of unread blocks exceeded the actual number of possible blocks in Load Profile storage. Alias: LIST_TYPE_FLAG. FIFO (First In First Out) as placed in Load Profile storage. Circular list as placed in Load Profile storage.

BLOCK_INHIBIT_OVERFLOW_FLAG

The same value as ACT_LP_TBL. LP_SETn_INHIBIT_OVF_FLAG.

INTERVAL_ORDER

Intervals in each block of Load Profile are transported in ascending order (N is older than N+1). Intervals in each block of Load Profile are transported in descending order (N is newer than N+1).

0 1

ACTIVE_MODE_FLAG

FALSE TRUE

Data set is not collecting data. Data set is collecting data.

TEST_MODE

0 1

Data set is collecting Metering Mode data. Data set is collecting Test Mode data.

LP_SET_STATUS_RCD

Atomic=”true”, Accessibility=”READONLY”.

LP_SET_STATUS_FLAGS NBR_VALID_BLOCKS

198

Alias: BLOCK_ORDER. Blocks of Load Profile data are transported in ascending order (N is older than N+1). Blocks of Load Profile data are transported in descending order (N is newer than N+1).

See LP_SET_STATUS_BFLD. 0..65535

Number of valid Load Profile data blocks in Load Profile data tables LP_DATA_SET1_TBL (Table 64), LP_DATA_SET2_TBL (Table 65), LP_DATA_SET3_TBL (Table 66), and LP_DATA_SET4_TBL (Table 67), Load Profile block arrays. The range is zero (meaning no data blocks in Load Profile Data Table) to the actual dimension of the number of Load Profile data blocks. The block is considered valid when at least one interval is written.

Decade 6: Load Profile Tables / Table 63 Load Profile Status Table

Tables

ANSI C12.19-2008

LAST_BLOCK_ELEMENT

0..65535

LAST_BLOCK_SEQ_NBR

0..4294967295

Array element index of the newest valid data block in the Load Profile data array. This field is valid only if NBR_VALID_BLOCKS is greater than zero. Sequence number of the newest valid data block (LAST_BLOCK_ELEMENT) in the Load Profile data array. This sequence number corresponds to the first valid interval entry in the block.

NBR_UNREAD_BLOCKS

0..65535

Number of Load Profile blocks that have not been read. This number shall only be updated through the invocation of Procedure 04, “Reset List Pointers” or Procedure 05, “Update Last Read Entry”.

NBR_VALID_INT

0..65535

Number of valid intervals stored in the newest Load Profile block whose array index is LAST_BLOCK_ELEMENT. Valid values are in the range of zero (meaning no interval in the array) to the actual dimension of the number of intervals per block.

LP_STATUS_RCD LP_STATUS_SET1

Status information for profile data set 1.

LP_STATUS_SET2

Status information for profile data set 2.

LP_STATUS_SET3

Status information for profile data set 3.

LP_STATUS_SET4

Status information for profile data set 4.

Decade 6: Load Profile Tables / Table 63 Load Profile Status Table

199

ANSI C12.19-2008

9.7.5

Tables

Table 64 Load Profile Data Set One Table

Table 64 Data Description LP_DATA_SET1_TBL (Table 64) contains information on Load Profile data set one. Global Default Table Property Overrides: Role=“DATA”, Accessibility=“READONLY” Table 64 Type Definitions TYPE INT_FMT1_RCD = PACKED RECORD SWITCH LP_CTRL_TBL.INT_FMT_CDE1 OF CASE 1 : ITEM : UINT8; CASE 2 : ITEM : UINT16; CASE 4 : ITEM : UINT32; CASE 8 : ITEM : INT8; CASE 16 : ITEM : INT16; CASE 32 : ITEM : INT32; CASE 64 : ITEM : NI_FMAT1; CASE 128 : ITEM : NI_FMAT2; END; END; { Enumerator CHANNEL_STATUS_ENUM } TYPE EXTENDED_STATUS_BFLD = BIT FIELD OF UINT8 { This bit field is expected to be used as an entry of an array. The interpretation of the nibbles of each UINT8 member of the array depends on its position index being the first in the collection (.lastIndex == 0) or not being the first (.lastIndex > 0). } IF .lastIndex == 0 THEN { The index value of this bit field (i.e., the first UINT8) in the containing array is 0, implying that this UINT8 contains the extended common status flags (bits 4..7) and the extended channel status of channel 1 (bits 0..3). } COMMON_DST_FLAG : BOOL(4); COMMON_POWER_FAIL_FLAG : BOOL(5); COMMON_CLOCK_SET_FWD_FLAG : BOOL(6); COMMON_CLOCK_SET_BKWD_FLAG: BOOL(7); ELSE { This is the description of the extended status array indices that are greater than zero. Each UINT8 contains data for of even channels 2,4,6 and odd channels 3,5,7 … through channel NBR_CHNS_SETn, where n is the load profile set number. The last CHANNEL_STATUS_ODD bits are FILL bits, when the number of channels is even. } CHANNEL_STATUS_EVEN END; CHANNEL_STATUS_ODD

: UINT(4..7); : UINT(0..3);

END; TYPE INT_SET1_RCD = PACKED RECORD IF ACT_LP_TBL.EXTENDED_INT_STATUS_FLAG THEN EXTENDED_INT_STATUS : ARRAY[(ACT_LP_TBL.NBR_CHNS_SET1/2)+1] OF EXTENDED_STATUS_BFLD; 200

Decade 6: Load Profile Tables / Table 64 Load Profile Data Set One Table

Tables

ANSI C12.19-2008

END; INT_DATA

: ARRAY[ACT_LP_TBL.NBR_CHNS_SET1] OF INT_FMT1_RCD;

END; TYPE READINGS_RCD = PACKED RECORD IF ACT_LP_TBL.BLK_END_READ_FLAG THEN BLOCK_END_READ : NI_FMAT1; END; IF ACT_LP_TBL.BLK_END_PULSE_FLAG THEN BLOCK_END_PULSE : UINT32; END; END; TYPE LP_BLK1_DAT_RCD = PACKED RECORD BLK_END_TIME : STIME_DATE; END_READINGS : ARRAY[ACT_LP_TBL.NBR_CHNS_SET1] OF READINGS_RCD; IF ACT_LP_TBL.SIMPLE_INT_STATUS_FLAG THEN SIMPLE_INT_STATUS : SET((ACT_LP_TBL.NBR_BLK_INTS_SET1+7)/8); END; LP_INT : ARRAY[ACT_LP_TBL.NBR_BLK_INTS_SET1] OF INT_SET1_RCD; END; TYPE LP_DATA_SET1_RCD = PACKED RECORD LP_DATA_SET1 : ARRAY[ACT_LP_TBL.NBR_BLKS_SET1] OF LP_BLK1_DAT_RCD; END; TABLE 64 LP_DATA_SET1_TBL = LP_DATA_SET1_RCD; Table 64 Element Descriptions Identifier

Value

Definition

INT_FMT1_RCD

Selector for the format of the channel data. Also See LP_CTRL_TBL.INT_FMT_ENUM.

CHANNEL_STATUS_ENUM

The contents of the even and odd channel status nibbles. See EXTENDED_STATUS_BFLD. 0 1 2 3 4 5 6 7 8..15

No exception status indicated. Numeric overflow condition detected. Partial interval due to common state. The cause is indicated in the common status flags. Long interval due to common state. The cause is indicated in the common status flags. Skipped interval due to common state. The cause is indicated in the common status flags. The INT_DATA shall be set to zero (0). The interval contains test mode data. The configuration changed during this interval. Load profile recording stopped. Reserved.

Decade 6: Load Profile Tables / Table 64 Load Profile Data Set One Table

201

ANSI C12.19-2008

Tables

EXTENDED_INT_STATUS_BFLD

This bit field is expected to be used as an entry of an array. The interpretation of the nibbles of each UINT8 member of the array depends on its position index being the first in the collection (.lastIndex == 0) or not being the first (.lastIndex > 0).

COMMON_DST_ FLAG FALSE TRUE COMMON_POWER_FAIL_FLAG

FALSE TRUE COMMON_CLOCK_SET_FWD_FLAG

FALSE TRUE COMMON_CLOCK_SET_BKWD_FLAG FALSE TRUE

Power fail detection flag. If the power fail condition spans an entire interval duration then the value of INT_DATA shall be set to zero (0) in all applicable intervals of the affected block until the power is restored or the block is closed, whichever occurs first. Power fail did not occur during or at the start of this interval. Power fail occurred during or at the start of this interval. Clock set forward indication flag. Setting the clock forward may cause intervals and blocks to be partial or skipped. Time reset across a block boundary may result in the closure of that active block and setting all remaining interval INT_DATA to zero (0) asserting the COMMON_CLOCK_SET_FWD_FLAG repeatedly to TRUE and the channel’s status to skipped interval due to common state (4). The clock was not set forward during or at the start of this interval. The clock was set forward during or at start of this interval The interval may be short. Clock set backward indication flag. The clock was not set backward during or at the start of this interval. The clock was set backward during or at start of this interval The interval may be long.

CHANNEL_STATUS_EVEN

The contents of the even channel status nibble. See CHANNEL_STATUS_ENUM.

CHANNEL_STATUS_ODD

The contents of the odd channel status nibble. See CHANNEL_STATUS_ENUM.

INT_SET1_RCD EXTENDED_INT_STATUS

202

Daylight saving time status change flag. Daylight standard time was not in effect during or at start of this interval. Daylight saving time was in effect during or at start of this interval.

This is one or more single octets of interval status conditions provided for all channels. One nibble (4 bits) of status information is provided for each channel in the set, plus one extra nibble is provided for status conditions common to all

Decade 6: Load Profile Tables / Table 64 Load Profile Data Set One Table

Tables

ANSI C12.19-2008 channels. This common status nibble is always the first nibble of the set (that is, the high order 4 bits of the first octet of EXTENDED_INT_STATUS). Since EXTENDED_INT_STATUS is an integral number of octets in length, this field contains one nibble of FILL, if the number of channels in the set is even. This fill field, when present always occupies the last nibble of EXTENDED_INT_STATUS (that is, the low order 4 bits of the last octet of EXTENDED_INT_STATUS). See EXTENDED_INT_STATUS_BFLD. INT_DATA

Array of interval values for each channel in the block, recorded at a single time. Channels are presented in the same order. The order of the channels matches their definition in LP_CTRL_TBL (Table 62).

READINGS_RCD BLOCK_END_READ BLOCK_END_PULSE

End-of-block data reading. 0..4294967295 End-of-block pulse accumulator value.

LP_BLK1_DAT_RCD BLK_END_TIME

Parameter containing the ending date and time of the last interval of data entered in this data block. This shall only contain the expected endof-interval value (for example, if a one-hour interval starting at 10:00 terminates prematurely at 10:15, the BLK_END_TIME shall indicate 11:00). When the block is closed (it is no longer the current active block) for any reason the BLK_END_TIME shall be set to the block’s starting time + NBR_BLK_INTS_SET1 * MAX_INT_TIME_SET1.

END_READINGS

Array of readings of the end reading sources, taken at the interval end time of the last interval of data entered in the block. One end reading is provided for each channel in the block. The order of the readings matches their definition in LP_CTRL_TBL (Table 62). The format is controlled by READING_RCD.

SIMPLE_INT_STATUS

Set of status bits, one per interval, that specifies whether the corresponding interval is valid. FALSE TRUE

This interval data has one or more invalid entries. This interval data is valid.

Decade 6: Load Profile Tables / Table 64 Load Profile Data Set One Table

203

ANSI C12.19-2008

LP_INT

LP_DATA_SET1_RCD LP_DATA_SET1

204

Tables

Array of interval records in the block. Intervals are stored in the chronological order, specified by INTERVAL_ORDER. The Load Profile data blocks. Array of Load Profile data blocks.

Decade 6: Load Profile Tables / Table 64 Load Profile Data Set One Table

Tables

9.7.6

ANSI C12.19-2008

Table 65 Load Profile Data Set Two Table

Table 65 Data Description LP_DATA_SET2_TBL (Table 65) contains information on Load Profile data set two. Global Default Table Property Overrides: Role=“DATA”, Accessibility=“READONLY” Table 65 Type Definitions TYPE INT_FMT2_RCD = PACKED RECORD SWITCH LP_CTRL_TBL.INT_FMT_CDE2 OF CASE 1 : ITEM : UINT8; CASE 2 : ITEM : UINT16; CASE 4 : ITEM : UINT32; CASE 8 : ITEM : INT8; CASE 16 : ITEM : INT16; CASE 32 : ITEM : INT32; CASE 64 : ITEM : NI_FMAT1; CASE 128 : ITEM : NI_FMAT2; END; END; TYPE INT_SET2_RCD = PACKED RECORD IF ACT_LP_TBL.EXTENDED_INT_STATUS_FLAG THEN EXTENDED_INT_STATUS : ARRAY[(ACT_LP_TBL.NBR_CHNS_SET2 / 2)+1] OF LP_DATA_SET1_TBL.EXTENDED_STATUS_BFLD; END; INT_DATA

: ARRAY[ACT_LP_TBL.NBR_CHNS_SET2] OF INT_FMT2_RCD;

END; TYPE READINGS_RCD = PACKED RECORD IF ACT_LP_TBL.BLK_END_READ_FLAG THEN BLOCK_END_READ : NI_FMAT1; END; IF ACT_LP_TBL.BLK_END_PULSE_FLAG THEN BLOCK_END_PULSE : UINT32; END; END; TYPE LP_BLK2_DAT_RCD = PACKED RECORD BLK_END_TIME : STIME_DATE; END_READINGS : ARRAY[ACT_LP_TBL.NBR_CHNS_SET2] OF READINGS_RCD; IF ACT_LP_TBL.SIMPLE_INT_STATUS_FLAG THEN SIMPLE_INT_STATUS : SET((ACT_LP_TBL.NBR_BLK_INTS_SET2+7)/8); END; LP_INT : ARRAY[ACT_LP_TBL.NBR_BLK_INTS_SET2] OF INT_SET2_RCD; END; TYPE LP_DATA_SET2_RCD = PACKED RECORD LP_DATA_SET2 : ARRAY[ACT_LP_TBL.NBR_BLKS_SET2] OF

Decade 6: Load Profile Tables / Table 65 Load Profile Data Set Two Table

205

ANSI C12.19-2008

Tables

LP_BLK2_DAT_RCD; END; TABLE 65 LP_DATA_SET2_TBL = LP_DATA_SET2_RCD; Table 65 Element Descriptions Value

Identifier INT_FMT2_RCD

Definition Selector for the format of the channel data. Also See LP_CTRL_TBL.INT_FMT_ENUM.

INT_SET2_RCD EXTENDED_INT_STATUS

INT_DATA

An array of extended status and flags per LP_DATA_SET1. EXTENDED_INT_STATUS_BFLD. For additional details see LP_DATA_SET1. INT_SET1_RCD.EXTENDED_INT_STATUS. Array of interval values for each channel in the block, recorded at a single time. Channels are presented in the same order. The order of the channels matches their definition in LP_CTRL_TBL (Table 62).

READINGS_RCD BLOCK_END_READ

End-of-block data reading.

BLOCK_END_PULSE

0..4294967295 End-of-block pulse accumulator value.

LP_BLK2_DAT_RCD

206

BLK_END_TIME

Parameter containing the ending date and time of the last interval of data entered in this data block. This shall only contain the expected endof-interval value (for example, if a one-hour interval starting at 10:00 terminates prematurely at 10:15, the BLK_END_TIME shall indicate 11:00). When the block is closed (it is no longer the active block) for any reason the BLK_END_TIME shall be set to the block’s starting time + NBR_BLK_INTS_SET2 * MAX_INT_TIME_SET2.

END_READINGS

Array of readings of the end reading sources, taken at the interval end time of the last interval of data entered in the block. One end reading is provided for each channel in the block. The order of the readings matches their definition in LP_CTRL_TBL (Table 62). The format is controlled by READING_RCD.

SIMPLE_INT_STATUS

Set of status bits, one per interval, that specifies whether the corresponding interval is valid.

Decade 6: Load Profile Tables / Table 65 Load Profile Data Set Two Table

Tables

ANSI C12.19-2008

FALSE TRUE LP_INT

LP_DATA_SET2_RCD LP_DATA_SET2

This interval data has one or more invalid entries. This interval data is valid. Array of interval records in the block. Intervals are stored in the chronological order, specified by INTERVAL_ORDER. The Load Profile data blocks. Array of Load Profile data blocks.

Decade 6: Load Profile Tables / Table 65 Load Profile Data Set Two Table

207

ANSI C12.19-2008

9.7.7

Tables

Table 66 Load Profile Data Set Three Table

Table 66 Data Description LP_DATA_SET3_TBL (Table 66) contains information on Load Profile data set three. Global Default Table Property Overrides: Role=“DATA”, Accessibility=“READONLY” Table 66 Type Definitions TYPE INT_FMT3_RCD = PACKED RECORD SWITCH LP_CTRL_TBL.INT_FMT_CDE3 OF CASE 1 : ITEM : UINT8; CASE 2 : ITEM : UINT16; CASE 4 : ITEM : UINT32; CASE 8 : ITEM : INT8; CASE 16 : ITEM : INT16; CASE 32 : ITEM : INT32; CASE 64 : ITEM : NI_FMAT1; CASE 128 : ITEM : NI_FMAT2; END; END; TYPE INT_SET3_RCD = PACKED RECORD IF ACT_LP_TBL.EXTENDED_INT_STATUS_FLAG THEN EXTENDED_INT_STATUS : ARRAY[(ACT_LP_TBL.NBR_CHNS_SET3 / 2)+1] OF LP_DATA_SET1_TBL.EXTENDED_STATUS_BFLD; END; INT_DATA : ARRAY[ACT_LP_TBL.NBR_CHNS_SET3] OF INT_FMT3_RCD; END; TYPE READINGS_RCD = PACKED RECORD IF ACT_LP_TBL.BLK_END_READ_FLAG THEN BLOCK_END_READ : NI_FMAT1; END; IF ACT_LP_TBL.BLK_END_PULSE_FLAG THEN BLOCK_END_PULSE : UINT32; END; END; TYPE LP_BLK3_DAT_RCD = PACKED RECORD BLK_END_TIME : STIME_DATE; END_READINGS : ARRAY[ACT_LP_TBL.NBR_CHNS_SET3] OF READINGS_RCD; IF ACT_LP_TBL.SIMPLE_INT_STATUS_FLAG THEN SIMPLE_INT_STATUS : SET((ACT_LP_TBL.NBR_BLK_INTS_SET3+7)/8); END; LP_INT : ARRAY[ACT_LP_TBL.NBR_BLK_INTS_SET3] OF INT_SET3_RCD; END; TYPE LP_DATA_SET3_RCD = PACKED RECORD LP_DATA_SET3 : ARRAY[ACT_LP_TBL.NBR_BLKS_SET3] OF LP_BLK3_DAT_RCD; 208

Decade 6: Load Profile Tables / Table 66 Load Profile Data Set Three Table

Tables

ANSI C12.19-2008

END; TABLE 66 LP_DATA_SET3_TBL = LP_DATA_SET3_RCD; Table 66 Element Descriptions Identifier INT_FMT3_RCD

Value

Definition Selector for the format of the channel data. Also See LP_CTRL_TBL.INT_FMT_ENUM.

INT_SET3_RCD EXTENDED_INT_STATUS

An array of extended status and flags per LP_DATA_SET1. EXTENDED_INT_STATUS_BFLD. For additional details see LP_DATA_SET1. INT_SET1_RCD.EXTENDED_INT_STATUS.

INT_DATA

Array of interval values for each channel in the block, recorded at a single time. Channels are presented in the same order. The order of the channels matches their definition in LP_CTRL_TBL (Table 62).

READINGS_RCD BLOCK_END_READ BLOCK_END_PULSE

End-of-block data reading. 0..4294967295 End-of-block pulse accumulator value.

LP_BLK3_DAT_RCD BLK_END_TIME

Parameter containing the ending date and time of the last interval of data entered in this data block. This shall only contain the expected endof-interval value (for example, if a one-hour interval starting at 10:00 terminates prematurely at 10:15, the BLK_END_TIME shall indicate 11:00). When the block is closed (it is no longer the active block) for any reason the BLK_END_TIME shall be set to the block’s starting time + NBR_BLK_INTS_SET3 * MAX_INT_TIME_SET3.

END_READINGS

Array of readings of the end reading sources, taken at the interval end time of the last interval of data entered in the block. One end reading is provided for each channel in the block. The order of the readings matches their definition in LP_CTRL_TBL (Table 62). The format is controlled by READING_RCD.

SIMPLE_INT_STATUS

Set of status bits, one per interval, that specifies whether the corresponding interval is valid.

Decade 6: Load Profile Tables / Table 66 Load Profile Data Set Three Table

209

ANSI C12.19-2008

Tables

FALSE TRUE LP_INT

LP_DATA_SET3_RCD LP_DATA_SET3

210

This interval data has one or more invalid entries. This interval data is valid. Array of interval records in the block. Intervals are stored in the chronological order, specified by INTERVAL_ORDER. The Load Profile data blocks. Array of Load Profile data blocks.

Decade 6: Load Profile Tables / Table 66 Load Profile Data Set Three Table

Tables

9.7.8

ANSI C12.19-2008

Table 67 Load Profile Data Set Four Table

Table 67 Data Description LP_DATA_SET4_TBL (Table 67) contains information on Load Profile data set four. Global Default Table Property Overrides: Role=“DATA”, Accessibility=“READONLY” Table 67 Type Definitions TYPE INT_FMT4_RCD = PACKED RECORD SWITCH LP_CTRL_TBL.INT_FMT_CDE4 OF CASE 1 : ITEM : UINT8; CASE 2 : ITEM : UINT16; CASE 4 : ITEM : UINT32; CASE 8 : ITEM : INT8; CASE 16 : ITEM : INT16; CASE 32 : ITEM : INT32; CASE 64 : ITEM : NI_FMAT1; CASE 128 : ITEM : NI_FMAT2; END; END; TYPE INT_SET4_RCD = PACKED RECORD IF ACT_LP_TBL.EXTENDED_INT_STATUS_FLAG THEN EXTENDED_INT_STATUS : ARRAY[(ACT_LP_TBL.NBR_CHNS_SET4 / 2)+1] OF LP_DATA_SET1_TBL.EXTENDED_STATUS_BFLD; END; INT_DATA

: ARRAY[ACT_LP_TBL.NBR_CHNS_SET4] OF INT_FMT4_RCD;

END; TYPE READINGS_RCD = PACKED RECORD IF ACT_LP_TBL.BLK_END_READ_FLAG THEN BLOCK_END_READ : NI_FMAT1; END; IF ACT_LP_TBL.BLK_END_PULSE_FLAG THEN BLOCK_END_PULSE : UINT32; END; END; TYPE LP_BLK4_DAT_RCD = PACKED RECORD BLK_END_TIME : STIME_DATE; END_READINGS : ARRAY[ACT_LP_TBL.NBR_CHNS_SET4] OF READINGS_RCD; IF ACT_LP_TBL.SIMPLE_INT_STATUS_FLAG THEN SIMPLE_INT_STATUS : SET((ACT_LP_TBL.NBR_BLK_INTS_SET4+7)/8); END; LP_INT : ARRAY[ACT_LP_TBL.NBR_BLK_INTS_SET4] OF INT_SET4_RCD; END; TYPE LP_DATA_SET4_RCD = PACKED RECORD LP_DATA_SET4 : ARRAY[ACT_LP_TBL.NBR_BLKS_SET4] OF

Decade 6: Load Profile Tables / Table 67 Load Profile Data Set Four Table

211

ANSI C12.19-2008

Tables

LP_BLK4_DAT_RCD; END; TABLE 67 LP_DATA_SET4_TBL = LP_DATA_SET4_RCD; Table 67 Element Descriptions Value

Identifier INT_FMT4_RCD

Definition Selector for the format of the channel data. Also See LP_CTRL_TBL.INT_FMT_ENUM.

INT_SET4_RCD EXTENDED_INT_STATUS

An array of extended status and flags per LP_DATA_SET1. EXTENDED_INT_STATUS_BFLD. For additional details see LP_DATA_SET1. INT_SET1_RCD.EXTENDED_INT_STATUS.

INT_DATA

Array of interval values for each channel in the block, recorded at a single time. Channels are presented in the same order. The order of the channels matches their definition in LP_CTRL_TBL (Table 62).

READINGS_RCD BLOCK_END_READ

End-of-block data reading.

BLOCK_END_PULSE

0..4294967295 End-of-block pulse accumulator value.

LP_BLK4_DAT_RCD

212

BLK_END_TIME

Parameter containing the ending date and time of the last interval of data entered in this data block. This shall only contain the expected endof-interval value (for example, if a one-hour interval starting at 10:00 terminates prematurely at 10:15, the BLK_END_TIME shall indicate 11:00). When the block is closed (it is no longer the active block) for any reason the BLK_END_TIME shall be set to the block’s starting time + NBR_BLK_INTS_SET4 * MAX_INT_TIME_SET4.

END_READINGS

Array of readings of the end reading sources, taken at the interval end time of the last interval of data entered in the block. One end reading is provided for each channel in the block. The order of the readings matches their definition in LP_CTRL_TBL (Table 62). The format is controlled by READING_RCD.

Decade 6: Load Profile Tables / Table 67 Load Profile Data Set Four Table

Tables

ANSI C12.19-2008

SIMPLE_INT_STATUS

Set of status bits, one per interval, that specifies whether the corresponding interval is valid. FALSE TRUE

LP_INT

LP_DATA_SET4_RCD LP_DATA_SET4

This interval data has one or more invalid entries. This interval data is valid. Array of interval records in the block. Intervals are stored in the chronological order, specified by INTERVAL_ORDER. The Load Profile data blocks. Array of Load Profile data blocks.

Decade 6: Load Profile Tables / Table 67 Load Profile Data Set Four Table

213

ANSI C12.19-2008

Tables

9.8 Decade 7: History & Event Logs Decade 7 Name HISTORY_EVENT_DEC Decade 7 Data Description This decade contains the tables associated with the maintenance of the History and Event Logs. Although very similar in design, the role of the History Log Data (Table 74) is significantly distinguished from that of the Event Log Data (Table 76). The Event Log Data (Table 76) was designed in a manner to facilitate the establishment and maintenance of consumer confidence in the End Device operation. For that reason, the event logger implementation needs to adhere to strict guidelines and uniform rules that are consistent with the implementation of an audit trail that is capable of tracking securely all End Device changes to entities of metrological importance. On the other hand, the history logger provides for monitoring any End Device activity or events which may be of general interest to the operator, utility or technician (e.g., communication access logs, debugging information, clock drift data, demand reset tracking, etc.). Both history logger and event logger (secured audit trail) may be coexist in an End Device. Decade 7 Type Definitions { Enumerator EVENT_CODES_ENUM } Decade 7 Element Descriptions Identifier

Value

EVENT_CODES_ENUM

The following are the Standard event codes that may be entered into the history log and event log tables. For more information on their use See ANNEX B, “History & Event Log Codes” and ANNEX E, “Event Logger Implementation”. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

214

Definition

No Event. Primary Power Down. Primary Power Up. Time Changed (Time-stamp is old time). Time Changed (Time-stamp is new time). Time Changed (Time-stamp is old time in STIME_DATE format). Time Changed (Time-stamp new time in STIME_DATE format). End Device Accessed for Read. End Device Accessed for Write. Procedure Invoked. Table Written To. End Device Programmed. Communication Terminated Normally. Communication Terminated Abnormally. Reset List Pointers. Updated List Pointers. History Log Cleared. History Log Pointers Updated. Event Log Cleared. Event Log Pointers Updated.

Decade 7: History & Event Logs

Tables

ANSI C12.19-2008 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73

Decade 7: History & Event Logs

Demand Reset Occurred. Self-read Occurred. Daylight Saving Time On. Daylight Savings Time Off. Season Changed. Rate Change. Special Schedule Activated. Tier Switch / Change. Pending Table Activated. Pending Table Activation Cleared. Metering mode started. Metering mode stopped. Test mode started. Test mode stopped. Meter shop mode started. Meter shop mode stopped. End Device reprogrammed. Configuration error detected. Self check error detected. RAM failure detected. ROM failure detected. Nonvolatile memory failure detected. Clock error detected. Measurement error detected. Low battery detected. Low loss potential detected. Demand overload detected. Tamper attempt detected. Reverse rotation detected. Control point changed by a command. Control point changed by the schedule. Control point changed by a condition. Control point changed for the prepayment. Added to remaining credit. Subtracted from remaining credit. Adjusted the remaining credit. End Device sealed. End Device unsealed. Procedure Invoked (with values). Table Written To (with values). End Device Programmed (with values). End Device sealed (with values). End Device unsealed (with values). Procedure Invoked (with signature). Table Written To (with signature). End Device Programmed (with signature). End Device sealed (with signature). End Device unsealed (with signature). Procedure Invoked (with signature and values). Table Written To(with signature and values). End Device Programmed (with signature and values). End Device sealed(with signature and values). End Device unsealed(with signature and values). Read Secured Table.

215

ANSI C12.19-2008

Tables 74 75 76 77.. 2047

9.8.1

Read Secured Register. Read Secured Table (with values). Read Secured Register (with values). Reserved.

Table 70 Log Dimension Limits Table

Table 70 Data Description DIM_LOG_TBL (Table 70) defines the maximum size and capabilities of the History and Event Log decade. Global Default Table Property Overrides: Role=“LIMITING”, Accessibility=“READONLY” Table 70 Type Definitions TYPE LOG_FLAGS_BFLD = BIT FIELD OF UINT8 EVENT_NUMBER_FLAG : BOOL(0); HIST_DATE_TIME_FLAG : BOOL(1); HIST_SEQ_NBR_FLAG : BOOL(2); HIST_INHIBIT_OVF_FLAG : BOOL(3); EVENT_INHIBIT_OVF_FLAG : BOOL(4); FILLER : FILL(5..7); END; TYPE EXT_LOG_FLAGS_BFLD = BIT FIELD OF UINT8 METROLOGICAL_SIG_FLAG : BOOL(0); PROGRAM_SIG_FLAG : BOOL(1); ALTERNATE_SIG_FLAG : BOOL(2); SECURED_REGISTER_FLAG : BOOL(3); FILLER : FILL(4..7); END; TYPE LOG_RCD = PACKED RECORD LOG_FLAGS : LOG_FLAGS_BFLD; NBR_STD_EVENTS : UINT8; NBR_MFG_EVENTS : UINT8; HIST_DATA_LENGTH : UINT8; EVENT_DATA_LENGTH : UINT8; NBR_HISTORY_ENTRIES : UINT16; NBR_EVENT_ENTRIES : UINT16; IF GEN_CONFIG_TBL.STD_VERSION_NO > 1 THEN EXT_LOG_FLAGS : EXT_LOG_FLAGS_BFLD; NBR_PROGRAM_TABLES : UINT16; END; END; TABLE 70 DIM_LOG_TBL = LOG_RCD; Table 70 Element Descriptions Identifier

Value

Definition

LOG_FLAGS_BFLD

216

Decade 7: History & Event Logs / Table 70 Log Dimension Limits Table

Tables

ANSI C12.19-2008

EVENT_NUMBER_FLAG

FALSE TRUE

HIST_DATE_TIME_FLAG

FALSE TRUE

HIST_SEQ_NBR_FLAG

FALSE TRUE

HIST_INHIBIT_OVF_FLAG

FALSE TRUE

EVENT_INHIBIT_OVF_FLAG FALSE TRUE EXT_LOG_FLAGS_BFLD

A common event number cannot be maintained in the History and Event Logs. A common event number can be maintained in the History and Event Logs. Date and time cannot be maintained in the History Log. Date and time can be maintained in the History Log. A sequence number cannot be transported through the History Log. A sequence number can be transported through the History Log. History Log is not capable of inhibiting overflow. History Log is capable of inhibiting overflow. Event Log is not capable of inhibiting overflow. Event Log is capable of inhibiting overflow. Additional flags that were introduced in Verision 2 of this Standard in support of audit trail management.

METROLOGICAL_SIG_FLAG FALSE TRUE

The End Device is not capable of including the METROLOGICAL_SIG field in the End Device program state table (Table 78). The End Device is capable of including the METROLOGICAL_SIG field in the End Device program state table (Table 78).

PROGRAM_SIG_FLAG FALSE TRUE

The End Device is not capable of including the PROGRAM_SIG field in the End Device program state table (Table 78). The End Device is capable of including the PROGRAM_SIG field in the End Device program state table (Table 78).

ALTERNATE_SIG_FLAG FALSE TRUE

SECURED_REGISTER_FLAG

The End Device is not capable of including the ALTERNATE_SIG field in the End Device program state table (Table 78). The End Device is capable of including the ALTERNATE_SIG field in the End Device program state table (Table 78). The End Device secured register read events capability flag.

FALSE

The End Device is not capable of generating an End Device secured register event (Read Secured Register or Read Secured Table).

Decade 7: History & Event Logs / Table 70 Log Dimension Limits Table

217

ANSI C12.19-2008

Tables TRUE

LOG_RCD LOG_FLAGS

See LOG_FLAGS_BFLD.

NBR_STD_EVENTS

0..255

Maximum number of octets in the set EVENTS_SUPPORTED_TBL.STD_EVENTS_S UPPORTED (Table 72).

NBR_MFG_EVENTS

0..255

Maximum number of octets in the set EVENTS_SUPPORTED_TBL.MFG_EVENTS_S UPPORTED (Table 72).

HIST_DATA_LENGTH

0..255

Maximum number of octets in the HISTORY_LOG_DATA_TBL.HISTORY_ARGU MENT (Table 74).

EVENT_DATA_LENGTH

0..255

Maximum number of octets in the EVENT_LOG_DATA_TBL.EVENT_ARGUMEN T (Table 76).

NBR_HISTORY_ENTRIES

0..65535

Maximum number of entries in the History Log in HISTORY_LOG_DATA_TBL (Table 74).

NBR_EVENT_ENTRIES

0..65535

Maximum number of entries in the Event Log in EVENT_LOG_DATA_TBL (Table 76).

EXT_LOG_FLAGS

See EXT_LOG_FLAGS_BFLD.

NBR_PROGRAM_TABLES

218

The End Device is capable of generating an End Device secured register event (Read Secured Register or Read Secured Table).

0..65535

Maximum number of tables that can be included in the TABLE_LIST of the End Device program state (Table 78).

Decade 7: History & Event Logs / Table 70 Log Dimension Limits Table

Tables

9.8.2

ANSI C12.19-2008

Table 71 Actual Log Limiting Table

Table 71 Data Description ACT_LOG_TBL (Table 71) defines the actual size and capabilities of the History and Event Log Decade. Global Default Table Property Overrides: Role=“ACTUAL” Table 71 Type Definitions TABLE 71 ACT_LOG_TBL = LOG_RCD; Table 71 Element Descriptions Identifier

Value

LOG_FLAGS_BFLD EVENT_NUMBER_FLAG

FALSE TRUE

HIST_DATE_TIME_FLAG

FALSE TRUE

HIST_SEQ_NBR_FLAG

FALSE TRUE

Definition Redefines: DIM_LOG_TBL.LOG_FLAGS_BFLD. A common event number is not maintained in the History & Event Logs. A common event number is maintained in the History & Event Logs. A date & time is not maintained in the History Log. A date & time is maintained in the History Log. A sequence number is not transported through the History Log. A sequence number is transported through the History Log.

HIST_INHIBIT_OVF_FLAG FALSE TRUE

History Log is not inhibiting new entries when an overflow condition exists. History Log is inhibiting new entries when an overflow condition exists.

EVENT_INHIBIT_OVF_FLAG FALSE TRUE EXT_LOG_FLAGS_BFLD

Event Log is not inhibiting new entries when an overflow condition exists. Event Log is inhibiting new entries when an overflow condition exists. Redefines: DIM_LOG_TBL.EXT_LOG_FLAGS_BFLD. Additional flags that were introduced in Version 2 of this Standard in support of audit trail management.

METROLOGICAL_SIG_FLAG FALSE

METROLOGICAL_SIG field is not included in the End Device program state table (Table 78).

Decade 7: History & Event Logs / Table 71 Actual Log Limiting Table

219

ANSI C12.19-2008

Tables

TRUE

METROLOGICAL_SIG field is included in the End Device program state table (Table 78).

FALSE

PROGRAM_SIG field is not included in the End Device program state table (Table 78). PROGRAM_SIG field is included in the End Device program state table (Table 78).

PROGRAM_SIG_FLAG TRUE ALTERNATE_SIG_FLAG FALSE TRUE SECURED_REGISTER_FLAG

The End Device secured register read events enabling flag. FALSE TRUE

LOG_RCD LOG_FLAGS

220

ALTERNATE_SIG field is not included in the End Device program state table (Table 78). ALTERNATE_SIG field is included in the End Device program state table (Table 78).

The End Device shall not generate End Device secured register events (Read Secured Register or Read Secured Table). The End Device shall generate End Device secured register events (Read Secured Register or Read Secured Table) following the transfer of a secured register table or elements to an End Device reader, provided that this capability was enabled by a successful invocation of the “Start Secured Register” procedure. Event logging of secured register reads shall cease immediately upon invocation of the “Stop Secured Register” procedure, termination of the communication session (which invoked the “Start Secured Register” procedure), or upon reaching the maximum number of secured read operations that were permitted. Redefines: DIM_LOG_TBL.LOG_RCD. See LOG_FLAG_BFLD.

NBR_STD_EVENTS

0..255

Actual number of octets in the EVENTS_SUPPORTED_TBL. STD_EVENTS_SUPPORTED (Table 72).

set

NBR_MFG_EVENTS

0..255

Actual number of octets in the EVENTS_SUPPORTED_TBL. MFG_EVENTS_SUPPORTED (Table 72).

set

HIST_DATA_LENGTH

0..255

Actual number of octets HISTORY_LOG_DATA_TBL. HISTORY_ARGUMENT (Table 74).

in

the

EVENT_DATA_LENGTH

0..255

Actual number of octets EVENT_LOG_DATA_TBL. EVENT_ARGUMENT (Table 76).

in

the

Decade 7: History & Event Logs / Table 71 Actual Log Limiting Table

Tables

ANSI C12.19-2008

NBR_HISTORY_ENTRIES

0..65535

Actual maximum number of entries in the History Log.

NBR_EVENT_ENTRIES

0..65535

Actual maximum number of entries in the Event Log.

EXT_LOG_FLAGS NBR_PROGRAM_TABLES

See EXT_LOG_FLAGS_BFLD. 0..65535

Actual number of tables included in the TABLE_LIST of the End Device program state (Table 78).

Decade 7: History & Event Logs / Table 71 Actual Log Limiting Table

221

ANSI C12.19-2008

9.8.3

Tables

Table 72 Events Identification Table

Table 72 Data Description EVENTS_ID_TBL (Table 72) contains the events that are supported by the End Device. Any of these events may be expressed in the History Log Data (Table 74) and the Event Log Data (Table 76). Global Default Table Property Overrides: Role=“CONTROL” Table 72 Type Definitions TYPE EVENTS_SUPPORTED_RCD = PACKED RECORD STD_EVENTS_SUPPORTED : SET(ACT_LOG_TBL.NBR_STD_EVENTS); MFG_EVENTS_SUPPORTED : SET(ACT_LOG_TBL.NBR_MFG_EVENTS); END; TABLE 72 EVENTS_ID_TBL = EVENTS_SUPPORTED_RCD; Table 72 Element Descriptions Value

Identifier EVENTS_SUPPORTED_RCD STD_EVENTS_SUPPORTED

MFG_EVENTS_SUPPORTED

222

Definition This set Element indicates which of the standard events are supported in the Event Log. See Annex B, “History & Event Log Codes”, for standard event codes. Event codes are represented by bits 0 through (8 * ACT_LOG_TBL.NBR_STD_EVENTS - 1), with a 1 representing a TRUE or implemented condition and a 0 representing a FALSE or not implemented condition. This set Element indicates which of the manufacturer events are supported in the Event Log. Events are enabled by bits 0 through (8 * ACT_LOG_TBL.NBR_MFG_EVENTS - 1), with a 1 representing a TRUE or implemented condition and a 0 representing a FALSE or not implemented condition.

Decade 7: History & Event Logs / Table 72 Events Identification Table

Tables

9.8.4

ANSI C12.19-2008

Table 73 History Log Control Table

Table 73 Data Description HISTORY_LOG_CTRL_TBL (Table 73) defines the History Log codes to be written to the History Log Data (Table 74). It also defines which specific procedures and/or table writes are to be acknowledged in the History Log Data (Table 74). For a specific procedure or table to be acknowledged, three independent tests shall all be true: 1) The procedure or table shall be used in the End Device, per the GEN_CONFIG_TBL (Table 00). 2) The appropriate History Log code shall be used, per this table. 3) The procedure or table shall be requested to be acknowledged, per this table. This table (Table 73) and its associated data logger table (Table 74) can be used to monitor any End Device activity that may be of interest to the operator, utility or technician. The monitored events may include communication events, debugging information or any other useful information that may be of general interest. When there is an expressed need to establish and maintain consumer confidence in the End Device metrology, the reliable audit trail (Event Logger Data Table 76) shall be implemented. Global Default Table Property Overrides: Role=“CONTROL” Table 73 Type Definitions TYPE HISTORY_CTRL_RCD = PACKED RECORD STD_EVENTS_MONITORED_FLAGS : SET(ACT_LOG_TBL.NBR_STD_EVENTS); MFG_EVENTS_MONITORED_FLAGS : SET(ACT_LOG_TBL.NBR_MFG_EVENTS); STD_TBLS_MONITORED_FLAGS : SET(GEN_CONFIG_TBL.DIM_STD_TBLS_USED); MFG_TBLS_MONITORED_FLAGS : SET(GEN_CONFIG_TBL.DIM_MFG_TBLS_USED); STD_PROC_MONITORED_FLAGS : SET(GEN_CONFIG_TBL.DIM_STD_PROC_USED); MFG_PROC_MONITORED_FLAGS : SET(GEN_CONFIG_TBL.DIM_MFG_PROC_USED); END; TABLE 73 HISTORY_LOG_CTRL_TBL = HISTORY_CTRL_RCD; Table 73 Element Descriptions Identifier

Value

HISTORY_CTRL_RCD STD_EVENTS_MONITORED_FLAGS FALSE TRUE MFG_EVENTS_MONITORED_FLAGS FALSE TRUE

Definition Bit position is linearly associated with corresponding standard event code. Turns off event recording for associated event code. Turns on event recording for associated event code. Bit position is linearly associated with corresponding manufacturer event code. Turns off event recording for associated event code. Turns on event recording for associated event code.

Decade 7: History & Event Logs / Table 73 History Log Control Table

223

ANSI C12.19-2008

Tables

STD_TBLS_MONITORED_FLAGS FALSE TRUE MFG_TBLS_MONITORED_FLAGS FALSE TRUE STD_PROC_MONITORED_FLAGS FALSE TRUE MFG_PROC_MONITORED_FLAGS FALSE TRUE

224

Bit position is linearly associated with corresponding standard table number. Turns off event recording for associated table. Turns on event recording for associated table. Bit position is linearly associated with corresponding manufacturer table number. Turns off event recording for associated table. Turns on event recording for associated table. Bit position is linearly associated with corresponding standard procedure number. Turns off event recording for associated procedure. Turns on event recording for associated procedure. Bit position is linearly associated with corresponding manufacturer procedure number. Turns off event recording for associated procedure. Turns on event recording for associated procedure.

Decade 7: History & Event Logs / Table 73 History Log Control Table

Tables

9.8.5

ANSI C12.19-2008

Table 74 History Log Data Table

Table 74 Data Description HISTORY_LOG_DATA_TBL (Table 74) provides the History Log Data that is controlled by Table 73, History Log Control Table. Global Default Table Property Overrides: Role=“DATA”, Accessibility=“READONLY” Table 74 Type Definitions TYPE HISTORY_ENTRY_RCD = PACKED RECORD IF ACT_LOG_TBL.HIST_DATE_TIME_FLAG THEN HISTORY_TIME : LTIME_DATE; END; IF ACT_LOG_TBL.EVENT_NUMBER_FLAG THEN EVENT_NUMBER : UINT16; END; IF ACT_LOG_TBL.HIST_SEQ_NBR_FLAG THEN HISTORY_SEQ_NBR : UINT16; END; USER_ID : UINT16; HISTORY_CODE : TABLE_IDB_BFLD; HISTORY_ARGUMENT : BINARY(ACT_LOG_TBL.HIST_DATA_LENGTH); END; TYPE HISTORY_LOG_RCD = PACKED RECORD HIST_FLAGS : LIST_STATUS_BFLD; NBR_VALID_ENTRIES : UINT16; LAST_ENTRY_ELEMENT : UINT16; LAST_ENTRY_SEQ_NBR : UINT32; NBR_UNREAD_ENTRIES : UINT16; ENTRIES : ARRAY[ACT_LOG_TBL.NBR_HISTORY_ENTRIES] OF HISTORY_ENTRY_RCD; END; TABLE 74 HISTORY_LOG_DATA_TBL = HISTORY_LOG_RCD; Table 74 Element Descriptions Identifier

Value

Definition

0

Redefines: SELF_READ_DATA_TBL. LIST_STATUS_BFLD. Alias: ORDER_FLAG. History log entries are transported in ascending order (N is older than N+1). History log entries are transported in descending order (N is newer than N+1).

LIST_STATUS_BFLD ORDER 1 OVERFLOW_FLAG

FALSE TRUE

Overflow has not occurred. An attempt was made to enter a history event such that the number of unread events entries

Decade 7: History & Event Logs / Table 74 History Log Data Table

225

ANSI C12.19-2008

Tables would have exceeded the actual number of possible entries in the log.

LIST_TYPE 0 1 INHIBIT_OVERFLOW_FLAG

TABLE_IDB_BFLD EVENT_NUMBER

Shall have the same definition and value as ACT_LOG_TBL.HIST_INHIBIT_OVF_FLAG (Table 71). 0..2039

MFG_FLAG FALSE TRUE SELECTOR

Redefines: STD.TABLE_IDB_BFLD. Event number logged. See EVENT_CODES_ENUM for Standard values (MFG_FLAG = FALSE). Alias: TBL_PROC_NBR. Alias: STD_VS_MFG_FLAG. Event code is standard defined. Event code is manufacturer defined.

0

The associated entry’s EVENT_NUMBER value in this table may or may not be found in the corresponding EVENT_LOG_DATA_TBL (Table 76). This option is provided for backward compatibility with version 1 of this Standard.

1

The associated entry’s EVENT_NUMBER value in this table shall be found in the corresponding EVENT_LOG_DATA_TBL (Table 76).

2

The associated entry’s EVENT_NUMBER value in this table shall not be found in the corresponding EVENT_LOG_DATA_TBL (Table 76).

3..15

Reserved.

HISTORY_ENTRY_RCD HISTORY_TIME

226

Alias: LIST_TYPE_FLAG. FIFO (First In First Out) ordered entries are placed in history log list, HISTORY_LOG_DATA_TBL.ENTRIES. Circular list, entries are placed in history log list, HISTORY_LOG_DATA_TBL.ENTRIES.

Date and time of History Log entry.

EVENT_NUMBER

0..65535

This Element is a common event counter that increments whenever a new event is generated, regardless of whether the event is recorded in the History Log, the Event Log, or both logs.

HISTORY_SEQ_NBR

0..65535

Sequence number associated with the History Log only. This value represents the least significant 16 bits of LAST_ENTRY_SEQ_NBR.

USER_ID

0..65535

The User ID associated with this History Log entry. It comes from the Log In Procedure or

Decade 7: History & Event Logs / Table 74 History Log Data Table

Tables

ANSI C12.19-2008 from a communication session initiation sequence. A USER_ID of zero (0) means the End Device initiated the event. A USER_ID of one (1) means the event was manually initiated. USER_ID values in the range of 57344 (E000H) through 65535 (FFFFH) are used for devices attached to the End Device. HISTORY_CODE HISTORY_ARGUMENT

Event code logged. See TABLE_IDB_BFLD. Argument associated with a specific entry. For standard event arguments, refer to Annex B, “History & Event Log Codes”.

HISTORY_LOG_RCD HIST_FLAGS

See LIST_STATUS_BFLD.

NBR_VALID_ENTRIES

0..65535

Number of valid entries in the log. The range is from zero (0) (meaning the log is empty) to the actual dimension of the log.

LAST_ENTRY_ELEMENT

0..65535

The array element number of the newest valid entry in the log.

LAST_ENTRY_SEQ_NBR

0..4294967295 The sequence number of the newest valid entry in the log.

NBR_UNREAD_ENTRIES

0..65535

ENTRIES

The number of entries in the log that have not yet been read. It is only changed through a procedure. Array of History Log entries.

Decade 7: History & Event Logs / Table 74 History Log Data Table

227

ANSI C12.19-2008

9.8.6

Tables

Table 75 Event Log Control Table

Table 75 Data Description EVENT_LOG_CTRL_TBL (Table 75) defines the Event Log codes to be written to the Event Log. It also defines which specific procedures and/or table writes are to be acknowledged in the Event Log. For a specific procedure or table to be acknowledged, three independent tests shall all be true: 1) The procedure or table shall be used in the End Device, per the GEN_CONFIG_TBL (Table 00). 2) The appropriate Event code shall be used, per Table 75. 3) The procedure or table shall be requested to be acknowledged, per Table 75. This data structure is identical to the structure in HISTORY_LOG_CTRL_TBL (Table 73). The associated table (Event Log Data Table 76) shall be used when there is an expressed need to establish and maintain consumer confidence in the End Device metrology using a reliable audit trail. Global Default Table Property Overrides: Role=“CONTROL” Table 75 Type Definitions TABLE 75 EVENT_LOG_CTRL_TBL = HISTORY_CTRL_RCD; Table 75 Element Descriptions Identifier

Value

HISTORY_CTRL_RCD STD_EVENTS_MONITORED_FLAGS FALSE TRUE MFG_EVENTS_MONITORED_FLAGS FALSE TRUE STD_TBLS_MONITORED_FLAGS FALSE TRUE MFG_TBLS_MONITORED_FLAGS FALSE TRUE

228

Definition Redefines: HISTORY_LOG_CTRL_TBL.HISTORY_CTRL_ RCD. Bit position is linearly associated with corresponding standard event code. Turns off event recording for associated event code. Turns on event recording for associated event code. Bit position is linearly associated with corresponding manufacturer event code. Turns off event recording for associated event code. Turns on event recording for associated event code. Bit position is linearly associated with corresponding standard table number. Turns off event recording for associated table. Turns on event recording for associated table. Bit position is linearly associated with corresponding manufacturer table number. Turns off event recording for associated table. Turns on event recording for associated table.

Decade 7: History & Event Logs / Table 75 Event Log Control Table

Tables

ANSI C12.19-2008

STD_PROC_MONITORED_FLAGS FALSE TRUE MFG_PROC_MONITORED_FLAGS FALSE TRUE

Bit position is linearly associated with corresponding standard procedure number. Turns off event recording for associated procedure. Turns on event recording for associated procedure. Bit position is linearly associated with corresponding manufacturer procedure number. Turns off event recording for associated procedure. Turns on event recording for associated procedure.

Decade 7: History & Event Logs / Table 75 Event Log Control Table

229

ANSI C12.19-2008

9.8.7

Tables

Table 76 Event Log Data Table

Table 76 Data Description EVENT_LOG_DATA_TBL (Table 76) provides the Event Log Data that is controlled by Table 75, Event Log Control Table. The event logger table is a secured audit trail tool capable of recording metrological signatures (See Table 78), secured register reading signatures and event-check signatures. Global Default Table Property Overrides: Role=“DATA”, Accessibility=“READONLY” Table 76 Type Definitions TYPE EVENT_ENTRY_RCD = PACKED RECORD EVENT_TIME : LTIME_DATE; IF ACT_LOG_TBL.EVENT_NUMBER_FLAG THEN EVENT_NUMBER : UINT16; END; EVENT_SEQ_NBR : UINT16; USER_ID : UINT16; EVENT_CODE : TABLE_IDB_BFLD; EVENT_ARGUMENT : BINARY(ACT_LOG_TBL.EVENT_DATA_LENGTH); END; TYPE EVENT_LOG_RCD = PACKED RECORD EVENT_FLAGS : LIST_STATUS_BFLD; NBR_VALID_ENTRIES : UINT16; LAST_ENTRY_ELEMENT : UINT16; LAST_ENTRY_SEQ_NBR : UINT32; NBR_UNREAD_ENTRIES : UINT16; ENTRIES : ARRAY[ACT_LOG_TBL.NBR_EVENT_ENTRIES] OF EVENT_ENTRY_RCD; END; TABLE 76 EVENT_LOG_DATA_TBL = EVENT_LOG_RCD; Table 76 Element Descriptions Identifier

Value

Definition

0

Redefines: SELF_READ_DATA_TBL. LIST_STATUS_BFLD. Alias: ORDER_FLAG. Event log entries are transported in ascending order (N is older than N+1). Event log entries are transported in descending order (N is newer than N+1).

LIST_STATUS_BFLD ORDER 1 OVERFLOW_FLAG

LIST_TYPE

230

FALSE TRUE

Overflow has not occurred. An attempt was made to enter an event log entry such that the number of unread events entries would have exceeded the actual number of possible entries in the log. Alias: LIST_TYPE_FLAG.

Decade 7: History & Event Logs / Table 76 Event Log Data Table

Tables

ANSI C12.19-2008 0 1 INHIBIT_OVERFLOW_FLAG

TABLE_IDB_BFLD EVENT_NUMBER

Shall have the same value as ACT_LOG_TBL. EVENT_INHIBIT_OVF_FLAG (Table 71). 0..2039

MFG_FLAG FALSE TRUE SELECTOR

FIFO (First In First Out) ordered entries are placed in event log list, EVENT_LOG_DATA_TBL.ENTRIES. Circular list, entries are placed in event log list, EVENT_LOG_DATA_TBL.ENTRIES.

Event code number logged. See EVENT_CODES_ENUM for Standard values (MFG_FLAG == FALSE). Alias: TBL_PROC_NBR. Alias: STD_VS_MFG_FLAG. Event code is standard defined. Event code is manufacturer defined.

0

The associated entry’s EVENT_NUMBER value in this table may or may not be found in the corresponding HISTORY_LOG_DATA_TBL (Table 74). This option is provided for backward compatibility with version 1 of this Standard.

1

The associated entry’s EVENT_NUMBER value in this table shall be found in the corresponding HISTORY_LOG_DATA_TBL (Table 74).

2

The associated entry’s EVENT_NUMBER value in this table shall not be found in the corresponding HISTORY_LOG_DATA_TBL (Table 74).

3..15

Reserved.

EVENT_ENTRY_RCD EVENT_TIME

Date and time of Event Log entry.

EVENT_NUMBER

0..65535

This Element is a common event counter that increments whenever a new event is generated, regardless of whether the event is recorded in the History Log, the Event Log, or both logs.

EVENT_SEQ_NBR

0..65535

Sequence number associated with the Event Log only.

USER_ID

0..65535

The User ID associated with this Event Log entry. It comes from the Log In Procedure or from a communication session initiation sequence. A USER_ID of zero (0) means the End Device initiated the event. A USER_ID of one (1) means the event was manually initiated.

Decade 7: History & Event Logs / Table 76 Event Log Data Table

231

ANSI C12.19-2008

Tables

USER_ID values in the range of 57344 (E000H) through 65535 (FFFFH) are used for devices attached to the End Device. EVENT_CODE

Event code logged. See TABLE_IDB_BFLD.

EVENT_ARGUMENT

Argument associated with a specific entry. Refer to Annex B, “History & Event Log Codes”, for details.

EVENT_LOG_RCD EVENT_FLAGS

See LIST_STATUS_BFLD above.

NBR_VALID_ENTRIES

0..65535

Number of valid entries in the log. The range is zero (0) (meaning the log is empty) to the actual dimension of the log.

LAST_ENTRY_ELEMENT

0..65535

The array element number of the newest valid entry in the log.

LAST_ENTRY_SEQ_NBR

0..4294967295 The sequence number of the newest valid entry in the log. This Element shall not be resettable to zero, by the application, while the End Device is in metering mode (ED_MODE_STATUS_TBL. METERING_FLAG == TRUE). When the element increments beyond its largest possible value it shall roll over to zero.

NBR_UNREAD_ENTRIES

ENTRIES

232

0..65535

The number of entries in the log that have not yet been read. It is only changed through a procedure. Array of Event Log entries.

Decade 7: History & Event Logs / Table 76 Event Log Data Table

Tables

9.8.8

ANSI C12.19-2008

Table 77 Event Log and Signatures Enable Table

Table 77 Data Description SIG_ENABLE_TBL (Table 77) contains three collections of Standard and Manufacturer Table set selectors that identify the tables that are included in the computation of the METROLOGICAL_SIG, PROGRAM_SIG and ALTERNATE_SIG signatures found in the Signature table (Table 78). A fourth collection of Table set selectors is used to identify the tables that need to be logged in the Event Log data table (Table 76). A fifth collection of Table-set selectors is used to identify which tables are Secured Register Tables. Only tables identified within shall be recorded in the Signatures Table and only those Tables identified in the EVENTLOG_SEL shall trigger a Table-changed event entry in the Event Log data table (Table 76). Also only those Tables identified in the SECURED_REGISTER_SEL may trigger a Read Secured Table or Read Secured Register event entry in the Event Log data table (Table 76), when this capability is enabled by the End Device reader. Global Default Table Property Overrides: Role=“CONTROL” Table 77 Type Definitions TYPE TABLE_SEL_RCD = PACKED RECORD STD_TBLS_SEL : SET(GEN_CONFIG_TBL.DIM_STD_TBLS_USED); MFG_TBLS_SEL : SET(GEN_CONFIG_TBL.DIM_MFG_TBLS_USED); END; TYPE SIG_ENABLE_RCD = PACKED RECORD IF ACT_LOG_TBL.METROLOGICAL_SIG_FLAG THEN METROLOGICAL_SEL : TABLE_SEL_RCD; EVENTLOG_SEL : TABLE_SEL_RCD; END; IF ACT_LOG_TBL.PROGRAM_SIG_FLAG THEN PROGRAM_SEL : TABLE_SEL_RCD; END; IF ACT_LOG_TBL.ALTERNATE_SIG_FLAG THEN ALTERNATE_SEL : TABLE_SEL_RCD; END; IF ACT_LOG_TBL.SECURED_REGISTER_FLAG THEN SECURED_REGISTER_SEL : TABLE_SEL_RCD; END; END; TABLE 77 SIG_ENABLE_TBL = SIG_ENABLE_RCD; Table 77 Element Descriptions Identifier TABLE_SEL_RCD

Value

Definition Identification of the Standard and Manufacturer Tables that may trigger table change or secured-registers read events, or that may be signed.

Decade 7: History & Event Logs / Table 77 Event Log and Signatures Enable Table

233

ANSI C12.19-2008

Tables

STD_TBLS_SEL

This SET indicates which of the Standard tables are selected. Tables are represented by bits 0 through (8*DIM_STD_TBLS_USED-1). FALSE TRUE

MFG_TBLS_SEL

This SET indicates which of the Manufacturer tables are selected. Tables are represented by bits 0 through (8*DIM_STD_TBLS_USED-1). FALSE TRUE

SIG_ENABLE_RCD METROLOGICAL_SEL

EVENTLOG_SEL

234

No action is required for this table. When the corresponding table is modified, the action requested shall be performed.

No action is required for this table. When the corresponding table is modified, the action requested shall be performed. Identifies the Tables that contain metrological elements and shall be included in the computation of the METROLOGICAL_SIG. Indirect changes to these Tables (through Userdefined Tables, Extended User-defined Tables or other means) shall also cause the computation of the METROLOGICAL_SIG of all affected Tables. Indicates which of the Tables will trigger a “Table Written To” event (Event 10, 59, 64 or 69) or alternatively, an “End Device Programmed” event (Event 11, 60, 65 or 70) in the Event Log data table (Table 76). Tables that are not selected within, but are identified in METROLOGICAL_SEL, shall trigger a reverification (End Device unsealed) event upon change. Indirect changes to these Tables (through User-defined Tables, Extended Userdefined Tables or other means) shall also generate an Event Log entry, as if the referenced tables were modified or accessed directly; however the table identifier (TABLE_IDA_BFLD) recorded in the EVENT_ARGUMENT shall be that of the Userdefined Table or the Extended User-defined Table that triggered that event, when the change or access was carried out through a userdefined or extended-user-defined table (see Annex B for more details). A compliant implementation shall set all of corresponding bits of EVENT_LOG_CTRL_TBL.STD_TBLS_MONIT ORED_FLAGS and EVENT_LOG_CTRL_TBL.MFG_TBLS_MONIT ORED_FLAGS to TRUE if there were also set to TRUE in the EVENTLOG_SEL. STD_TBLS_SEL and

Decade 7: History & Event Logs / Table 77 Event Log and Signatures Enable Table

Tables

ANSI C12.19-2008

EVENTLOG_SEL.MFG_TBLS_SEL respectively for this trigger to be enabled. PROGRAM_SEL

Identifies the Tables that contain program elements and will be included in the computation of the PROGRAM_SIG.

ALTERNATE_SEL

Identifies the Tables that contain metrological elements and will be included in the computation of the ALTERNATE_SIG.

SECURED_REGISTER_SEL

Identifies the Tables that contain secured register, sensors or status elements that will be included in the computation of the SECURED_REGISTER_SIG (see Annex B) and trigger a Read Secured Table event (Event 7, 73 or 75) or a Read Secured Register event (Event 74 or 76) depending on the value of ACT_LOG_TBL.SECURED_REGISTER_FLAG and if the “Start Secured Register” procedure has been executed. A compliant implementation shall set all of the corresponding bits of EVENTLOG_SEL to TRUE if they were also set to TRUE in SECURED_REGISTER_SEL.

Decade 7: History & Event Logs / Table 77 Event Log and Signatures Enable Table

235

ANSI C12.19-2008

9.8.9

Tables

Table 78 End Device Program State Table

Table 78 Data Description PROGRAM_STATE_TBL (Table 78) contains a list of table identifiers and their corresponding signatures. This table provides information that can be used to validate the integrity of the Event Logger itself (EVENT_CHECK_SIG). This table also lists the tables that were modified and, hence, need to be downloaded when the Event Logger is downloadable (MODIFIED_FLAG). It also provides assist technology for improved field programming and program change detection in real-time (PROGRAM_SIG and ALTERNATE_SIG). There are a number of variations of signatures: Global signatures that represent the programming state of a selection of Tables (METROLOGICAL_SIG, PROGRAM_SIG and ALTERNATE_SIG); and audit trail signatures that cover the programming history of the End Device (EVENT_CHECK_SIG). When Table 78 is not implemented, its conceptual implementation logic shall be used to derive the event check signature, EVENT_CHECK_SIG, used in the Event Log data table (Table 76). Background information and description of the process required to generate these signatures is described in Annex E of this document. Global Default Table Property Overrides: Role=“DATA”, Accessibility=“READONLY” Table 78 Type Definitions TYPE TABLE_LIST_RCD = PACKED RECORD TABLE_ID : TABLE_IDA_BFLD; TABLE_SIG : BINARY(16); END; TYPE SIGNATURE_RCD = PACKED RECORD IF ACT_LOG_TBL.METROLOGICAL_SIG_FLAG THEN METROLOGICAL_SIG : BINARY(16); EVENT_CHECK_SIG : BINARY(16); END; IF ACT_LOG_TBL.PROGRAM_SIG_FLAG THEN PROGRAM_SIG : BINARY(16); END; IF ACT_LOG_TBL.ALTERNATE_SIG_FLAG THEN ALTERNATE_SIG : BINARY(16); END; TABLE_LIST : ARRAY[ACT_LOG_TBL.NBR_PROGRAM_TABLES] OF TABLE_LIST_RCD; END; TABLE 78 SIGNATURE_TBL = SIGNATURE_RCD; Table 78 Element Descriptions Identifier

Value

Definition

TABLE_IDA_BFLD TBL_PROC_NBR

0..2039

Redefines: STD.TABLE_IDA_BFLD. Table ID.

FALSE

Alias: STD_VS_MFG_FLAG. Standard table.

MFG_FLAG

236

Decade 7: History & Event Logs / Table 78 End Device Program State Table

Tables

ANSI C12.19-2008 TRUE MODIFIED_FLAG FALSE

TRUE

METROLOGICAL_FLAG FALSE TRUE

LOGGABLE_FLAG FALSE TRUE

ALTERNATE_FLAG FALSE TRUE TABLE_LIST_RCD TABLE_ID TABLE_SIG

SIGNATURE_RCD METROLOGICAL_SIG

Manufacturer table. Alias: PENDING_FLAG. This table was not changed since the last invocation of the Update Last Read Entries procedure (Procedure 5). Invocation of the Cold Start procedure (Procedure 0), or the Reset List Pointers procedure (Procedure 4) or Update Last Read Entries procedure (Procedure 5), shall set this flag to FALSE. This table was changed since the last invocation of the Update Last Read Entries procedure (Procedure 5). Alias: FLAG1. Alias: EUDT_FLAG. This table does not contain metrological parameters and it shall not be included in the computation of the METROLOGICAL_SIG. This table does contain metrological parameters and it shall be included in the computation of the METROLOGICAL_SIG. Alias: FLAG2. This table is not event loggable. This table is event loggable. Changes to this table shall result in the creation of an Event Log entry in the Event Log data table (Table 76). Also if this table was marked as a “secured register” table this bit shall be also set. Alias: FLAG3. This table shall not be included in the computation of the ALTERNATE_SIG. This table shall be included in the computation of the ALTERNATE_SIG. Identification number of the table. Active table signature. The signature is used to detect changes made to this Table. This signature is computed using the MD5 algorithm applied to the entire binary content of the Table. The resulting signature becomes available as input in the computation of the PROGRAM_SIG, EVENT_CHECK_SIG or the ALTERNATE_SIG. A signature that captures the active metrological state of an End Device. It is the digest of all tables with METROLOGICAL_FLAG set to TRUE.

Decade 7: History & Event Logs / Table 78 End Device Program State Table

237

ANSI C12.19-2008

Tables

The algorithm digests each TABLE_SIG in order of increasing index, starting with Standard Tables and followed by Manufacturer Tables. EVENT_CHECK_SIG

A signature that is used to detect event log discontinuity for the life of the End Device. This signature is created by the repeated application of the MD5 algorithm applied to the new EVENT_ENTRY_RCD entries that are being added to the Event Log data table (Table 76). The processing logic for the creation of EVENT_CHECK_SIG in this table and in Table 76 is as follows: 1. Update TABLE_SIGs to reflect the changes to all metrological tables. 2. Update the signature element METROLOGICAL_SIG to reflect the changes to metrological tables. The METROLOGICAL_SIG value is the result of the use of the MD5 algorithm to digest the concatenated signatures produced in step 1 above. Only signatures of metrological tables shall be included in the computation. These shall be ordered for processing in increasing table numbers starting with Standard Tables and followed by Manufacturer Tables. 3. Create a new event entry in Table 76, Event Log Data Table, and initialize its EVENT_ARGUMENT elements to binary 00H. 4. Fill in the EVENT_TIME, the optional EVENT_NUMBER, the required EVENT_SEQ_NBR, USER_ID and EVENT_CODE and all EVENT_ARGUMENT elements except for EVENT_CHECK_SIG (if present). 5. Using the MD5 algorithm digest the newly created event information that was placed in the EVENT_ENTRY_RCD. This includes all elements of the EVENT_ARGUMENT, but excludes the EVENT_CHECK_SIG element. For example, when EVENT_CODE=65, the EVENT_ARGUMENT will not be digested; when EVENT_CODE=64, only the TABLE_IDA_BFLD field of the EVENT_ARGUMENT will be digested; when EVENT_CODE=70, then all octets starting at offset 16 to offset ACT_LOG_TBL.EVENT_DATA_LENGTH1 of the EVENT_ARGUMENT will be digested.

238

Decade 7: History & Event Logs / Table 78 End Device Program State Table

Tables

ANSI C12.19-2008

6. Append to the EVENT_ENTRY_RCD’s signature (computed in step 5 above) the previous event log entry EVENT_CHECK_SIG (or use a signature of binary 0’s if this is the first event entry being created) then append the metrological signature (computed in step 2) and finally digest the three concatenated signatures, using the MD5 algorithm to, produce the Event Logger entry’s signature. 7. Place the result into (to replace) the EVENT_CHECK_SIG in this table. Also copy it into the EVENT_CHECK_SIG of the EVENT_ARGUMENT of Table 76 (if applicable). The Event Logger’s (Table 76) most recent signature shall be identical to the most recent EVENT_CHECK_SIG element of Table 78 at all times. PROGRAM_SIG

A signature that captures the active programmed state of an End Device. It is the digest of all Tables listed in TABLE_LIST using the MD5 algorithm. The algorithm digests each TABLE_SIG in order of increasing index. This signature can provide assist values for an external device in the caching of meter configuration state.

ALTERNATE_SIG

A signature that captures the active state of an End Device, subject to (alternate unspecified by this standard) application requirements. It is the digest of all tables with ALTERNATE_FLAG set to TRUE. The algorithm digests each TABLE_SIG in order of increasing index. A typical use of this signature is to check for changes to a collection of End Device identity independent programming Tables. This signature can be used to compare and validate the program state of a population of deployed End Device.

TABLE_LIST

Array containing the list of Tables monitored for change with signatures. See TABLE_LIST_RCD.

Decade 7: History & Event Logs / Table 78 End Device Program State Table

239

ANSI C12.19-2008

Tables

9.8.10 Table 79 Event Counters Table Table 79 Data Description EVENT_COUNTER_TBL (Table 79) contains Event Counters used to detect modification to calibration, programming or metrological parameters. Global Default Table Property Overrides: Role=“DATA”, Accessibility=“READONLY” Table 79 Type Definitions TYPE EVENT_COUNTER_RCD = PACKED RECORD CALIBRATION_COUNTER : UINT16; PROGRAM_COUNTER : UINT16; END; TABLE 79 EVENT_COUNTER_TBL = EVENT_COUNTER_RCD; Table 79 Element Descriptions Identifier

Value

Definition

EVENT_COUNTER_RCD CALIBRATION_COUNTER

0..65535

Incremented by one each time one or multiple calibration parameters are modified. Incremented by one each time one or multiple programming or metrological parameters are modified. This counter may be used by upstream devices to trigger an update to the configuration information stored (caching of static information) for this device.

PROGRAM_COUNTER

240

0..65535

Decade 7: History & Event Logs / Table 79 Event Counters Table

Tables

ANSI C12.19-2008

9.9 Decade 8: User-defined Tables Decade 8 Name USER_DEFINED_TABLES_DEC Decade 8 Data Description These tables provide the capability for the End Device user to build custom tables using selections from the tables available in an End Device. The selections are bi-directional in the sense that any change to a value of a selected table element will manifest itself in the user-defined table that contains that selection, and any change to a selected identifier from the user-defined table shall result in a corresponding change in the selected table identifier. All event log, change events, and security constraints shall operate to maintain coherence between the user-defined tables and the table identifiers they point to. Support of writing to user-defined tables is optional at the manufacturer discretion on a per table basis. 9.9.1

Table 80 User-defined Tables Dimension Limits Table

Table 80 Data Description DIM_UDT_FUNC_LIM_TBL (Table 80) contains maximum values and control parameters for the userdefined tables. These values set up to six independent sets of user-defined tables. Global Default Table Property Overrides: Role=“LIMITING”, Accessibility=“READONLY” Table 80 Type Definitions TYPE UDT_CTRL_BFLD = BIT FIELD OF UINT8 NBR_UDTS : UINT(0..2); INSTANCE_FLAG : BOOL(3); DATA_ACCESS_METHOD : UINT(4..5); FILLER : FILL(6..7); END; TYPE UDT_FUNC_LIM_RCD = PACKED RECORD NBR_XFR_LIST_ITEMS : UINT16; UDT_FUNC_CTRL : UDT_CTRL_BFLD; MAX_INSTANCE : UINT8; IF GEN_CONFIG_TBL.STD_TBLS_USED[UDT_0_TBL] THEN UDT_0_SIZE : UINT32; END; IF GEN_CONFIG_TBL.STD_TBLS_USED[UDT_1_TBL] THEN UDT_1_SIZE : UINT32; END; IF GEN_CONFIG_TBL.STD_TBLS_USED[UDT_2_TBL] THEN UDT_2_SIZE : UINT32; END; IF GEN_CONFIG_TBL.STD_TBLS_USED[UDT_3_TBL] THEN UDT_3_SIZE : UINT32; END; IF GEN_CONFIG_TBL.STD_TBLS_USED[UDT_4_TBL] THEN UDT_4_SIZE : UINT32; END; IF GEN_CONFIG_TBL.STD_TBLS_USED[UDT_5_TBL] THEN UDT_5_SIZE : UINT32;

Decade 8: User-defined Tables / Table 80 User-defined Tables Dimension Limits Table

241

ANSI C12.19-2008

Tables

END; END; TABLE 80 DIM_UDT_FUNC_LIM_TBL = UDT_FUNC_LIM_RCD; Table 80 Element Descriptions Identifier

Value

Definition

UDT_CTRL_BFLD NBR_UDTS

0..6

The maximum number of user-defined tables, that can be defined concurrently by the list of data items. Reserved.

7 INSTANCE_FLAG

FALSE TRUE

DATA_ACCESS_METHOD 0 1 2 3 DIM_UDT_FUNC_LIM_TBL NBR_XFR_LIST_ITEMS

0..65535

UDT_FUNC_CTRL

Multiple instances are not supported. MAX_INSTANCE shall be ignored. Multiple table instances are supported. Element used to designate possible methods of selecting table entries for placement in a userdefined table. Only complete tables can be mapped into user tables. Partial tables cannot be mapped. Offset-count access method is supported. Index-count access method is supported. Access methods 2 and 3 are supported. The maximum number of UINT16 entries used to make the list. These are the limiting capabilities for userdefined table selections. This defines the maximum number of user-defined tables supported in this decade and the data access method, as defined by UDT_CTRL_BFLD.

MAX_INSTANCE

0 1..255

UDT_0_SIZE

0..4294967295

Reserved. Maximum number of table sets supported by this End Device. If INSTANCE_FLAG is FALSE then this Element is ignored. Maximum number of octets used to size UDT_0_TBL (Table 84).

UDT_1_SIZE

0..4294967295 Maximum number of octets used to size UDT_1_TBL (Table 85).

UDT_2_SIZE

0..4294967295 Maximum number of octets used to size UDT_2_TBL (Table 86).

242

Decade 8: User-defined Tables / Table 80 User-defined Tables Dimension Limits Table

Tables

ANSI C12.19-2008

UDT_3_SIZE

0..4294967295 Maximum number of octets used to size UDT_3_TBL (Table 87).

UDT_4_SIZE

0..4294967295 Maximum number of octets used to size UDT_4_TBL (Table 88).

UDT_5_SIZE

0..4294967295 Maximum number of octets used to size UDT_5_TBL (Table 89).

Decade 8: User-defined Tables / Table 80 User-defined Tables Dimension Limits Table

243

ANSI C12.19-2008

9.9.2

Tables

Table 81 Actual User-defined Tables Limiting Table

Table 81 Data Description ACT_UDT_FUNC_LIM_TBL (Table 81) contains actual limiting values for the user-defined tables. These parameters define up to six independent sets of user-defined tables definitions. Global Default Table Property Overrides: Role=“ACTUAL” Table 81 Type Definitions TABLE 81 ACT_UDT_FUNC_LIM_TBL = UDT_FUNC_LIM_RCD; Table 81 Element Descriptions Identifier

Value

Definition

0..6

Redefines: DIM_UDT_FUNC_LIM_TBL. UDT_CTRL_BFLD. The actual number of user-defined tables, that are defined concurrently by the list of data items. Reserved.

UDT_CTRL_BFLD NBR_UDTS

7 INSTANCE_FLAG

FALSE TRUE

DATA_ACCESS_METHOD 0 1 2 3 UDT_FUNC_LIM_RCD NBR_XFR_LIST_ITEMS

Multiple instances are not MAX_INSTANCE shall be ignored. Multiple table sets are in use.

Designates the actual method of selecting table entries for placement in a user-defined table. Complete tables are mapped into user tables. Partial table cannot be mapped. Offset-count access method is used. Index-count access method is used. Reserved. Redefines: DIM_UDT_FUNC_LIM_TBL. UDT_FUNC_LIM_RCD.

0.. 65535

UDT_FUNC_CTRL

The actual number of UINT16 entries used in the list. The actual method used for user-defined tables selections. This identifies the actual number of user-defined tables and the data access method used in this decade as defined by UDT_FLAGS_BFLD.

MAX_INSTANCE

0 1..255

UDT_0_SIZE

0..4294967295

Reserved. Actual number of table sets used by this End Device. If INSTANCE_FLAG is FALSE ignore. Actual number of octets UDT_0_TBL (Table 84).

244

supported.

used

to

size

Decade 8: User-defined Tables / Table 81 Actual User-defined Tables Limiting Table

Tables

ANSI C12.19-2008

UDT_1_SIZE

UDT_2_SIZE

UDT_3_SIZE

UDT_4_SIZE

UDT_5_SIZE

0..4294967295 Actual number of octets UDT_1_TBL (Table 85).

used

to

size

Actual number of octets UDT_2_TBL (Table 86).

used

to

size

Actual number of octets UDT_3_TBL (Table 87).

used

to

size

Actual number of octets UDT_4_TBL (Table 88).

used

to

size

Actual number of octets UDT_5_TBL (Table 89).

used

to

size

0..4294967295

0..4294967295

0..4294967295

0..4294967295

Decade 8: User-defined Tables / Table 81 Actual User-defined Tables Limiting Table

245

ANSI C12.19-2008

9.9.3

Tables

Table 82 User-defined Tables List Table

Table 82 Data Description UDT_LIST_TBL (Table 82) defines data elements used in the generation of user-defined tables for this decade. Global Default Table Property Overrides: Role=“CONTROL” Table 82 Type Definitions TYPE SOURCE_ITEM_RCD = PACKED RECORD TABLE_ID : TABLE_IDB_BFLD; IF ACT_UDT_FUNC_LIM_TBL.INSTANCE_FLAG THEN TABLE_INSTANCE : UINT16; END; SWITCH ACT_UDT_FUNC_LIM_TBL.DATA_ACCESS_METHOD OF CASE 0: NO_DATA : NIL; CASE 1: OFFSET : UINT16; CASE 2: INDEX : ARRAY[.TABLE_ID.SELECTOR] OF UINT16; END; COUNT : UINT16; END; TYPE UDT_LIST_SEL_RCD = PACKED RECORD UDT_LIST : ARRAY[ACT_UDT_FUNC_LIM_TBL.NBR_XFR_LIST_ITEMS] OF UINT16; END; TABLE 82 UDT_LIST_TBL = UDT_LIST_SEL_RCD; Table 82 Element Descriptions Identifier

Value

TABLE_IDB_BFLD TBL_PROC_NBR

0..2039

MFG_FLAG

SELECTOR

Definition Redefines: STD.TABLE_IDB_BFLD. Information source table number. Note: the corresponding implementation bit shall be set in GEN_CONFIG_TBL (Table 00). Identifies the data Element as originating from either a standard table or a manufacturer table. Alias: STD_VS_MFG_FLAG.

FALSE TRUE

Standard table. Manufacturer table.

0..15

When ACT_UDT_FUNC_LIM_TBL. DATA_ACCESS_METHOD is zero (0) the table access method is used. SELECTOR shall be ignored. When the ACT_UDT_FUNC_LIM_TBL. DATA_ACCESS_METHOD is one (1) this field is the most significant 4 bits (bits 16..19) of the

246

Decade 8: User-defined Tables / Table 82 User-defined Tables List Table

Tables

ANSI C12.19-2008 offset to the data element required to locate the data item in a table. When ACT_UDT_FUNC_LIM_TBL. DATA_ACCESS_METHOD is two (2) this is the number of indices used to select an entry in a table.

SOURCE_ITEM_RCD TABLE_ID TABLE_INSTANCE

0..254 255..65535

NO_DATA OFFSET

Full table references are used. 0..65535

INDEX COUNT UDT_LIST_SEL_RCD UDT_LIST

Effective structure of a single entry in the UDT_LIST array. See TABLE_IDB_BFLD. Table set instance number. Reserved.

This field holds the least significant 16 bits of the offset to the data element required to locate the data item in a table. This is an array of indices, which combine to define the index to an item entry in a table.

0..65535

Length of data item(s) in octets. When the value is zero it is the end of the list. An array holding ACT_UDT_FUNC_LIM_TBL. NBR_XFR_LIST_ITEM UINT16 quantities. This space is mapped using SOURCE_ITEM_RCD into variable length records which select table or partial tables for access via the user-defined tables.

Decade 8: User-defined Tables / Table 82 User-defined Tables List Table

247

ANSI C12.19-2008

9.9.4

Tables

Table 83 User-defined Tables Selections Table

Table 83 Data Description UDT_SEL_TBL (Table 83) specifies what data elements are used in user tables defined for this decade. Each array entry in this table corresponds to a specific table in this decade following this table. For example, the third entry in this array corresponds to Table 83 + 3 = Table 86. Global Default Table Property Overrides: Role=“CONTROL” Table 83 Type Definitions TYPE UDT_SET_RCD = PACKED RECORD FIRST_ITEM_NBR : UINT16; LAST_ITEM_NBR : UINT16; END; TYPE UDT_DATA_SETS_RCD = PACKED RECORD UDT_DATA_SETS : ARRAY[ACT_UDT_FUNC_LIM_TBL.NBR_UDTS] OF UDT_SET_RCD; END; TABLE 83 UDT_SEL_TBL = UDT_DATA_SETS_RCD; Table 83 Element Descriptions Identifier

Value

Definition

UDT_SETS_RCD FIRST_ITEM_NBR

0..65535

This is an item number in UDT_LIST_TBL (Table 82) specifying the first item in the userdefined table selected by this entry.

LAST_ITEM_NBR

0..65535

This is item number in UDT_LIST_TBL (Table 82) specifying the last item in the user-defined tables selected by this entry.

UDT_DATA_SETS_RCD UDT_DATA_SETS

248

Array containing up to ACT_UDT_FUNC_LIM_TBL.NBR_UDTS (Table 81) entries. Each entry defines the source selections for a user-defined table.

Decade 8: User-defined Tables / Table 83 User-defined Tables Selections Table

Tables

9.9.5

ANSI C12.19-2008

Table 84 User-defined Table Zero

Table 84 Data Description This table is defined by the items in table UDT_LIST_TBL (Table 82) selected by the first entry in table UDT_SEL_TBL (Table 83). Global Default Table Property Overrides: Class=“STD.UDT” Table 84 Type Definitions TYPE UDT_0_RCD = PACKED RECORD UDT_0_DATA : BINARY(ACT_UDT_FUNC_LIM_TBL.UDT_0_SIZE); END; TABLE 84 UDT_0_TBL = UDT_0_RCD; Table 84 Element Descriptions Identifier UDT_0_RCD

Value

Definition Contains ACT_UDT_FUNCT_LIM_TBL. UDT_0_SIZE octets holding data defined by the first entry in the list defined in UDT_SEL_TBL (Table 83).

Decade 8: User-defined Tables / Table 84 User-defined Table Zero

249

ANSI C12.19-2008

9.9.6

Tables

Table 85 User-defined Table One

Table 85 Data Description This table is defined by the items in table UDT_LIST_TBL (Table 82) selected by the second entry in table UDT_SEL_TBL (Table 83). Global Default Table Property Overrides: Class=“STD.UDT” Table 85 Type Definitions TYPE UDT_1_RCD = PACKED RECORD UDT_1_DATA : BINARY(ACT_UDT_FUNC_LIM_TBL.UDT_1_SIZE); END; TABLE 85 UDT_1_TBL = UDT_1_RCD; Table 85 Element Descriptions Identifier UDT_1_RCD

250

Value

Definition Contains ACT_UDT_FUNCT_LIM_TBL. UDT_1_SIZE octets holding data defined by the second entry in the list defined in UDT_SEL_TBL (Table 83).

Decade 8: User-defined Tables / Table 85 User-defined Table One

Tables

9.9.7

ANSI C12.19-2008

Table 86 User-defined Table Two

Table 86 Data Description This table is defined by the items in table UDT_LIST_TBL (Table 82) selected by the third entry in table UDT_SEL_TBL (Table 83). Global Default Table Property Overrides: Class=“STD.UDT” Table 86 Type Definitions TYPE UDT_2_RCD = PACKED RECORD UDT_2_DATA : BINARY(ACT_UDT_FUNC_LIM_TBL.UDT_2_SIZE); END; TABLE 86 UDT_2_TBL = UDT_2_RCD; Table 86 Element Descriptions Identifier UDT_2_RCD

Value

Definition Contains ACT_UDT_FUNCT_LIM_TBL. UDT_2_SIZE octets holding data defined by the third entry in the list defined in UDT_SEL_TBL (Table 83).

Decade 8: User-defined Tables / Table 86 User-defined Table Two

251

ANSI C12.19-2008

9.9.8

Tables

Table 87 User-defined Table Three

Table 87 Data Description This table is defined by the items in table UDT_LIST_TBL (Table 82) selected by the fourth entry in table UDT_SEL_TBL (Table 83). Global Default Table Property Overrides: Class=“STD.UDT” Table 87 Type Definitions TYPE UDT_3_RCD = PACKED RECORD UDT_3_DATA : BINARY(ACT_UDT_FUNC_LIM_TBL.UDT_3_SIZE); END; TABLE 87 UDT_3_TBL = UDT_3_RCD; Table 87 Element Descriptions Identifier UDT_3_RCD

252

Value

Definition ContainS ACT_UDT_FUNCT_LIM_TBL. UDT_3_SIZE octets holding data defined by the fourth entry in the list defined in UDT_SEL_TBL (Table 83).

Decade 8: User-defined Tables / Table 87 User-defined Table Three

Tables

9.9.9

ANSI C12.19-2008

Table 88 User-defined Table Four

Table 88 Data Description This table is defined by the items in table UDT_LIST_TBL (Table 82) selected by the fifth entry in table UDT_SEL_TBL (Table 83). Global Default Table Property Overrides: Class=“STD.UDT” Table 88 Type Definitions TYPE UDT_4_RCD = PACKED RECORD UDT_4_DATA : BINARY(ACT_UDT_FUNC_LIM_TBL.UDT_4_SIZE); END; TABLE 88 UDT_4_TBL = UDT_4_RCD; Table 88 Element Descriptions Identifier UDT_4_RCD

Value

Definition Array containing ACT_UDT_FUNCT_LIM_TBL. UDT_4_SIZE octets holding data defined by the fifth entry in the list defined in UDT_SEL_TBL (Table 83).

Decade 8: User-defined Tables / Table 88 User-defined Table Four

253

ANSI C12.19-2008

Tables

9.9.10 Table 89 User-defined Table Five Table 89 Data Description This table is defined by the items in table UDT_LIST_TBL (Table 82) selected by the sixth entry in table UDT_SEL_TBL (Table 83). Global Default Table Property Overrides: Class=“STD.UDT” Table 89 Type Definitions TYPE UDT_5_RCD = PACKED RECORD UDT_5_DATA : BINARY(ACT_UDT_FUNC_LIM_TBL.UDT_5_SIZE); END; TABLE 89 UDT_5_TBL = UDT_5_RCD; Table 89 Element Descriptions Identifier UDT_5_RCD

254

Value

Definition Contains ACT_UDT_FUNCT_LIM_TBL. UDT_5_SIZE octets holding data defined by the sixth entry in the list defined in UDT_SEL_TBL (Table 83).

Decade 8: User-defined Tables / Table 89 User-defined Table Five

Tables

ANSI C12.19-2008

9.10 Decade 9: Telephone Control Tables Decade 9 Name TELEPHONE_CONTROL_DEC This decade contains tables associated with the use of a telephone modem. 9.10.1 Table 90 Telephone Dimension Limits Table Table 90 Data Description DIM_TELEPHONE_TBL (Table 90) specifies the maximum dimensional values for this decade. Global Default Table Property Overrides: Role=“LIMITING”, Accessibility=“READONLY” TYPE TELEPHONE_FLAGS_BFLD = BIT FIELD OF UINT8 ANSWER_FLAG : BOOL(0); S_ANCHOR_DATE_FLAG : BOOL(1); OFFHOOK_DETECT_FLAG : BOOL(2); BIT_RATE : UINT(3..4); ID_IN_PURPOSE : BOOL(5); NO_LOCKOUT_PARM : BOOL(6); EXTENDED_STATUS : BOOL(7); END; TYPE TELEPHONE_RCD = PACKED RECORD TELEPHONE_FLAGS : TELEPHONE_FLAGS_BFLD; NBR_ORIGINATE_WINDOWS : UINT8; NBR_SETUP_STRINGS : UINT8; SETUP_STRING_LENGTH : UINT8; PREFIX_LENGTH : UINT8; NBR_ORIGINATE_NUMBERS : UINT8; PHONE_NUMBER_LENGTH : UINT8; NBR_RECURRING_DATES : UINT8; NBR_NON_RECURRING_DATES : UINT8; NBR_EVENTS : UINT8; NBR_WEEKLY_SCHEDULES : UINT8; NBR_ANSWER_WINDOWS : UINT8; NBR_CALLER_IDS : UINT8; CALLER_ID_LENGTH : UINT8; END; TABLE 90 DIM_TELEPHONE_TBL = TELEPHONE_RCD; Table 90 Element Descriptions Identifier

Value

Definition

TELEPHONE_FLAGS_BFLD ANSWER_FLAG

FALSE

End Device is not capable of answering a phone call. End Device is capable of answering a phone call.

TRUE

Decade 9: Telephone Control Tables / Table 90 Telephone Dimension Limits Table

255

ANSI C12.19-2008

Tables

S_ANCHOR_DATE_FLAG

FALSE TRUE

OFFHOOK_DETECT_FLAG

FALSE TRUE

BIT_RATE

0 1 2 3

ID_IN_PURPOSE

FALSE TRUE

NO_LOCKOUT_PARM

FALSE TRUE

EXTENDED_STATUS

FALSE TRUE

TELEPHONE_RCD TELEPHONE_FLAGS

End Device is not capable of detecting off hook conditions. End Device is capable of detecting off hook conditions. End Device is not capable of modifying its bit rate. End Device is capable of modifying globally its originating and answering bit rate. End Device is capable of modifying separately its originating and answering bit rate. Reserved. End Device is not capable of including an ID field in CALL_PURPOSE_TBL. End Device is capable of including an ID field in CALL_PURPOSE_TBL (Table 96). End Device is capable of supporting lockout parameters in table ANSWER_PARAMETERS_TBL (Table 95). End Device is not capable of supporting lockout parameters in table ANSWER_PARAMETERS_TBL (Table 95). End Device is not capable of including Last call purpose in the CALL_STATUS_TBL (Table 97). End Device is capable of including Last call purpose in the CALL_STATUS_TBL (Table 97). See TELEPHONE_FLAGS_BFLD.

NBR_ORIGINATE_WINDOWS 0..255

Maximum number of originate time window descriptions supported by the End Device.

NBR_SETUP_STRINGS

0..255

Maximum number of setup strings supported by the End Device.

SETUP_STRING_LENGTH

0..255

Maximum length (in bytes) of setup strings supported by the End Device.

PREFIX_LENGTH

0..255

Maximum length (in bytes) of phone number prefix supported by the End Device.

NBR_ORIGINATE_NUMBERS 0..7 8..255

256

End Device is not capable of accepting a separate telephone schedule anchor date for the Period/Delta RDATE type (recurring date). End Device is capable of accepting a separate telephone schedule anchor date for the Period/Delta RDATE type (recurring date).

Maximum number of originate phone numbers supported by the End Device. Reserved.

Decade 9: Telephone Control Tables / Table 90 Telephone Dimension Limits Table

Tables

ANSI C12.19-2008

PHONE_NUMBER_LENGTH

0..255

Maximum length (in bytes) of phone numbers supported by the End Device.

NBR_RECURRING_DATES

0..255

Maximum number of recurring dates supported to create the origination schedule.

NBR_NON_RECURRING_DATES 0..255 NBR_EVENTS

Maximum number of non-recurring dates supported to create the origination schedule.

0..255

Maximum number of events supported to create the origination schedule.

NBR_WEEKLY_SCHEDULES 0..255

Maximum number of weekly schedules supported to create the origination schedule.

NBR_ANSWER_WINDOWS

0..255

Maximum number of answer time window descriptions supported by the End Device.

NBR_CALLER_IDS

0..255

Maximum number of Caller ID strings supported by the End Device.

CALLER_ID_LENGTH

0..255

Maximum length (in bytes) of Caller ID strings supported by the End Device.

Decade 9: Telephone Control Tables / Table 90 Telephone Dimension Limits Table

257

ANSI C12.19-2008

Tables

9.10.2 Table 91 Actual Telephone Table Table 91 Data Description ACT_TELEPHONE_TBL (Table 91) contains actual dimension values for this decade. Global Default Table Property Overrides: Role=“ACTUAL” Table 91 Type Definitions TABLE 91 ACT_TELEPHONE_TBL = TELEPHONE_RCD; Table 91 Element Descriptions Value

Definition

ANSWER_FLAG

FALSE TRUE

Redefines: DIM_TELEPHONE_TBL. TELEPHONE_FLAGS_BFLD. End Device shall not answer a phone call. End Device may answer a phone call.

S_ANCHOR_DATE_FLAG

FALSE

Identifier TELEPHONE_FLAGS_BFLD

TRUE

OFFHOOK_DETECT_FLAG

FALSE TRUE

BIT_RATE

0 1 2

3 ID_IN_PURPOSE

FALSE TRUE

NO_LOCKOUT_PARM

258

FALSE

End Device does not accept a separate telephone schedule anchor date for the Period/Delta RDATE type (recurring date). End Device accepts a separate telephone schedule anchor date for the Period/Delta RDATE type (recurring date). End Device does not currently detect off hook conditions. End Device currently detects off hook conditions. Bit rate cannot be controlled. Answering and originating bit rate can be controlled globally in GLOBAL_PARAMETERS_TBL (Table 92). Answering and originating bit rate can be controlled separately in ORIGINATE_PARAMETERS_TBL (Table 93) and ANSWER_PARAMETERS_TBL (Table 95). Reserved. End Device does not currently include an ID field in CALL_PURPOSE_TBL (Table 96). End Device currently includes an ID field in CALL_PURPOSE_TBL (Table 96). End Device currently includes lockout parameters in table ANSWER_PARAMETERS_TBL (Table 95).

Decade 9: Telephone Control Tables / Table 91 Actual Telephone Table

Tables

ANSI C12.19-2008

EXTENDED_STATUS

TRUE

End Device does not currently include lockout parameters in table ANSWER_PARAMETERS_TBL (Table 95).

FALSE

End Device is not including last call purpose information in the CALL_STATUS_TBL (Table 97). End Device is including last call purpose information in the CALL_STATUS_TBL (Table 97).

TRUE

TELEPHONE_RCD

Redefines: DIM_TELEPHONE_TBL.TELEPHONE_RCD. See TELEPHONE_FLAGS_BFLD.

TELEPHONE_FLAGS NBR_ORIGINATE_WINDOWS 0..255

Actual number of originate time descriptions used by the End Device

NBR_SETUP_STRINGS

0..255

Actual number of setup strings used by the End Device.

SETUP_STRING_LENGTH

0..255

Actual length (in bytes) of setup strings used by the End Device.

PREFIX_LENGTH

0..255

Actual length (in bytes) of phone number prefix used by the End Device.

NBR_ORIGINATE_NUMBERS 0..7 8..255

window

Actual number of originate phone numbers used by the End Device. Reserved.

PHONE_NUMBER_LENGTH

0..255

Actual length (in bytes) of phone numbers used by the End Device.

NBR_RECURRING_DATES

0..255

Actual number of recurring dates used to create the origination schedule.

NBR_NON_RECURRING_DATES 0..255 NBR_EVENTS

Actual number of non-recurring dates used to create the origination schedule.

0..255

Actual number of events used to create the origination schedule.

NBR_WEEKLY_SCHEDULES 0..255

Actual number of weekly schedules used to create the origination schedule.

NBR_ANSWER_WINDOWS

0..255

Actual number of answer time descriptions used by the End Device.

NBR_CALLER_IDS

0..255

Actual number of Caller ID strings used by the End Device.

CALLER_ID_LENGTH

0..255

Actual length (in bytes) of Caller ID strings used by the End Device.

Decade 9: Telephone Control Tables / Table 91 Actual Telephone Table

window

259

ANSI C12.19-2008

Tables

9.10.3 Table 92 Telephone Global Parameters Table Table 92 Data Description GLOBAL_PARAMETERS_TBL (Table 92) defines general parameters used both for answering and originating a call. Global Default Table Property Overrides: Role=“CONTROL” Table 92 Type Definitions TYPE SETUP_STRING_RCD = PACKED RECORD SETUP_STRING : STRING(ACT_TELEPHONE_TBL.SETUP_STRING_LENGTH); END; TYPE GLOBAL_PARAMETERS_RCD = PACKED RECORD PSEM_IDENTITY : UINT8; IF ACT_TELEPHONE_TBL.BIT_RATE == 1 THEN BIT_RATE : UINT32; END; MODEM_SETUP_STRINGS : ARRAY[ACT_TELEPHONE_TBL.NBR_SETUP_STRINGS] OF SETUP_STRING_RCD; END; TABLE 92 GLOBAL_PARAMETERS_TBL = GLOBAL_PARAMETERS_RCD; Table 92 Element Descriptions Value

Identifier SETUP_STRING_RCD SETUP_STRING GLOBAL_PARAMETERS_RCD PSEM_IDENTITY

Definition Modem setup string used to configure the modem.

0..255

Value used by the field in Layer 2 of C12.21 for the End Device (meter, etc.) identity. It identifies the End Device in both the request and response packets. In requests, this byte may be set to 00H as a universal identity. All devices shall respond to this identifier value as a minimum. This value (00H) shall not be used in a multi-drop environment. The individual End Device identity must be in the range 01H to FEH. In requests, this byte may be set to FFH to target the calling party during an inbound call. Only the End Device that initiated the inbound call shall process packets with identity byte equal to FFH.

260

Decade 9: Telephone Control Tables / Table 92 Telephone Global Parameters Table

Tables

ANSI C12.19-2008 The value FFH may be used in both single drop and multi-drop environments. The End Device shall use its own identity byte in the response for all requests (including 00H and FFH) . BIT_RATE

MODEM_SETUP_STRINGS

Bit rate at which the End Device will originate or answer a call. 0 Denotes an externally defined bit rate. 1..4294967295 End Device call origination bit rate in bits per second. An array of Modem Setup Strings.

Decade 9: Telephone Control Tables / Table 92 Telephone Global Parameters Table

261

ANSI C12.19-2008

Tables

9.10.4 Table 93 Telephone Call Originate Parameters Table Table 93 Data Description ORIGINATE_PARAMETERS_TBL (Table 93) defines originate configuration parameters. Originate refers to the End Device placing calls to a utility host. Global Default Table Property Overrides: Role=“CONTROL” Table 93 Type Definitions TYPE DAYS_BFLD = BIT FIELD OF UINT8 SUNDAY : BOOL(0); MONDAY : BOOL(1); TUESDAY : BOOL(2); WEDNESDAY : BOOL(3); THURSDAY : BOOL(4); FRIDAY : BOOL(5); SATURDAY : BOOL(6); FILLER : FILL(7..7); END; TYPE WINDOW_RCD = PACKED RECORD BEGIN_WINDOW_TIME : STIME; WINDOW_DURATION : STIME; WINDOW_DAYS : DAYS_BFLD; END; TYPE PHONE_NUMBER_RCD = PACKED RECORD PHONE_NUMBER : STRING(ACT_TELEPHONE_TBL.PHONE_NUMBER_LENGTH); END; TYPE PHONE_NUMBERS_RCD = PACKED RECORD PREFIX : STRING(ACT_TELEPHONE_TBL.PREFIX_LENGTH); PHONE_NUMBERS : ARRAY[ACT_TELEPHONE_TBL.NBR_ORIGINATE_NUMBERS] OF PHONE_NUMBER_RCD; END; TYPE ORIGINATE_PARAMETERS_RCD = PACKED RECORD IF ACT_TELEPHONE_TBL.BIT_RATE == 2 THEN ORIGINATE_BIT_RATE : UINT32; END; DIAL_DELAY : UINT8; ORIGINATE_PHONE_NUMBERS : PHONE_NUMBERS_RCD; WINDOWS : ARRAY[ACT_TELEPHONE_TBL.NBR_ORIGINATE_WINDOWS] OF WINDOW_RCD; IF ACT_TELEPHONE_TBL.TELEPHONE_FLAGS.EXTENDED_STATUS THEN ANSWER_TIMEOUT : UINT8; RETRY_INTERVAL : UINT16; MAX_RETRIES : UINT8; END; END;

262

Decade 9: Telephone Control Tables / Table 93 Telephone Call Originate Parameters Table

Tables

ANSI C12.19-2008

TABLE 93 ORIGINATE_PARAMETERS_TBL = ORIGINATE_PARAMETERS_RCD; Table 93 Element Descriptions Value

Definition

FALSE TRUE

This window does not start each Sunday. This window does start each Sunday.

MONDAY

FALSE TRUE

This window does not start each Monday. This window does start each Monday.

TUESDAY

FALSE TRUE

This window does not start each Tuesday. This window does start each Tuesday.

WEDNESDAY

FALSE TRUE

This window does not start each Wednesday. This window does start each Wednesday.

THURSDAY

FALSE TRUE

This window does not start each Thursday. This window does start each Thursday.

FRIDAY

FALSE TRUE

This window does not start each Friday. This window does start each Friday.

SATURDAY

FALSE TRUE

This window does not start each Saturday. This window does start each Saturday.

Identifier DAYS_BFLD SUNDAY

WINDOW_RCD BEGIN_WINDOW_TIME

The time of day the window starts.

WINDOW_DURATION

The duration of the window.

WINDOW_DAYS

Defines the days that a window can start. See DAYS_BFLD.

PHONE_NUMBER_RCD PHONE_NUMBER

Phone number to use to place a call.

PHONE_NUMBERS_RCD PREFIX

This number will be inserted at the beginning of every phone number before beginning dialing.

PHONE_NUMBERS ORIGINATE_PARAMETERS_RCD ORIGINATE_BIT_RATE

DIAL_DELAY

An array of originate phone numbers. Bit rate at which the End Device will originate a call. 0 Denotes an externally defined bit rate. 1.. 4294967295 End Device call origination bit rate in bits per second. 0..255

Delay in seconds the End Device before dialing after going off-hook.

Decade 9: Telephone Control Tables / Table 93 Telephone Call Originate Parameters Table

will wait

263

ANSI C12.19-2008

Tables

ORIGINATE_PHONE_NUMBERS

See PHONE_NUMBER_RCD.

WINDOWS

An array of call originate windows.

ANSWER_TIMEOUT

0..255

Delay in seconds the End Device will wait after dialing before declaring no answer.

RETRY_INTERVAL

0..65535

Delay in seconds the End Device will wait after a failed call before trying again. May include a random offset.

MAX_RETRIES

0..255

Absolute maximum number of attempts. Same value used for all ORIGINATE_PHONE_NUMBERS. This value starts at zero for each unique call-out event.

264

Decade 9: Telephone Control Tables / Table 93 Telephone Call Originate Parameters Table

Tables

ANSI C12.19-2008

9.10.5 Table 94 Telephone Call Originate Schedule Table Table 94 Data Description ORIGINATE_SCHEDULE_TBL (Table 94) is used to configure when and why an End Device originates a call. Global Default Table Property Overrides: Role=“CONTROL” Table 94 Type Definitions TYPE CTRL_BFLD = BIT FIELD OF UINT8 PRIMARY_PHONE_NUMBER : UINT(0..2); FILLER : FILL(3..3); SECONDARY_PHONE_NUMBER : UINT(4..6); USE_WINDOWS : BOOL(7); END; TYPE RECURRING_DATES_RCD = PACKED RECORD ORIGINATE_DATE : RDATE; START_TIME : TIME; ORIGINATE_CTRL : CTRL_BFLD; END; TYPE NON_RECURRING_DATES_RCD = PACKED RECORD ORIGINATE_DATE : DATE; START_TIME : TIME; ORIGINATE_CTRL : CTRL_BFLD; END; TYPE EVENTS_RCD = PACKED RECORD ED_STD_STATUS1 : ED_MODE_STATUS_TBL.ED_STD_STATUS1_BFLD; ED_STD_STATUS2 : ED_MODE_STATUS_TBL.ED_STD_STATUS2_BFLD; ED_MFG_STATUS : ED_MODE_STATUS_TBL.ED_MFG_STATUS_RCD; ORIGINATE_CTRL : CTRL_BFLD; END; TYPE WEEKLY_SCHEDULE_RCD = PACKED RECORD DAYS : ORIGINATE_PARAMETERS_TBL.DAYS_BFLD; START_TIME : TIME; ORIGINATE_CTRL : CTRL_BFLD; END; TYPE ORIGINATE_SCHEDULE_RCD = PACKED RECORD IF ACT_TELEPHONE_TBL.S_ANCHOR_DATE_FLAG THEN S_ANCHOR_DATE : DATE; END; RECURRING_DATES : ARRAY[ACT_TELEPHONE_TBL.NBR_RECURRING_DATES] OF RECURRING_DATES_RCD; NON_RECURING_DATES : ARRAY[ACT_TELEPHONE_TBL.NBR_NON_RECURRING_DATES] OF NON_RECURRING_DATES_RCD;

Decade 9: Telephone Control Tables / Table 94 Telephone Call Originate Schedule Table

265

ANSI C12.19-2008

Tables

EVENTS

: ARRAY[ACT_TELEPHONE_TBL.NBR_EVENTS] OF EVENTS_RCD; WEEKLY_SCHEDULES : ARRAY[ACT_TELEPHONE_TBL.NBR_WEEKLY_SCHEDULES] OF WEEKLY_SCHEDULE_RCD; END; TABLE 94 ORIGINATE_SCHEDULE_TBL = ORIGINATE_SCHEDULE_RCD; Table 94 Element Descriptions Value

Identifier

CTRL_BFLD PRIMARY_PHONE_NUMBER 0..6

7 SECONDARY_PHONE_NUMBER 0..6

7 USE_WINDOWS

RECURRING_DATES_RCD ORIGINATE_DATE

Selection of the primary phone number to use to originate the call. This value is an index into the PHONE_NUMBERS array in the ORIGINATE_PARAMETERS_TBL (Table 93). Indicates that no call should take place. Selection of the secondary phone number to use to originate a call. This value is an index into the PHONE_NUMBERS array in the ORIGINATE_PARAMETERS_TBL (Table 93). Indicates that no secondary number is provided.

FALSE

An originate time window will not be used to restrict the period available to place this call. The call will be placed immediately.

TRUE

An Originate time window will be used to restrict the period available to place this call. Calls originating outside a window will be delayed until the next open window. Recurring date at which procedures should begin.

call

originate

START_TIME

Time at which call originate procedures should begin.

ORIGINATE_CTRL

See CTRL_BFLD.

NON_RECURRING_DATES_RCD ORIGINATE_DATE

266

Definition

Specific date at which a call originate procedure should begin.

START_TIME

Time at which a call originate procedure should begin.

ORIGINATE_CTRL

See CTRL_BFLD.

Decade 9: Telephone Control Tables / Table 94 Telephone Call Originate Schedule Table

Tables

ANSI C12.19-2008

EVENTS_RCD ED_STD_STATUS1 FALSE TRUE ED_STD_STATUS2 FALSE TRUE ED_MFG_STATUS FALSE TRUE ORIGINATE_CTRL WEEKLY_SCHEDULE_RCD DAYS

Standard status events which initiate a call originate procedure. No call should take place for this status bit. A call should take place if an event is detected for this status bit. Standard status events which initiate a call originate procedure. No call should take place for this status bit. A call should take place if an event is detected for this status bit. Manufacturer status events which initiate a call originate procedure. No call should take place for this status bit. A call should take place if an event is detected for this status bit. See CTRL_BFLD. Days of the week in which the call originate procedure should begin.

START_TIME

Time at which the call originate procedure should begin.

ORIGINATE_CTRL

See CTRL_BFLD.

ORIGINATE_SCHEDULE_RCD S_ANCHOR_DATE

A separate telephone schedule anchor date used with an RDATE recurring date using the PERIOD/OFFSET mechanism. If this table contains an anchor date it is used with RDATE. If not present, and an anchor date is provided in Table 54 (CALENDAR_TBL) then RDATE will use that anchor date. If neither anchor date is present then the anchor date is defined by the manufacturer.

RECURRING_DATES

Array of recurring call origination dates.

NON_RECURING_DATES

Array of non recurring call origination dates.

EVENTS

Array of call origination trigger events.

WEEKLY_SCHEDULES

Array of call origination days.

Decade 9: Telephone Control Tables / Table 94 Telephone Call Originate Schedule Table

267

ANSI C12.19-2008

Tables

9.10.6 Table 95 Telephone Call Answer Parameters Table 95 Data Description ANSWER_PARAMETERS_TBL (Table 95) defines the answer configuration for receiving calls placed by a utility host. Global Default Table Property Overrides: Role=“CONTROL” Table 95 Type Definitions TYPE CALLER_ID_RCD = PACKED RECORD CALLER_ID : STRING(ACT_TELEPHONE_TBL.CALLER_ID_LENGTH); END; TYPE ANSWER_PARAMETERS_RCD = PACKED RECORD IF ACT_TELEPHONE_TBL.BIT_RATE == 2 THEN ANSWER_BIT_RATE : UINT32; END; IF ACT_TELEPHONE_TBL.NO_LOCKOUT_PARM == FALSE THEN LOCKOUT_DELAY : UINT8; RETRY_ATTEMPTS : UINT8; RETRY_LOCKOUT_TIME : UINT8; END; NBR_RINGS : UINT8; IF ACT_TELEPHONE_TBL.NBR_ANSWER_WINDOWS > 0 THEN NBR_RINGS_OUTSIDE : UINT8; END; CALLER_IDS

: ARRAY[ACT_TELEPHONE_TBL.NBR_CALLER_IDS] OF CALLER_ID_RCD; WINDOWS : ARRAY[ACT_TELEPHONE_TBL.NBR_ANSWER_WINDOWS] OF ORGINATE_PARAMETERS_TBL.WINDOW_RCD; END; TABLE 95 ANSWER_PARAMETERS_TBL = ANSWER_PARAMETERS_RCD; Table 95 Element Descriptions Value

Identifier CALLER_ID_RCD CALLER_ID

Caller ID string. Incoming calls must have a valid caller ID for the call to be answered.

ANSWER_PARAMETERS_RCD ANSWER_BIT_RATE

268

Definition

Bit rate at which the End Device will answer a call. 0 Indicates an externally defined bit rate. 1.. 4294967295 End Device call origination bit rate in bits per second.

Decade 9: Telephone Control Tables / Table 95 Telephone Call Answer Parameters

Tables

ANSI C12.19-2008

LOCKOUT_DELAY

0..255

Number of minutes to lockout call answering after detecting a voice call.

RETRY_ATTEMPTS

0..255

Maximum number of consecutive violations allowed before lockout.

RETRY_LOCKOUT_TIME

0..255

Minutes to lockout logons after security retry attempts exceeded.

NBR_RINGS

0..255

The number of rings to wait before answering while inside a time window. A value of 0 means do not answer.

NBR_RINGS_OUTSIDE

0..255

The number of rings to answer while outside a time window. A value of 0 means do not answer.

CALLER_IDS

An array of caller IDs.

WINDOWS

An array of answer time windows.

Decade 9: Telephone Control Tables / Table 95 Telephone Call Answer Parameters

security

269

ANSI C12.19-2008

Tables

9.10.7 Table 96 Originating Telephone Call Purpose Table 96 Data Description CALL_PURPOSE_TBL (Table 96) indicates the purpose for the current telephone-call originated by the End Device. Global Default Table Property Overrides: Role=“DATA”, Accessibility=“READONLY” Table 96 Type Definitions TYPE CALL_PURPOSE_BFLD = BIT FIELD OF UINT16 POWER_OUTAGE : BOOL(0); POWER_RESTORAL : BOOL(1); SCHEDULED_CALL : BOOL(2); STATUS_CALL : BOOL(3); IMMEDIATE_CALL : BOOL(4); FILLER : FILL(5..11); MANUFACTURER_PURPOSES: UINT(12..15); END; TYPE CALL_PURPOSE_RCD = PACKED RECORD CALL_PURPOSE : CALL_PURPOSE_BFLD; CALL_TRIGGER_STATUS : ED_MODE_STATUS_TBL.ED_MODE_STATUS_RCD; IF ACT_TELEPHONE_TBL.ID_IN_PURPOSE THEN IDENT : DEVICE_IDENT_TBL.IDENT_RCD; END; END; TABLE 96 CALL_PURPOSE_TBL = CALL_PURPOSE_RCD; Table 96 Element Descriptions Value

Identifier CALL_PURPOSE_BFLD POWER_OUTAGE

This phone call was triggered by the detection of a power outage.

POWER_RESTORAL

This phone call was triggered by the detection of a power restoration.

SCHEDULED_CALL

This phone call is a normal call.

STATUS_CALL

This phone call was triggered by an change in the status record.

IMMEDIATE_CALL

This phone call was triggered by an immediate call procedure.

MANUFACTURER_PURPOSES 0..15

270

Definition

This field if non-zero indicates that the phone call was triggered by a manufacturer-defined purpose.

Decade 9: Telephone Control Tables / Table 96 Originating Telephone Call Purpose

Tables

ANSI C12.19-2008

CALL_PURPOSE_RCD CALL_PURPOSE

See CALL_PURPOSE_BFLD.

CALL_TRIGGER_STATUS

If the STATUS_CALL bit is TRUE then this field indicates which status bit change(s) caused the call. The field is in the image of ED_MODE_STATUS_TBL.

IDENT

Identity of the call originating End Device per Table 5, DEVICE_IDENT_TBL. IDENTIFICATION or Table 6, UTIL_INFO_TBL. DEVICE_ID, whichever is available.

Decade 9: Telephone Control Tables / Table 96 Originating Telephone Call Purpose

271

ANSI C12.19-2008

Tables

9.10.8 Table 97 Last Telephone Call Status Table 97 Data Description CALL_STATUS_TBL (Table 97) indicates the status of the most recent call to each defined phone number. Global Default Table Property Overrides: Role=“DATA”, Accessibility=“READONLY” Table 97 Type Definitions TYPE EXTENDED_STATUS_RCD = PACKED RECORD CALL_PURPOSE : CALL_PURPOSE_TBL.CALL_PURPOSE_BFLD; CALL_TRIGGER_STATUS : ED_MODE_STATUS_TBL.ED_MODE_STATUS_RCD; LAST_CALL_TIME : LTIME_DATE; END; TYPE CALL_STATUS_RCD = PACKED RECORD CALL_STATUS_ARRAY : ARRAY[ACT_TELEPHONE_TBL.NBR_ORIGINATE_NUMBERS] OF UINT8; IF ACT_TELEPHONE_TBL.TELEPHONE_FLAGS.EXTENDED_STATUS THEN EXTENDED_CALL_STATUS: ARRAY[ACT_TELEPHONE_TBL.NBR_ORIGINATE_NUMBERS] OF EXTENDED_STATUS_RCD; END; END; TABLE 97 CALL_STATUS_TBL = CALL_STATUS_RCD; Table 97 Element Descriptions Value

Identifier EXTENDED_STATUS_RCD CALL_PURPOSE

This Element indicates the reason the most recent call was attempted. See CALL_PURPOSE_BFLD in Table 96 for definition.

CALL_TRIGGER_STATUS

From Table 96. This Element indicates the reason the most recent call was attempted. The field is in the image of ED_MODE_STATUS_RCD defined in Table 3.

LAST_CALL_TIME

This field indicates the time and date the most recent call attempt was made. Status or disposition of the most recent call to a phone number.

CALL_STATUS_RCD CALL_STATUS_ARRAY

Status or disposition of the most recent call to each telephone number. 0 1

272

Definition

No phone call made. Phone call in progress.

Decade 9: Telephone Control Tables / Table 97 Last Telephone Call Status

Tables

ANSI C12.19-2008 2 3 4 5 6 7 8 9 10 11 12..255 EXTENDED_STATUS_ARRAY

Dialing Waiting for a connection. Communicating. Completed normally. Not completed, , Reason unknown. Not completed, Line busy. Not completed, No dial tone. Not completed, Line cut. Not completed, No connection. Not completed, No modem response. Reserved. Extended Status of the most recent call to each telephone phone number.

Decade 9: Telephone Control Tables / Table 97 Last Telephone Call Status

273

ANSI C12.19-2008

Tables

9.10.9 Table 98 Telephone Call Originate Status Table 98 Data Description ORIGINATE_STATUS_TBL (Table 98) indicates the status of the defined Originate Schedule. Global Default Table Property Overrides: Role=“DATA”, Accessibility=“READONLY” Table 98 Type Definitions TYPE ORIGINATE_STATUS_RCD = PACKED RECORD IMMEDIATE_STATUS : SET((ACT_TELEPHONE_TBL.NBR_ORIGINATE_NUMBERS + 7)/ 8); RECURRING_STATUS : SET((ACT_TELEPHONE_TBL.NBR_RECURRING_DATES + 7)/ 8); NON_RECURRING_STATUS : SET((ACT_TELEPHONE_TBL.NBR_NON_RECURRING_DATES + 7)/ 8); WEEKLY_STATUS : SET((ACT_TELEPHONE_TBL.NBR_WEEKLY_SCHEDULES + 7)/ 8); CALL_TRIGGER_STATUS : ARRAY[ACT_TELEPHONE_TBL.NBR_EVENTS] OF ED_MODE_STATUS_TBL.ED_MODE_STATUS_RCD; WINDOW_STATUS : SET((ACT_TELEPHONE_TBL.NBR_ORIGINATE_WINDOWS + 7)/ 8); NEXT_RECURRING_DATE : ARRAY[ACT_TELEPHONE_TBL.NBR_RECURRING_DATES] OF LTIME_DATE; NEXT_WEEKLY_SCHEDULE : ARRAY[ACT_TELEPHONE_TBL.NBR_WEEKLY_SCHEDULES] OF LTIME_DATE; END; TABLE 98 ORIGINATE_STATUS_TBL = ORIGINATE_STATUS_RCD; Table 98 Element Descriptions Value

Identifier ORIGINATE_STATUS_RCD IMMEDIATE_STATUS

274

Definition This is a SET of bits. Each bit is set when an immediate call is requested and is cleared when the call is completed.

RECURRING_STATUS

This is a SET of bits. Each bit is set when the recurring date occurs and is cleared when the call is completed.

NON_RECURRING_STATUS

This is a SET of bits. Each bit is set when the non-recurring date occurs and is cleared when the call is completed.

WEEKLY_STATUS

This is a SET of bits. Each bit is set when the Weekly Schedule occurs and is cleared when the call is completed.

Decade 9: Telephone Control Tables / Table 98 Telephone Call Originate Status

Tables

ANSI C12.19-2008

CALL_TRIGGER_STATUS

A bit that is set to TRUE in this indicates that the corresponding status bit change has occurred and is configured as a call home reason. The bit is cleared when the call is complete.

WINDOW_STATUS

This is a SET of bits. Each bit is set when the corresponding window is open, cleared when it is closed.

NEXT_RECURRING_DATE

Array of actual dates for the next occurrence of each recurring date.

NEXT_WEEKLY_SCHEDULE

Array of actual dates for the next occurrence of each weekly schedule.

Decade 9: Telephone Control Tables / Table 98 Telephone Call Originate Status

275

ANSI C12.19-2008

Tables

9.11 Decade 10: Unassigned Reserved.

276

Decade 10: Unassigned

Tables

ANSI C12.19-2008

9.12 Decade 11: Load Control and Pricing Tables Decade 11 Name LOAD_CONTROL_DEC This Decade contains Tables associated with load control operation. This Decade supports the management of up to 255 control points. The state of control points can be changed based on one of the following methods: • • • •

Direct load control: a command is sent directly to the End Device across a communication link to modify the state of one or multiple control points. Schedule: the End Device is programmed to modify the state of one or multiple control points at specific dates, recurring dates, period of the week or event detection. Condition: the End Device is programmed to modify the state of one or multiple control points based on the magnitudes of metered quantities, price level (active tier), time of the day, period of the year, or any other condition that can be construct by a Single Line Math expression. Prepayment: the End Device is programmed to modify the state of one or multiple control points based on a remaining credit.

Decade 11: Load Control and Pricing Tables

277

ANSI C12.19-2008

Tables

9.12.1 Table 110 Load Control Dimension Limits Table Table 110 Data Description DIM_LOAD_CONTROL_TBL (Table 110) specifies the maximum dimensional limits for this Decade. Global Default Table Property Overrides: Role=“LIMITING”, Accessibility=“READONLY” Table 110 Type Definitions TYPE DIM_LOAD_CONTROL_BFLD = BIT FIELD OF UINT16 DURATION_SUPPORTED_FLAG : BOOL(0); RANDOMIZATION_SUPPORTED_FLAG : BOOL(1); MANUAL_OVERRIDE_SUPPORTED_FLAG : BOOL(2); MANUAL_TURN_ON_SUPPORTED_FLAG : BOOL(3); STATE_VERIFICATION_SUPPORTED_FLAG : BOOL(4); ANCHOR_DATE_SUPPORTED_FLAG : BOOL(5); SOURCE_CONDITION_SUPPORTED_FLAG : BOOL(6); TIER_CONDITION_SUPPORTED_FLAG : BOOL(7); TIME_CONDITION_SUPPORTED_FLAG : BOOL(8); FILLER : FILL(9..15); END; TYPE DIM_LOAD_CONTROL_RCD = PACKED RECORD DIM_LOAD_CONTROL : DIM_LOAD_CONTROL_BFLD; NBR_OF_CONTROL_POINTS : UINT8; NBR_RECURRING_DATES : UINT8; NBR_NON_RECURRING_DATES : UINT8; NBR_EVENTS : UINT8; NBR_OF_WEEKLY_SCHEDULES : UINT8; NBR_OF_CONDITIONS : UINT8; NBR_OF_CONSUMPTIONS : UINT8; SLM_CONDITION_LEN : UINT16; SLM_EQUATION_LEN : UINT16; END; TABLE 110 DIM_LOAD_CONTROL_TBL = DIM_LOAD_CONTROL_RCD; Table 110 Element Descriptions Identifier

Value

DIM_LOAD_CONTROL_BFLD DURATION_SUPPORTED_FLAG FALSE TRUE RANDOMIZATION_SUPPORTED_FLAG FALSE TRUE

278

Definition

End Device is not capable of processing a load control directive with a duration. End Device is capable of processing a load control directive with a duration. End Device is not capable of automatically randomizing a load control directive. End Device is capable of automatically randomizing a load control directive.

Decade 11: Load Control and Pricing Tables / Table 110 Load Control Dimension Limits Table

Tables

ANSI C12.19-2008

MANUAL_OVERRIDE_SUPPORTED_FLAG FALSE TRUE MANUAL_TURN_ON_SUPPORTED_FLAG FALSE TRUE

End Device is not capable of supporting manual override of load control directives. End Device is capable of supporting manual override of load control directives. End Device is not capable of supporting turn-on of its control points after each directive. End Device is capable of supporting turn-on of its control points after each directive.

manual turn-on manual turn-on

STATE_VERIFICATION_SUPPORTED_FLAG FALSE End Device is not capable of measuring the state of its control points. TRUE End Device is capable of measuring the state of its control points. ANCHOR_DATE_SUPPORTED_FLAG FALSE TRUE

SOURCE_CONDITION_SUPPORTED_FLAG FALSE TRUE TIER_CONDITION_SUPPORTED_FLAG FALSE TRUE TIME_CONDITION_SUPPORTED_FLAG FALSE TRUE

DIM_LOAD_CONTROL_RCD DIM_LOAD_CONTROL NBR_OF_CONTROL_POINTS 0..255

End Device is not capable of accepting a separate load control schedule anchor date for the Period/Delta RDATE type (recurring date). End Device is capable of accepting a separate load control schedule anchor date for the Period/Delta RDATE type (recurring date). Load Control Conditions Table (Table 115) cannot include a condition based on a source limit. Load Control Conditions Table (Table 115) can include a condition based on a source limit. Load Control Conditions Table (Table 115) cannot include a condition based on the active tier. Load Control Conditions Table (Table 115) can include a condition based on the active tier. Load Control Conditions Table (Table 115) cannot include a condition based on the actual time of day and period of the year. Load Control Conditions Table (Table 115) can include a condition based on the actual time of day and period of the year. See DIM_LOAD_CONTROL_BFLD. Maximum number of control points supported.

Decade 11: Load Control and Pricing Tables / Table 110 Load Control Dimension Limits Table

279

ANSI C12.19-2008

NBR_RECURRING_DATES

Tables

0..255

NBR_NON_RECURRING_DATES 0..255

NBR_EVENTS

0..255

NBR_OF_WEEKLY_SCHEDULES 0..255

280

Maximum number of recurring dates supported in the Load Control Schedule Table (Table 114). Maximum number of non-recurring dates supported in the Load Control Schedule Table (Table 114). Maximum number of event schedules supported in the Load Control Schedule Table (Table 114). Maximum number of weekly schedules supported in the Load Control Schedule Table (Table 114).

NBR_OF_CONDITIONS

0..255

Maximum number of conditions supported in the Load Control Conditions Table (Table 115).

NBR_OF_CONSUMPTIONS

0..255

Maximum number of consumption histories supported in the Prepayment Status Table (Table 116).

SLM_CONDITION_LEN

0..65535

Maximum length of Single Line Math expressions (SLM) used to set load control conditions.

SLM_EQUATION_LEN

0..65535

Maximum length of the Single Line Math expressions (SLMs) used to set a billing equation.

Decade 11: Load Control and Pricing Tables / Table 110 Load Control Dimension Limits Table

Tables

ANSI C12.19-2008

9.12.2 Table 111 Actual Load Control Limiting Table Table 111 Data Description ACT_LOAD_CONTROL_TBL (Table 111) specifies the actual dimensional limits for this Decade. Global Default Table Property Overrides: Role=“ACTUAL” Table 111 Type Definitions TABLE 111 ACT_LOAD_CONTROL_TBL = DIM_LOAD_CONTROL_RCD; Table 111 Element Descriptions Identifier

Value

DIM_LOAD_CONTROL_BFLD

Definition Redefines: DIM_LOAD_CONTROL_TBL. DIM_LOAD_CONTROL_BFLD.

DURATION_SUPPORTED_FLAG FALSE TRUE RANDOMIZATION_SUPPORTED_FLAG FALSE TRUE MANUAL_OVERRIDE_SUPPORTED_FLAG FALSE TRUE MANUAL_TURN_ON_SUPPORTED_FLAG FALSE TRUE

Load control directive does not include duration. Load control directive includes duration. End Device does not automatically randomize load control directives. End Device automatically randomizes load control directives. End Device is not configured for manual override of load control directives. End Device is configured for manual override of load control directives. End Device does not support manual turn-on of its control points after each turn-on directive. End Device supports manual turn-on of its control points after each turn-on directive.

STATE_VERIFICATION_SUPPORTED_FLAG FALSE End Device does not provide the measurement of the state of its control points in the Load Control Status Table (Table 112). TRUE End Device provides the measurement of the state of its control points in the Load Control Status Table (Table 112). ANCHOR_DATE_SUPPORTED_FLAG FALSE TRUE

End Device is not accepting a separate load control schedule anchor date for the Period/Delta RDATE type (recurring date). End Device is accepting a separate load control schedule anchor date for the Period/Delta

Decade 11: Load Control and Pricing Tables / Table 111 Actual Load Control Limiting Table

281

ANSI C12.19-2008

Tables

RDATE type (recurring date). SOURCE_CONDITION_SUPPORTED_FLAG FALSE TRUE TIER_CONDITION_SUPPORTED_FLAG FALSE TRUE TIME_CONDITION_SUPPORTED_FLAG FALSE TRUE

DIM_LOAD_CONTROL_RCD

Load Control Conditions Table (Table 115) does not include a condition based on the active Tier. Load Control Conditions Table (Table 115) includes a condition based on the active Tier. Load Control Conditions Table (Table 115) does not include a condition based on the actual time of day and period of the year. Load Control Conditions Table (Table 115) includes a condition based on the actual time of day and period of the year.

Redefines: DIM_LOAD_CONTROL_TBL. DIM_LOAD_CONTROL_RCD. See DIM_LOAD_CONTROL_BFLD.

DIM_LOAD_CONTROL NBR_OF_CONTROL_POINTS 0..255

Actual number of control points.

NBR_RECURRING_DATES

Actual number of recurring dates in the Load Control Schedule Table (Table 114).

0..255

NBR_NON_RECURRING_DATES 0..255 NBR_EVENTS

0..255

NBR_OF_WEEKLY_SCHEDULES 0..255

282

Load Control Conditions Table (Table 115) does not include a condition based on a source limit. Load Control Conditions Table (Table 115) includes a condition based on a source limit.

Actual number of non-recurring dates supported in the Load Control Schedule Table (Table 114). Actual number of event schedules in the Load Control Schedule Table (Table 114). Actual number of weekly schedules in the Load Control Schedule Table (Table 114).

NBR_OF_CONDITIONS

0..255

Actual number of conditions in the Load Control Conditions Table (Table 115).

NBR_OF_CONSUMPTIONS

0..255

Actual number of consumption history records in the Prepayment Status Table (Table 116).

SLM_CONDITION_LEN

0..65535

Actual length of Single Line Math expressions (SLM) used to set load control conditions.

SLM_EQUATION_LEN

0..65535

Actual length of the Single Line Math expression (SLM) used to set a billing equation.

Decade 11: Load Control and Pricing Tables / Table 111 Actual Load Control Limiting Table

Tables

ANSI C12.19-2008

9.12.3 Table 112 Load Control Status Table 112 Data Description LC_STATUS_TBL (Table 112) provides the actual status of each control point supported by the End Device. Global Default Table Property Overrides: Role=“DATA”, Accessibility=“READONLY” Table 112 Type Definitions TYPE LC_STATUS_ENTRY_BFLD = BIT FIELD OF UINT8 LEVEL_SUPPORTED_FLAG : BOOL(0); IF ACT_LOAD_CONTROL_TBL.MANUAL_OVERRIDE_SUPPORTED_FLAG THEN MANUALLY_OVERRIDDEN_FLAG : BOOL(1); END; IF ACT_LOAD_CONTROL_TBL.MANUAL_TURN_ON_SUPPORTED_FLAG THEN WAITING_TO_BE_TURNED_ON_FLAG : BOOL(2); END; FILLER : FILL(3..7); END; TYPE LC_STATUS_ENTRY_RCD = PACKED RECORD NAME : STRING(20); REQUESTED_LEVEL : UINT8; OUTPUT_LEVEL : UINT8; IF ACT_LOAD_CONTROL_TBL.STATE_VERIFICATION_SUPPORTED_FLAG THEN SENSED_LEVEL : UINT8; END; STATUS : LC_STATUS_ENTRY_BFLD; IF ACT_LOAD_CONTROL_TBL.DURATION_SUPPORTED_FLAG THEN DURATION_COUNT_DOWN : TIME; END; IF ACT_LOAD_CONTROL_TBL.RANDOMIZATION_SUPPORTED_FLAG THEN RANDOMIZATION_COUNT_DOWN : TIME; END; END; TYPE LC_STATUS_RCD = PACKED RECORD STATUS_ENTRIES : ARRAY[ACT_LOAD_CONTROL_TBL.NBR_OF_CONTROL_POINTS] OF LC_STATUS_ENTRY_RCD; END; TABLE 112 LC_STATUS_TBL = LC_STATUS_RCD; Table 112 Element Descriptions Identifier

Value

Definition

FALSE

Control points are controlled with a binary level only (Level < 50% means On and Level >= 50%

LC_STATUS_ENTRY_BFLD LEVEL_SUPPORTED_FLAG

Decade 11: Load Control and Pricing Tables / Table 112 Load Control Status

283

ANSI C12.19-2008

Tables

TRUE MANUALLY_OVERRIDDEN_FLAG FALSE TRUE WAITING_TO_BE_TURNED_ON_FLAG FALSE TRUE LC_STATUS_ENTRY_RCD NAME

This control point is not actually manually overridden. This control point is actually manually overridden. This control point does not wait for a manual intervention before changing state. This control point waits for a manual intervention before changing state. Descriptive name for this control point.

REQUESTED_LEVEL

0..100

The desired level of this control point according to the last load control directive.

OUTPUT_LEVEL

0..100

The asserted level at the input of the load control device. The difference between OUTPUT_LEVEL and REQUESTED_LEVEL can be caused by randomization, manual override, manual turn on or an output control failure.

SENSED_LEVEL

0..100

Actual level sensed at the output of this control device. A significant difference between this level and the OUTPUT_LEVEL indicates a physical problem with either the control point or its sensor.

DURATION_COUNT_DOWN

Actual countdown of the duration value received in the last control directive. When this value reaches zero (0), the control point returns to its previous state (state before receiving this load control directive).

RANDOMIZATION_COUNT_DOWN

Actual countdown of the randomization period. This value is set to a random period when a load control directive is triggered. When this value reaches zero (0), the load control directive is applied, and if duration period is supported, the DURATION_COUNT_DOWN is set to the value received by this control directive.

LC_STATUS_RCD STATUS_ENTRIES

284

means off). Control points are controlled with a percentage (0 to 100%).

Array that contains the actual status of each control point.

Decade 11: Load Control and Pricing Tables / Table 112 Load Control Status

Tables

ANSI C12.19-2008

9.12.4 Table 113 Load Control Configuration Table 113 Data Description LC_CONFIGURATION_TBL (Table 113) allows the configuration of the basic behavior of each control point available. Global Default Table Property Overrides: Role=“CONTROL” Table 113 Type Definitions TYPE LC_CONFIGURATION_ENTRY_BFLD = BIT FIELD OF UINT8 IF ACT_LOAD_CONTROL_TBL.MANUAL_OVERRIDE_SUPPORTED_FLAG THEN MANUAL_OVERRIDE_ENABLE_FLAG : BOOL(0); END; IF ACT_LOAD_CONTROL_TBL.MANUAL_TURN_ON_SUPPORTED_FLAG THEN MANUAL_TURN_ON_ENABLE_FLAG : BOOL(1); END; IF GEN_CONFIG_TBL.STD_PROC_USED[DIRECT_LOAD_CONTROL_PROC] THEN DIRECT_CONTROL_ENABLE_FLAG : BOOL(2); END; FILLER : FILL(3..7); END; TYPE LC_CONFIGURATION_ENTRY_RCD = PACKED RECORD NAME : STRING(20); MINIMUM_ON_TIME : TIME; MINIMUM_OFF_TIME : TIME; CONFIGURATION : LC_CONFIGURATION_ENTRY_BFLD; END; TYPE LC_CONFIGURATION_RCD = PACKED RECORD CONFIGURATION : ARRAY[ACT_LOAD_CONTROL_TBL.NBR_OF_CONTROL_POINTS] OF LC_CONFIGURATION_ENTRY_RCD; END; TABLE 113 LC_CONFIGURATION_TBL = LC_CONFIGURATION_RCD; Table 113 Element Descriptions Identifier

Value

LC_CONFIGURATION_ENTRY_BFLD MANUAL_OVERRIDE_ENABLE_FLAG FALSE TRUE MANUAL_TURN_ON_ENABLE_FLAG FALSE TRUE

Definition

Control point directive cannot be manually overridden. Control point directive can be manually overridden. Turn-on directive is applied without any manual intervention. Turn-on directive is applied after a manual

Decade 11: Load Control and Pricing Tables / Table 113 Load Control Configuration

285

ANSI C12.19-2008

Tables intervention.

DIRECT_CONTROL_ENABLE_FLAG FALSE TRUE LC_CONFIGURATION_ENTRY_RCD NAME

Descriptive name for this control point.

MINIMUM_ON_TIME

Minimum period this control point shall be turned on before turning it off again.

MINIMUM_OFF_TIME

Minimum period this control point shall be turned off before turning it on again.

CONFIGURATION

See LC_CONFIGURATION_ENTRY_BFLD..

LC_CONFIGURATION_RCD CONFIGURATION

286

Control point cannot be directly controlled by the “Direct load control procedure” (Procedure 21). Control point can be directly controlled by the “Direct load control procedure” (Procedure 21).

Array that contains the configuration of each control point.

Decade 11: Load Control and Pricing Tables / Table 113 Load Control Configuration

Tables

ANSI C12.19-2008

9.12.5 Table 114 Load Control Schedule Table 114 Data Description LC_SCHEDULE_TBL (Table 114) implements the schedule-based method of load control. This method consists of programming the days of the week and time of day a load control directive is executed. Global Default Table Property Overrides: Role=“CONTROL” Table 114 Type Definitions TYPE LC_RECURRING_DATES_RCD = PACKED RECORD LC_DATE : RDATE; LC_TIME : TIME; DIRECTIVE : DIRECT_LOAD_CONTROL_PROC.PARM_DATA_RCD; END; TYPE LC_NON_RECURRING_DATES_RCD = PACKED RECORD LC_DATE : DATE; LC_TIME : TIME; DIRECTIVE : DIRECT_LOAD_CONTROL_PROC.PARM_DATA_RCD; END; TYPE LC_EVENTS_RCD = PACKED RECORD ED_STD_STATUS1 : ED_MODE_STATUS_TBL.ED_STD_STATUS1_BFLD; ED_STD_STATUS2 : ED_MODE_STATUS_TBL.ED_STD_STATUS2_BFLD; ED_MFG_STATUS : ED_MODE_STATUS_TBL.ED_MFG_STATUS_RCD; DIRECTIVE : DIRECT_LOAD_CONTROL_PROC.PARM_DATA_RCD; END; TYPE DAYS_BFLD = BIT FIELD OF UINT8 SUNDAY_FLAG : BOOL(0); MONDAY_FLAG : BOOL(1); TUESDAY_FLAG : BOOL(2); WEDNESDAY_FLAG : BOOL(3); THURSDAY_FLAG : BOOL(4); FRIDAY_FLAG : BOOL(5); SATURDAY_FLAG : BOOL(6); FILLER : FILL(7..7); END; TYPE LC_SCHEDULE_RCD = PACKED RECORD DAYS : DAYS_BFLD; LC_TIME : TIME; DIRECTIVE : DIRECT_LOAD_CONTROL_PROC.PARM_DATA_RCD; END; TYPE LC_SCHEDULES_RCD = PACKED RECORD IF ACT_LOAD_CONTROL_TBL.ANCHOR_DATE_SUPPORTED_FLAG THEN ANCHOR_DATE : DATE; END; RDATES : ARRAY[ACT_LOAD_CONTROL_TBL.NBR_RECURRING_DATES] OF LC_RECURRING_DATES_RCD; DATES : ARRAY[ACT_LOAD_CONTROL_TBL.NBR_NON_RECURRING_DATES]

Decade 11: Load Control and Pricing Tables / Table 114 Load Control Schedule

287

ANSI C12.19-2008

Tables

OF LC_NON_RECURRING_DATES_RCD; : ARRAY[ACT_LOAD_CONTROL_TBL.NBR_EVENTS] OF LC_EVENTS_RCD; WEEKLY_SCHEDULES : ARRAY[ACT_LOAD_CONTROL_TBL.NBR_OF_WEEKLY_SCHEDULES] OF LC_SCHEDULE_RCD; EVENTS

END; TABLE 114 LC_SCHEDULE_TBL = LC_SCHEDULES_RCD; Table 114 Element Descriptions Value

Identifier LC_RECURRING_DATES_RCD LC_DATE

Recurring date at which this load control directive is triggered.

LC_TIME

Time at which this load control directive is triggered.

DIRECTIVE

Load control directive as defined in “Direct load control procedure” (Procedure 21).

LC_NON_RECURRING_DATES_RCD LC_DATE

Date at which this load control directive is triggered.

LC_TIME

Time at which this load control directive is triggered.

DIRECTIVE

Load control directive as defined in “Direct load control procedure” (Procedure 21).

LC_EVENTS_RCD ED_STD_STATUS1

Standard status events on which a state change (from FALSE to TRUE) triggers a load control directive.

ED_STD_STATUS2

Standard status events on which a state change (from FALSE to TRUE) triggers a load control directive.

ED_MFG_STATUS

Manufacturer status events on which a state change (from FALSE to TRUE) triggers a load control directive.

DIRECTIVE

Load control directive as defined in “Direct load control procedure” (Procedure 21).

LC_SCHEDULES_BFLD SUNDAY_FLAG MONDAY_FLAG

288

Definition

FALSE TRUE

Not triggered on Sunday. Triggered on Sunday.

FALSE

Not triggered on Monday.

Decade 11: Load Control and Pricing Tables / Table 114 Load Control Schedule

Tables

ANSI C12.19-2008 TRUE

Triggered on Monday.

TUESDAY_FLAG

FALSE TRUE

Not triggered on Tuesday. Triggered on Tuesday.

WEDNESDAY_FLAG

FALSE TRUE

Not triggered on Wednesday. Triggered on Wednesday.

THURSDAY_FLAG

FALSE TRUE

Not triggered on Thursday. Triggered on Thursday.

FRIDAY_FLAG

FALSE TRUE

Not triggered on Friday. Triggered on Friday.

SATURDAY_FLAG

FALSE TRUE

Not triggered on Saturday. Triggered on Saturday.

LC_SCHEDULE_RCD DAYS

Days on which this load control directive is triggered.

LC_TIME

Time at which this load control directive is triggered.

DIRECTIVE

Load control directive as defined in “Direct load control procedure” (Procedure 21).

LC_SCHEDULES_RCD ANCHOR_DATE

A separate load control schedule anchor date used with an RDATE recurring date using the PERIOD/OFFSET mechanism. If this table contains an anchor date it is used with RDATE. If not present, and an anchor date is provided in Table 54 (CALENDAR_TBL) then RDATE will use that anchor date. If neither anchor date is present then the anchor date is defined by the manufacturer.

RDATES

Array of recurring dates that trigger load control directives.

DATES

Array of non-recurring dates that trigger load control directives.

EVENTS

Array of events directives.

WEEKLY_SCHEDULES

Array of weekly schedules that trigger load control directives.

that

Decade 11: Load Control and Pricing Tables / Table 114 Load Control Schedule

trigger load control

289

ANSI C12.19-2008

Tables

9.12.6 Table 115 Load Control Conditions Table 115 Data Description LC_CONDITIONS_TBL (Table 115) implements the condition-based method of load control. This method consists of programming conditions directly in the End Device that trigger control point directives. Conditions can be based on source limit, the active Tier, the time of the day, the period of the year or any other condition that can be construct using a Single Line Math expression. Global Default Table Property Overrides: Role=“CONTROL” Table 115 Type Definitions { Enumerator OPERATOR_ENUM } { Enumerator CONDITION_MONTH_ENUM } TYPE SOURCE_CONDITION_RCD = PACKED RECORD SOURCE : STD. SOURCE_SELECT_RCD; OPERATOR : UINT8; VALUE : NI_FMAT1; END; TYPE TIER_CONDITION_RCD = PACKED RECORD OPERATOR : UINT8; VALUE : UINT8; END; TYPE DATE_CONDITION_BFLD = BIT FIELD OF UINT32 START_MONTH : UINT(0..3); START_DATE : UINT(4..8); END_MONTH : UINT(9..12); END_DATE : UINT(13..17); FILLER : FILL(18..31); END; TYPE TIME_CONDITION_RCD = PACKED RECORD ALLOWED_DAYS : LC_SCHEDULE_TBL.DAYS_BFLD; START_TIME : STIME; END_TIME : STIME; END; TYPE LC_CONDITION_RCD = PACKED RECORD IF ACT_LOAD_CONTROL_TBL.SOURCE_CONDITION_SUPPORTED_FLAG THEN SOURCE_CONDITION : SOURCE_CONDITION_RCD; END; IF ACT_LOAD_CONTROL_TBL.TIER_CONDITION_SUPPORTED_FLAG THEN TIER_CONDITION : TIER_CONDITION_RCD; END; IF ACT_LOAD_CONTROL_TBL.TIME_CONDITION_SUPPORTED_FLAG THEN DATE_CONDITION : DATE_CONDITION_BFLD; TIME_CONDITION : TIME_CONDITION_RCD; END; SLM_CONDITION : STRING(ACT_LOAD_CONTROL_TBL.SLM_CONDITION_LEN);

290

Decade 11: Load Control and Pricing Tables / Table 115 Load Control Conditions

Tables

ANSI C12.19-2008

DIRECTIVE

: DIRECT_LOAD_CONTROL_PROC.PARM_DATA_RCD;

END; TYPE LC_CONDITIONS_RCD = PACKED RECORD CONDITIONS : ARRAY[ACT_LOAD_CONTROL_TBL.NBR_OF_CONDITIONS] OF LC_CONDITION_RCD; END; TABLE 115 LC_CONDITIONS_TBL = LC_CONDITIONS_RCD; Table 115 Element Descriptions Identifier

Value

Definition

OPERATOR_ENUM

0 1 2 3 4 5 6 7..255

Greater than or equal. Greater than. Equal. Not equal. Less than. Less than or equal. Not applicable, ignore this condition. Reserved.

CONDITION_MONTH_ENUM

0 1 2 3 4 5 6 7 8 9 10 11 12 13..15

Unassigned. Condition ignored. January. February. March. April. May. June. July. August. September. October. November. December. Reserved.

SOURCE_CONDITION_RCD SOURCE

Data source selector of the value to be compared.

OPERATOR

See OPERATOR_ENUM.

SOURCE_VALUE

Value on which condition applies. For example: When SOURCE = 2, OPERATOR = 1 and VALUE = 1000.000, means ”IF source 2 > 1000.000”.

TIER_CONDITION_RCD OPERATOR TIER_VALUE

See OPERATOR_ENUM. Value on which condition applies. For example: When OPERATOR = 3 and VALUE = 2, means “IF active tier != 2”.

Decade 11: Load Control and Pricing Tables / Table 115 Load Control Conditions

291

ANSI C12.19-2008

Tables

DATE_CONDITION_BFLD START_MONTH START_DATE

See CONDITION_MONTH_ENUM. 0 1..31

END_MONTH

ignored.

See

See CONDITION_MONTH_ENUM.

END_DATE

0 1..31

TIME_CONDITION_RCD ALLOWED_DAYS

Unassigned. Condition ignored. End day for this period. Defines the days of the week where load control is allowed.

START_TIME

Defines the start time of the day where load control is allowed. START_TIME is inclusive. For example, START_TIME = 10:00:00 means the load control begins at 10:00:00.

END_TIME

Defines the end time of the day where load control is allowed. END_TIME is exclusive. For example, END_TIME = 12:00:00 means the load control is not longer in operation at 12:00:00.

LC_CONDITION_RCD

All conditions defined in this structure must be TRUE or set to ignore before applying the associated directive.

SOURCE_CONDITION

Condition based on a source limit.

TIER_CONDITION

Condition based on the active represents the actual pricing level.

DATE_CONDITION

Condition based on the period of the year.

TIME_CONDITION

Condition based on the time of day and day of week.

SLM_CONDITION

Condition defined by a Single Line Math expression. This field is ignored if zero length, or contains all spaces (20H). For expression construction, see Section 5.14, “SLM Expression”.

DIRECTIVE

Load control directive as defined in “Direct load control procedure” (Procedure 21).

LC_CONDITIONS_RCD CONDITIONS

292

Unassigned. Condition TIME_CONDITION. Start day for this period.

Tier

that

Array that contains load control conditions. Each entry of this Array works independently. If multiple CONDITIONS Elements apply to the same control point, the Element having the

Decade 11: Load Control and Pricing Tables / Table 115 Load Control Conditions

Tables

ANSI C12.19-2008 lower index shall apply.

Decade 11: Load Control and Pricing Tables / Table 115 Load Control Conditions

293

ANSI C12.19-2008

Tables

9.12.7 Table 116 Prepayment Status Table 116 Data Description PREPAYMENT_STATUS_TBL (Table 116) provides the actual prepayment status. This status includes the remaining credit available for this End Device and some consumption history to guide the customer in his consumption and transaction habits. Global Default Table Property Overrides: Role=“DATA”, Accessibility=“READONLY” Table 116 Type Definitions TYPE PREPAYMENT_HISTORY_RCD = PACKED RECORD PP_DATE : STIME_DATE; PERIOD : TIME; CONSUMPTION_LCU : NI_FMAT1; END; TYPE PREPAYMENT_STATUS_RCD = PACKED RECORD REMAINING_CREDIT : NI_FMAT1; ACTUAL_CONSUMPTION : NI_FMAT1; AVERAGE_PER_DAY : NI_FMAT1; HISTORY_CONSUMPTION : ARRAY[ACT_LOAD_CONTROL_TBL.NBR_OF_CONSUMPTIONS] OF PREPAYMENT_HISTORY_RCD; END; TABLE 116 PREPAYMENT_STATUS_TBL = PREPAYMENT_STATUS_RCD; Table 116 Element Descriptions Value

Identifier PREPAYMENT_HISTORY_RCD PP_DATE

Date and time of this period of consumption.

PERIOD

Duration reported.

CONSUMPTION_LCU

Consumption measured for this period in local currency units.

PREPAYMENT_STATUS_RCD REMAINING_CREDIT

294

Definition

Actual remaining credit available. This value can be negative if CREDIT_LIMIT defined in the “Prepayment control table” (Table 118) is different from zero (0).

ACTUAL_CONSUMPTION

Actual rate of consumption in local currency units per hour.

AVERAGE_PER_DAY

Average consumption per day based on the last month of consumption in local currency units per day.

Decade 11: Load Control and Pricing Tables / Table 116 Prepayment Status

Tables

ANSI C12.19-2008

HISTORY_CONSUMPTION

Array containing a history of consumption recorded.

Decade 11: Load Control and Pricing Tables / Table 116 Prepayment Status

295

ANSI C12.19-2008

Tables

9.12.8 Table 117 Prepayment Control Table 117 Data Description PREPAYMENT_CONTROL_TBL (Table 117) implements the prepayment method of load control. This Table is used to set credit limits for pre-warning, warning and turn-off directive. Global Default Table Property Overrides: Role=“CONTROL” Table 117 Type Definitions TYPE PREPAYMENT_CONTROL_RCD = PACKED RECORD PRE_WARNING_LIMIT : UINT8; WARNING_LIMIT : UINT8; OVERDRAFT_LIMIT : NI_FMAT1; DIRECTIVE : DIRECT_LOAD_CONTROL_PROC.PARM_DATA_RCD; END; TABLE 117 PREPAYMENT_CONTROL_TBL = PREPAYMENT_CONTROL_RCD; Table 117 Element Descriptions Identifier

Value

Definition

PREPAYMENT_CONTROL_RCD PRE_WARNING_LIMIT

0..255

Threshold on which a first warning is provided to the customer. This threshold is defined in a number of days before spending the REMAINING_CREDIT. This value is compared to the estimated time remaining computed based on the AVERAGE_PER_DAY and the REMAINING_CREDIT defined in the Prepayment Status Table (Table 116).

WARNING_LIMIT

0.255

Threshold on which a final warning is provided to the customer. As with the PRE_WARNING_LIMIT, this value also represents a number of days before spending the REMAINING_CREDIT.

296

OVERDRAFT_LIMIT

Negative value tolerated before applying the load control directive.

DIRECTIVE

Load control directive as defined in “Direct Load Control” procedure (Procedure 21) to apply if the credit limit is exceeded.

Decade 11: Load Control and Pricing Tables / Table 117 Prepayment Control

Tables

ANSI C12.19-2008

9.12.9 Table 118 Billing Control Table 118 Data Description BILLING_CONTROL_TBL (Table 118) includes all parameters necessary to directly bill the customer. This includes taxes, daily fix charges and rate of measured quantities based on the current season, tier and type of quantity. In addition, a Single Line Math expression can be added to express a more complex billing expression. Global Default Table Property Overrides: Role=“CONTROL” Table 118 Type Definitions TYPE PRICING_RCD = PACKED RECORD PRICE : NI_FMAT1; END; TYPE OCCURRENCE_PRICING_RCD = PACKED RECORD OCCURRENCE_PRICING : ARRAY[ACT_REGS_TBL.NBR_OCCUR] OF PRICING_RCD; END; TYPE TIER_PRICING_RCD = PACKED RECORD SUMMATIONS_PRICING : ARRAY[ACT_REGS_TBL.NBR_SUMMATIONS] OF PRICING_RCD; DEMAND_PRICING : ARRAY[ACT_REGS_TBL.NBR_DEMANDS] OF OCCURRENCE_PRICING_RCD; END; TYPE SEASON_PRICING_RCD = PACKED RECORD IF ACT_REGS_TBL.NBR_TIERS != 0 THEN TIER_PRICING : ARRAY[ACT_REGS_TBL.NBR_TIERS] OF TIER_PRICING_RCD; ELSE TIER_PRICING: TIER_PRICING_RCD; END; END; TYPE BILLING_CONTROL_RCD = PACKED RECORD DAILY_FIXED_CHARGE : NI_FMAT1; TAXES : NI_FMAT1; CONDITION_ON_SOURCE : STD.SOURCE_SELECT_RCD; LIMIT : NI_FMAT1; ACTION : UNIT8; TIER : UNIT8; SLM_EQUATION

: STRING(ACT_LOAD_CONTROL_TBL.SLM_EQUATION_LEN);

IF GEN_CONFIG_TBL.STD_TBLS_USED[ACT_TIME_TOU_TBL] && ACT_TIME_TOU_TBL.NBR_SEASONS != 0 THEN SEASON_PRICING : ARRAY[ACT_TIME_TOU_TBL.NBR_SEASONS] OF SEASON_PRICING_RCD; ELSE SEASON_PRICING : SEASON_PRICING_RCD;

Decade 11: Load Control and Pricing Tables / Table 118 Billing Control

297

ANSI C12.19-2008

Tables

END; END; TABLE 118 BILLING_CONTROL_TBL = BILLING_CONTROL_RCD; Table 118 Element Descriptions Value

Identifier PRICING_RCD PRICE

Definition Price of this commodity in local currency units per unit.

OCCURRENCE_PRICING_RCD OCCURRENCE_PRICING

Pricing of each occurrence supported.

TIER_PRICING_RCD SUMMATIONS_PRICING

Pricing of each summation supported.

DEMAND_PRICING

Pricing of each demand supported.

SEASON_PRICING_RCD TIER_PRICING

Structure containing the pricing information for commodities measured based on the actual tier and type of measurement.

BILLING_CONTROL_RCD DAILY_FIXED_CHARGE

Fixed charge per day for service and equipment rental in local currency units per day.

TAXES

Tax to apply in percent (%).

CONDITION_ON_SOURCE

Data source selector of the value to be compared.

LIMIT

Limit on which condition applies. For example: CONDITION_ON_SOURCE = 2 and LIMIT = 1000.000, means ”IF source 2 > 1000.000 THEN perform the ACTION”.

ACTION

Action to perform when the source selected by CONDITION_ON_SOURCE exceeds the limit set by LIMIT. No action. Switch to Tier specified by the next field (TIER). Switch to current tier added to the next field (TIER).

0 1 2 TIER SLM_EQUATION

SEASON_PRICING

298

0..255

Specified Tier. Single Line Math expression used in addition to the SEASON_PRICING information to create complex billing equation. Structure containing the pricing information for

Decade 11: Load Control and Pricing Tables / Table 118 Billing Control

Tables

ANSI C12.19-2008 commodities measured based on the actual season, Tier and type of measurement.

Decade 11: Load Control and Pricing Tables / Table 118 Billing Control

299

ANSI C12.19-2008

Tables

9.13 Decade 12: Reserved

300

Decade 12: Reserved

Tables

ANSI C12.19-2008

9.14 Decade 13: Reserved

Decade 13: Reserved

301

ANSI C12.19-2008

Tables

9.15 Decade 14: Extended User-defined Tables Decade 14 Name EXT_UDT_DEC Decade 14 Data Description The Extended User-defined Tables enable the C12.19 application to make selections from other tables that are present or implied to be present in an End Device and redirect the resulting values into a userdefined table. The values gathered may then be retrieved from a desired Extended User-defined Table as if the Standard provided an explicit Table and descriptive syntax to express the resulting Table structure. The following general features are available to the application through the use of the Extended Userdefined Tables: • • • •

Elements, Sub-elements, Final Elements and subsets of Final Elements may be referenced for use by an Extended User-Defined Table (EUDT). The Element referenced can be directed into any one of 2040 Extended User-defined Tables. The Elements are packed in accordance with the base-type packing rules. It is possible to define pseudo BIT FIELD records for selecting bit field ranges from other tables and mapping them into BIT FIELD records within the Extended User-defined Tables. Two mapping methods are supplied for bit fields: o Index method, which maps Elements, Sub-elements, Final Elements and subsets of Final Elements of a formal Table. o Offset method, which maps any bit range of a formal Table.

It is important to note that the Extended User-defined Tables are presumed not to be real tables inside the End Device. Logically they may be thought of as if they are: • Constructed on-the-fly by an End-Device in response to a read or write request • Built at the time of issuance of a blurt from a One-way End-Device.

302

Decade 14: Extended User-defined Tables

Tables

ANSI C12.19-2008

9.15.1 Table 140 Extended User-defined Tables Function Limiting Table Table 140 Data Description This table contains the maximum limits for values and control parameters for the Extended User-defined Tables. Global Default Table Property Overrides: Role=“LIMITING”, Accessibility=“READONLY” Table 140 Type Definitions TYPE EUDT_BFLD = BIT FIELD OF UINT8 DATA_ACCESS_METHOD : UINT(0..1); INDEX_DEPTH : UINT(2..5); FILLER : FILL(6..7); END; TYPE EUDT_LIMITS_RCD = PACKED RECORD EUDT_CTRL : EUDT_BFLD; NBR_EUDT : UINT16; NBR_INSTANCES : UINT16; NBR_SELECTIONS : UINT16; NBR_CONSTANTS : UINT16; NBR_LABEL_CHARS : UINT8; END; TABLE 140 DIM_EUDT_TBL = EUDT_LIMITS_RCD; Table 140 Element Descriptions Identifier

Value

EUDT_BFLD DATA_ACCESS_METHOD 0 1 2 3 INDEX_DEPTH

1..9 0

EUDT_LIMITS_RCD EUDT_CTRL NBR_EUDT

Definition Designates the allowable methods for selecting table entries for placement in an Extended Userdefined Table. Only complete tables can be mapped into user tables. Partial tables cannot be mapped. Octet-offset/octet-count and bit-offset/bit-count access methods are supported. Index/element-count access method is supported. Access methods 2 and 3 are both supported. The maximum depth (number) of indices supported. Shall be set when DATA_ACCESS_METHOD is 0 or 1. See EUDT_BFLD.

0..2039

Maximum number of Extended User-defined Tables (virtual tables within one End Device instance) available for selections.

Decade 14: Extended User-defined Tables / Table 140 Extended User-defined Tables Function Limiting Table 303

ANSI C12.19-2008

Tables 2040..65535

Reserved.

NBR_INSTANCES

0..65535

Maximum number instances (virtual selections.

NBR_SELECTIONS

0..65535

Maximum number of selections per Extended User-defined Table.

NBR_CONSTANTS

0..65535

Maximum supported number of constants in table EUDT_CONSTANTS_TBL.

NBR_LABEL_CHARS

0..255

Maximum supported number of characters per Extended User-defined Table-element label.

of End devices)

Device Table available for

304Decade 14: Extended User-defined Tables / Table 140 Extended User-defined Tables Function Limiting Table

Tables

ANSI C12.19-2008

9.15.2 Table 141 Extended User-defined Tables Actual Limits Table Table 141 Data Description This table contains the actual limits for values and control parameters for the Extended User-defined Tables. Global Default Table Property Overrides: Role=“ACTUAL” Table 141 Type Definitions TABLE 141 ACT_EUDT_TBL = EUDT_LIMITS_RCD; Table 141 Element Descriptions Identifier

Value

EUDT_BFLD

Redefines: DIM_EUDT_TBL.EUDT_BFLD.

DATA_ACCESS_METHOD

Designates the method used for selecting table entries for placement in an Extended Userdefined Table. 0 1 2 3

INDEX_DEPTH

1..9 0

EUDT_LIMITS_RCD

Complete tables are mapped into user tables. Partial tables cannot be mapped. Octet-offset/octet-count and bit-offset/bit-count access method is used. Index/element-count access method is used. Reserved. The maximum depth (number) of indices supported. Shall be set when DATA_ACCESS_METHOD is 0 or 1. Redefines: DIM_EUDT_TBL.EUDT_LIMITS_RCD.

EUDT_CTRL NBR_EUDT

Definition

See EUDT_BFLD. 0..2039 2040..65535

Actual number of Extended User-defined Tables (virtual tables within one End Device instance) available for selections. Reserved.

NBR_INSTANCES

0..65535

Actual number of End Device Table instances (virtual devices) available for selections.

NBR_SELECTIONS

0..65535

Actual number of selections per Extended Userdefined Table.

NBR_CONSTANTS

0..65535

Actual number of constants found in table EUDT_CONSTANTS_TBL.

Decade 14: Extended User-defined Tables / Table 141 Extended User-defined Tables Actual Limits Table305

ANSI C12.19-2008

NBR_LABEL_CHARS

Tables

0..255

Actual supported number of characters in extended-user-defined element label.

306Decade 14: Extended User-defined Tables / Table 141 Extended User-defined Tables Actual Limits Table

Tables

ANSI C12.19-2008

9.15.3 Table 142 Extended User-defined Selections Table Table 142 Data Description This table contains the Extended User-defined selections for constructing the Extended User-defined Tables records. These selections enable the C12.19 Device application to direct the placement of Formal Table, Elements, Final Elements, Sub-elements and arbitrary bit field subsets of any Formal Element into an Extended User-defined Table. Global Default Table Property Overrides: Role=“CONTROL” Table 142 Type Definitions TYPE EUDT_MAPPING_BFLD = BIT FIELD OF UINT32 FORMAL_UNIT_SIZE : UINT(0..3); FORMAL_PAD_ENABLE_FLAG : BOOL(4); FORMAL_PADDING : UINT(5..6); FORMAL_LIMITED_FLAG : BOOL(7); FORMAL_NUMERIC_FLAG : BOOL(8); EUDT_PRODUCTION_CTRL : UINT(9..11); FILLER : FILL(12..15); EUDT_ELEMENT_SIZE : UINT(16..31); END; TYPE EUDT_ITEM_RCD = PACKED RECORD EUDT_ELEMENT_NAME : STRING(ACT_EUDT_TBL.NBR_LABEL_CHARS); FORMAL_TABLE_ID : TABLE_IDB_BFLD; IF ACT_EUDT_TBL.NBR_INSTANCES > 1 THEN FORMAL_INSTANCE_NBR : UINT16; END; EUDT_MAPPING

: EUDT_MAPPING_BFLD;

SWITCH ACT_EUDT_TBL.DATA_ACCESS_METHOD OF CASE 1: FORMAL_BYTE_OFFSET : UINT24; FORMAL_OFFSET_NEXT : UINT24; CASE 2: FORMAL_INDEX : ARRAY[ACT_EUDT_TBL. INDEX_DEPTH] OF UINT16; FORMAL_ELEMENT_COUNT : UINT16; FORMAL_INDEX_NEXT: ARRAY[ACT_EUDT_TBL. INDEX_DEPTH] OF UINT16; END; FORMAL_BIT_OFFSET : UINT8; FORMAL_BIT_COUNT : UINT16 ASSERT ( ACT_EUDT_TBL.DATA_ACCESS_METHOD == 2 && FORMAL_BIT_COUNT > 0 && FORMAL_ELEMENT_COUNT > 1 ) ERROR “Invalid use of FORMAL_ELEMENT_COUNT != 1 and FORMAL_BIT_COUNT > 0”; ; { The semicolon closes FORMAL_BIT_COUNT phrase.} FORMAL_REPEAT_COUNT

: UINT16;

END;

Decade 14: Extended User-defined Tables / Table 142 Extended User-defined Selections Table

307

ANSI C12.19-2008

Tables

TYPE TABLE_SELECTIONS_RCD = PACKED RECORD EUDT_ID : TABLE_IDB_BFLD; SELECTIONS : ARRAY[ACT_EUDT_TBL.NBR_SELECTIONS] OF EUDT_ITEM_RCD; END; TYPE EUDT_SELECTIONS_RCD = PACKED RECORD TABLE_SELECTIONS : ARRAY[ACT_EUDT_TBL.NBR_EUDT] OF TABLE_SELECTIONS_RCD; END; TABLE 142 EUDT_SELECTIONS_TBL = EUDT_SELECTIONS_RCD; Table 142 Element Descriptions Value

Identifier

Definition

EUDT_MAPPING_BFLD FORMAL_UNIT_SIZE

Defines the Formal Element size and data type for accessing the selection from a Table indicated by FORMAL_TABLE_ID. The type casting takes place before the application of FORMAL_BIT_COUNT and FORMAL_BIT_OFFSET. For example, when FORMAL_BIT_OFFSET=5 and FORMAL_BIT_COUNT=3, a selection from a 16 bit wide Element will collect bits starting at Formal Element bit position 5 (where the first bit is in position 0) to bit position 7, inclusive. This is independent of the DATA_ORDER value found in GEN_CONFIG_TBL. The type also affects the interpretation of zero padding and sign extension. Numeric values are padded with zeros, CHAR values are padded with spaces (20H). 0 1 2 3 4 5 6 7 8 9 10 11

308

8 bit Element. 16 bit Element. 24 bit Element. 32 bit Element. 40 bit Element. 48 bit Element. 64 bit element. CHAR or STRING Element. NI_FMAT1 Element. NI_FMAT2 Element. BCD Element. Element is an entire PACKED RECORD, BIT FIELD or built-in type. The FORMAL_BIT_OFFSET and the FORMAL_BIT_COUNT shall be set to zero (0). The entire Element and its inner members shall be referenced.

Decade 14: Extended User-defined Tables / Table 142 Extended User-defined Selections Table

Tables

ANSI C12.19-2008 12..15 FORMAL_PAD_ENABLE_FLAG

A flag that enables or disables the selectors FORMAL_PADDING, and FORMAL_LIMITED_FLAG.

FALSE

All source padding functions are disabled. Element transfer will begin with low order bits and continue toward high order bits. Unavailable source bits shall be set to zero.

TRUE

Source padding functions are enabled. Source padding, sign extension and limits will be set as per FORMAL_PADDING, and FORMAL_LIMITED_FLAG.

FORMAL_PADDING

When the number of bits in the destination element is larger than the source element then sign extension or padding may be required. FORMAL_UNIT_SIZE dictates the sign extension algorithm. 0

Sign extension is required. The most significant bits are signed extended according to the Formal Element type indicated by FORMAL_UNIT_SIZE.

1

Pad with fill octets. Copy octets starting at source bit to target with zero fill padding.

2

Lead with fill octets. Copy octets starting at source bit to target with zero fill leading.

3

Reserved.

FORMAL_LIMITED_FLAG

Controls the roll-over behavior of a numeric field that cannot be represented in a target space that has lesser resolution than that of the source. FALSE TRUE

FORMAL_NUMERIC_FLAG

Reserved.

Do not limit value. On overflow the numeric result will not be limited (truncated or rolled over). Limit value. On overflow the numeric result will be the smallest negative or the largest positive representation of the overflowing numeric field. Example: if a 16 bit signed integer has the value -1000 then when limited to 8 bit it will be set to set to -128. An indication that the selected field shall be treated as a number. This flag forces nonnumeric fields, such as STRING, to be treated

Decade 14: Extended User-defined Tables / Table 142 Extended User-defined Selections Table

309

ANSI C12.19-2008

Tables as a text representation of a number, and be converted to or from numeric binary equivalent of the target. Initialized to zero (0), numeric conversion processing shall stop upon detection of the end of selected field, or upon detection of invalid numeric field value. Example: Assume that the FORMAL_UNIT_SIZE is 7 (STRING) and EUDT_PRODUCTION_CTRL is 2 (UINT32), then a formal text value of “123” shall be mapped to the UINT32 value 0000007BH before placing it in the target collection BIT FIELD. FALSE TRUE

EUDT_PRODUCTION_CTRL

EUDT_ELEMENT_SIZE

310

Do not map the non-numeric value to a number. Map the non-numeric value to a number according to the corresponding value of EUDT_PRODUCTION_CTRL. Controls the bit-packing of BIT FIELDs of a target EUDT bit field element. First members of a BIT FIELD shall begin on an octet boundary with zero octet padding. Bit stuffing shall begin with bit 0 of the indicated data type and progress toward the highest bit position available.

0

Start of a UINT8 bit field or collection of UINT8. First member of a BIT FIELD OF UINT8 or a non-bit-field member.

1

Start of a UINT16. First member of a BIT FIELD OF UINT16 or a non-bit-field member.

2

Start of a UINT32. First member of a BIT FIELD OF UINT32 or a non-bit-field member.

3

Start of a UINT64. First member of a BIT FIELD OF UINT64 or a non-bit-field member.

4

Next BIT FIELD member in sequence.

5

Start of an Element of a PACKED RECORD, BIT FIELD or built-in type.

6..7

Reserved.

0..65535

Size of one EUDT element in bits. When the source element size is smaller than the target element size then only fitting bits will be transferred, and may be padded, sign extended or truncated. When the source element size is greater than the target element size then the

Decade 14: Extended User-defined Tables / Table 142 Extended User-defined Selections Table

Tables

ANSI C12.19-2008 target element may be truncated or be limited. See FORMAL_PAD_ENABLE_FLAG.

EUDT_ITEM_RCD

A single Formal-element to EUDT-element association description. This identifies C12.19 Device Formal Table Elements or subsets of Elements (elements other than EUDT elements) for transport using an Extended User-defined Table.

EUDT_ELEMENT_NAME

The optionally assigned label for the EUDT element used in the production of EDL schemas. If the size of this element is zero or it contains only spaces then the element name is not assigned. If the element name contains a period then the label to the left of the period represents the name of the container elements (as may be needed when this element is the first member of a bit-field) and the label on the right hand side of the period is the bit-field member name.

FORMAL_TABLE_ID

The formal table identifier. This shall not be an EUDT or a UDT data table.

FORMAL_INSTANCE_NBR

0.. 65535

EUDT_MAPPING

The End Device Table set instance number used for selecting the formal table. The instance number refers to a logical table set number that exists inside the same physical device. See EUDT_MAPPING_BFLD.

FORMAL_BYTE_OFFSET

0..16777215

Offset in octets to the beginning of a formal element relative to the beginning of the Table which contains that Element.

FORMAL_OFFSET_NEXT

0..16777215

Offset in bytes to the next element or group of elements relative to the beginning of current selection. The initial selection is defined by FORMAL_BYTE_OFFSET. Additional selections up to FORMAL_REPEAT_COUNT may be made by advancing FORMAL_BYTE_OFFSET by the value of FORMAL_OFFSET_NEXT. The Final Elements FORMAL_BIT_OFFSET and FORMAL_BIT_COUNT shall be applied repeatedly to each selection independently. This is intended to facilitate access to ARRAY Elements such as profile data or self-read.

FORMAL_INDEX

An array of UINT16 containing ACT_EUDT_TBL.INDEX_LEVEL indices that represent the source of an element to be placed in the next available slot of the desired extended-user-defined table. The element may

Decade 14: Extended User-defined Tables / Table 142 Extended User-defined Selections Table

311

ANSI C12.19-2008

Tables be any table object, table element, terminal element or a sub-element. The index value of FFFFH represents the end of the list.

FORMAL_ELEMENT_COUNT 0..65535

The number of Formal Elements selected. This value shall be set to zero for unused selections.

FORMAL_INDEX_NEXT

An array of UINT16 containing ACT_EUDT_TBL.INDEX_LEVEL indices that represent the relative offset to the Formal Element to be associated with the next selection in a sequence of selections. The initial selection is defined by FORMAL_INDEX. Additional selections up to FORMAL_REPEAT_COUNT may be made by advancing the position of FORMAL_INDEX by FORMAL_INDEX_NEXT to the next element (Example 1. Assume that FORMAL_INDEX=1.2.3, FORMAL_INDEX_NEXT=0.1.0 and FORMAL_REPEAT_COUNT=3 then Formal Elements 1.2.3, 1.3.3 and 1.4.3 shall be selected for placement in an EUDT. Example 2. Assume that FORMAL_INDEX=1.2.3, FORMAL_INDEX_NEXT=1.1.0 and FORMAL_REPEAT_COUNT=3 then Formal Elements 1.2.3, 2.3.3 and 3.4.3 shall be selected for placement in an EUDT. ) FORMAL_ELEMENT_COUNT, FORMAL_BIT_OFFSET and FORMAL_BIT_COUNT are applied repeatedly to each selection independently. This is intended to facilitate access to ARRAY Elements such as profile data or self-read.

FORMAL_BIT_OFFSET

0..255

Offset in bits to the beginning of a bit sequence relative to the beginning of the selected element. This offset is independent of the GEN_CONFIG_TBL.DATA_ORDER, since bit offset zero (0) points to bit position zero (the least significant bit) of the selected element. The compliant application shall logically expand the Final Element referred to by the FORMAL_BYTE_OFFSET before applying the FORMAL_BIT_OFFSET. This value shall be ignored (i.e., no access to bit fields of sub-final-elements) when ACT_EUDT_TBL.DATA_ACCESS_METHOD = 2 and FORMAL_BIT_COUNT = 0.

312

Decade 14: Extended User-defined Tables / Table 142 Extended User-defined Selections Table

Tables

ANSI C12.19-2008

FORMAL_BIT_COUNT

0..65535

The number of bits selected. This value shall be set to zero for unused selections. Assert: ERROR on (ACT_EUDT_TBL. DATA_ACCESS_METHOD == 2 && FORMAL_BIT_COUNT > 0 && FORMAL_ELEMENT_COUNT > 1) due to “Invalid use of FORMAL_ELEMENT_COUNT != 1 and FORMAL_BIT_COUNT > 0".

FORMAL_REPEAT_COUNT

0..65535

The number of times to repeat the selection made in this entry. This provides a capability for the selection of elements from Formal ARRAYs for delivery by EUDTs. The value 0 means that there is no repeat; only one Element shall be selected. The value 1 means that there is one repeat, therefore, two Elements shall be selected.

TABLE_SELECTIONS_RCD EUDT_ID

The Extended User-defined Table that is a collection of Elements from other tables from within the End-Device that have been selected for transmission via the EUDT_ID Extended User-defined Table.

SELECTIONS

An array of FORMAL_ITEM_RCD. Array of instructions that collect and direct Table values to and from Extended User-defined Table. The Extended User-defined Tables are populated sequentially based on these selections. When a constructed element from a selection is not a bitfield member (by virtue of EUDT_PRODUCTION_CTRL being “Next BIT FIELD member in sequence”) than it shall align on the next octet boundary with zero fill. Also if it is the first member of a bit-field then it may optionally have a dot-separated name, where the label to the left of the dot is the name of the bit-field and the name to the right of the dot is the name of the bit-field member element. Collections of bit fields are grouped into BIT_FIELD types for transmission in accordance with the type defined in EUDT_PRODUCTION_CTRL These are assembled into the extended-user-defined BIT FIELD table-element starting with bit field position 0. Selections made in any EUDT shall only reference into Formal data Table Elements. Also they shall not reference any UDT (Tables 84-89) or EUDT data table elements.

Decade 14: Extended User-defined Tables / Table 142 Extended User-defined Selections Table

313

ANSI C12.19-2008

EUDT_SELECTIONS_RCD TABLE_SELECTIONS

314

Tables

An array of Table selections. TABLE_SELECTIONS_RCD.

See

Decade 14: Extended User-defined Tables / Table 142 Extended User-defined Selections Table

Tables

ANSI C12.19-2008

9.15.4 Table 143 Extended User-defined Constants Table Table 143 Data description This table provides a place holder for placing various values that may be selected as Elements by Table 142, EUDT_SELECTIONS_TBL. A typical use for this Table is to fill elements with bit patterns or numeric values that are non-changing and cannot be constructed from a reference to any standard or manufacturer-defined Table Final Element. Global Default Table Property Overrides: Role=“CONTROL” Table 143 Type Definitions TYPE EUDT_CONSTANTS_RCD = PACKED RECORD CONSTANT : ARRAY [ACT_EUDT_TBL.NBR_CONSTANTS] OF INT64; END; TABLE 143 EUDT_CONSTANTS_TBL = EUDT_CONSTANTS_RCD; Table 143 Element Descriptions Identifier

Value

Definition

EUDT_CONSTANTS_RCD CONSTANT -9223372036854775808..9223372036854775807 An array of INT64. Entries from this array may be seeded (programmed) with values and referenced fully or in part from Table 142, EUDT_SELECTIONS_TBL.

Decade 14: Extended User-defined Tables / Table 143 Extended User-defined Constants Table

315

ANSI C12.19-2008

Tables

9.16 Decade 15: Quality-of-service Decade 15 Name QUALITY_SERVICE_DEC Decade 15 Data Description This Decade provides the Tables required to capture information that is not necessarily used for the production commodity consumption reports. The information recorded pertains to the evaluation of the sustained quality commodity delivered. In the case of electrical services, these Tables are the placeholders of Power Quality monitoring controls and data values. In the context of water and gas industries, these Tables are the placeholders of for reports on water and gas commodity quality (such as purity) and sustained delivery of the commodities. Time-domain and frequency-domain input sample data (waveforms) can be captured periodically and as a result of a Quality-of-service event trigger. When the commodities’ properties or their sustained delivery fall below certain acceptable limits (as indicated by a service contract or regulation) then it leads to a Quality-of-service condition. For example, in the electrical industry context, it is desirable to record a voltage sag or short duration voltage interruption. The recording of these Events are known to the industry as power quality Events. However, the continual recurrence of voltage sag or repeated short duration power interruptions elevates Power Quality Events to Quality-of-service Events. This Decade provides the necessary framework to accommodate both. Note: In this Decade, the acronym “FD” is an abbreviation for the term “Frequency Domain”. acronym “TD” is an abbreviation for the term “Time Domain”. Decade 15 Type Definitions TYPE TD_SAMPLE_FORMAT_RCD = PACKED RECORD SWITCH QUALITY_CONTROL_TBL.TD_SAMPLES_FORMAT_CODE OF CASE 1 : ITEM : UINT8; CASE 2 : ITEM : UINT16; CASE 4 : ITEM : UINT32; CASE 8 : ITEM : INT8; CASE 16: ITEM : INT16; CASE 32: ITEM : INT32; CASE 64: ITEM : NI_FMAT1; CASE 128: ITEM : NI_FMAT2; END; END; TYPE FD_SAMPLE_FORMAT_RCD = PACKED RECORD SWITCH QUALITY_CONTROL_TBL. FD_SAMPLES_FORMAT_CODE OF CASE 1 : ITEM : UINT8; CASE 2 : ITEM : UINT16; CASE 4 : ITEM : UINT32; CASE 8 : ITEM : INT8; CASE 16: ITEM : INT16; CASE 32: ITEM : INT32; CASE 64: ITEM : NI_FMAT1; CASE 128: ITEM : NI_FMAT2; END; END;

316

The

Tables

ANSI C12.19-2008

TYPE WAVEFORM_LIST_STATUS_BFLD = BIT FIELD OF UINT8 ORDER : UINT(0..0); OVERFLOW_FLAG : BOOL(1); LIST_TYPE : UINT(2..2); BLOCK_INHIBIT_OVERFLOW_FLAG : BOOL(3); INTERVAL_ORDER : UINT(4..4); ACTIVE_MODE_FLAG : BOOL(5); TEST_MODE : UINT(6..6); FILLER : FILL(7..7); END; TYPE WAVEFORM_LIST_STATUS_RCD = PACKED RECORD STATUS_FLAGS : WAVEFORM_LIST_STATUS_BFLD; NBR_VALID_ENTRIES : UINT16; LAST_ENTRY_ELEMENT : UINT16; LAST_ENTRY_SEQ_NBR : UINT32; NBR_UNREAD_ENTRIES : UINT16; NBR_VALID_INT : UINT16; END; Decade 15 Element Descriptions Identifier TD_SAMPLE_FORMAT_RCD

Value

ITEM

The data type to use QUALITY_CONTROL_TBL. TD_SAMPLES_FORMAT_CODE.

FD_SAMPLE_FORMAT_RCD

per

Redefines: LP_DATA_SET1_TBL.INT_FMT1_RCD. A generalized data type used to express the format to be used for frequency-domain waveform transformed data representation in Quality-of-service Tables.

ITEM

The data type to use QUALITY_CONTROL_TBL. FD_SAMPLES_FORMAT_CODE.

WAVEFORM_LIST_STATUS_BFLD

per

Redefines: LP_STATUS_TBL.LP_SET_STATUS_BFLD. The generic waveform capture list management bit field.

ORDER 0 1

Decade 15: Quality-of-service

Definition Redefines: LP_DATA_SET1_TBL.INT_FMT1_RCD. A generalized data type used to express the format to be used for time-domain waveform data representation in Quality-of-service Tables.

Alias: BLOCK_ORDER. Blocks of waveform data are transported in ascending order (N is older than N+1). Blocks of waveform data are transported in descending order (N is newer than N+1).

317

ANSI C12.19-2008

OVERFLOW_FLAG

Tables

FALSE TRUE

LIST_TYPE 0 1 BLOCK_INHIBIT_OVERFLOW_FLAG FALSE TRUE INTERVAL_ORDER

Overflow has not occurred. Overflow has occurred. An attempt was made to enter an interval in a new data block such that the number of unread blocks exceeded the actual number of possible blocks in waveform table storage. Alias: LIST_TYPE_FLAG. FIFO (First-In-First-Out) waveform storage. Circular list waveform storage. End Device is not inhibiting waveform capture once an overflow occurs. End Device inhibits waveform capture once an overflow occurs.

0

Ascending. Samples in each block of waveform data are transported in ascending order (sample N is older or lower ordinal position than sample N+1).

1

Descending. Samples in each block of waveform data are transported in descending order (sample N is newer or higher ordinal position than sample N+1).

ACTIVE_MODE_FLAG

FALSE TRUE

The waveform recorder table is not enabled. The waveform recorder table is enabled.

TEST_MODE

0

The waveform recorder is set-up for normal mode. The waveform recorder is set-up for test mode.

1 WAVEFORM_LIST_STATUS_RCD

Redefines: LP_STATUS_TBL.LP_SET_STATUS_RCD. The generic waveform capture list status management packed record. Atomic=”TRUE”. Accessibility=”READONLY”.

STATUS_FLAGS NBR_VALID_ENTRIES

318

See WAVEFORM_LIST_STATUS_BFLD. 0..65535

Number of valid waveform data blocks in the associated table. The range is zero (0), to mean no data blocks in the table, to the actual dimension of the number of waveform data blocks. The block is considered valid when at least one sample is written.

Decade 15: Quality-of-service

Tables

ANSI C12.19-2008

LAST_ENTRY_ELEMENT

0..65535

LAST_ENTRY_SEQ_NBR

0..4294967295

The array element of the newest valid data block in the waveform data array. This field is valid only if NBR_VALID_ENTRIES is greater than zero (0). The sequence number of the last element (.LAST_ENTRY_ELEMENT) in the waveform data array.

NBR_UNREAD_ENTRIES

0..65535

The number of data blocks that have not been read. This number is only updated through a procedure.

NBR_VALID_INT

0..65535

Number of valid samples stored in the most current block array. The range is zero (0), to mean no data in the array, to the actual dimension of the number of possible entries per block.

9.16.1 Table 150 Quality-of-service Dimension Limits Table Table 150 Data Description This Table defines the maximum dimensions and limits for the Quality-of-service Decade. Global Default Table Property Overrides: Role=“LIMITING”, Accessibility=“READONLY” Table 150 Type Definitions TYPE QS_FEATURES_BFLD = BIT FIELD OF UINT32 INHIBIT_OVF_QS_LOG_FLAG : BOOL(0); NOTIFY_OVF_QS_LOG_FLAG : BOOL(1); INHIBIT_OVF_TD_ASYNC_FLAG NOTIFY_OVF_TD_ASYNC_FLAG TD_SCALAR_DIVISOR_FLAG

: BOOL(2); : BOOL(3); : BOOL(4);

INHIBIT_OVF_FD_ASYNC_FLAG NOTIFY_OVF_FD_ASYNC_FLAG SCALAR_DIVISOR_FD_ASYNC_FLAG

: BOOL(5); : BOOL(6); : BOOL(7);

INHIBIT_OVF_TD_PERIODIC_FLAG NOTIFY_OVF_TD_PERIODIC_FLAG SCALAR_DIVISOR_TD_PERIODIC_FLAG

: BOOL(8); : BOOL(9); : BOOL(10);

INHIBIT_OVF_FD_PERIODIC_FLAG NOTIFY_OVF_FD_PERIODIC_FLAG SCALAR_DIVISOR_FD_PERIODIC_FLAG

: BOOL(11); : BOOL(12); : BOOL(13);

REPEAT_TD_FLAG REPEAT_FD_FLAG FD_COMPLEX_FLAG FD_PHASOR_FLAG QUALITY_RESET_CTR_FLAG INCIDENT_SORTABLE_FLAG

: BOOL(14); : BOOL(15); : BOOL(16); : BOOL(17); : BOOL(18); : BOOL(19);

Decade 15: Quality-of-service / Table 150 Quality-of-service Dimension Limits Table

319

ANSI C12.19-2008

Tables

COMMON_SAMPLING_RATE_FLAG COMMON_NBR_OF_SAMPLES_FLAG INTERHARMONICS_FLAG FILLER

: BOOL(20); : BOOL(21); : BOOL(22); : FILL(23..31);

END; TYPE QS_LIMITS_RCD = PACKED RECORD FEATURES NBR_OF_EVENT_IDS NBR_OF_EVENTS NBR_OF_INCIDENTS NBR_OF_COINCIDENT_VALUES WAVEFORM_FORMATS TD_SAMPLING_RATE NBR_OF_TD_SAMPLES NBR_OF_TD_BLOCKS NBR_OF_TD_CHANNELS NBR_OF_TD_CHANNELS_PER_BLOCK NBR_OF_TD_SAMPLES_PER_BLOCK NBR_OF_TD_PREFETCH_SAMPLES FD_SAMPLING_RATE NBR_OF_FD_SAMPLES NBR_OF_SPECTRAL_COMPONENTS NBR_OF_FD_BLOCKS NBR_OF_FD_CHANNELS NBR_OF_FD_CHANNELS_PER_BLOCK NBR_OF_FD_SPECTRA_PER_BLOCK NBR_OF_FD_PREFETCH_SAMPLES LABEL_LENGTH

: QS_FEATURES_BFLD; : UINT16; : UINT16; : UINT16; : UINT16; : WAVEFORM_FORMATS_BFLD; : NI_FMAT2; : UINT32; : UINT16; : UINT16; : UINT16; : UINT16; : UINT32; : NI_FMAT2; : UINT32; : UINT16; : UINT16; : UINT16; : UINT16; : UINT16; : UINT32; : UINT8;

END; TABLE 150 DIM_QUALITY_OF_SERVICE_TBL = QS_LIMITS_RCD; Table 150 Element Descriptions Value

Identifier QS_FEATURES_BFLD

Definition This bit field provides indications about the End Device maximum waveform capture capabilities.

INHIBIT_OVF_QS_LOG_FLAG FALSE TRUE NOTIFY_OVF_QS_LOG_FLAG

320

End Device is not capable of inhibiting block overflow on QUALITY_LOG_TBL. End Device is capable of inhibiting block overflow on QUALITY_LOG_TBL. This is a notification capability indication for block overflow on QUALITY_LOG_TBL. When this capability is available and it is enabled, then the End Device shall utilize the appropriate notification mechanism to inform a remote system about the QUALITY_LOG_TBL block overflow.

Decade 15: Quality-of-service / Table 150 Quality-of-service Dimension Limits Table

Tables

ANSI C12.19-2008 FALSE TRUE

INHIBIT_OVF_TD_ASYNC_FLAG FALSE TRUE NOTIFY_OVF_TD_ASYNC_FLAG

FALSE TRUE

End Device is not capable of notifying a remote system about block overflows of QUALITY_LOG_TBL. End Device is capable of notifying a remote system about block overflows of QUALITY_LOG_TBL. End Device is not capable of inhibiting block overflow on TD_ASYNC_TBL. End Device is capable of inhibiting block overflow on TD_ASYNC_TBL. This is a notification capability indication for block overflow on TD_ASYNC_TBL. When this capability is available and it is enabled then the End Device shall utilize the appropriate notification mechanism of the communication protocol to inform a remote system about the TD_ASYNC_TBL block overflow. End Device is not capable of notifying a remote system about block overflows of TD_ASYNC_TBL. End Device is capable of notifying a remote system about block overflows of TD_ASYNC_TBL.

TD_SCALAR_DIVISOR_FLAG FALSE

End Device is not capable of having scalars and divisors associated with TD_ASYNC_TBL waveform data.

TRUE

End Device is capable of having scalars and divisors associated with TD_ASYNC_TBL waveform data.

INHIBIT_OVF_FD_ASYNC_FLAG FALSE TRUE NOTIFY_OVF_FD_ASYNC_FLAG

FALSE

End Device is not capable of inhibiting block overflow on FD_ASYNC_TBL. End Device is capable of inhibiting block overflow on FD_ASYNC_TBL. This is a notification capability indication for block overflow on FD_ASYNC_TBL. When this capability is available and it is enabled then the End Device shall utilize the appropriate notification mechanism of the communication protocol to inform a remote system about the FD_ASYNC_TBL block overflow. End Device is not capable of notifying a remote system about block overflows of FD_ASYNC_TBL.

Decade 15: Quality-of-service / Table 150 Quality-of-service Dimension Limits Table

321

ANSI C12.19-2008

Tables TRUE

SCALAR_DIVISOR_FD_ASYNC_FLAG FALSE TRUE

INHIBIT_OVF_TD_PERIODIC_FLAG FALSE TRUE NOTIFY_OVF_TD_PERIODIC_FLAG

FALSE TRUE

SCALAR_DIVISOR_TD_PERIODIC_FLAG FALSE TRUE

INHIBIT_OVF_FD_PERIODIC_FLAG FALSE TRUE NOTIFY_OVF_FD_PERIODIC_FLAG

322

End Device is capable of notifying a remote system about block overflows of FD_ASYNC_TBL. End Device is not capable of having scalars and divisors associated with FD_ASYNC_TBL waveform data. End Device is capable of having scalars and divisors associated with FD_ASYNC_TBL waveform data. End Device is not capable of inhibiting block overflow on TIME_DOMAIN_TBL. End Device is capable of inhibiting block overflow on TIME_DOMAIN_TBL. This is a notification capability indication for block overflow on TIME_DOMAIN_TBL. When this capability is available and it is enabled, then the End Device shall utilize the appropriate notification mechanism of the communication protocol to inform a remote system about the TIME_DOMAIN_TBL block overflow. End Device is not capable of notifying a remote system about block overflows of TIME_DOMAIN_TBL. End Device is capable of notifying a C12.19 remote system about block overflows of TIME_DOMAIN_TBL. End Device is not capable of having scalars and divisors associated with TIME_DOMAIN_TBL waveform data. End Device is capable of having scalars and divisors associated with TIME_DOMAIN_TBL waveform data. End Device is not capable of inhibiting block overflow on FREQUENCY_DOMAIN_TBL. End Device is capable of inhibiting block overflow on FREQUENCY_DOMAIN_TBL. This is a notification capability indication for block overflow on FREQUENCY_DOMAIN_TBL. When this capability is available and it is enabled, then the End Device shall utilize the appropriate notification mechanism of the communication protocol to inform a remote system about the FREQUENCY_DOMAIN_TBL block overflow.

Decade 15: Quality-of-service / Table 150 Quality-of-service Dimension Limits Table

Tables

ANSI C12.19-2008

FALSE TRUE

SCALAR_DIVISOR_FD_PERIODIC_FLAG FALSE

TRUE

REPEAT_TD_FLAG

End Device is not capable of notifying a remote system about block overflows of FREQUENCY_DOMAIN_TBL. End Device is capable of notifying a remote system about block overflows of FREQUENCY_DOMAIN_TBL. End Device is not capable of having scalars and divisors associated with FREQUENCY_DOMAIN_TBL waveform data. End Device is capable of having scalars and divisors associated with FREQUENCY_DOMAIN_TBL waveform data. An indication if the End Device can perform counted repeated time-domain waveform capture following a Quality-of-service event.

FALSE TRUE REPEAT_FD_FLAG

End Device is not capable of repeated counted waveform captures. End Device is capable of repeated counted waveform captures. An indication if the End Device can perform counted repeated waveform transform (frequency domain) captures following a Qualityof-service event.

FALSE TRUE

FD_COMPLEX_FLAG

End Device is not capable of repeated waveform transform (frequency captures. End Device is capable of repeated waveform transform (frequency captures.

counted domain) counted domain)

An indication if the End Device is capable of delivering frequency domain spectral analysis encoded complex elements (the mathematical real and imaginary spectral components). FALSE TRUE

FD_PHASOR_FLAG

End Device is not capable of reporting spectral components as complex elements. End Device is capable of reporting spectral components as complex elements. A flag that indicates whether the End Device is capable of delivering frequency domain spectral analysis encoded as spectral component phase angle and related magnitude pairs as elements.

FALSE

End Device is not capable of reporting spectral components as phase angles and magnitude.

Decade 15: Quality-of-service / Table 150 Quality-of-service Dimension Limits Table

323

ANSI C12.19-2008

Tables TRUE

QUALITY_RESET_CTR_FLAG

An indication of whether or not counting resets of quality counters is possible. FALSE TRUE

INCIDENT_SORTABLE_FLAG

End Device is not capable of counting resets of quality counters. End Device is capable of counting resets of quality counters. An indication of a capability to sort the Qualityof-service incidents according to a user specified priority. See QUALITY_CONTROL_TBL.

FALSE TRUE COMMON_SAMPLING_RATE_FLAG

FALSE

TRUE

COMMON_NBR_OF_SAMPLES_FLAG

FALSE

TRUE

INTERHARMONICS_FLAG

End Device cannot be programmed to sort incidents by criteria. End Device can be programmed to sort incidents by criteria. An indication of a capability to provide a different sampling rate for waveform captures on a perevent type basis. End Device cannot be programmed with different sampling rates for the purpose of waveform capture. All Quality-of-service events shall be captured at the same sampling rate. End Device can be programmed with different sampling rates for the purpose of waveform capture. Each Quality-of-service event may be captured at a different sampling rate. An indication of a capability to collect a different number of samples for waveform captures on a per-event type basis. End Device cannot be programmed with different numbers of samples for the purpose of waveform capture. All Quality-of-service events shall capture the same number of samples. End Device can be programmed with different numbers of samples for the purpose of waveform capture. All Quality-of-service events can capture different numbers of samples. An indication of a capability interharmonic spectral components.

FALSE

TRUE

324

End Device is capable of reporting spectral components as phase angles and magnitude.

to

store

The End Device is not capable of recording interharmonics in the frequency domain. All spectral components recorded are an integer multiple of the fundamental frequency. The End Device is capable of recording interharmonics in the frequency domain. All

Decade 15: Quality-of-service / Table 150 Quality-of-service Dimension Limits Table

Tables

ANSI C12.19-2008 spectral components recorded are discrete frequencies.

WAVEFORM_FORMATS_BFLD

INV_UINT8_FLAG

Redefines: DIM_LP_TBL.LP_FMATS_BFLD. This set of Booleans specifies the format(s) acceptable for use in waveform capture tables. FALSE TRUE

INV_UINT16_FLAG

FALSE TRUE

INV_UINT32_FLAG

FALSE TRUE

INV_INT8_FLAG

FALSE TRUE

INV_INT16_FLAG

FALSE TRUE

INV_INT32_FLAG

FALSE TRUE

INV_NI_FMAT1_FLAG

FALSE TRUE

INV_NI_FMAT2_FLAG

FALSE TRUE

QS_LIMITS_RCD

UINT16 format for waveform capture is not supported by this End Device. UINT16 format for waveform capture is supported by this End Device. UINT32 format for waveform capture is not supported by this End Device. UINT32 format for waveform capture is supported by this End Device. INT8 format for waveform capture is not supported by this End Device. INT8 format for waveform capture is supported by this End Device. INT16 format for waveform capture is not supported by this End Device. INT16 format for waveform capture is supported by this End Device. INT32 format for waveform capture is not supported by this End Device. INT32 format for waveform capture is supported by this End Device. NI_FMAT1 format for waveform capture is not supported by this End Device. NI_FMAT1 format for waveform capture is supported by this End Device. NI_FMAT2 format for waveform capture is not supported by this End Device. NI_FMAT2 format for waveform capture is supported by this End Device. This packed record defines the End Device maximum Quality-of-service operational limits.

FEATURES NBR_OF_EVENT_IDS

UINT8 format for waveform capture is not supported by this End Device. UINT8 format for waveform capture is supported by this End Device.

See QS_FEATURES_BFLD. 0..65535

Maximum total number of unique event identifier descriptors supported by this End Device.

Decade 15: Quality-of-service / Table 150 Quality-of-service Dimension Limits Table

325

ANSI C12.19-2008

Tables

NBR_OF_EVENTS

0..65535

Maximum number of Quality-of-service events that the End Device can record internally.

NBR_OF_INCIDENTS

0..65535

Maximum number of service quality incident reports recorded in QUALITY_INCIDENTS_TBL.

NBR_OF_COINCIDENT_VALUES 0..65535

Maximum number of coincidental data sources that can be bound to any one Quality-of-service event recorded.

WAVEFORM_FORMATS

See WAVEFORM_FORMATS_BFLD.

TD_SAMPLING_RATE

Largest possible sampling rate, in hertz (Hz), supported by this End Device when capturing time-domain waveform data.

NBR_OF_TD_SAMPLES

0..4294967295 Largest possible number of data samples that can be collected in one waveform capture by this End Device when capturing time-domain waveform data.

NBR_OF_TD_BLOCKS 0..65535

NBR_OF_TD_CHANNELS

Maximum

Maximum number of time-domain waveform blocks that the End Device can capture in TD_ASYNC_TBL. number of time-domain waveform channels (independent sources) that the End Device can capture per Quality-of-service event.

0

End Device is not capable of capturing timedomain waveforms.

1..65535

End Device is capable of capturing time-domain waveforms.

NBR_OF_TD_CHANNELS_PER_BLOCK 0..65535

NBR_OF_TD_SAMPLES_PER_BLOCK 0..65535

Maximum number of time-domain waveform channels (independent sources) that the End Device can capture per Quality-of-service data block. This value shall be ignored if NBR_OF_TD_CHANNELS = 0. Otherwise 0 < NBR_OF_TD_CHANNELS_PER_BLOCK 1000 then report 1 otherwise 0, based on the demands reported in Table 28, at indices 2 and 6. “((ST(27).PRESENT_DEMAND[0].DEMAND_VALUE + ST(27).PRESENT_DEMAND[6]. DEMAND_VALUE) > 1000) ? 1 : 0” Example 5: The total energy consumed across Phase A (index 2), Phase B (index 4) and Phase C (index 6). “@SUM(ST(27).PRESENT_VALUE[2], ST(27).PRESENT_VALUE[4], ST(27).PRESENT_VALUE[6])” Example 6: Same as example 5, using indices instead of mnemonics. “@SUM(ST(27).1.2, ST(27).1.4, ST(27).1.6)”

G.16 Properties Properties represent information that can be attached to an End Device Document Form definition or any item in the definition. A single property or multiple properties can be attached to a End Device, Table, Procedure, PACKED RECORD or BIT FIELD types; or any member of a PACKED RECORD, BIT FIELD or SET declaration such as Element, Sub-element or Final element. The DESCRIPTION property is common across all items. This property allows information about an item to be specified. The LABEL property is common across all items. It allows a short meaningful string to be associated with an item definition. A label is intended to be a alternate presentation text for the name of the item. The name of an item shall be used in TDL expression only. The ENUM property enumerates a list of valid values for an element. This property can only be applied to a final element. Values that are not explicitly listed shall be considered invalid. The ASSERT property provides a validation expression for an element or describes an inter-field or intertable constraint. text

::=

["] anyChar* ["] { Semi colons are allowed within text as they are distinguished from the terminal ';' by virtue that they are enclosed within double quotes. A double quote may be present by prefixing it with the escape character. e.g., "This is a valid \"text\" ; followed by a semicolon" ; } ;

enumMember

::=

(number | true| false) S* '=' S* text S* ';' | S* enumMember S* ;

enumerator

::=

enum S+ (enumIdentifier S* '=' S*)? enumMember* end S* ';' | S* enumerator S* ;

memberProperties

::=

commonProperties enumerator? ;

commonProperties

::=

((label S* text S* ';')? (description S* text S* ';')? (assert S* '(' condition ')' S* (('ERROR' | 'WARN' | 'INFO') S*)? / constraint : text “Default assertion is 'ERROR'” text S* ';')* ) |

448

Document-form Descriptive Syntax

ANSI C12.19-2008

S* commonProperties S* ; fieldProperties

::=

field simpleElementName commonProperties ;

typeProperties

::=

type derivedTypeReference commonProperties? fieldProperties* ;

tblProperties

::=

commonProperties? typeProperties* ;

procProperties

::=

commonProperties? typeProperties* ;

properties

::=

property S* of S* table tblIdentifier tblProperties end ';' | property S* of S* procedure procIdentifier procProperties end ';' | property S* of S* typeProperties end ';' | S* properties S* ;

Example: PROPERTY OF TABLE ACT_LP_TBL LABEL “Actual load profile table” ; DESCRIPTION “ACT_LP_TBL (Table 61) contains actual values for the Load Profile application limiting parameters. These parameters provide for up to four independent sets of Load Profile data.” ; ASSERT(ACT_LP_TBL.LP_MEMORY_LEN >= (ACT_LP_TBL.NBR_BLKS_SET1 + 8 ) * ACT_LP_TBL.NBR_BLK_INTS_SET1 * ACT_LP_TBL.NBR_CHNS_SET1* 2) ERROR “Inconsistent settings for ACT_LP_TBL”; END;

G.17 Document Form Starting Production Rule The BNF.syntax production-rule is the starting point for encoding the Document Form Table-definitions. syntax ::= ((rcdType | bfldType | constType | enumerator | properties)* (procDefinition | tableDefinition))* ;

449

ANSI C12.19-2008

Date-time Elements Conversion Algorithm (TM_FORMAT=3 and TM_FORMAT=4)

ANNEX H: Date-time Elements Conversion Algorithm (TM_FORMAT=3 and TM_FORMAT=4) (Informative) The following algorithm shows how date and time fields represented using TM_FORMAT=3 or TM_FORMAT=4 are converted to a date and time in the Gregorian calendar. This algorithm includes the complete leap years rules handling: leap years are all years divisible by 4, with the exception of those divisible by 100, but not by 400. This algorithm can be used before or after the “Algorithm for converting from transported End Device time to End Device operational time” as defined in the intro of Decade 5. This algorithm is provided as reference and any other equivalent algorithms can be used instead. #include void timeDateToYMDHM(unsigned long timestamp) { static unsigned int totalDaysByMonth[] = { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 }; unsigned int year, month , day , hour, minute; hour = timestamp % 1440 / 60; minute = timestamp % 60; timestamp /= 1440; year = 1970 + (timestamp / ((unsigned long) 100 * 1461 - 3)) * 400; timestamp %= 100 * 1461 - 3; if (timestamp >= 32 * 1461 + 789) timestamp++; if (timestamp >= 57 * 1461 + 789) timestamp++; if (timestamp >= 82 * 1461 + 789) timestamp++; year += (timestamp / 1461) * 4; timestamp %= 1461; if (timestamp >= 790) timestamp--; else if (timestamp == 789) { month = 2; day = 29; year += 2; return; } year += timestamp / 365; timestamp %= 365; month = 1; while (timestamp >= totalDaysByMonth[month]) { month = month + 1; } day = timestamp - totalDaysByMonth[month - 1] + 1; }

printf("%04d-%02d-%02d %02d:%02d UTC time", year, month, day, hour, minute);

As an example, calling this method with a timestamp set to 19241336 return: 2006-08-02 00:56 UTC time This result can further be converted to a specific locale by adding the time zone offset and DST offset. If we take “America/New York” (the locale) as an example, we need to add a -5:00 time zone offset and a 1:00 DST offset. 2006-08-01 19:56 Standard time 2006-08-01 20:56 Localized time (includes DST)

450

XML File Format of TDL and EDL Files

ANSI C12.19-2008

ANNEX I: XML File Format of TDL and EDL Files (Normative)

I.1 Overview of the TDL/EDL XML Document Framework The Standard files C1219TDL-1997.xml and C12.19-2008.xml define the Standard tables syntax and meta-data using XML notation for the first and second versions of this standard. These can be used to generate the Document Form described in Section 5.0, “Syntax”. The XML-element production rules defined in this Annex are directly based on the standard’s structure, defined types, and constraints. The TDL/XML meta-data can provide additional structural information and constraints, some of them are exposed in the published text of Section 6.0, “Special Data Types” and Section 9.0, “Tables”. The EDL/XML meta-data and values can provide additional information and constraints on actual data values, such as default sets used and element indices. The hierarchical relation among all XML/TDL and XML/EDL elements and their attribute is presented using XML DTD syntax. The DTD described within together with the BNF definitions provide sufficient framework for the creation of an automated advanced metering infrastructure.

I.1.1 TDL/EDL Files and Terminology In the pages that follow, we used the following terms to document the TDL/EDL XML Form framework. 1. C1219TDLSchema.xsd, a reference schema for TDL/XML file structure and constraints validation. 2. C1219TDLTransform.xsl, is an XML style sheet, that can be used to transform the End Device TDL file into a formatted document, which looks like Section 6.0, “Special Data Types” and Section 9, “Tables” of this Standard. 3. C1219TDLIndicesTransform.xsl, is an XML style sheet, that can be used to transform the End Device TDL file into a formatted document, which can be placed in Annex D, “Indices for Partial Table Read/Write Access” of this Standard. 4. C1219TDLEDLTransform.xsl is an XML style sheet, that can be used to transform the End Device TDL file into C1219TDL-xxxx-EDLSchema.xsd document, which is a validation template for creating constant, data and default sets to be placed in a file like C1219TDL-xxxxDefaultSet.xml. 5. C1219TDL-xxxx-EDLSchema.xsd, a reference schema for EDL/XML file structure and constraints validation. 6. C1219EDLTransform.xsl, is an XML style sheet, that can be used to transform the C12.19 EDL files (such as default sets) into a formatted document, which can be placed in Annex C, “Default Sets for Decade Tables” of this Standard.

451

ANSI C12.19-2008

XML File Format of TDL and EDL Files

C1219TDLSchema.xsd

C1219TDLTransform.xsl

XSL Processor

C1219TDL-xxxx.xml Document Form of Section 9

Figure I.1—Production of the Document Form (Document Format of Section 9.0, “Tables”) from the TDL XML File.

C1219TDLSchema.xsd

C1219TDLEDLTransform.xsl

XSL Processor

C1219TDL-xxxx.xml C1219TDL-xxxx-EDLSchema.xsd

Figure I.2—Production of Exchange Data Language (EDL) validation schema file from a TDL XML File.

C1219TDL-xxxx-EDLSchema.xsd

C1219EDLTransform.xsl

XSL Processor

C1219TDL-xxxx-DefaultSet.xml Document Form of Annex C

Figure I.3—Production of the Document Form (Document Format of Annex C, “Default Sets for Decade Tables”) from the EDL XML default sets file.

452

XML File Format of TDL and EDL Files

ANSI C12.19-2008

C1219TDLSchema.xsd

C1219TDLIndicesTransform.xsl

XSL Processor

C1219TDL-xxxx.xml Document Form of Annex D

Figure I.4—Production of final element indices (Document Format of Annex D, “Indices for Partial Table Read/Write Access”) from a TDL XML File. Similarly, End Device manufacturers can use the above production rules, to process End Device TDL documents and publish Manufacturer Tables, implementation variations and constants (See diagram below). Referenced Standards C1219TDLSchema.xsd

C1219TDLTransform.xsl C1219TDL-xxxx.xml C1219TDL-xxxx-DefaultSet.xml

End Device Class Files .xml (.a.b.c.d) -Constants.xml XSL Processor or AMI Application -Constants.xml

C1219TDL-xxxx-EDLSChema.xsd -EDLSChema.xsd

-Data.xml (AMI Exchange Data)

.doc

AMI Exchange Application

Figure I.5—From XML to AMI application. The pathways for using C12.19 Standard and Manufacturerdefined TDL/XML tables for Documentation, EDL and AMI application processing.

453

ANSI C12.19-2008

XML File Format of TDL and EDL Files

Figure I.1-I.5 above depict the following files as inputs or outputs to XSL and AMI processors. These are described below: File Name C1219TDLSchema.xsd

Input for / Used by Input for: XSL processor Used by: AMI application

C1219TDLTransform.xsl

Input for :XSL processor Used by: Document Form producer Input for :XSL processor Used by: Document Form producer

C1219EDLTransform.xsl

C1219TDLIndicesTransform.xsl

Input for :XSL processor Used by: Document Form producer

C1219TDL-xxxx.xml

Input for: XSL processor Used by: Document Form producer, EDL schema producer and AMI application

C1219TDL-xxxx-DefaultSet.xml

Input for: XSL processor Used by : Document Form producer and AMI application

.xml (.a.b.c.d)

Input for: XSL processor Used by: Document Form producer and AMI application

454

Description A validation schema for any End Device or Standard TDL document. Table pseudo PASCAL publication rules used to generate the Document Form. Publication rules used to generate the Document Form of constant values and default sets used to be assumed in Table Elements embedded in the End Device. Publication rules used to generate Annex D, “Indices for Partial Table Read/Write Access” or Manufacturer Document Form of manufacturer’s element indices. The C12.19 Standard table descriptions for ANSI C12.19xxxx. This file is an input to the XSL processor to produce the Document Form. This file is also an input to an AMI application that communicates with an End Device. This file can also be used to generate the C1219TDLxxxx-EDLSChema.xsd used to validate the EDL data file. The input values of the default sets of actual limits tables. These values are published based on the C1219EDL-xxxxDLSChema.xsd (which in turn is derived from C1219TDLxxxx.xml. When processed by an XSL processor it produces appendix C of the published ANSI C12.19-xxxx Standard Document Form. When used by an AMI application it delivers default values that initialize unavailable actual limits tables. The C12.19 Manufacturer table descriptions for registered Device Class a.b.c.d. This file is an input to the XSL processor to produce manufacturer’s documentation. This file is also an input to an AMI application

XML File Format of TDL and EDL Files

File Name

ANSI C12.19-2008

Input for / Used by

-Constants.xml (.a.b.c.d)

Input for: XSL processor Used by: Document Form producer and AMI application

-Constants.xml (.a.b.c.d)

Input for: AMI processor Used by: Utility AMI application

C1219-xxxx.doc (Section 9 and Annex C)

Used by: Document Form producer and developers who implement ANSI C12.19-xxxx Standard. Used by: Developers who implement AMI tools for End Device a.b.c.d.

.doc (.a.b.c.d)

C1219TDL-xxxxEDLSChema.xsd

Used by: AMI application

-EDLSchema.xsd (.a.b.c.d)

Used by: AMI application

-Data.xml

Used by: AMI application, Data exporter and importer application

Description that communicates with that End Devices. The input values of the constant tables or fields within tables, which cannot be retrieved from the End Device. These values are published in the manufacturer’s Document Form, based on the .xml (.a.b.c.d) (which in turn is derived from C1219TDL-xxxx.xml). When processed by an XSL processor it produces a tabulation of preassigned table values for Device Class a.b.c.d. When used by an AMI application it delivers default values that shall be assumed by the AMI application when these Table Final Element values cannot be obtained directly from the End Device. Utility site specific management data needed to manage the End Device Class a.b.c.d. The published Document Form ANSI C12.19-xxxx Section 9 and Annex C or Annex D. The published Manufacturer Document Form of the Manufacturer’s tables and constants based on the ANSI C12.19-xxxx Standard and the documentation TDL of End Device Class a.b.c.d. AMI data validation schema for XML data transfer based solely on ANSI C12.19-xxxx Standard. AMI data validation schema for XML data exchange based on ANSI C12.19-xxxx Standard, as extended by End Device table set for class a.b.c.d. AMI data encoded in XML according to ANSI C12.19-xxxx Standard, as qualified for End DeviceClass a.b.c.d.

I.2 TDL XML File Format of the TDL Document The formats of all elements and attributes found in a TDL/XML File Form is described next.

455

ANSI C12.19-2008

XML File Format of TDL and EDL Files

I.2.1 Root Element The element is a container of the Table syntax and meta-data (descriptions) of either one Standard tables’ subset or one Manufacturer-defined tables subset. The union of the Standard defined tables’ subset and the Manufacturer provided tables’ subset make up the entire table set of an End Device. A tables’ subset document can describe Standard table definitions, revise an existing Standard into a new Standard, or implement existing Standards using Manufacturer-supplied files. There may be only one root element in a single XML file. I.2.1.1 DTD

Attributes Name Document Form Equivalent version Published in the title section of the document.

deviceClass

Published in the title section of the document.

standard

Published in the title section of the document.

456

"2.0" "0.2.0.0" #IMPLIED #IMPLIED #IMPLIED #IMPLIED #IMPLIED #IMPLIED>

Description The version of this document. When describing a Standard, then this is the version of the Standard being defined. When describing a manufacturer extension, then this is the version of the End Device class being defined. The deviceClass defines the registered device class this TDL describes. Device class "0.x.y.z" is reserved for the Standards all other classes describe manufacturer tables and data types. This is a subbranch in the domain of the registry attribute. The absolute device class is formed by joining the isoBranch attribute with the deviceClass attribute using a period (.). Also the relative deviceClass value can be found in Table 0 of the End Device. The reference standard this End Device is based on. Example: “http://www.ansi.org/C1219TDL-2008.xml”. If the deviceClass attribute contains a Standard class then this is a reference to “self”. The URI provided refers to a Standard that is the base document for this TDL. When not provided then no document is referred. URI formats are as follows: 1. The Standard URI format is http://www.ansi.org/C1219TDL-xxxx.xml where xxxx is the year. 2. URIs for TDL class files is http://www.ansi.org/C1219TDL-x.x.x.x.xml

XML File Format of TDL and EDL Files

Name

registry isoBranch

Document Form Equivalent

Published in the title section of the document. Published in the title section of the document.

title

Published in the title section of the document.

validation

Published in the title section of the document.

date

Published in the title section of the document.

ANSI C12.19-2008

Description where x.x.x.x is the registered device class (See deviceClass). 3. Viable choices to www.ansi.org are www.ieee.org and www.ic.gc.ca. The name of the entity that is the registrar of the device class identifiers. The ISO branch attribute associates a registry name with an ISO object directory branch. The deviceClass attribute is relative to this branch. The text to display in a graphic context or at the beginning of the document. Example: “ANSI C12.192008 Utility Industry Standard Tables”. When the standards organization registers a TDL file or when a 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 XMLSignature Syntax and Processing, W3C Recommendation 12 February 2002 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. The date this document was last revised.

I.2.1.3 Document Form A new section heading is generated then the TDL title version, deviceClass, standard, registry, isoBranch, date and validation attributes may be expressed in the section’s heading.

I.2.2 element The element is a text-formatting container that accepts simple formatting directives that are a restricted subset of XHTML. It provides a text area to describe the parent element or provide general inter-element descriptions. All elements, except for and shall minimally provide an optional child element. I.2.2.1 DTD

457

ANSI C12.19-2008

XML File Format of TDL and EDL Files

I.2.2.2 Attributes Name Document Form Equivalent documentation The description body of text. When an immediate child of an , or then the description is place with pseudo Pascal comment delimiters (‘{‘ and ‘}’ in the syntax section just before the IF, after the THEN and before the ELSE clause, respectively. colspan

Spans multiple columns.

Description Default = true. The description element is used to annotate elements that may be conditional by virtue of being contained in /, /, / statements or for other reasons. It is therefore possible for the same element name to be defined more than once, bound to different types but identical Element names. When this happens it may be desired to present in the Document-Form only one of the Element descriptions and suppress all others. When this attribute is false then the generation of the in the document-form shall be suppressed. When the container is a multi column definitions (e.g., identifier, value and description) that the text spans the number of columns indicated (default = 1) starting from right to left.

I.2.2.3 Child Elements The following paragraph and inline entry elements may be used within any . I.2.2.4 Child DTDs



align ( left | right | center | justify ) #IMPLIED indent ( left | right | both ) #IMPLIED >



style ( arabic | alpha | roman | ALPHA | ROMAN ) #IMPLIED>





(#PCDATA | br | p | pre | blockquote | ol | ul | dl | b | i | u | tt | sp | sub | sup | object | table )*> value (CDATA) #IMPLIED>

XML File Format of TDL and EDL Files

ANSI C12.19-2008

value (CDATA) #IMPLIED> (#PCDATA | br | p | pre | blockquote | ol | ul | dl | b | i | u | tt | sp | sub | sup | object | table )*> value (CDATA) #IMPLIED>

align (left | center | right ) border (CDATA) frame (CDATA) rules (CDATA) title (CDATA) width (CDATA)

align (top | bottom ) #IMPLIED

align span valign width



(left | right | center | justify ) (CDATA) (top | middle | bottom) (CDATA)

#IMPLIED “1” #IMPLIED #IMPLIED>

(tr)+> (left | right | center | justify ) (CDATA) (top | middle | bottom) (CDATA)

#IMPLIED “1” #IMPLIED #IMPLIED>



align (left | right | center | justify ) #IMPLIED colspan (CDATA) “1” rowspan (CDATA) “1” valign (top | middle | bottom) #IMPLIED>

Child Elements Summary Element Name h1, h2, h3

Document Form Equivalent Sub-section heading.

br p

Force line break. Paragraph body text.

pre

Verbatim simple mono spaced text.

blockquote

Indented or highlighted text.

ol

Numerically ordered-items list.

ul

Symbolically itemized list.

dl

Definition list.

i b u tt

Italic font. Bold font. Underlined font. Mono-spaced font.

sp

Non-destructive space character

sup sub table

Superscript text. Subscript text. Multi column and rows table with optional table header, footer and caption.

460

Description Generate a subsection heading to improve Document Form readability. Force a line break with interlines spacing. Force a new paragraph line break. Format the text within using the embedded formatting rules. Force a new paragraph break after the closing element. The align and indent attributes qualify the paragraph text appearance. Present the text within exactly as typed, using monospaced font, while preserving all spaces and new lines. Force a new paragraph line break. Present the text within in a manner that it stands out as a paragraph. Force a new paragraph break after the closing element. The indent attribute may be used to control the indentation. The default indentation is “both”. Ordered list (1,2,3..., a,b,c..., i,ii,iii..., A,B,C..., or I,II,III...). Force a new paragraph line break. Present the list items within with a sequence number at the beginning of each list item. Force a new paragraph break after the closing element. Force a new paragraph line break. Present the list items within with a symbol at the beginning of each list item. Force a new paragraph break after the closing element. Force a new paragraph line break. Present the definition list with each definition on the left and the description thereafter. Typeset the text within using an italic font. Typeset the text within using a bold font. Typeset the text within using an underlined font. Typeset the text within using a mono-spaced (typewriter) font. Force a single non-destructive character space. This provides the equivalent functionality of the xhtml the entity “ ”. Typeset the text within using a superscript font. Typeset the text within using a subscript font. Force a new paragraph line break then create a table. The table model allows to arrange text into rows and columns of cells. Each table may have an associated caption that provides a short description of the table's purpose. Table rows include a head, foot, and body elements. The col element may be used to characterize the column width, span, and body text alignment for each of the columns.

XML File Format of TDL and EDL Files

ANSI C12.19-2008

I.2.2.6 Attributes Name align

indent

Table document equivalent The paragraph text alignment.

The paragraph text indentation.

Description Default = inherited from previous paragraph. If this is the first instance within a element then use the text processor default alignment (typically justified). Possible alignment values are: “left” edge of the text column, “right” edge of the text column, “center” about the text column or “justified” about both edges of the text column. Default = inherited from previous paragraph. If this is the first instance within a element then use the text processor default indentation (typically not indented). Possible indentation values are: indent the “left” side of the text column to the right, indent the “right” edge of the text column to the left, indent “both” edges of the text column inward.

I.2.2.7 Attributes Name indent

Document Form Equivalent The paragraph text indentation.

Description

Document Form Equivalent The style of the numeric items.

Description

Document Form Equivalent The style of the symbolic items.

Description

Default = “both”. Possible indentation values are: indent the “left” side of the text column to the right, indent the “right” edge of the text column to the left, indent “both” edges of the text column inward.

I.2.2.8 Attributes Name style

Default = Arabic if this is the first instance within a element. Otherwise it is sequentially rotates the formats arabic (1, 2, 3, …), alpha (a, b, c, …), roman (I, ii, iii, …), ALPHA ( (A, B, C, …), ROMAN (I, II, III, …).

I.2.2.9 Attributes Name style

Default = bullet if this is the first instance within a element. Otherwise it is sequentially rotates the formats bullet (•), dash (–) or star (∗) symbol.

I.2.2.10 and sub-element usage Element Name li

Document Form Equivalent One list item.

Description Force a line break with inter-paragraph spacing. Place the next enumeration in order ( case) or next symbol ( case) or the string presented by the value attribute as a left hanging indent ( case), followed by the descriptive content as a paragraph.

461

ANSI C12.19-2008

XML File Format of TDL and EDL Files

I.2.2.11 and sub-element usage of Element Name dt

dd

Document Form Equivalent Introduces a single definition header. Introduces a single definition text.

Description Publish the definition text possibly as a left hanging text followed by the distinctive descriptive text using distinctive text (definition data) for the text that will follow on the right (see element ). Publish the definition’s decription data to the right (or on a next line) of the definition term that was specified by the preceding element.

I.2.2.12 Document Form The formatted text in any of the main Section bodies, type descriptions and element descriptions is produced. Example: Given the XML text below: This table defines the History Log codes to be written to the History Log. It also defines which specific procedures and or table writes that are to be acknowledged in the History Log. For a specific procedure or table to be acknowledged, three independent tests shall all be true: The procedure or table shall be used in the End Device, per the GEN_CONFIG_TBL (Table 00). The appropriate History Log code shall be used, per this table. The procedure or table shall be requested to be acknowledged, per this table. …. The following may be a partial output generated by a TDL processor:

9.9.4. Table 73: History Log Control Table Table 73 Description This table defines the History Log codes to be written to the History Log. It also defines which specific procedures and or table writes that are to be acknowledged in the History Log. For a specific procedure or table to be acknowledged, three independent tests shall all be true: 1. The procedure or table shall be used in the End Device, per the GEN_CONFIG_TBL (Table 00). 2. The appropriate History Log code shall be used, per this table. 3. The procedure or table shall be requested to be acknowledged, per this table.

462

XML File Format of TDL and EDL Files

ANSI C12.19-2008

I.2.2.13 Element Application specific extensions. The extension element is made available to implementers of AMI application and vendors who need to embedded additional information in support of their application. The content of this element is not defined by this Standard. I.2.2.14 DTD I.2.2.15 Attributes None. I.2.2.16 Document Form None.

I.2.3 Element The assert element is provided to document relationships among Table data Elements and optionally alert the application about a inconsistencies or unexpected End Device settings. I.2.3.1 DTD (named) assert raise (ERROR | WARN | INFO) “ERROR” text CDATA #REQUIRED>



Each element of contains one assertion condition, encoded as BNF.mathExpression, which evaluates to a Boolean. If any of the elements evaluate to true then an assertion is raised. I.2.3.2 Attributes Name raise

Text

Document Form Equivalent Published in the description section where defined as follows: ‘Assert value on (condition), “text”.’ where condition is the content of the condition attribute, text is the content of the text attribute and value is the content of the raise attribute. Published in the description section.

Description Indicates the type of assertion to be raised when the indicated expression (see condition element) evaluates to true.

This is a short text message that will be generated when the assertion is raised.

463

ANSI C12.19-2008

XML File Format of TDL and EDL Files

I.2.4 Element The named element introduces an association between a numeric, string, or boolean data value and a descriptive label. It also provides for associating array or set elements with constants and labels. For example, it may 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 humans or Graphical User Interfaces (GUIs), it is easier to relate to Sunday, Monday, Tuesday, and so on. The enumerator element binds numbers to labels. There are two flavors to the enumerator type. The first is a named type when it is introduced outside an element or sub-element body and it can be referenced for association with a Final Element. The second is unnamed, as it is introduced in-line within an Element or Sub-element body. The first unique instance of an unnamed enumerator can be accessed using the Final Element’s name suffixed with BNF.enumSuffix., as if it were to be a named enumerator. I.2.4.1 DTD (named) enumerator name CDATA #REQUIRED replace CDATA #IMPLIED override CDATA #IMPLIED redefine CDATA #IMPLIED showRedefined ( true | false ) “false” strict ( true | false ) "true" label CDATA #IMPLIED align (none | left | right | center) “none” match (true | false) “true” pad (true | false) “false” quote (true | false) “false” round (round | ceil | floor | truncate) “round”

> I.2.4.2 Attributes (named) Name name replace

Document Form Equivalent Listed in the description section where defined. The text Replaces: target in the description of the named enumerator shall be generated.

Description The enumerator identifier expressed and constrained by BNF.enumIdentifier. This identifier is used to refer to the enumeration list. A reference to an existing BNF.enumTypeReference whose list is mapped to a new list. Any reference to the old enumerator will access the new definition. This feature enables one Standard to be derived from another; and for a manufacturer device class to define (thus document) Standard opaque fields. Note: The referenced enumerator can be replaced only once within one XML file. Replacement of an enumerator that has already been previously replaced or overridden by another enumerator in the same file shall not be permitted. The replaced enumerator original definition shall not be found in the same XML file that select the enumerator for replacement.

464

XML File Format of TDL and EDL Files

Name override

Document Form Equivalent The text Overrides: target in the description of the named enumerator shall be generated.

ANSI C12.19-2008

Description A relaxed variation of the replace attributes. A reference to an existing BNF.enumTypeReference whose list is mapped to a new list. Any reference to the old enumerator will access the new definition. This feature enables one Standard to be derived from another; and for a manufacturer device class to define (thus document) Standard opaque fields. Note: The overridden enumerator can be modified only once within one XML file. Overrides of an enumerator that has already been previously overridden or replaced by another enumerator in the same file shall not be permitted. The overridden enumerator original definition shall not be found in the same XML file that select the enumerator for replacement.

redefine

showRedefined

The text Redefines: target in the description of the named enumerator shall be generated.

When true the redefining, replacing or overriding

Overridden enumerators can change any and all content of any existing enumerator that are otherwise not described. The application processor is encouraged to issue a warning upon all encounters of overridden enumerators. A reference to an existing BNF.enumTypeReference whose list used as a restriction for mapping a new list. This feature shall ensure that children elements are maintained identical in value and only modification to text attributes, descriptions or metadata is desired. This is useful when defining dimension-limiting tables, then reusing only the enumerated ranges (not the enumerated description or meta-data - descriptions) to introduce the actual limits tables. The presence of this attribute does not absolve the writer from entering the entire names and values. The referenced enumerator shall be otherwise unaffected. Notes: 1. A redefined enumerator can be redefined any number of times. Redefinition of an enumerator that has already been previously redefined elsewhere is permitted. 2. Redefined enumerators can be defined in the same XML file. 3. Redefinition of a replaced or overridden enumerator is permitted. When the redefined enumerator is encountered in the same XML file (see note 2 above), the redefinition shall be applied after any replacement or override (i.e., replacements and overrides shall be processed prior to redefinitions). When a type is redefined, replaced or overridden the redefining syntax may not be expressed in the syntax

465

ANSI C12.19-2008

Name

XML File Format of TDL and EDL Files

Document Form Equivalent type is placed the syntax section.

strict

Suffix the term “reference is strict” to the replace, override or redefine referenced type in the description of the enumerator generated.

label

align

Not shown if there is a description element. Is presented as description in the absence of a description element. None.

match

None.

pad

None.

Description section where the reference is made. As a TDL documentation aid, setting this attribute to true shall force the Document Form processor to expose the syntax of the redefining, replacing or overriding type in the syntax section. When enumerator is created and the replace, override or redefine attribute is asserted, then the search rule for the target BNF.enumTypeReference will be strict (if strict is set to true, the default value) or not strict (if the strict attribute is set to false). A strict search requires that the implied or explicit target scope contains the replaced enumerator. A non-strict search allows for the implied or explicit target scope search will starts in the End Device scope hierarchy, i.e., the first encounter of the target enumerator within any of the parent scopes will shall be considered a match for the sought replacement. A short textual description of the named enumerator. It can be used by a GUI in Balloon help or as a substitute for description. If the data type is STRING and value supplied does not fill the entire space required by the Final Element or the string is larger than the space provided then deliver to the application a pre-aligned (or truncated) value then pad the extra space as needed, according to the value supplied attribute. “none” = do not align; “left” = align toward lower Table octets offsets within the Final Element field; “right” = align toward higher Table octet offsets within the Final element field. Default is none. When the match attribute is true then only values from the supplied enums and default elements will be accepted by a C12.19 application. All other values may trigger a fatal error report. When match attribute is false, than non matching values may trigger a warning report and shall not issue a fatal error report. The default value is true. If the value supplied does not fill the entire space required by the Final Element then pad the value with trailing/leading spaces (if of type is STRING or CHAR), or zeros (for numeric or BINARY types) in such a manner not to alter the interpretation of the end result. Example 1: Assume an element is defined (using the Document Form) as FOO : STRING(5); and pad is set to true align is set to "left" then the value "ABC" will be converted to "ABC " (414242202020H) before comparing it for enumerator match to the value reported by the Final Element FOO.

466

XML File Format of TDL and EDL Files

Name

quote

Document Form Equivalent

Enumeration values are surrounded with quotation marks before being displayed.

round

ANSI C12.19-2008

Description Example 2: Assume an element is defined (using the Document Form) as BAR: BINARY(5); and pad is set to true and align is set to “right” then the value "1234" will be converted to 0000001234H before comparing it to the value reported by the Final Element BAR. When true then this is an instruction to the text formatted to place the enum values each in quotes; as they may represent a string. Default is false. Rounding rule for converting a string number value to a Final Element of type integer as follows: “round” calls for the result to be rounded to an integer by adding 1/2 to the supplied value, taking the floor of the result, and casting the result to the integer type of the Final Element. “ceil” computes the smallest integral value that is not less than the supplied value. “floor” computes the largest integral value that is not greater than the supplied value. “TRUNCATE” truncates the value to an INT/UINTas appropriate. Special cases: If the argument is NaN, the result is 0. If the argument is negative infinity or any value less than or equal to the value of INTx, or UINTx minimum value, the result is equal to the value of the INTx or UINTx minimum value. If the value argument is positive infinity or any value greater than or equal to the value supported by the final element field, the result is equal to the value of largest possible Final Element. For types STRING or BINARY: Rounding rule for converting a string value to non numeric fields. This attribute is ignored and the field can only be padded or truncated according to the pad and align attributes.

I.2.4.3 Document Form (named) The named enumerator is not listed in the syntax section of the Document Form. The name and its enumerations are presented in the description section that documents the enumerator name. Given the XML text below: The following are the unit of measure codes. ….

467

ANSI C12.19-2008

XML File Format of TDL and EDL Files

The following may be a partial output generated by a TDL processor: TDL Document Scope Element Descriptions Identifier UOM_ID_CODES_ENUM

Value 0 1 2

Definition The following are the unit of measure codes. Active power - W Reactive power - VAR Apparent power - VA

I.2.5 element of (named) When this enumerator is bound to an array or set then the supplied enum and default elements are assigned according to final element indices as per index attribute. i.e., this provides a facility for describing each element according to its position within the set or array. Also, this provides a facility for assigning constant values. I.2.5.1 DTD

I.2.5.2 DTD (un-named) enumerator align (none | left | right | center) “none” match (true | false) “true” pad (true | false) “false” quote (true | false) “false” round (ROUND | CEIL | FLOOR | TRUNCATE) “round”

> The use of unnamed enumerator shall be restricted to immediate children of , , or . An un-named enumerator can be referenced using the name attribute of its parent element suffixed by BNF,enumSuffix, if the resulting name is unique within the scope of the parent element. The interpretation of all the attributes of the unnamed enumerator is identical to those of the named enumerator. I.2.5.3 Document Form Introduces a BNF.enumerator definitions in the Element’s description. No syntax is produced in the definition syntax section. The description shall list all non-default constraints expressed in the subelements , and .

I.2.6 Element (Child of ) The element introduces a single enumeration value or a range of enumeration values.

468

XML File Format of TDL and EDL Files

ANSI C12.19-2008

I.2.6.1 DTD I.2.6.2 Attributes Name value

endValueInclusive

text

exclude

Document Form Equivalent The value assigned to this enumerator (attribute endValueInclusive not present) or the starting value of a range of values (attribute endValueInclusive present) The end range assigned to this enumerator. Text string that is associated with the value or range of values. This text is published only when the element is not present. Does not generate documentation.

Description Indicates a value that the Final Element may take, or the starting range of values (attribute endValueInclusive present) that a final element may assume. The left hand size of the BNF.enumMember.

Indicates an end range of values (attribute endValueInclusive present) that the a Final Element may assume. The left hand size of the BNF.enumMember. A short test string that may be used by a GUI Balloon help. The right hand size of the BNF.enumMember.

An indication that the role for this enumeration value is reversed, therefore it is to be excluded and it is considered to be an invalid value or range of reserved values.

I.2.6.3 Document Form Introduces a BNF.enumMember in Definitions in types and elements description. The definitions shall preserve all constraints expressed in the sub-element ; and the attributes value, endValueInclusive, text.

469

ANSI C12.19-2008

XML File Format of TDL and EDL Files

Example: Given the XML text below: Element to designate method of passing the table data after GEN_CONFIG_TBL (Table 00) has been interrogated. The following may be a partial output generated by a TDL processor in the description section: Identifier … DATA_ACCESS_METHOD

Value

0 1 2 3

Definition Element to designate method of passing the table data after GEN_CONFIG_TBL (Table 00) has been interrogated. Full table access only. No partial table access methods are supported. Full table access and offset-count access methods are supported. Full table access and index-count methods are supported. Both methods 1 and 2 of data access methods are supported.



I.2.7 element (Child of element) Default text used to label unknown values. It is also the preferred initialization value for un-programmed fields, or un-initialized Final-Elements. I.2.7.1 DTD

470

XML File Format of TDL and EDL Files

ANSI C12.19-2008

I.2.7.2 Attributes Name value

text

Document Form Equivalent None

Publishes the text Default: value

Description Preferred initial value of the final element. This value shall be assumed by an enumerated final element, when the value of the final element is un-initialized. Therefore, the Standard or the Manufacturer may set initial state preferences for Table Final Elements. The text to display when the value reported by the application is not a member of the enumeration list.

I.2.7.3 Document Form Introduces a BNF.enumDefault in Definitions in types and elements description. The definitions shall preserve all constraints expressed in the sub-element description; and the attributes value and text.

I.2.8 Element The element introduces the PACKED RECORD derived type. This maps to the BNF. rcdType. This type is defined to be local to the parent scope (either Standard or Manufacturer context) TDL, decade, table, or procedure (see Rules for inheritance and referencing scoped types and identifiers). I.2.8.1 DTD I.2.8.2 Attributes Name name

replace

Document Form Equivalent Publishes the packed record name in the syntax and description sections. The text Replaces: target in the description of the packed record shall be generated.

Description The packed record identifier. This identifier can be used to refer to the PACKED RECORD. Packed record names shall be defined according to the BNF.rcdIdentifier production rule and shall be unique within any one definition’s scope. A reference to a PACKED RECORD identifier, in accordance with BNF.rcdReference, whose type is mapped to a new type. Any reference to the old type, from any context, will access the new definition. This feature enables one Standard to be derived from another; and for a manufacturer device class to define (thus document) Standard opaque fields.

471

ANSI C12.19-2008

XML File Format of TDL and EDL Files

override

The text Overrides: target in the description of the packed record shall be generated.

redefine

The text Redefines: target in the description of the packed record shall be generated.

472

Notes: 1. A referenced type can be replaced only once. Replacement of a type that has already been previously replaced by another type shall not permitted. 2. The replaced type shall not be defined in the same XML/TDL file that defines the original packed record for that type. 3. Replaced types shall have identical element offsets and indices for existing elements, and they may expose additional detail to internal structure of element that may be otherwise opaque. 4. The application processor is encouraged to issue a warning upon all encounters of replaced types. A relaxed variation of the replace attributes. An override of a PACKED RECORD identifier, in accordance with BNF.rcdReference, whose type is mapped to a new type. Any reference to the old type, from any context, will access the new definition. This feature enables one standard to be derived from another; and for a manufacturer device class to displace, and then re-create any packed record field. Notes: 1. An overridden type can be displaced only once. Override of a type that has already been previously replaced by another type is not permitted. 2. The overridden type cannot be defined in the same XML file that defines the original packed record for that type. 3. Overridden types can change elements offsets and indices for existing elements, or expose additional detail to internal structure of elements that are otherwise opaque. 4. The application processor is encouraged to issue a warning upon all encounters of overridden types. A reference, in accordance with BNF.rcdReference, to a PACKED RECORD identifier whose type is used as a restriction to the newly defined packed record in the local scope. This feature shall ensure that data type structures are maintained while modification to element names or meta-data is desired. This is useful when defining dimension-limiting tables, then reusing only the element types (not the element names or meta-data – descriptions) to introduce the actual limits tables. The presence of this attribute does not absolve the writer from entering the entire element names and types. However, the only variations permitted are limited to • redefinition of elements • redefinition of elements • redefinition of elements • redefinition of name attributes.

XML File Format of TDL and EDL Files

ANSI C12.19-2008

The referenced PACKED otherwise unaffected.

showRedefined

When true the redefining, replacing or overriding type is placed the syntax section.

strict

Suffix the term “reference is strict” to the replace, override or redefine referenced type in the description of the packed record generated.

atomic

The text "Non-default properties: Atomic = value" in the description of the packed record shall be generated. None.

label

accessibility

The text "Non-default properties: Accessibility = value" in the description of the packed record shall be generated.

RECORD

shall

be

Notes: 1. A redefined type can be redefined any number of times. Redefinition of a type that has already been previously redefined elsewhere is permitted. 2. Redefined types can be defined in the same XML file, which also provided the original definition for packed record that is now being redefined. 3. Redefinition of a replaced, overridden or redefined packed record is permitted. 4. When the redefined type is encountered in the same XML file (see note 2 above), the redefinition shall be applied after the application of any replace or override directives (i.e., replacements and overrides shall be processed prior to redefinitions). When a named enumerator is redefined, replaced, or overridden the redefining syntax may not be expressed in the syntax section where the reference is made. As a TDL documentation aid, setting this attribute to true shall force the Document Form processor to expose the syntax of the redefining, replacing or overriding type in the syntax section. When packed record is created and the replace, override, or redefine attribute is asserted, then the search rule for the target type will be strict (if strict is set to true, the default value) or not strict (if the strict attribute is set to false). A strict search requires that the implied or explicit target scope contain the replaced or redefined type. A non strict search requires that the implied or explicit target scope is where the search will starts in the End Device scope hierarchy, i.e., the first encounter of the target type within any of the parent scopes will be considered a match for the sought replaced or redefined type. The packed record monolithic, when true. When communicating an atomic packed record it shall be transported and presented as one unit, including all of its internal element members. A text field that may be presented as an alternative to the value of the attribute name. If this optional attribute is not provided then applications shall present the value of the name attribute. An indication of possible interpretations or use case for the named packed record as follows: READONLY: this packed record may be accessed but not modified. WRITEONLY: this packed record may be written to, however when read back from the table the values may or may not be identical to the value

473

ANSI C12.19-2008

deprecated metrological

XML File Format of TDL and EDL Files

The text Deprecated in the description of the packed record shall be generated.. The text "Non-default properties: Metrological = value" in the description of the packed record shall be generated.

that was written. READWRITE: this packed record may be written and its values read-back from the End Device. The value read shall be identical to the value last written. The default value is READWRITE. Indicates that this packed record is deprecated and is likely to be removed or renamed in future releases of the TDL. Default value is false. An indication that this packed record it is metrological. Thus any Table or Element that contains it is also metrological. Default value is false.

I.2.8.3 Document Form The definitions are mapped to BNF.rcdType in the syntax section, and all the descriptions and enumerations are expressed in description section. Example: Given the XML text below: Current End Device time. See DATE_TIME_QUAL_BFLD above. The following may be a partial output generated by a TDL processor in the syntax section: TYPE CLOCK_STATE_RCD = PACKED RECORD CLOCK_CALENDAR : LTIME_DATE; TIME_DATE_QUAL : TIME_DATE_QUAL_BFLD; END; The following may be a partial output generated by a TDL processor in the description section: Identifier CLOCK_STATE_RCD CLOCK_CALENDAR TIME_DATE_QUAL

Value

Definition Non-default properties: Atomic = true. Current End Device time. See DATE_TIME_QUAL_BFLD above.

I.2.9 Element (Child of ) The element binds a packed record data type to an identifier. This type is defined to be local to the packed record scope.

474

XML File Format of TDL and EDL Files

ANSI C12.19-2008

I.2.9.1 DTD accessibility (UNIMPLEMENTED | READONLY | WRITEONLY | READWRITE) “READWRITE” atomic (true | false | JOIN) “false” deprecated (true | false) “false” metrological (true | false) “false” volatile (true | false | AUTO_AS_PER_ROLE) “AUTO_AS_PER_ROLE”> I.2.9.2 Attributes Name name

type enumerator length

Document Form Equivalent Publishes the Element name in the syntax and description sections.

Publishes the Element type in the syntax section. Publishes the element enumeration reference in description sections. Introduces the Element extent in the syntax section.

label

None

min

Impacts on low bound publication in the description section. Impacts on high bound publication in the description section. The text "Non-default properties: Accessibility = value" in the description of the Element shall be generated.

max accessibility

Description The Element name identifier. This identifier can be used to refer to the table element. Element names instances shall be unique within the parent packedRecord element scope. i.e., multiple definitions are possible when they are introduced within or elements. In those cases the element names shall be introduced in such a manner that each instance of the identifier can only be instantiated once inside the packed record. The Element type. It can be any valid simple or derived type (e.g packed record or bit field). A reference to an enumerator identifier whose values/label pairs are associated with the values of this element. A valid expression the results in a numeric value to size elements of type String, Binary or BCD. These elements are not treated as arrays, but as atomic elements. As such they need to be requested and transported in totality. It is not possible to request subset of sized elements. A textual label used to label the element in a graphic context. The smallest value (inclusive) this element may have. The largest value (inclusive) this element may have. An indication of possible interpretations or use case for the named element. See for more details.

475

ANSI C12.19-2008

atomic

deprecated metrological

volatile

XML File Format of TDL and EDL Files

The text "Non-default properties: Atomic = value" in the description of the element shall be generated.. The text Deprecated in the description of the element shall be generated. The text "Non-default properties: Metrological = value" in the description of the Element shall be generated. The text "Non-default properties: Volatile = value" in the description of the Element shall be generated.

The element is monolithic, when true. See for more details. When “JOIN” is entered then the element is Atomic and if the previous element was Atomic then the pair of elements is also Atomic. Indicates that this Element is deprecated and is likely to be removed or renamed in future releases of the TDL. Default value is false. An indication that this Element is metrological. Default value is false.

An indication of the Element’s volatility. When volatile is set to true then the value of this element may change between consecutive reads, implying that the Element should not be cached by the AMI application, as it may change. When set to false, then it is an indication that this Element is not likely to change between consecutive reads (assuming no operator intervention); it is therefore safe for the AMI application to cache the Element’s value. When the volatile attribute is set to “AUTO_AS_PER_ROLE” (default value) then the values of the Table’s attribute role should be probed to determine the volatility of this element’s according to the Table’s role as follows: “CONTROL” sets volatility to false; “DATA” sets volatility to true; “LIMITING” sets volatility to false; “ACTUAL” sets volatility to false; “UNDEFINED” sets volatility to true; “PRIVATE” sets volatility to true.

I.2.9.3 Document Form The definitions are mapped to BNF.rcdMember and all the descriptions and enumerations are expressed in description section. Example: Given the XML text below: See FORMAT_CONTROL_1_BFLD. See FORMAT_CONTROL_2_BFLD. … The following may be a partial output generated by a TDL processor in the syntax section: TYPE GEN_CONFIG_RCD = PACKED RECORD FORMAT_CONTROL_1 : FORMAT_CONTROL_1_BFLD; FORMAT_CONTROL_2 : FORMAT_CONTROL_2_BFLD;

476

XML File Format of TDL and EDL Files

ANSI C12.19-2008

… END; The following may be a partial output generated by a TDL processor in the description section: Identifier

Value

GEN_CONFIG_RCD FORMAT_CONTROL_1 FORMAT_CONTROL_2

Definition See FORMAT_CONTROL_1_BFLD. See FORMAT_CONTROL_2_BFLD.

I.2.10 Element (Child of ) The element binds a collection of a single type an identifier. This type is defined to be local to the containing packed record scope and it maps to BNF.arrayType. I.2.10.1 DTD

I.2.10.2 Attributes Name name

type length

dimension

Document Form Equivalent Publishes the array name in the syntax and description sections.

Publishes the array type in the syntax section. If other then 1 it suffixes the extent length in brackets after the type in the syntax section. Publishes the number of

Description The array name identifier. This identifier can be used to refer to this table element. Element names instances shall be unique within the parent packedRecord element scope. i.e., multiple definitions are possible when they are introduced within or elements. In those cases the element names shall be introduced in such a manner that each instance of the identifier can only be instantiated once inside the packed record. The array element type. It can be any valid simple or derived type. The number of base type members make up each element of this array. e.g., FOO : ARRAY[3] OF STRING(20); will set length to 20 CHARs of each STRING element in that array FOO. A valid expression the results in a numeric integer

477

ANSI C12.19-2008

XML File Format of TDL and EDL Files

elements in the array in the syntax section.

label enumerator accessibility

atomic

deprecated metrological

volatile

value that can be used to establish the dimension (number of elements) for this array. Array members can be retrieved (communicated) individually. The number of members in the array of base type. e.g., FOO : ARRAY[3] OF STRING(20); implies that dimension=”3” and length=”20” thus allocating 3 elements each is a 20 CHARs atomic STRING. Used by GUIs. A reference to an enumerator identifier whose values/label pairs is associated with each of the values of this element. Implementer's intended design for read and write access for this Element. Possible values are:

None. Publishes the array enumeration reference in description sections. The text "Non-default properties: Accessibility = value" in the description of the array shall be READONLY: This Element can be accessed but not generated. modified. READWRITE: This Element can be accessed and modified. WRITEONLY: This Element can be accessed and modified. It contains one or more members that may not read back exactly what was written to them. UNIMPLEMENTED: This Element is not implemented in this End Device, therefore its value should be disregarded. The text "Non-default The element is monolithic, when true. See properties: Atomic = value" for more details. When “JOIN” is in the description of the entered then the array is Atomic and if the previous element shall be element was Atomic then the pair of elements is also generated. Atomic. Default value is false unless the Element’s type is Atomic. The text Deprecated in the Indicates that this Element is deprecated and is likely description of the element to be removed or renamed in a future release of the shall be generated. TDL. Default value is false. The text "Non-default An indication that this element is metrological. properties: Metrological = Default value is false. value" in the description of the element shall be generated. The text "Non-default An indication of the array’s volatility. When volatile is properties: Volatile = set to true, then the value of this element may value" in the description of change between consecutive reads, implying that the the element shall be Element should not be cached by the AMI generated. application, as it may change. When set to false, then it is an indication that this element is not likely to change between consecutive reads (assuming no operator intervention); it is therefore safe for the AMI application to cache the Element’s value. When the volatile attribute is set to “AUTO_AS_PER_ROLE” (default value) then the values of the Table’s attribute role should be probed to determine the volatility of this element according to the Table’s role as follows: “CONTROL” sets volatility to false; “DATA” sets volatility to true; “LIMITING”

478

XML File Format of TDL and EDL Files

ANSI C12.19-2008

sets volatility to false; “ACTUAL” sets volatility to false; “UNDEFINED” sets volatility to true; “PRIVATE” sets volatility to true. I.2.10.3 Document Form The definitions are mapped to BNF.rcdMember of type BNF.arrayType; and all the descriptions and enumerations are expressed in description section. Example: Given the XML text below: List of pending tables and associated activation triggers. The following may be a partial output generated by a TDL processor in the syntax section: PENDING_TABLES

: ARRAY[GEN_CONFIG_TBL.NBR_PENDING] OF ENTRY_ACTIVATION_RCD;

The following may be a partial output generated by a TDL processor in the description section: Identifier PENDING_TABLES

Value

Definition List of pending tables and associated activation triggers. Non-default Properties: Atomic = TRUE.

I.2.11 Element (Child of element) The element binds a collection of a Boolean values to an identifier. This type is defined to be local to the containing packed record scope and it maps to BNF.set member of BNF.sizedType. I.2.11.1 DTD enumerator CDATA #IMPLIED accessibility (UNIMPLEMENTED | READONLY | WRITEONLY | READWRITE) “READWRITE” atomic ( true | false | JOIN ) "false" deprecated (true | false) “false” metrological (true | false) “false” volatile (true | false | AUTO_AS_PER_ROLE) “AUTO_AS_PER_ROLE”>

479

ANSI C12.19-2008

XML File Format of TDL and EDL Files

I.2.11.2 Attributes Name name

type dimension

label enumerator accessibility

atomic

deprecated metrological

volatile

480

Document Form Equivalent Publishes the set name in the syntax and description sections.

Description The set name identifier. This identifier can be used to refer to this table element. Element names instances shall be unique within the parent packedRecord element scope. i.e., multiple definitions are possible when they are introduced within or elements. In those cases the element names shall be introduced in such a manner that each instance of the identifier can only be instantiated once inside the packed record. Fixed at BOOL. An expression that results in an integer and number of entries (single bit entries) for this set. Set Elements can be accessed individually, but they are communicated one octet at a time. When sets are allocated in C12.19 Tables the number of octets used is (dimension+7)/8 octets.

None Publishes the number of octets used to map the set to a collection of octets using the expression ((dimension + 7 ) / 8 truncated to an integer the Syntax section. None. Used by GUIs. Publishes the set A reference to an enumerator identifier whose enumeration reference in values/label pairs is associated with each of the description sections. values of this element. The text "Non-default Implementer's intended design for read and write properties: Accessibility = access for a this Element. Possible values are: value" in the description of the set shall be generated. READONLY: this Element can be accessed but not modified. READWRITE: this Element is can be accessed and modified. WRITEONLY: this Element can be accessed and modified. It contains one or more members that may not read back exactly what was written to them. UNIMPLEMENTED: this Element is not implemented in this End Device, therefore its value should be disregarded. The text "Non-default The element is monolithic, when true. See properties: Atomic = value" for more details. When “JOIN” is in the description of the entered then the set is Atomic and if the previous element shall be element was Atomic then the pair of elements is also generated. Atomic. Default value is false. The text Deprecated in the Indicates that this element is deprecated and is likely description of the element to be removed or renamed in a future release of the shall be generated. TDL. Default value is false. The text "Non-default An indication that this element is metrological. properties: Metrological = Default value is false. value" in the description of the element shall be generated. The text "Non-default An indication of the set’s volatility. When volatile is properties: Volatile = set to true then the value of this element may value" in the description of change between consecutive reads, implying that the

XML File Format of TDL and EDL Files

Name

ANSI C12.19-2008

Document Form Equivalent the element shall generated.

Description be

Element should not be cached by the AMI application, as it may change. When set to false, then it is an indication that this element is not likely to change between consecutive reads (assuming no operator intervention); it is therefore safe for the AMI application to cache the Element’s value. When the volatile attribute is set to “AUTO_AS_PER_ROLE” (default value) then the values of the Table’s attribute role should be probed to determine the volatility of this element according to the Table’s role as follows: “CONTROL” sets volatility to false; “DATA” sets volatility to true; “LIMITING” sets volatility to false; “ACTUAL” sets volatility to false; “UNDEFINED” sets volatility to true; “PRIVATE” sets volatility to true.

I.2.11.3 Document Form The definitions are mapped to BNF.rcdMember of type BNF.sizedType of BNF.set; and all the descriptions and enumerations are expressed in description section. Example: Given the XML text below: List of control points selected. The following may be a partial output generated by a TDL processor in the syntax section: TO_SET

: SET((ACT_LOAD_CONTROL_TBL.NBR_OF_CONTROL_POINTS + 7) / 8);

The following may be a partial output generated by a TDL processor in the description section: Identifier

Value

TO_SET

List of control points selected. FALSE This control point is not affected by this load control directive. TRUE This control point is affected by this load control directive.

Definition

I.2.12 Element (Child of ) The element introduces a Boolean expression. The child element is to be processed when the expression evaluates to true. The optional child element is to be processed by the application when the expression evaluates to false.

481

ANSI C12.19-2008

XML File Format of TDL and EDL Files

I.2.12.1 DTD (Child of ) I.2.12.2 Attributes (Child of ) Name condition

Document Form Equivalent Published in the syntax section between the IF and THEN tokens.

Description An expression encoded as BNF.intMathExpression and reduces to a Boolean values.

I.2.12.3 Document Form The definitions are mapped to BNF.rcdIf in the syntax section. Any elements that precede are contained in the element may be produced in the syntax section prior to the introduction of the BNF.rcdIf syntax enclosed within the comment characters ‘{‘ and ‘}’. I.2.12.4 Element (Child of /) The element introduces Table Elements that are present when the ’s parent attribute condition evaluates to true. I.2.12.5 DTD I.2.12.6 Attributes None. I.2.12.7 Document Form The definitions are mapped to the BNF.rcdMember member’s THEN clause of the BNF.rcdIf clause. If this element contains a element, then the description may be produced in the syntax section following to the THEN token. This description shall be enclosed within the comment characters ‘{‘ and ‘}. All elements enclosed will be published in the syntax section. All Elements’ descriptions and enumerations may be published in the description section.

I.2.13 Element (Child of /) The element introduces Table Elements that are present when the ’s parent attribute condition evaluates to false. I.2.13.1 DTD I.2.13.2 Attributes None.

482

XML File Format of TDL and EDL Files

ANSI C12.19-2008

I.2.13.3 Document Form The definitions are mapped to the BNF.rcdMember member’s ELSE clause of the BNF.rcdIf clause. If this element contains a element then the description may be produced in the syntax section following to the ELSE token. This description shall be enclosed within the comment characters ‘{‘ and ‘}. All elements enclosed will be published in the syntax section. All Element descriptions and enumerations may be published in the description section. Given the XML text below: … Manufacturer's firmware revision number. Changes in value imply product corrections or improvements. Recommend use of '0' to designate preproduction or prototyping software. This is an example of dual use of BCD or STRING to express an ID_FORM. Encoded as BCD(8). Manufacturer's serial number for the End Device. 16 BCD digits or CHARs. Encoded as STRING(16). Manufacturer's serial number for the End Device. 16 BCD digits or CHARs. …

483

ANSI C12.19-2008

XML File Format of TDL and EDL Files

The following may be a partial output generated by a TDL processor in the syntax section: TYPE MANUFACTURER_IDENT_RCD = PACKED RECORD … FW_REVISION_NUMBER : UINT8; { This is an example of dual use of BCD or STRING to express an ID_FORM. } IF GEN_CONFIG_TBL.ID_FORM != 0 THEN { Encoded as BCD(8). } MFG_SERIAL_NUMBER : BCD(8); ELSE { Encoded as STRING(16). } MFG_SERIAL_NUMBER : STRING(16); END; END; The following may be a partial output generated by a TDL processor in the description section: Identifier

Value

Definition

0..255

Manufacturer’s firmware revision number. Changes in value imply product corrections or improvements. Recommend use of ‘0' to designate preproduction or prototyping software.

MANUFACTURER_IDENT_RCD … FW_REVISION_NUMBER

MFG_SERIAL_NUMBER

Manufacturer’s serial number for the End Device. 16 BCD digits or CHARs.

I.2.14 Element (Child of ) The element introduces a selector expression. The child elements are to be included when a startValueInclusive/endValueInclusive attributes match the evaluated expression of the selection attribute. The optional child element is to be processed by the application when the expression evaluates none of the available selection. I.2.14.1 DTD I.2.14.2 Attributes Name Document Form Equivalent selection Publishes the switch selector expression in the syntax section.

Description An expression encoded as BNF.intMathExpression and reduces to a integer value.

I.2.14.3 Document Form The definitions are mapped to the BNF.rcdCase syntax. If this element contains a

484

XML File Format of TDL and EDL Files

ANSI C12.19-2008

element then the description may be produced in the syntax section just prior to the SWITCH token. This description shall be enclosed within the comment characters ‘{‘ and ‘}. I.2.14.4 Element (Child of /) The definitions are mapped to the BNF.rcdCaseMember which introduces the CASE token in the syntax section. I.2.14.5 DTD I.2.14.6 Attributes Name startValueInclusive endValueInclusive

Document Form Equivalent Publishes the case lowbound value in the syntax section. Publishes the case highbound value in the syntax section.

Description The selection case lower bound or value for the contained packed record syntax. The selection case for the upper bound for the contained packed record syntax.

I.2.14.7 Document Form The definitions are mapped to the BNF.rcdCaseMember CASE token and related ranges. The startValueInclusive and the optional endValueInclusive range attributes are expressed only in the syntax section followed by the Elements definitions. All Element descriptions and enumerations may be published in the description section. If this element contains a element then the description may be produced in the syntax section just prior to the CASE token. This description shall be enclosed within the comment characters ‘{‘ and ‘}. I.2.14.8 element (Child of /) The definitions are mapped to the BNF.rcdCaseMember DEFAULT token syntax. I.2.14.9 DTD I.2.14.10 Attributes None. I.2.14.11 Document Form The definitions are mapped to the default clause of the BNF.rcdCaseMember DEFAULT syntax followed by the Elements definitions. All Element descriptions and enumerations may be published in the description section. If this element contains a element then the description may be produced in the syntax section just prior to the CASE token. This description shall be enclosed within the comment characters ‘{‘ and ‘}. Example: Given the XML text below:

485

ANSI C12.19-2008

XML File Format of TDL and EDL Files

Element present when the End Device is a gas meter. See G_GAS_DEVICE_RCD for details. Element present when the End Device is a water meter. See W_WATER_DEVICE_BFLD for details. Element present when the End Device is an electricity meter. See E_ELECTRIC_DEVICE_RCD for details. Reserved. The following may be a partial output generated by a TDL processor in the syntax section: SWITCH GEN_CONFIG_TBL.NAMEPLATE_TYPE OF CASE 0 : G_GAS_DEVICE : G_GAS_DEVICE_RCD; CASE 1 : W_WATER_DEVICE : W_WATER_DEVICE_BFLD; CASE 2 : E_ELECTRIC_DEVICE : E_ELECTRIC_DEVICE_RCD; DEFAULT: RESERVED : NIL; END; The following may be a partial output generated by a TDL processor in the description section: Identifier G_GAS_DEVICE W_WATER_DEVICE

486

Value

Definition Element present when the End Device is a gas meter. See G_GAS_DEVICE_RCD for details. Element present when the End Device is a water meter. See W_WATER_DEVICE for details.

XML File Format of TDL and EDL Files

E_ELECTRIC_DEVICE

ANSI C12.19-2008

Element present when the End Device is an electricity meter. See E_ELECTRIC_DEVICE for details.

I.2.15 element The element introduces the BIT FIELD OF derived type. This maps to the BNF.bfldType. This type is defined to be local to the parent scope (either Standard or Manufacturer context) TDL, decade, table, or procedures (see Rules for inheritance and referencing scoped types and identifiers). I.2.15.1 DTD I.2.15.2 Attributes Name name

Document Form Equivalent Publishes the bit field name in the syntax and description sections.

type

Publishes the bit field type in the syntax section.

replace

The text Replaces: target in the description of the packed record shall be generated.

Description The bit field identifier. This identifier can be used to refer to this bit field. Bit field names shall be expressed according to the BNF.bfldIdentifier rule and shall be unique within the defining scope. An Atomic element type that can be used to establish the size of the bit field and its transmission requirements. The type shall be expressed as BNF. bfldAssignedType. A reference to a BIT FIELD identifier in accordance with BNF.bfldReference, whose type is mapped to a new type. Any reference to the old type, from any context, will access the new definition. This feature enables one Standard to be derived from another; and for a manufacturer device class to define (thus document) Standard opaque fields. Notes: 1. A referenced type can be replaced only once. Replacement of a type that has already been previously replaced by another type is not permitted. 2. The replaced type cannot be defined in the same XML file that defines the original packed record for that type. 3. Replaced types shall have identical element

487

ANSI C12.19-2008

XML File Format of TDL and EDL Files

override

The text Overrides: target in the description of the bit field shall be generated.

redefine

The text Redefines: target in the description of the bit field shall be generated.

offsets and indices for existing elements, and they may expose additional detail to internal structure of element that is otherwise opaque. 4. The application processor is encouraged to issue a warning upon all encounters of replaced types. A relaxed variation of the replace attributes. An override of a BIT FIELD identifier, in accordance with BNF.bfldReference, whose type is mapped to a new type. Any reference to the old, from any context, type will access the new definition. This feature enables one standard to be derived from another; and for a manufacturer device class to displace, and then re-create any bit field. Notes: 1. An overridden type can be displaced only once. Override of a type that has already been previously replaced by another type is not permitted. 2. The overridden type cannot be defined in the same XML file that defines the original packed record for that type. 3. Overridden types can change sub-elements offsets and indices for existing sub-elements, or expose additional detail to internal structure of sub-elements that is otherwise opaque. 4. The application processor is encouraged to issue a warning upon all encounters of overridden types. A reference to a BIT FIELD identifier, in accordance with BNF.bfldReference, whose type is used as a restriction to the newly defined bit field in the local scope. This feature enables one to ensure that data type structures are maintained while modification to element names or meta-data is desired. This is useful when defining dimension-limiting tables, then reusing only the element types (not the element names or meta-data – descriptions) to introduce the actual limits tables. The presence of this attribute does not absolve the writer from entering the entire element names and types. However, the only variations permitted are limited to • redefinition of • redefinition of • redefinition of • redefinition of name attributes. The referred bit field is left unaffected. Notes: 1. A redefined type can be redefined any number of times. Redefinition of a type that has already been previously redefined elsewhere is permitted. 2. Redefined types can be defined in the same XML file, which also provided the original definition for bit field that is now being redefined.

488

XML File Format of TDL and EDL Files

showRedefined

When true the redefining, replacing or overriding type is placed the syntax section.

strict

Suffix the term “reference is strict” to the replace, override or redefine referenced type in the description of the bit field generated.

atomic

The text "Non-default properties: Atomic = value" in the description of the bit field shall be generated.. None.

label

accessibility

metrological

deprecated

ANSI C12.19-2008

3. Redefinition of a replaced, overridden or redefined bit field is permitted. When the redefined type is encountered in the same XML file (see note 2 above), the redefinition shall be applied after the application of any replace or override directives (i.e., replacements are processed prior to redefinitions). When a bit field is redefined, replaced or overridden the redefining syntax may not be expressed in the syntax section where the reference is made. As a TDL documentation aid, setting this attribute to true shall force the Document Form processor to expose the syntax of the redefining, replacing or overriding type in the syntax section. When bit field is created and the replace, override, or redefine attribute is asserted, then the search rule for the target type will be strict (if strict is set to true, the default value) or not strict (if the strict attribute is set to false). A strict search requires that the implied or explicit target scope contain the replaced or redefined type. A non strict search requires that the implied or explicit target scope is where the search will start in the End Device scope hierarchy, i.e., the first encounter of the target type within any of the parent scopes will be considered a match for the sought replaced or redefined type. An indication (when true) stating that this bit field can only be read or written entirely as one unit. The only permitted value shall be true.

A text field that may be presented as an alternative to the value of the attribute name. If this optional attribute is not provided then applications shall present the value of the name attribute. The text "Non-default The bit field access restrictions. Possible values are: properties: Accessibility = READONLY: this bit field may be accessed but not value" in the description of modified. the bit field shall be WRITEONLY: this bit field be accessed and modified. generated. It contains one or more members that may not read back exactly the values written to them. READWRITE: this bit field is can be written and its values read-back from the End Device. The value read shall be identical to the value last written. The default value is READWRITE. The text "Non-default An indication that this bit field is metrological. Thus properties: Metrological = any Table or Element that contains it is also value" (true or false) in the metrological. Default value is false. description of the packed record shall be generated. The text Deprecated in the Indicates that this bit field is deprecated and is likely description of the bit field to be removed or renamed in future releases of the shall be generated.. TDL. Default value is false.

489

ANSI C12.19-2008

XML File Format of TDL and EDL Files

I.2.15.3 Document Form The definitions are mapped to BNF.bfldType in the syntax section, and all the descriptions and enumerations are expressed in description section. Example: Given the XML text below: Selectors indicating action to be performed upon activation of selected table. Element that specifies the condition upon which the pending table shall be made active. The trigger condition is stored in the EVENT_STORAGE record. Pending Table is activated based on an absolute time contained in the EVENT_STORAGE record. The time is interpreted as SDATE_TIME. The pending table is activated based on a relative time contained in the EVENT_STORAGE record. The pending table is activated based on a non-time associated trigger contained in the EVENT_STORAGE record. … The following may be a partial output generated by a TDL processor in the syntax section: TYPE STATUS_BFLD = BIT FIELD OF UINT8 EVENT_CODE : UINT(0..3); … END; The following may be a partial output generated by a TDL processor in the description section:

490

XML File Format of TDL and EDL Files

ANSI C12.19-2008

Value

Identifier STATUS_BFLD

Definition Selectors indicating action to be performed upon activation of selected Pending Table.

EVENT_CODE

Element that specifies the condition upon which the Pending Table shall be made active. The trigger condition is stored in the EVENT_STORAGE record. 0

1 2 3..15

Pending Table is activated based on an absolute time contained in the EVENT_STORAGE record. The time is interpreted as SDATE_TIME. Pending Table is activated based on a relative time contained in the EVENT_STORAGE record. Pending Table is activated based on a non-time associated trigger contained in the EVENT_STORAGE record. Reserved.

I.2.16 Element (Child of ) The element binds a bit field member type to an identifier. This type is defined to be local to the bit field scope. I.2.16.1 DTD I.2.16.2 Attributes Name name

Document Form Equivalent Publishes the Subelement name in the syntax and description sections.

Description The Sub-element name identifier. This identifier can be used to refer to the table . Subelement names instances shall be unique within the parent bit field element scope. i.e., multiple definitions are possible when they are introduced

491

ANSI C12.19-2008

type startBitInclusive

endBitInclusive

label enumerator

min max atomic

XML File Format of TDL and EDL Files

Publishes the Subelement type in the syntax section. Publishes the starting bitposition of bits for the selected type within parenthesis ‘(‘ and ‘)’ in the syntax section. It also controls the publication numeric range for the type in the description section. Publishes the ending bitposition of bits for the selected type within parenthesis ‘(‘ and ‘)’ in the syntax section. It also controls the publication numeric range for the type in the description section. None. Publishes the Subelement enumeration reference in description sections. Impacts on low bound publication in the description section. Impacts on high bound publication in the description section. None

accessibility

The text "Non-default properties: Accessibility = value" in the description of the Sub-element shall be generated.

volatile

The text "Non-default properties: Volatile = value" in the description of the Sub-element shall be generated.

492

within or elements. In those cases the sub-element names shall be introduced in such a manner that each instance of the identifier can only be instantiated once inside the bit field. The Sub-element type. The type limits its type and bit offsets size. The bit number representing the first bit of this Subelement.

The bit number representing the last bit of this subelement. If it is not supplied then it takes the value of the startBitInclusive.

A textual label used to label the sub-element in a graphic context. A reference to an enumerator identifier whose values/label pairs is associated with the values of this Sub-element. The smallest value (inclusive) this sub-element may have. The largest value (inclusive) this sub-element may have. An indication (always “JOIN”) stating that this Subelement can only be read or written entirely as one unit and is joined to the next Sub-element in the sequence of Sub-elements. The sub-element access restrictions. Possible values are: READONLY: this sub-element be accessed but not modified. READWRITE: this sub-element is may be written and its values read-back from the End Device. WRITEONLY: this sub-element may be accessed and modified. It may not read back exactly as written. An indication of the Sub-element’s volatility. When volatile is set to true then the value of this Subelement may change between consecutive reads, implying that the element should not be cached by the AMI application, as it may change. When set to false, then it is an indication that this Sub-element is not likely to change between consecutive reads (assuming no operator intervention); it is therefore

XML File Format of TDL and EDL Files

ANSI C12.19-2008

safe for the AMI application to cache the Subelement’s value.

metrological

deprecated

The text "Non-default properties: Metrological = value" in the description of the Sub-element shall be generated. The text Deprecated in the description of the element shall be generated.

When the volatile attribute is set to “AUTO_AS_PER_ROLE” (default value) then the values of the Table’s attribute role should be probed to determine the volatility of this element’s according to the Table’s role as follows: “CONTROL” sets volatility to false; “DATA” sets volatility to true; “LIMITING” sets volatility to false; “ACTUAL” sets volatility to false; “UNDEFINED” sets volatility to true; “PRIVATE” sets volatility to true. An indication that this Sub-element is metrological. Default value is false.

Indicates that this Sub-element is deprecated and is likely to be removed or renamed in future releases of the TDL. Default value is false.

I.2.16.3 Document Form Equivalent The definitions are mapped to BNF.bfldMember; and all the descriptions and enumerations are expressed in description section. For Document Form publication example see definition of above.

I.2.17 Element (Child of ) The element provides for encoding alternatives syntax based on a conditional expression. I.2.17.1 DTD I.2.17.2 Attributes Name Condition

Table document equivalent Published in the syntax section between the IF and THEN tokens.

Description An expression encoded as BNF.intMathExpression and reduces to a Boolean value.

I.2.17.3 Document Form The definitions are mapped to BNF.bfldIf in the syntax section. Any elements that precede are contained in the element may be produced in the syntax section prior to the introduction of the BNF.bfldIf syntax enclosed within the comment characters ‘{‘ and ‘}’. For Document form publication example see /, / of .

493

ANSI C12.19-2008

XML File Format of TDL and EDL Files

I.2.18 Element (Child of /) The element introduces Table Sub-elements that are present when the ’s parent attribute condition evaluates to true. I.2.18.1 DTD I.2.18.2 Attributes None. I.2.18.3 Document Form The definitions are mapped to the BNF.bfldMember member’s THEN clause of the BNF.bfldIf clause. If this element contains a element then the description may be produced in the syntax section following to the THEN token. This description shall be enclosed within the comment characters ‘{‘ and ‘}. All elements enclosed will be published in the syntax section. All Sub-elements’ descriptions and enumerations may be published in the description section.

I.2.19 Element (Child of /) The element introduces Table Sub-elements that are present when the ’s parent attribute condition evaluates to false. I.2.19.1 DTD definition I.2.19.2 Attributes None. I.2.19.3 Document Form The definitions are mapped to the BNF.bfldMember member’s ELSE clause of the BNF.bfldIf clause. If this element contains a element then the description may be produced in the syntax section following to the ELSE token. This description shall be enclosed within the comment characters ‘{‘ and ‘}. All elements enclosed will be published in the syntax section. All Element descriptions and enumerations may be published in the description section. For Document form publication example see /, of .

I.2.20 Element (Child of ) The element introduces a selector expression. The child elements are to be included when a startValueInclusive/endValueInclusive attributes match the evaluated expression of the selection attribute. The optional child element is to be processed by the application when the expression evaluates none of the available selection. For Document form publication example see /, / of .

494

XML File Format of TDL and EDL Files

ANSI C12.19-2008

I.2.20.1 DTD

I.2.20.2 Attributes Name selection

Document Form Equivalent Publishes the switch selector expression in the syntax section.

Description An expression encoded as BNF.intMathExpression and reduces to a integer value.

I.2.20.3 Document Form The definitions are mapped to the BNF.bfldCase syntax. If this element contains a element then the description may be produced in the syntax section just prior to the SWITCH token. This description shall be enclosed within the comment characters ‘{‘ and ‘}.

I.2.21 Element (Child of /) The definitions are mapped to the BNF.bfldCaseMember which introduces the CASE token in the syntax section. I.2.21.1 DTD I.2.21.2 Attributes Name startValueInclusive endValueInclusive

Document Form Equivalent Publishes the case lowbound value in the syntax section. Publishes the case highbound value in the syntax section.

Description The selection case lower bound or value for the contained bit field syntax. The selection case for the upper bound for the contained bit field syntax.

I.2.21.3 Document Form The definitions are mapped to the BNF.bfldCaseMember CASE token and related ranges. The startValueInclusive and the optional endValueInclusive range attributes are expressed only in the syntax section followed by the Sub-elements definitions. All Sub-element descriptions and enumerations may be published in the description section. If this element contains a element then the description may be produced in the syntax section just prior to the CASE token. This description shall be enclosed within the comment characters ‘{‘ and ‘}.

I.2.22 Element (Child of /) The definitions are mapped to the BNF.bfldCaseMember DEFAULT token syntax.

495

ANSI C12.19-2008

XML File Format of TDL and EDL Files

I.2.22.1 DTD I.2.22.2 Attributes None. I.2.22.3 Document Form The definitions are mapped to the default clause of the BNF.bfldCaseMember DEFAULT syntax followed by the Sub-elements definitions. All Sub-element descriptions and enumerations may be published in the description section. If this element contains a element then the description may be produced in the syntax section just prior to the CASE token. This description shall be enclosed within the comment characters ‘{‘ and ‘}.

I.2.23 Element (Child of ) The decade element introduces a Decade. A Decade is a common processing scope, and it can contain a maximum of ten Tables of any one kind. Standard-defined or Manufacturer-defined Tables or procedures may also be associated with a Decade, thus effectively increasing the total number of tables in a decade. All types (see , and elements) defined inside a decade scope are local to the decade’s scope without conflict with all other types that may be defined in any other scope (see Rules for inheritance and referencing scoped types and identifiers). However, these types are visible to associated tables or procedures, as if they were introduced inside the decade scope. I.2.23.1 DTD I.2.23.2 Attributes Name name

number

496

Document Form Equivalent Publishes a new section heading for the named decade. Optionally publishes the decade name in a manner that binds its name to its number.

Publishes the Decade number in the section heading.

Description The decade identifier encoded as BNF.decIdentifier. This identifier can be used to refer to the decade symbolically or be incorporated into a reference to a component that was defined inside the decade. Decade names shall be encoded according to the BNF.decIdentifier syntax and shall be unique within one End Device class across all defining TDL XML Form files (i.e., including all Standard and manufacturer referenced XML file segments or referenced TDLs). The decade number, ranging from 0 to 203. This number shall be used as a substitute for the decade name in an arithmetic expression. Decade numbers shall be unique for one End Device class, just like decade names.

XML File Format of TDL and EDL Files

label

ANSI C12.19-2008

Published in the Decade section header.

A textual label used to label the container in a graphic context. It shall be incorporated in the description of the decade in the Standard.

I.2.23.3 Document Form Introduces a Decade section whose name is obtained from the name attribute, number from the number attribute, and description from the element. Following the decade description the Decade scope type definition syntax and type descriptions are presented, followed by the Tables defined in the decade. The Tables shall be ordered in increasing table number. Decades shall be ordered in increasing Decade number. Example: Given the XML text below: This decade contains tables associated with data sources. … The following may be a partial output generated by a TDL processor in the description section: 9.2 Decade 1: Data Source Tables This decade contains tables associated with data sources. … Identifier

Value

Definition

DATA_SOURCE_DEC

1

Implicit numerical constant designation for Data Source Tables number.

I.2.24 Element (Child of or ) The Element introduces a Table definition and a Table scope. All types (see , and elements) defined inside a table scope are local to the table’s scope without conflict with any other type that may be defined in any other scope. I.2.24.1 DTD ((CDATA) | STD | STD.UDT | STD.EUDT) “STD”>

I.2.24.2 Attributes Name Document Form Equivalent name Publishes a new section heading for the named table. Optionally publishes the table name in a manner that binds its name to its number. Then it publishes the table name in the syntax section. number Publishes the Table number in the section heading. Then it publishes the table number in the syntax section.

label

Published in the Table section header.

type

Then it publishes the table type in the syntax section.

role

The text "Non-default properties: role = value" in the description of the Table shall be generated.

Description The table identifier encoded as BNF.tblIdentifier. This identifier can be used to refer to the Table or be incorporated into a reference to a component that was defined inside this Table. Table names shall be unique for one device class TDL definition (i.e., including all Standard and manufacturer referenced XML file segments or referenced TDLs). The Table number, ranging from 0 to 2039. This number shall be used as a substitute for the table name in arithmetic expressions. Table numbers shall be unique within one Standard TDL or one Manufacturer device class TDL (i.e., Standard table numbers and Manufacturer table numbers can be identical, since the application uses TABLE_Id_BFLD.MFG_FLAG and the deviceClass attribute to resolve this ambiguity). A textual label used to label the container in a graphic context. It shall be incorporated in the description of the table in the Standard. A reference to a packed record identifier whose type is mapped to this table according to the rules for inheritance and referencing scoped types and identifiers. An indication of the use case for this Table. UNDEFINED (default): This End Device Table has no known role. LIMITING: This End Device Table contains function control limiting (FLC Table) values. ACTUAL: This End Device Table contains actual function limiting (FLC+1 Table) values. CONTROL: This End Device Table contains control program parameters. DATA: This End Device Table contains data information or sensor values. PRIVATE: This End Device role is proprietary and its purpose was not disclosed. When the volatile attribute is set to “AUTO_AS_PER_ROLE” then the following values shall be assumed for Table volatility as follows:

498

XML File Format of TDL and EDL Files

ANSI C12.19-2008

role = “UNDEFINED” sets volatility to true. role = “LIMITING” sets volatility to false. role = “ACTUAL” sets volatility to false. role = “CONTROL” sets volatility to false. role = “DATA” sets volatility to true. role = “PRIVATE” sets volatility to true. A reference to a decade identifier that represents the decade associated with this table. Search for unqualified references to packed records or bit fields that are not found in the local scope of this table will continue in the associated decade scope, as if this table was defined inside the associated decade. The Table is monolithic, when true. When communicating an atomic Table it shall be transported and presented as one unit, including all of its internal element members. The communication protocol shall only utilize a full-table read or full-table write service requests when referencing this table. Implementer's intended design for read and write access for a this Table. Possible values are:

associate

The text “Associated with scope: target” in the description of the Table shall be generated.

atomic

The text "Non-default properties: Atomic = value" in the description of the Table shall be generated.

accessibility

The text "Non-default properties: Accessibility = value" in the description of the Table shall be READWRITE (default): This Table can be read or generated. written from or to the End Device. READONLY: This Table can be read from or to the End Device but not written. WRITEONLY: his Table 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 Table is not implemented in this End Device, therefore it should not be listed in GEN_CONFIG_TABLE. EXTERNAL: This Table is implemented in this End Device, however it is not accessible from the End Device. An appropriate EDL XML document needs to be read externally by the AMI application in order to determine the values assumed by the Elements of this Table.

deprecated

The text Deprecated in the description of the Table shall be generated. The text "Non-default properties: Metrological = value" in the description of the Table shall be generated. The text "Non-default properties: Volatile = value" in the description of the Table shall be generated.

metrological

volatile

The default value is READWRITE. Indicates that this Table is deprecated and is likely to be removed or renamed in a future release of the TDL. Default value is false. An indication that this Table is metrological. Default value is false. Note: If any element within the Table is metrological then the entire table shall be metrological. An indication of the Table’s volatility. When volatile is set to true then the values of this Table may may change between consecutive Table reads, implying that the Table’s elements should not be cached by the AMI application, as they may change. When set to false, then it is an indication that this Table is not likely to change between consecutive

499

ANSI C12.19-2008

XML File Format of TDL and EDL Files

reads (assuming no operator intervention); it is therefore safe for the AMI application to cache the Table values.

class

None.

When the volatile attribute is set to “AUTO_AS_PER_ROLE” (default value) then the values of the Table’s attribute role should be probed to determine the volatility of this Table. A tag that identifies an AMI Application run-time class (module) that should be used to manage this Table. Presently the following Standard classes are defined: STD (default value) – Process the Table according to the default actions called for those Tables by this Standard. STD.UDT – To process User-defined Tables; STD.EUDT – To process Extended User-defined Tables; Meter manufacturer may disclose special processing algorithms and bind them to processing class names to facilitate special data processing on select tables.

I.2.24.3 Document Form The definitions are mapped to BNF.tableDefinition in a new Table section. All the Table scope defined (contained) descriptions, enumerators, packed records and bit fields are published in this section. Example: Given the XML text below: TIME_REMAIN_TBL (Table 56) provides predictive time quantities. Minutes remaining until the next tier change which affects summations. Used when the capability flag ACT_TIME_TOU_TBL. SEPARATE_SUM_DEMANDS_FLAG (Table 51) = TRUE. Minutes remaining before the next tier change which affects demands. Used when the capability flag ACT_TIME_TOU_TBL. SEPARATE_SUM_DEMANDS_FLAG (Table 51) = TRUE.

500

XML File Format of TDL and EDL Files

ANSI C12.19-2008

Minutes, remaining before the next tier change. Days remaining before the next scheduled Self-read. The following may be the output generated by a TDL processor in the new Table section: 9.6.7 Table 56 Time Remaining Table Table 56 Description TIME_REMAIN_TBL (Table 56) provides predictive time quantities. Table 56 Non-default properties: Atomic = true, Role = DATA, Accessibility = READONLY. Table 56 Type Definitions TYPE TIME_REMAIN_RCD = PACKED RECORD IF ACT_TIME_TOU_TBL.SEPARATE_SUM_DEMANDS_FLAG THEN SUMM_TIER_TIME_REMAIN : UINT16; DEMAND_TIER_TIME_REMAIN : UINT16; ELSE TIER_TIME_REMAIN : UINT16; END; SELF_READ_DAYS_REMAIN : UINT8; END; TABLE 56 TIME_REMAIN_TBL = TIME_REMAIN_RCD; Table 56 Element Descriptions Identifier

Value

Definition

TIME_REMAIN_RCD SUMM_TIER_TIME_REMAIN

0..65535

Minutes remaining until the next tier change which affects summations. Used when the capability flag ACT_TIME_TOU_TBL. SEPARATE_SUM_DEMANDS_FLAG (Table 51) = TRUE.

DEMAND_TIER_TIME_REMAIN

501

ANSI C12.19-2008

XML File Format of TDL and EDL Files

TIER_TIME_REMAIN

0..65535

Minutes remaining before the next tier change which affects demands. Used when the capability flag ACT_TIME_TOU_TBL. SEPARATE_SUM_DEMANDS_FLAG (Table 51) = TRUE.

0..65535

Minutes, remaining before the next tier change.

SELF_READ_DAYS_REMAIN 0..255

Days remaining before the next scheduled Selfread.

I.2.25 Element (Child of or ) The element introduces a procedure definition that maps to BNF.procDefinition and creates a Procedure scope. All types defined inside a procedure scope are local to the procedure’s scope without conflict with all other types that may be defined in any other scope. In addition to providing yet another scope, procedure elements also provide implicit instructions to construct the parameters and the response elements in Table 7, PROC_INITIATE_TBL and Table 8, PROC_RESP_TBL (See Section 5.12 “Procedures” for details). I.2.25.1 DTD atomic ( true | false ) "true" accessibility (UNIMPLEMENTED | WRITEONLY | READWRITE) “READWRITE” deprecated (true | false) “false” metrological (true | false) “false” class ((CDATA) | STD) “STD”> I.2.25.2 Attributes Name name

number

502

Document Form Equivalent Publishes a new section heading for the named procedure. Optionally publishes the procedure name in a manner that binds its name to its number. Then it publishes the procedure name in the syntax section of Table 7, and Table 8. Publishes the Procedure number in the section heading. Then it publishes

Description The Procedure identifier encoded as BNF.procIdentifier. This identifier can be used to refer to the procedure or be incorporated into a reference to a component that was defined inside this Procedure. Procedure names shall be unique for one End Device class TDL definition (i.e., including all Standard and manufacturer referenced XML file segments or referenced TDLs). The Procedure number, ranging from 0 to 2039. This number shall be used as a substitute for the procedure name in arithmetic. This number shall

XML File Format of TDL and EDL Files

the procedure number in the syntax section.

ANSI C12.19-2008

also be used in generating the unique index for references to procedure parameters (see STD:PROC_INITIATE_TBL.(STANDARD|MANUFAC TURER).PARM) and response data (see PROC_RESPONSE_TBL.(STANDARD|MANUFACT URER)..RESP_DATA). Procedure numbers shall be unique within one Standard TDL or one Manufacturer device class TDL (i.e., Standard procedure numbers and Manufacturer procedure numbers can be identical, since the application uses STD:PROC_INITIATE_TBL PROC.MFG_FLAG and the deviceClass attribute to resolve this ambiguity). Note: The application shall allocate procedure indices in implicitly STD:PROC_INITIATE_TBL and STD:PROC_RESPONSE_TBL for all procedures that are not explicitly identified in an extend attribute. A textual label used to label the container in a graphic context. It shall be incorporated in the description of the procedure in the Standard. A reference to a decade identifier that represents the decade associated with this procedure. Search for unqualified references to packed records or bit fields that are not found in the local scope of this procedure will continue in the associated decade scope, as if this procedure was defined inside the associated decade. The Procedure is monolithic, when true. When communicating an atomic Procedure it shall be transported and presented as one unit, including all of its internal element members. The communication protocol shall only utilize a full-table read or full-table write service requests when referencing this procedure via Tables 7 or 8. Implementer's intended design for read and write access for a this Procedure. Possible values are:

label

Published in the Procedure section header.

associate

The text “Associated with scope: target” in the description of the Procedure shall be generated.

atomic

The text "Non-default properties: Atomic = value" in the description of the Procedure shall be generated.

accessibility

The text "Non-default properties: Accessibility = value" in the description of the Procedure shall be READWRITE (default): This Procedure (Table 7 and generated. 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.

deprecated

The text Deprecated in the description of the Procedure shall be generated. The text "Non-default

metrological

The default value is READWRITE. Indicates that this Procedure is deprecated and is likely to be removed or renamed in a future release of the TDL. Default value is false. An indication that this Procedure is metrological.

503

ANSI C12.19-2008

XML File Format of TDL and EDL Files

properties: Metrological = value" in the description of the Procedure shall be generated. class

None.

Default value is false. Note: If any element within the Procedure is metrological then the entire procedure shall be metrological. A tag that identifies an AMI Application run-time class (module) that should be used to manage this Procedure. Presently the following Standard classes are defined: STD (default value) – Process the Procedure according to the default actions called for those Procedures by this Standard. Meter manufacturer may disclose special processing algorithms and bind them to processing class names to facilitate special data processing on select procedures.

I.2.25.3 Document Form The definitions are mapped to BNF.procDefinition in a new Procedure section. All the Procedure scope defined (contained) descriptions, enumerators, packed records and bit fields are published in this section. Example: Given the XML text below: When invoked, the End Device attempts to reduce the list Element NBR_UNREAD_ENTRIES by the value specified. To execute this procedure, the initiator shall in addition be required to have access to the procedure and write access to the table containing the selected list(s). List selected. Number of entries confirmed. The following may be the output generated by a TDL processor in the new Procedure section: 9.1.8.1.6 Procedure 05: Update Last Read Entry Procedure 05 Description When this procedure is invoked, the End Device attempts to reduce the list Element NBR_UNREAD_ENTRIES by the value specified. To execute this procedure, the initiator shall in

504

XML File Format of TDL and EDL Files

ANSI C12.19-2008

addition be required to have access to the procedure and write access to the table containing the selected list(s). Procedure 05 Type Definitions TYPE UPDATE_LAST_READ_ENTRY_RCD = PACKED RECORD LIST : UINT8; ENTRIES_READ : UINT16; END; PROCEDURE 5 UPDATE_LAST_READ_ENTRY_PROC REQUEST = UPDATE_LAST_READ_ENTRY_PROC.UPDATE_LAST_READ_ENTRY_RCD; Procedure 05 Element Descriptions Identifier

Value

Definition

UPDATE_LAST_READ_ENTRY_RCD LIST ENTRIES_READ

List selected. See RESET_LIST_POINTERS_PROC.LIST_ENUM. 0..65535

Number of entries confirmed.

I.2.26 Element (Child of ) The extend element within the procedure element introduces parameter and response field extensions to Table 7, STD.PROC_INITIATE_TBL and Table 8, STD.PROC_RESP_TBL, respectively. When an extension is not provided, then the value of the PARM or RESP is NIL. I.2.26.1 DTD definition I.2.26.2 Attributes Name type

target

Table document equivalent The name of the packed record that is used to define the procedure response or request parameters is published in the syntax section.

None.

Description A reference to a packed record identifier whose type is being used to extend PROC_INITIATE_TBL.STD_PARM_RCD or PROC_RESPONSE_TBL.STD_RESP_RCD (subject to the target selected). The type reference should be encoded as BNF.rcdReference in a manner that it can be resolved completely and correctly in the scope of Table 7 and Table 8. A reference to a target (remote) packed record identifier that is encoded as BNF.rcdReference whose type is being extended. Although it is possible to reference any type, this implementation restricts to: the resolved reference only

505

ANSI C12.19-2008

XML File Format of TDL and EDL Files

PROC_INITIATE_TBL.STD_PARM_RCD or PROC_RESPONSE_TBL.STD_RESP_RCD (subject to the target selected). strict

Suffix the term “reference is strict” to the description of the Procedure in reference to the request or response parameters.

Target data type being extended When target extension record is created the search rule for the target type will be strict (if strict is set to true, the default value) or not strict (if the strict attribute is set to false). A strict search requires that the implied or explicit target scope can only contain the extended type. A non strict search simply requires that the implied or explicit target scope search be searched first then the search continues following the End Device scope hierarchy. The first encounter of the target type within any of the parent scopes will be considered a match for the sought extension.

I.2.26.3 Document Form See example in definition of . For a fuller discussion and detailed examples see Section 5 on Procedures.

I.2.27 Element (Child of ) The qualify element enables the Standard and the End Device Manufacturer extensions to the Standard provide additional information about decades, table, procedures as a whole or about single elements that are defined within. General qualifications can be provided by the Standard (as published in C12.19). These are considered to be suggestions to implementers. Additional qualifications or re-qualifications can be provided by manufactures when they register they device classes (new meter models) to describe the actual restrictions, capabilities and features of their device. Therefore, a manufacturer device class can add, replace, or extend any Standard qualification. I.2.27.1 DTD I.2.27.2 Attributes None. I.2.27.3 Document Form When expressing the qualified information in Document form as part of the Standard then it shall document the corresponding types, Tables and Elements where defined, in-line, as if the types, Tables or Elements where qualified at the definition time. When expressing the qualified information in Document form as part of a specific End Device registration then it shall document the corresponding changes to types, Tables and Elements in a tabular form that identifies the components affected and the nature of the qualification applied.

I.2.28 element (Child of element) Qualifies the properties of a pre-defined Table. Any supplied attribute value acts to override the value set at definition time. For example if a Table is defined to be atomic (atomic=”true”) and it is re-qualified as atomic=”false” then it is no longer atomic.

506

XML File Format of TDL and EDL Files

ANSI C12.19-2008

I.2.28.1 DTD definition I.2.28.2 Attributes Name

Table document equivalent

name alias

atomic accessibility class role volatile metrological deprecated

Publishes the fact that name is “also known as” alias.

Description The table identifier encoded as BNF.tblIdentifier. This identifier shall refer to an already defined Table. An alias is an alternate name for a table. This name can be used to address the named table. Each instance of an entry with alias attribute will add a new alias for the table name list. See atomic attribute of / and| / See accessibility attribute of / and / See class attribute of / and / See role attribute of / | / See volatile attribute of / and / See metrological attribute of / and / See deprecated attribute of / and /

I.2.29 Element (Child of ) Qualifies the properties of a pre-defined Procedure. Any supplied attribute value acts to override the value set at definition time.

507

ANSI C12.19-2008

XML File Format of TDL and EDL Files

I.2.29.1 DTD I.2.29.2 Attributes Name

Table document equivalent

name

The procedure identifier encoded as BNF.procIdentifier. This identifier shall refer to an already defined Procedure. Publishes the fact that An alias is an alternate name for a procedure. This name is “also known as” name can be used to address the named procedure. Each instance of an entry with alias attribute will add alias. a new alias for the procedure name list. See atomic attribute of / and /< procedure > See accessibility attribute of / and / See metrological attribute of / and /< procedure > See deprecated attribute of / and /

alias

atomic accessibility metrological deprecated

Description

I.2.30 Element (Child of ) Qualifies the properties of a pre-defined Table Element. Any supplied attribute value acts to override the value set at definition time. I.2.30.1 DTD

508

XML File Format of TDL and EDL Files

ANSI C12.19-2008

I.2.30.2 Attributes Name

Table document equivalent

name

alias

Publishes the fact that name is “also known as” alias.

atomic accessibility metrological volatile deprecated

Description The element identifier encoded as BNF. elementIdentifierReference. This identifier shall refer to an already defined Element or Final Element of a defined Packed Record or Bit Field. An alias is an alternate name for an Element or Final Element. This name can be used to address this attribute or final element. The alias applies to the tail end of the element identified. Each instance of this element with an alias attribute adds an alias to the alias list for this element. See atomic attribute of , , or . See accessibility attribute of , , or . See metrological attribute of , , or . See volatile attribute of , , or . See accessibility attribute of , , or .

I.2.31 Element (Child of ) Qualifies the properties of a pre-defined PACKED RECORD type. Any supplied attribute value acts to override the value set at definition time. I.2.31.1 DTD I.2.31.2 Attributes Name name atomic accessibility metrological deprecated

Table document equivalent

Description The PACKED RECORD type identifier encoded as BNF.rcdReference. This identifier shall refer to an already defined packed record. See atomic attribute of . See accessibility attribute of . See metrological attribute of . See deprecated attribute of .

509

ANSI C12.19-2008

XML File Format of TDL and EDL Files

I.2.32 Element (Child of ) Qualifies the properties of a pre-defined BIT FIELD type. Any supplied attribute value acts to override the value set at definition time. I.2.32.1 DTD I.2.32.2 Attributes Name

Table document equivalent

name

Description The BIT FIELD type identifier encoded as BNF.bfldReference. This identifier shall refer to an already defined bit field. See atomic attribute of . See accessibility attribute of < bitField >. See metrological attribute of < bitField >. See deprecated attribute of < bitField >.

atomic accessibility metrological deprecated

I.2.33 Element (Child of ) The assert element is provided to document additional relationships among Table and Elements to enable application alert processing. I.2.33.1 DTD

I.2.33.2 Attributes Name raise Text

510

Document Form Equivalent

Description Indicates the type of assertion to be raised when the indicated expression (see condition element) evaluates to true. This is a short text message that will be generated when the assertion is raised.

XML File Format of TDL and EDL Files

ANSI C12.19-2008

I.3 EDL XML Format I.3.1 Overview The EDL XML Form is described in this Annex section. It is an expression of the TDL/EDL architecture described in the previous Annex section. The EDL XML Form is used to express End Device data values that make up the device tables in a manner that is independent solely on the ANSI C12.19 Tables and independent of the communication protocol used to acquired them. The EDL XML Form provides the following features: 1. XML encoding of default sets used values assigned to the Standard’s FLC and FLC+1 tables. 2. XML encoding of constants or fixed values that may be assigned to select elements within Standard Tables by the Standard. 3. XML encoding of constant or fixed values that may be assigned to select elements of Standard or Manufacturer tables by the End Device manufacturer. 4. XML encoding of Final Element values that were read from or written to an End Device by any communication protocol (e.g., ANSI C12.18, ANSI C12.21 or ANSI C12.22). The EDL XML Form file is associated with one specific End Device model, thus it is uniquely associated with an End Device class. This property implies that the structure of the EDL file is derived from the data model of all tables (Standard and Manufacturer) and all procedures (Standard and Manufacturer) that are defined for that End Device class. The EDL XML Form can be validated by an EDL schemas like C1219TDL-xxxx-EDLSchema.xsd (for exclusively Standard based End Devices) or by augmented schemas like EDLSChema.xsd (for Manufacturer expansion on the Standard). In this context xxxx stands for the Standard’s year of publication and is the registered End Device class. These schemas can be automatically generated from the Standard and Manufacturer TDL XML Form using an XSL transform, such as the C1219TDLEDLTransform.xsl and related technology. Thereafter, default sets, constant values and End Device communicated Final Element values can be imported and exported using the EDL XML Forms, like C1219TDL-xxxx-DefaultSet.xml or .xml, where xxxx is the Standard’s year of publication and is the registered End Device Class (although the use of does not have to be encoded in the name of the EDL XML Form). The EDL XML Form file may also be processed to yield a printable EDL Document Form for inclusion in the Standard’s or manufacturer’s documentation.

I.3.2 Root Element The element is a container of the End Device default sets, constants and imported or exported Final Element data values. It provides some limited meta-data, such as Table name, Table number, Table source being the Standard or the manufacturer, the names of Final Elements and their index position within the containing packed record or bit field. The element also documents the End Device class attribute (deviceClass), that identifies the matching TDL XML Form file of that End Device class. A tables’ subset document can describe Standard table definitions, extend (or revise) an existing Standard into new Standard or extend existing an Standard using manufacturer-supplied extensions. There shall be only one element in an EDL XML Form file. The target EDL XML Form namespace and the EDL Schema namespace shall be derived uniquely from the End Device class registered via a TDL XML Form file.

511

ANSI C12.19-2008

XML File Format of TDL and EDL Files

I.3.2.1 DTD The element has the following attributes and child elements.



I.3.2.2 Attributes Name xmlns[:name]

deviceClass

registry

isoBranch

standard

512

Document Form Equivalent Not expressed in Document Form.

In the Document Form heading section of the constant data, default sets or import/export data. In the Document Form heading section of the constant data, default sets or import/export data. In the Document Form heading section of the constant data, default sets or import/export data. In the Document Form heading section the name of the URI of referred standard is shown.

Description The reference EDL Schema namespaces used. One of one of these namespaces shall be identical to the target namespace of the EDL XML validation schema as defined by its targetNamespace attribute. That namespace shall be derived uniquely from the registry and deviceClass attributes. The deviceClass defines the registered TDL for that End Device class. This is derived from the deviceClass attribute of the TDL root XML Form element. The name of the entity that is the registrar of this End Device class. The ISO branch attribute associates a registry name with an ISO object directory branch. The deviceClass attribute is relative to this branch. The reference standard this End Device is based on. Example: “http://www.ansi.org/C1219TDL-2008.xml”. If the deviceClass attribute contains a Standard class then this is a reference to “self”. The URI provided refers to a Standard that is the base document for this EDL. When not provided then no document is referred. URI formats are as follows: 1. The Standard URI format is http://www.ansi.org/C1219TDL-xxxx.xml where xxxx is the year. 2. URIs for TDL class files is http://www.ansi.org/C1219TDL-x.x.x.x.xml where x.x.x.x is the registered device class (See deviceClass). Viable choices to www.ansi.org are www.ieee.org

XML File Format of TDL and EDL Files

Name

Document Form Equivalent

version

In the Document Form heading section of the constant data, default sets or import/export data. In the Document Form heading section of the constant data, default sets or import/export data. In the Document Form heading section of the constant data, default sets or import/export data.

title

defaultSetUsed

ANSI C12.19-2008

Description and www.ic.gc.ca. The version of this data set. This may be used as an indicator to an AMI application to provide for early identification of the nature of the EDL data sets contained within. The text to display in a graphic context or at the beginning of the data document. Example: “ANSI C12.19-2008 Utility Industry Standard Table Default Sets”. The default set to use when the value of the final element GEN_CONFIG_TBL.DEFAULT_SET_USED is not explicitly available from this data set.

I.3.2.3 Document Form A default set section values section is introduced (when default sets are provided); or a new constants section is introduced (when constants are provided) otherwise a new End Device values section is introduced. Default sets section is Annex C, “Default Sets for Decade Tables”.

I.3.3 Element (Child of ) The element is an optional text-formatting element that accepts simple formatting directives. It provides a text area to document the EDL. I.3.3.1 DTD Identical to the DTD definition of the element of the TDL XML Form. I.3.3.2 Document Form The formatted text is produced.

I.3.4 Pseudo Element Names In order to facilitate TDL XML Form driven Table names and Element names generation the Standard introduces the BNF definitions for XML-element macro types. These need to be substituted for the actual names of the indicated content (in this case an Element name). The following macros are defined: ${tableName}

::= BNF.tblIdentifier / constraint : text { The name of a Table obtained from the name attribute of a element or ‘EUDT_TBL’. } / match : (‘/tdl//table/@name’ | ‘EUDT_TBL’);

${limitingTableName}

::= BNF.tblIdentifier / constraint : text { The name of a FCL+1 Table as obtained from the name attribute of a element that is also qualified as “LIMITING”. } / match : ‘/tdl//table/@name[@role=”LIMITING”]’ ;

${elementName}

::= BNF.anyElementName / constraint : text { Any Element or Final Element that may be used as a component in the path that leads to a the value of a Final Element. } ( / match : ‘/tdl//element/@name’ | / match : ‘/tdl//subElement/@name’ | / match : ‘/tdl//array/@name’ |

513

ANSI C12.19-2008

XML File Format of TDL and EDL Files

/ match : ‘/tdl//set/@name’ ); For example if the TDL XML Form contains entries like: … and …

I.3.5 Resolving Second Edition XML Schema Constraints With the release of the second edition of the states: “Schema Component Constraint: Element Declarations Consistent If the {particles} contains, either directly, indirectly (that is, within the {particles} of a contained model group, recursively) or ·implicitly· two or more element declaration particles with the same {name} and {target namespace}, then all their type definitions must be the same top-level definition, that is, all of the following must be true: 1 all their {type definition}s must have a non-·absent· {name}. 2 all their {type definition}s must have the same {name}. 3 all their {type definition}s must have the same {target namespace}.” Ref: Section 3.8.6 Constraints on Model Group Schema Components, XML Schema Part 1: Structures Second Edition, W3C Recommendation 28 October 2004. I.3.5.1 The Schema Constraints Problem ANSI C12.19 promotes the construction of types that do not meet the above constraint. Schema Component Constraint violation can be seen clearly in the definition of Table 5, Device Identification Table.

514

XML File Format of TDL and EDL Files

ANSI C12.19-2008

TYPE IDENT_RCD = PACKED RECORD IF GEN_CONFIG_TBL.ID_FORM != 0THEN IDENTIFICATION : BCD(10); ELSE IDENTIFICATION : STRING(20); END; END; TABLE 5 DEVICE_IDENT_TBL = IDENT_RCD; It is rather obvious that this table contains the Element IDENTIFICATION, which repeats two times in the same packed record. Also, each IDENTIFICATION definition has different types. This problem can only manifest itself in elements delimited by IF / THEN / ELSE or SWITCH / CASE / DEFAULT statements (see Document Form syntax). I.3.5.2 Resolution of The Schema Constraints Problem The EDL XML form definition introduces the macro notation ${if-switch-clause} to be used ahead of any collection of EDL elements that are derived form TDL elements contained within a …, …, … or … members of the and XML elements. Each instance of the ${if-switch-clause} has to be unique so that the Schema Component Constraint is not violated. Otherwise this element shall be ignored by all processors. ${if-switch-clause}

::= ((‘if-then‘ | ‘if-else’ | ‘switch-case’ | ‘switch-default’) ‘-‘ BNF.number) / constraint : text { Each instance of this element shall be automatically generated by the EDL processor so that the Schema Component Constraint is not violated. } ;

I.3.6 Element The element is optional unless its absence can lead to a Schema Component Constraint violation. I.3.6.1 DTD

Using the above DEVICE_IDENT_TBL example, it can be demonstrated that the following XML EDL file element names are uniquely consistent with the XML schema constraint rules. Case 1: 10-20-30

515

ANSI C12.19-2008

XML File Format of TDL and EDL Files

Case 2: MY BEST METER

I.3.7 Element (Child of ) The element is an optional Standards place holder for up to 254 default sets (1..255). Each default set provides information about the End Device FLC+1 Tables and assumed values. I.3.7.1 DTD CDATA

I.3.7.2 Attributes Name Document Form Equivalent number Label for the default set number column.

#REQUIRED>

Description The number of the default set presented by the parent element. For more details see GEN_CONFIG_TBL.DEFAULT_SET_USED.

I.3.7.3 Document Form A tabulation of all Final Elements listed as one column for the table indicated by the ${limitingTableName} attribute per default set number indicated by the number attribute. These are sorted first by table number followed by the element index. Given the XML text below: The following values are assigned to the decade and decade+1 table values based upon the value of the Table 00 element DEFAULT_SET_USED. false false false false false false false 0 0

516

XML File Format of TDL and EDL Files

ANSI C12.19-2008

0 1 1 1 2 1 … false true true false false false false 0 0 1 1 2 1 2 2 … true true true false false false false 0 0 3 1 2 1 2 2 …

517

ANSI C12.19-2008

XML File Format of TDL and EDL Files

false false true false false false false 0 0 1 1 2 1 2 2 … The following may be a partial tabular output generated by an EDL processor: The following values are assigned to the decade and decade+1 table values based upon the value of the TABLE 00 Element DEFAULT_SET_USED. Final Element Name TABLE 11 - ACT_SOURCES_LIM_TBL SOURCE_FLAGS PF_EXCLUDE_FLAG RESET_EXCLUDE_FLAG BLOCK_DEMAND_FLAG SLIDING_DEMAND_FLAG THERMAL_DEMAND_FLAG SET1_PRESENT_FLAG SET2_PRESENT_FLAG NBR_UOM_ENTRIES NBR_DEMAND_CTRL_ENTRIES DATA_CTRL_LENGTH NBR_DATA_CTRL_ENTRIES NBR_CONSTANTS_ENTRIES CONSTANTS_SELECTOR NBR_SOURCES

1

DEFAULT_SET_USED 2 3

FALSE FALSE FALSE FALSE FALSE FALSE FALSE 0 0 1 1 1 2 1

FALSE TRUE TRUE FALSE FALSE FALSE FALSE 0 1 1 2 1 2 2

TRUE TRUE TRUE FALSE FALSE FALSE FALSE 0 3 1 2 1 2 2

4 FALSE FALSE TRUE FALSE FALSE FALSE FALSE 0 1 1 2 1 2 2

I.3.8 Element (Child of ) The element is a container for Final Element default set values of FLC+1, Function Limiting Control Tables, strictly used for defining default sets. I.3.8.1 DTD

XML File Format of TDL and EDL Files

Attributes Name

Document Form Equivalent A publication of the type of table being manufacturer or standard.

source

number

A publication of the table number

Description An indication of the source of this table being a manufacturer or standard. This assumes that a manufacturer may wish to augment the default set used with their own as part of the documentation process of manufacturer decades. The table number.

I.3.8.3 Document Form A tabulation of all final elements listed as one column for the table indicated by the ${limitingTableName} attribute for default set number indicated by the number attribute; and by Final Element index.

I.3.9 Element (Child of ) The element is an optional Standard or Manufacturer data value place holder for zero or more self consistent Table value-sets. A self consistent Table value-set is a collection of tables and values that together with the registered device class form a data set that can be interpreted uniformly and unambiguously. A Table value-set contains constants, imported or exported values. All the values expressed and contained within one element are related and shall originate from one instance of a source or destination data-set that belongs to one End Device values and instance. I.3.9.1 DTD

I.3.9.2 Document Form One tabulation for each element. Each element tabulation consists of a list of all found Tables and their Final Elements’ name and value. The Elements and Final Elements of each Table are sorted by their Element index.

I.3.10 Element The element is a container for Final Element data values. The minimum requirement is that All Elements and Final Elements be present in the order defined in corresponding Table definitions and the inner-most element shall be a Final Element. I.3.10.1 DTD

Attributes Name Document Form Equivalent source A publication of the type of Table being manufacturer, standard or extendeduser-defined. number A publication of the Table number instance A publication of the tables instance being active or pending data. pendingHeader binary

Hex dump of the all table values.

#IMPLIED>

Description An indication of the source of this Table being a manufacturer, standard or extended-user-defined. The Table number (see BNF.tblNumber). The type of the Table from which contains the data. An active Table or a pending table. If the instance is pending then the element may be included. The elements of the PENDING_EVENT_DESC_RCD mapped into the corresponding EDL members. All Table Final Element values encoded using hexadecimal notation exactly as transmitted to or received from the End Device as if a full table read or a full table write service was performed. The content of this attribute shall span recursively all of the Final Elements contained within. When this element is present that 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.

I.3.10.3 Document Form A tabulation of all final elements listed as one column for the table indicated by the ${tableName}, sorted by final element index. See for an example.

I.3.11 Element The element maps any TDL Element name of , , and ultimately their Final Element values.

type ,

I.3.11.1 DTD



I.3.11.2 Attributes Name index

520

Document Form Equivalent The index of this Element

Description The Element’s relative position in the containing data

XML File Format of TDL and EDL Files

Name

binary

ANSI C12.19-2008

Document Form Equivalent is published in brackets to the right of the Element’s name. Hex dump of the values.

Description type (e.g., position within a PACKED RECORD or a BIT FIELD). The Element’s 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 that 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.

I.3.11.3 Document Form Non Final Element ${elementName} is published by its name. If the element is not the first Element in the Final Element’s list, then it is preceded with a period ‘.’. If the Element is a Final Element then the its data value is presented. A number of presentation formats variations may be possible. Given the XML text below: 0 2 … The following may be a partial tabular output generated by a EDL processor: TABLE 00 - GEN_CONFIG_TBL FORMAT_CONTROL_1 DATA_ORDER CHAR_FORMAT …

Final Element Value 0 2

Alternatively following may be a partial relative textual output generated by a EDL processor: TABLE 00 - GEN_CONFIG_TBL FORMAT_CONTROL_1.DATA_ORDER FORMAT_CONTROL_1.CHAR_FORMAT …

Final Element Value 0 2

Alternatively following may be a absolute textual output generated by a EDL processor: TABLE 00 - GEN_CONFIG_TBL GEN_CONFIG_TBL.FORMAT_CONTROL_1.DATA_ORDER GEN_CONFIG_TBL.FORMAT_CONTROL_1.CHAR_FORMAT …

Final Element Value 0 2

521

ANSI C12.19-2008

XML File Format of TDL and EDL Files

I.3.12 Element The element is a container TDL elements or TDL elements. I.3.12.1 DTD



I.3.12.2 Attributes Name index

binary

522

Document Form Equivalent Element index for array or set member.

Description this

Hex dump of the values.

The relative element index or range of indices for this array or set member. When the index is not present then the entry takes on the index of the previous entry +1. If the entry is the first entry and an index is not specified the entry takes on the index value of 0. When an index is expressed as a range then all final element that correspond to the index range will have the indicated value. The last index in a range of indices shall be used in the computation of the next index for the entry that follows (if any) for the containing element. When collecting values for placement in arrays or sets the collection will be repeatedly searched until an index is located or the list is exhausted. If an index is located (matched) then the value will be assigned; otherwise the entry value is considered absent. The index value shall match the following BNF regular expression notation: index :: = ([0-9]+\S*([\-]\S*[0-9]+)?)(\S*,\S*([09]+\S*([\-]\S*[0-9]+)?))* { A number, a range of numbers separated by ‘-‘; or a collection of numbers or ranges each separated by a ‘,’}. 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 that 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.

XML File Format of TDL and EDL Files

ANSI C12.19-2008

I.3.12.3 Document Form Array entry is presented by an empty set or brackets, [], or using the index, such as: [n]. Given the XML text below: 324 654738.2 (EVENTS_SELECTOR, EVENT_STORAGE)>





I.3.13.2 Document Form Publish an expression of the pending event that will activate this table or an expression of the pending event and the table activation date of an activated table in front of all related Element values.

524

XML File Format of TDL and EDL Files

ANSI C12.19-2008

I.4 EDL XML Form Encoding of Final Element Values Final Elements #PCDATA values shall be encoded as shown in the table below, where the prefix ‘xsd’ in front of the “EDL XML Form Type” column represents the association between the schema namespace prefix for the referenced XML schema namespace “http://www.w3.org/2001/XMLSchema”. The actual data type definition shall be derived from the corresponding TDL XML File that shares the same End Device class. Note 1: Some computer languages do not support unsigned integer types. Special care shall be taken when processing unsigned types in systems capable of handling only signed types. Note 2: Some computer languages do not support unsigned integer types. In addition they cannot handle signed integers that are encoded with more than 64 bits. These systems need to apply extra special handling for the type UINT64. It is recommended that the use of UINT64 data type be minimized by End Device manufacturers. Document Form Type NIL

EDL XML Form Type

INT8 INT16 INT24 INT32 INT40 INT48 INT56 INT64

xsd:byte xsd:short xsd:int xsd:int xsd:long xsd:long xsd:long xsd:long

UINT8 UINT16 UINT24 UINT32 UINT40 UINT48 UINT56 UINT64

xsd:unsignedByte xsd:unsignedShort xsd:unsignedInt xsd:unsignedInt xsd:unsignedLong xsd:unsignedLong xsd:unsignedLong xsd:unsignedLong

FLOAT32 FLOAT64 FLOAT_CHAR6 FLOAT_CHAR12 FLOAT_CHAR21 FIXED_BCD4 FIXED_BCD6 FIXED_BCD8

xsd:double xsd:double xsd:double xsd:double xsd:double xsd:double xsd:double xsd:double

NI_FORMAT1 NI_FORMAT2

xsd:double xsd:double

FILL8 FILL16 FILL24 FILL32

xsd:unsignedByte xsd:unsignedShort xsd:unsignedInt xsd:unsignedInt

Comment Element shall not be present in the EDL file.

See Note 1 above. See Note 1 above. See Note 1 above. See Note 1 above. See Note 1 above. See Note 1 above. See Note 1 above. See Note 2 above.

Shall be set to 0. Shall be set to 0. Shall be set to 0. Shall be set to 0.

525

ANSI C12.19-2008

XML File Format of TDL and EDL Files

Document Form Type FILL64

EDL XML Form Type xsd:unsignedLong

Shall be set to 0.

BCD CHAR STRING

xsd:string xsd:string xsd:string

Preserve spaces. Same as BCD(1). Preserve spaces. Same as STRING(1). Preserve spaces. Same as STRING(1).

HTIME_DATE LTIME_DATE STIME_DATE HTIME TIME STIME

xsd:dateTime xsd:dateTime xsd:dateTime xsd:time xsd:time xsd:time

Maps HTIME_DATE_RCD during TDL processing. Maps LTIME_DATE_RCD during TDL processing. Maps STIME_DATE_RCD during TDL processing. Maps HTIME_RCD during TDL processing. Maps TIME_RCD during TDL processing. Maps STIME_RCD during TDL processing.

DATE RDATE

xsd:date xsd:unsignedShort

Maps to/from RDATE_RCD during TDL processing.

SET(n) STRING(n) BCD(n)

xsd:boolean xsd:string xsd:string

BINARY(n)

xsd:hexBinary

Encoded as an array of Booleans. Preserve spaces. Preserve spaces. Any BCD character may be entered in any order with no assumed nor implied association between a numeric representation. These are encoded as a collection of BNF.bcdNibble that are mapped into CHAR and assembled into a STRING from left to right. Eg.: the BCD sequence [#x1] [#x2] [#xD] [#x4] [#xE] [#x0], [#x6] representing the fixed point value 12.406 shall be truncated upon evaluation to 12.45 then converted to a the xsd:string representation “12.45”. A collection of octets encoded as hexadecimal values.

INT(n..m) UINT(n..m) BOOL(n)

xsd:long xsd:unsignedLong xsd:boolean

Member of BIT FIELD Member of BIT FIELD, See Note 2 above. Member of BIT FIELD

526

Comment

Universal Identifier

ANSI C12.19-2008

ANNEX J: Universal Identifier (Normative) ANSI C12.19 makes use of the ISO Universal Identifier to uniquely identify objects. This is used for ANSI C12.19 and related standards to uniquely identify components of the End Device Class, EDL and TDL. ::= 2.16.124.113620.1.19

{ISO registered absolute object identifier root for End Device Classes. This value shall be encoded for the purpose of transmission using ISO/IEC 8825-1:2002 [BER] as: 06 07 60 7C 86 F7 54 01 13H }

The following table summarizes the list of objects actually defined: Use ANSI C12.19 Device Class

Universal identifier .

ANSI C12.19 Device Class Absolute C12.19 Device Class identifiers shall be globally unique. To ensure this, users of the Standard may register a Device Class Universal Identifier. This identifier shall be common to all End Devices that share the same End Device operating model, data structures and operational constants (i.e., C12.19 TDL and C12.19 EDL). This identifier may be used by upstream device to interpret incoming data structures and operational assumptions made by the manufacturer of the End Device. Device Classes will be assigned on a first come first serve basis. The first 128 Device Class IDs are reserved for registration of one way devices. Preferred Device Class IDs may also be requested and assigned if available. Also submitted with the registration request is a simple XML-text TDL file (as defined in this standard) and an optional EDL if desired. For one-way devices, EDL and TDL shall include enough information to completely describe any unsolicited messages that the C12.22 Node might generate. For two-way devices, no specific information is required to be included in the EDL and TDL. Registration Information on registration can be found at http://www.naedra.org. This site is under the management of ANSI/IEEE/MC OID Oversight group.

527

ANSI C12.19-2008

Algorithms for the Conversion of Table Element Values to Engineering Units

ANNEX K: Algorithms for the Conversion of Table Element Values to Engineering Units (Informative) The following algorithms describe how Table Element values, which are retrieved from the End Device, may be converted to physical and meaningful engineering units in reference to the point of metering and to the point of delivery. These algorithms are applicable to Table Elements that represent register readings, such as Elements from Tables 23, 24, 25, 28 or Tables 64, 65, 66, 67 or Tables 155, 156, 157,158. The conversion factors are described in Section 9.2, “Decade 1: Data Source Tables” and may be retrieved from the End Device or from EDL files. This annex utilizes GENERIC_CONSTANTS_RCD for purpose of illustation. GENERIC_CONSTANTS_RCD may be equivilently replaced with ELECTRIC_CONSTANTS_RCD with an assume DIVISOR equal to 1.0. The conversion process is broken into a number of steps: 1. The first step in the sequence is the locating of conversion factors in Decade 1. This step is necessary to obtain the correct conversion factors, scalars, multipliers and unit of measure that need to be applied. 2. The second step in the sequence is the de-normalization of interval data elements. This step is needed only when processing interval data of load profile or Quality-of-service (Decade 6 or Decade 15). 3. The third step in the sequence is the conversion to engineering units at the point of metering. This step is always required in order to scale the data as sensed by the End Device where the End Device is attached. 4. The fourth step in the sequence is the conversion to engineering units at the point of delivery. This step is needed only when it is desired to scale the data as seen at the point of delivery (e.g., kWh consumed for billing data). 5. Finally, it is necessary to assign to the result the correct engineering units. This final step provides two key attributes: a. Assignment of the basic physical units (e.g., Wh) b. Assignment if correct power-of-ten prefix expression to the converted value (e.g., value reported is in kWh). These steps are illustrated in the following subsections using pseudo-code. Table Elements are shown in BOLD. Pseudo-code variables are shown in BOLD-ITALICS. Pseudo-code is illustrated by box enclosure.

K.1 Locating Conversion Factors From Decade 1 When a Table Final Element represents a register value, it is also associated with a data source selection Element in a corresponding control Table. This association is based on the Element’s placement index in its containing array. For example, the Final Element CURRENT_REG_DATA_TBL . TOT_DATA_BLOCK . SUMMATIONS[ N ] is the Nth summation in an array of summation retrieved from in Table 23. The corresponding data source selector that is association with this Final Element may be retrieved from DATA_SELECTION_TBL . SUMMATION_SELECT[ N ], whose type is STD.SOURCE_SELECT_RCD. The packed record STD.SOURCE_SELECT_RCD contains the Final Element SI = SOURCE_INDEX, which links the above register with the source-attributes Element, SOURCES_TBL.SOURCES_LINK [SI], This Element contains selection-flags (per SOURCES_TBL.SOURCE_LINK_BFLD) that identify the conversion factors used from Table Elements found in Decade 1, “Data Sources Tables”, as shown in the table below:

528

Algorithms for the Conversion of Table Element Values to Engineering Units

SOURCES_TBL.SOURCES_LINK [ SI ] UOM_ENTRY_FLAG DEMAND_CTRL_FLAG DATA_CTRL_FLAG CONSTANTS_FLAG PULSE_ENGR_FLAG CONSTANT_TO_BE_APPLIED

ANSI C12.19-2008

Action to be take when set to TRUE Retrieve UOM_ENTRY[ SI_UOM ] Element from Table 12, “Units of Measure Entry Table”, Retrieve INTERVAL_VALUE[ SI_DMD ] Element from Table 13, “Demand Control Table”. Retrieve and process SOURCES_ID[ SI_CTL ] Element from Table 14, “Data Control Table”. Retrieve and process SELECTION[ SI_CST ] Element from Table 15, “Constants Table”. This is flag does not impact the calculation. Its state does not affect the calculation outcome, whether set to TRUE or whether set to FALSE. This flag affects the use of the MULTIPLIER, DIVISOR and OFFSET Final Elements of CONSTANTS_TBL . SELECTION[ SI_CST ]. GENERIC_CONSTANTS.

Array indices SI_UOM, SI_DMD, SI_CTL and SI_CST are the indices of the referenced Elements that need be retrieved from Tables 12, 13, 14 and 15 to affect calculations. When the dimension of any one of NBR_UOM_ENTRIES, NBR_DEMAND_CTRL_ENTRIES, NBR_DATA_CTRL_ENTRIES or NBR_CONSTANTS_ENTRIES that are found in ACT_SOURCES_LIM_TBL is the same as ACT_SOURCES_LIM_TBL.NBR_SOURCES the value of the corresponding SI_UOM, SI_DMD, SI_CTL, SI_CST shall be set to SI. Otherwise the index to is computed by performing a “bit walk” across all flags in SOURCES_TBL and counting all the flags that are set to TRUE, as shown in the pseudo code below: SI = the desired index (SOURCE_INDEX) of a register’s the array of source selectors in Table 16. IF ACT_SOURCES_LIM_TBL.NBR_UOM_ENTRIES == ACT_SOURCES_LIM_TBL.NBR_SOURCES THEN SI_UOM = SI ELSE SI_UOM = -1 IF SOURCES_TBL.SOURCES_LINK[SI].UOM_ENTRY_FLAG == TRUE THEN K=0 WHILE K = 0) THEN UNITS = cast UOM_ENTRY_TBL. UOM_ENTRY[SI_UOM].ID_CODE with UOM_ENTRY_TBL.UOM_ENTRY[SI_UOM].TIME_BASE and UOM_ENTRY_TBL.UOM_ENTRY[SI_UOM ].MULTIPLIER to units indicator END

K.6 Assigning Fundamental Engineering Units The following operation can be done (as an alternative to the units assigned in K.5 above) to normalize the VALUE to the fundamental unit of measure. Fundamental units is a set of units for physical quantities from which every other unit can be generated (e.g., Watt-hour). This calculation cannot be performed when Table 12 cannot be retrieved from the End Device or from an EDL.

534

Algorithms for the Conversion of Table Element Values to Engineering Units

ANSI C12.19-2008

IF (SI_UOM >= 0) THEN UNITS = cast UOM_ENTRY_TBL. UOM_ENTRY[SI_UOM ].ID_CODE and UOM_ENTRY_TBL.UOM_ENTRY[SI_UOM ].TIME_BASE to units indicator IF UOM_ENTRY_TBL.UOM_ENTRY[ SI_UOM ].MULTIPLIER == 0 THEN MULTIPLIER = 1 ELSE IF UOM_ENTRY_TBL.UOM_ENTRY[ SI_UOM ].MULTIPLIER == 1 THEN MULTIPLIER = 1.0E+02 ELSE IF UOM_ENTRY_TBL.UOM_ENTRY[ SI_UOM ].MULTIPLIER == 2 THEN MULTIPLIER = 1.0E+03 ELSE IF UOM_ENTRY_TBL.UOM_ENTRY[ SI_UOM ].MULTIPLIER == 3 THEN MULTIPLIER = 1.0E+06 ELSE IF UOM_ENTRY_TBL.UOM_ENTRY[ SI_UOM ].MULTIPLIER == 4 THEN MULTIPLIER = 1.0E+09 ELSE IF UOM_ENTRY_TBL.UOM_ENTRY[ SI_UOM ].MULTIPLIER == 5 THEN MULTIPLIER = 1.0E-02 ELSE IF UOM_ENTRY_TBL.UOM_ENTRY[ SI_UOM ].MULTIPLIER == 6 THEN MULTIPLIER = 1.0E-03 ELSE IF UOM_ENTRY_TBL.UOM_ENTRY[ SI_UOM ].MULTIPLIER == 7 THEN MULTIPLIER = 1.0E-06 ELSE MULTIPLIER = 1 END VALUE = VALUE * MULTIPLIER END At this point VALUE is the reading at the point of delivery with all the fundamental engineering unitattributes applied.

K.7 Table Value to Engineering Units Conversion: An Example Let us assume the application retrieved the following Final Element values from the End Device: T23_VALUE

Element Name

Value 1419472

T64_VALUE

39

ACT_SOURCES_LIM_TBL.SET1_PRESENT_FLAG ACT_SOURCES_LIM_TBL.SET2_PRESENT_FLAG SOURCES_TBL.SOURCES_LINK[SI ].UOM_ENTRY_FLAG SOURCES_TBL.SOURCES_LINK[SI ].DEMAND_CTRL_FLAG

TRUE TRUE TRUE FALSE

SOURCES_TBL.SOURCES_LINK[SI ].DATA_CTRL_FLAG

FALSE

SOURCES_TBL.SOURCES_LINK[SI ].CONSTANTS_FLAG SOURCES_TBL.SOURCES_LINK[SI ].PULSE_ENGR_FLAG

TRUE FALSE

SOURCES_TBL.SOURCES_LINK[SI].CONSTANT_TO_BE_APPLIE D

TRUE

UOM_ENTRY_TBL.UOM_ENTRY[SI_UOM].ID_CODE

0

Comment Value retrieved from Table 23 Value retrieved from Table 64

Does not affect calculations Does not affect calculations Does not affect calculations The application need to apply these constants Active power – W

535

ANSI C12.19-2008

Algorithms for the Conversion of Table Element Values to Engineering Units

Element Name UOM_ENTRY_TBL.UOM_ENTRY[SI_UOM].TIME_BASE

UOM_ENTRY_TBL.UOM_ENTRY[SI_UOM].TIME_BASE

Value 0

5

1 1

Internal factor

2 20

CONSTANTS_TBL.SELECTION[SI_CST].GENERIC_CONSTANTS. DIVISOR CONSTANTS_TBL.SELECTION[SI_CST].GENERIC_CONSTANTS. SET1_CONSTANTS.RATIO_F1 CONSTANTS_TBL.SELECTION[SI_CST].GENERIC_CONSTANTS. SET1_CONSTANTS.RATIO_F1 CONSTANTS_TBL.SELECTION[SI_CST].GENERIC_CONSTANTS. SET2_CONSTANTS.RATIO_F1

1000

CONSTANTS_TBL.SELECTION[SI_CST].GENERIC_CONSTANTS. SET2_CONSTANTS.RATIO_F1

60

0

400

TRUE

LP_CTRL_TBL.DIVISORS_SET1[CH]

25

LP_CTRL_TBL.SCALARS_SET1[CH]

10000

536

Values have the units stated in the ID_CODE x Hour (Energy units), i.e., Wh Used in Example 2 Integral of commodity usage rate over a specified period of time T1 to T2 Values have the units stated in the ID_CODE x Hour (Energy units), i.e., Wh 1.0E+03 Internal meter factor. Offset to adjust to actual dial reading at the time of installation when the register Element cannot be preset. Internal meter factor. Internal factor

UOM_ENTRY_TBL.UOM_ENTRY[SI_UOM].MULTIPLIER CONSTANTS_TBL.SELECTION[SI_CST].GENERIC_CONSTANTS. MULTIPLIER CONSTANTS_TBL.SELECTION[SI_CST].GENERIC_CONSTANTS. OFFSET

ACT_LP_TBL.LP_FLAGS.SCALAR_DIVISOR_FLAG_SET1

Comment Used in Example 1

Transforming 2000 amps to 5 amps Transforming 7200 volts to 120 volts Applicable to Table 64 Applicable to Table 64 Applicable to Table 64

Algorithms for the Conversion of Table Element Values to Engineering Units

ANSI C12.19-2008

Note: The above values are just an example. There is no reason to assume that Elements that are encoded as NI_FMAT1 (e.g., CONSTANTS_TBL.SELECTION[SI_CST].GENERIC_CONSTANTS’ MULTIPLIER, OFFSET, RATIO_F1 and RATIO_P1) cannot have fractional values like 0.25 or 0.0001, subject to the proper value set for GEN_CONFIG_TBL.FORMAT_CONTROL_3.NI_FORMAT1. Example 1: Based on the above values the application can reliably convert the value T23_VALUE retrieved from Table 23 into fundamental engineering units as follows: Reading at the point of metering (1419472 * 20 / 1000 + 0) * (1 * 1) * (1.0E+03 Wh) = 28,389.44 kWh = 28,389,440 Wh Reading at the point of delivery (1419472 * 20 / 1000 + 0) * (1 * 1) * (400 * 60) * (1.0E+03 Wh) = 681,346,560 kWh = 681,346,560,000 Wh Given that UOM_ENTRY_TBL.UOM_ENTRY[SI_UOM].TIME_BASE = 0, the results represent the total energy recorded by this register. Example 2: Based on the above values the application can reliably convert the value T64_VALUE retrieved from Table 64 into fundamental engineering units as follows: Reading at the point of metering ((39 * 25 / 10000) * 20 / 1000 + 0) * (1 * 1) * (1.0E+03 Wh) = 0.00195 kWh = 1.95 Wh Reading at the point of delivery ((39 * 25 / 10000) * 20 / 1000 + 0) * (1 * 1) * (400 * 60) * (1.0E+03 Wh) = 46.8 kWh = 46,800 Wh Given that UOM_ENTRY_TBL.UOM_ENTRY[SI_UOM].TIME_BASE = 5, the results represent the incremental energy recorded by this register within one load profile interval period.

537

ANSI C12.19-2008

Registering or Updating DEVICE CLASS OID

ANNEX L: Registering or Updating DEVICE CLASS OID (Informative) Section 7.1(b) on compliance states that the DEVICE_CLASS Element in GEN_CONFIG_TBL (Table 00) contains a relative universal object identifier relative to the End Device class registered root context, which makes it globally unique. Also Annex J, “Universal Identifiers” explains that to ensure this, users of the Standard may register a Device Class Universal Identifier. This identifier shall be common to all End Devices that share the same End Device operating model, data structures and operational constants (i.e., C12.19 TDL and C12.19 EDL). This identifier may be used by upstream devices to interpret incoming data structures and operational assumptions made by the manufacturer of the End Device. Also it is important to note that relative Device Classes that begin with zero (0), under the are reserved for use by the ANSI C12.19 Standard. i.e., The various versions of the ANSI C12.19 Standard are pre-registered with relative Device Classes that have the form 0.version.revision.0 for each version/revision of the Standard. The version and revision are the values of the Elements GEN_CONFIG_TBL.STD_VERSION_NO and GEN_CONFIG_TBL.STD_REVISION_NO respectively. For example DEVICE_CLASS 0.2.0.0 refers to ANSI C12.19-2008, and DEVICE_CLASS 0.1.0.0 refers to ANSI C12.19-1997. A number of pertinent operational questions need answers. 1. In the context of issuing a Device Class, what do we mean by End Devices that share the same End Device operating model, data structures, and operational constants? 2. Can (or how can) an End Device be deployed without registering its Device Class? 3. What are the criteria for re-registering (assigning a new Device Class) to an already registered End Device following a change to its firmware and/or operating modes? 4. When can one just issue an update to the registration files of an End Device without requiring it to be re-registered with a new Device Class? The following sub-sections look at each of the above questions and scenarios and provide guidance and examples so that users of the Standard (including meter manufacturers, meter vendors, utilities and service providers) have a consistent operational understanding and expectation for the registration process. L.8 Binding a Device Class to End Device Operating Model End Device instantiated entity manifests itself on an AMI system as a combination of the knowledge of this Standard, available information that may be retrieved from the End Device, and information that may be retrieved off-line from an information system (e.g., MDMS). The aggregation of this knowledge is commonly referred to as an End Device Instance. The off-line content that is common to all End Devices that share the same Device Class is commonly referred to as the End Device Data Model. The Data Models are expressed as a collation of TDL and EDL files that are registered and therefore can be uniquely associated with a single Device Class. i.e., The Data Model aims to document any End Device instance information that is either unavailable directly from the End Device or it is a constant and non changing property of the End Device.

538

Registering or Updating DEVICE CLASS OID

ANSI C12.19-2008

End Device Instance

A Registered End Device Data Model End Device exposing Tables, Procedures, Elements and behaviors

+

TDL Table Syntax, Attributes and Behaviors

+

EDL External Table and Default Sets Attributes and Values

Figure L.1—A Registered End Device Instance A change in the End Device registered Data Model may necessitate a change of the End Device Class designation. The governing criteria for re-registration is that the change may cause a reader, that uses the previously registered Device Class, to misinterpret the revised End Devices’ Table-elements, Structures or behaviors. i.e., The revised Data Model represents a new End Device model that needs to be registered with a new Device Class. These statements loosely address the first question regarding the meaning of End Devices sharing the same operating model, data structures and operational constants. Figure L.2 should be used to make a determination of the need to re-register an End Device that has undergone changes to its Data Model.

539

ANSI C12.19-2008

Registering or Updating DEVICE CLASS OID

START 1

Changed registered TDL + EDL Standard types or Tables, or Manufacturer types or Tables, or End Device Behavior ?

Changed or re-qualified existing Tables or Elements or data types or operating Yes instructions or constants that are already known based on the registered Device Class.

2.1

Did not change anything in the End Device hardware, firmware, software, features, options and operating characteristics. 2.2

No

Yes

Changed existing documented Tables or Elements or values or known behavior ? No

Created new Tables or new data types or appended new Elements at the end of existing Tables or added documentation where none existed before or provided values for external entities or exposed Manufacturer content that was previously obscure.

3.1

Yes

Reuse Device Class

Did the change create conflicting behavior or created conflict with existing syntax or assumed values of the End Device ?

No

4

3.2

The changes are backward and forward compatible with any reader that uses the previously registered Device Class, therefore it will not misinterpret the revised End Device Table-elements, Structures and behaviors. Reuse existing Device Class with Updated version b

Register a new Device Class

END

Figure L.2—Device Class re-registration Decision Making Process Flow Whenever the End Device Data Model of a registered Device Class changes it is necessary to determine whether to re-register the revised End Device. The flowchart shown in Figure L.2 should be used to make this determination. When the concluding step is (3.2) then the End Device needs to be registered as “new” and obtain a new Device Class. When the concluding step is (4) then the End Device may reuse its existing Device Class, but it must update the registered TDLs and EDLs and issue a new version number which will be placed in the version attribute of the root element of the registered TDL and in

540

Registering or Updating DEVICE CLASS OID

ANSI C12.19-2008

the root element of the registered EDL. When the concluding step is (2.2) then no further action is necessary.

L.1 End Devices Referencing the Standard’s Device Class It was mentioned previously that relative Device Classes that begin with zero (0) under the are reserved for use by the ANSI C12.19 Standard. For instance Device Class 0.2.0.0 refers to version 2 and revision 0 of this Standard. When an End Device is a compliant instance of a version/revision of this Standard then it is permissible to use the Standard’s registered Device Class without the necessity for the Manufacturer to register a TDL or an EDL. When using the Standard’s registered Device Classes, it is not permissible for the End Device Data Model to deviate from the Table structures, Default-sets Used, Element offsets, Element indices, data types, FLC/FLC+1 behavior of Decades and all other normative behaviors prescribed in the referenced Standard. Under this scenario any AMI application or End Device reader implementing the referenced Standard should be able to interpret the data-sets and behaviors of the End Device strictly by consulting the retrieved DEVICE_CLASS Element from GEN_CONFIG_TBL (Table 00), the referenced Standard TDL and EDL files, and Element values retrieved from the End Device. However, because the End Device is implicitly registered it is not possible to ascertain more information about the device type or identify its manufacturer strictly from the DEVICE_CLASS Element.

L.2 Practical Examples and Use-cases In this section, we present a collection of example of possible revisions to registered End Device Data Models. The nature of the revisions are explained then the algorithm shown in Figure L.2 is applied. Each step executed in this algorithm is explained leading to one of two conclusions. Conclusion (3.2), where the End Device needs to be registered or conclusion (4) where the End Device may reuse its existing Device Class with updated version/revision. Outcome (2.2) is not considered here because all of the examples begin with the presumption that the End Device has undergone some change.

L.2.1 Examples: Initial Registration Condition—an Empty TDL In this example, we assume that the manufacturer registers an empty TDL in order to enable the industry discover the device type and manufacturer identification strictly from the DEVICE_CLASS Element. The registrar issues Device Class 10.20.30.40 for the submitted TDL as follows: L.2.1.1 Case 1: Exposing Manufacturer’s Content Case 1: Use-case scenario In this example, the Manufacturer of the End Device chooses to provide an elaboration on controlling the display format of data values that may be displayed. The Standard provides a binary place holder for that

541

ANSI C12.19-2008

Registering or Updating DEVICE CLASS OID

purpose in DISP_SOURCE_TBL.DISP_SOURCE_DESC_RCD.DISPLAY_SOURCE. The elaboration is expressed as a replacement of DISP_SOURCE_TBL.DISP_SOURCE_DESC_RCD in a manner that preserves the Element names, sizes offsets and indices of DISPLAY_SOURCE , but exposes the internal structure of the BINARY opaque content. Case 1: Device Class re-registration Decision Making Process Flow Step # 1

2.1

3.1

4

Test performed and outcome The TDL was changed in a manner that performs an “in-place” global replacement of the a Standard’s data type (packed record) and the introduction of a manufacturer-defined bit field. Did not change existing documented behavior. It elaborated on behavior of manufacturer-defined binary opaque Element DISP_SOURCE_TBL.DISP_SOURCE_DESC_RCD . Did not create a conflict since the behavior was never documented and the new behavior does not change the name of the Element DISPLAY_SOURCE nor it affects its offset, index or size, given that the condition ACT_DISP_TBL.WIDTH_DISP_SOURCES == 2 is enforced by the syntax. Reuse existing Device Class 10.20.30.40 and increase modify version number (e.g., to 1.1)

Consequence Proceed to step 2.1

Proceed to step 3.1

Proceed to step 4

Update version number

The new TDL preamble may look as follows: See detailed elaboration of the full content to be placed here in the next section.

The logic flow above lets the Manufacturer retain the originally registered Device Class and simply update its version number.

542

Registering or Updating DEVICE CLASS OID

ANSI C12.19-2008

Case 1: Exposing Manufacturer’s Content Ellaboration The following is the Standard’s description of DISP_SOURCE_TBL.DISP_SOURCE_DESC_RCD for registered Device Class 10.20.30.40 version 1.0. … TYPE DISP_SOURCE_DESC_RCD = PACKED RECORD DISPLAY_SOURCE : BINARY(ACT_DISP_TBL.WIDTH_DISP_SOURCES); END; … Identifier DISP_SOURCE_DESC_RCD DISPLAY_SOURCE

Value

Definition Manufacturer-defined display description entry. Contains the manufacturer-defined description entries.

display

The above document form representation translates to the equivalent TDL referenced by the standard attribute (“http://www.ansi.org/C1219TDL-2008.xml”) of the registered Device Class as follows: Manufacturer-defined display description entry. Contains the manufacturer-defined display description entries. The manufacturer elaborates on DISP_SOURCE_DESC_RCD.DISPLAY_SOURCE as follows: … TYPE FORMATTING_HINTS_BFLD = BIT FIELD OF UINT16 LEADING_DIGITS : UINT(0..3); SUPP_LEADING_ZEROS : BOOL(4); TRAILING_DIGITS : UINT(5..8); SCALE : INT(9..13); FILLER : FILL(14..15); END; TYPE MODEL_X_DISP_SOURCE_DESC_RCD = PACKED RECORD DISPLAY_SOURCE : FORMATTING_HINTS_BFLD ASSERT (ACT_DISP_TBL.WIDTH_DISP_SOURCES != 2) WARN “The value of ACT_DISP_TBL.WIDTH_DISP_SOURCES must be set to 2”; ; { The semicolon closes DISPLAY_SOURCE phrase. } END; …

543

ANSI C12.19-2008

Registering or Updating DEVICE CLASS OID

Identifier

Value

FORMATTING_HINTS_BFLD LEADING_DIGITS

0..15

SUPP_LEADING_ZEROS

Definition This Element defines the number of digit before the decimal point used. This Element indicates whether leading zeros should be suppressed.

FALSE Do not suppress leading zeros. TRUE Suppress leading zeros. TRAILING_DIGITS

0..15

SCALE

-16..15 This Element defines the scale factor to be applied computed as 10SCALE.

MODEL_X_DISP_SOURCE_DESC_RCD

DISPLAY_SOURCE

This Element defines the number of digits after the decimal point.

Manufacturer-defined display description entry. Replaces: DISP_SOURCE_TBL.DISP_SOURCE_DESC_ RCD. Contains the manufacturer-defined description entries.

display

Assert: WARN on (ACT_DISP_TBL . WIDTH_DISP_SOURCES != 2) due to “The value of ACT_DISP_TBL . WIDTH_DISP_SOURCES must be set to 2". The above manufacturer Document Form elaboration translates to TDL as shown below: This Element defines the number of digit before the decimal point used. This Element indicates whether leading zeros should be suppressed. This Element defines the number of digits after the decimal point.

544

Registering or Updating DEVICE CLASS OID

ANSI C12.19-2008

This Element defines the scale factor to be applied computed as 10SCALE. Manufacturer-defined display description entry. Contains the manufacturer-defined display description entries. ACT_DISP_TBL.WIDTH_DISP_SOURCES != 2 L.2.1.2 Case 2: Changing End Device Behavior Case 2: Use-case scenario In this example the Manufacturer of the End Device chooses to provide an elaboration of the behavioral fact that DIM_REGS_TBL (Table 20) cannot be not retrievable from the End Device and that ACT_REGS_TBL (Table 21) can only be retrieved using full table read mechanism (i.e., partial read index or partial read offsets are not supported by this device) finally it may be useful to the AMI application to know that ACT_REGS_TBL (Table 21) cannot be changed. Case 2: Device Class re-registration Decision Making Process Flow Step # 1 2.1 3.2

Test performed and outcome The TDL was changed in a manner that re-qualifies the attributes of Tables 20 and 21 therefore there is a change in End Device behavior. Changed Standard Tables 20 and 21 documented behavior. Register a new Device Class

Consequence Proceed to step 2.1 Proceed to step 3.2 Done

The new TDL preamble may look as follows: See detailed elaboration of the full content to be placed here in the next section.

The flow logic above requires the manufacturer to obtain a new Device Class since the behavior of the End Device changed sufficiently to cause a read error on Table 21, when invoking a partial table read. Case 2: Changing End Device Behavior Ellaboration The following is the Standard’s description of DIM_REGS_TBL (Table 20) and ACT_REGS_TBL (Table 21) for registered Device Class 10.20.30.40 version 1.0. … Table 20 Data Description DIM_REGS_TBL (Table 20) specifies the maximum dimensional values for measured values Registers. The constants defined are used for setting the absolute maximum limits of Arrays used in the transport of these values. Global Default Table Property Overrides: Role=“LIMITING”, Accessibility=“READONLY” … Table 21 Data Description ACT_REGS_TBL (Table 21) contains actual limiting values for Registers. Global Default Table Property Overrides: Role=“ACTUAL” … The above document form representation translates to the equivalent TDL referenced by the standard attribute (“http://www.ansi.org/C1219TDL-2008.xml”) of the registered Device Class as follows: DIM_REGS_TBL (Table 20) specifies the maximum dimensional values for Measured values Registers. The constants defined are used for setting the absolute maximum limits of Arrays used in the transport of these values. … …

546

Registering or Updating DEVICE CLASS OID

ANSI C12.19-2008

ACT_REGS_TBL (Table 21) contains actual limiting values for Registers. … The manufacturer may elaborate on DIM_REGS_TBL and ACT_REGS_TBL as follows:

Standard Tables re-qualified by this TDL DIM_REGS_TBL (Table 20) Global Default Table Property Overrides: Role=“LIMITING”, Accessibility="UNIMPLEMENTED". ACT_REGS_TBL (Table 21) Global Default Table Property Overrides: Role=“ACTUAL”, Accessibility="READONLY" Atomic="true". … The above manufacturer elaboration can be translated to a TDL segment as follows: The above elaboration preserves all of the Standard’s attributes except for the accessibility (for Table 20, 21) and atomic (for Table 21).

L.2.2 Examples: Initial Registration Conditions—Non-empty TDL Manufacturer registers a TDL with some content in order to enable the industry ascertain information about the type and manufacturer of this End Device strictly from its DEVICE_CLASS Element and obtain behavioral information about the End Device. The registrar issues the following Device Class 10.20.30.42 for the bound TDL as follows:

547

ANSI C12.19-2008

Registering or Updating DEVICE CLASS OID

An 8-bit field 1. An 8-bit field 2. The above registration states that Table 20 is not available from the End Device and in fact it cannot be made available. Table 21 is also unavailable for retrieval from the End Device, however its Element values can be obtained externally from the registered EDL. Therefore, it is expected that the Manufacturer also submits an EDL file as a companion to this TDL. Also the TDL includes a definition of METER_Z_AAA_TBL (Manufacturer Table 322). The following is an example of what this EDL may look like: true true true true false false true false true true false 3 64 3 3 3 3 24

548

Registering or Updating DEVICE CLASS OID

ANSI C12.19-2008

3 3 L.2.2.1 Case 1: Appending a New Element to an Existing Table Case 1: Use-case scenario In this example the Manufacturer of the End Device determined that there is a need to extend METER_Z_AAA_TBL.METER_Z_AAA_RCD by adding a new Element FIELD_3 of type UINT16. All other information remains identical. The implication is that the manufacturer changed METER_Z_AAA_TBL.METER_Z_AAA_RCD member of the TDL as shown in the elaboration section that follows the process flow. Case 1: Device Class re-registration Decision Making Process Flow Step # 1 2.1 3.1 4

Test performed and outcome The TDL was changed in a manner that a new element was added to an existing Table The change is to an existing table, but it does not impact on previously registered behavior. The change did not create a conflict since it was added to the end of the Table Reuse existing Device Class 10.20.30.42 and increase modify version number (e.g., to 1.1)

Consequence Proceed to step 2.1 Proceed to step 3.1 Proceed to step 4 Update version number

The flow logic above requires the manufacturer to update the version of the Device Class registered since it exposed new Elements that otherwise were not known. Case 1: Appending a New Element to an Existing Table Ellaboration An 8-bit field 1. An 8-bit field 2. A 16-bit field 3.

549

ANSI C12.19-2008

Registering or Updating DEVICE CLASS OID

L.2.2.2 Case 2: Inserting a New Element to an Existing Table Case 2: Use-case scenario In this example the Manufacturer of the End Device determined that there is a need to extend METER_Z_AAA_TBL.METER_Z_AAA_RCD by adding a new Element FIELD_3 of type UINT8. All other information remains identical. The implication is that the manufacturer changed METER_Z_AAA_TBL.METER_Z_AAA_RCD member of the TDL as shown in the elaboration section that follows the process flow. Case 2: Device Class re-registration Decision Making Process Flow Step # 1 2.1 3.1

3.2

Test performed and outcome The TDL was changed in a manner that a new element was added to an existing Table The change is to an existing table, but it does not impact on previously registered behavior. The change creates a conflict since it was added in the middle of the Table, therefore causing a change to the offset and index of FIELD_2. In readers that utilize the existing Device Class 10.20.30.42 will confuse FIELD_3 for FIELD_2. Register a new Device Class

Consequence Proceed to step 2.1 Proceed to step 3.1 Proceed to step 3.2

Done

The flow logic above requires the manufacturer to obtain a new Device Class since the behavior of the End Device changed sufficiently to cause a misinterpretation of FIELD_2 of Table 322. Case 2: Inserting a new Element to an Existing Table Ellaboration The following is the resulting TDL produced for the new Device Class. An 8-bit field 1.

550

Registering or Updating DEVICE CLASS OID

ANSI C12.19-2008

An 8-bit field 3. An 8-bit field 2. L.2.2.3 Case 3: Modifying an Element of an Existing Table Case 3: Use-case scenario In this example the Manufacturer of the End Device determined that there is a need to modify METER_Z_AAA_TBL.METER_Z_AAA_RCD by changing a the Element FIELD_1 to be of type UINT16. All other information remains identical. The implication is that the manufacturer changed a METER_Z_AAA_TBL.METER_Z_AAA_RCD member of the TDL as shown in the elaboration section that follows. Case 3: Device Class re-registration Decision Making Process Flow Step # 1 2.1 3.1

3.2

Test performed and outcome The TDL was changed in a manner that a new element was modified in an existing Table The change is to an existing table, but somehow it is perceived that this change does not impact on previously registered behavior. The change created a conflict since the data type was changed from UINT8 to UINT16 thus will lead to errors in access and interpretation of FIELD_1 (size and data order) and FIELD_2 (offset) Register a new Device Class (See elaboration in the next subsection)

Consequence Proceed to step 2.1 Proceed to step 3.1 Proceed to step 3.2

Done

The flow logic above requires the manufacturer to obtain a new Device Class since the behavior of the End Device changed sufficiently to cause a data interpretation error for FIELD_1 (size and data order) and FIELD_2. Also note that process (3.1) acts to trap that catches conflicts. Case 3: Modifying an Element of an Existing Table Ellaboration As per discussion above, a new Device Class is registered. An 16-bit field 1. An 8-bit field 2.

L.2.2.4 Case 4: Modifying a Constant Element in a Table Case 4: Use-case scenario In this example the Manufacturer of the End Device decided to release a new End Device that has fewer self-reads (down to 12 from 64) and time-of-use tiers (down to 4 from 24). Otherwise the End Device is identical to the previously register Device Class 10.20.30.42. The implication is that the manufacturer changed an externally available constant leading to the following process flow. Case 4: Device Class re-registration Decision Making Process Flow Step # 1 2.1 3.2

Test performed and outcome The EDL was changed in a manner that the value of an Element constant was changed The TDL did not change. There was a change to documented Elements constant values. Register a new Device Class

Consequence Proceed to step 2.1 Proceed to step 3.2 Done

The flow logic above requires the Manufacturer to obtain a new Device Class that uses the same TDL body, but with a new EDL that captures the change in the Element values. Case 4: Modifying a Constant Element in a Table Ellaboration As per discussion above, a new Device Class is registered. The body (content) of the re-registered TDL is identical to the TDL registered previously as Device Class 10.20.30.42. The re-registration serves to produce a unique reference to the EDL file (see below). An 8-bit field 1. An 8-bit field 2. The above TDL is identical to the TDL of Device Class 10.20.30.42. The actual change occur only in the EDL below. true true true true false false true false true true false 3

12 3 3 3 3

4 3 3

553

ANSI C12.19-2008

Registering or Updating DEVICE CLASS OID

L.2.2.5 Case 5: Adding a New Table to an End Device Case 5: Use-case scenario In this example, the Manufacturer of the End Device decided to introduce a new Table in an End Device that was previously registered with Device Class 10.20.30.42. All other attributes and behaviors of the registered Device Class remained the same. Case 5: Device Class re-registration Decision Making Process Flow Step # 1 2.1 3.1 4

Test performed and outcome The TDL was changed. There was a change to an undocumented Table or a Table that did not previously exist. This new Table does not cause a conflict with any previous instance of the registered Device Class Reuse existing Device Class 10.20.30.42 and modify the version number (e.g., to 1.1)

Consequence Proceed to step 2.1 Proceed to step 3.1 Proceed to step 4 Update version number

The flow logic above lets the Manufacturer retain the originally registered Device Class and simply update its version number. Case 5: Adding a new Table to an End Device Ellaboration As per discussion above, an existing Device Class is re-used, but the version of the TDL is updated. An 8-bit field 1. An 8-bit field 2. A 10 character field 1.

554

Registering or Updating DEVICE CLASS OID

ANSI C12.19-2008

A 10 character field 2.

555

ANSI C12.19-2008

Historical Background

ANNEX M: Historical Background (informative)

M.1 Foreword of American National Standard C12.19-1997

Foreword

(This foreword is not part of American National Standard for Protocol Specification for ANSI C12.19-1997.)

The ANSI C12.19 standard provides a common data structure for use in transferring data to and from utility end devices, typically meters. It has been approved after considerable cooperative effort among utilities, electric meter manufacturers, Industry Canada, AMRA and other interested parties. The standard data structure is defined as sets of tables. Table sets are grouped together into segments called decades. Each decade pertains to a particular feature set and data type such as Time of Use, Load Profile, etc. Data is transferred by reading from or writing to a particular table or portion of a table. It is anticipated that the set of standard tables will grow to meet the need for common implementations of expanded functionality. The Secretariat of the Accredited Standards Committee on Electricity Metering, C12, is held by the National Electrical Manufacturers Association (NEMA) and the National Institute of Standards and Technology. At the time this standard was processed and approved, the C12 Committee had the following members: Nile Oldham, Chairman Vince Baclawski, Secretary Organization Represented

Name of Representative

Underwriters Laboratory

Ron Breschini

Idaho Power Company

Richard Canderan

ABB Power T&D Company, Inc.

Tom C. Drew Ted York

GE

Warren Germer

City of Los Angeles

Cruz R. Gomez

State of New York

Edmund J. Hofmann

Memphis Light

H. Carey Jones

Rural Utilities Service

George Keel

B-Line Systems, Inc.

Francis A. Marta

Clemson University

D. McAuliff

Florida Power & Light Co.

John McEvoy

Edison Electric Institute

Gary N. Miller

City of Austin Metering Operations

Herman M. Millican

T. U. Electric

James Mining

556

Historical Background

ANSI C12.19-2008

National Institute of Standards & Technology

Nile Oldham

Pacificorp

Lauren Pananen Clark J. Smith

Florida Public Service Commission

James Ruehl

Arizona Public Service Company

Paul Taylor

Pacific Gas & Electric

Tim Vahstrom

The following members of the C12.17 Data Communications Protocols Committee were actively involved in the revision of this standard: Wesley Ray, Chairman Organization Represented

Name of Representative

Indianapolis Power & Light Company

Robert D. Adams

Landis & Gyr

Michael Anderson

Public Utillities Commission

Vlado Bevc

APTECH, Inc.

William C. Beverly, Jr.

ITRON

William J. Buckley

American Innovations, Ltd.

Randall Chance Rick Darby

Entergy Services, Inc.

Lynnda K. Ell

Lucent Technologies

Stuart M. Garland

Centerior Energy Corporation

Kenneth E. Hauzer

T U Electric

Brad Johnson James Mining (Alt.)

LILCO

Sunil Katwala

MidAmerican Energy Company

Jerry Klipkenberg

Commonwealth Edison

Larry Kotewa

Echelon

Chris Stanfield Pradip Madan (Alt.)

Southern California Edison Company

Kit Maughan Mario A. Natividad

Georgia Power Company

Kevin McDonald Terry Penn

557

ANSI C12.19-2008

Historical Background

Radix Corporation

Laurel Miller

City of Austin Metering Operations

Herman M. Millican

Future DOS R&D, Inc.

Avygdor Moise

National Institute of Standards & Technology

Nile Oldham

Pacificorp

Lauren Pananen Clark J. Smith

Pacific Gas & Electric Co.

Charles A. Partridge

GE Meter

Jack Pazdon

Schlumberger Electricity

Marc Purc

American Electric Power Servs. Corp.

William A. Randle, Jr.

Duke Energy Company

Wesley Ray

Institute of Gas Technology

William F. Rush

Utility Translation Systems

Chris M. Schafer

Bell Sotuh Telecommunications

Jerry Schull

Radix Corporation

Brian Simpson

Arizona Public Service Company

Paul Taylor (Alt.)

Wisconsin Public Service Corp.

Thomas C. Thiel

Tucker Engineering

Richard Tucker

Nertec Design

Michael Veillette

DAC

Steve Weil

ABB Power T&D Company, Inc.

Ted York

§

558

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF