DDT Data Structures
(Original Document)
Introduction
If you enable the IEC61850 server, enable the client, and create one or more report and GOOSE control blocks, Control Expert adds the following DDT data structures to your project:
Server State
The {Module_name}_SERVER_STATE DDT presents diagnostic information for the IEC61850 server in the module, the name of which is the prefix of the DDT:
Element
Type
Description
Active
BOOL
Server status:
  • 0 = disabled
  • 1 = enabled
Health
BOOL
Server health:
  • 0 = not operational
  • 1 = operational
ProtoEd
BYTE
IEC61850 protocol edition:
  • 0x10 = 1.0
  • 0x20 = 2.0
ActiveConn
BYTE
Number of established server connections: 0...16.
Variable_Rd
UDINT
Count of read variable requests received by the server.
Variable_Rd_Err
UDINT
Count of rejected MMS read variable requests.
Variable_Wrt
UDINT
Count of write variable requests received by the server.
Variable_Wrt_Err
UDINT
Count of rejected MMS write variable requests.
Reports_Tx
UDINT
Count of information report messages sent by the server.
Goose_Tx
UDINT
Count of GOOSE messages transmitted by the server.
Goose_Rx
UDINT
Count of GOOSE messages received by the server.
Goose_Err
UDINT
Count of invalid GOOSE messages received by the server.
ErrorCode
DWORD
Low word:
  • 0x0001: invalid configuration
  • 0x0002: stack init error detected
  • 0x0004: config init error detected
  • 0x0010...0x00F0: BP comm error detected
  • 0x0100: DB binding error detected
  • 0x1000...0xF000: Report error detected
High word:
  • 0x1000: Clock not synchronized
  • 0x2000: Default IP
RptEntity
Report diagnostic information
GooseEntity
Report diagnostic information
1. The RptEntity element consists of a number of reports of the IED_RPT data type, each of which is 2 WORDS long.
Client State
The {Module_name}_CLIENT_STATE DDT presents diagnostic information for the IEC61850 client in the module, the name of which is the prefix of the DDT:
Element
Type
Description
Active
BOOL
Client status:
  • 0 = disabled
  • 1 = enabled
Health
BOOL
Client health:
  • 0 = not operational
  • 1 = operational
ProtoEd
BYTE
IEC61850 protocol edition:
  • 0x10 = 1.0
  • 0x20 = 2.0
ActiveConn
BYTE
Number of established server connections: 0...16.
IED_Health
UDINT
IED connection status:
  • 0 = disconnected
  • 1 = connected
NOTE: Each bit represents one IED in the same order as the sequence of IEDs in the SCL file.
Variable_Rd
UDINT
Count of read variable requests received by the client.
Variable_Rd_Err
UDINT
Count of rejected MMS read variable requests.
Variable_Wrt
UDINT
Count of write variable requests received by the client.
Variable_Wrt_Err
UDINT
Count of rejected MMS write variable requests.
Reports_Rx
UDINT
Count of information report messages received by the client.
Goose_Rx
UDINT
Count of GOOSE messages received by the client.
Goose_Err
UDINT
Count of invalid GOOSE messages received by the client.
ErrorCode
DWORD
Low word:
  • 0x0001: invalid configuration
  • 0x0002: stack init error detected
  • 0x0004: config init error detected
  • 0x0100: DB binding error detected
  • 0x1000: Report ID mismatch detected
High word:
  • 0x0001...0x00FF: Configuration inconsistent (index of IED in SCL)
  • 0x1000: Clock not synchronized
  • 0x2000: Default IP
GooseEntity
Report diagnostic information
Module State
The {Module_name}_MODULE_STATE DDT presents diagnostic information for the IEC61850 module, the name of which is the prefix of the DDT:
Element
Type
Description
CurEntryID
WORD[5]
Current entry ID (read-only)
LastEntryID
WORD[5]
Last entry ID (read-only)
ScanCount
DWORD
The counter of I/O data scan (read-only)
NOTE: The 140 NOP 850 00 module I/O data scan for reports and GOOSE is not synchronized with the PLC SCAN. ScanCount indicates if the I/O scan is finished. You can use ScanCount to determine if the report/GOOSE data change is detected by module or if a report/GOOSE transmission was lost.
Reserve
WORD[4]
<Reserved>
ConnectControl
DWORD
Control register for all connections with remote IED. One bit represents one IED:
  • 0 = Auto-connect
  • 1 = Stop connect
ModuleSimulation
WORD
  • 0 = Normal mode
  • 1 = Simulation mode
Reserve
WORD
<Reserved for alignment>
GOOSE Diagnostics
The {Module_name}_IED_GOOSE DDT presents GOOSE control block diagnostic information for the IEC61850 module, the name of which is the prefix of the DDT:
Element
Type
Description
Service
BYTE
  • 0 = Publish
  • 1 = GOOSE subscribe for server
  • 2 = GOOSE subscribe for client
Status
BOOL
  • True = active
  • False = not active
NdsCom
BOOL
The Need Commission attribute has a value of TRUE if the GoCB requires further configuration when:
  • The attribute DataSet has a value of NULL
  • The number or size of values being conveyed by the elements in the DatSet referenced data-set exceeds constraint determined by the SCSM or the implementation.
Simulation
BOOL
A value of True indicates Sim messages are received and accepted.
LastStNum
UDINT
The last state number received.
LastSqNum
UDINT
The last sequence number received.
LastError
UINT
The last detected error:
  • 1: MAC not consist with configuration.
  • 2: AppID not consist with configuration.
  • 3: GOOSE data set not consist with configuration.
  • 4: initAddr is missing.
  • 5: GOOSE not received after Time to Alive expired.
  • 6: stNum is out of order.
  • 7: sqNum out of order.
  • 8: GOOSE ConfRev not consistent with configuration.
  • 9: Decoding GOOSE data error detected.
  • 10: Other unknown detected errors.
  • 11: NdsCom = True
  • 12: Go Ref is incorrect
Reserve
UINT
<Reserved>
Buffered Report Control Block
The data structure of the buffered report {Report_name}_REPORT_BRCB of the client function:
Element
Type
Trigger
Definition
Cmd
BYTE
Dchg
Trigger: effective on change
Option
BYTE
-
Option: operation selection. Values include:
  • 1: set RptEna
  • 2: set BufTms
  • 3: set IntgPd
  • 4: set ResvTms
  • 5: set TrgOps
  • 6: set OptFlds
  • 8: set EntryID
  • 9: set RptID
    NOTE: Execute option value 9 once before enabling the report control block in the server, to receive report information.
  • 10: set DataSet
    NOTE: For set RptID and set DataSet commands, the source is the SCL file, and cannot be set dynamically in PLC memory.
  • 11: set GI
  • 12: set Purge buffer
  • 101: get RptEna
  • 102: get BufTms
  • 103: get IntgPd
  • 104: get ResvTms
  • 105: get TrgOps
  • 106: get OptFlds
  • 108: get EntryID
  • 120: get ConfRev
  • 121: get SgNum
Index
BYTE
-
Buffer index number: 1...99
AutoEna
BYTE
-
How is report enabled?
  • 0 = Enable on demand
  • 1 = Auto enable
NOTE: Auto-enable is recommended so the report is enabled in case of Hot Standby switchover.
Attribute
DWORD
-
Common area for read/write of attribute, depending on the selected Option:
  • BufTms DWORD
  • IntgPd DWORD
  • ResvTms DWORD
  • ConfRev DWORD
  • TrgOps low WORD of attribute
  • OptFlds low WORD of attribute
  • SgNum low WORD of attribute
  • RptEna low WORD (bit 0) of attribute
  • GI low WORD (bit 0) of attribute
  • PurgeBuf low WORD (bit 0) of attribute
Entry_ID
WORD[4]
-
Entry ID reported in the last response.
NOTE: Supported only by buffered report control blocks (BRCB).
RptStatus
WORD
-
  • low byte: index of report control block (1...99)
  • high byte:
    • bit 0 = ConfRev change
    • bit 1 = buffer overflow
Status
WORD
-
Status of command execution:
  • low byte: same as command trigger
  • high byte:
AddCause Detected Error Codes
The following is a list of report and control object detected AddCause error codes:
Code
Short Description
Explanation of IEC61850-7-2
1
Not-supported
Not-supported
2
Blocked-by-switching-hierarchy
Not successful, because one of the downstream Loc switches like in CSWI has the value TRUE.
3
Select-failed
Canceled due to an unsuccessful selection (select service).
4
Invalid-position
Control action is aborted due to invalid switch position (Pos in XCBR or XSWI).
5
Position-reached
Switch is already in the intended position (Pos in XCBR or XSWI).
6
Parameter-change-in-execution
Control action is blocked due to running parameter change.
7
Step-limit
Control action is blocked because tap changer has reached the limit
EndPosR or EndPosL in YLTC).
8
Blocked-by-Mode
Control action is blocked because the LN (CSWI or XCBR/XSWI)is in a mode (Mod) which doesn t allow any switching.
9
Blocked-by-process
Control action is blocked due to some external event at process level that prevents a successful operation for example blocking indication (EEHealth in XCBR or XSWI).
10
Blocked-by-interlocking
Control action is blocked due to interlocking of switching devices (in CILO attribute EnaOpn.stVal= FALSE or EnaCls.stVal= FALSE .
11
Blocked-by-synchrocheck
Control action with synchrocheck is aborted due to exceed of time limit and missing synchronism condition.
12
Command-already-in-execution
Control select or cancel service is rejected because control action is already running.
13
Blocked-by-health
Control action is blocked due to some internal event that prevents a successful operation (Health).
14
1-of-n-control
Control action is blocked because another control action in a domain (for example substation) is already running (in any XCBR or XSWI of that domain the DPC.stSeld= TRUE).
15
Abortion-by-cancel
Control action is aborted due to cancel service.
16
Time-limit-over
Control action is terminated due to exceed of some time limit.
17
Abortion-by-trip
Control action is aborted due to a trip (PTRC with ACT.general = TRUE).
18
Object-not-selected
Control action is rejected because control object was not selected.
19
Object-already-selected
Select action is not executed because the addressed object is already selected.
20
No-access-authority
Control action is blocked due to lack of access authority.
21
Ended-with-overshoot
Control action executed but the end position has overshoot.
22
Abortion-due-to-deviation
Control action is aborted due to deviation between the command value and the measured value.
23
Abortion-by-communication-loss
Control action is aborted due to the loss of connection with the client that issued the control.
24
Blocked-by-command
Control action is blocked due to the data attribute CmdBlk.stVal is TRUE.
25
None
Command not successful due to Unknown causes.
26
Inconsistent-parameters
The parameters between successive control services are not consistent for example the ctlNum of Select and Operate service are different.
27
Locked-by-other-client
Another client has already reserved the object.
60
Auto-enable did not succeed
61
Disconnected from remote IED
62
Polling did not succeed
63
Input parameter error detected
Unbuffered Report Control Block
The data structure of the unbufferred report {Report_name}_REPORT_URCB of the client function:
Element
Type
Trigger
Definition
Cmd
BYTE
Dchg
Trigger: effective on change
Option
BYTE
-
Option: operation selection. Values include:
  • 1: set RptEna
  • 2: set BufTms
  • 3: set IntgPd
  • 5: set TrgOps
  • 6: set OptFlds
  • 7: set ResvUrcb
  • 8: set EntryID
  • 9: set RptID
  • 10: set DataSet
    NOTE: For set RptID and set DataSet commands, the source is the SCL file, and cannot be set dynamically in PLC memory.
  • 11: set GI
  • 101: get RptEna
  • 102: get BufTms
  • 103: get IntgPd
  • 105: get TrgOps
  • 106: get OptFlds
  • 107: get ResvUrcb
  • 108: get EntryID
  • 111: get GI
  • 120: get ConfRev
  • 121: get SgNum
Index
BYTE
-
Buffer index number: 1...99
AutoEna
BYTE
-
How is report enabled?
  • 0 = Enable on demand
  • 1 = Auto enable
NOTE: Auto-enable is recommended so the report is enabled in case of Hot Standby switchover.
Attribute
DWORD
-
Common area for read/write of attribute, depending on the selected Option:
  • BufTms DWORD
  • IntgPd DWORD
  • ConfRev DWORD
  • TrgOps low WORD of attribute
  • OptFlds low WORD of attribute
  • SgNum low WORD of attribute
  • RptEna low WORD (bit 0) of attribute
  • UrcbResv low WORD (bit 0) of attribute
RptStatus
WORD
-
  • low byte: index of report control block (1...99)
  • high byte:
    • bit 0 = ConfRev change
Status
WORD
-
Status of command execution:
  • low byte: same as command trigger
  • high byte:
GOOSE Control Block
The data structure of the {Module_name}_GOOSE_CB DDT:
Element
Type
Trigger
Definition
Cmd
BYTE
Dchg
Trigger: effective on change
Option
BYTE
-
Option: operation selection:
  • 0 = GOOSE disable
  • 1 = GOOSE enable
Status
WORD
-
Status of command execution:
  • low byte: same as command trigger
  • high byte:
SBO Control Object
The data structure of the {Module_name}_CO_OPER_SBO (select before operate) control object DDT:
Element
Type
Trigger
Definition
Cmd
BYTE
Dchg
Trigger: effective on change
Status
WORD
-
Status of command execution:
  • low byte: same as command trigger
  • high byte:
NOTE: It is recommended that you check the status of the previous command before sending another command. This way you can avoid the situation where multiple commands are pending, while only one command can be exected.
SBOw, Cancel, and Oper Control Objects
The SBOw, Cancel, and Oper control objects each present five alternative structures, depending on the data type: BOOLEAN, INT8, INT32, ENUM, or ANA. The naming convention for each control object is {Module name}_MW{%MW address}. An example of each DDT structure follows for the OPER control object:
The data structure of the {Module_name}_CO_OPER_BOOL and {Module_name}_CO_OPER_BOOL_T control object DDTs:
Element
Type
Trigger
Definition
Cmd
BYTE
Dchg
Trigger: effective on change
Check
BYTE
-
Synchrocheck:
  • Bit 0: perform synchrocheck:
    • 0 = no synchrocheck
    • 1 = perform synchrocheck
  • Bit 1 = check for interlocking condition:
    • 0 = no check
    • 1 = check
  • Bit 2: test
CtVal
BYTE
-
Bit 0: ctlVal; value to control
Resv
BYTE
-
Reserved for alignment.
OptTime
TIME_850 _FORMAT
-
Specify one time to delay execution.
NOTE: Applies only to {Module_name}_CO_OPER_BOOL_T.
Status
WORD
-
Status of command execution:
  • low byte: same as command trigger
  • high byte:
The data structure of the {Module_name}_CO_OPER_INT8 and {Module_name}_CO_OPER_INT8_T control object DDTs:
Element
Type
Trigger
Definition
Cmd
BYTE
Dchg
Trigger: effective on change
Check
BYTE
-
Synchrocheck:
  • Bit 0: perform synchrocheck:
    • 0 = no synchrocheck
    • 1 = perform synchrocheck
  • Bit 1 = check for interlocking condition:
    • 0 = no check
    • 1 = check
  • Bit 2: test
CtVal
INT
-
Value to control
Resv
BYTE
-
Reserved for alignment.
OptTime
TIME_850 _FORMAT
-
Specify one time to delay execution.
NOTE: Applies only to {Module_name}_CO_OPER_INT8_T.
Status
WORD
-
Status of command execution:
  • low byte: same as command trigger
  • high byte:
The data structure of the {Module_name}_CO_OPER_INT32 and {Module_name}_CO_OPER_INT32_T control object DDTs:
Element
Type
Trigger
Definition
Cmd
BYTE
Dchg
Trigger: effective on change
Check
BYTE
-
Synchrocheck:
  • Bit 0: perform synchrocheck:
    • 0 = no synchrocheck
    • 1 = perform synchrocheck
  • Bit 1 = check for interlocking condition:
    • 0 = no check
    • 1 = check
  • Bit 2: test
CtVal
DINT
-
Value to control
OptTime
TIME_850 _FORMAT
-
Specify one time to delay execution.
NOTE: Applies only to {Module_name}_CO_OPER_INT32_T.
Status
WORD
-
Status of command execution:
  • low byte: same as command trigger
  • high byte:
The data structure of the {Module_name}_CO_OPER_ENUM and {Module_name}_CO_OPER_ENUM_T control object DDTs:
Element
Type
Trigger
Definition
Cmd
BYTE
TBD
Trigger: effective on change
Check
BYTE
-
Synchrocheck:
  • Bit 0: perform synchrocheck:
    • 0 = no synchrocheck
    • 1 = perform synchrocheck
  • Bit 1 = check for interlocking condition:
    • 0 = no check
    • 1 = check
  • Bit 2: test
CtVal
DINT
-
Value to control
OptTime
TIME_850 _FORMAT
-
Specify one time to delay execution.
NOTE: Applies only to {Module_name}_CO_OPER_ENUM_T.
Status
WORD
-
Status of command execution:
  • low byte: same as command trigger
  • high byte:
The data structure of the {Module_name}_CO_OPER_ANA and {Module_name}_CO_OPER_ANA_T control object DDTs:
Element
Type
Trigger
Definition
Cmd
BYTE
TBD
Trigger: effective on change
Check
BYTE
-
Synchrocheck:
  • Bit 0: perform synchrocheck:
    • 0 = no synchrocheck
    • 1 = perform synchrocheck
  • Bit 1 = check for interlocking condition:
    • 0 = no check
    • 1 = check
CtVal_i
DINT
-
Value to control
CtVal_f
REAL
-
Value to control
OptTime
TIME_850 _FORMAT
-
Specify one time to delay execution.
NOTE: Applies only to {Module_name}_CO_OPER_ANA_T.
Status
WORD
-
Status of command execution:
  • low byte: same as command trigger
  • high byte:
Polling Service
The data structure of the {Module_name}_POLLING_CTRL object DDT:
Element
Type
Trigger
Definition
Cmd
BYTE
Dchg
Trigger: effective on change
Option
BYTE
-
Option for polling control for each IED server; each bit represents one IED:
  • Bit 0:
    • 0 = stop polling
    • 1 = start polling
  • Bit 2...6: <Reserved>
  • Bit 7:
    • 0 = Auto start polling periodically
    • 1 Execute only once
    NOTE: Bit 7 takes effect on start polling and stop polling.
Period
WORD
-
Period to trigger command in milliseconds. Range from 500...65535 ms. If less than 500 ms, the default period from the Modicon IEC61850 Configuration Tool is applied.
Status
STATUS
-
Status of command execution. When auto-polling is enabled, the status is updated. Status values include:
  • OK: when client receives all requested polling data.
  • Fail: when the client receives a negative response or a time out.
  • Error: when the polling data includes a data object with mismatched data. In this case, polling skips over the mismatched data object, and proceeds to the next data object in the polling request.
NOTE: When the 140 NOP 850 00 module restarts and re-connects with the server, it automatically reads and re-initializes all I/O mapping data.