Working with the BMENOP0300 in a PAC Application
Original instructions
Introduction
This topic describes the following operations for the BMENOP0300:
Control Operation as Server
The BMENOP0300 module supports four kinds of control models:
According to IEC 61850 standard, the control operations present dependencies that call for some programming in the PAC application.
Task 1 / PAC state: control operation is allowed only when the PAC is in RUN state.
Item
Status
Behavior
How to configure?
PAC state
STOP
The Oper is rejected.
Use Control Expert to manage the PAC state.
PAC state
RUN
The Oper is operational.
Task 2 / Control model: control operation is not allowed when control model is status only:
Item
Status
Behavior
How to configure?
Control Model
Status only
The Oper is rejected.
Set it in “Application setting”.
Control Model
Direct-with-normal-security /
Sbo-with-normal-security /
Direct-with-enhance-security /
Sbo-with-enhance-security
The Oper is operational.
Task 3 / LN/Beh.stVal: Logic node’s beh status determines if this control operation is allowed. This can be managed in the PAC as needed:
Item
Status
Behavior
How to configure?
LN/Beh.stVal
OFF (5)
The Oper is rejected.
Set it in “Application setting” if it is not mapped in I/O mapping, or manage it in PAC application if it is mapped in I/O mapping.
LN/Beh.stVal
ON (1)
The Oper is operational.
Task 4 / Does/SBOes mode is a much more secured control operation compared to the normal model. The BMENOP0300 module checks DO's status from the PAC when the operation is executed. Because each CDC has a different definition for control command and status, follow the recommended programming logic (as described below) in your PAC application to manage DO status:
CDC
Status of DO
Expected status
SPC
stVal
stVal should be equal to ctlVal.
t
Time stamp should update accordingly.
Oper.ctlNum
Control number should increase after each operation.
DPC
stVal
stVal is ON when ctlVal is TRUE.
stVal is OFF when ctlVal is FALSE.
t
Time stamp should update accordingly.
Oper.ctlNum
Control number should increase after each operation.
INC
stVal
stVal should be equal to ctlVal and within range.
t
time stamp should update accordingly.
Oper.ctlNum
Control number should increase after each operation.
ENC
stVal
stVal should be equal to ctlVal and within range.
t
Time stamp should update accordingly.
Oper.ctlNum
Control number should increase after each operation
ISC
valWTr.posVal
valWTr.posVal should be equal to ctlVal and within range
t
Time stamp should update accordingly.
Oper.ctlNum
Control number should increase after each operation.
BSC
valWTr.posVal
When ctlVal is STOP:
     valWTr.posVal should have no change.
When ctlVal is HIGHER:
     valWTr.posVal should become bigger.
When ctlVal is LOWER:
     valWTr.posVal should become smaller.
t
Time stamp should update accordingly.
Oper.ctlNum
Control number should increase after each operation.
APC
mxVal.i / mxVal.f
mxVal.i or mxVal.f should be equal to ctlVal and within range.
t
Time stamp should update accordingly.
Oper.ctlNum
Control number should increase after each operation.
BAC
mxVal.i / mxVal.f
When ctlVal is STOP:
     mxVal.i and mxVal.f should have no change.
When ctlVal is HIGHER:
     mxVal.i or mxVal.f should become bigger.
When ctlVal is LOWER:
     mxVal.i or mxVal.f should become smaller.
t
Time stamp should update accordingly.
Oper.ctlNum
Control number should increase after each operation.
NOTE: The BMENOP0300 module supports the operation of one point set to the same value for many successive iterations. Use the control number in PAC logic to determine if control operation is executing.
Control Operation as Client
The BMENOP0300 module supports one dedicated data block that can trigger a request for a report block, GOOSE block, control block, or a polling operation. SE recommends that you create a manually enabled report after module start up to confirm the report functions as intended.
The data block for each command is composed of three elements: command trigger, options, and status. The option type and content depends on the type of command, but the trigger and status are same type with different content:
The data structure for all commands is the DATA_BLOCK_TEMPLATE data structure, set forth below:
Element
Type
Trigger
Definition
Cmd
BYTE
Dchg
Command trigger: The BMENOP0300 module sends one command if this value has changed.
Option
BYTE
-
Request option
Option
Type depends on control block
-
Request option
Status
WORD
-
Low byte:
   Same as trigger command.
High byte:
   Bit6~bit7:
     0: Busy
     1: OK
     2: Error detected
   Bit0~Bit5: Detected error code. Refer to error code for the specific function type.
Status detected error codes
Function
Code
Meaning
Possible reason
Control point
1~27
AddCause
Refer to the AddCause detected error descriptions, defined by the IEC 61850 standard.
61
Disconnected
Offline with remote IED.
63
Input parameter error detected
Input parameter in data block is incorrect. Such as input CtlVal is out of range.
Polling
61
Disconnected
Offline with remote IED.
62
Polling is not operational
Some DOs or DAs is missing in remote IED.
Polling will contnue if this error is detected.
63
Input parameter error
Input parameter in data block is incorrect.
Report Control
60
AutoEna is not operational
The report was not enabled after going online. This error code depends on the AutoEn setting in the Report Control block.
61
Disconnected
Offline with remote IED.
63
Input parameter error detected
Input parameter in data block is incorrect. For example, index is out of range.
GOOSE Control
0
GOOSE disabled
GOOSE control block is disabled.
1
GOOSE enabled
GOOSE control block is enabled.
61
Disconnected
Offline with remote IED.
Example 1: REPORT_URCB displaying a normal structure:
Element
Current Value
Next Value
Remark
Cmd
0
-> 1
The change of value triggers the operation of a single request.
Option
0
1
Sets the report enable attribute.
Index
0
3
Indicates the 3rd instance of this report.
AutoEna
0
0
-
Attribute
0
1
1 indicates the report is enabled.
RptStatus
-
3
Report instance number.
Status
-
0x4001
This operation is executed successfully.
Italics and bold text indicates elements to be completed by the application.
Example 2: REPORT_URCB displaying an abnormal structure:
Element
Current Value
Next Value
Remark
Cmd
0
-> 5
The change of value triggers the operation of a single request.
Option
0
1
Sets the report enable attribute.
Index
0
3
Indicates the 3rd instance of this report.
AutoEna
0
0
-
Attribute
0
1
1 indicates the report is enabled.
RptStatus
-
3
Report instance number.
Status
-
0xBF05=
{
0x8000 +
0x3F00 +
0x0005
}
This operation is not executed successfully.
0x8000: error
0x3F00: error code 63, incorrect input parameter (e.g., index could be out of range).
0x0005: command trigger
Italics and bold text indicates elements to be completed by the application.
Example 3: {Module}_CO_BOOL displaying a normal structure:
Element
Current Value
Next Value
Remark
Cmd
0
-> 2
The change of value triggers the operation of a single request.
Check
0
0
Operate directly.
CtlVal
0
1
Set point as TRUE.
Status
0
0x4002
This operation is executed successfully.
Italics and bold text indicates elements to be completed by the application.
Example 4: {Module}_CO_BOOL displaying an abnormal structure:
Element
Current Value
Next Value
Remark
Cmd
0
-> 3
The change of value triggers the operation of a single request.
Check
0
0
Operate directly.
CtlVal
0
1
Set point as TRUE.
Status
0
0xBD03=
{
0x8000 +
0x3D00 +
0x0003
}
This operation is not executed successfully.
0x8000: error
0x3D00: error code 61, remote IED is not connected.
0x0003: command trigger
Italics and bold text indicates elements to be completed by the application.
Connection Operation as Client
The BMENOP0300 client DDT supports connection control to the remote IED with ConnectCtrl. The module attempts to connect with the remote IED by default after start up. The status of the connection can be checked via the health status in client state, or by the Freshness element of the client DDT, as shown below for a {Module}_{IED name client:
Element
Type
Definition
Freshness
BOOL
0: Data is not fresh
1: Data is fresh
When there is no IEC 61850 connection or backplane communication, set it as FALSE.
ConenctCtrl
BOOL
0: Auto connect
1: Disconnect
Data Model
PollBlock
Polling control for each IED
ControlBlock
General control
ReportBlock
Report control
GooseBlock
GOOSE control