Betatronics® |
This is
TED MTU Data Format
page |
|
Partial Table of Contents
|
|
|
Technical details on the TED 1000 & 5000 MTU Data Format
for PLC (power line communication).
|
The acronym TED refers to The Energy Detective.
"The Energy Detective" is a trademark of Energy, Inc.,
"TED" is a registered trademark of Energy, Inc.
|
|
Why is it important to know about the data structure or format of the data
from an MTU (Measuring Transmitting Unit) to
the RDU or Gateway? --- Because this knowledge provides an understanding of
how the TED
system operates, where functions are performed, and where errors may
originate. This work to provide an understanding of the structure of the TED PLC communication path may help you solve problems in the application of a TED System.
The comments on this web page are a result of my analysis of the data that
I have collected from the output power line communication path (PLC -- power line carrier)
from a TED 1000 or
5000 MTU to its destination. I believe the analysis is reasonably correct.
I have reversed engineered this communication protocol from the data stream with no direct
knowledge of what the system designers ideas were in the system development. This
was accomplished by looking at the data stream while changing the magnitude of inputs
to the MTU. Proper operation of a power or energy monitor can help you with knowledge to reduce your electric bill.
A substantial number of TED problems that I see discussed on the Internet
relate to the power line communication path (PLC). TED PLC problems are a
result of signal loading, reduced signal strength, interference with and from
other PLC, and non-PLC devices.
Some of these devices are X-10, Insteon, Enphase, other TEDs, fluorescent lamps,
dimmers, older switch-mode power supplies, and audio equipment. My energy book notes,
summarized at Energy Book, include a discussion on
means for low error rate TED PLC communication.
The TED MTU fundamentally measures one instantaneous voltage and one instantaneous
current, and processes these into one average power value. Because there
may be two voltage leads and
two current transformers you might assume that there are two voltage and
two current inputs that are separately processed. This is not a correct
assumption.
Effectively the two voltage inputs are combined into one internal input voltage
before processing, and the same for the currents. Thus, at the MTU output
it is impossible to separate the individual input voltages or input currents, from their
combined values, or extract their individual power values from their combined
power results. There is really
only one voltage, and one current input, and one volt-ampere, and one
power output. In the
1000 there is no volt-ampere output, or any running averages. The 5000 MTU has outputs
of volt-amperes, and running averages of power, and voltage in addition to the
basic measurements, but that does not change the
fundamentals being measured. The running averages are a different form of
the basic results.
By processing I mean the determination of RMS voltage, and RMS current averaged
over a defined time, calculation
of volt-amperes from the two RMS values, calculation of
the instantaneous power from the instantaneous voltage and current, and short
time averaging of the power. In the 5000 it also includes calculation of the
cumulative energy measured.
If the phasing of the input voltage is not properly related to the resistive
component of the current with respect to that voltage, meaning in phase, then
power and energy
results will be incorrect. This
is the problem in a 120/208 service when only one MTU is used with both current
transformers, one on phase A and the other on phase B, in an attempt to measure
total power.
One MTU can not be used usefully on a 120/208 (208/120) system, except for
a single 120 V phase. But, if properly configured,
two MTUs can give correct total power readings in this system.
From my analysis it seems clear that the limitation on resolution provided
at the RDU or Gateway on measured power
in the 1000 system is not in the MTU, whereas the MTU is the limitation in
the 5000 system.
The reason PF (power factor) is not available in the 1000 system is because
volt-ampere output does not exist from the MTU, nor is PF calculated in the
MTU and then output.
Potential improvement in the validity of the accumulated energy measurement
in the 5000 system
results from an energy accumulator in the MTU, rather than as in the 1000
system where the accumulator is in the RDU.
In the 5000 system energy is calculated
in the MTU, accumulated, and its value is output each minute. Redundancy
and feedback
(acknowledgment) is used in a portion of the communication to obtain reliable
knowledge of this accumulated energy. If no error
is generated in the energy value in the MTU, then over time, if it is possible
to get a successful transmission of the cumulative energy to the Gateway, then
a good cumulative energy value will exist at the Gateway. In
contrast errors in data transmission with the 1000 system could cause
cumulative errors in energy.
Both the 1000 and 5000 systems communicate over the power line at 1200 baud, with
1 start bit, 8 data bits, no parity bit, and 1 stop bit. A total of 10 bits
are transmitted for the transfer of 8 data bits. In asynchronous serial
communication there are always more total bits transmitted than there are
bits of data.
The power measurements from both 1000 and 5000 systems are signed numbers,
meaning + and -,
as output from the MTU. This was experimentally determined. It is only at
the destination, RDU or Gateway, that
some power measurements may be changed to an unsigned number, ie,
an absolute value.
The 1000 system requires about 0.1 second of continuous transmission
to transfer its packet of data, or about 6 full cycle times of the
60 Hz power. There are 11 bytes or 88 bits (binary values -- 0 or 1)
of data transmitted in
each 1000 system packet. Data is continuously sent during the packet period,
not just at the power line voltage zero
crossings as some commenters erroneously state. Of the packet only 2*24 = 48 bits,
6 bytes of the packet's 11 bytes,
contain the power and voltage information. There is no volt-ampere or
power factor information transmitted.
Note: if data was sent only near the voltage zero-crossings,
then an excessive amount of total time would be required to send a
packet. This continuous transmission of data over a number of zero-crossings
is why TED mayn interfere with X-10 equipment.
The output from the TED-1000 system has the data bits inverted.
This is a bit-wise inversion like the NOT instruction in the
Intel 808X instruction set.
The 5000 system requires
somewhat over 0.2 second of continuous transmission to transfer its type 14h packet
of data, or about 13 full cycle times of the 60 Hz power. There are 25 bytes or 200
bits
of data transmitted in each 5000 system type 14h packet. As in the 1000 system data is not just
sent at power line voltage zero crossings. Of this data only
2*32 + 16 + 32 + 16 = 128 bits, 16 bytes of the packet's 25 bytes,
contain the power, volt-ampere and voltage information.
There are at least two packet types in the 5000 system, 14h and 06h.
The TED-5000 series data bits are
not inverted. This is based on the start bit being classified
as a logic 0, and the stop bit as a logic 1.
For data transfer it appears the Intel 808X method of least significant byte being
first is used. This is called "little-endian".
Since power line communication is not a very reliable path --- I
suspect in the 1000 system RDU that when data is missed that
interpolated values are generated at the RDU between the
last good data and the next good data. This can lead to accumulated energy errors.
In the 5000 system energy is measured (calculated) in the MTU, and accumulated
in a large register in the MTU, probably 48 bits. 48 bits is a decimal
capacity of about 280,000,000,000,000 watt-hours. A 32 bit register would
have been more than adequate with a capacity of about 4,200,000,000 watt-hours.
This design change between the 1000 and 5000 is a shift of the energy
accumulator from the RDU in the 1000 system to the MTU in the 5000 system.
The present
accumulated energy value in the 5000 MTU is transmitted each minute.
This is a technique that should
provide a more reliable cumulative energy data output from the system.
Communication errors should not degrade the end result viewed over
some reasonable time. A least some of the time error-free results will be
received, or there is total system failure. Note: packet transmissions with
errors are discarded based on a failure of the checksum test.
For cummulative energy values it is not important if some messages are
lost, because when a message is successfully received the data is
good if it was good in the MTU.
From the communication path perspective the 1000 system does not provide
a measure of cumulative energy. This
is calculated at the RDU from the 1 second average power values sent
from the MTU. Thus, errors in transmission, meaning lost or discarded
data, can cause a cumulative energy error.
The TED 1000 System operates on a carrier frequency of 125 kHz. This is
based on the use of an 8.0000 MHz crystal for the base frequency of the
TDA5051A ASK power line modem, and also actual measurement of the TED
carrier frequency. X-10 apparently
works at 120 kHz. This is not much separation for frequency filtering
between the two systems, and is probably part of the reason for interference problems between
the two products.
The TED 5000 System also uses an 8.000 MHz crystal and therefore the same carrier frequency. Thus, it is strange that the following statement exists in an on-line
copy of the TED 5000 Troublshooting Guide.
"3.2 TED communicates over the existing power lines in your home using Power Line Carrier Technology. TED digital communication signals are imposed over a carrier frequency of 132 kHz which is transmitted during the zero crossing of the power line 60 Hz signal."
I believe two items are wrong in this statement. The carrier frequency is not 132 kHz, but is 125 kHz
just like the 1000 System. Second, the implication is that the data is sent near zero crossings. Actually data is sent over the entirety of many full cycles as mentioned above. There is no way the data is sent just during or near voltage
zero crossings because there is far too much data being sent.
I do not believe that you, as a user, are able to adjust whatever scaling
may exists in the MTU. Rather when you adjust scaling it is done
in the RDU or Gateway.
|
|
More specific information about the the TED-1000 MTU
Record or Packet Structure follows:
|
TED-1000 has been discontinued.
Replacement MTUs for the
1000 appear to be the physical package of the 5000 system, but
have an internal program to provide output data that is compatible
with the original 1000 system.
Earlier I thought data from the replacement unit was being
sent every 2 seconds, but my recent tests indicate operation
at 1 second. However, in the new unit, power is quantized (resolution)
to 2 W instead of the about 1/64 W in the original 1000 MTU.
The 24 bit format is still used. The scaling factors from the
24 bit number to displayed values are about
the same.
Series 1000 packets are sent every 1 second. I believe raw
24 bit data for each output measurement derived from
the Cirrus CS 5461 A ISZ power processing chip
is transmitted from the MTU unmodified, except for the
MTU replacement based on the 5000 hardware.
It is reasonable to assume that TED has the Cirrus chip averaging
voltage, current, and power over a major portion of this
1 second time period. This conclusion is based on a study of the Cirrus
datasheet, and general logical thinking of how
one would design a good system.
Data is sent based on the time base of the MTU and without a
command for data from the destination RDU (Receiver Display
Unit).
|
|
Byte ID # |
Byte Value |
TED 1000 Byte Function Description |
|
|
0 |
55h |
Leadin byte. --- A 55h value indicates the start of a 1000 system MTU packet.
This is not a complex code
and therefore a moderate time delay
between packets can assist a destination
(receiver) in obtaining synchronization.
However, a somewhat more complex sync signal exists in the
1000 system if you have knowledge of the MTU address.
A 5000 system MTU packet is identified by 02h instead of 55h.
|
|
1 |
98h |
The MTU's address. --- Examples 152 (98h), 252 (FCh).
Only a single byte address. A replacement
1000 MTU has address 143 (8Fh).
|
|
2 |
Xh |
Packet counter. --- Increments by one for each packet
sent. MOD 256. Thus, the count value ranges from
0 to 255 and then back to 0.
|
|
3 |
Xh |
The least significant byte of the measured POWER (24 bits). ---
This is
an unscaled signed binary number. A change of
7Ch is about 2 W. Calculating from a larger load
3Eh is about 1 W. Doubling 3Eh results in 7Ch. Thus,
a good check. Note: 3Eh = 62d, close to 64d.
|
|
5 |
Xh |
The most significant byte of measured POWER.
|
|
6 |
Xh |
Least significant byte of measured VOLTAGE (24 bit). --- This is an
unscaled positive binary number. A change of 1658h =
5720d corresponds to about 0.1 volt.
|
|
8 |
Xh |
Most significant byte of measured VOLTAGE. --- It is possible the
voltage could be a signed number but it should never
be negative.
|
|
9 |
Xh |
Unknown function. --- It does vary and is not included in
the sum of the bytes used in the checksum.
|
|
10 |
Xh |
Conventional CHECKSUM. --- All the bytes 0 thru 8
plus byte 10 are added and the result MOD 256 should
be 0 for a low probability of errors.
|
|
More specific information about the the TED-5000 MTU
Record or Packet Structure follows:
|
The 5000 system is quite different. The packet size is longer and
there are at least two different types of packets from the MTU, 14h and 06h.
In the 5000 PLC packet the bits in the byte are not inverted as
they are in the 1000 packet.
The raw 24 bit data from the Cirrus power chip is not transmitted.
Rather some scaling is done in the MTU and scaled data is quantized to
approximately 2 W, 2 Volt-Amperes, and 0.1 V, then it is transmitted over
the power line. Effectively this results in the maximum signed values
fitting within a 16 bit word. But in the packet 32 bits are allocated
to this data. The apparent limitation to 16 bits is probably done
to simplify processing in the Gateway.
This paragraph is just rambling conjecture. It is possible in the
original 5000 system design that a finer resolution
was considered. That would necessitate more than a 16 bit word. But why go to 32 bits
instead of staying with the 24 bits of the 1000 system? This is unknown.
Possibly for some reason in the original system
definition a higher resolution was defined and somebody just chose a 32 bit size
the transmission data structure. Later because of all the code that must be
packed into the Gateway program the resolution of the data from the MTU was
reduced, but the communication data structure was not changed. All this is
conjecture to try to reason why the data structure is what it is.
Experimentally I found that indeed the power is allocated a 32 bit
signed word.
VA (volt-amperes) has been added and therefore PF (power factor)
can be calculated at the destination. VA does not go to zero with
zero current, but bottoms at +16 on a test unit. Thus, PF is not very
accurate at low power levels.
Also at all power levels there are problems from components of the MTU
part of the system that degrade the accuracy of the power, VA, and PF
measurements when power factor is substantially different than 1.0 .
When PF = 1.00, a resistive load, accuracy is relatively good. All
of this accuracy problem is occurring in the MTU and current
transformers, and none is created in the Gateway. The data going to the
Gateway is digital, and therefore with a checksum it is possible to
have a high confidence that the data received at the Gateway is what
was sent.
There are other problems
that probably originate in the Gateway that you might classify as
accuracy but are noise or program caused errors. In other words the data
received at the Gateway may be good but somehow gets messed up in the
Gateway. For example if the received cumulative energy at the Gateway is
correct but as displayed has a big step change, then this would be a
result of a problem in the Gateway.
Packet transfer rate is once every 2 seconds at its shortest.
This rate seems to change to about once every 5 seconds. Probably
related to the rate of change of the input signal. I do not know,
but I hope, the Cirrus averaging time in the 5000 system corresponds
to the time between data transfers, whether it is a 2 or 5 second
period.
The basic packet is a type 14h, but once every 1 minute a type 06h
packet is transmitted. This contains a 64 bit result of the
cumulative energy measured in the MTU, and an averaged voltage from a
portion or the whole of the last minute. This means data
transmission errors over the PLC path do not result in cumulative energy
measurement errors when the data is derived from this packet type.
Because when an error free transmission of energy
is received at the Gateway it is correct as long as the original
measurement in the MTU was correct.
This 1 minute cumulative energy measurement is
probably what becomes the final output energy measurement, but
modified by a correction factor in the Gateway, minor scale correction.
And possibly a 0 bias. The crystal oscillator
time base in the 5000 MTU is therefore the basis of energy measurement.
Whereas in the 1000 it is not as obvious where the time reference is
located.
Without communication with a Gateway the 06h packet gets repeated
up to 6 times spaced about 5 seconds apart every minute. When this
repetition occurs it results from an acknowledgment not being
received from the Gateway.
If the Gateway successfully receives an 06h packet, then it
sends an acknowledgment, and no more 06h packets are sent until
the next 1 minute, assuming the MTU received the acknowledgment.
It looks like both the need for an 06h packet and the redundancy
is to get around the major problems of the power line communication
method. With this capability why are users reporting step changes
in energy use?
The following is for packet type 14h.
|
|
Byte ID # |
Byte Value |
TED 5000 --- Byte Function Description |
|
|
0 |
02h |
Leadin byte. --- A 02h value indicates the start of a data packet
from a 5000 system MTU.
This is not a complex code
and therefore a moderate time delay
between packets can assist a destination
(receiver) in obtaining synchronization.
However, a somewhat more complex sync signal exists in the
5000 system because the first three bytes are always the same
for a type 14h packet, 02h,14h, 18h. And 02h, 06h, 13h for a
type 06h packet.
Then following this are three bytes for the MTU address. Thus,
the first six bytes of a packet for a specific packet type and
specific MTU are identical in every packet.
A 1000 system MTU packet is identified by 55h instead of 02h.
|
|
1 |
14h |
The packet type identification. --- Always 14h for this type packet
that occurs at about a 2 second or 5 second rate.
|
|
2 |
18h |
Count of Bytes in this packet. --- There are 25d bytes. 18h = 24d. The
first byte is 0, therefore, 24 + 1 = 25.
|
|
3 |
Xh |
First byte of MTU address.
|
|
4 |
Xh |
Second byte of MTU address.
|
|
5 |
Xh |
Third and last byte of MTU address.
|
|
6 |
Xh |
Packet counter. Increments by 1 for each 14h packet sent, MOD 256.
Increments by one for each new 06h packet sent per 1 minute
period, MOD 256. Redundant packets do not causes incrementing.
Note: a new 06h packet replaces a 14h packet in time.
|
|
7 |
Xh |
Least significant byte of POWER (32 bit). --- Scaled signed
binary number. A change of 1 bit is quantized to 2 W.
Quite possibly only 16 bits of this 32 bit word are used.
There is scaling performed in the MTU, but I believe not
adjustable in the MTU
by you. I believe scaling for minor calibration
adjustment by you is done in the Gateway.
A smaller increment than 2 would require more than
16 bits to handle +/- values. The maximum power TED
can accept per MTU based on their specifications is
240 * 200 = 48000 W.
To stay within 16 bits, including sign, the smallest
increment, quantizing level, has to be 2 to allow
+/-24000. Note the total range of 16 bits unsigned
is 2 exp 16 = 65,536. If 0 is included as a number,
then the maximum count number is 65,535 before
roll-over to 0. To include sign the value is divided
by 2 resulting in a range of -32,768 to +32,767.
|
|
10 |
Xh |
Most significant byte of POWER.
|
|
11 |
Xh |
Least significant byte of VOLT-AMPERE (32 bit). --- A scaled
signed binary number. A change of 1 bit is quantized to 2 VA.
Quite possibly only 16 bits of this 32 bit word are used.
Scaling is performed in the MTU, but not adjustable there
by you. Your modification of scaling is
done in the Gateway for calibration adjustment.
The quantizing at 2 VA is probably done for consistency
with how power is processed.
VA is probably stored as a signed number, but it never
should go negative. Seems to bottom at 16 and not 0.
Why not zero is a good question?
|
|
14 |
Xh |
Most significant byte of VOLT_AMPERE.
|
|
15 |
Xh |
Least significant byte of VOLTAGE (16 bit). --- A scaled
signed binary number. A change of 1 bit is quantized to 0.1 Volts.
Incrementing by 0.1 V at 250 V requires a range of 2500 counts,
and that is well inside the signed number limit with
of 16 bits of resolution with a range to 32,767.
Scaling is performed in the MTU to obtain the 1 bit equal to
0.1 V, but not adjustable at that
location by you. Modification of this scaling is
done in the Gateway for calibration adjustment.
Probably a signed number but never should go negative.
You can not
measure voltage a large amount below the lower voltage
specification of the MTU because the rectified voltage
from the AC
voltage input is insufficient to power the circuitry.
However, if you modified the MTU and added battery backup
of the internal DC supply, then voltage could be read to 0 V.
|
|
16 |
Xh |
Most significant byte of voltage measurement.
|
|
17 |
Xh |
Least significant byte of running average of POWER (32 bit). --- See
bytes 7 thru 10 for basic information.
This appears to be an average or running average over about
the last 12 bytes.
|
|
20 |
Xh |
Most significant byte of the running average of POWER.
|
|
21 |
Xh |
Least significant byte of the running average VOLTAGE (16 bit). ---
See byte 16 for basic information.
This appears to be an average or running average over about
the last 12 bytes.
|
|
22 |
Xh |
Most significant byte of average or running average VOLTAGE measurement.
|
|
23 |
Xh |
Unknown function. --- It does vary and is not included in
the sum of the bytes used in the checksum.
|
|
24 |
Xh |
Non-conventional checksum. --- All the bytes 0 thru 22
are added and the result MOD 256 is placed at this
location, byte 24.
This means to verify the checksum at the destination (Gateway)
the above sum has to be
compared with the value in byte 24.
|
|
Copyright© 2012, 2013 Gordon A. Roberts
All rights reserved. 130903-1339
You have permission to make and have in your possession one
paper copy of the entirety of this Energy web page on
TED MTU Data Format for your
own residential personal use. Copies of portions of this
web page are not allowed except as may be allowed under
copyright law. Anything copied from here must include this
copyright notice.
This web page prints reasonably well with Internet Explorer.
Currently IE 7.0.5730.13IC is being used for print testing.
|
|
Betatronics®
PO Box 1288, Ann Arbor, MIchigan 48106-1288
voice 734-930-6136
This web site is http://www.beta-a2.com
This page is http://www.beta-a2.com/engry_b.html
Our e-mail address is
. To view e-mail address enable JavaScript.
Otherwise use info@beta-a2.com .
|
|