Chapter 18 - Communications
The date-time data type G12 allows real date and time information to be conveyed to a resolution of 1 ms. The
structure of the data type is compliant with the IEC 60870-5-4 Binary Time 2a format.
The seven bytes of the date/time frame are packed into four 16-bit registers and are transmitted in sequence
starting from byte 1. This is followed by a null byte, making eight bytes in total.
Register data is usually transmitted starting with the highest-order byte. Therefore byte 1 will be in the high-order
byte position followed by byte 2 in the low-order position for the first register. The last register will contain just byte
7 in the high order position and the low order byte will have a value of zero.
G12 date & time data type structure
Key to table:
m = milliseconds: 0 to 59,999
I = minutes: 0 to 59
H = hours: 0 to 23
W = day of the week: 1 to 7 starting from Monday
D = day of the month: 1 to 31
M = month of the year: 1 to 12 starting from January
Y = year of the century: 0 to 99
R = reserved: 0
SU = summertime: 0 = GMT, 1 = summertime
IV = invalid: 0 = invalid value, 1 = valid value
Since the range of the data type is only 100 years, the century must be deduced. The century is calculated as the
one that will produce the nearest time value to the current date. For example: 30-12-99 is 30-12-1999 when
received in 1999 & 2000, but is 30-12-2099 when received in 2050. This technique allows 2 digit years to be
accurately converted to 4 digits in a ±50 year window around the current date.
The invalid bit has two applications:
It can indicate that the date-time information is considered inaccurate, but is the best information available.
It can indicate that the date-time information is not available.
The summertime bit is used to indicate that summertime (day light saving) is being used and, more importantly, to
resolve the alias and time discontinuity which occurs when summertime starts and ends. This is important for the
correct time correlation of time stamped records.
The day of the week field is optional and if not calculated will be set to zero.
The concept of time zone is not catered for by this data type and hence by the relay. It is up to the end user to
determine the time zone. Normal practice is to use UTC (universal co-ordinated time).