DOCA0193EN-00

Modbus Registers Tables

General Description

The following chapters describe the Modbus registers of the ETV trip system and the Modbus registers of the modules connected to it. These registers provide information that can be read, like electrical measures, protection configuration, and monitoring information. The command interface enables the user to modify these registers in a controlled way.

The presentation rules of the Modbus registers are as follows:

To find a register, use the ordered list of the registers with a cross reference to the page where these registers are described (refer to Appendix A: Cross References to Modbus Registers).

Table Format

Register tables have the following columns:

Address

Register

RW

X

Unit

Type

Range

Description

               
  • Address: a 16-bit register address in hexadecimal. The address is the data used in the Modbus frame.

  • Register: a 16-bit register number in decimal (register = address + 1).

  • RW: register read-write status

    • R: the register can be read by using Modbus functions  W: the register can be written by using Modbus functions

    • RW: the register can be read and written by using Modbus functions

    • RC: the register can be read by using the command interface

    • WC: the register can be written by using the command interface

  • X: the scale factor. A scale of 10 means that the register contains the value multiplied by 10. So, the real value is the value in the register divided by 10. For example, register 1028 contains the I1 current unbalance (refer to Current Unbalance). The unit is % and the scale factor is 10. If the register returns 38, this means that I1 current unbalance is 38/10 = 3.8 %.

  • Unit: the unit the information is expressed in.

  • Type: the encoding data type (see data type description below).

  • Range: the permitted values for this variable, usually a subset of what the format allows.

  • Description: provides information about the register and restrictions that apply.

Data Types

Data Types

Description

Range

INT16U

16-bit unsigned integer

0 to 65535

INT16

16-bit signed integer

-32768 to +32767

INT32U

32-bit unsigned integer

0 to 4 294 967 295

INT32

32-bit signed integer

-2 147 483 648 to +2 147 483 647

INT64U

64-bit unsigned integer

0 to 18 446 744 073 709 600 000

INT64

64-bit signed integer

-9 223 372 036 854 775 808 to +9 223 372 036 854 775 807

FLOAT32

32-bit signed integer with a floating point

2-126 (1.0) to 2127 (2 - 2-23)

OCTET STRING

Text string

1 byte per character

MOD10000

Modulo operation (refer to Data Type: MOD10000)

DATE

Date and time (refer to Data Types: DATE and XDATE)

XDATE

Same as DATE with a fourth INT16U register for milliseconds information (refer to Data Types: DATE and XDATE)

DATETIME

Date and time in the IEC 60870-5 format (refer to Data Type: DATETIME)

ULP DATE

Date and time in ULP DATE format (refer to Data Type: ULP DATE)

Big-Endian Format

INT32, INT32U, INT64, and INT64U variables are stored in big-endian format: the most significant register is transmitted first, the least significant register is transmitted at last place.

Example

The total active energy is an INT64 variable coded in registers 32096 to 32099.

If

  • register 32096 = 0

  • register 32097 = 0

  • register 32098 = 70 (0x0046)

  • register 32099 = 2105 (0x0839)

then the total active energy is equal to 4 589 625 Wh = 0x248 + 0x232 + 70x216 + 2105x20

Data Type: FLOAT32

Data type FLOAT32 is represented in the single precision IEEE 754 (IEEE standard for floating-point arithmetic). A value N is calculated as indicated below:

N = (-1)S x 2E-127 x (1+M)

Coefficient

Stands for

Description

Number of Bits

S

Sign

Defines the sign of the value: 0 = positive

1 = negative

1 bit

E

Exponent

Excess 127 binary integer added.

When 0 < E < 255, the actual exponent is: e = E - 127.

8 bits

M

Mantissa

Magnitude, normalized binary significant

23 bits

Example:

0 = 0 00000000 00000000000000000000000

-1.5 = 1 01111111 10000000000000000000000

with:

  • S = 1

  • E = 01111111 = 127

  • M = 10000000000000000000000 = 1x2-1 + 0x2-2 +...+ 0x2-23 = 0.5

  • N = (-1) x 20 x (1+0.5) = -1.5

Data Type: MOD10000

MOD10000 corresponds to n + 1 registers in the INT16 format. Each register contains an integer from - 9999 to 9999. A value V representing n + 1 registers in MOD10000 format is calculated as indicated below:

V = sum(R[x] + R[x+1] x 10000 +...+ R[x+n] x 10000n), where R[x] is the value of the register number x.

For example, to calculate the active energy Ep coded in 4 registers:

  • register 2000 = 123 so R[x = 2000] = 123

  • register 2001 = 4567

  • register 2002 = 89

  • register 2003 = 0

So Ep = R[2000] + R[2001] x 100001 + R[2002] x 100002 + R[2003] x 100003

= 123 + 4567 x 10000 + 89 x 100002 + 0

= 8 945 670 123 kWh

Data Types: DATE and XDATE

This table presents DATE (registers 1 to 3) and XDATE (registers 1 to 4) data types:

Register

Type

Bit

Range

Description

1

INT16U

0–7

0x01–0x1F

Day

8–14

0x01–0x0C

Month

15

0–1

Quality of the date and time

If the bit 15 is set, the date and time may be incorrect. There are two possibilities:

  • no synchronization with the supervisor

  • loss of power

2

INT16U

0–7

0x00–0x17

Hours

8–15

0x50–0xC7

Year

  • 0x50 (80) to 0x63 (99) correspond to years 1980 to 1999

  • 0x64 (100) to 0xC7 (199) correspond to years 2000 to 2099

For example, 0x70 (112) corresponds to year 2012.

3

INT16U

0–7

0x00–0x3B

Seconds

8–15

0x00–0x3B

Minutes

4

INT16U

0–15

0x0000–0x03E7

Complement in milliseconds (available only for XDATE format)

For example, if the current date of BCM ULP coded in four registers is:

  • register 679 = 0x0513

  • register 680 = 0x700A

  • register 681 = 0x222E

  • register 682 = 0x0358

Then the current date and time of the BCM ULP is 19/05/2012 (May 19, 2012) at 10 hours, 34 minutes, 46 seconds, and 856 milliseconds.

Because:

  • 0x0513

    • 0x05 = 5 (months)

    • 0x13 = 19 (days)

  • 0x700A

    • 0x70 = 112 (years)

    • 0x0A = 10 (hours)

  • 0x222E

    • 0x22 = 34 (minutes)

    • 0x2E = 46 (seconds)

  • 0x0358 = 856 (milliseconds)

Data Type: DATETIME

DATETIME is a data type used to code date and time defined by the IEC 60870-5 standard.

Register

Type

Bit

Range

Description

1

INT16U

0–6

0x00–0x7F

Year:

0x00 (00) to 0x7F (127) correspond to years 2000 to 2127

For example, 0x0D (13) corresponds to year 2013.

7–15

Reserved

2

INT16U

0–4

0x01–0x1F

Day

5–7

Reserved

8–11

0x00–0x0C

Month

12–15

Reserved

3

INT16U

0–5

0x00–0x3B

Minutes

6–7

Reserved

8–12

0x00–0x17

Hours

13–15

Reserved

4

INT16U

0–15

0x0000–0xEA5F

Milliseconds

Quality of DATETIME Time-Stamps

The quality of time-stamps coded with the DATETIME data type can be indicated in the register following the 4 registers of the time-stamp.

In this case, the time-stamp quality is coded as follows:

Bit

Description

0–11

Reserved

12

Externally synchronized:

  • 0 = Invalid

  • 1 = Valid

13

Synchronized:

  • 0 = Invalid

  • 1 = Valid

14

Date and time is set:

  • 0 = Invalid

  • 1 = Valid

15

Reserved

Quality of Bits in Registers

The quality of each bit of a register coded as INT16U data type as an enumeration of bits can be indicated in the register preceding the register.

Example:

The quality of each bit of the register 32001, circuit breaker status, is given in the preceding register, 32000.

The quality of the data corresponding to the bit 0 of register 32001, OF status indication contact, is given in the bit 0 of register 32000:

  • bit 0 of register 32000 = quality of OF status indication

  • bit 0 of register 32001 = OF status indication contact

If

Then

If bit 0 of register 32000 = 1 AND bit 0 of register 32001 = 0

The OF contact indicates that the device is open

If bit 0 of register 32000 = 1 AND bit 0 of register 32001 = 1

The OF contact indicates that the device is closed

If bit 0 of register 32000 = 0

The OF contact indication is invalid

Data Type: ULP DATE

ULP DATE is a data type used to code date and time. This table presents the ULP DATE data type.

Register

Type

Bit

Range

Description

1–2

INT32U

0x00000000–0xFFFFFFFF

Number of seconds since January 1, 2000

3

INT16U

Complement in milliseconds

0–9

Encodes the milliseconds

10–11

Not used

12

0–1

IFM communication interface external synchronization status 0 = The communication interface has not been externally synchronized within the last 2 hours.

1 = The communication interface has been externally synchronized within the last 2 hours.

13

0–1

ULP module internal synchronization status

0 = The ULP module has not been internally synchronized

1 = The ULP module has been internally synchronized

14

0–1

Absolute date is set since last power on

0 = No

1 = Yes

15

Reserved

ULP Date Counter

The date in ULP DATE format is counted in number of seconds since January 1, 2000.

In case of a power loss for an IMU module, the time counter is reset and will restart at January 1, 2000.

If an external synchronization occurs after a power loss, the time counter is updated and converts the synchronization date to the corresponding number of seconds since January 1, 2000.

ULP Date Conversion Principle

To convert the date from number of seconds since January 1, 2000, to current date, the following rules apply:

  • 1 non-leap year = 365 days

  • 1 leap year = 366 days

    Years 2000, 2004, 2008, 2012,...(multiple of 4) are leap years (except year 2100).

  • 1 day = 86,400 seconds

  • 1 hour = 3,600 seconds

  • 1 minute = 60 seconds

Follow the steps in the below table to convert the date from number of seconds since January 1, 2000, to current date:

Step

Action

1

Calculate the number of seconds since January 1, 2000: S = (content of register 1 x 65536) + (content of register 2)

2

Calculate the number of days since January 1, 2000: D = integer value of the quotient of S / 86,400

Calculate the remaining number of seconds: s = S - (D x 86,400)

3

Calculate the number of days elapsed for the current year: d = D - (NL x 365) - (L x 366)

with NL = number of non-leap years since year 2000 and L = number of leap years since year 2000

4

Calculate the number of hours: h = integer value of the quotient of s / 3600

Calculate the remaining number of seconds: s’ = s - (h x 3600)

5

Calculate the number of minutes: m = integer value of the quotient of s’ / 60

Calculate the remaining number of seconds: s’’ = s’ - (m x 60)

6

Calculate the number of milliseconds: ms = (content of register 3) AND 0x03FF

Result:

  • The current date is date = d + 1.

    For example, if d = 303, the current date corresponds to the 304th day of the year, which corresponds to October 31, 2007.

  • The current time is h:m:s’’:ms

ULP Date Conversion Example

Registers 2900 and 2901 return the date in number of seconds since January 1, 2000. Register 2902 returns the complement in ms with the quality of the date.

Notes

  • The type column tells how many registers to read to get the variable. For instance INT16U requires reading one register, whereas INT32 requires reading two registers.

  • Some variables must be read as a block of multiple registers, like the energy measurements. Reading the block partially results in an error.

  • Reading from an undocumented register results in a Modbus exception (refer to Modbus Exception Codes).

  • Numerical values are given in decimal. When it is useful to have the corresponding value in hexadecimal, it is shown as a C language type constant: 0xdddd. For example, the decimal value 123 is represented in hexadecimal as: 0x007B.

  • For measures that depend on the presence of neutral as identified by register 3314 (refer to System Type), reading the value returns 32768 (0x8000) if not applicable. For each table where it occurs, it is explained in a footnote.

  • Out of order and not applicable values depend on the data type.

Data Type

Out of Order and Not Applicable Values

INT16U

65535 (0xFFFF)

INT16

-32768 (0x8000)

INT32U

4294967295 (0xFFFFFFFF)

INT32

0x80000000

INT64U

0xFFFFFFFFFFFFFFFF

INT64

0x8000000000000000

FLOAT32

0xFFC00000

QR Code is a registered trademark of DENSO WAVE INCORPORATED in Japan and other countries.

Was this helpful?