Introduction

Sequence of events (SOE) software applications help you understand a chain of occurrences that can lead to potentially unsafe process conditions and possible shutdowns.

Many process events can be generated quickly when a system does not behave according to design or expectations. In this case, the X80 BMXERT1604 time stamping module records all events with a time stamp accuracy of 1ms. Data is stored in the module until it is transmitted by the application. The BMENOR2200H module can call this event data and transfer it to an external supervisor system (SCADA, DCS, etc.) through the RTU protocol.

This topic describes SOE in the transfer of the time stamping function from a BMXERT1604 module to the RTU protocol in a Control Expert project that includes a BMENOR2200H module.

Process Overview

This is a broad overview of the time stamping SOE process.

Stage

Description

1

Use a DFB to read and send a time stamping event from a BMXERT1604 module to a BMENOR2200H module. In a single PLC cycle, a DFB instance processes a maximum of one time stamping event.

2

Based on the structure of the raw buffer read from the time stamping module, you can extract and convert the data.

3

Use a T850_TO_T870 EFB to convert the time stamping format into IEC60870 time format.

GET_TS_EVT_M Function Block

Use a GET_TS_EVT_M function block to read a time stamping event from a specific BMXERT1604 module:

NOTE: Read one event in a single PLC cycle for each time stamping module. When the DONE parameter turns to TRUE, the event has been read and stored in the buffer. You can move to the next step.

Refer to the EcoStruxure Control Expert System Block Library for detailed descriptions of the GET_TS_EVT_M function block parameters.

Event Format in Response Buffer

This table describes the format of the time stamping event in the response buffer:

Data Structure

Element

Type

Definition

Raw buffer format

Reserved

BYTE

Reserved

Value

BYTE

Input value

Event ID

WORD

Event ID defined by user or channel number

SecondSinceEpoch

DWORD

The interval in seconds continuously counted from the epoch 1970-01-01 00:00:00 UTC

FracOfSec_L

WORD

The fraction of the current second when the value of the TimeStamp has been determined. The fraction of the second is calculated as (SUM from i=0 to 23 of bi*2**—(i+1) s).

FracOfSec_H

BYTE

TimeQuality

BYTE

Time Quality:

  • Bit 7: LeapSecondsKnown (not supported)

  • Bit 6: ClockFailure (not supported)

  • Bit 5: ClockNotSynchronized

  • Bit 0-4: Time accuracy

Extract the Time Stamp Event

Based on the raw buffer structure read from the time stamping module, you can extract and convert the data. First, extract the value of the binary point as shown in this example, which assumes that the first event starts from Buffer[0]:

Extract the T850 Data

To extract the T850 data, as shown in this typical application example, put the binary point value in the right position of the DDT based on the BMXERT1604 module’s address and channel in the raw buffer:

Convert the Time Stamp Format

To convert the time stamp format from IEC61850 to IEC60870, use the T850_TO_T870 EFB as follows, where the input parameter is the 850 time format and the output parameter is the 870 time format:

This table describes the structure of the 850 and 870 time format:

Data Structure

Element

Type

Definition

TIME_870_FORMAT

ms

WORD

Milliseconds: 0-59999 ms

min

BYTE

Minutes: 0-59 min, the highest bit is invalid bit, 1: invalid time, 0: valid time

hour

BYTE

Hour: 0-23 h, SU is not supported

day

BYTE

Day: 1-31, day of week is not supported

mon

BYTE

Month: 1-12

Year: 0-99

year

BYTE

reserved

BYTE

Reserved

TIME_850_FORMAT

Seconds

DWORD

Seconds since 1970, confirm the time stamp is later than 2000.

Ms_Quality

DWORD

  • Bit 0-23: The fraction of the current second when the value of the TimeStamp has been determined. The fraction of second is calculated as (SUM from i = 0 to 23 of bi*2**—(i+1) s).

  • Bit 24-31: Time Quality

  • Bit 31: LeapSecondsKnown (not supported)

  • Bit 30: ClockFailure (not supported)

  • Bit 29: ClockNotSynchronized

  • Bit 24-28: Time accuracy

NOTE: The T870_TO_T850 function block does not consider time zone or summer when converting time. Set the T870 value to the DNP point’s timestamp as follows:

Typical SOE Application Example

This screenshot shows the use of the Send_V command to transfer output of GET_TS_EVT_M (Buffer raw) to the RTU points in a typical SOE application, in which read buffer and translation Time Stamp format in Send_V are equal to the function blocks in previous examples: