File Formats
D.1 ZProcedur_<Procedure>_<Step>.txt
The procedure is constructed one step at a time and each step is stored in a file. The files are stored in ../input/Crew/procedures directory. Each file is named as “ZProcedure_<procedure name>_<step>.txt” in which “procedure name” is a string without space between characters. In IDAC, each procedure step is represented by a TActionProc object. Item 1 (see below) describe all the contents required for a procedure step. Items 2 to 7 are the details of the procedure step identified in Item 1 .
1. TActionTaskProc
<procedure> <step> <procedure description><ActionPackageProc><next procedure name><next procedure step>
where
- procedure: string without space between characters
- step: integer; [0, infinite)
- procedure description: string; begin at and end with quotation mark (“”).
- ActionPackageProc: see Item 2 TActionPackageProc::read
- next procedure name: string; no space between characters
- next procedure step: integer; [0, infinite)
2. TActionPackageProc
<ID> <Required_time><Complexity><Cost><count> [for I = 1; I <= count; <Action>]
where
- ID: integer <dummy variable, assign value one>
- Require time: double <dummy variable, assign value one>
- Complexity: double [0, 10]
- Cost: double [0, 10]
- Count: integer [0, infinite)
- Action: described in Item 3
3. TActionProc
< Object ID of Action > <Action_type > <Required_time><Remain_time> <Perform_method> <Control Value> <total number of expectation>
[for I = 1; I <= total number of expectation; <Expectation><Expectation for OR logic>
if (Expectation for OR logic = YES) then
<Expectation>
else if (Another Expectation = NO or NONE)
/No further entry required/
end if]
<Non_response exit type>
If (Non_response exit type = PROCEDURE) then
<procedure name><procedure step>
else if (Non_response exit type = ACTION) then
<Action>
else if (Non_response exit type = NONE, ASK_FOR_ADVISE, or STOP CURRENT SCENARIO)
/no further entry for this section/
end if
where
- Object ID of Action: string; The unique name of the element (i.e., alarm, parameter, component, or control).
- Action_type: integer; the possible action types shown in Table E.1. When NONE is selected, the operator will simply idle until the Required_time is passed.
- Required_time: double; the nominal time lapse for the CommandControlCenter to perform the action.
- Remain_time: double; dummy variable. The value of this parameter is set to the same as the Required_time when the TActionProc object is created. This value is reduced by one every time step afterward. When the value of Remain_time is less than zero, the ComandControlCenter activates the action described by the object.
- Perform_method: integer; dummy variable. This was originally for specifying whether the operator would do the action by himself or asking other operators to do it. At current version, since the Decision Maker and Action Takers’ roles are clearly specified, this parameter has no effect.
- Control Value: double; [0, 1]. If Object ID of Action = NONE, then Control Value is dummy variable. This value will be passed to RELAP5 to change the state of the corresponding component.
- Total number of expectation: integer
- Expectation: described in Item 4
- Expectation for OR logic: integer; YES (3002) or NO (3003).
- Non_response exit type: Integer; whose possible values are shown in Table E.1
- Procedure name: string; no space between characters
- Procedure step: integer; (0, infinite]
- PROCEDURE, ACTION, NONE, ASK_FOR_ADVISE, STOP CURRENT SCENARIO: integers; See Table E2 for their corresponding values
Table E1 Types of action and the number represent them
| Action or State Type | Corresponding Number |
|---|---|
| NONE | 3045 |
| ON (e.g., turn on or is on) | 3022 |
| OFF | 3023 |
| OPEN | 3098 |
| CLOSE | 3099 |
| TRIP | 3115 |
| VERIFY | 3109 |
| WAIT | 3090 |
Table E2 The possible values of “Non_response exit type”
| Symbols | Corresponding integer |
|---|---|
| PROCEDURE | 3110 |
| ACTION | 3074 |
| NONE | 3045 |
| ASK_FOR_ADVISE | 3113 |
| STOP CURRENT SCENARIO | 3116 |
Table E3 Logics for parameters comparison
| Logics | Corresponding Number |
|---|---|
| Greater Than (>) | 3006 |
| Greater Than or Equal To (>=) | 3007 |
| Equal To (=) | 3008 |
| Less than or Equal To (<=) | 3009 |
| Less Than (<) | 3010 |
| Between (< x <) | 3032 |
| Decreasing (trend) | 3011 |
| Increasing (trend) | 3012 |
| Stable (trend) | 3013 |
4. TExpect (for expectation)
<Object ID of expectation>
If (the expectation is an alarm) Then
<Expect Alarm>
Else if (the expectation is an parameter value or change rate) Then
<Expect Parameter>
Else if (the expectation is a component state) Then
<Expect Component>
end if
Note: the user is expected to use the ADS GUI to construct the procedures. When constructing the procedures, the user is asked to selected the type of object that will be created.
where
- Object ID of expectation: string (the unique of the element)
- Expect Alarm: discussed in Item 5
- Expect Parameter: discussed in Item 6
- Expect Component: discussed in Item 7
5. Expect Alarm
<index ><required_time><remain_time><p_method><E_state>
where
- index: integer; dummy variable
- required_time: double; [0, infinite) nominal time lapse for the confirmation
- remain_time: double; dummy variable
- p_method: integer; dummy variable
- E_state: integer; ON (3022) or OFF (3023)
6. Expect Parameter
<index ><required_time ><remain_time><p_method><E_state><Logics> <Par1><Par2>
where
- index: integer: dummy variable
- required_time: double; [0, infinite) nominal time lapse for the confirmation
- remain_time: double; dummy variable
- p_method: integer; dummy variable
- E_state: integer; INCRESING(3011), DECREASING(3012), STABLE(3013), or NONE(3045)
- Logics: integer; Greater than(>), Greater than or equal to (>=), equal to (=), less than (<), less than or equal to (<=), between (< x <). See Table E3 for corresponding value.
- Par1 and Par2: double
If (Logics = Between) then
Par2 must be greater than Par1 (Par1 < x < Par 2).
Else
Par1: double; used to calculate the result of logic
Par2: double; dummy variable
End if
7. Expect Component
<index><required_time><remain_time><p_method><E_state>
where
- Index: integer; dummy variable
- required_time: double; [0, infinite) nominal time lapse for the confirmation
- remain_time: double; dummy variable
- p_method: integer; dummy variable
E_state: integer; ON(3022), OFF (3023), OPEN(3098), or CLOSE(3099).
The follows are two example of the procedural step.
Example 1:
SGTR 0 "Verif SG uncontrollable level"
1 1.0 1 1.0
2
A_SGB_FLOW_INBALANCE 3109 2.0 0.0 3077 1.0
1
A_SGB_FLOW_INBALANCE 3045 1.0 1.0 3077 3022 3045
3110
SGTR 1
A_SGA_FLOW_INBALANCE 3109 2.0 0.0 3077 1.0
1
A_SGA_FLOW_INBALANCE 3045 1.0 1.0 3077 3022 3045
3110
SGTR 1
SGTR 1
Example 2:
SGTR 19 "(Step 13.1)"
1 1.0 1 1.0
1
SCM_113 3090 30.0 0.0 3077 1.0
0 3045
SGTR 20
D2. ControlPanel.txt
File Directory: project directory\Input\Indicators
File Format:
<String1> <space> <Integer2> <new line>
{for int I = 0; I < Integer2; I++; <Object CRParameter > <new line>
<String3><space><Integer4><new line>
{for int I = 0; I < Integer4; I++; <Object CRComponentState><new line>
<String5><space><Integer6><new line>
{for int I = 0; I < Integer6; I++; <Object CRController><new line>
<String7><space><Integer8><new line>
{for int I = 0; I < Integer8; I++; <Object CRAlarmComponentState><new line>
<String9><space><Integer10><new line>
{for int I = 0; I < Integer10; I++; <Object CRAlarmParameterState><new line>
Where
<Object CRParameter> includes:
<String11> <space> <String12> <space> <String13>
<Object CRComponentState> includes:
<String21> <space> <String22>
<Object CRController> includes:
<String31> <space> <String32> <space> <Integer33>
<Object CRAlarmComponentState> includes:
<String41> <space> <String42> <space> <String43>
<Object CRAlarmParameterState> includes:
<String51> <space> <String52> <space> <Integer53> <space> <Double54>
Description:
- String1 is a pre-specified string “Control_Panel_Parameter”. No space exists between the characters of String1.
- Integer2 is an integer indicating the number of parameter indicators in the control panel.
- String3 is a pre-specified string “Control_Panel_Component_State”. No space exists between the characters of String1.
- Integer4 is an integer indicating the number of component state indicators in the control panel.
- String5 is a pre-specified string “Control_Panel_Controller”. No space exists between the characters of String1.
- Integer6 is an integer indicating the number of controllers, in the control panel, to change component state.
- String7 is a pre-specified string “Alarm_for_Component_State”. No space exists between the characters of String1.
- Integer8 is an integer indicating the number of alarms in the control panel indicating abnormal component state.
- String9 is a pre-specified string “Alarm_for_Parameter_State”. No space exists between the characters of String1.
- Integer10 is an integer indicating the number of alarms in the control panel indicating abnormal parameter value.
- String11 is the user entered name for the parameter indicator
- String12 is the user selected from the available component in the system model.
- String13 is the type of information to be retrieved from the component String12. The list of types of information is pre-specified which include “Temperature”, “Pressure”, “Flow rate”, “Liquid void fraction”, “water level”, and “Reactor power”
- String21 is the user entered name for the component indicator
- String22 is the user selected from the available trip logics (specified in the system model) to indicate a component state.
- String31 is the user entered name for the alarm which indicating a abnormal component state.
- String32 is the user selected from the available component state indicator in the control panel (indicated by String 21).
- Integer33 is user selected types of control (e.g., Open/Close (3098) or On/Off (3022)). In GUI, show text (e.g., Open/Close) to the user for selection of alternative. Once user selects one alternative, output the corresponding integer to the hard disk.
- String41 is the user entered name for the alarm labelling the alarm for the GUI user
- String42 is the user selected from the available parameter indicator in the control panel (indicated by String 21)
- String43 is the user selected criteria to activate the alarm. Only two options are available: “Positive-Relation(Need to verify)” and ”Negative-Relation”. Note: the situation such as a pump started and a valve open would activate the alarm if the relationship is set as “Positive-Relation.”
- String51 is the user entered name for the alarm labelling the alarm for the GUI user
- String52 is the user selected from the available parameter indicator in the control panel (indicated by String 11).
- String53 is user selected logic to compare the current indicator’s value to a reference point. The possible logics are “greater than”(3006), “Greater than or equal to”(3007), “Equal to”(3008), “smaller than or equal to” (3009), and “Smaller than” (3010). In GUI, show user the text (e.g., Greater than) but output the corresponding integer (e.g., 3006) to hard disk upon user selects one.
- Double54 is the reference value to be compared with the indicator value.
Example of file content:
Control_Panel_Parameter 1
CR_HL1_Temp HL_A1 Temperature
Control_Panel_Component_State 1
CR_V772_state V772
Control_Panel_Controller 1
CR_CTR_V772 IX_V772 3098
Alarm_for_Component_State 1
Alarm_V772_open V772 Positive_Relation
Alarm_for_Parameter_State 1
Alarm_RCS_temp_Hi CR_HL1_Temp 3006 570.0
D3. RELAP5_Channels.txt
The format of the RELAP5_Channels.txt is described as the following:
<String1><space><Integer2><new line>
{for int I = 0; I < Integer2; I++; <String3x> <space> <Long3x ><new line>
<String4><space><Integer5><new line>
{for int I = 0; I < Integer5; I++; <String6x> <space> <Long6x ><new line>
<String7><space><Integer8><new line>
{for int I = 0; I < Integer8; I++; <String9x> <space> <Integer9x ><new line>
<String10><space><Integer11><new line>
{for int I = 0; I < Integer11; I++; <String12x> <space> <Integer12x ><new line>
<String13><space><Integer14><new line>
{for int I = 0; I < Integer14; I++; <String15x> <space> <Integer15x ><new line>
<String16><space><Integer17><new line>
{for int I = 0; I < Integer17; I++; <String18x> <space> <Integer18x ><space><Integer19x><new line>
<String20><space><Integer21><new line>
{for int I = 0; I < Integer21; I++; <String21x> <space> <Integer22x ><new line>
where:
- String1 is a pre-specified string “Hydraulic_volume”. No space exists between the characters of String1.
- Integer2 indicates the number of hydraulic_volume to be used in the ADS simulation.
- String3x is the ID of the hydraulic_volume to be used during a simulation. No space exists between the characters of String3x.
- Long3x is a positive long integer with 9 digits which is used to locate the corresponding RELAP5 hydraulic volume.
- String4 is a pre-specified string “Hydraulic_junction”. No space exists between the characters of String4.
- Integer5 indicates the number of hydraulic_junction to be used in the ADS simulation.
- String6x is the ID of the hydraulic_volume to be used during a simulation. No space exists between the characters of String6x.
- Long6x is a positive long integer with 9 digits which is used to locate the corresponding RELAP5 hydraulic junction.
- String7 is a pre-specified string “Variable_trip”. No space exists between the characters of String7.
- Integer8 indicates the number of variable_trip to be used in the ADS simulation.
- String9x is the ID of the variable_trip to be used during a simulation. No space exists between the characters of String9x.
- Integer9x is a positive integer which is used to locate the corresponding RELAP5 variable trips.
- String10 is a pre-specified string “Logical_trip”. No space exists between the characters of String10.
- Integer11 indicates the number of logical_trip to be used in the ADS simulation.
- String12x is the ID of the logical_trip to be used during a simulation. No space exists between the characters of String12x.
- Integer12x is a positive integer which is used to locate the corresponding RELAP5 logical trips.
- String13 is a pre-specified string “Interactive_channel”. No space exists between the characters of String13.
- Integer14 indicates the number of interactive_channels to be used in the ADS simulation.
- String15x is the ID of the interactive_channel to be used during a simulation. No space exists between the characters of String15x.
- Integer15x is a positive integer which is used to locate the corresponding RELAP5 interactive_channels.
- String16 is a pre-specified string “Heat_structure”. No space exists between the characters of String16.
- Integer17 indicates the number of heat structures to be used in the ADS simulation.
- String18x is the ID of the interactive_channel to be used during a simulation. No space exists between the characters of String18x.
- Integer18x is a positive integer which is used to locate the corresponding RELAP5 heat structure.
- Integer19x is a positive integer that indicates the number of mesh points (i.e., in the redial dimension) within the hear structure node.
- String20 is a pre-specified string “Control_variable”. No space exists between the characters of String20.
- String21x indicates the number of control variables to be used in the ADS simulation. No space exists between the characters of String21x.
- Integer21 is the ID of the control variable to be used during a simulation.
- Integer22x is a positive integer which is used to locate the corresponding RELAP5 control variables.