Sequence Of Events
Original instructions
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 DNP3 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 thge 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: