Ansi c12.19 2008
Ansi c12.19 2008
Ansi c12.19 2008
19-2008
American National Standard
For Utility Industry
End Device
Data Tables
ANSI C12.19-2008
Secretariat:
ANSI C12.19-2008
AMERICAN
NATIONAL
STANDARD
Published by
ANSI C12.19-2008
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
iv
ANSI C12.19-2008
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
vi
ANSI C12.19-2008
ANSI C12.19-2008
viii
ANSI C12.19-2008
ix
ANSI C12.19-2008
ANSI C12.19-2008
ANSI C12.19-2008
xii
ANSI C12.19-2008
xiii
ANSI C12.19-2008
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.
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.
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.
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.
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
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:
John Taylor
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
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
xviii
ANSI C12.19-2008
ANSI C12.19-2008
2 References
2.1 Normative
ANSI C12.10-2004
ANSI X9.31-1998
ANSI/IEEE 100-2000
AS 4140-1995
ANSI C12.19-2008
References
frequency Conducted Disturbances and Signalling in Public Power Supply
Systems.
2.2 Other
ACPTLC : 1998
The Electric Power Engineering Handbook, CRC Press and IEEE Press,
2000, L. L. Grigsby, Ed., Section 3, Transformers, J.H. Harlow, Ed.
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
ISBN 0-8493-0628-0
IS-E-01-E
MCPSMTD : 1999
UG : 2005
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.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.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]
ACT
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.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.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.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.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]
Customer
Definitions
ANSI C12.19-2008
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.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]
Element, Atomic
ANSI C12.19-2008
Definitions
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.45 Meter
A device that measures and records the consumption or usage of the product/service. [ANSI C12.191997]
Event, Call
Definitions
ANSI C12.19-2008
3.51 Object
A Table Object or an Element Object [Revised]
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.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]
Mode, Factory
ANSI C12.19-2008
Definitions
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
Procedure, Standard
Definitions
ANSI C12.19-2008
appropriate. [New, portions adopted from ANSI C12.1-2001 and ANSI C12.19-1997]
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.72 Season
A calendar-specified period used for activation of rate schedules. [ANSI C12.19-1997]
Register, Secured
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]
10
Self-read
Definitions
ANSI C12.19-2008
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.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
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
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
A
B
C
D
E
F
G
H
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
Table name
Table name
Table name
LIMITING
ACTUAL
UNDEFINED
General
ANSI C12.19-2008
Table
Property*
Required
FLC Table
associate
No
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, <table> Element (Child of <tdl> or <decade>).
** 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.
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
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, <procedure> Element (Child of <tdl> or <decade>).
13
ANSI C12.19-2008
General
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, <table> Element (Child of
<tdl> or <decade>).
4.2.2
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 manufacturers 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
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.
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 Manufacturers
TDL. The default Procedure properties are shown in the figure below:
14
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
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
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.
Value
Definition
Reserved.
CHAR_FORMAT_ENUM
16
Descriptive syntax
ANSI C12.19-2008
3
4..7
Reserved.
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
11
12
13
14..15
6.2.1
INT64
FIXED_BCD8
FLOAT_CHAR21 (A STRING Number)
Reserved
STRING Numbers
18
ANSI C12.19-2008
Value
TM_FORMAT_ENUM
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).
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.
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
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
ANSI C12.19-2008
Date and Time Formats / HTIME_DATE, LTIME_DATE, STIME_DATE, TIME, STIME, HTIME types
21
ANSI C12.19-2008
Definition
YEAR
00..89
90..99
> 100
MONTH
0
1..12
> 12
Reserved.
Month of year.
Reserved.
DAY
0
1..31
> 31
Unassigned.
Day of month.
Reserved.
HOUR
00..23
> 23
MINUTE
00..59
> 59
Minute of hour.
Reserved.
SECOND
00..59
> 59
Seconds of minute.
Reserved.
BCD_SEC_FRACTION
0..999999
UINT_SEC_FRACTION
0..16777215
U_TIME
U_TIME_SEC
U_SEC_FRACTION
Identifier
HTIME_DATE_RCD
22
Date and Time Formats / HTIME_DATE, LTIME_DATE, STIME_DATE, TIME, STIME, HTIME types
ANSI C12.19-2008
LTIME_DATE_RCD
YEAR
00..89
90..99
> 100
MONTH
0
1..12
> 12
Reserved.
Month of year.
Reserved.
DAY
0
1..31
> 31
Unassigned.
Day of month.
Reserved.
HOUR
00..23
> 23
MINUTE
00..59
> 59
Minute of hour.
Reserved.
SECOND
00..59
> 59
Seconds of minute.
Reserved.
U_TIME
U_TIME_SEC
STIME_DATE_RCD
YEAR
00..89
90..99
> 100
MONTH
0
1..12
> 12
Reserved.
Month of year.
Reserved.
DAY
0
1..31
> 31
Unassigned.
Day of month.
Reserved.
HOUR
00..23
> 23
MINUTE
00..59
> 59
Minute of hour.
Reserved.
U_TIME
Date and Time Formats / HTIME_DATE, LTIME_DATE, STIME_DATE, TIME, STIME, HTIME types
23
ANSI C12.19-2008
HTIME_RCD
HOUR
00..23
> 23
MINUTE
00..59
> 59
Minute of hour.
Reserved.
SECOND
00..59
> 59
Seconds of minute.
Reserved.
BCD_SEC_FRACTION
0..999999
UINT_SEC_FRACTION
0..16777215
D_TIME
U_SEC_FRACTION
TIME_RCD
HOUR
00..23
> 23
MINUTE
00..59
> 59
Minute of hour.
Reserved.
SECOND
00..59
> 59
Seconds of minute.
Reserved.
D_TIME
STIME_RCD
24
HOUR
00..23
> 23
MINUTE
00..59
> 59
Minute of hour.
Reserved.
D_TIME
Date and Time Formats / HTIME_DATE, LTIME_DATE, STIME_DATE, TIME, STIME, HTIME 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);
Value
RDATE_BFLD
MONTH
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
PERIOD_IN_MINS
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
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
ANSI C12.19-2008
Definition
YEAR
00..89
90..99
> 100
MONTH
0
1..12
> 12
Reserved.
Month of year.
Reserved.
DAY
0
1-31
Reserved.
Day of month.
Identifier
DATE_BFLD
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
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.
27
ANSI C12.19-2008
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
FALSE
TRUE
FLAG3
6.4.2
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
MFG_FLAG
28
Alias: STD_VS_MFG_FLAG.
ANSI C12.19-2008
FALSE
TRUE
SELECTOR
6.4.3
0..15
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
MFG_FLAG
FALSE
TRUE
PROC_FLAG
FALSE
TRUE
FALSE
TRUE
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.
29
ANSI C12.19-2008
FALSE
TRUE
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.
ANSI C12.19-2008
Two-way communicating End Devices shall accept and act upon all services defined in Section
8.0, Table Transportation Issues.
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.
Two-way communicating End Devices shall transmit GEN_CONFIG_TBL (Table 00) on request.
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.
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).
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).
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.
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.
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.
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.
Compliance
31
ANSI C12.19-2008
32
ANSI C12.19-2008
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
Identifier
Value
Definition
Table Identifier
2048..4087
4096..6135
6144-8183
Provides access to
Tables 00 to 2039.
8192..10231
12288..14327
Provides access to
Tables 00 to 2039.
Manufacturer
User-defined
Pending
Pending
33
ANSI C12.19-2008
Index/Element-Count Method
Offset/Octet-Count Method
8.1.2
Write Service
The Write Service causes the transfer of un-requested data to a target device from the initiating device
34
ANSI C12.19-2008
Identifier
Value
Definition
Table Identifier
2048..4087
4096..6135
6144..8183
8192..10231
12288..14327
35
ANSI C12.19-2008
Index/Element-count Method
Offset/Octet-Count Method
Data
1. An index sets up a start of selection into a table object relative to the beginning of the table as
follows:
36
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
ANSI C12.19-2008
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 parents 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 arrays
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
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
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
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
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
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;
39
ANSI C12.19-2008
Value
STATUS_BFLD
EVENT_CODE
40
Definition
ANSI C12.19-2008
1
2
3..15
SELF_READ_FLAG
FALSE
TRUE
DEMAND_RESET_FLAG
FALSE
TRUE
RESERVED
PE_STIME_DATE_RCD
EVENT_STORAGE_RCD
PENDING_EVENT_DESC_RCD
Four-byte
manufacturer
code
as
per
GEN_CONFIG_TBL.DEVICE_CLASS, followed
by a one-byte manufacturer-specific event code
(MFG_EVENT_CODE).
Any Tables PENDING_EVENT_DESC
PENDING_EVENT_DESC_RCD.
EVENTS_SELECTOR
EVENT_STORAGE
conditions
41
ANSI C12.19-2008
EVENT_STORAGE_RCD.EVENT_STORAGE.
It always occupies five Octets and is transmitted
as ARRAY[5] of UINT8.
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.
ANSI C12.19-2008
TRUE
HIGH_OVERFLOW_INDICATION_FLAG
FALSE
TRUE
REPEAT_OVERFLOW_INDICATION_FLAG
FALSE
TRUE
LIST_OVERFLOW_CONTROL_RCD
LIST_OVERFLOW_ENABLE
LOW_THRESHOLD
HIGH_THRESHOLD
REPEAT_INTERVAL
MAX_REPEATS
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
44
Tables
ANSI C12.19-2008
Value
Definition
0
1
FORMAT_CONTROL_1_BFLD
DATA_ORDER
CHAR_FORMAT
MODEL_SELECT
FORMAT_CONTROL_2_BFLD
TM_FORMAT
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.
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
identifier fields
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:
<device-class-root-oid>.<class>
The <class> (DEVICE_CLASS) is registered in
a manner that it shall be unique among all
C12.19 implementations, within a registered root
46
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:
<class> = 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
MAX_PROC_PARM_LENGTH 0..255
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
47
ANSI C12.19-2008
Tables
3..255
STD_REVISION_NO
DIM_STD_TBLS_USED
0..255
DIM_MFG_TBLS_USED
0..255
DIM_STD_PROC_USED
DIM_MFG_PROC_USED
0..255
DIM_MFG_STATUS_USED
0..255
NBR_PENDING
0..255
STD_TBLS_USED
sets
in
48
Reserved.
Tables
ANSI C12.19-2008
TRUE
MFG_TBLS_USED
STD_PROC_USED
FALSE
TRUE
MFG_PROC_USED
FALSE
TRUE
STD_TBLS_WRITE
FALSE
TRUE
MFG_TBLS_WRITE
49
ANSI C12.19-2008
Tables
FALSE
TRUE
50
Tables
9.1.2
ANSI C12.19-2008
Value
MANUFACTURER_IDENT_RCD
MANUFACTURER
Definition
Acronym for the manufacturer name.
ED_MODEL
HW_VERSION_NUMBER
0..255
Manufacturer's hardware
Implies functional changes.
version
HW_REVISION_NUMBER
0..255
FW_VERSION_NUMBER
0..255
FW_REVISION_NUMBER
0..255
number.
51
ANSI C12.19-2008
MFG_SERIAL_NUMBER
52
Tables
Tables
9.1.3
ANSI C12.19-2008
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
Tables
ANSI C12.19-2008
Value
Definition
0
1
2
3
4
5
6..7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14..15
0
1
2
3
4
5
6
7
8
9
10
11
W_WATER_DEVICE_BFLD
W_ED_TYPE
W_FLUID_TYPE
W_ED_DRIVE
W_ED_PIPE_SIZE
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.
Value
Definition
0
1
2
3
4
5
6..7
0
1
2
3
4
5
6..7
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
Tables
ANSI C12.19-2008
G_ENG_METRIC
2
3
4
5..7
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
G_UOM_PRESS
G_FLOW_RCD
G_MAX_FLOW
G_UOM_FLOW
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
0
1
2
3
4
5
6
7
8
9
10
11
12
13
G_INPUT_OUTPUT_PIPE
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
0
1
2
3..7
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.
Value
E_ELEMENTS_BFLD
E_FREQ
0
1
2
3
4
5
6
7
58
Definition
Tables
ANSI C12.19-2008
E_NO_OF_ELEMENTS
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
8
9..15
E_BASE_TYPE
E_ACCURACY_CLASS
0..63
E_VOLTS_BFLD
E_ELEMENTS_VOLTS
0
1
2
3
4
5
6
7
8
9
10
11
12..15
0
1
2
3
4
5
6
E_ED_SUPPLY_VOLTS
59
ANSI C12.19-2008
Tables
7
8
9
10
11
12
13
14
15
E_AMPS_RCD
E_CLASS_MAX_AMPS
E_TA
E_ELECTRIC_DEVICE_RCD
E_KH
E_KT
E_INPUT_SCALAR
E_ED_CONFIG
E_ELEMENTS
See E_ELEMENTS_BFLD.
E_VOLTS
See E_VOLTS_BFLD.
E_AMPS
See E_AMPS_RCD.
DEVICE_DEFINITION_RCD
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.
Tables
9.1.4
ANSI C12.19-2008
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
FALSE
TRUE
METER_SHOP_MODE_FLAG FALSE
TRUE
FACTORY_FLAG
FALSE
TRUE
FALSE
TRUE
ED_STD_STATUS1_BFLD
UNPROGRAMMED_FLAG
CONFIGURATION_ERROR_FLAG
FALSE
TRUE
SELF_CHK_ERROR_FLAG
FALSE
TRUE
RAM_FAILURE_FLAG
FALSE
TRUE
ROM_FAILURE_FLAG
FALSE
TRUE
NONVOL_MEM_FAILURE_FLAG
FALSE
TRUE
CLOCK_ERROR_FLAG
FALSE
TRUE
MEASUREMENT_ERROR_FLAG
FALSE
TRUE
62
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
POWER_FAILURE_FLAG
FALSE
TRUE
TAMPER_DETECT_FLAG
FALSE
TRUE
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
Decade 0: General Configuration Tables / Table 03 End Device Mode Status Table
63
ANSI C12.19-2008
9.1.5
Tables
64
Tables
ANSI C12.19-2008
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.
65
ANSI C12.19-2008
Tables
PE_STIME_DATE_RCD
EVENT_STORAGE_RCD
EVENT_RCD
EVENTS_SELECTOR
EVENT_STORAGE
ENTRY_ACTIVATION_RCD
EVENT
TABLE_SELECTOR
PENDING_ACTIVATION_RCD
STANDARD_PENDING
66
conditions
MANUFACT_PENDING
LAST_ACTIVATION_DATE_TIME
NBR_PENDING_ACTIVATION
Number
of
activation
events
in
the
PENDING_STATUS_TBL structure that have
yet to be activated.
PENDING_TABLES
Tables
9.1.6
ANSI C12.19-2008
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.
67
ANSI C12.19-2008
9.1.7
Tables
Value
Definition
UTIL_INFO_RCD
68
Tables
ANSI C12.19-2008
OWNER_NAME
UTILITY_DIV
SERVICE_POINT_ID
ELEC_ADDR
DEVICE_ID
UTIL_SER_NO
CUSTOMER_ID
COORDINATE_1
COORDINATE_2
COORDINATE_3
TARIFF_ID
EX1_SW_VENDOR
Name
of
manufacturer
that
configuration/programming software.
EX1_SW_VERSION_NUMBER 0..255
EX1_SW_REVISION_NUMBER 0..255
EX2_SW_VENDOR
EX2_SW_VERSION_NUMBER 0..255
EX2_SW_REVISION_NUMBER 0..255
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
MISC_ID
FW_LOAD_DATE
Tables
9.1.8
ANSI C12.19-2008
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
Tables
ANSI C12.19-2008
73
ANSI C12.19-2008
Tables
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
MFG_PARM_RCD
74
Tables
ANSI C12.19-2008
PARM_RCD
STANDARD
See STD_PARM_RCD.
MANUFACTURER
See MFG_PARM_RCD.
PROC_FORMAT_RCD
PROC
SEQ_NBR
PARM
75
ANSI C12.19-2008
9.1.9
Tables
76
Tables
ANSI C12.19-2008
77
ANSI C12.19-2008
Tables
78
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
MFG_RESP_RCD
RESP_DATA_RCD
STANDARD
MANUFACTURER
See STD_RESP_RCD.
See MFG_RESP_RCD.
PROC_RESPONSE_RCD
PROC
SEQ_NBR
RESULT_CODE
0
79
ANSI C12.19-2008
Tables
1
2
3
4
5
6
7..255
RESP_DATA_RCD
80
Tables
ANSI C12.19-2008
81
ANSI C12.19-2008
Tables
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 Manufacturers Lists.
All lists except EVENT_LOG_TBL (Table 76).
8
9
10
11
12
13
14..127
128..254
255
9.1.10.6
82
Tables
ANSI C12.19-2008
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 Manufacturers Lists.
All lists except EVENT_LOG_TBL (Table 76).
0..65535
83
ANSI C12.19-2008
Tables
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.
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).
84
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).
Value
Definition
FALSE
TRUE
FALSE
TRUE
85
ANSI C12.19-2008
SEASON_CHANGE_FLAG
Tables
FALSE
TRUE
NEW_SEASON
0..15
PARM_DATA_RCD
ACTION_FLAG
ACTION_RESPONSE_FLAG_BFLD
Redefines: ACTION_FLAG_BFLD.
DEMAND_RESET_FLAG
FALSE
TRUE
SELF_READ_FLAG
FALSE
TRUE
SEASON_CHANGE_FLAG
FALSE
TRUE
NEW_SEASON
0..15
RESP_DATA_RCD
SUCCESS_FLAG
9.1.10.11
86
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
SET_DATE_FLAG
FALSE
TRUE
SET_TIME_DATE_QUAL
FALSE
TRUE
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
87
ANSI C12.19-2008
DST_SUPPORTED_FLAG
Tables
TRUE
FALSE
TRUE
PARM_DATA_RCD
SET_MASK
DATE_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).
88
Tables
ANSI C12.19-2008
Identifier
PARM_DATA_RCD
EVENT
9.1.10.15
Definition
See
PENDING_STATUS_TBL.EVENT_RCD
(Table 04).
Identifier
PARM_DATA_RCD
EVENT
9.1.10.17
Definition
See
PENDING_STATUS_TBL.EVENT_RCD
(Table 04).
89
ANSI C12.19-2008
Tables
Procedure 18 Log In
Value
Definition
PARM_DATA_RCD
USER_ID
0..65535
PASSWORD
9.1.10.20
90
Tables
ANSI C12.19-2008
Value
Definition
PARM_DATA_RCD
PHONE_NUMBER_INDEX
0..6
9.1.10.22
91
ANSI C12.19-2008
Tables
Identifier
Value
Definition
PARM_DATA_RCD
NEW_LEVEL
0..100
TO_SET
FALSE
TRUE
DURATION
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
Value
Definition
PARM_DATA_RCD
92
Tables
ANSI C12.19-2008
OPERATION
0
1
2
3..255
VALUE
RESP_DATA_RCD
NEW_REMAINING_CREDIT
after
93
ANSI C12.19-2008
9.1.10.31
Tables
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
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
SECURED_REGISTER_FLAG
DATA_FREEZE_FLAG
FALSE
TRUE
FALSE
TRUE
RESP_DATA_RCD
Redefines: PARM_DATA_RCD.
Procedure response data.
READ_ENABLE
SECURED_READ_MAX
0
1..65535
9.1.10.32
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
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
FALSE
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
96
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
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).
97
ANSI C12.19-2008
Tables
98
Tables
9.2.1
ANSI C12.19-2008
: SOURCE_FLAGS_BFLD;
: UINT8;
: UINT8;
: UINT8;
: UINT8;
: UINT8;
: UINT8;
: UINT8;
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
0..255
entries
in
NBR_DEMAND_CTRL_ENTRIES 0..255
Maximum
number
of
entries
in
DEMAND_CONTROL_TBL (Table 13).
the
DATA_CTRL_LENGTH
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
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
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
BLOCK_DEMAND_FLAG
FALSE
TRUE
SLIDING_DEMAND_FLAG
FALSE
TRUE
THERMAL_DEMAND_FLAG
FALSE
Identifier
SOURCE_FLAGS_BFLD
PF_EXCLUDE_FLAG
RESET_EXCLUDE_FLAG
TRUE
SET1_PRESENT_FLAG
FALSE
TRUE
SET2_PRESENT_FLAG
FALSE
TRUE
102
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
0..255
NBR_DEMAND_CTRL_ENTRIES 0..255
Actual
number
of
entries
in
DEMAND_CONTROL_TBL (Table 13).
DATA_CTRL_LENGTH
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
0..255
0
1
2
3..255
NBR_SOURCES
0..255
Decade 1: Data Source Tables / Table 11 Actual Data Sources Limiting Table
103
ANSI C12.19-2008
9.2.3
Tables
Value
UOM_ID_CODES_ENUM
Definition
The following are the Unit of Measure codes
used throughout this Standard.
Electric Industry units
Power:
0
1
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.
Tables
ANSI C12.19-2008
3
4
5
6
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
20
21
22
23
24
25
26
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
106
Tables
ANSI C12.19-2008
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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
107
ANSI C12.19-2008
Tables
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146..189
190
191
192
193
194
195
196
197
198
199
200
201..209
210
211
212
213
214
215
216
217
218
219
220
220
221..255
UOM_ENTRY_BFLD
ID_CODE
108
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
6
7
MULTIPLIER
0
1
2
3
4
5
100
102
103
106
109
10-2
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
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
HARMONIC
FALSE
TRUE
RESERVED
Reserved.
NFS
ID_RESOURCE
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
Tables
9.2.4
ANSI C12.19-2008
Value
Definition
INT_CONTROL_RCD
SUB_INT
0..255
INT_MULTIPLIER
0..255
INT_LENGTH
0..65535
0..255
DEMAND_CONTROL_RCD
RESET_EXCLUSION
113
ANSI C12.19-2008
P_FAIL_RECOGNTN_TM
0..255
P_FAIL_EXCLUSION
0..255
COLD_LOAD_PICKUP
0..255
INTERVAL_VALUE
114
Tables
Tables
9.2.5
ANSI C12.19-2008
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).
115
ANSI C12.19-2008
9.2.6
Tables
116
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;
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
BASE_PRESSURE
GAS_TEMP_RCD
GAS_TEMP_ZERO
This value is
GAS_TEMP_FULLSCALE
BASE_TEMP
GAS_DP_RCD
GAS_DP_ZERO
GAS_DP_FULLSCALE
PIPE_ORIF_DIA_RCD
PIPE_DIA
118
Value
Tables
ANSI C12.19-2008
ORIF_DIA
GAS_AGA3_CORR_RCD
AUX_CORR_FCTR
GAS_AGA3_CORR_FCTR
PIPE_ORIF_DIA
TAP_UP_DN
0
1
2
3
4
5..255
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
GAS_AGA7_CORR
GAS_ENERGY_RCD
GAS_ENERGY_ZERO
GAS_ENERGY_FULL
GAS_DP_SHUTOFF_RCD
GAS_SHUTOFF
GAS_CONSTANTS_AGA3_RCD
GAS_DP_PARM
GAS_DP_SHUTOFF
GAS_PRESS_PARM
GAS_AGA3_CORR
GAS_ENERGY
GAS_CONSTANTS_AGA7_RCD
GAS_AGA7_CORR
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
RATIO_F1
RATIO_P1
ELECTRIC_CONSTANTS_RCD
MULTIPLIER
Final
Element
value
used
in
multiplication/division adjustment. This multiplier
shall be applied before OFFSET.
OFFSET
SET1_CONSTANTS
SET2_CONSTANTS
120
Tables
ANSI C12.19-2008
MULTIPLIER
DIVISOR
OFFSET
SET1_CONSTANTS
SET2_CONSTANTS
CONSTANTS_RCD
GAS_CONSTANTS_AGA3
GAS_CONSTANTS_AGA7
ELECTRIC_CONSTANTS
CONSTANT_SELECTION_RCD
SELECTION
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
Tables
9.2.7
ANSI C12.19-2008
Value
Definition
SOURCE_LINK_BFLD
UOM_ENTRY_FLAG
FALSE
TRUE
DEMAND_CTRL_FLAG
FALSE
TRUE
DATA_CTRL_FLAG
FALSE
TRUE
CONSTANTS_FLAG
FALSE
TRUE
PULSE_ENGR_FLAG
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
124
FALSE
TRUE
Tables
9.2.8
ANSI C12.19-2008
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.
125
ANSI C12.19-2008
Tables
KWFE
KVFE
DELIVERED_PCT
0..100
RECEIVED_PCT
0..100
TLC_INFORMATION_RCD
loss
DELIVERED_WATT_CU
DELIVERED_VAR_CU
DELIVERED_WATT_FE
DELIVERED_VAR_FE
RECEIVED_WATT_CU
RECEIVED_VAR_CU
RECEIVED_WATT_FE
RECEIVED_VAR_FE
TLC_RCD
TR_CONFIGURE
0
1
2255
126
transformer
TLC_CONSTANTS
See TLC_COEFFICIENTS_RCD.
TLC_SUM
See TLC_INFORMATION_RCD.
Tables
ANSI C12.19-2008
: BOOL(0);
: BOOL(1);
: BOOL(2);
: BOOL(3);
: UINT(4..5);
: FILL(6..7);
127
ANSI C12.19-2008
Tables
Value
Definition
FALSE
REG_FUNC1_BFLD
SEASON_INFO_FIELD_FLAG
TRUE
DATE_TIME_FIELD_FLAG
FALSE
TRUE
DEMAND_RESET_CTR_FLAG
FALSE
TRUE
DEMAND_RESET_LOCK_FLAG
FALSE
TRUE
CUM_DEMAND_FLAG
FALSE
TRUE
CONT_CUM_DEMAND_FLAG
FALSE
TRUE
TIME_REMAINING_FLAG
FALSE
TRUE
REG_FUNC2_BFLD
SELF_READ_INHIBIT_OVERFLOW_FLAG
FALSE
TRUE
SELF_READ_SEQ_NBR_FLAG
FALSE
128
Tables
ANSI C12.19-2008
TRUE
DAILY_SELF_READ_FLAG
FALSE
TRUE
FALSE
TRUE
WEEKLY_SELF_READ_FLAG
SELF_READ_DEMAND_RESET
0
1
2
3
REGS_RCD
REG_FUNC1_FLAGS
See REG_FUNC1_BFLD.
REG_FUNC2_FLAGS
See REG_FUNC2_BFLD.
NBR_SELF_READS
0..255
NBR_SUMMATIONS
0..255
NBR_DEMANDS
0..255
NBR_COIN_VALUES
0..255
NBR_OCCUR
0..255
NBR_TIERS
0..255
129
ANSI C12.19-2008
130
Tables
NBR_PRESENT_DEMANDS
0..255
NBR_PRESENT_VALUES
0..255
Tables
9.3.2
ANSI C12.19-2008
Value
REG_FUNC1_BFLD
Definition
Redefines:
REG_FUNC1_BFLD.
DIM_REGS_TBL.
SEASON_INFO_FIELD_FLAG
FALSE
TRUE
DATE_TIME_FIELD_FLAG
FALSE
TRUE
DEMAND_RESET_CTR_FLAG
FALSE
TRUE
DEMAND_RESET_LOCK_FLAG
FALSE
TRUE
CUM_DEMAND_FLAG
FALSE
TRUE
CONT_CUM_DEMAND_FLAG
FALSE
TRUE
TIME_REMAINING_FLAG
FALSE
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
FALSE
TRUE
FALSE
TRUE
SELF_READ_DEMAND_RESET
0
1
2
3
REGS_RCD
REG_FUNC1_FLAGS
See REG_FUNC1_BFLD.
REG_FUNC2_FLAGS
See REG_FUNC2_BFLD.
NBR_SELF_READS
NBR_SUMMATIONS
DIM_REGS_TBL.
WEEKLY_SELF_READ_FLAG
132
0..255
Tables
ANSI C12.19-2008
NBR_DEMANDS
0..255
NBR_COIN_VALUES
0..255
NBR_OCCUR
0..255
NBR_TIERS
0..255
NBR_PRESENT_DEMANDS
0..255
NBR_PRESENT_VALUES
0..255
133
ANSI C12.19-2008
9.3.3
Tables
Value
Definition
DATA_SELECTION_RCD
SUMMATION_SELECT
DEMAND_SELECT
MIN_OR_MAX_FLAGS
FALSE
TRUE
134
COINCIDENT_SELECT
COIN_DEMAND_ASSOC
Tables
9.3.4
ANSI C12.19-2008
135
ANSI C12.19-2008
Tables
Value
COINCIDENTS_RCD
COINCIDENT_VALUES
Definition
Coincident
values
selected
by
DATA_SELECTION_TBL.COINCIDENT_SELE
CT (Table 22).
DEMANDS_RCD
EVENT_TIME
CUM_DEMAND
CONT_CUM_DEMAND
DEMAND
DATA_BLK_RCD
SUMMATIONS
DEMANDS
COINCIDENTS
REGISTER_DATA_RCD
NBR_DEMAND_RESETS
136
0..255
TOT_DATA_BLOCK
TIER_DATA_BLOCK
Tables
9.3.5
ANSI C12.19-2008
Value
Definition
REGISTER_INFO_RCD
END_DATE_TIME
SEASON
PREVIOUS_SEASON_DATA_RCD
REGISTER_INFO
See REGISTER_INFO_RCD.
PREV_SEASON_REG_DATA
137
ANSI C12.19-2008
9.3.6
Tables
Identifier
Definition
PREV_DEMAND_RESET_DATA_RCD
138
REGISTER_INFO
PREV_DEMAND_RESET_DATA
Tables
9.3.7
ANSI C12.19-2008
Value
Definition
SELF_READ_DATA_RCD
SELF_READ_SEQ_NBR
0..65535
REGISTER_INFO
139
ANSI C12.19-2008
Tables
SELF_READ_REGISTER_DATA
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
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
LAST_ENTRY_SEQ_NBR
0..65535
NBR_UNREAD_ENTRIES
0..255
SELF_READS_ENTRIES
140
Tables
9.3.8
ANSI C12.19-2008
Value
Definition
PRESENT_REGISTER_SELECT_RCD
PRESENT_DEMAND_SELECT
PRESENT_VALUE_SELECT
141
ANSI C12.19-2008
9.3.9
Tables
Value
Definition
PRESENT_DEMAND_RCD
TIME_REMAINING
DEMAND_VALUE
PRESENT_REGISTER_DATA_RCD
142
PRESENT_DEMAND
PRESENT_VALUE
Tables
ANSI C12.19-2008
: DISP_FLAG_BFLD;
: UINT16;
: UINT8;
: UINT16;
: UINT8;
: UINT16;
: UINT8;
Value
Definition
DISP_FLAG_BFLD
ON_TIME_FLAG
FALSE
TRUE
OFF_TIME_FLAG
FALSE
TRUE
143
ANSI C12.19-2008
Tables
HOLD_TIME_FLAG
FALSE
TRUE
DISP_RCD
DISPLAY_CTRL
NBR_DISP_SOURCES
0..65535
WIDTH_DISP_SOURCES
0..255
0..65535
0..255
0..65535
0..255
NBR_PRI_DISP_LIST_ITEMS
NBR_PRI_DISP_LISTS
NBR_SEC_DISP_LIST_ITEMS
NBR_SEC_DISP_LISTS
144
Tables
9.4.2
ANSI C12.19-2008
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
HOLD_TIME_FLAG
FALSE
Identifier
DISP_FLAG_BFLD
TRUE
DISP_RCD
DISPLAY_CTRL
NBR_DISP_SOURCES
0..65535
WIDTH_DISP_SOURCES
0..255
0..65535
0..255
0..65535
NBR_PRI_DISP_LIST_ITEMS
NBR_PRI_DISP_LISTS
NBR_SEC_DISP_LIST_ITEMS
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
Tables
9.4.3
ANSI C12.19-2008
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.
147
ANSI C12.19-2008
9.4.4
Tables
Value
Definition
DISP_SCROLL1_BFLD
ON_TIME
0..15
0..15
0..15
OFF_TIME
DISP_SCROLL2_BFLD
HOLD_TIME
148
Tables
ANSI C12.19-2008
DEFAULT_LIST
DISP_LIST_DESC_RCD
DISP_SCROLL1
DISP_SCROLL2
NBR_LIST_ITEMS
PRI_DISP_LIST_RCD
PRI_DISP_LIST
PRI_DISP_SOURCES
This
contains
the
HOLD_TIME
and
DEFAULT_LIST values for the associated list.
0..255
149
ANSI C12.19-2008
9.4.5
Tables
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
Tables
ANSI C12.19-2008
DISP_SCROLL1
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
151
ANSI C12.19-2008
Tables
Value
Definition
SECURITY_RCD
NBR_PASSWORDS
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
Tables
ANSI C12.19-2008
NBR_PERM_USED
0..65535
153
ANSI C12.19-2008
9.5.2
Tables
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
KEY_LEN
0..255
NBR_PERM_USED
0..65535
Tables
9.5.3
ANSI C12.19-2008
Value
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
permissions
bits
for
this
Tables
9.5.4
ANSI C12.19-2008
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.
for
157
ANSI C12.19-2008
READ
WRITE
DEFAULT_ACCESS_RCD
TABLE_DEFAULT
PROCEDURE_DEFAULT
158
Tables
Tables
9.5.5
ANSI C12.19-2008
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
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.
159
ANSI C12.19-2008
Tables
TRUE
FLAG3
ACCESS_CONTROL_ENTRY_RCD
ACCESS_TABLE_DEF
Reserved.
Table identification and public access control.
READ
WRITE
ACCESS_CONTROL_RCD
ACCESS_CONTROL
160
Tables
9.5.6
ANSI C12.19-2008
Value
KEY_ENTRY_RCD
KEY
KEY_RCD
KEY_ENTRIES
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
Tables
ANSI C12.19-2008
TM_ZN_APPLIED_FLAG
True
True
False
DST_APPLIED_FLAG
True
False
False
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
Tables
9.6.1
ANSI C12.19-2008
Value
Definition
TIME_FUNC_FLAG1_BFLD
TOU_SELF_READ_FLAG
FALSE
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
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
0..15
0..12
13..15
TIME_TOU_RCD
TIME_FUNC_FLAG1
TIME_FUNC_FLAG2
CALENDAR_FUNC
schedules
NBR_NON_RECURR_DATES 0..255
NBR_RECURR_DATES
0..255
NBR_TIER_SWITCHES
0..65535
CALENDAR_TBL_SIZE
0..65535
Decade 5: Time-of-Use Tables / Table 50 Time and TOU Dimension Limits Table
167
ANSI C12.19-2008
9.6.2
Tables
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
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
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
NBR_RECURR_DATES
0..255
NBR_TIER_SWITCHES
0..65535
CALENDAR_TBL_SIZE
0..65535
Decade 5: Time-of-Use Tables / Table 51 Actual Time and TOU Limiting Table
Tables
9.6.3
ANSI C12.19-2008
Value
TIME_DATE_QUAL_BFLD
DAY_OF_WEEK
0
1
2
3
4
5
6
7
DST_FLAG
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
Tables
9.6.4
ANSI C12.19-2008
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
STD_TIME_EFF
173
ANSI C12.19-2008
Tables
174
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.
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.
Tables
ANSI C12.19-2008
DEMAND_RESET_FLAG
31
End Of List.
FALSE
TRUE
SELF_READ_FLAG
FALSE
TRUE
RECURR_DATE_RCD
RECURR_DATE
CALENDAR_ACTION
NON_RECURR_DATE_RCD
NON_RECURR_DATE
CALENDAR_ACTION
TIER_SWITCH_BFLD
NEW_TIER
0..7
SUMMATION_SWITCH_FLAG
FALSE
TRUE
DEMANDS_SWITCH_FLAG
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
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
Tables
ANSI C12.19-2008
RECURR_DATES
TIER_SWITCHES
DAILY_SCHEDULE_ID_MATRIX
179
ANSI C12.19-2008
9.6.6
Tables
Value
STATUS_BFLD
180
Definition
The status of the active TOU tier.
CURR_SUMM_TIER
0..7
CURR_DEMAND_TIER
0..7
CURR_TIER
0..7
Tables
ANSI C12.19-2008
ACT_TIME_TOU_TBL.
SEPARATE_SUM_DEMANDS_FLAG
51) = FALSE.
TIER_DRIVE
(Table
1..3
SPECIAL_SCHD_ACTIVE
0..11
12..14
15
SEASON
0..15
CLOCK_STATE_RCD
CLOCK_CALENDAR
that
is
TIME_DATE_QUAL
See CLOCK_TBL.TIME_DATE_QUAL_BFLD.
STATUS
See STATUS_BFLD.
181
ANSI C12.19-2008
9.6.7
Tables
Value
Definition
TIME_REMAIN_RCD
SUMM_TIER_TIME_REMAIN
0..65535
DEMAND_TIER_TIME_REMAIN 0..65535
TIER_TIME_REMAIN
0..65535
SELF_READ_DAYS_REMAIN 0..255
9.6.8
182
Tables
ANSI C12.19-2008
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.
183
ANSI C12.19-2008
Tables
184
Decade 6: Load Profile Tables / Table 60 Load Profile Dimension Limits Table
Tables
ANSI C12.19-2008
: 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
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
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
TRUE
INV_UINT16_FLAG
FALSE
TRUE
Decade 6: Load Profile Tables / Table 60 Load Profile Dimension Limits Table
187
ANSI C12.19-2008
Tables
LP_SET_RCD
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
NBR_BLK_INTS_SET1
0..65535
NBR_CHNS_SET1
0..255
MAX_INT_TIME_SET1
0..255
NBR_BLKS_SET2
0..65535
NBR_BLK_INTS_SET2
0..65535
NBR_CHNS_SET2
0..255
MAX_INT_TIME_SET2
0..255
NBR_BLKS_SET3
0..65535
NBR_BLK_INTS_SET3
0..65535
NBR_CHNS_SET3
0..255
Decade 6: Load Profile Tables / Table 60 Load Profile Dimension Limits Table
Tables
ANSI C12.19-2008
MAX_INT_TIME_SET3
0..255
NBR_BLKS_SET4
0..65535
NBR_BLK_INTS_SET4
0..65535
NBR_CHNS_SET4
0..255
MAX_INT_TIME_SET4
0..255
Decade 6: Load Profile Tables / Table 60 Load Profile Dimension Limits Table
189
ANSI C12.19-2008
9.7.2
Tables
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
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
Decade 6: Load Profile Tables / Table 61 Actual Load Profile Limiting Table
191
ANSI C12.19-2008
Tables
INV_UINT8_FLAG
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
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
use
NBR_BLK_INTS_SET1
0..65535
NBR_CHNS_SET1
0..255
MAX_INT_TIME_SET1
0..255
NBR_BLKS_SET2
0..65535
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
NBR_CHNS_SET2
0..255
MAX_INT_TIME_SET2
0..255
NBR_BLKS_SET3
0..65535
NBR_BLK_INTS_SET3
0..65535
NBR_CHNS_SET3
0..255
MAX_INT_TIME_SET3
0..255
NBR_BLKS_SET4
0..65535
NBR_BLK_INTS_SET4
0..65535
NBR_CHNS_SET4
0..255
MAX_INT_TIME_SET4
0..255
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
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
LP_CTRL_FLAGS_BFLD
END_RDG_FLAG
TRUE
LP_SOURCE_SEL_RCD
CHNL_FLAG
LP_SOURCE_SELECT
END_BLK_RDG_SOURCE_SELECT
INT_FMT_ENUM
1
2
4
8
16
32
64
128
DATA_SELECTION_RCD
LP_SEL_SET1
195
ANSI C12.19-2008
196
Tables
INT_FMT_CDE1
SCALARS_SET1
DIVISORS_SET1
LP_SEL_SET2
INT_FMT_CDE2
SCALARS_SET2
DIVISORS_SET2
LP_SEL_SET3
INT_FMT_CDE3
SCALARS_SET3
DIVISORS_SET3
LP_SEL_SET4
INT_FMT_CDE4
SCALARS_SET4
DIVISORS_SET4
Tables
9.7.4
ANSI C12.19-2008
197
ANSI C12.19-2008
Tables
Value
Definition
LP_SET_STATUS_BFLD
ORDER
0
1
OVERFLOW_FLAG
FALSE
TRUE
LIST_TYPE
0
1
BLOCK_INHIBIT_OVERFLOW_FLAG
The
same
value
as
ACT_LP_TBL.
LP_SETn_INHIBIT_OVF_FLAG.
INTERVAL_ORDER
0
1
ACTIVE_MODE_FLAG
FALSE
TRUE
TEST_MODE
0
1
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
Tables
ANSI C12.19-2008
LAST_BLOCK_ELEMENT
0..65535
LAST_BLOCK_SEQ_NBR
0..4294967295
NBR_UNREAD_BLOCKS
0..65535
NBR_VALID_INT
0..65535
LP_STATUS_RCD
LP_STATUS_SET1
LP_STATUS_SET2
LP_STATUS_SET3
LP_STATUS_SET4
199
ANSI C12.19-2008
9.7.5
Tables
: 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
CHANNEL_STATUS_ENUM
Decade 6: Load Profile Tables / Table 64 Load Profile Data Set One Table
201
ANSI C12.19-2008
Tables
EXTENDED_INT_STATUS_BFLD
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
CHANNEL_STATUS_EVEN
CHANNEL_STATUS_ODD
INT_SET1_RCD
EXTENDED_INT_STATUS
202
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
READINGS_RCD
BLOCK_END_READ
BLOCK_END_PULSE
LP_BLK1_DAT_RCD
BLK_END_TIME
END_READINGS
SIMPLE_INT_STATUS
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
Decade 6: Load Profile Tables / Table 64 Load Profile Data Set One Table
Tables
9.7.6
ANSI C12.19-2008
: 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
READINGS_RCD
BLOCK_END_READ
BLOCK_END_PULSE
LP_BLK2_DAT_RCD
206
BLK_END_TIME
END_READINGS
SIMPLE_INT_STATUS
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
Decade 6: Load Profile Tables / Table 65 Load Profile Data Set Two Table
207
ANSI C12.19-2008
9.7.7
Tables
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
INT_DATA
READINGS_RCD
BLOCK_END_READ
BLOCK_END_PULSE
LP_BLK3_DAT_RCD
BLK_END_TIME
END_READINGS
SIMPLE_INT_STATUS
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
Decade 6: Load Profile Tables / Table 66 Load Profile Data Set Three Table
Tables
9.7.8
ANSI C12.19-2008
: 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
INT_DATA
READINGS_RCD
BLOCK_END_READ
BLOCK_END_PULSE
LP_BLK4_DAT_RCD
212
BLK_END_TIME
END_READINGS
Decade 6: Load Profile Tables / Table 67 Load Profile Data Set Four Table
Tables
ANSI C12.19-2008
SIMPLE_INT_STATUS
LP_INT
LP_DATA_SET4_RCD
LP_DATA_SET4
Decade 6: Load Profile Tables / Table 67 Load Profile Data Set Four Table
213
ANSI C12.19-2008
Tables
Value
EVENT_CODES_ENUM
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.
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
215
ANSI C12.19-2008
Tables
74
75
76
77.. 2047
9.8.1
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
METROLOGICAL_SIG_FLAG
FALSE
TRUE
PROGRAM_SIG_FLAG
FALSE
TRUE
ALTERNATE_SIG_FLAG
FALSE
TRUE
SECURED_REGISTER_FLAG
FALSE
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
NBR_MFG_EVENTS
0..255
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
NBR_EVENT_ENTRIES
0..65535
EXT_LOG_FLAGS
See EXT_LOG_FLAGS_BFLD.
NBR_PROGRAM_TABLES
218
0..65535
Decade 7: History & Event Logs / Table 70 Log Dimension Limits Table
Tables
9.8.2
ANSI C12.19-2008
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
EVENT_INHIBIT_OVF_FLAG
FALSE
TRUE
EXT_LOG_FLAGS_BFLD
METROLOGICAL_SIG_FLAG
FALSE
Decade 7: History & Event Logs / Table 71 Actual Log Limiting Table
219
ANSI C12.19-2008
Tables
TRUE
FALSE
PROGRAM_SIG_FLAG
TRUE
ALTERNATE_SIG_FLAG
FALSE
TRUE
SECURED_REGISTER_FLAG
LOG_RCD
LOG_FLAGS
220
NBR_STD_EVENTS
0..255
set
NBR_MFG_EVENTS
0..255
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
NBR_EVENT_ENTRIES
0..65535
EXT_LOG_FLAGS
NBR_PROGRAM_TABLES
See EXT_LOG_FLAGS_BFLD.
0..65535
Decade 7: History & Event Logs / Table 71 Actual Log Limiting Table
221
ANSI C12.19-2008
9.8.3
Tables
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.
Tables
9.8.4
ANSI C12.19-2008
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
Decade 7: History & Event Logs / Table 73 History Log Control Table
Tables
9.8.5
ANSI C12.19-2008
Value
Definition
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
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
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.
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.
EVENT_NUMBER
0..65535
HISTORY_SEQ_NBR
0..65535
USER_ID
0..65535
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
HISTORY_LOG_RCD
HIST_FLAGS
See LIST_STATUS_BFLD.
NBR_VALID_ENTRIES
0..65535
LAST_ENTRY_ELEMENT
0..65535
LAST_ENTRY_SEQ_NBR
NBR_UNREAD_ENTRIES
0..65535
ENTRIES
Decade 7: History & Event Logs / Table 74 History Log Data Table
227
ANSI C12.19-2008
9.8.6
Tables
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
Decade 7: History & Event Logs / Table 75 Event Log Control Table
229
ANSI C12.19-2008
9.8.7
Tables
Value
Definition
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
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
MFG_FLAG
FALSE
TRUE
SELECTOR
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.
3..15
Reserved.
EVENT_ENTRY_RCD
EVENT_TIME
EVENT_NUMBER
0..65535
EVENT_SEQ_NBR
0..65535
USER_ID
0..65535
Decade 7: History & Event Logs / Table 76 Event Log Data Table
231
ANSI C12.19-2008
Tables
EVENT_ARGUMENT
EVENT_LOG_RCD
EVENT_FLAGS
NBR_VALID_ENTRIES
0..65535
LAST_ENTRY_ELEMENT
0..65535
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
Decade 7: History & Event Logs / Table 76 Event Log Data Table
Tables
9.8.8
ANSI C12.19-2008
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
MFG_TBLS_SEL
SIG_ENABLE_RCD
METROLOGICAL_SEL
EVENTLOG_SEL
234
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
ALTERNATE_SEL
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
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
238
Decade 7: History & Event Logs / Table 78 End Device Program State Table
Tables
ANSI C12.19-2008
ALTERNATE_SIG
TABLE_LIST
Decade 7: History & Event Logs / Table 78 End Device Program State Table
239
ANSI C12.19-2008
Tables
Value
Definition
EVENT_COUNTER_RCD
CALIBRATION_COUNTER
0..65535
PROGRAM_COUNTER
240
0..65535
Tables
ANSI C12.19-2008
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
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
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).
243
ANSI C12.19-2008
9.9.2
Tables
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.
0.. 65535
UDT_FUNC_CTRL
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
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
used
to
size
used
to
size
used
to
size
used
to
size
0..4294967295
0..4294967295
0..4294967295
0..4294967295
245
ANSI C12.19-2008
9.9.3
Tables
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
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
INDEX
COUNT
UDT_LIST_SEL_RCD
UDT_LIST
0..65535
247
ANSI C12.19-2008
9.9.4
Tables
Value
Definition
UDT_SETS_RCD
FIRST_ITEM_NBR
0..65535
LAST_ITEM_NBR
0..65535
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.
Tables
9.9.5
ANSI C12.19-2008
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).
249
ANSI C12.19-2008
9.9.6
Tables
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).
Tables
9.9.7
ANSI C12.19-2008
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).
251
ANSI C12.19-2008
9.9.8
Tables
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).
Tables
9.9.9
ANSI C12.19-2008
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).
253
ANSI C12.19-2008
Tables
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).
Tables
ANSI C12.19-2008
Value
Definition
TELEPHONE_FLAGS_BFLD
ANSWER_FLAG
FALSE
TRUE
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
NBR_ORIGINATE_WINDOWS 0..255
NBR_SETUP_STRINGS
0..255
SETUP_STRING_LENGTH
0..255
PREFIX_LENGTH
0..255
NBR_ORIGINATE_NUMBERS 0..7
8..255
256
Tables
ANSI C12.19-2008
PHONE_NUMBER_LENGTH
0..255
NBR_RECURRING_DATES
0..255
NBR_NON_RECURRING_DATES
0..255
NBR_EVENTS
0..255
NBR_WEEKLY_SCHEDULES 0..255
NBR_ANSWER_WINDOWS
0..255
NBR_CALLER_IDS
0..255
CALLER_ID_LENGTH
0..255
257
ANSI C12.19-2008
Tables
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).
Tables
ANSI C12.19-2008
EXTENDED_STATUS
TRUE
FALSE
TRUE
TELEPHONE_RCD
Redefines:
DIM_TELEPHONE_TBL.TELEPHONE_RCD.
See TELEPHONE_FLAGS_BFLD.
TELEPHONE_FLAGS
NBR_ORIGINATE_WINDOWS 0..255
NBR_SETUP_STRINGS
0..255
SETUP_STRING_LENGTH
0..255
PREFIX_LENGTH
0..255
NBR_ORIGINATE_NUMBERS 0..7
8..255
window
PHONE_NUMBER_LENGTH
0..255
NBR_RECURRING_DATES
0..255
NBR_NON_RECURRING_DATES
0..255
NBR_EVENTS
0..255
NBR_WEEKLY_SCHEDULES 0..255
NBR_ANSWER_WINDOWS
0..255
NBR_CALLER_IDS
0..255
CALLER_ID_LENGTH
0..255
window
259
ANSI C12.19-2008
Tables
Identifier
SETUP_STRING_RCD
SETUP_STRING
GLOBAL_PARAMETERS_RCD
PSEM_IDENTITY
Definition
Modem setup string used to configure the
modem.
0..255
260
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
261
ANSI C12.19-2008
Tables
262
Decade 9: Telephone Control Tables / Table 93 Telephone Call Originate Parameters Table
Tables
ANSI C12.19-2008
Definition
FALSE
TRUE
MONDAY
FALSE
TRUE
TUESDAY
FALSE
TRUE
WEDNESDAY
FALSE
TRUE
THURSDAY
FALSE
TRUE
FRIDAY
FALSE
TRUE
SATURDAY
FALSE
TRUE
Identifier
DAYS_BFLD
SUNDAY
WINDOW_RCD
BEGIN_WINDOW_TIME
WINDOW_DURATION
WINDOW_DAYS
PHONE_NUMBER_RCD
PHONE_NUMBER
PHONE_NUMBERS_RCD
PREFIX
PHONE_NUMBERS
ORIGINATE_PARAMETERS_RCD
ORIGINATE_BIT_RATE
DIAL_DELAY
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
ANSWER_TIMEOUT
0..255
RETRY_INTERVAL
0..65535
MAX_RETRIES
0..255
264
Decade 9: Telephone Control Tables / Table 93 Telephone Call Originate Parameters Table
Tables
ANSI C12.19-2008
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
FALSE
TRUE
call
originate
START_TIME
ORIGINATE_CTRL
See CTRL_BFLD.
NON_RECURRING_DATES_RCD
ORIGINATE_DATE
266
Definition
START_TIME
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
START_TIME
ORIGINATE_CTRL
See CTRL_BFLD.
ORIGINATE_SCHEDULE_RCD
S_ANCHOR_DATE
RECURRING_DATES
NON_RECURING_DATES
EVENTS
WEEKLY_SCHEDULES
Decade 9: Telephone Control Tables / Table 94 Telephone Call Originate Schedule Table
267
ANSI C12.19-2008
Tables
: 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
ANSWER_PARAMETERS_RCD
ANSWER_BIT_RATE
268
Definition
Tables
ANSI C12.19-2008
LOCKOUT_DELAY
0..255
RETRY_ATTEMPTS
0..255
RETRY_LOCKOUT_TIME
0..255
NBR_RINGS
0..255
NBR_RINGS_OUTSIDE
0..255
CALLER_IDS
WINDOWS
security
269
ANSI C12.19-2008
Tables
Identifier
CALL_PURPOSE_BFLD
POWER_OUTAGE
POWER_RESTORAL
SCHEDULED_CALL
STATUS_CALL
IMMEDIATE_CALL
MANUFACTURER_PURPOSES
0..15
270
Definition
Tables
ANSI C12.19-2008
CALL_PURPOSE_RCD
CALL_PURPOSE
See CALL_PURPOSE_BFLD.
CALL_TRIGGER_STATUS
IDENT
271
ANSI C12.19-2008
Tables
Identifier
EXTENDED_STATUS_RCD
CALL_PURPOSE
CALL_TRIGGER_STATUS
LAST_CALL_TIME
CALL_STATUS_RCD
CALL_STATUS_ARRAY
272
Definition
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.
273
ANSI C12.19-2008
Tables
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
NON_RECURRING_STATUS
WEEKLY_STATUS
Tables
ANSI C12.19-2008
CALL_TRIGGER_STATUS
WINDOW_STATUS
NEXT_RECURRING_DATE
NEXT_WEEKLY_SCHEDULE
275
ANSI C12.19-2008
Tables
276
Tables
ANSI C12.19-2008
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.
277
ANSI C12.19-2008
Tables
Value
DIM_LOAD_CONTROL_BFLD
DURATION_SUPPORTED_FLAG
FALSE
TRUE
RANDOMIZATION_SUPPORTED_FLAG
FALSE
TRUE
278
Definition
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
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
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
NBR_OF_CONDITIONS
0..255
NBR_OF_CONSUMPTIONS
0..255
SLM_CONDITION_LEN
0..65535
SLM_EQUATION_LEN
0..65535
Decade 11: Load Control and Pricing Tables / Table 110 Load Control Dimension Limits Table
Tables
ANSI C12.19-2008
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
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
Decade 11: Load Control and Pricing Tables / Table 111 Actual Load Control Limiting Table
281
ANSI C12.19-2008
Tables
DIM_LOAD_CONTROL_RCD
Redefines:
DIM_LOAD_CONTROL_TBL.
DIM_LOAD_CONTROL_RCD.
See DIM_LOAD_CONTROL_BFLD.
DIM_LOAD_CONTROL
NBR_OF_CONTROL_POINTS 0..255
NBR_RECURRING_DATES
0..255
NBR_NON_RECURRING_DATES
0..255
NBR_EVENTS
0..255
NBR_OF_WEEKLY_SCHEDULES
0..255
282
NBR_OF_CONDITIONS
0..255
NBR_OF_CONSUMPTIONS
0..255
SLM_CONDITION_LEN
0..65535
SLM_EQUATION_LEN
0..65535
Decade 11: Load Control and Pricing Tables / Table 111 Actual Load Control Limiting Table
Tables
ANSI C12.19-2008
Value
Definition
FALSE
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
REQUESTED_LEVEL
0..100
OUTPUT_LEVEL
0..100
SENSED_LEVEL
0..100
DURATION_COUNT_DOWN
RANDOMIZATION_COUNT_DOWN
LC_STATUS_RCD
STATUS_ENTRIES
284
means off).
Control points are controlled with a percentage
(0 to 100%).
Decade 11: Load Control and Pricing Tables / Table 112 Load Control Status
Tables
ANSI C12.19-2008
Value
LC_CONFIGURATION_ENTRY_BFLD
MANUAL_OVERRIDE_ENABLE_FLAG
FALSE
TRUE
MANUAL_TURN_ON_ENABLE_FLAG
FALSE
TRUE
Definition
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
MINIMUM_ON_TIME
MINIMUM_OFF_TIME
CONFIGURATION
See LC_CONFIGURATION_ENTRY_BFLD..
LC_CONFIGURATION_RCD
CONFIGURATION
286
Decade 11: Load Control and Pricing Tables / Table 113 Load Control Configuration
Tables
ANSI C12.19-2008
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
LC_TIME
DIRECTIVE
LC_NON_RECURRING_DATES_RCD
LC_DATE
LC_TIME
DIRECTIVE
LC_EVENTS_RCD
ED_STD_STATUS1
ED_STD_STATUS2
ED_MFG_STATUS
DIRECTIVE
LC_SCHEDULES_BFLD
SUNDAY_FLAG
MONDAY_FLAG
288
Definition
FALSE
TRUE
FALSE
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
WEDNESDAY_FLAG
FALSE
TRUE
THURSDAY_FLAG
FALSE
TRUE
FRIDAY_FLAG
FALSE
TRUE
SATURDAY_FLAG
FALSE
TRUE
LC_SCHEDULE_RCD
DAYS
LC_TIME
DIRECTIVE
LC_SCHEDULES_RCD
ANCHOR_DATE
RDATES
DATES
EVENTS
Array of events
directives.
WEEKLY_SCHEDULES
that
Decade 11: Load Control and Pricing Tables / Table 114 Load Control Schedule
289
ANSI C12.19-2008
Tables
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
CONDITION_MONTH_ENUM
0
1
2
3
4
5
6
7
8
9
10
11
12
13..15
SOURCE_CONDITION_RCD
SOURCE
OPERATOR
See OPERATOR_ENUM.
SOURCE_VALUE
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
START_TIME
END_TIME
LC_CONDITION_RCD
SOURCE_CONDITION
TIER_CONDITION
DATE_CONDITION
TIME_CONDITION
SLM_CONDITION
DIRECTIVE
LC_CONDITIONS_RCD
CONDITIONS
292
Unassigned.
Condition
TIME_CONDITION.
Start day for this period.
Tier
that
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
Identifier
PREPAYMENT_HISTORY_RCD
PP_DATE
PERIOD
Duration reported.
CONSUMPTION_LCU
PREPAYMENT_STATUS_RCD
REMAINING_CREDIT
294
Definition
ACTUAL_CONSUMPTION
AVERAGE_PER_DAY
Decade 11: Load Control and Pricing Tables / Table 116 Prepayment Status
Tables
ANSI C12.19-2008
HISTORY_CONSUMPTION
Decade 11: Load Control and Pricing Tables / Table 116 Prepayment Status
295
ANSI C12.19-2008
Tables
Value
Definition
PREPAYMENT_CONTROL_RCD
PRE_WARNING_LIMIT
0..255
WARNING_LIMIT
0.255
296
OVERDRAFT_LIMIT
DIRECTIVE
Decade 11: Load Control and Pricing Tables / Table 117 Prepayment Control
Tables
ANSI C12.19-2008
: 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
TIER_PRICING_RCD
SUMMATIONS_PRICING
DEMAND_PRICING
SEASON_PRICING_RCD
TIER_PRICING
BILLING_CONTROL_RCD
DAILY_FIXED_CHARGE
TAXES
CONDITION_ON_SOURCE
LIMIT
ACTION
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
300
Tables
ANSI C12.19-2008
301
ANSI C12.19-2008
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
Tables
ANSI C12.19-2008
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
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
NBR_CONSTANTS
0..65535
NBR_LABEL_CHARS
0..255
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
Value
EUDT_BFLD
Redefines: DIM_EUDT_TBL.EUDT_BFLD.
DATA_ACCESS_METHOD
INDEX_DEPTH
1..9
0
EUDT_LIMITS_RCD
EUDT_CTRL
NBR_EUDT
Definition
See EUDT_BFLD.
0..2039
2040..65535
NBR_INSTANCES
0..65535
NBR_SELECTIONS
0..65535
NBR_CONSTANTS
0..65535
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
306Decade 14: Extended User-defined Tables / Table 141 Extended User-defined Tables Actual Limits Table
Tables
ANSI C12.19-2008
: 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
Identifier
Definition
EUDT_MAPPING_BFLD
FORMAL_UNIT_SIZE
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
FALSE
TRUE
FORMAL_PADDING
Reserved.
FORMAL_LIMITED_FLAG
FORMAL_NUMERIC_FLAG
Reserved.
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
Start of a UINT16.
First member of a BIT FIELD OF UINT16 or a
non-bit-field member.
Start of a UINT32.
First member of a BIT FIELD OF UINT32 or a
non-bit-field member.
Start of a UINT64.
First member of a BIT FIELD OF UINT64 or a
non-bit-field member.
6..7
Reserved.
0..65535
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
EUDT_ELEMENT_NAME
FORMAL_TABLE_ID
FORMAL_INSTANCE_NBR
0.. 65535
EUDT_MAPPING
FORMAL_BYTE_OFFSET
0..16777215
FORMAL_OFFSET_NEXT
0..16777215
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
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
312
Decade 14: Extended User-defined Tables / Table 142 Extended User-defined Selections Table
Tables
ANSI C12.19-2008
FORMAL_BIT_COUNT
0..65535
FORMAL_REPEAT_COUNT
0..65535
TABLE_SELECTIONS_RCD
EUDT_ID
SELECTIONS
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
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
316
The
Tables
ANSI C12.19-2008
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
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
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).
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
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
Tables
ANSI C12.19-2008
LAST_ENTRY_ELEMENT
0..65535
LAST_ENTRY_SEQ_NBR
0..4294967295
NBR_UNREAD_ENTRIES
0..65535
NBR_VALID_INT
0..65535
: 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);
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
Tables
ANSI C12.19-2008
FALSE
TRUE
INHIBIT_OVF_TD_ASYNC_FLAG
FALSE
TRUE
NOTIFY_OVF_TD_ASYNC_FLAG
FALSE
TRUE
TD_SCALAR_DIVISOR_FLAG
FALSE
TRUE
INHIBIT_OVF_FD_ASYNC_FLAG
FALSE
TRUE
NOTIFY_OVF_FD_ASYNC_FLAG
FALSE
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
Tables
ANSI C12.19-2008
FALSE
TRUE
SCALAR_DIVISOR_FD_PERIODIC_FLAG
FALSE
TRUE
REPEAT_TD_FLAG
FALSE
TRUE
REPEAT_FD_FLAG
FALSE
TRUE
FD_COMPLEX_FLAG
counted
domain)
counted
domain)
FD_PHASOR_FLAG
FALSE
323
ANSI C12.19-2008
Tables
TRUE
QUALITY_RESET_CTR_FLAG
INCIDENT_SORTABLE_FLAG
FALSE
TRUE
COMMON_SAMPLING_RATE_FLAG
FALSE
TRUE
COMMON_NBR_OF_SAMPLES_FLAG
FALSE
TRUE
INTERHARMONICS_FLAG
FALSE
TRUE
324
to
store
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
FEATURES
NBR_OF_EVENT_IDS
See QS_FEATURES_BFLD.
0..65535
325
ANSI C12.19-2008
Tables
NBR_OF_EVENTS
0..65535
NBR_OF_INCIDENTS
0..65535
NBR_OF_COINCIDENT_VALUES
0..65535
WAVEFORM_FORMATS
See WAVEFORM_FORMATS_BFLD.
TD_SAMPLING_RATE
NBR_OF_TD_SAMPLES
NBR_OF_TD_BLOCKS
0..65535
NBR_OF_TD_CHANNELS
Maximum
1..65535
NBR_OF_TD_CHANNELS_PER_BLOCK
0..65535
NBR_OF_TD_SAMPLES_PER_BLOCK
0..65535
NBR_OF_TD_PREFETCH_SAMPLES
326
Tables
ANSI C12.19-2008
0..4294967295 Maximum number of samples that the End
Device can capture continuously just prior to the
asynchronous event that triggered a waveform
capture.
FD_SAMPLING_RATE
NBR_OF_FD_SAMPLES
NBR_OF_SPECTRAL_COMPONENTS
0..65535
NBR_OF_FD_BLOCKS
0..65535
NBR_OF_FD_CHANNELS
Maximum
number
of
frequency-domain
channels (independent sources) that the End
Device can capture per Quality-of-service event.
0
1..65535
NBR_OF_FD_CHANNELS_PER_BLOCK
0..65535
NBR_OF_FD_SPECTRA_PER_BLOCK
0..65535
of
capturing
Maximum
number
of
frequency-domain
channels (independent sources) that the End
Device can capture per Quality-of-service data
block.
This value shall be ignored if
NBR_OF_FD_CHANNELS = 0. Otherwise 0 <
NBR_OF_FD_CHANNELS_PER_BLOCK
<=
NBR_OF_FDS_CHANNELS.
Maximum number of frequency-domain spectral
components that the End Device reports per
Quality-of-service data block per channel. This
value shall be equal to the number of signal
spectral components desired + 1. Although this
value is numerically limited by the defining
unsigned integer type, practically, the maximum
spectral component possible shall be limited by
the Nyquist sampling frequency defined by
327
ANSI C12.19-2008
Tables
(sampling frequency / 2) in hertz (Hz). This will
avoid the appearance of false aliases in the
discrete Fourier transform of the waveform.
NBR_OF_FD_PREFETCH_SAMPLES
0..4294967295 Maximum number of samples that the End
Device can capture continuously just prior to the
asynchronous event that triggered a frequencydomain spectral capture.
LABEL_LENGTH
328
0..255
Tables
ANSI C12.19-2008
Value
QS_FEATURES_BFLD
Definition
Redefines:
DIM_QUALITY_OF_SERVICE_TBL.
QS_FEATURES_BFLD.
This bit field provides indications about the End
Device waveform capture actual capabilities.
INHIBIT_OVF_QS_LOG_FLAG
FALSE
TRUE
NOTIFY_OVF_QS_LOG_FLAG
INHIBIT_OVF_TD_ASYNC_FLAG
FALSE
TRUE
NOTIFY_OVF_TD_ASYNC_FLAG
329
ANSI C12.19-2008
Tables
system about
overflow.
FALSE
TRUE
the
TD_ASYNC_TBL
block
TD_SCALAR_DIVISOR_FLAG
FALSE
TRUE
INHIBIT_OVF_FD_ASYNC_FLAG
FALSE
TRUE
NOTIFY_OVF_FD_ASYNC_FLAG
FALSE
TRUE
SCALAR_DIVISOR_FD_ASYNC_FLAG
FALSE
TRUE
INHIBIT_OVF_TD_PERIODIC_FLAG
FALSE
TRUE
NOTIFY_OVF_TD_PERIODIC_FLAG
330
Tables
ANSI C12.19-2008
FALSE
TRUE
SCALAR_DIVISOR_TD_PERIODIC_FLAG
FALSE
TRUE
INHIBIT_OVF_FD_PERIODIC_FLAG
FALSE
TRUE
NOTIFY_OVF_FD_PERIODIC_FLAG
FALSE
TRUE
SCALAR_DIVISOR_FD_PERIODIC_FLAG
FALSE
TRUE
REPEAT_TD_FLAG
FALSE
TRUE
REPEAT_FD_FLAG
331
ANSI C12.19-2008
Tables
FALSE
TRUE
FD_COMPLEX_FLAG
FD_PHASOR_FLAG
QUALITY_RESET_CTR_FLAG
FALSE
TRUE
INCIDENT_SORTABLE_FLAG
FALSE
TRUE
COMMON_SAMPLING_RATE_FLAG
FALSE
TRUE
332
Tables
ANSI C12.19-2008
capture. All Quality-of-service events shall be
captured at the same sampling rate.
COMMON_NBR_OF_SAMPLES_FLAG
FALSE
TRUE
INTERHARMONICS_FLAG
TRUE
WAVEFORM_FORMATS_BFLD
FALSE
FALSE
TRUE
INV_UINT32_FLAG
FALSE
TRUE
INV_INT8_FLAG
TRUE
INV_UINT16_FLAG
FALSE
INV_UINT8_FLAG
FALSE
TRUE
333
ANSI C12.19-2008
Tables
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
FEATURES
See QS_FEATURES_BFLD.
NBR_OF_EVENT_IDS
0..65535
NBR_OF_EVENTS
0..65535
NBR_OF_INCIDENTS
0..65535
NBR_OF_COINCIDENT_VALUES
0..65535
WAVEFORM_FORMATS
See WAVEFORM_FORMATS_BFLD.
TD_SAMPLING_RATE
NBR_OF_TD_SAMPLES
334
Tables
ANSI C12.19-2008
NBR_OF_TD_BLOCKS
0..65535
NBR_OF_TD_CHANNELS
1..65535
NBR_OF_TD_CHANNELS_PER_BLOCK
0..65535
NBR_OF_TD_SAMPLES_PER_BLOCK
0..65535
NBR_OF_TD_PREFETCH_SAMPLES
0..4294967295 Actual maximum number of samples that the
End Device can capture continuously just prior
to the asynchronous event that triggered a
waveform capture.
FD_SAMPLING_RATE
NBR_OF_FD_SAMPLES
NBR_OF_SPECTRAL_COMPONENTS
0..65535
NBR_OF_FD_BLOCKS
0..65535
335
ANSI C12.19-2008
Tables
NBR_OF_FD_CHANNELS
1..65535
NBR_OF_FD_CHANNELS_PER_BLOCK
0..65535
NBR_OF_FD_SPECTRA_PER_BLOCK
0..65535
NBR_OF_FD_PREFETCH_SAMPLES
0..4294967295 Actual maximum number of samples that the
End Device can capture continuously just prior
to the asynchronous event that triggered a
frequency-domain capture.
LABEL_LENGTH
336
0..255
Tables
ANSI C12.19-2008
337
ANSI C12.19-2008
Tables
END;
NBR_OF_CHANNELS
: UINT8;
CHANNEL_SOURCE_ID
: ARRAY [
ACT_QUALITY_OF_SERVICE_TBL.NBR_OF_TD_CHANNELS]
OF WAVEFORM_CHANNEL_SOURCE_ID_RCD;
IF ACT_QUALITY_OF_SERVICE_TBL.FEATURES.REPEAT_TD_FLAG THEN
NBR_OF_WAVEFORM_REPEATS
: UINT16;
WAVEFORM_REPEAT_DELAY
: HTIME;
END;
END;
TYPE FD_CONTROL_RCD = PACKED RECORD
FREQUENCY_CAPTURE_TYPE: UINT8;
IF ACT_QUALITY_OF_SERVICE_TBL.FEATURES.COMMON_SAMPLING_RATE_FLAG
== FALSE THEN
SAMPLING_RATE
: NI_FMAT2;
END;
IF ACT_QUALITY_OF_SERVICE_TBL.FEATURES.COMMON_NBR_OF_SAMPLES_FLAG
== FALSE THEN
NBR_OF_SAMPLES
: UINT32;
NBR_OF_PREFETCH_SAMPLES
: UINT32;
NBR_OF_SPECTRAL_COMPONENTS : UINT16;
END;
NBR_OF_CHANNELS
: UINT8;
CHANNEL_SOURCE_ID
: ARRAY [
ACT_QUALITY_OF_SERVICE_TBL.NBR_OF_FD_CHANNELS]
OF WAVEFORM_CHANNEL_SOURCE_ID_RCD;
IF ACT_QUALITY_OF_SERVICE_TBL.FEATURES.REPEAT_FD_FLAG THEN
NBR_OF_WAVEFORM_REPEATS
: UINT16;
WAVEFORM_REPEAT_DELAY
: HTIME;
END;
DISCRETE_FREQUENCY_LIST : ARRAY[ACT_QUALITY_OF_SERVICE_TBL
.NBR_OF_SPECTRAL_COMPONENTS]
OF NI_FMAT2;
END;
TYPE QUALITY_DESC_RCD = PACKED RECORD
QUALITY_DESC_NAME :STRING(ACT_QUALITY_OF_SERVICE_TBL. LABEL_LENGTH);
SOURCE_ID
: STD.SOURCE_SELECT_RCD;
COINCIDENT_SOURCE_IDS : ARRAY [
ACT_QUALITY_OF_SERVICE_TBL.NBR_OF_COINCIDENT_VALUES]
OF STD.SOURCE_SELECT_RCD;
COINCIDENT_SOURCE_ENABLE_FLAGS: SET (
(ACT_QUALITY_OF_SERVICE_TBL.NBR_OF_COINCIDENT_VALUES
+
7)/8);
CAPTURE_CONTROL
: CAPTURE_CONTROL_BFLD;
IF GEN_CONFIG_TBL.STD_TBLS_USED[TD_ASYNC_TBL] THEN
TD_ASYNC_CONTROL : TD_CONTROL_RCD;
END;
338
Tables
ANSI C12.19-2008
IF GEN_CONFIG_TBL.STD_TBLS_USED[FD_ASYNC_TBL] THEN
FD_ASYNC_CONTROL : FD_CONTROL_RCD;
END;
IF GEN_CONFIG_TBL.STD_TBLS_USED[TIME_DOMAIN_TBL] THEN
TD_PERIODIC_INTERVAL
: UINT32;
TD_PERIODIC_WAVEFORM_CONTROL
: TD_CONTROL_RCD;
END;
IF GEN_CONFIG_TBL.STD_TBLS_USED[FREQUENCY_DOMAIN_TBL] THEN
FD_PERIODIC_INTERVAL
: UINT32;
FD_PERIODIC_WAVEFORM_CONTROL
: FD_CONTROL_RCD;
END;
NOMINAL_POSITIVE_LIMITS : NOMINAL_VALUE_RCD;
NOMINAL_NEGATIVE_LIMITS : NOMINAL_VALUE_RCD;
MIN_DURATION
EXCLUSION_DURATION
EXCLUSION_CONDITIONS
TRANSITION_CONDITIONS
: HTIME;
: HTIME;
:SET((ACT_QUALITY_OF_SERVICE_TBL
.NBR_OF_EVENT_IDS+7)/8);
:SET((ACT_QUALITY_OF_SERVICE_TBL
.NBR_OF_EVENT_IDS+7)/8);
END;
TYPE NOTIFY_OVERFLOW_CONTROL_RCD = PACKED RECORD
IF GEN_CONFIG_TBL.STD_TBLS_USED[QUALITY_LOG_TBL] &&
ACT_QUALITY_OF_SERVICE_TBL.FEATURES.NOTIFY_OVF_QS_LOG_FLAG
THEN
QS_LOG_CTRL
: STD.LIST_OVERFLOW_CONTROL_RCD;
END;
IF GEN_CONFIG_TBL.STD_TBLS_USED[TD_ASYNC_TBL] &&
ACT_QUALITY_OF_SERVICE_TBL.FEATURES.NOTIFY_OVF_TD_ASYNC_FLAG
THEN
TD_ASYNC_CTRL: STD.LIST_OVERFLOW_CONTROL_RCD;
END;
IF GEN_CONFIG_TBL.STD_TBLS_USED[FD_ASYNC_TBL] &&
ACT_QUALITY_OF_SERVICE_TBL.FEATURES.NOTIFY_OVF_FD_ASYNC_FLAG
THEN
FD_ASYNC_CTRL: STD.LIST_OVERFLOW_CONTROL_RCD;
END;
IF GEN_CONFIG_TBL.STD_TBLS_USED[TIME_DOMAIN_TBL] &&
ACT_QUALITY_OF_SERVICE_TBL.FEATURES.NOTIFY_OVF_TD_PERIODIC_FLAG
THEN
TD_PERIODIC_CTRL: STD.LIST_OVERFLOW_CONTROL_RCD;
END;
IF GEN_CONFIG_TBL.STD_TBLS_USED[FREQUENCY_DOMAIN_TBL] &&
ACT_QUALITY_OF_SERVICE_TBL.FEATURES.NOTIFY_OVF_FD_PERIODIC_FLAG
THEN
FD_PERIODIC_CTRL: STD.LIST_OVERFLOW_CONTROL_RCD;
END;
END;
TYPE QUALITY_CONTROL_RCD = PACKED RECORD
IF GEN_CONFIG_TBL.STD_TBLS_USED[TD_ASYNC_TBL] ||
339
ANSI C12.19-2008
Tables
GEN_CONFIG_TBL.STD_TBLS_USED[TIME_DOMAIN_TBL] THEN
TD_SAMPLES_FORMAT_CODE
: UINT8;
IF ACT_QUALITY_OF_SERVICE_TBL.
FEATURES.COMMON_SAMPLING_RATE_FLAG THEN
TD_SAMPLING_RATE
: NI_FMAT2;
END;
IF ACT_QUALITY_OF_SERVICE_TBL.
FEATURES.COMMON_NBR_OF_SAMPLES_FLAG THEN
NBR_OF_TD_SAMPLES
: UINT32;
NBR_OF_TD_PREFETCH_SAMPLES : UINT32;
END;
END;
IF GEN_CONFIG_TBL.STD_TBLS_USED[FD_ASYNC_TBL] ||
GEN_CONFIG_TBL.STD_TBLS_USED[FREQUENCY_DOMAIN_TBL] THEN
FD_SAMPLES_FORMAT_CODE
: UINT8;
IF ACT_QUALITY_OF_SERVICE_TBL.
FEATURES.COMMON_SAMPLING_RATE_FLAG THEN
FD_SAMPLING_RATE
: NI_FMAT2;
END;
IF ACT_QUALITY_OF_SERVICE_TBL.
FEATURES.COMMON_NBR_OF_SAMPLES_FLAG THEN
NBR_OF_FD_SAMPLES
: UINT32;
NBR_OF_FD_PREFETCH_SAMPLES : UINT32;
NBR_OF_SPECTRAL_COMPONENTS
: UINT16;
END;
END;
IF ACT_QUALITY_OF_SERVICE_TBL.FEATURES.INCIDENT_SORTABLE_FLAG THEN
INCIDENT_SORT_ORDER
: UINT8;
END;
NOTIFY_OVERFLOW_CONTROL
: NOTIFY_OVERFLOW_CONTROL_RCD;
QUALITY_DESC : ARRAY [ACT_QUALITY_OF_SERVICE_TBL.NBR_OF_EVENT_IDS] OF
QUALITY_DESC_RCD;
END;
TABLE 152 QUALITY_CONTROL_TBL = QUALITY_CONTROL_RCD;
Table 152 Element Descriptions
Identifier
Value
CAPTURE_CONTROL_BFLD
TD_FLAG
340
Definition
Tables
ANSI C12.19-2008
FD_FLAG
REPORT_ON_EXIT_FLAG
FALSE
TRUE
REPORT_ON_DETECT_FLAG
FALSE
TRUE
COMPARE_SIGNED_FLAG
FALSE
TRUE
COMPARE_PEAK_FLAG
FALSE
TRUE
COMPARE_RMS_FLAG
FALSE
TRUE
341
ANSI C12.19-2008
Tables
COMPARE_INCLUSIVE_FLAG
TRUE
REPEAT_FLAG
VALUE_REPORT_CTRL
NOMINAL_VALUE_RCD
342
7..15
Reserved.
Descriptor defining a measurement value and
the acceptable variations from that value. Also
see COMPARE_INCLUSIVE_FLAG.
Tables
ANSI C12.19-2008
NOMINAL_VALUE
LOW_SET_POINT
HIGH_SET_POINT
WAVEFORM_CHANNEL_SOURCE_ID_RCD
SOURCE_ID
SCALAR
DIVISOR
TD_CONTROL_RCD
343
ANSI C12.19-2008
Tables
TIME_CAPTURE_TYPE
2..255
Reserved.
SAMPLING_RATE
NBR_OF_SAMPLES
NBR_OF_PREFETCH_SAMPLES
NBR_OF_CHANNELS
CHANNEL_SOURCE_ID
NBR_OF_WAVEFORM_REPEATS
WAVEFORM_REPEAT_DELAY
Delay
period
between
additional
consecutive waveforms that are captured as a
result of this Quality-of-service event.
FD_CONTROL_RCD
344
Tables
ANSI C12.19-2008
FREQUENCY_CAPTURE_TYPE
Harmonics
The frequencies in the spectrum are
harmonically related. All frequencies are ordered
integral multiples of a reference fundamental
frequency. The harmonic frequency is implied
from the arrays positional index of spectral
component.
Interharmonics
The frequencies in the spectrum contain
interharmonic values. All frequencies are
ordered, but not necessarily as integral multiples
of a reference fundamental frequency. The
harmonic or interharmonic frequency is explicitly
included with the measurement of each spectral
component.
Discrete Spectra
The frequencies in the spectrum are specified
as a control list. The frequency is explicitly
included with the measurement of each spectral
component.
3..255 Reserved.
SAMPLING_RATE
NBR_OF_SAMPLES
NBR_OF_PREFETCH_SAMPLES
NBR_OF_SPECTRAL_COMPONENTS
345
ANSI C12.19-2008
Tables
to allow for the DC component (bias) to be
recorded as well. This value is common to all
channels associated with this entry. Note: This
value shall be less than or equal to
ACT_QUALITY_OF_SERVICE_TBL.NBR_OF_
SPECTRAL_COMPONENTS.
NBR_OF_CHANNELS
CHANNEL_SOURCE_ID
NBR_OF_WAVEFORM_REPEATS
WAVEFORM_REPEAT_DELAY
Delay
period
between
additional
consecutive waveforms that are captured as a
result of this Quality-of-service event.
DISCRETE_FREQUENCY_LIST
QUALITY_DESC_RCD
346
A single entry used to describe the Quality-ofservice processing criteria and event production
rules.
QUALITY_DESC_NAME
A
text
label
used
to
describe
a
QUALITY_DESC_RCD. The label text shall be
left justified and padded on the right with spaces
(20H). e.g., Let LABEL_LENGTH = 16 then a
QUALITY_DESC_NAME may be "VOLTAGE
SAG
.
SOURCE_ID
COINCIDENT_SOURCE_IDS
COINCIDENT_SOURCE_ENABLE_FLAGS
Tables
ANSI C12.19-2008
FALSE
TRUE
Corresponding
COINCIDENT_SOURCE_IDS
entry does not contain a valid source identifier.
Therefore, the corresponding measurement
shall be ignored.
Corresponding
COINCIDENT_SOURCE_IDS
entry is a valid source identifier. Therefore, the
corresponding measurement is meaningful.
CAPTURE_CONTROL
See CAPTURE_CONTROL_BFLD.
TD_ASYNC_CONTROL
FD_ASYNC_CONTROL
TD_PERIODIC_INTERVAL
TD_PERIODIC_WAVEFORM_CONTROL
FD_PERIODIC_INTERVAL
Frequency-domain
seconds.
FD_PERIODIC_WAVEFORM_CONTROL
NOMINAL_POSITIVE_LIMITS
NOMINAL_NEGATIVE_LIMITS
MIN_DURATION
EXCLUSION_DURATION
EXCLUSION_CONDITIONS
SET of flags that select positionally a Quality-ofservice source from this Table.
triggering
interval
in
347
ANSI C12.19-2008
Tables
FALSE
TRUE
TRANSITION_CONDITIONS
SET of flags that select positionally related rulechaining for Quality-of-service processing.
FALSE
TRUE
NOTIFY_OVERFLOW_CONTROL_RCD
QS_LOG_CTRL
TD_ASYNC_CTRL
FD_ASYNC_CTRL
TD_PERIODIC_CTRL
FD_PERIODIC_CTRL
QUALITY_CONTROL_RCD
348
Tables
ANSI C12.19-2008
among all Quality-of-service event reports and
event-specific settings.
TD_SAMPLES_FORMAT_CODE
A single code selecting the format for all timedomain waveform data. Possible values are as
per
LP_DATA_SET1_TBL.DATA_SELCTION_RC
D.INT_FMT_CDE1. This value is common to all
time-domain waveform captured sources and
channels.
TD_SAMPLING_RATE
NBR_OF_TD_SAMPLES
NBR_OF_TD_PREFETCH_SAMPLES
FD_SAMPLES_FORMAT_CODE
FD_SAMPLING_RATE
NBR_OF_FD_SAMPLES
349
ANSI C12.19-2008
Tables
NBR_OF_FD_PREFETCH_SAMPLES
NBR_OF_SPECTRAL_COMPONENTS
INCIDENT_SORT_ORDER
350
Tables
ANSI C12.19-2008
7..255 Reserved.
NOTIFY_OVERFLOW_CONTROL
QUALITY_DESC
351
ANSI C12.19-2008
Tables
Identifier
QUALITY_INCIDENTS_RCD
NBR_QUALITY_RESETS
352
Definition
Tables
ANSI C12.19-2008
QUALITY_EVENT_DATA
QUALITY_EVENT_RCD
TOTAL_NBR_OF_INCIDENTS
EVENT_DATA
EVENT_PAST_DATA_VALID_FLAGS
FALSE
Ignore measurement.
The EVENT_PAST_DATA entry in this table at
the corresponding array index does not contain
a valid value.
Valid measurement value.
The EVENT_PAST_DATA entry in this table at
the corresponding array index contains a valid
value.
TRUE
EVENT_PAST_DATA
QUALITY_ITEM_RCD
See
EVENT_START_TIME
EVENT_TIME_STAMP
QUALITY_LOG_SEQ_NBR
EVENT_VALUE
353
ANSI C12.19-2008
Tables
corresponding
entry
QUALITY_CONTROL_TBL
.CAPTURE_CONTROL_BFLD
.VALUE_REPORT_CTRL.
COINCIDENT_VALUE
354
in
Tables
ANSI C12.19-2008
Value
Definition
QUALITY_LOG_ENTRY_RCD
EVENT_START_TIME
EVENT_TIME_STAMP
355
ANSI C12.19-2008
Tables
EVENT_ID
Index
of
the
event
descriptor
in
QUALITY_CONTROL_TBL that was the source
of this entry.
TD_ASYNC_SEQ_NBR
FD_ASYNC_SEQ_NBR
EVENT_VALUE
COINCIDENT_VALUE
QUALITY_LOG_RCD
356
LIST_STATUS
See WAVEFORM_LIST_STATUS_RCD.
ENTRIES
Tables
ANSI C12.19-2008
OF
OF
357
ANSI C12.19-2008
Tables
358
Value
Definition
This element contains the block descriptor, and
status information.
ASSOCIATED_EVENT_ID
Index
into
QUALITY_CONTROL_TBL.
QUALITY_DESC that is associated with this
event.
ASSOCIATED_EVENT_SEQ_NBR
Event
sequence
number
of
QUALITY_LOG_TBL.
QUALITY_LOG_ENTRY_RCD.
EVENT_SEQ_NBR that is associated with this
waveform. This value shall be identical in all
blocks that carry samples and channels that
were triggered by the same Quality-of-service
event.
ASSOCIATED_EVENT_TIME_STAMP
Event
time
stamp
as
recorded
in
QUALITY_LOG_TBL.QUALITY_LOG_ENTRY_
RCD. EVENT_TIME_STAMP that is associated
with this waveform. This value shall be identical
in all blocks that carry samples and channels
that were triggered by the same Quality-ofservice event. This value also relates to the
sample time of the data sample that matches
EVENT_SAMPLE_OFFSET.
NBR_SAMPLES
NBR_CHANNELS
END_BLOCK_TIME_STAMP
BLOCK_CHANNEL_OFFSET
Tables
ANSI C12.19-2008
from
zero
(0)
to
ACT_QUALITY_OF_SERVICE_TBL.
NBR_OF_TD_CHANNELS-1,
as
NBR_OF_TD_CHANNELS may be greater than
NBR_OF_TD_CHANNELS_PER_BLOCK.
WAVEFORM_SEGMENT_NBR
EVENT_SAMPLE_OFFSET
SAMPLING_RATE
TD_CHANNELS_RCD
CHANNEL
TD_BLOCK_DATA_RCD
BLOCK_HEADER
See TD_BLOCK_HEADER_RCD.
SAMPLE_DATA
ASYNC_RCD
LIST_STATUS
See WAVEFORM_LIST_STATUS_RCD.
BLOCK_DATA
Array of TD_BLOCK_DATA_RCD.
359
ANSI C12.19-2008
Tables
360
Tables
ANSI C12.19-2008
OF
OF
END;
TYPE ASYNC_SPECTRA_RCD = PACKED RECORD
LIST_STATUS : WAVEFORM_LIST_STATUS_RCD;
BLOCK_DATA : ARRAY [ ACT_QUALITY_OF_SERVICE_TBL.NBR_OF_FD_BLOCKS] OF
FD_BLOCK_DATA_RCD;
END;
TABLE 156 FD_ASYNC_TBL = ASYNC_SPECTRA_RCD;
Table 156 Element Descriptions
Identifier
Value
FD_BLOCK_HEADER_RCD
Definition
This element contains the block descriptor, and
status information.
ASSOCIATED_EVENT_ID
Index
into
QUALITY_CONTROL_TBL.
QUALITY_DESC that is associated with this
event.
ASSOCIATED_EVENT_SEQ_NBR
Event
sequence
number
of
QUALITY_LOG_TBL.
QUALITY_LOG_ENTRY_RCD.
EVENT_SEQ_NBR that is associated with this
waveform. This value shall be identical in all
blocks that carry samples and channels that
were triggered by the same Quality-of-service
event.
ASSOCIATED_EVENT_TIME_STAMP
Event
time
stamp
as
recorded
in
QUALITY_LOG_TBL.QUALITY_LOG_ENTRY_
RCD.EVENT_TIME_STAMP that is associated
with this waveform. This value shall be identical
in all blocks that carry spectra from channels
that were triggered by the same Quality-ofservice event. This value also relates to the
sample time of the data sample that matches
EVENT_SAMPLE_OFFSET.
NBR_SPECTRAL_COMPONENTS
361
ANSI C12.19-2008
Tables
interharmonic, or discrete spectral components
including the DC (bias) value, if any.
NBR_CHANNELS
START_BLOCK_TIME_STAMP
END_BLOCK_TIME_STAMP
BLOCK_CHANNEL_OFFSET
SPECTRA_SEGMENT_NBR
EVENT_SAMPLE_OFFSET
SAMPLING_RATE
FD_ENTRY_RCD
362
FREQUENCY
REAL_COMPONENT
IMAG_COMPONENT
Tables
ANSI C12.19-2008
AMPLITUDE
ANGLE
FD_CHANNELS_RCD
CHANNEL
FD_BLOCK_DATA_RCD
BLOCK_HEADER
See
Array of FD_ENTRY_RCD.
Each element
represents the value of one spectral component
from a channel.
See FD_BLOCK_HEADER_RCD.
SPECTRA_DATA
ASYNC_SPECTRA_RCD
Waveform-transform capture area for frequencydomain spectrum that are triggered by a Qualityof-service event.
LIST_STATUS
See WAVEFORM_LIST_STATUS_RCD.
BLOCK_DATA
An array of FD_BLOCK_DATA_RCD.
363
ANSI C12.19-2008
Tables
OF
END;
TYPE WAVEFORM_RCD = PACKED RECORD
LIST_STATUS : WAVEFORM_LIST_STATUS_RCD;
BLOCK_DATA : ARRAY [ACT_QUALITY_OF_SERVICE_TBL.NBR_OF_TD_BLOCKS] OF
TD_PERIODIC_BLOCK_DATA_RCD;
END;
TABLE 157 TIME_DOMAIN_TBL = WAVEFORM_RCD;
364
Decade 15: Quality-of-service / Table 157 Periodic Time Domain Waveforms Table
Tables
ANSI C12.19-2008
Value
TD_PERIODIC_BLOCK_HEADER_RCD
Definition
This element contains the block descriptor, and
status information.
NBR_SAMPLES
NBR_CHANNELS
END_BLOCK_TIME_STAMP
BLOCK_CHANNEL_OFFSET
WAVEFORM_SEGMENT_NBR
EVENT_SAMPLE_OFFSET
SAMPLING_RATE
TD_PERIODIC_BLOCK_DATA_RCD
BLOCK_HEADER
Decade 15: Quality-of-service / Table 157 Periodic Time Domain Waveforms Table
365
ANSI C12.19-2008
Tables
SAMPLE_DATA
WAVEFORM_RCD
366
Array
of
TD_ASYNC_TBL.TD_CHANNELS_RCD. Each
entry contains one sample from each available
channel
collected
successively
at
the
programmed sampling rate.
Waveform captures area for time-domain
waveforms that are triggered periodically.
LIST_STATUS
See WAVEFORM_LIST_STATUS_RCD.
BLOCK_DATA
An
array
TD_PERIODIC_BLOCK_DATA_RCD.
of
Decade 15: Quality-of-service / Table 157 Periodic Time Domain Waveforms Table
Tables
ANSI C12.19-2008
OF
END;
TYPE SPECTRA_RCD = PACKED RECORD
LIST_STATUS : WAVEFORM_LIST_STATUS_RCD;
BLOCK_DATA : ARRAY [ACT_QUALITY_OF_SERVICE_TBL.NBR_OF_FD_BLOCKS] OF
FD_PERIODIC_BLOCK_DATA_RCD;
END;
TABLE 158 FREQUENCY_DOMAIN_TBL = SPECTRA_RCD;
367
ANSI C12.19-2008
Tables
Identifier
FD_PERIODIC_BLOCK_HEADER_RCD
NBR_SPECTRAL_COMPONENTS
NBR_CHANNELS
START_BLOCK_TIME_STAMP
END_BLOCK_TIME_STAMP
BLOCK_CHANNEL_OFFSET
SPECTRA_SEGMENT_NBR
EVENT_SAMPLE_OFFSET
SAMPLING_RATE
FD_PERIODIC_BLOCK_DATA_RCD
BLOCK_HEADER
368
Definition
Tables
ANSI C12.19-2008
SPECTRA_DATA
SPECTRA_RCD
LIST_STATUS
BLOCK_DATA
Array
of
FD_ASYNC_TBL.
FD_CHANNELS_RCD. Each entry contains
one spectral component from each available
channel. The first element at index zero (0) is
the DC (bias) value, the second element at
index one (1) is the fundamental frequency, and
successive
spectral
components
follow
sequentially.
Waveform-transform capture area for frequencydomain spectra that are triggered periodically.
See WAVEFORM_LIST_STATUS_RCD.
An
array
FD_PERIODIC_BLOCK_DATA_RCD.
of
369
ANSI C12.19-2008
Tables
370
Tables
ANSI C12.19-2008
: WAKE_UP_FUNC_FLAG_BFLD;
: REGISTER_READ_FUNC_FLAG_BFLD;
: DATA_TRANSMIT_FUNC_BFLD;
: UINT8;
: COMMODITY_OUTAGE_DUTY_RCD;
: COMMODITY_ZERO_USAGE_RCD;
: UINT8;
Value
Definition
FALSE
WAKE_UP_FUNC_FLAG_BFLD
ALWAYS_AWAKE_FLAG
TRUE
PERIODIC_SELF_WAKE_FLAG
FALSE
TRUE
EXTERNAL_WAKE_FLAG
FALSE
TRUE
RF_TRANSM_WAKE_FLAG
FALSE
TRUE
IR_TRANSM_WAKE_FLAG
FALSE
TRUE
PL_TRANSM_WAKE_FLAG
FALSE
TRUE
POT_WAKE_FLAG
FALSE
TRUE
LAN_WAN_WAKE_FLAG
FALSE
371
ANSI C12.19-2008
Tables
TRUE
FILLER
REGISTER_READ_FUNC_FLAG_BFLD
REG_READ_IMMEDIATE_WAKE_FLAG
FALSE
TRUE
REG_READ_DELAY_AFTER_WAKE
FALSE
TRUE
REG_READ_EXTERNAL_STIME_FLAG
FALSE
TRUE
FILLER
DATA_TRANSMIT_FUNC_BFLD
DATA_XMIT_IMMEDIATE_READ
FALSE
TRUE
DATA_XMIT_DELAY_AFTER_READ_FLAG
FALSE
TRUE
FILLER
COMMODITY_OUTAGE_DUTY_RCD
COMMODITY_OUTAGE_DUTY_NUM
0..65535
RESTORATION_CALL_NUM
372
0..255
RESTORATION_CALL_WAIT 0..255
Tables
ANSI C12.19-2008
COMMODITY_ZERO_USAGE_RCD
COMMODITY_ZERO_USAGE 0..65535
COMMODITY_ZERO_USAGE_TRIGGER
0..65535
COMMODITY_NON_RETURN_ZERO_TRIGGER
0..65535
Maximum period of time, in minutes, of
non-return to zero usage that constitutes a
trigger for a warning call to client for potential
water or other commodity supply breach. A zero
usage event is defined by a zero commodity
usage of the client. It is a normal operation to
have numerous small intervals of zero usage of
commodities such as water. A non-return to
zero usage event could describe a breach of a
load side line of metered commodity which
would not allow the metering of the commodity
to recognize a zero usage event.
ONE_WAY_RCD
WAKE_UP_FUNC_FLAGS
See WAKE_UP_FUNC_FLAG_BFLD.
REGISTER_READ_FUNC_FLAGS
See REGISTER_READ_FUNC_FLAG_BFLD.
DATA_TRANSMIT_FUNC_FLAGS
See DATA_TRANSMIT_FUNC_BFLD.
WAKE_CODE_LEN
0..255
COMMODITY_OUTAGE_DUTY
See COMMODITY_OUTAGE_DUTY_RCD.
COMMODITY_ZERO_USAGE
See COMMODITY_ZERO_USAGE_RCD.
NBR_COMMANDS
373
ANSI C12.19-2008
Tables
Value
WAKE_UP_FUNC_FLAG_BFLD
ALWAYS_AWAKE_FLAG
Redefines:
DIM_ONE_WAY_TBL.
WAKE_UP_FUNC_FLAG_BFLD.
FALSE
TRUE
PERIODIC_SELF_WAKE_FLAG
FALSE
TRUE
EXTERNAL_WAKE_FLAG
FALSE
TRUE
RF_TRANSM_WAKE_FLAG
FALSE
TRUE
IR_TRANSM_WAKE_FLAG
FALSE
TRUE
PL_TRANSM_WAKE_FLAG
FALSE
TRUE
POT_WAKE_FLAG
FALSE
TRUE
LAN_WAN_WAKE_FLAG
374
Definition
FALSE
Tables
ANSI C12.19-2008
TRUE
FILLER
Reserved.
REGISTER_READ_FUNC_FLAG_BFLD
REG_READ_IMMEDIATE_WAKE_FLAG
FALSE
TRUE
REG_READ_DELAY_AFTER_WAKE_FLAG
FALSE
TRUE
REG_READ_EXTERNAL_STIME_FLAG
FALSE
TRUE
FILLER
Redefines:
DIM_ONE_WAY_TBL.
REGISTER_READ_FUNC_FLAG_BFLD.
End Device does not read registers immediately
after wake.
End Device reads registers immediately after
wake.
End Device does not read registers with a time
delay after wake.
End Device reads registers with a time delay
after wake.
End Device does not read registers after an
external stimulus.
End Device reads registers after an external
stimulus.
Reserved.
DATA_TRANSMIT_FUNC_BFLD
Redefines:
DIM_ONE_WAY_TBL.
DATA_TRANSMIT_FUNC_BFLD.
DATA_XMIT_IMMEDIATE_READ
FALSE
TRUE
DATA_XMIT_DELAY_AFTER_READ_FLAG
FALSE
TRUE
COMMODITY_OUTAGE_DUTY_RCD
COMMODITY_OUTAGE_DUTY_NUM
0..65535
RESTORATION_CALL_NUM
0..255
375
ANSI C12.19-2008
Tables
RESTORATION_CALL_WAIT 0..255
COMMODITY_ZERO_USAGE_RCD
COMMODITY_ZERO_USAGE 0..65535
COMMODITY_ZERO_USAGE_TRIGGER
0..65535
COMMODITY_NON_RETURN_ZERO_TRIGGER
0..65535
Actual period of time, in minutes, of non-return
to zero usage that constitutes a trigger for a
warning call to client for potential water or other
commodity supply breach. A zero usage event
is defined by a zero commodity usage of the
client. It is a normal
operation to have
numerous small intervals of zero usage of
commodities such as water. A non-return to
zero usage event could describe a breach of a
load side line of metered commodity which
would not allow the metering of the commodity
to recognize a zero usage event.
ONE_WAY_RCD
376
WAKE_UP_FUNC_FLAGS
Redefines:
DIM_ONE_WAY_TBL.
ONE_WAY_RCD.
See WAKE_UP_FUNC_FLAG_BFLD.
REGISTER_READ_FUNC_FLAGS
See REGISTER_READ_FUNC_FLAG_BFLD.
DATA_TRANSMIT_FUNC_FLAGS
See DATA_TRANSMIT_FUNC_BFLD.
WAKE_CODE_LEN
0..255
COMMODITY_OUTAGE_DUTY
See COMMODITY_OUTAGE_DUTY_RCD.
COMMODITY_ZERO_USAGE
See COMMODITY_ZERO_USAGE_RCD.
NBR_COMMANDS
Tables
ANSI C12.19-2008
377
ANSI C12.19-2008
Tables
Value
FREQ
Definition
The transmit frequency of awakening device in
hertz.
MODULATION
0
1
2
3
4..255
WAKE_CODE
ONE_WAY_WAKE_RCD
REG_READ_TIMING
XMIT_DATA_TIMING
INTENDED_REG_READ_XMIT_TIMING
0..4294967295 End Device data delay till-transmit in seconds
after register reads.
SELF_WAKE_PERIOD
0..4294967295 The period in seconds between awakenings.
End Device wakes via internal means
periodically from the beginning of awakening to
next beginning of awakening in seconds.
RF_WAKE
See WAKE_DATA_RCD.
IR_WAKE
See WAKE_DATA_RCD.
PL_WAKE
See WAKE_DATA_RCD.
POT_WAKE
Wake code.
LAN_WAN_WAKE
Wake code.
ED_SECURITY_MODE_BFLD
SECURITY_MODE
378
Tables
ANSI C12.19-2008
Security in the context of one-way devices is
interpreted with respect to:
A. The way the device data transmission
was initiated. Whether inappropriate
access of facility may be the cause of
the transmission of the data or such
indications may be contained in the data
stream.
B. Whether the transmitted data is
delivered through a secured medium or
in a shared medium, with respect to who
can see the emitted data.
C. Whether recipients of the data can or
cannot interpret or decipher that content
of the data.
Low: No special provisions were made or
assumed for the above.
Normal: Normal (reasonable) provisions were
made or assumed for the above.
High: Strict provisions were implemented or
assumed to have been implemented for the
above. An example may be: End Device in high
security mode can sense various tampering
techniques and can initiate an early
communication with normal data with the
emergency reporting of tampering. The data
transmission is encrypted.
The actual interpretation of the above is not
specified in this Standard and is left to the user
for definition. It is not a configuration or control
parameter or a designed capability indication.
FILLER
ED_CONTROL_RCD
WAKE_DATA
SECURITY_MODE
Reserved.
See ONE_WAY_WAKE_RCD.
See ED_SECURITY_MODE_RCD.
379
ANSI C12.19-2008
Tables
380
Tables
ANSI C12.19-2008
Identifier
Value
Definition
ONEWAY_COM
FALSE
TRUE
LOCAL_NETWORK_COM
FALSE
SIMPLE_END_DEVICE_MODE_BFLD
TRUE
RELAY_MODE
FALSE
TRUE
SECURITY_MODE
See
SIMPLE_DEVICE_STATUS_DATA_TIMING_T
BL
.
ED_SECURITY_MODE_BFLD.
SECURITY_MODE_ENUM.
Reserved.
FILLER
COMMODITY_OUTAGE_STATUS_BFLD
NBR_POWER_OUTAGE_EVENTS 0..7
POWER_IS_ON_FLAG
FALSE
TRUE
COMMODITY_OUTAGE_DUTY_BFLD
OUTAGE_DURATION
0..65535
SINCE_OUTAGE_DURATION 0..65535
SIMPLE_END_DEVICE_STATUS_RCD
COMMODITY_OUTAGE_STATUS
See COMMODITY_OUTAGE_STATUS_BFLD.
COMMODITY_OUTAGE_DUTY
An array of
COMMODITY_OUTAGE_DUTY_BFLD, each
containing the commodity outage duration and
the length of time it was on following that
outage.
COMMODITY_RESTORATION 0..65535
The time
restoration.
in
seconds
since
commodity
COMMODITY_NON_RETURN_TO_ZERO_DURATION
0..65535
Minutes since last zero consumption event
measured by End Device; End Device will report
if commodity flow has not stopped in
ACT_ONE_WAY_TBL.
COMMODITY_NON_RETURN_ZERO_TRIGGE
R. A zero consumption event is defined when
the
commodity
is
not
used
for
ACT_ONE_WAY_TBL.COMMODITY_ZERO_U
SAGE seconds.
381
ANSI C12.19-2008
Tables
RTC_TIME
RTC_DRIFT
DEVICE_STATUS_RCD
ACTUAL_REG_READ_XMIT_TIMING
0..429496295
SIMPLE_END_DEVICE_MODE
382
Tables
ANSI C12.19-2008
Value
Definition
ED_CMD_RESP_RESCMD_RESCMDRESP_EUDT_NUM_RCD
COMMAND_NUMBER
0..65535
Command number
COMMANDRESPONSE_NUMBER
0..65535
CORRESPONDING_EUDT_FOR_COMMAND_NUMBER
TABLE_IDA_BFLD represents the table
number, table type, and two operational flags.
The flags are not utilized in this context.
CORRESPONDING_EUDT_FOR_COMMANDRESPONSE_NUMBER
TABLE_IDA_BFLD represents the table
number, table type, and two operational flags.
The flags are not utilized in this context.
RESERVE_COMMAND_NUMBER
Decade 16: One-way Devices / Table 164 One-way Commands/Responses/Extended User-defined
Tables Table
383
ANSI C12.19-2008
Tables
0..65535
RESERVE_COMMANDRESPONSE_NUMBER
0..65535
Reserve command response number that
corresponds to a specific reserve command
response
CORRESPONDING_EUDT_FOR_RESCOMMAND_NUMBER
TABLE_IDA_BFLD represents the table
number, table type, and two operational flags.
The flags are not utilized in this context.
CORRESPONDING_EUDT_FOR_RESCOMMANDRESPONSE_NUMBER
TABLE_IDA_BFLD represents the table
number, table type, and two operational flags.
The flags are not utilized in this context.
COMMANDS_RCD
COMMANDS
A collection of commands.
384Decade 16: One-way Devices / Table 164 One-way Commands/Responses/Extended User-defined Tables Table
ANSI C12.19-2008
Reserved
Relative
Class
(Dot Decimal)
Reserved
Relative Class
(Hex)
ABB
AIL
AMCO
APTH
BMI
ABB
American Innovations, Ltd.
American Meter Company
Aptech Inc.
Badger Meter Inc.
.65.66.66.32
.65.73.76.32
.65.77.67.79
.65.80.84.72
.66.77.73.32
41
41
41
41
42
42
49
4D
50
4D
42
4C
43
54
49
20
20
4F
48
20
CMVG
DMTC
EE
EPRI
GE
ITD
.67.77.86.71
.68.77.84.67
.69.69.32.32
.69.80.82.73
.71.69.32.32
.73.84.68.32
43
44
45
45
47
49
4D
4D
45
50
45
54
56
54
20
52
20
44
47
43
20
49
20
20
ITRN
JEM
LGYR
Itron
Scientific Columbus Company
Landis+Gyr Inc.
.73.84.82.78
.74.69.77.32
49 54 52 4E
4A 45 4D 20
.76.71.89.82
4C 47 59 52
MM
MTC
ND
Master Meter
Metering Technology Corporation
NERTEC Design Inc.
.77.77.32.32
.77.84.67.32
.78.68.32.32
4D 4D 20 20
4D 54 43 20
4E 44 20 20
SCH
SENS
SPT&D
Schlumberger
Sensus Metering Systems
Siemens Power Transmission & Distribution,
Inc.
For new manufacturers who are not yet
included in this list.
WeXL
.83.67.72.32
.83.69.78.83
.83.80.84.68
53 43 48 20
53 45 4E 53
53 50 54 44
.84.69.77.80
54 45 4D 50
.87.69.88.76
57 45 58 4C
TEMP
WEXL
Manufacturers implementing this Standard and registrars shall not assign End Device classes from this
reserved list.
The presence of any of the above ID Codes is permitted only in C12.19-1997 V1.0 compliant
implementations.
385
ANSI C12.19-2008
B.1 Codes
Code
Event
Argument
00
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
No Event
Primary Power Down
Primary Power Up
Time Changed (old time)
Time Changed (new time)
Time Changed (old time)
Time Changed (new time)
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
Update List Pointers
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
None
None
None
None. Time tag, if used, equals old time.
None. Time tag, if used, equals new time.
Old time in STIME_DATE format.
New time in STIME_DATE format.
None
None
TABLE_IDC_BFLD
TABLE_IDA_BFLD
None
None
None
LIST(UINT8) {Reference procedure 4, 9.1.8.1.5}
LIST (UINT8) {Reference procedure 5,
9.1.8.1.6}
None
Value of Procedure Parameter (UINT16)
None
Value of Procedure Parameter (UINT16)
None
None
None
None
New Season Number (UINT8)
New Rate(UINT8)
New Special Schedule (UINT8)
New Current Tier(UINT8 followed by New
Demand Tier (UINT8)
Table number (TABLE_IDA_BFLD).
Table number (TABLE_IDA_BFLD). Table
removed from End Device prior to activation.
None
None
None
None
None
None
None
None
None
None
None
None
None
None
386
50
51
52
53
54
55
56
57
58
59
Table Written To
60
61
62
63
64
Table Written To
65
66
67
68
69
Table Written To
70
71
72
73
74
75
ANSI C12.19-2008
None
None
None
None
None
Control point id (UINT8),
New level (UINT8)
Control point id (UINT8),
New level (UINT8)
Control point id (UINT8),
New level (UINT8),
Condition index (UINT8)
Control point id (UINT8),
New level (UINT8)
Money (NI_FMAT1)
Money (NI_FMAT1)
Money (NI_FMAT1)
None
None
TABLE_IDC_BFLD,
NEW_VALUE
TABLE_IDA_BFLD,
NEW_VALUE
NEW_VALUE
NEW_VALUE
NEW_VALUE
EVENT_CHECK_SIG,
TABLE_IDC_BFLD
EVENT_CHECK_SIG,
TABLE_IDA_BFLD
EVENT_CHECK_SIG
EVENT_CHECK_SIG
EVENT_CHECK_SIG
EVENT_CHECK_SIG,
TABLE_IDC_BFLD,
NEW_VALUE
EVENT_CHECK_SIG,
TABLE_IDA_BFLD,
NEW_VALUE
EVENT_CHECK_SIG,
NEW_VALUE
EVENT_CHECK_SIG,
NEW_VALUE
EVENT_CHECK_SIG,
NEW_VALUE
EVENT_CHECK_SIG,
SECURED_REGISTER_SIG,
TABLE_IDA_BFLD,
READ_REQUESTED
EVENT_CHECK_SIG,
SECURED_REGISTER_SIG
READ_REQUESTED
EVENT_CHECK_SIG,
SECURED_REGISTER_SIG,
TABLE_IDA_BFLD,
387
ANSI C12.19-2008
76
Code
388
TABLE_IDA_BFLD
Bit
field
of
Table
number
and
Standard/Manufacturer and Extended Userdefined Table Flag.
TABLE_IDC_BFLD
Bit
field
of
Procedure
Standard/Manufacturer Flag.
number
and
ANSI C12.19-2008
EVENT_CHECK_SIG
NEW_VALUE
Element Name
Value
NBR_CONSTANT_ENTRIE
11
15
1
MULTIPLIER
OFFSET
0.0072
0.0
Then:
40H
000FH
389
ANSI C12.19-2008
SECURED_REGISTER_SIG
READ_REQUESTED
390
ANSI C12.19-2008
Element Name
Value
NBR_CONSTANT_ENTRIE
11
15
1
MULTIPLIER
OFFSET
0.0072
0.0
Using
the
above
information,
the
READ_REQUESTED may have the following
binary representation:
3FH 000BH 000005H 0001H
30H 000FH
Where:
3FH
000BH
000005H
0001H
Then:
30H
000FH
391
ANSI C12.19-2008
Event
Description
56
57
58
Procedure Invoked
59
Table Written To
60
392
Code
61
Event
End Device Sealed
ANSI C12.19-2008
Description
A seal verification assertion event (see code 56)
NEW_VALUE represents the content of all
metrological tables that were configured
prior to sealing the End Device.
62
If
the
EVENT_ARGUMENT
or
HISTORY_ARGUMENT is too small to hold
a copy of all metrological tables at the time
of the verification, then this event code shall
be preceded by one or more instances of
codes 58, 59 or 60 as needed to capture the
state of all metrological tables sealed.
A seal removal event and a likely need for reverification (see code 57).
NEW_VALUE represents the collection of all
changes that occurred to cause the seal
removal re-verification event.
If
the
EVENT_ARGUMENT
or
HISTORY_ARGUMENT is too small to hold
a copy of all changes that triggered this
event, this code shall be preceded by one or
more instances of codes 58, 59 or 60 as
needed to capture all changes to the End
Device metrological tables elements.
63
Procedure Invoked
64
Table Written To
65
66
check
check
check
393
ANSI C12.19-2008
Code
67
Event
End Device Unsealed
Description
A seal removal and request for re-verification
event (see code 57).
EVENT_CHECK_SIG is the event
signature for this event entry.
68
Procedure Invoked
check
check
69
Table Written To
check
70
If
the
EVENT_ARGUMENT
or
HISTORY_ARGUMENT is too small to hold
a copy of all the changes, then it is expected
that this event shall be repeated as many
times as needed to capture all metrological
changes to this table.
Indicates one or more metrological tables were
modified or programmed.
EVENT_CHECK_SIG is the event
signature for this event entry.
check
394
Code
71
Event
End Device Sealed
ANSI C12.19-2008
Description
A seal-verification assertion event (see code
56).
EVENT_CHECK_SIG is the event
signature for this event entry.
check
72
If
the
EVENT_ARGUMENT
or
HISTORY_ARGUMENT is too small to hold
a copy of all metrological tables at the time
of the verification, then it is expected that
this event code shall be preceded by one or
more instances of codes 58, 59 or 60 as
needed to capture the state of all
metrological tables sealed.
A seal removal and request for re-verification
event (see code 57).
EVENT_CHECK_SIG is the event
signature for this event entry.
check
check
395
ANSI C12.19-2008
Code
74
Event
Read Secured Register
Description
Event code generated upon reading one or
more secured register tables.
EVENT_CHECK_SIG is the event
signature for this event entry.
check
75
check
76
check
396
ANSI C12.19-2008
DEFAULT_SET_USED
2
3
0
0
0
0
0
0
0
1
0
0
1
1
1
2
1
0
1
1
0
0
0
0
1
0
1
1
2
1
2
2
1
1
1
0
0
0
0
1
0
3
1
2
1
2
2
0
0
1
0
0
0
0
1
0
1
1
2
1
2
2
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
3
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
397
ANSI C12.19-2008
Final Element
1
DEFAULT_SET_USED
2
3
0
0
3
1
9
3
3
1
0
0
4
1
12
3
3
1
0
0
40
1
60
3
3
1
0
0
0
0
0
0
0
1
1
20
1
4
1
1
20
1
4
1
1
20
1
4
1
1
20
1
4
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
2
1
10
10
9
131
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
398
ANSI C12.19-2008
Final Element
1
Table 61 - Actual Load Profile Limiting Table
LP_SET1_INHIBIT_OVF_FLAG
LP_SET2_INHIBIT_OVF_FLAG
LP_SET3_INHIBIT_OVF_FLAG
LP_SET4_INHIBIT_OVF_FLAG
BLK_END_READ_FLAG
BLK_END_PULSE_FLAG
SCALAR_DIVISOR_FLAG_SET1
SCALAR_DIVISOR_FLAG_SET2
SCALAR_DIVISOR_FLAG_SET3
SCALAR_DIVISOR_FLAG_SET4
EXTENDED_INT_STATUS_FLAG
SIMPLE_INT_STATUS_FLAG
BLK_END_RD_INDICATOR_FLAG
INV_UINT8_FLAG
INV_UINT16_FLAG
INV_UINT32_FLAG
INV_INT8_FLAG
INV_INT16_FLAG
INV_INT32_FLAG
INV_NI_FMAT1_FLAG
INV_NI_FMAT2_FLAG
LP_MEMORY_LEN
NBR_BLKS_SET1
NBR_BLK_INTS_SET1
NBR_CHNS_SET1
MAX_INT_TIME_SET1
NBR_BLKS_SET2
NBR_BLK_INTS_SET2
NBR_CHNS_SET2
MAX_INT_TIME_SET2
NBR_BLKS_SET3
NBR_BLK_INTS_SET3
NBR_CHNS_SET3
MAX_INT_TIME_SET3
NBR_BLKS_SET4
NBR_BLK_INTS_SET4
NBR_CHNS_SET4
MAX_INT_TIME_SET4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
DEFAULT_SET_USED
2
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
16384
80
96
1
15
0
0
0
0
0
0
0
0
0
0
0
0
399
ANSI C12.19-2008
Final Element
1
DEFAULT_SET_USED
2
3
1
0
0
0
1
4
0
2
2
100
100
0
0
0
0
0
1
0
0
0
1
4
0
2
2
100
100
0
0
0
0
0
1
1
0
0
1
4
0
2
2
100
100
0
0
0
0
0
1
1
0
0
1
4
0
2
2
100
100
0
0
0
0
0
1
2
2
0
256
0
0
0
0
0
2
2
3
0
256
256
0
0
0
0
3
2
6
0
256
256
256
0
0
0
1
2
2
0
256
0
0
0
0
0
400
ANSI C12.19-2008
Final Element
1
DEFAULT_SET_USED
2
3
1
0
1
0
0
0
0
1
30
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
30
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
30
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
30
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
3
1
1
8
1
3
3
2
1
16
2
3
3
3
1
16
4
3
3
4
1
16
8
401
ANSI C12.19-2008
Final Element
NBR_LABEL_CHARS
1
8
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
402
DEFAULT_SET_USED
2
3
8
8
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
8
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
ANSI C12.19-2008
Final Element
NBR_OF_FD_CHANNELS
NBR_OF_FD_CHANNELS_PER_BLOCK
NBR_OF_FD_SPECTRA_PER_BLOCK
NBR_OF_FD_PREFETCH_SAMPLES
LABEL_LENGTH
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
2
0
0
0
0
0
0
1
DEFAULT_SET_USED
2
3
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
2
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
2
0
0
0
0
0
0
1
4
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
2
0
0
0
0
0
0
1
403
ANSI C12.19-2008
000
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
016
017
017
018
018
019
019
020
020
021
021
TABLE 05 - DEVICE_IDENT_TBL
IDENTIFICATION (BINARY)
IDENTIFICATION (STRING)
000
001
TABLE 07 - PROC_INITIATE_TBL /
PROCEDURE 05 UPDATE_LAST_READ_ENTRY_PROC
PROC
SEQ_NBR
PARM
STANDARD
000
001
002
002
404
[n]
[n]
[n]
[n]
[n]
[n]
000
PROC_DATA_5
LIST
ENTRIES_READ
TABLE 23 CURRENT_REG_DATA_TBL
NBR_DEMAND_RESETS
TOT_DATA_BLOCK
SUMMATIONS(ARRAY)
SUMMATIONS(ITEM)
DEMANDS(ARRAY)
DEMANDS(ITEM)
EVENT_TIME(ARRAY)
EVENT_TIME(ITEM)
CUM_DEMAND
CONT_CUM_DEMAND
DEMAND(ARRAY)
DEMAND(ITEM)
COINCIDENTS(ARRAY)
COINCIDENTS(ITEM)
COINCIDENT_VALUES(ARRAY)
COINCIDENT_VALUES(ITEM)
TIER_DATA_BLOCK(ARRAY)
TIER_DATA_BLOCK(ITEM)
SUMMATIONS (ARRAY)
SUMMATIONS(ITEM)
DEMANDS(ARRAY)
DEMANDS(ITEM)
EVENT_TIME(ARRAY)
EVENT_TIME(ITEM)
CUM_DEMAND
CONT_CUM_DEMAND
DEMAND(ARRAY)
DEMAND(ITEM)
COINCIDENTS(ARRAY)
COINCIDENTS(ITEM)
COINCIDENT_VALUES(ARRAY)
COINCIDENT_VALUES(ITEM)
002
002
002
000
001
001
001
001
001
001
001
001
001
001
001
001
001
001
001
002
002
002
002
002
002
002
002
002
002
002
002
002
002
002
002
ANSI C12.19-2008
000
000
000
000
000
001
001
001
001
001
001
001
001
002
002
002
002
[n]
[n]
[n]
[n]
[n]
[n]
[n]
[n]
[n]
[n]
[n]
[n]
[n]
[n]
[n]
005
005
005
000
001
[n]
[n]
[n]
[n]
[n]
[n]
[n]
[n]
000
000
001
002
003
003
[n]
[n]
[n]
[n]
000
000
[n]
000
000
001
001
001
001
001
001
001
001
002
002
002
002
[n]
[n]
[n]
[n]
[n]
[n]
[n]
[n]
[n]
000
000
001
002
003
003
[n]
[n]
[n]
[n]
000
000
[n]
[n]
405
ANSI C12.19-2008
E.1 Background
This Standard provides five possible options of implementing an audit trail (Event Logger). The selections
of the options implemented, allowed, or used are left to meter manufacturers, legislators, and end users.
These implementation options are listed below.
End Devices Implementing Event Counters (Option 1)
This option allows the detection of modification done to the meter but does not provide any trace of what
have been modified. This option is implemented using the Event Counters Table (Table 79).
End Devices Implementing Event Logger Without Values (Option 2)
This option provides a trace of which tables have been modified, when and by which user, but does not
provide information about the content of these tables. This option is implemented with the Event Log Data
Table (Table 76) using the following events:
End Devices Implementing Event Logger With New Values Only (Option 3)
This option provides a trace of which tables have been modified, when, by which user and the new values
programmed. This option is implemented with the Event Log data table (Table 76) using the following
events:
End Devices Implementing Event Logger With Metrological Signature Only (Option 4)
This option provides a trace of which tables have been modified, when, by which user, and a signature
used to validate an offline record keeping system. The comparison of the signature provided by the meter
with the signature based on the information kept by the record keeping system guarantees that this
information really represents the configuration of the meter at each event recorded.
This option is implemented with the Event Log Data Table (Table 76) using the following events:
Procedure Invoked event (Event 63)
Table Written To event (Event 64)
End Device Programmed event (Event 65)
End Device sealed event (Event 66)
End Device unsealed event (Event 67)
Read Secured Table event (Event 73)
Read Secured Register event (Event 74)
406
ANSI C12.19-2008
End Devices Implementing Event Logger With New Values And Metrological Signature (Option 5)
This option combines the features of option 3 (New Values) and option 4 (Signature). This option could
be used either with or without a record keeping system.
This option is implemented with the Event Log Data Table (Table 76) using the following events:
407
ANSI C12.19-2008
METROLOGIC
AL _FLAG
LOGABLE
_FLAG
ALTERNAT
E_FLAG
TABLE_
SIG
Step 1
TX
TY
TZ
True
False
False
False
False
False
SIGX
SIGY
Signature
True
True
True
SIGZ
PROGRAM_SIG
ALTERNATE_SIG
METROLOGICAL_SIG
EVENT_CHECK_SIG
SIGP
SIGA
SIGM
SIGE
Table X
Signature
Step 2
Table Y
Table Z
Signature
Step 3
408
EVENT
NUMBER
EVENT
SEQ_NBR
USER
ID
EVENT
CODE
SIGM
SIGE
SIGM
SIGE
SIGM
SIGE
ANSI C12.19-2008
409
ANSI C12.19-2008
transformer losses are added to the metered load (kW and kVAR, and ultimately to the kWh and kVARh
as well) of the client downstream of the distribution transformer. This is a common situation where a
large customer, such as a municipality, owns their substation and receives the electrical energy at the
point of high voltage conductor connection; i.e., 100kV 3-phase delta transmission line connection to a
municipality substation. The decision in this case to perform revenue metering on the low voltage side of
the distribution transformer is a decision of capital cost and maintenance cost. The cost of performing
revenue metering on the 100kV side of the transformer is much more expensive than on the 12.47kV or
other lower distribution voltage side.
Case 2:
In case 2, the metering point is on the high voltage side of the power transformer, while the billing
(delivery) point is on the low voltage side. Transformer losses should be subtracted from the kW and
kVar metering measurements, and ultimately from the kWh and kVARh metering values as well. In this
case, the utility typically owns the delivery transformer. The client (typically industrial) is not responsible
for the transformer losses as the delivery point is by contract located on the low voltage winding side of
the transformer. This is a common situation where the utility is delivering electrical energy from a
distribution circuit such as 12.47kV and the load of the industrial client requires numerous large
conductors to carry the load current on the low voltage side of the transformer (e.g., 480/277 3-phase, 4wire). In this case, the low voltage side metering is very difficult due to the very large conductors and
metering on the high side is relatively easy.
IronWattLoss ( In%) +
CopperWattLoss ( In%)
2
100
100
RatedVoltage
TestCurrent 2
(1)
IronWattLoss ( In%) +
CopperWattLoss ( In%)
100
100
RatedVoltage 2
TestCurrent 2
(2)
IronVarLoss ( In%) +
CopperVarLoss( In%)
4
100
100
RatedVoltage
TestCurrent 2
(3)
IronVarLoss ( In%) +
CopperVarLoss( In%)
100
100
RatedVoltage 4
TestCurrent 2
(4)
In the above calculation, the delivery transformer parameters are treated in aggregate and not as perphase or per-element values. Coefficients are introduced that facilitate the separate calculation of
delivered and received no-load and load losses.
Secondary current instrument transformers (CTs) and voltage instrument transformers (PTs) are not
considered in the calculations.
410
ANSI C12.19-2008
Transformer Data:
Rated KVA:
Rated Voltage:
Xfmr Tap Setting:
No Load Watt Loss at Rated Voltage:
Load Loss at Rated Full Load:
% Imp at 75C:
% Exciting Current:
Elements configuration:
Meter Current Class
10,000
69,000 7200/12470
69,000 12,470
9878 Watts
41,427 Watts
6.92%
0.38%
120 Volt, 4 Wire Wye, 2 Elements
10
For this example, all energy is treated as delivered to the meter (delivered coefficient = 100, received
coefficient = zero (0))..
From the above parameters, we can get:
- Delivered No-Load (Core, Iron) Losses kVA = 10,000 * 0.38% = 38.0
-
Based on (1) through (2), we can calculate and obtain the following Transformer Loss Constants:
- Delivered Transformer Copper Loss Watt Constant: TLC WCu (%) = 0.537%
- Delivered Transformer Copper Loss VAR Constant: TLC VCu (%) = 8.95%
- Delivered Transformer Iron Loss Watt Constant: TLC WFe (%) = 0.0762%
- Delivered Transformer Iron Loss VAR Constant: TLC VFe (%) = 0.283%
411
ANSI C12.19-2008
The backslash is the escape control character. A character that follows a \ shall be interpreted as
a simple character. Thus a quote is escaped as \ and the backslash is escaped as a \\.
Example: The production rule This is a \bad\ expression is equivalent to This is a bad
expression.
Terminal text string is enclosed between single quotes (#x0027, #x2018 or #x2019). Example:
A represents the letter A. All characters that follow a single quote, except for the single-quote
and escape characters, are taken literally. All characters enclosed within single quotes are one
entity.
Also, the following escape sequences have special meaning as follows:
\n
\f
\t
\S
412
Terminal text string is enclosed between double quotes (#x0022, #x201C or #x201D). Example:
A represents the letter A. All characters that follow a double quote, except for the double-quote
and escape characters, are taken literally. All characters enclosed within are one entity. The
ANSI C12.19-2008
escape characters that are recognized within single quotes are also processed within double
quotes.
#xN
where N is a hexadecimal integer. When interpreted as an unsigned binary number, it has the
value indicated. The number of leading zeros in the #xN form is insignificant; the number of
leading zeros in the corresponding code value is governed by the character encoding in use and
is not significant.
Start of character range selection symbol. Matches any character with a value in the binary
range(s) indicated (inclusive). It is terminated with the end of character group symbol ].
Interpretation of symbols that are enclosed within Start/End of character range symbols is as if
the characters were enclosed within single or double quotes; with the following exception:
^
When encountered as the first character following the Start of character range selection
symbol will negate the results of the match. Example: [^ABC] implies any single character
except for A or B or C
Expresses a range starting with the character on the left and ending with the character on its
right (inclusive). Example: [A-Z0-9#x005F] defines a production rule that matches all capital
letters of the ISO/IEC 10646 whose canonical (UCS-4) set, the decimal digits zero through
nine and the underscore character _.
\
The backslash escapes the regular interpretation of the next character (same action to that
outside of the character range selection symbols, unless it is followed by a character
sequence that is special within single or double quotes. Example: [\S] is the space
character; and [\\S] is a backslash followed by a S)
#xN where N is a hexadecimal integer, the expression matches the character in ISO/IEC 10646
whose canonical (UCS-4) code value, when interpreted as an unsigned binary number, has
the value indicated.
]
End of character range selection symbol. Character range selection begins with Start of
character range symbol.
Note: The special meaning of all other characters is lost when used within the character-range
selection symbols. Example: [ABC[()] is a production rule that matches the letters A or B
or C or the single quote or [ or ( or ).
(
Start group symbol. The group ends with the end of group symbol ). If the end of group symbol
is not found on the same line, then parsing shall continue on consecutive lines until the end group
symbol is found; and all production rules are satisfied.
End group symbol. The group begins with the start group symbol. Other production rules may
follow.
Start of comment symbol. Text enclosed within curly braces is a comment provided for clarity and
has no impact on the syntax or data definition. All characters are considered to be plain text with
no special meaning, except for the end of comment symbol, } and the escape character \\
which may be used to escape the closing comment symbol. If a production rule A is followed by
a comment then followed by a constraint B then the constraint B applies to A and not to the
comment.
End of comment symbol. A comment begins with the start of comment symbol, {.
A?
The production rule A followed by the superscript question mark may occur zero or one times
without violating the grammar. Other production rules may follow.
413
ANSI C12.19-2008
A*
The superscript asterisk is known as the Kleene star. A production rule A followed by the Kleene
star may occur zero or more times without violating the grammar. Other production rules may
follow.
The superscript plus sign is known as the Kleene cross. A production rule A followed by the
Kleene cross shall occur one or more times. Other production rules may follow.
Ax..y
The production rule A followed by a superscript number range shall occur a minimum of x times
to a maximum of y times (x shall be greater than or equal to zero, y shall be greater than or equal
to x). Other production rules may follow. Example: [0..9]1..2 is a production rule providing for one
to two digits in the range of 0 to 9.
Ax
The production rule A followed by a superscript number shall occur exactly x times. Other
production rules may follow. This is equivalent to Ax..x.
Ax..
The production rule A followed by a superscript number shall occur a minimum of x times (x shall
be greater than or equal to zero). Other production rules may follow.
A..B
The two dots represent a range. The production rule will match any range starting with A ending
with B. Example: When A or B are multi-character sequences then the range shall span all
possible multi-character sequences that are delimited by the stated range.
Example: Specifying a numeric range
tableNumber ::= 0..2039
is equivalent to
tableNumber ::= [01]?[0-9]1..3 | 20 [0123] [0-9]
A-B
The production rule A followed by the minus sign (the except symbol) will match the production
rule A unless it matches the pattern produced by production rule B. Other production rules may
follow.
Example:
nonTableElementName ::= identifier - (id _TBL)
defines a production rule for an nonTableElementName that matches the production rule of
identifier unless it also matches the production rule id followed by the suffix _TBL.
A production rule that introduces the uniqueness constraint C on the use case of
A / unique : (B .)?C
A, where the constraint C belongs to the set:
ANY | TDL | DEC | TBL | PROC | RCD | BFLD | ENUM
An End Device class level constraint B may be optionally provided to indicate whether the
constraint C is limited to this document scope TDL, the referenced Standard document scope
STD or to all documents that describe this End Device class. The optional device class
constraint B belongs to the set:
EDC | STD
When the optional constraint B is not provided, it shall default to the active document being used
(it may be a Standard document or a Manufacturer-supplied document).
Well known scope names include:
414
ANSI C12.19-2008
EDC
Scopes defined within one instance of the End Device Class (this includes all TDL
documents used to describe this End Device and all referenced Standard TDL
documents).
TDL The top-level TDL scope of this TDL document. The TDL document is all collections of
documents that are either Manufacturer-defined or Standard-defined, but not both.
STD The top-level TDL scope of the referenced Standard TDL documents only.
DEC Within the local scope of any one decade defined within TDL documents.
TBL Within the local scope of any one table defined within TDL documents.
PROC Within the local scope of any one procedure defined within TDL documents.
RCD Within the local scope of any one packed record instance (and taking into account all
conditionals) defined within TDL documents.
BFLD Within the local scope of any bit field instance (and taking into account all conditionals)
defined within TDL documents.
ENUM Within the local scope of any enumerator instance (and taking into account all
conditionals) defined within TDL documents.
ANY Any scope where this production rule can be used.
The uniqueness constraints are generally applied to names of elements, names of derived types,
and values of enumerator. The constraints shall be applied after the evaluation and expansion of
all conditional statements, as shown in the examples below:
Example: Let elementName be defined as follows:
elementName ::= identifier / unique : RCD
and COUNT be an elementName then the following table syntax shall be considered invalid (with
respect to the uniqueness constraint), because the final element COUNT is not defined uniquely
within the PACKED RECORD below.
TYPE EXAMPLE_RCD = PACKED RECORD
COUNT
: UINT8;
LENGTH
: UINT8;
COUNT
: UINT8;
END;
However, the syntax below is valid, because the final element COUNT is unique within any one
instance of this packed record.
TYPE EXAMPLE_RCD = PACKED RECORD
IF (EXAMPLE_TBL.VALUE == 3) THEN
COUNT
: UINT8;
ELSE
LENGTH
: UINT8;
COUNT
: UINT8;
END;
END;
Example: Use of uniqueness constraints to tblIdentifier. This states that tblIdentifier shall be
unique in all instances of this End Device class, in all scopes defined.
tblIdentifier ::= (id _TBL) / unique : EDC.ANY;
Example: Use of uniqueness constraints to rcdIdentifier. This states that rcdIdentifier shall be
locally unique in any one scope where it can be defined.
415
ANSI C12.19-2008
BNF.RHS
References to a BNF construction elements that may be located on the righthand side of the ::= and may limit, the run-time size or range of the use case of
a production rule.
atomic
text
A free form textual tescription of the constraint that makes up the production rule.
This is useful in situations where the constraint is described elsewhere in a
different document or standard or it can be best expressed in plain text.
elementReference
References to a table element that may limit or further qualify the runtime influence on encoding rules use in production or communication.
derivedTypeReference References to a built-in or derived data type that may limit the run-time
transmitted size and content or use case of a production rule.
Example: using BNF constraint:
416
ANSI C12.19-2008
/ constraint : STD.LTIME_DATE_RCD ,
/ constraint : atomic)
Implies that the built-in type LTIME_DATE has the data structure and obeys the transmission
rules expressed at Standards TDL-scope definition LTIME_DATE_RCD, and it is an atomic
element.
Example: using text constraint
utf8
::=
eightBits (/constraint: text As per Section 2.5 and Section 15.9
Specials of Encoding Forms / UTF-8 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.,
/constraint: atomic);
Requires that utf8 imports all the definitions and encoding rules implied by the Unicode Standard,
Version 4.0. It also provides instructions how to handle the UTF-8 BOM feature. Finally it
indicates that the utf8 entity is atomic.
A / match : B A production rule that binds the publication of rule A to an XPath location path B in the
XML/TDL source documents which describe the Standard or the End Device table set. B is a
LocationPath per BNF production rule [1] found in the XML Path Language (XPATH) Version
1.0.
Example:
417
ANSI C12.19-2008
tblIdentifier
The example above indicates that the table identifier (tblIdentifier) that is published by this BNF
syntax is associated with the name attribute of the table element found in the XML/TDL
document.
Example:
defaultSetNumber ::=
0..255
The example states that defaultSetNumber is a number ranging between 0 to 255 inclusive. Also
its use is unique within the context of any End Device instance. It indicates that it is located in
Table 0 of the End Device in the DEFAULT_SET_USED final element; and it is imported or
exported in the EDL file by the number attribute of the defaultSet element.
AB
A,B
The comma introduces a sequence of production rules all off which shall exist, but not necessary
in the order as defined in the sequence. The production rule B may be followed by other
alternatives. Example: A, B, C | D defines a production rule stating that either A and B and C
rules shall apply (not necessary in that order) or D rules shall apply.
A|B
The vertical bar is an OR symbol. The OR symbol always occurs on the right hand side of a
production rule A and the left hand side of production rule B. The OR bar separates valid
production rule alternatives. If the OR bar is not followed by a complete production rule on the
same line, then parsing shall continue on consecutive lines until all production rules are satisfied.
The OR introduces a sequence of production rules, of which any one shall exist. The production
rule B may be followed by other alternatives. Example: A | B | C implies production rule A or B or
C applies.
::=
This symbol is read as "is defined as". The non-terminal which occurs on the left hand side
(BNF.LHS) of this symbol consists of the elements (non-terminals, terminals, or a combination of
the two) found on the right hand side (BNF.RHS). For clarity, when a non-terminal element on
the left hand side is encountered in plain text it will be written in italics. A line containing an LHS,
::=, and an RHS is known as a production rule. An incomplete production rule continues across
line. A production rule terminates when any line completes without the need for additional rules,
unless terminated by a semi-colon.
In the next sections, reserved words, characters, identifiers and other symbols required for the language
are also indicated by bold type.
418
ANSI C12.19-2008
LSBit
0
Octet
7-0
Octet
7-0
Octet
7-0
Octet
7-0
Octet
7-0
Octet
7-0
LSByte
Octet
7-0
G.4 Identifiers
An identifier is a name identifying a decade, a table, a procedure, a packed record, a bit field, an
enumerator, an element of a packed record, or a sub-element of a bit field.
An identifier is made of letters and/or numbers and/or the underscore character, '_'. Some suffixes were
reserved for specific use. Identifiers ending with reservedSuffix are reserved for names of decades,
tables, procedures, packed records, bit fields and enumerators.
decSuffix
tblSuffix
procSuffix
rcdSuffix
bfldSuffix
enumSuffix
cnstSuffix
:: = _DEC
:: = _TBL
:: = _PROC
:: = _RCD
:: = _BFLD
:: = _ENUM
:: = _CNST
::= BNF
::= EDC
::= TDL
::= STD
419
ANSI C12.19-2008
dec
tbl
proc
bfld
rcd
cnst
::= DEC
::= TBL
::= PROC
::= BFLD
::= RCD
::= CNST
string
binary
bcd
set
bool
array
type
if
then
else
switch
case
default
packed
record
bit
field
of
procedure
request
response
table
constants
enum
end
assert
true
false
label
description
property
::= STRING
{ Keyword and Built-in type } ;
::= BINARY
{ Keyword and Built-in type } ;
::= BCD
{ Keyword and Built-in type } ;
::= SET
{ Keyword and Built-in type } ;
::= BOOL
{ Keyword and Built-in type } ;
::= ARRAY
{ Keyword and Built-in type } ;
::= TYPE
{ Keyword } ;
::= IF
{ Keyword } ;
::= THEN
{ Keyword } ;
::= ELSE
{ Keyword } ;
::= SWITCH
{ Keyword } ;
::= CASE
{ Keyword } ;
::= DEFAULT
{ Keyword } ;
::= PACKED
{ Keyword } ;
::= RECORD
{ Keyword } ;
::= BIT
{ Keyword } ;
::= FIELD
{ Keyword } ;
::= OF
{ Keyword } ;
::= PROCEDURE
{ Keyword } ;
::=REQUEST
{ Keyword } ;
::= RESPONSE
{ Keyword } ;
::= TABLE
{ Keyword } ;
{ Keyword } ;
::= CONSTANTS
::= ENUM
{ Keyword } ;
::= END
{ Keyword } ;
::= ASSERT
{ Keyword } ;
::= (TRUE | true) / constraint : BNF.trueValue
::= (FALSE | false) / constraint : BNF.falseValue
::= LABEL
{ Keyword } ;
::= DESCRIPTION
{ Keyword } ;
::= PROPERTY
{ Keyword } ;
{ Keyword } ;
{ Keyword } ;
420
::=
0..9 ;
ANSI C12.19-2008
number
::=
digit+ ;
positiveNumber
::=
+? number ;
negativeNumber
::=
- number ;
anyNumber
::=
space
::=
comment
::=
::=
[\S] | ([\S] ? comment [\S]?){ Short hand for white spaces for
convenience. Note that it also allows for embedded
comments.} / constraint : text Also [\S] is equivalent to \S
;
capLetter
::=
A..Z ;
id
::=
anyElementName
::=
decIdentifier
::=
tblIdentifier
::=
(id tblSuffix) (
421
ANSI C12.19-2008
procIdentifier
::=
rcdIdentifier
::=
bfldIdentifier
::=
422
ANSI C12.19-2008
enumIdentifierXPath
::=
::=
(id enumSuffix )(
::=
423
ANSI C12.19-2008
::=
0..2039 (
::=
0..2039 (
::=
0..203 (
::=
0..255(
424
ANSI C12.19-2008
::=
::=
::=
::=
::=
::=
::=
::=
::=
[#x0-#x1]
{ 1 bit range } ;
[#x00-#xFF]
/constraint :atomic
{ 8 bits } ;
[#x0000-#xFFFF]
{ 16 bits } ;
[#x000000-#xFFFFFF]
{ 24 bits } ;
[#x00000000-#xFFFFFFFF]
{ 32 bits } ;
[#x0000000000-#xFFFFFFFFFF]
{ 40 bits } ;
[#x000000000000-#xFFFFFFFFFFFF]
{ 48 bits } ;
[#x00000000000000-#xFFFFFFFFFFFFFF]
{ 56 bits } ;
[#x0000000000000000-#xFFFFFFFFFFFFFFFF]{ 64 bits } ;
fillNil
::=
fillEightBits
::=
fillSixteenBits ::=
fillTwentyFourBits::=
fillThirtyTwoBits ::=
fillFortyBits
::=
fillFortyEightBits::=
fillFiftySixBits ::=
fillSixtyFourBits ::=
[]
[#x00] /constraint :atomic
[#x00]2
[#x00]3
[#x00]4
[#x00]5
[#x00]6
[#x00]7
[#x00]8
{ no bits } ;
{ 8 fill bits } ;
{ 16 fill bits } ;
{ 24 fill bits } ;
{ 32 fill bits } ;
{ 40 fill bits } ;
{ 48 fill bits } ;
{ 56 fill bits } ;
{ 64 fill bits } ;
zeroValue
trueValue
falseValue
boolValue
[#x0]
[#x1]
[#x0]
trueValue | falseValue
::=
::=
::=
::=
setAtomicElement
iso646 ::=
(eightBits
(/constraint : text As per ISO 7-bit coded character set for information
interchange, per ISO/IEC 646: 1991.)
) /constraint : atomic ;
iso8859 ::=
(eightBits
utf8
eightBits
::=
425
ANSI C12.19-2008
anyChar
::=
fixedPointStringNumber ::=
stringExponent
(E | e') anyNumber;
::=
floatingPointStringNumber ::=
bcdMinus
::=
[#xA]
bcdSpace
::=
[#xB]
bcdDecimal
::=
[#xD]
bcdStopDown ::=
[#xF]
bcdStopUp
::=
[#xE]
bcdDigit
::=
[#x0-#x9]
426
bcdUnassignedDigit::= [#xC]
ANSI C12.19-2008
bcdNibble
::=
bcdMSNibble
::=
bcdNibble
bcdLSNibble
::=
bcdNibble
bcdOctet
::=
fixedPointBCDNumber ::=
::=
NIL/ constraint : BNF.fillNil { No bits delivered. An Indicator for field of length zero
octets. } ;
int
::=
427
ANSI C12.19-2008
::=
specType::=
CHAR
/ constraint : BNF.anyChar |
(NI_FMAT1
/ constraint : GEN_CONFIG_TBL.NI_FORMAT1 |
NI_FMAT2
/ constraint : GEN_CONFIG_TBL.NI_FORMAT2 |
HTIME_DATE / constraint : STD.HTIME_DATE_RCD |
LTIME_DATE / constraint : STD.LTIME_DATE_RCD |
STIME_DATE / constraint : STD.STIME_DATE_RCD |
HTIME
/ constraint : STD.HTIME_RCD |
STIME
/ constraint : STD.STIME_RCD |
TIME
/ constraint : STD.TIME_RCD |
DATE
/ constraint : STD.DATE_RCD |
RDATE
/ constraint : STD.RDATE_RCD
) / constraint : GEN_CONFIG_TBL.DATA_ORDER
) /constraint : atomic ;
428
ANSI C12.19-2008
::= (
nil |
int |
unsignedInt |
floatingPoint | floatingPointCHAR | fixedPointBCD |
fill |
specType |
sizedType )
{ All built-in types that can be assigned to Elements. All
these types are also producers of atomic elements. } ;
derivedType
::=
derivedTypeReference { Elements that are derived from packed records and bit
fields. } ;
simpleType
::=
(baseType | derivedType)
arrayType
::=
anyElementType::=
429
ANSI C12.19-2008
430
ANSI C12.19-2008
Unnamed enumerators and constants may also be placed in the definition of an element, as such they
acquire the name of the container element as their prefix.
Resolution of (locating or not locating) any of the above types or constants shall be predictable and
unambiguous when the reference is made from anywhere in a document. In order for an entity to be
resolvable, it has to be defined either in the processed document syntax or by the syntax of the
referenced Standard. A resolved referenced entity may or may not exist in a given End Device instance,
unless specifically disqualified as a nonexistent entity in the architecture of the End Device (e.g., when
the entitys accessibility attribute is UNIMPLEMENTED), whereby forcing an entity to become
irresolvable.
For example, the element DATA_ORDER was defined by the Standard within the context of the bit field
container FORMAT_CONTROL_1, which in turn is defined within the scope of table GEN_CONFIG_TBL.
of GEN_CONFIG_DEC. One may reference the element DATA_ORDER in a number of forms and from
many different scopes. The sections below define rules that establish unambiguously the search
algorithm that leads to a uniform resolution by all implementations.
Vendor registered
Scope selector
STD
TDL
Scope coverage
Standard document global scope.
References to a type, constant, enumerator that was
defined in the in the document scope of the
referenced (or self) ANSI C12.19 Standard
document.
Current document scope or Standard document
global scope (if reference not found in this document
scope).
References a type, constant, or enumerator that was
defined in the document context of the document
where the reference is made. If the reference was
made within the C12.19 Standard document, then it is
a reference to a definition within the Standard
document. If the reference was made within the
supplementary table definition file that was registered
for a End Device, it is a reference to a definition within
manufacturers supplied file; however, if the reference
cannot be resolved, then the Standard document
global scope shall be searched as well. The cascade
reference to the Standard document scope may be
optionally suppressed through the use of the strict
directive (see strict attribute of replace, redefine or
override directive).
431
ANSI C12.19-2008
For example, if A_DATA_RCD were defined in a Standard document scope; then an non-strict reference
to this type may be made as follows:
Referenced made in
Standard document
Vendor registered
document
Reference to A_DATA_RCD
STD.A_DATA_RCD
TDL.A_DATA_RCD
STD.A_DATA_RCD
TDL.A_DATA_RCD
Resolved in
Standard
Standard
Standard
Standard
The reason for TDL.A_DATA_RCD, above, being resolved to Standard when referenced from the vendor
registered document is that the TDL scope inherits all STD definitions. Therefore, if a TDL reference
cannot be found in the current TDL and the current TDL is not STD then STD scope shall be searched if
the reference is not qualified as being strict.
If A_DATA_RCD were defined in both Standard and Vendor document scopes; then an non-strict
reference to this type shall be resolved as follows:
Referenced made in
Standard document
Vendor registered
document
Reference to A_DATA_RCD
STD.A_DATA_RCD
TDL.A_DATA_RCD
STD.A_DATA_RCD
TDL.A_DATA_RCD
Resolved in
Standard
Standard
Standard
Vendor document
The reason for TDL.A_DATA_RCD, above, being resolved to Vendor when referenced from the vendor
registered document is that the vendors TDL scope hides matching STD for those types defined within
the vendor files. It is also important to note under the same conditions all TDL references made in the
Standard documents shall refer to the Standard scope and not the vendors scope.
If A_DATA_RCD was defined in the Vendor document scope only; then an non-strict reference to this
type shall be resolved as follows:
Referenced made in
Standard document
Vendor registered
document
Reference to A_DATA_RCD
STD.A_DATA_RCD
TDL.A_DATA_RCD
STD.A_DATA_RCD
TDL.A_DATA_RCD
Resolved in
Not found
Not found
Not found
Vendor document
432
ANSI C12.19-2008
The names of Tables, Decades and Procedures define container scopes. These are contained within the
TDL and STD.
Use of a Decade name, Table name, or Procedure name as a prefix to a type, enumerator or type
reference resolves the referenced entity starting at the top-most context of the corresponding decade,
table, or procedure referred, respectively.
Use of a decade name, table name, or procedure name in a value-expression shall be replaced by the
Decade, Table, or Procedure number. It is equivalent to typing the numeric value of the Decade, Table, or
Procedure number.
For example, assume that A_TBL (Table 102) and A_DEC (Decade 10) were defined in the Standard
document scope and B_TBL (Table 202) and B_DEC (Decade 20) were defined in the vendors
document scope then the following illustrates possible interpretations.
Referenced Name
A_TBL
A_DEC
B_TBL
B_DEC
A_TBL.IDENT
A_DEC.IDENT_RCD
B_TBL.DEMO
TYPE B_RCD = PACKED RECORD
B_VALUE : A_TBL.A_RCD;
END;
Number
102
10
202
20
Interpreted to be
The constant 102.
The constant 10.
The constant 2250 = 202 + 2048.
The constant 20 (there is no distinction between
Standard Decade numbers and Manufacturer
Decade number ranges).
The element IDENT in the scope of Standard Table
102.
The IDENT_RCD packed record that is defined in the
scope of Standard Decade 10.
The first instance of the Element DEMO in the scope
of manufacturer Table 202.
The element B_VALUE is of type A_RCD that was
defined the scope of Standard table 102.
When processing fully qualified references that begin with TDL or STD as per referenceScope, the
search shall begin in the left most scope (outer) and proceeded towards the right (the inner-most scope)
leading to the resolution of the reference. If the reference cannot be resolved and the outer scope is TDL
and the scope qualifier is not strict then a second search shall be performed, this time using STD instead
of TDL. If the reference cannot be resolved the search shall fail.
When processing fully qualified references that begins with decScopeReference, tblScopeReference or
procScopeReference the search shall begin in the left most scope (outer) and proceeded toward the right
(the inner-most scope) leading to the resolution of the reference. If the reference cannot be resolved, the
search shall fail.
When processing partially qualified references that begin with rcdIdentifier, bfldIdentifier enumIdentifier or
constIdentifier the initial search for the rcdIdentifier, bfldIdentifier enumIdentifier or constIdentifier shall
begin in the current scope, (the scope where the reference was made) then if not found repeat in each of
the parent scopes of the current document (TDL scope) until a match is found or until a match is not
found. If the current document is vendor registered, then the search shall be repeated once in the STD
scope of the registered referenced Standard. An exception to the above rule shall apply when a current
scope being processed is a Table or Procedure that has been associated with a Decade scope. In this
case, the Decade scope shall be searched first then search shall continue in the TDL scope where that
Decade is defined. Once all parent components were found, the reference shall be considered resolved;
otherwise, it shall be considered unresolved.
All rcdIdentifier, bfldIdentifier, enumIdentifier and constIdentifier shall be unique within any inner scope
where they were defined. rcdIdentifier, bfldIdentifier enumIdentifier and constIdentifier may be defined in
433
ANSI C12.19-2008
an inner scope and an outer scope (upper). The first matching definition shall be the resolved one
according to the search rules defined above.
Example: Assume that A_RCD and A_TBL were defined in A_DEC and A_RCD was also defined in
A_TBL of a Standard document, then:
Referenced Name
A_RCD
A_RCD
A_DEC.A_RCD
A_RCD
A_TBL.A_RCD
Reference
d from
TDL
A_DEC
Anywhere
A_TBL
Anywhere
Resolves to
Not Found
A_RCD defined in A_DEC
A_RCD defined in A_DEC
A_RCD defined in A_TBL
A_RCD defined in A_TBL
arrayElementName
setElementName
index
localElement
::= (simpleElementName |
arrayElementName S* [ index ] | { index is the element position in the array. }
setElementName S* [ index ] | { index is the bit position in the set.}
S* localElement S* ) { This definition may be used to refer to run-time
instantiated Table Element value. Correct dimensions (see index) shall
be provided to by the application to avoid an error assert condition. A
typical use is to refer to a specific value of an element for the purpose of
communication or calculation.} ;
elementRoot
434
ANSI C12.19-2008
element
::= elementRoot
elementRoot ([.] S* psuedoElementName)
[.]? S* psuedoElementName
S* element S* ;
{ Form 1 } |
{ Form 2 } |
{ Form 3 } |
finalElement
::= elementReferenceRoot
elementReferenceRoot ([.] S* psuedoElementName)
[.] S* psuedoElementName
S* elementReference S* ;
{ Form 1 } |
{ Form 2 } |
{ Form 3 } |
Example
GEN_CONFIG_TBL.FORMAT_CONTROL_1.DATA_ORDE
R
GEN_CONFIG_TBL
DATA_ORDER
.DATA_ORDER
Description
The value of DATA_ORDER
found
in
the
FORMAT_CONTROL_1 bit field
of GEN_CONFIG_TBL.
The numeric value assigned to
GEN_CONFIG_TBL (0).
Assuming a reference in the
scope of GEN_CONFIG_TBL (in
this example) it is the value of
DATA_ORDER. DATA_ORDER
is the first Final Element that
bears this name, when searched
sequentially, starting from the
beginning of the table which
contains it.
The value of DATA_ORDER.
DATA_ORDER is the first finalelement that bears this name,
when found following a search
starting with its current scope
then continuing towards outer
scopes.
435
ANSI C12.19-2008
GEN_CONFIG_TBL.STD_TBLS_USED[0].lastDimension
GEN_CONFIG_TBL.STD_TBLS_USED.lastDimension
GEN_CONFIG_TBL.FORMAT_CONTROL_2.lastIndex
GEN_CONFIG_TBL.STD_PROC_USED.lastIndex
436
ANSI C12.19-2008
tdlScopeReference
stdScopeReference
::= std { The top-level scope of the standard document. When the Standard
document is also the active document, then use of tdlScopeReference is
equivalent to use of stdScopeReference. } ;
decScopeReference
::= decIdentifier { The scope of the identified decade is the Decade name. } ;
tblScopeReference
::= tblIdentifier { The scope of the identified table is the Table name. } ;
procScopeReference
::= procIdentifier { The scope of the identified procedure is the Procedure name. }
;
referenceScope
::=
rcdReference
bfldReference
G.6.3 Value
A value shall be a signed or unsigned integer, a reference to a decade, table or procedure number or a
reference to a final element whose value can be converted to an integer. A value (in contrast to
anyValue) returns an integer result based on the following conversion rules:
1. NI_FMAT1 and NI_FMAT2 , floatingPoint, floatingPointCHAR and fixedPointBCD shall be
truncated to an integer value.
2. BCD where shall return zero if it cannot be reduces to a valid fix point number; or the be
truncated to an integer value representation of the BCD number.
3. BCD, fixed or floating point elements shall be truncated to an integer value.
4. STRING or CHAR elements shall return zero if their length is zero, or they hold only space;
otherwise they shall return one.
5. Boolean and SET members types return zero (false) or one (true).
6. FILL types and NIL type shall return zero.
7. Inaccessible final elements (as per elements that are defined in a table that is unavailable in a
run-time instance of the End Device table set) shall return zero.
8. Inaccessible final element (as per elements that are not available for selection due to nonmatching condition of an IF or SWITCH clause) shall return zero.
437
ANSI C12.19-2008
9. Inaccessible final elements (as per elements that are not available for selection due to
irresolvable reference in the table set) shall return zero, and flag a table set error condition.
10. The pseudo final element lastDimension shall return the actual number of Elements in its parent
container, if the parent element is not an array; otherwise, it shall return the actual extent of its
containing array. i.e., lastDimension reports the actual number of siblings shared by the referred
Element + 1.
11. The pseudo Final Element lastIndex shall return the Elements inner-most index relative to the
beginning of its defining packed record, bit field, array or set. When the referenced Element is a
packed record or a bit field this value shall be identical to the Element index defined by the
defining syntax. When the referred element is an array or a set member then this is the index to
the Element position within the array or set.
anyValue ::=
value
infixMathExpression
::=
cond
::= mathExpression
/constraint : text If the result is zero it shall be interpreted as
BNF.false; otherwise it shall be interpreted as BNF.true
'?' mathExpression { true case } (':' mathExpression {false case })? ;
mathExpression ::=
infixMathExpression
cond
prefixOp mathExpression
anyValue |
( mathExpression ) |
S* mathExpression S*
intMathExpression ::=
prefixOp
+
-
~
::=
!
multOp
438
::=
{ Infix expression } |
{ Conditional expression } |
{ A prefixed expression } |
{ A simple unsigned numeric value }
{ A parenthesized expression }
{ Allow for spaces for readability } ;
{ Evaluation is always cast to a signed
{ Multiplication operator } |
{ Division operator } ;
ANSI C12.19-2008
addOp
::=
+
-
{ Addition operator } |
{ Subtraction operator } ;
bitShiftOp
::=
(<<
>>
>>>
condCmpOp
::=
<
>
>=
<=
{ Less-than operator. } |
{ Greater-than operator } |
{ Greater-than or equal-to operator } |
{ Less-than or equal-to operator } ;
condEqOp
::=
==
!=
{ Equality operator } |
{ Inequality operator } ;
bitAndOp
::=
&
bitXOrOp
::=
bitOrOp
::=
logAndOp
::=
&&
logOrOp
::=
||
infixOp
::=
G.7 Conditionals
G.7.1 IF statements
The IF condition shall be a Boolean resulting from the evaluation of an intMathExpression. If the result is
zero it shall be interpreted as false; otherwise it shall be interpreted as true.
439
ANSI C12.19-2008
condition
::=
intMathExpression ;
Octet
...
Octet
...
Octet
...
Octet
15..8
Least Significant
Byte
Octet
7..0
n = # of octets used
Figure H.3Sub-types and bit field bit ordering
A bit field shall be created by bfldType. A bit field may contain one or more IF or SWITCH statements to
modify its structure under some conditions. For the purpose of transport, the dimensions of a bit field and
its octet ordering shall be defined in terms of a basic data type (Section 5.4) as expressed in
bfldAssignedType. The bit field identifier, bfldIdentifier, is the name of the derived bit field data type, and it
can be referenced anywhere as if it were a built-in data type.
bfldAssignedType::=
unsignedInt
bfldType
::=
bfldMember
::=
startBitInclusive ::=
endBitInclusive ::=
bfldBitRange
440
::=
ANSI C12.19-2008
subType
::=
bfldIf
::=
bfldCase
::=
bfldCaseMember
::=
G.9 Set
A SET is a sizedType member of the type set. It is a collection of Booleans, eight Booleans per octet. The
dimension of a SET is thus measured in octets, where each octet is a atomic element. Each Boolean
member of the SET is a final element.
SETs are transmitted as an array of UINT8, however when using array notation, indices to SET members
refer to the Boolean bits and not to the octet. When transmitted, indices and offsets refer to the UINT8
atomic element. The first octet transmitted contains bit 0 though 7, of the SET, the second octet contains
bits 8 through 15, as shown below.
Octet number
Bit number
Octet 1
Octet 2
Octet n
7 to 0
15 to 8
((n*8)-1) to ((n*8)-8)
Figure H.4Set octets and bit ordering
FLAGS_USED : SET(16);
IF FLAGS_USED[1] THEN
END;
IF GEN_CONFIG_TBL.STD_TBLS_USED[UDT_0_TBL] THEN
END;
Note that in this last example, UDT_0_TBL used in this context is interpreted as the corresponding table
number (84). Also FLAGS_USED[1] is a reference to the second bit (bit 1) of the first octet of 16 in the
SET.
441
ANSI C12.19-2008
G.10 Array
Repetitions of the same data type, used to describe a single element, can be grouped together in an
array. Array elements are indexed starting with zero. Arrays are always transmitted from element zero to
the last element. The order of transmission of an element is a function of the data type being used.
Element 0
Element 1
...
Element n-2
Element n-1
rcdMember
rcdIf
::=
rcdCase
::=
442
rcdCaseMember::=
ANSI C12.19-2008
G.12 Constants
Constants are symbolic representations of integer values that may be used in any math expression, and
to reference ARRAY and SET elements by position. Table names, decade names, and procedure names
are implicit constants derived from their respective number.
?
constType
constMember
constValue
Example 1:
TYPE ERROR_BITS_ENUM = CONSTANTS
TAMPER_CNST
:0;
REVERSE_FLOW_CNST
:1;
END;
Example 1 above shows a constants declaration in some document, decade, table or procedure scope.
This declaration permits the use of the identifiers TAMPER_CNST and REVERSE_FLOW_CNST in any
mathematical expression. Their numeric equivalent values shall be used (in this case 0 and 1
respectively). Conflicts in constant names can be resolved by providing better scope resolution, such as
ERROR_BITS_ENUM.TAMPER_CNST, or ERROR_TBL.ERROR_BITS_ENUM.TAMPER_CNST as
needed.
Example 2:
TYPE ERROR_BITS_RCD.ERROR_BITS_ENUM = CONSTANTS
TAMPER_CNST
:0;
REVERSE_FLOW_CNST
:1;
END;
Example 2 above shows a constants declaration that associates the positional constant assignments that
were made for a SET or ARRAY element that is located inside ERROR_BITS_RCD (See TDL File Form
unnamed enumerators). This declaration permits the use of the identifiers TAMPER_CNST and
443
ANSI C12.19-2008
REVERSE_FLOW_CNST in any mathematical expression. Their numeric equivalent values shall be used
(in this case 0 and 1 respectively). Conflicts in constant names cane be resolve by providing better scope
resolution,
such
as
ERROR_BITS_ENUM.TAMPER_CNST,
or
ERROR_TBL.ERROR_BITS_ENUM.TAMPER_CNST
or
ERROR_TBL.ERROR_BITS_RCD
.ERROR_BITS_ENUM.TAMPER_CNST as needed.
G.13 Tables
Tables expose and instantiate one packed record into a final data structure. This packed record shall be
resolved before it is used in a table. The table element also introduces a table scope. All types and
enumerators that are defined inside a table scope are local to the tables scope without conflict with all
other types that may be defined in any other scope.
tableDefinition ::= table S+ tblNumber S+ tblIdentifier S* = S* rcdReference S* ; |
S* tableDefinition S* ;
G.14 Procedures
Procedures represent actions that can be performed by the End Device. A procedure is initiated by
writing to table 7 and the result is retrieved by reading table 8. The rcdReference in the request part of
this statement defines the PARM_RCD in table 7. Similarly, the rcdReference in the response part of this
statement defines the RESP_DATA_RCD in table 8.
procDefinition ::=
The procDefinition introduces a procedure definition and a procedure scope. All types defined inside a
procedure scope are local to the procedures 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.
Each procedure request parameter shall extend STD.PROC_INITIATE_TBL.STD_PARM_RCD (or
MFG_PARM_RCD) with the request rcdIdentifier. Each procedure response parameter shall extend
STD.PROC_RESPONSE_TBL.STD_RESP_RCD (or MFG_RESP_RCD) with the response rcdIdentifier.
The decision whether Standard (STD) or Manufacturer (MFG) target parameters and responses are used
is guided by the procedure type, being standard or manufacturer.
The invocation of the procDefinition directive, effectively builds an extension to PROC_INITIATE_TBL
and PROC_RESPONSE_TBL.
Example: The following shows the result of invoking procDefinition for standard procedure numbers X, Y
and Z, and manufacturer procedures X and Y.
444
ANSI C12.19-2008
IF PROC.TABLE_PROC_NBR == Y THEN
PROC_DATA_Y : rcdIdentifier ;
END;
IF PROC.TABLE_PROC_NBR == Z THEN
PROC_DATA_Z : rcdIdentifier ;
END;
END;
TYPE MFG_PARM_RCD = PACKED RECORD
IF PROC.TABLE_PROC_NBR == X THEN
PROC_DATA_X : rcdIdentifier ;
END;
IF PROC.TABLE_PROC_NBR == Y THEN
PROC_DATA_X : rcdIdentifier ;
END;
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;
The index of each implied IF statement is the procedure number, thus ensuring that the extension is not
order of declaration dependent. The listing below illustrates this process when applied to Table 7,
PROC_INITIATE_TBL:
Example index values for element of PROC_FORMAT_RCD that are found in Table 7,
PROC_INITATE_TBL
Procedure #
Element Name
Element
Index
PROC
0
SEQ_NBR
1
0
PARM. STANDARD
2.0
1
PARM. STANDARD
2.0
2
PARM. STANDARD
2.0
3
PARM. STANDARD
2.0
4
PARM. STANDARD
2.0
445
ANSI C12.19-2008
Example index values for element of PROC_FORMAT_RCD that are found in Table 7,
PROC_INITATE_TBL
Procedure #
Element Name
Element
Index
PARM. STANDARD.PROC_DATA_4.LIST
2.0.4.0
5
PARM. STANDARD.PROC_DATA_5
2.0.5
PARM. STANDARD.PROC_DATA_5.LIST
2.0.5.0
PARM. STANDARD.PROC_DATA_5.ENTRIES_READ
2.0.5.1
6
PARM. STANDARD PROC_DATA_6
2.0.6
PARM. STANDARD.PROC_DATA_6.ED_MODE
2.0.6.0
3
PARM. MANUFACTURER.PROC_DATA_3
2.1.3
PARM. MANUFACTURER.PROC_DATA_3.FEATURE
2.1.3.0
PARM. MANUFACTURER.PROC_DATA_3.KEY
2.1.3.1
Etc.
::=
tblIdentifier
{ Any Table name } |
'ST' S* '(' slmIntMathExpression ')'
{ Shorthand for BNF.tblIdentifier that is
also a Standard Table. } |
'MT' S* '(' slmIntMathExpression ')'
{ Shorthand for BNF.tblIdentifier that is
also a Manufacturer Table. } |
S* tblIdentifierOrAlias S* ;
slmLocalElement::=
slmElementRoot ::=
slmElement
::=
slmFinalElement::=
slmValue
::=
slmIntMathExpression
::=
slmMathExpression /constraint : BNF.int
signed integer. } ;
slmInfixMathExpression
::=
slmMathExpression infixOp slmMathExpression { Infix expression following the
precedence rules of BNF.infixOp. } ;
slmMathExpression
446
::=
ANSI C12.19-2008
{ Infix expression } |
{ A function with arguments } |
{ A conditional expression } |
{ A prefixed expression. } |
{ A simple numeric value } |
{ A parenthesized expression } |
slmValueOrReference
::=
slmMathExpression | slmElement { The Element may be Final Element or the
name of an array, set or derived type. This facilitates the use of an
expressions in arguments to function that operates on a data structure
not only a Final Element. Example: The SLM expression
@SUM(GEN_CONFIG_TBL.STD_TBLS_USED) may sum all the set
bits in the set, yielding the number of Standard Tables used by the End
Device. } ;
slmFunctionArgs::=
slmFunction
::=
'SL' S* '(' slmIntMathExpression ')' { Alias for the result returned by the SLM expression
found at index BNF.arrayElementName [ BNF.slmIntMathExpression]
entry of the table which contains the 'SL' term. This is equivalent a
verbatim replacement of the expression IN(BNF.slmIntMathExpression)
with the SLM expression
found at the integer index BNF.slmIntMathExpression of the
array of the referencing SLM. } |
'IN' S* '(' slmIntMathExpression ')'
{ Alias for the value sensed, measured of
reported value by the associated source selection at index
BNF.slmIntMathExpression in the array of source selections that related
to this SLM. Example: Assume we have three sources: RMS Volts
(Vrms at index 0), RMS Current (Irms at index 1) and Apparent Power
(VA at index 2) then the SLM expression "IN(0) * IN(1)" indicates that
the Apparent Power VA was computed as the product of Irms and
Vrms. } |
'OU' '(' slmIntMathExpression ')' ('=' slmMathExpression)? { Alias for sensing and optional
driving an outptut control BNF.slmIntMathExpression } |
'@' simpleElementName S* '(' slmFunctionArgs ')' { A predefined function name. Example
@ABS(BNF.slmMathExpression).} |
S* slmFunction S* ;
447
ANSI C12.19-2008
Example 3: Assuming that source select 0 is Volts RMS and source select 1 is Ampere RMS and source
select 2 is VA apparent then the following expression expresses VA apparent:
IN(0) * IN(1)
Example 4: If the the average demand is > 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
::=
enumMember
::=
enumerator
::=
memberProperties
::=
commonProperties enumerator? ;
commonProperties
::=
448
ANSI C12.19-2008
S* commonProperties S* ;
fieldProperties
::=
typeProperties
::=
tblProperties
::=
commonProperties? typeProperties* ;
procProperties
::=
commonProperties? typeProperties* ;
properties
::=
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;
449
ANSI C12.19-2008
450
ANSI C12.19-2008
451
ANSI C12.19-2008
C1219TDLSchema.xsd
C1219TDLTransform.xsl
XSL Processor
C1219TDL-xxxx.xml
Document Form of
Section 9
Figure I.1Production 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.2Production 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.3Production of the Document Form (Document Format of Annex C, Default Sets for Decade
Tables) from the EDL XML default sets file.
452
ANSI C12.19-2008
C1219TDLSchema.xsd
C1219TDLIndicesTransform.xsl
XSL Processor
C1219TDL-xxxx.xml
Document Form of
Annex D
Figure I.4Production 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
C1219TDL-xxxx-EDLSChema.xsd
<MfgEdClass>-EDLSChema.xsd
<MfgEdClass>-Data.xml
(AMI Exchange Data)
<MfgEdClass>.doc
AMI Exchange
Application
Figure I.5From 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
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
C1219TDLTransform.xsl
C1219EDLTransform.xsl
C1219TDLIndicesTransform.xsl
C1219TDL-xxxx.xml
C1219TDL-xxxx-DefaultSet.xml
<MfgEdClass>.xml (.a.b.c.d)
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
manufacturers
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
manufacturers
documentation. This file is also
an input to an AMI application
File Name
ANSI C12.19-2008
<MfgEdClass>-Constants.xml
(.a.b.c.d)
<Utility-Site>-Constants.xml
(.a.b.c.d)
<MfgEdClass>.doc (.a.b.c.d)
C1219TDL-xxxxEDLSChema.xsd
<MfgEdClass>-EDLSchema.xsd
(.a.b.c.d)
<MfgEdClass>-Data.xml
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
manufacturers Document Form,
based on the <MfgEdClass>.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
Manufacturers
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.
455
ANSI C12.19-2008
<!ATTLIST
tdl
version
deviceClass
standard
registry
isoBranch
title
validation
date
CDATA
CDATA
CDATA
CDATA
CDATA
CDATA
CDATA
CDATA
deviceClass
standard
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
Name
registry
isoBranch
Document Form
Equivalent
title
validation
date
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.
457
ANSI C12.19-2008
Description
Default = true. The description element is used to
annotate elements that may be conditional by virtue
of being contained in <if>/<then>, <if>/<else>,
<switch>/<case> 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 <description> 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.
<!ELEMENT br
EMPTY>
<!ELEMENT p
<!ATTLIST p
<!ELEMENT pre
(#PCDATA)>
(li)*>
style ( arabic | alpha | roman | ALPHA | ROMAN ) #IMPLIED>
<!ELEMENT li
<!ELEMENT ul (li)*>
<!ATTLIST ul
<!ELEMENT li
<!ATTLIST li
458
#IMPLIED>
ANSI C12.19-2008
<!ELEMENT caption
<!ATTLIST caption
<!ELEMENT col
<!ATTLIST col
EMPTY>
align
span
valign
width
#IMPLIED
#IMPLIED
#IMPLIED
#IMPLIED
#IMPLIED
#IMPLIED >
#IMPLIED
1
#IMPLIED
#IMPLIED>
(tr)+>
(left | right | center | justify )
(CDATA)
(top | middle | bottom)
(CDATA)
#IMPLIED
1
#IMPLIED
#IMPLIED>
<!ELEMENT tr
(th | td)+>
459
ANSI C12.19-2008
Document Form
Equivalent
Sub-section heading.
br
p
pre
blockquote
Indented or highlighted
text.
ol
Numerically ordered-items
list.
ul
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.
ANSI C12.19-2008
indent
Table document
equivalent
The paragraph text
alignment.
Description
Default = inherited from previous paragraph. If this is
the first instance within a <description> 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 <description> 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.
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
Document Form
Equivalent
One list item.
Description
Force a line break with inter-paragraph spacing.
Place the next enumeration in order (<ol> case) or
next symbol (<ul> case) or the string presented by
the value attribute as a left hanging indent (<ul>
case), followed by the descriptive content as a
paragraph.
461
ANSI C12.19-2008
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 <dd>).
Publish the definitions decription data to the right (or
on a next line) of the definition term that was
specified by the preceding <dt> element.
462
ANSI C12.19-2008
<!ELEMENT
condition (#PCDATA)>
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.
463
ANSI C12.19-2008
>
I.2.4.2 <enumerator> 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
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
465
ANSI C12.19-2008
Name
Document Form
Equivalent
type is placed the syntax
section.
strict
label
align
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
Name
quote
Document Form
Equivalent
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.
467
ANSI C12.19-2008
Value
0
1
2
Definition
The following are the unit of measure codes.
Active power - W
Reactive power - VAR
Apparent power - VA
>
The use of unnamed enumerator shall be restricted to immediate children of <element>, <subElement>,
<array> or <set>.
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 <positional> Document Form
Introduces a BNF.enumerator definitions in the Elements description. No syntax is produced in the
definition syntax section. The description shall list all non-default constraints expressed in the subelements <description>, <enum> and <default>.
468
ANSI C12.19-2008
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 <description> 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.
469
ANSI C12.19-2008
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.
470
ANSI C12.19-2008
text
Document Form
Equivalent
None
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.
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 definitions 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
override
redefine
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 <enumerator> elements
redefinition of <description> elements
redefinition of <extension> elements
redefinition of <element> name attributes.
ANSI C12.19-2008
showRedefined
strict
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
Value
Definition
Non-default properties: Atomic = true.
Current End Device time.
See DATE_TIME_QUAL_BFLD above.
474
ANSI C12.19-2008
type
enumerator
length
Document Form
Equivalent
Publishes the Element
name in the syntax and
description sections.
label
None
min
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 <if> or <switch> 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 <packedRecord> for
more details.
475
ANSI C12.19-2008
atomic
deprecated
metrological
volatile
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.
</packedRecord >
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
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.
type
length
dimension
Document Form
Equivalent
Publishes the array name
in
the
syntax
and
description sections.
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 <if> or <switch> 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
label
enumerator
accessibility
atomic
deprecated
metrological
volatile
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" <packedRecord> 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 Elements
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 arrays 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 Elements value.
When
the
volatile
attribute
is
set
to
AUTO_AS_PER_ROLE (default value) then the
values of the Tables attribute role should be probed
to determine the volatility of this element according to
the Tables role as follows: CONTROL sets volatility
to false; DATA sets volatility to true; LIMITING
478
ANSI C12.19-2008
: 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.
479
ANSI C12.19-2008
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 <if> or <switch>
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" <packedRecord> 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 sets 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
Name
ANSI C12.19-2008
Document Form
Equivalent
the element shall
generated.
Description
be
: 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
Definition
481
ANSI C12.19-2008
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.
482
ANSI C12.19-2008
</packedRecord>
483
ANSI C12.19-2008
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_IDENT_RCD
FW_REVISION_NUMBER
MFG_SERIAL_NUMBER
Description
An expression encoded as BNF.intMathExpression
and reduces to a integer value.
484
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 <case> Element (Child of <packedRecord>/<switch>)
The <case> definitions are mapped to the BNF.rcdCaseMember which introduces the CASE token in the
syntax section.
I.2.14.5 <case> DTD
<!ELEMENT case ((description, extension?)? | element | array | set | if | switch | assert)*)>
<!ATTLIST case
startValueInclusive CDATA
#REQUIRED
endValueInclusive CDATA
#IMPLIED>
I.2.14.6 <case> 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.
485
ANSI C12.19-2008
<switch selection="GEN_CONFIG_TBL.NAMEPLATE_TYPE">
<case startValueInclusive="0">
<element name="G_GAS_DEVICE" type="G_GAS_DEVICE_RCD">
<description>
Element present when the End Device is a gas meter.
See <b>G_GAS_DEVICE_RCD</b> for details.
</description>
</element>
</case>
<case startValueInclusive="1">
<element name="W_WATER_DEVICE" type="W_WATER_DEVICE_BFLD">
<description>
Element present when the End Device is a water meter.
See <b>W_WATER_DEVICE_BFLD</b> for details.
</description>
</element>
</case>
<case startValueInclusive="2">
<element name="E_ELECTRIC_DEVICE" type="E_ELECTRIC_DEVICE_RCD">
<description>
Element present when the End Device is an electricity meter.
See <b>E_ELECTRIC_DEVICE_RCD</b> for details.
</description>
</element>
</case>
<default >
<element name="RESERVED" type="NIL">
<description documentation="false">Reserved.</description>
</element>
</default>
</switch>
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.
E_ELECTRIC_DEVICE
ANSI C12.19-2008
Document Form
Equivalent
Publishes the bit field
name in the syntax and
description sections.
type
replace
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
override
redefine
488
showRedefined
strict
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
489
ANSI C12.19-2008
</bitField>
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
ANSI C12.19-2008
Value
Identifier
STATUS_BFLD
Definition
Selectors indicating action to be performed upon
activation of selected Pending Table.
EVENT_CODE
1
2
3..15
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>. 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
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
The bit number representing the last bit of this subelement. If it is not supplied then it takes the value of
the startBitInclusive.
ANSI C12.19-2008
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 Tables attribute role should be probed
to determine the volatility of this elements according
to the Tables 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.
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.
493
ANSI C12.19-2008
494
ANSI C12.19-2008
CDATA
#REQUIRED>
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.
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.
495
ANSI C12.19-2008
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.
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.
label
ANSI C12.19-2008
</deacde>
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
497
ANSI C12.19-2008
metrological
volatile
class
(true | false)
false
(true | false | AUTO_AS_PER_ROLE) AUTO_AS_PER_ROLE>
((CDATA) | STD | STD.UDT | STD.EUDT)
STD>
label
type
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<x>_BFLD.MFG_FLAG and the <tdl>
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
ANSI C12.19-2008
associate
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
metrological
volatile
499
ANSI C12.19-2008
class
None.
500
ANSI C12.19-2008
</element>
</then>
<else>
<element name="TIER_TIME_REMAIN" type="UINT16">
<description>
Minutes, remaining before the next tier change.
</description>
</element>
</else>
</if>
<element name="SELF_READ_DAYS_REMAIN" type="UINT8">
<description>
Days remaining before the next scheduled Self-read.
</description>
</element>
</packedRecord>
</table>
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
DEMAND_TIER_TIME_REMAIN
501
ANSI C12.19-2008
TIER_TIME_REMAIN
0..65535
0..65535
SELF_READ_DAYS_REMAIN 0..255
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
ANSI C12.19-2008
label
Published
in
the
Procedure section header.
associate
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
metrological
503
ANSI C12.19-2008
properties: Metrological =
value" in the description of
the Procedure shall be
generated.
class
None.
504
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
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
PROC_INITIATE_TBL.STD_PARM_RCD
or
PROC_RESPONSE_TBL.STD_RESP_RCD (subject
to the target selected).
strict
506
ANSI C12.19-2008
Table document
equivalent
name
alias
atomic
accessibility
class
role
volatile
metrological
deprecated
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 <tdl>/<table> and|
<decade>/<table>
See accessibility attribute of <tdl>/<table> and
<decade>/<table>
See class attribute of <tdl>/<table> and
<decade>/<table>
See
role
attribute
of
<tdl>/<table>
|
<decade>/<table>
See volatile attribute of <tdl>/<table> and
<decade>/<table>
See metrological attribute of <tdl>/<table> and
<decade>/<table>
See deprecated attribute of <tdl>/<table> and
<decade>/<table>
507
ANSI C12.19-2008
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 <tdl>/<procedure> and
<decade>/< procedure >
See accessibility attribute of <tdl>/<procedure> and
<decade>/<procedure>
See metrological attribute of <tdl>/<procedure> and
<decade>/< procedure >
See deprecated attribute of <tdl>/<procedure> and
<decade>/<procedure>
alias
atomic
accessibility
metrological
deprecated
Description
508
ANSI C12.19-2008
Table document
equivalent
name
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 <element>, <subElement>,
<array> or <set>.
See
accessibility
attribute
of
<element>,
<subElement>, <array> or <set>.
See
metrological
attribute
of
<element>,
<subElement>, <array> or <set>.
See volatile attribute of <element>, <subElement>,
<array> or <set>.
See
accessibility
attribute
of
<element>,
<subElement>, <array> or <set>.
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 <packedRecord>.
See accessibility attribute of <packedRecord>.
See metrological attribute of <packedRecord>.
See deprecated attribute of <packedRecord>.
509
ANSI C12.19-2008
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 <bitField>.
See accessibility attribute of < bitField >.
See metrological attribute of < bitField >.
See deprecated attribute of < bitField >.
atomic
accessibility
metrological
deprecated
condition (#PCDATA)>
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.
ANSI C12.19-2008
511
ANSI C12.19-2008
edl
<!ATTLIST
edl
xmlns[:name]
deviceClass
registry
isoBranch
standard
title
version
defaultSetUsed
CDATA
CDATA
CDATA
CDATA
CDATA
CDATA
CDATA
CDATA
#REQUIRED
#REQUIRED
#IMPLIED
#IMPLIED
#IMPLIED
#IMPLIED
#IMPLIED
0>
deviceClass
registry
isoBranch
standard
512
Document Form
Equivalent
Not expressed in
Document Form.
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
Name
Document Form
Equivalent
version
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.
::= BNF.tblIdentifier
/ constraint : text { The name of a Table obtained from
the name attribute of a <table> 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 <table> 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
/ match : /tdl//set/@name );
For example if the TDL XML Form contains entries like:
<table name=ACT_REGS_TBL number=21 type=REGS_RCD role=LIMITING
</table>
<table name=CURRENT_REG_DATA_TBL number=23 type=REGISTER_DATA_RCD
</table>
Then the pseudo DTD definition
<!ELEMENT
${tableName}
(${elementName})*>
<!ATTLIST
${tableName}
source
instance
number
(standard | manufacturer)
(active | pending)
CDATA
#IMPLIED
active
#IMPLIED
>
Is a valid production rule for the above Table entries in an EDL file.
<ACT_REGS_TBL source= standard instance=active number=21> </ACT_REGS_TBL>
and
<CURRENT_REG_DATA_TBL> </CURRENT_REG_DATA_TBL>
514
ANSI C12.19-2008
${if-switch-clause}
EMPTY>
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:
<edl >
<data>
<DEVICE_IDENT_TBL>
<if-then-1/>
<!--See ${if-switch-clause} -->
<IDENTIFICATION index="0">10-20-30</IDENTIFICATION >
</DEVICE_IDENT_TBL>
</data>
</edl>
515
ANSI C12.19-2008
Case 2:
<edl >
<data>
<DEVICE_IDENT_TBL>
<if-else-1/>
<!--See ${if-switch-clause} -->
<IDENTIFICATION index="1">MY BEST METER</IDENTIFICATION >
</DEVICE_IDENT_TBL>
</data>
</edl>
defaultSet
number
(${limitingTableName}*)>
CDATA
#REQUIRED>
Description
The number of the default set presented by the
<defaultSet> parent element. For more details see
GEN_CONFIG_TBL.DEFAULT_SET_USED.
516
ANSI C12.19-2008
<NBR_DEMAND_CTRL_ENTRIES>0</NBR_DEMAND_CTRL_ENTRIES>
<DATA_CTRL_LENGTH>1</DATA_CTRL_LENGTH>
<NBR_DATA_CTRL_ENTRIES>1</NBR_DATA_CTRL_ENTRIES>
<NBR_CONSTANTS_ENTRIES>1</NBR_CONSTANTS_ENTRIES>
<CONSTANTS_SELECTOR>2</CONSTANTS_SELECTOR>
<NBR_SOURCES>1</NBR_SOURCES>
</ACT_SOURCES_LIM_TBL>
</defaultSet>
<defaultSet number="2">
<ACT_SOURCES_LIM_TBL>
<SOURCE_FLAGS>
<PF_EXCLUDE_FLAG>false</PF_EXCLUDE_FLAG>
<RESET_EXCLUDE_FLAG>true</RESET_EXCLUDE_FLAG>
<BLOCK_DEMAND_FLAG>true</BLOCK_DEMAND_FLAG>
<SLIDING_DEMAND_FLAG>false</SLIDING_DEMAND_FLAG>
<THERMAL_DEMAND_FLAG>false</THERMAL_DEMAND_FLAG>
<SET1_PRESENT_FLAG>false</SET1_PRESENT_FLAG>
<SET2_PRESENT_FLAG>false</SET2_PRESENT_FLAG>
<FILLER>0</FILLER>
</SOURCE_FLAGS>
<NBR_UOM_ENTRIES>0</NBR_UOM_ENTRIES>
<NBR_DEMAND_CTRL_ENTRIES>1</NBR_DEMAND_CTRL_ENTRIES>
<DATA_CTRL_LENGTH>1</DATA_CTRL_LENGTH>
<NBR_DATA_CTRL_ENTRIES>2</NBR_DATA_CTRL_ENTRIES>
<NBR_CONSTANTS_ENTRIES>1</NBR_CONSTANTS_ENTRIES>
<CONSTANTS_SELECTOR>2</CONSTANTS_SELECTOR>
<NBR_SOURCES>2</NBR_SOURCES>
</ACT_SOURCES_LIM_TBL>
</defaultSet>
<defaultSet number="3">
<ACT_SOURCES_LIM_TBL>
<SOURCE_FLAGS>
<PF_EXCLUDE_FLAG>true</PF_EXCLUDE_FLAG>
<RESET_EXCLUDE_FLAG>true</RESET_EXCLUDE_FLAG>
<BLOCK_DEMAND_FLAG>true</BLOCK_DEMAND_FLAG>
<SLIDING_DEMAND_FLAG>false</SLIDING_DEMAND_FLAG>
<THERMAL_DEMAND_FLAG>false</THERMAL_DEMAND_FLAG>
<SET1_PRESENT_FLAG>false</SET1_PRESENT_FLAG>
<SET2_PRESENT_FLAG>false</SET2_PRESENT_FLAG>
<FILLER>0</FILLER>
</SOURCE_FLAGS>
<NBR_UOM_ENTRIES>0</NBR_UOM_ENTRIES>
<NBR_DEMAND_CTRL_ENTRIES>3</NBR_DEMAND_CTRL_ENTRIES>
<DATA_CTRL_LENGTH>1</DATA_CTRL_LENGTH>
<NBR_DATA_CTRL_ENTRIES>2</NBR_DATA_CTRL_ENTRIES>
<NBR_CONSTANTS_ENTRIES>1</NBR_CONSTANTS_ENTRIES>
<CONSTANTS_SELECTOR>2</CONSTANTS_SELECTOR>
<NBR_SOURCES>2</NBR_SOURCES>
</ACT_SOURCES_LIM_TBL>
</defaultSet>
<defaultSet number="4">
<ACT_SOURCES_LIM_TBL>
<SOURCE_FLAGS>
517
ANSI C12.19-2008
<PF_EXCLUDE_FLAG>false</PF_EXCLUDE_FLAG>
<RESET_EXCLUDE_FLAG>false</RESET_EXCLUDE_FLAG>
<BLOCK_DEMAND_FLAG>true</BLOCK_DEMAND_FLAG>
<SLIDING_DEMAND_FLAG>false</SLIDING_DEMAND_FLAG>
<THERMAL_DEMAND_FLAG>false</THERMAL_DEMAND_FLAG>
<SET1_PRESENT_FLAG>false</SET1_PRESENT_FLAG>
<SET2_PRESENT_FLAG>false</SET2_PRESENT_FLAG>
<FILLER>0</FILLER>
</SOURCE_FLAGS>
<NBR_UOM_ENTRIES>0</NBR_UOM_ENTRIES>
<NBR_DEMAND_CTRL_ENTRIES>1</NBR_DEMAND_CTRL_ENTRIES>
<DATA_CTRL_LENGTH>1</DATA_CTRL_LENGTH>
<NBR_DATA_CTRL_ENTRIES>2</NBR_DATA_CTRL_ENTRIES>
<NBR_CONSTANTS_ENTRIES>1</NBR_CONSTANTS_ENTRIES>
<CONSTANTS_SELECTOR>2</CONSTANTS_SELECTOR>
<NBR_SOURCES>2</NBR_SOURCES>
</ACT_SOURCES_LIM_TBL>
</defaultSet>
</edl>
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
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
518
${limitingTableName}
(${if-switch-clause}?, ${elementName}*)>
<!ATTLIST
${limitingTableName}
source
number
ANSI C12.19-2008
(standard | manufacturer)
CDATA
#IMPLIED
#IMPLIED
Document Form
Equivalent
A publication of the type of
table being manufacturer
or standard.
source
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.
data
(${tableName}*)>
${tableName}
<!ATTLIST
${tableName}
source
instance
number
519
ANSI C12.19-2008
binary
CDATA
#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 <pendingHeader> element may be
included.
The elements of the PENDING_EVENT_DESC_RCD
mapped
into
the
corresponding
EDL
<${elementName}.> 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.
<!ATTLIST
${elementName}
index
binary
CDATA
CDATA
#IMPLIED
#IMPLIED>
520
Document Form
Equivalent
The index of this Element
Description
The Elements relative position in the containing data
Name
binary
ANSI C12.19-2008
Document Form
Equivalent
is published in brackets to
the right of the Elements
name.
Hex dump of the values.
Description
type (e.g., position within a PACKED RECORD or a
BIT FIELD).
The Elements 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.
</ GEN_CONFIG_TBL>
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
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
521
ANSI C12.19-2008
<!ATTLIST
entry
index
binary
CDATA
CDATA
#IMPLIED
#IMPLIED>
binary
522
Document Form
Equivalent
Element index for
array or set member.
Description
this
ANSI C12.19-2008
523
ANSI C12.19-2008
CUM_DEMAND
TIER_DATA_BLOCK
3241.5
pendingHeader
<!ELEMENT
PENDING_EVENT_DESC_RCD
<!ELEMENT
<!ELEMENT
PENDING_EVENT_DESC_RCD>
(EVENTS_SELECTOR, EVENT_STORAGE)>
<!ELEMENT
EVENT_STORAGE
<!ELEMENT
524
ANSI C12.19-2008
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.
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
Document Form
Type
FILL64
Shall be set to 0.
BCD
CHAR
STRING
xsd:string
xsd:string
xsd:string
HTIME_DATE
LTIME_DATE
STIME_DATE
HTIME
TIME
STIME
xsd:dateTime
xsd:dateTime
xsd:dateTime
xsd:time
xsd:time
xsd:time
DATE
RDATE
xsd:date
xsd:unsignedShort
SET(n)
STRING(n)
BCD(n)
xsd:boolean
xsd:string
xsd:string
BINARY(n)
xsd:hexBinary
INT(n..m)
UINT(n..m)
BOOL(n)
xsd:long
xsd:unsignedLong
xsd:boolean
526
Comment
Universal Identifier
ANSI C12.19-2008
Universal identifier
<device-class-root-oid>.<device class id>
527
ANSI C12.19-2008
528
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
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 registers 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 <= SI REPEAT
IF SOURCES_TBL.SOURCES_LINK[K].UOM_ENTRY_FLAG == TRUE THEN
SI_UOM = SI_UOM + 1
END
K=K+1
END
END
END
529
ANSI C12.19-2008
IF ACT_SOURCES_LIM_TBL.NBR_DEMAND_CTRL_ENTRIES ==
ACT_SOURCES_LIM_TBL.NBR_SOURCES THEN
SI_DMD = SI
ELSE
SI_DMD = -1
IF SOURCES_TBL.SOURCES_LINK[SI].DEMAND_CTRL_FLAG == TRUE THEN
K=0
WHILE K <= SI REPEAT
IF SOURCES_TBL.SOURCES_LINK[K].DEMAND_CTRL_FLAG == TRUE
THEN
SI_DMD = SI_DMD + 1
END
K=K+1
END
END
END
IF ACT_SOURCES_LIM_TBL.NBR_DATA_CTRL_ENTRIES ==
ACT_SOURCES_LIM_TBL.NBR_SOURCES THEN
SI_CTL = SI
ELSE
SI_CTL = -1
IF SOURCES_TBL.SOURCES_LINK[SI].DATA_CTRL_FLAG == TRUE THEN
K=0
WHILE K <= SI REPEAT
IF SOURCES_TBL.SOURCES_LINK[K].DATA_CTRL_FLAG == TRUE THEN
SI_CTL = SI_CTL + 1
END
K=K+1
END
END
END
IF ACT_SOURCES_LIM_TBL.NBR_CONSTANTS_ENTRIES ==
ACT_SOURCES_LIM_TBL.NBR_SOURCES THEN
SI_CST = SI
ELSE
SI_CST = -1
IF SOURCES_TBL.SOURCES_LINK[SI].CONSTANTS_FLAG == TRUE THEN
K=0
WHILE K <= SI REPEAT
IF SOURCES_TBL.SOURCES_LINK[K].CONSTANTS_FLAG == TRUE THEN
SI_CST = SI_CST + 1
END
K=K+1
END
END
END
The above algorithm yields the values SI_UOM, SI_DMD, SI_CTL and SI_CST. Positive values are index
entries into the corresponding conversion factors of the related Tables 12, 13, 14 and 15. Negative values
imply that there is no applicable information available for that source.
Note: When Table 16 is not retrievable from the End Device (meter) or from the an EDL file then there
shall be an assumed correspondence of 1:1 between each entry index in Table 16 and index into the
530
ANSI C12.19-2008
531
ANSI C12.19-2008
CHANNEL_SOURCE_ID[ CH ]. DIVISOR
END
IF ( VALUE from Table 156 &&
ACT_QUALITY_OF_SERVICE_TBL.FEATURES.SCALAR_DIVISOR_FD_ASYNC_FLAG )
THEN
SCALAR = QUALITY_CONTROL_TBL.QUALITY_DESC. FD_ASYNC_CONTROL.
CHANNEL_SOURCE_ID[ CH ]. SCALAR
DIVISOR = QUALITY_CONTROL_TBL.QUALITY_DESC. FD_ASYNC_CONTROL.
CHANNEL_SOURCE_ID[ CH ]. DIVISOR
END
IF ( VALUE from Table 157 &&
ACT_QUALITY_OF_SERVICE_TBL.SCALAR_DIVISOR_TD_PERIODIC_FLAG )
THEN
SCALAR = QUALITY_CONTROL_TBL.QUALITY_DESC.
TD_PERIODIC_WAVEFORM_CONTROL. CHANNEL_SOURCE_ID[ CH ]. SCALAR
DIVISOR = QUALITY_CONTROL_TBL.QUALITY_DESC.
TD_PERIODIC_WAVEFORM_CONTROL. CHANNEL_SOURCE_ID[ CH ]. DIVISOR
END
IF ( VALUE from Table 158 &&
ACT_QUALITY_OF_SERVICE_TBL.SCALAR_DIVISOR_FD_PERIODIC_FLAG )
THEN
SCALAR = QUALITY_CONTROL_TBL.QUALITY_DESC.
FD_PERIODIC_WAVEFORM_CONTROL. CHANNEL_SOURCE_ID[ CH ]. SCALAR
DIVISOR = QUALITY_CONTROL_TBL.QUALITY_DESC.
FD_PERIODIC_WAVEFORM_CONTROL. CHANNEL_SOURCE_ID[ CH ]. DIVISOR
END
De-normalize VALUE with appropriate SCALAR and DIVISOR.
VALUE = VALUE * DIVISOR / SCALAR
532
ANSI C12.19-2008
Point of delivery
7.2 / 12.47
KV 3ph
Gnd wye
277 / 480
volts
current
transformer
200A / 5A = 40
SET2_CONSTANTS.RATIO_F1
voltage
transformer
277V / 120V = 2.0833
SET2_CONSTANTS.RATIO_P1
Point of metering
Transformer rated meter
Load does not go through End Device
(meter)
SET1_CONSTANTS.RATIO_F1
SET1_CONSTANTS.RATIO_P1
When CTs and PTs are also designed
internal to the End Device.
Customer
load
center
533
ANSI C12.19-2008
that is next in proximity to the End Device (e.g., the utility metering transformer).
Note: The reader needs to be made aware of a possible condition where ACT_SOURCES_LIM_TBL .
SET2_PRESENT_FLAG is TRUE and CONSTANTS_TBL.SELECTION [ SI_CST ] .
GENERIC_CONSTANTS . SET_FLAGS . SET_APPLIED_FLAG is also TRUE. i.e., The register value
reported was already converted internally by the End Device to engineering units at the point of delivery.
When this condition is true then VALUE computed in this section already represents the point of delivery
and not the point of metering.
534
ANSI C12.19-2008
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
Comment
Value retrieved
from Table 23
Value retrieved
from Table 64
535
ANSI C12.19-2008
Element Name
UOM_ENTRY_TBL.UOM_ENTRY[SI_UOM].TIME_BASE
UOM_ENTRY_TBL.UOM_ENTRY[SI_UOM].TIME_BASE
Value
0
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
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
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
538
ANSI C12.19-2008
539
ANSI C12.19-2008
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
No
Yes
Changed existing
documented Tables or
Elements or values or
known behavior ?
No
3.1
Yes
Reuse Device
Class
No
3.2
Register a new
Device Class
END
540
ANSI C12.19-2008
the <edl> root element of the registered EDL. When the concluding step is (2.2) then no further action is
necessary.
541
ANSI C12.19-2008
2.1
3.1
Consequence
Proceed to step 2.1
Proceed to step 4
The logic flow above lets the Manufacturer retain the originally registered Device Class and simply update
its version number.
542
ANSI C12.19-2008
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:
<packedRecord name="DISP_SOURCE_DESC_RCD">
<description>Manufacturer-defined display description entry.</description>
<element name="DISPLAY_SOURCE" type="BINARY"
length="ACT_DISP_TBL.WIDTH_DISP_SOURCES">
<description>
Contains the manufacturer-defined display description entries.
</description>
</element>
</packedRecord>
The manufacturer elaborates on DISP_SOURCE_DESC_RCD.DISPLAY_SOURCE as follows:
543
ANSI C12.19-2008
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.
0..15
SCALE
MODEL_X_DISP_SOURCE_DESC_RCD
DISPLAY_SOURCE
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:
<bitField name="FORMATTING_HINTS_BFLD" type="UINT16">
<subElement name="LEADING_DIGITS" type="UINT"
startBitInclusive="0" endBitInclusive="3">
<description>
This Element defines the number of digit before the decimal point used.
</description>
</subElement>
<subElement name="SUPP_LEADING_ZEROS" type="BOOL" startBitInclusive="4">
<description>
This Element indicates whether leading zeros should be suppressed.
</description>
<enumerator>
<enum value="false" text="Do not suppress leading zeros."/>
<enum value="true" text="Suppress leading zeros."/>
</enumerator>
</subElement>
<subElement name="TRAILING_DIGITS" type="UINT"
startBitInclusive="5" endBitInclusive="8">
<description>
This Element defines the number of digits after the decimal point.
</description>
544
ANSI C12.19-2008
</subElement>
<subElement name="SCALE" type="INT" startBitInclusive="9" endBitInclusive="13">
<description>
This Element defines the scale factor to be applied computed as
10<sup><b>SCALE</b></sup>.
</description>
</subElement>
<subElement name="FILLER" type="FILL" startBitInclusive="14" endBitInclusive="15"/>
</bitField>
<packedRecord name="MODEL_X_DISP_SOURCE_DESC_RCD"
replace="DISP_SOURCE_TBL.DISP_SOURCE_DESC_RCD">
<description>Manufacturer-defined display description entry.</description>
<element name="DISPLAY_SOURCE" type="FORMATTING_HINTS_BFLD">
<description>Contains the manufacturer-defined display description entries.
</description>
<assert
text="The value of ACT_DISP_TBL.WIDTH_DISP_SOURCES must be set to
2."
raise="WARN">
<condition>ACT_DISP_TBL.WIDTH_DISP_SOURCES != 2</condition>
</assert>
</element>
</packedRecord>
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
Consequence
Proceed to step 2.1
Proceed to step 3.2
Done
545
ANSI C12.19-2008
Step #
Consequence
validation=006c011fd533c4f604a8d0ed5c86bc16>
See detailed elaboration of the full content to be
placed here in the next section.
</tdl>
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 Standards description of DIM_REGS_TBL (Table 20) and ACT_REGS_TBL (Table
21) for registered Device Class 10.20.30.40 version 1.0.
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:
<table number="20" name="DIM_REGS_TBL"
type="REGS_RCD" label="Register Dimension Limits Table" role="LIMITING"
accessibility="READONLY">
<description>
<b>DIM_REGS_TBL</b> (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.
</description>
</table>
546
ANSI C12.19-2008
</table>
The manufacturer may elaborate on DIM_REGS_TBL and ACT_REGS_TBL as follows:
547
ANSI C12.19-2008
548
ANSI C12.19-2008
<NBR_PRESENT_DEMANDS>3</NBR_PRESENT_DEMANDS>
<NBR_PRESENT_VALUES>3</NBR_PRESENT_VALUES>
</ACT_REGS_TBL>
</data>
</edl>
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
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
<?xml version="1.0" encoding="UTF-8"?>
<tdl
xmlns=http://www.ansi.org/2008/C1219TDLSchema
version=1.1
deviceClass=10.20.30.42
standard=http://www.ansi.org/C1219TDL-2008.xml
title=Model-Z Meter
date=2008-09-12
validation=db2276b472ff59696afaaf548d3310ee>
<table name="METER_Z_AAA_TBL" number="322"
type="METER_Z_AAA_RCD" accessibility="READONLY"
label="Meter-Z AAA Record">
<packedRecord name="METER_Z_AAA_RCD">
<element name="FIELD_1" type="UINT8">
<description>An 8-bit field 1.</description>
</element>
<element name="FIELD_2" type="UINT8">
<description>An 8-bit field 2.</description>
</element>
<element name="FIELD_3" type="UINT16">
<description>A 16-bit field 3.</description>
</element>
549
ANSI C12.19-2008
</packedRecord>
</table>
<qualify>
<table name="DIM_REGS_TBL" accessibility="UNIMPLEMENTED"/>
<table name="ACT_REGS_TBL" accessibility="EXTERNAL" atomic="true"/>
</qualify>
</tdl>
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
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.
<?xml version="1.0" encoding="UTF-8"?>
<tdl
xmlns=http://www.ansi.org/2008/C1219TDLSchema
version=1.0
deviceClass=10.20.30.43
standard=http://www.ansi.org/C1219TDL-2008.xml
title=Model-Z Meter
date=2008-08-11
validation=c7cb885ff64c0b4dee584c000d13d88c>
<table name="METER_Z_AAA_TBL" number="322"
type="METER_Z_AAA_RCD" accessibility="READONLY"
label="Meter-Z AAA Record">
<packedRecord name="METER_Z_AAA_RCD">
<element name="FIELD_1" type="UINT8">
<description>An 8-bit field 1.</description>
</element>
<element name="FIELD_3" type="UINT8">
550
ANSI C12.19-2008
3.2
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.
<?xml version="1.0" encoding="UTF-8"?>
<tdl
xmlns=http://www.ansi.org/2008/C1219TDLSchema
version=1.0
deviceClass=10.20.30.44
standard=http://www.ansi.org/C1219TDL-2008.xml
title=Model-Z Meter
date=2008-09-12
validation= c9e975258a87451a0a05628ff6d6d4ce>
<table name="METER_Z_AAA_TBL" number="322"
551
ANSI C12.19-2008
type="METER_Z_AAA_RCD" accessibility="READONLY"
label="Meter-Z AAA Record">
<packedRecord name="METER_Z_AAA_RCD">
<element name="FIELD_1" type="UINT16">
<description>An 16-bit field 1.</description>
</element>
<element name="FIELD_2" type="UINT8">
<description>An 8-bit field 2.</description>
</element>
</packedRecord>
</table>
<qualify>
<table name="DIM_REGS_TBL" accessibility="UNIMPLEMENTED"/>
<table name="ACT_REGS_TBL" accessibility="EXTERNAL" atomic="true"/>
</qualify>
</tdl>
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).
<?xml version="1.0" encoding="UTF-8"?>
<tdl
xmlns=http://www.ansi.org/2008/C1219TDLSchema
version=1.0
deviceClass=10.20.30.45
standard=http://www.ansi.org/C1219TDL-2008.xml
title=Model-Z Meter
date=2008-08-21
validation=fd1a269508282ce303b2d2eaca1ebda6>
<table name="METER_Z_AAA_TBL" number="322"
552
ANSI C12.19-2008
type="METER_Z_AAA_RCD" accessibility="READONLY"
label="Meter-Z AAA Record">
<packedRecord name="METER_Z_AAA_RCD">
<element name="FIELD_1" type="UINT8">
<description>An 8-bit field 1.</description>
</element>
<element name="FIELD_2" type="UINT8">
<description>An 8-bit field 2.</description>
</element>
</packedRecord>
</table>
<qualify>
<table name="DIM_REGS_TBL" accessibility="UNIMPLEMENTED"/>
<table name="ACT_REGS_TBL" accessibility="EXTERNAL" atomic="true"/>
</qualify>
</tdl>
The above TDL is identical to the TDL of Device Class 10.20.30.42. The actual change occur only in the
EDL below.
<?xml version="1.0" encoding="UTF-8"?>
<edl xmlns="http://www.ansi.org/2008/CNST-10.20.30.45-EDLSchema"
version=1.0 deviceClass=10.20.30.45
standard=http://www.ansi.org/C1219TDL-2008.xml>
<data>
<ACT_REGS_TBL>
<REG_FUNC1_FLAGS>
<SEASON_INFO_FIELD_FLAG>true</SEASON_INFO_FIELD_FLAG>
<DATE_TIME_FIELD_FLAG>true</DATE_TIME_FIELD_FLAG>
<DEMAND_RESET_CTR_FLAG>true</DEMAND_RESET_CTR_FLAG>
<DEMAND_RESET_LOCK_FLAG>true</DEMAND_RESET_LOCK_FLAG>
<CUM_DEMAND_FLAG>false</CUM_DEMAND_FLAG>
<CONT_CUM_DEMAND_FLAG>false</CONT_CUM_DEMAND_FLAG>
<TIME_REMAINING_FLAG>true</TIME_REMAINING_FLAG>
</REG_FUNC1_FLAGS>
<REG_FUNC2_FLAGS>
<SELF_READ_INHIBIT_OVERFLOW_FLAG>
false</SELF_READ_INHIBIT_OVERFLOW_FLAG>
<SELF_READ_SEQ_NBR_FLAG>true</SELF_READ_SEQ_NBR_FLAG>
<DAILY_SELF_READ_FLAG>true</DAILY_SELF_READ_FLAG>
<WEEKLY_SELF_READ_FLAG>false</WEEKLY_SELF_READ_FLAG>
<SELF_READ_DEMAND_RESET>3</SELF_READ_DEMAND_RESET>
</REG_FUNC2_FLAGS>
<NBR_SELF_READS>12</NBR_SELF_READS>
<NBR_SUMMATIONS>3</NBR_SUMMATIONS>
<NBR_DEMANDS>3</NBR_DEMANDS>
<NBR_COIN_VALUES>3</NBR_COIN_VALUES>
<NBR_OCCUR>3 </NBR_OCCUR>
<NBR_TIERS>4</NBR_TIERS>
<NBR_PRESENT_DEMANDS>3</NBR_PRESENT_DEMANDS>
<NBR_PRESENT_VALUES>3</NBR_PRESENT_VALUES>
</ACT_REGS_TBL>
</data>
</edl>
553
ANSI C12.19-2008
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.
<?xml version="1.0" encoding="UTF-8"?>
<tdl
xmlns=http://www.ansi.org/2008/C1219TDLSchema
version=1.1
deviceClass=10.20.30.42
standard=http://www.ansi.org/C1219TDL-2008.xml
title=Model-Z Meter
date=2008-12-13
validation= b22e4cb3cd9ff1fc419e11627c4e0575>
<table name="METER_Z_AAA_TBL" number="322"
type="METER_Z_AAA_RCD" accessibility="READONLY"
label="Meter-Z AAA Record">
<packedRecord name="METER_Z_AAA_RCD">
<element name="FIELD_1" type="UINT8">
<description>An 8-bit field 1.</description>
</element>
<element name="FIELD_2" type="UINT8">
<description>An 8-bit field 2.</description>
</element>
</packedRecord>
</table>
<table name="METER_Z_BBB_TBL" number="323"
type="METER_Z_BBB_RCD" accessibility="READONLY"
label="Meter-Z BBB Record">
<packedRecord name="METER_Z_BBB_RCD">
<element name="FIELD_1" type="STRING" length=10>
<description>A 10 character field 1.</description>
</element>
554
ANSI C12.19-2008
555
ANSI C12.19-2008
Historical Background
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
Richard Canderan
Tom C. Drew
Ted York
GE
Warren Germer
Cruz R. Gomez
Edmund J. Hofmann
Memphis Light
H. Carey Jones
George Keel
Francis A. Marta
Clemson University
D. McAuliff
John McEvoy
Gary N. Miller
Herman M. Millican
T. U. Electric
James Mining
556
Historical Background
ANSI C12.19-2008
Nile Oldham
Pacificorp
Lauren Pananen
Clark J. Smith
James Ruehl
Paul Taylor
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
Robert D. Adams
Michael Anderson
Vlado Bevc
APTECH, Inc.
ITRON
William J. Buckley
Randall Chance
Rick Darby
Lynnda K. Ell
Lucent Technologies
Stuart M. Garland
Kenneth E. Hauzer
T U Electric
Brad Johnson
James Mining (Alt.)
LILCO
Sunil Katwala
Jerry Klipkenberg
Commonwealth Edison
Larry Kotewa
Echelon
Chris Stanfield
Pradip Madan (Alt.)
Kit Maughan
Mario A. Natividad
Kevin McDonald
Terry Penn
557
ANSI C12.19-2008
Historical Background
Radix Corporation
Laurel Miller
Herman M. Millican
Avygdor Moise
Nile Oldham
Pacificorp
Lauren Pananen
Clark J. Smith
Charles A. Partridge
GE Meter
Jack Pazdon
Schlumberger Electricity
Marc Purc
Wesley Ray
William F. Rush
Chris M. Schafer
Jerry Schull
Radix Corporation
Brian Simpson
Thomas C. Thiel
Tucker Engineering
Richard Tucker
Nertec Design
Michael Veillette
DAC
Steve Weil
Ted York
558