ZProcedure_{procedure_name}_{step_name}.txt
Purpose
The ZProcedure_procedure_name_step_name.txt input files provide the detailed instructions to be followed when executing a procedure step. There is one file per procedure step. The file naming convention directly encodes the procedure and step:
ZProcedure_{procedure_name}_{step_name}.txtFor example, procedure E_0, step Step_4.1 corresponds to the file ZProcedure_E_0_Step_4.1.txt.
ADS-IDAC uses a standardized format for proceduralized actions: an action is performed, followed by verification of expectations. If the expectations are not met, a mitigative (non-response) contingency action is executed.
Procedural actions fall into five main categories:
- Changing the component operating mode (e.g., automatic vs. manual mode)
- Setting a specific control value for a component (e.g., throttling a control valve to 50% open)
- Incrementing the control setting of a component (e.g., throttling a control valve open by an additional 10%)
- Setting a control value based on a perceived parameter (e.g., setting the steam dump target pressure equal to the perceived main steam header pressure)
- Simple time delays — used to model time taken for activities outside the ADS-IDAC model (e.g., emergency plan activation, equipment alignment not in the RELAP model)
Expectation Logic Structure (Figure 20)
Action expectations are modeled with a logic tree approach. Expectations within a single unit are connected by OR logic. Units between themselves are connected by AND logic. For example:
Expectation Met = (Expectation_1a OR Expectation_1b) AND Expectation_2 AND Expectation_3Expectations are verified sequentially. Once it is determined the expectation set cannot be satisfied, remaining expectations are not evaluated. If expectations are not met, the non-response contingency action is performed. After expectations are verified, procedure flow progresses to the next substep or transfers to the next procedure step.
Input File Format
The parser is token-based (line breaks and other whitespace are interchangeable; the layouts below follow the shipped BV4 step files). The fields each substep takes depend on the action name and action type; the fields of each expectation depend on the expectation type, which the parser infers from expect_name (looked up against ControlPanel.txt, or one of the reserved words Mental_Belief / Parameter_Difference).
procedure_name step_name
"step_description"
procedure_type step_type step_complexity
double
number_of_substeps
[For each substep — one of the action shapes:]
# control manipulation (action_type 3074 VACTION, 3109 VVERIFY, 3112 VADDITIVE):
action_name action_type minimum_time weibull_alpha weibull_beta control_value skip_step_alpha skip_step_beta number_of_expectations
# parameter-based control (action_type 3139 VPARAMETER_CONTROL):
action_name 3139 minimum_time weibull_alpha weibull_beta control_parameter skip_step_alpha skip_step_beta number_of_expectations
# scan-queue addition (reserved action name SCAN — no action_type field):
SCAN parameter_name parameter_type scan_priority minimum_time weibull_alpha weibull_beta skip_step_alpha skip_step_beta number_of_expectations
# procedure transfer (reserved action name 0 — nothing else in the substep):
0
[For each expectation — one of the expectation shapes:]
# alarm / component / support-system state:
expect_name verification minimum_time weibull_alpha weibull_beta expected_state logic_flag
# parameter value or trend:
expect_name verification minimum_time weibull_alpha weibull_beta dummy_state relationship expect_value_1 expect_value_2 logic_flag
# mental belief:
Mental_Belief belief_name expected_state logic_flag
# parameter difference:
Parameter_Difference expect_parameter_1 expect_parameter_2 verification minimum_time weibull_alpha weibull_beta threshold logic_flag
[Non-response action — shape depends on nonresponse_action_type:]
nonresponse_action_type
[fields per the non-response table below]
[additional substeps ...]
next_procedure_name
next_step_nameReserved action names
0 — procedure transfer: the substep has no further fields; control passes via next_procedure_name/next_step_name. SCAN — scan-queue addition (no action_type field; see the field list above). Do_And_Return — reserved for a mental-procedure call (procedure_name step_name follow); not used in the BV4 reference case.
Header Fields
| Field | Type | Description | Example Value |
|---|---|---|---|
procedure_name | String | Procedure name. Must match an entry in Procedures.txt. No spaces; use _. Reserved: FRG_ (FRG), MPBG_ (mental). | E_0 |
step_name | String | Step name. Must match an entry in Procedures.txt. No spaces; use _. | Step_4.1 |
"step_description" | String (in quotes) | Descriptive title for the procedure step. Must be enclosed in double quotation marks. | "Check Safety Injection Status" |
double | Double | Reserved for future use. Enter a dummy value. | 1.0 |
number_of_substeps | Integer, > 0 | Number of substeps (action/expectation/mitigation units) in this step. Must exactly match the number listed. If 0, no data fields are provided except next_procedure_name and next_step_name. | 1 |
Procedure Type Codes
| Integer Code | Variable Name | Procedure Type |
|---|---|---|
| 3151 | VNOP | Normal Operating Procedure |
| 3152 | VAOP | Abnormal Procedure |
| 3153 | VEOP | Emergency Operating Procedure |
| 3154 | VFRG | Functional Recovery Guideline |
| 3155 | VECA | Emergency Contingency Action |
| 3156 | VMENTAL_PROCEDURE | Memorized Mental Procedure |
Step Objective Codes
| Integer Code | Variable Name | Step Type |
|---|---|---|
| 3161 | VOBJECTIVE_RELATED | Objective related |
| 3162 | VPREREQUISITE_ACTION | Prerequisite |
| 3163 | VMONITORING_STEP | Monitoring |
| 3164 | VVERIFICATION_STEP | Verification |
| 3165 | VDIAGNOSIS_STEP | Diagnostic |
step_complexity: Double, range 0.1–10.0. Set to 1.0 for neutral complexity impact. Values > 1.0 increase skip likelihood; values < 1.0 decrease it.
Substep Action Fields
| Field | Type | Description | Example Value |
|---|---|---|---|
action_name | String | Control to be manipulated, or the reserved values 0 (procedure transfer — no other fields except next_procedure_name/next_step_name) or SCAN (add indicator to scan queue). Must match a control_name in ControlPanel.txt for active action types. | A_Safety_Injection |
action_type | Integer | Type of control manipulation (see table below). Not provided for SCAN or 0. | 3109 |
minimum_time | Double, > 0.0 | Minimum time (Weibull location parameter u) for the action, in seconds. | 0.0 |
weibull_alpha | Double, > 0.0 | Weibull scale parameter α for action time. | 1.0 |
weibull_beta | Double, > 0.0 | Weibull shape parameter β for action time. | 1.0 |
control_value | Double | Control value applied to the action. Required for VACTION, VVERIFY, VADDITIVE. For VVERIFY, a dummy value is acceptable. | 0.0 |
control_parameter | String | Control panel indicator whose perceived value is used as the control value. Required only when action_type is VPARAMETER_CONTROL (3139). | PZR_Pressure |
skip_step_alpha | Double, > 0.0 | Beta distribution α parameter for the base step skipping probability (Equation 15). Required for active action types and SCAN. | 1.0 |
skip_step_beta | Double, > 0.0 | Beta distribution β parameter for the base step skipping probability. Required for active action types and SCAN. | 100.0 |
Action Type Codes
| Integer Code | Variable Name | Description |
|---|---|---|
| 3074 | VACTION | Simple controller manipulation — position controller to control_value |
| 3109 | VVERIFY | Time delay only — no active control manipulation; dummy control_value required |
| 3112 | VADDITIVE | Increment controller value by control_value; bounded by fully open/on and fully closed/off limits in ControlPanel.txt |
| 3139 | VPARAMETER_CONTROL | Position controller to perceived value of control_parameter indicator; no action if not yet perceived |
| 3136 | VOAT_SCAN | Add control panel indicator to the operator scan queue |
SCAN action fields
SCAN substeps omit action_type and control_value, but carry the full field set: parameter_name, parameter_type (1=alarm, 2=component, 3=parameter), scan_priority, then the Weibull timing triple (minimum_time weibull_alpha weibull_beta), the skip-probability pair (skip_step_alpha skip_step_beta), and number_of_expectations — in that order.
The step skipping base probability is modeled with the Beta distribution (Equation 15):
To improve reproducibility, select α and β to minimize variance while preserving the intended mean. For example, α = 100, β = 100 gives the same mean (0.5) as α = 1, β = 1 but with much lower variance.
Per-Expectation Fields
The expectation type is inferred from expect_name: names matching a ControlPanel.txt alarm, component, support system display, or parameter dispatch to the corresponding expectation reader, and the reserved words Mental_Belief / Parameter_Difference select their special forms. Each type reads a different field sequence (see the shapes in the format block above) — the glossary below defines every field, but only the fields of the matching shape appear in the file, in the shape's order:
- Alarm / component / support-system state:
verification, Weibull triple,expected_state,logic_flag - Parameter value / trend:
verification, Weibull triple, dummy state (e.g.3045),relationship,expect_value_1,expect_value_2,logic_flag - Mental belief:
expect_parameter_1(belief name),expected_state,logic_flag— no timing fields - Parameter difference:
expect_parameter_1,expect_parameter_2,verification, Weibull triple,threshold,logic_flag
| Field | Type | Description | Example Value |
|---|---|---|---|
expect_name | String | Control panel indicator, alarm, or component to verify. Special reserved words: Mental_Belief (compare belief state) or Parameter_Difference (compare difference between two parameters to a threshold). | A_Lo_SG_Pressure_SI |
expect_parameter_1 | String | Required only if expect_name is Mental_Belief (must match a belief name in KB_OAT(ODM)_HardWired_Diagnosis.txt) or Parameter_Difference (must match a parameter_name in ControlPanel.txt). | — |
expect_parameter_2 | String | Required only if expect_name is Parameter_Difference. Must match a parameter_name in ControlPanel.txt. | — |
verification | Integer | 3002 (VYES) forces re-verification of the indicator even when previously perceived. 3003 (VNO) or 3045 (VNONE) uses previously perceived information. Use VYES in looping steps to prevent stale data. | 3002 |
minimum_time | Double, > 0.0 | Weibull location parameter for expectation evaluation time. Required for all expectation types except Mental_Belief. | 0.0 |
weibull_alpha | Double, > 0.0 | Weibull α for expectation evaluation time. | 1.0 |
weibull_beta | Double, > 0.0 | Weibull β for expectation evaluation time. | 1.0 |
threshold | Double | Threshold value for Parameter_Difference expectations. Expectation satisfied if expect_parameter_1 − expect_parameter_2 > threshold. | — |
expected_state | Integer | Expected state for component, alarm, or mental belief expectations. See codes below. For parameter value expectations, a dummy value (e.g., 3045) must be supplied. | 3023 |
relationship | Integer | Comparison operator for parameter value expectations. See relationship codes below. | 3010 |
expect_value_1 | Double | Threshold value for comparison. | 0.0 |
expect_value_2 | Double | Upper bound for VBETWEEN comparisons; a dummy value must be supplied for all other relationships. | 0.0 |
logic_flag | Integer | 3002 (VYES): connect this expectation to the next with OR logic (same expectation unit). 3003 (VNO) or 3045 (VNONE): AND logic (separate expectation units). | 3003 |
Expected State Codes
| Integer Code | Variable Name | Applicable To |
|---|---|---|
| 3022 | VON | Component / support system (ON state), Alarm (activated) |
| 3023 | VOFF | Component / support system (OFF state), Alarm (not activated) |
| 3098 | VOPEN | Component / support system (OPEN state) |
| 3099 | VCLOSE | Component / support system (CLOSE state) |
| 3021 | VSUCCEED | Mental Belief (active/succeeded) |
| 3045 | VNONE | Mental Belief (not yet activated); also used as dummy for parameter expectations |
Relationship Codes
| Integer Code | Variable Name | Condition |
|---|---|---|
| 3006 | VGT | Parameter > expect_value_1 |
| 3007 | VGE | Parameter >= expect_value_1 |
| 3008 | VEQ | Parameter == expect_value_1 (use with caution due to floating-point precision) |
| 3009 | VLE | Parameter <= expect_value_1 |
| 3010 | VLT | Parameter < expect_value_1 |
| 3032 | VBETWEEN | expect_value_1 < Parameter < expect_value_2 |
Non-Response (Contingency) Action Fields
The non-response action is performed only if any expectation unit is not satisfied.
| Field | Type | Description | Example Value |
|---|---|---|---|
nonresponse_action_type | Integer | Type of contingency action (see table below). This field must always be provided. | 3110 |
procedure_name | String | Target procedure for a VPROCEDURE transfer. Only entered for code 3110. | E_0 |
step_name | String | Target step for a VPROCEDURE transfer. Only entered for code 3110. | Step_4.2 |
nonresponse_action_name | String | Controller to manipulate (VACTION, VADDITIVE, VPARAMETER_CONTROL) or indicator to add to scan queue (VPARAMETER_SCAN). Not entered for VPROCEDURE, VSTOP, or VNONE. | — |
nonresponse_action_code | Integer | VACTION/VADDITIVE (3074/3112) only: an integer read between nonresponse_action_name and minimum_time. The value is consumed but not used; the BV4 files put a state code here (e.g., 3022). | 3022 |
nonresponse_indicator_type | Integer | Scan queue sub-list type (1=alarm, 2=component, 3=parameter). Only for VPARAMETER_SCAN (3140). | — |
nonresponse_scan_priority | Integer, > 1 | Initial scan priority for the added indicator. Lower value = higher priority. Only for VPARAMETER_SCAN (3140). | — |
minimum_time | Double | Weibull u for non-response action time. Required for 3074, 3112, 3139, 3140. | 1.0 |
weibull_alpha | Double | Weibull α for non-response action time. Required for 3074, 3112, 3139, 3140. | 100.0 |
weibull_beta | Double | Weibull β for non-response action time. Required for 3074, 3112, 3139, 3140. | — |
nonresponse_control_value | Double | Control value for VACTION or VADDITIVE non-response actions. | — |
nonresponse_control_parameter | String | Perceived parameter indicator used for VPARAMETER_CONTROL non-response actions. | — |
skip_nonresponse_alpha | Double, > 0.0 | Beta distribution α for non-response step skipping probability (Equation 16). Required for 3074, 3110, 3112, 3139, 3140. | 1.0 |
skip_nonresponse_beta | Double, > 0.0 | Beta distribution β for non-response step skipping probability. Required for 3074, 3110, 3112, 3139, 3140. | 100.0 |
Non-Response Action Type Codes
| Integer Code | Variable Name | Description |
|---|---|---|
| 3045 | VNONE | No contingency action performed. No further fields in the substep. |
| 3074 | VACTION | Simple controller manipulation — position to nonresponse_control_value |
| 3110 | VPROCEDURE | Transfer to the procedure step specified by procedure_name and step_name |
| 3112 | VADDITIVE | Increment controller value by nonresponse_control_value |
| 3116 | VSTOP | Terminate the accident sequence. No further fields in the substep. |
| 3139 | VPARAMETER_CONTROL | Position controller to perceived value of nonresponse_control_parameter |
| 3140 | VPARAMETER_SCAN | Add control panel indicator to the operator scan queue |
Step Transfer Fields
| Field | Type | Description | Example Value |
|---|---|---|---|
next_procedure_name | String | Procedure name to transfer to after the step is complete. Enter NONE if no further steps will be performed. | ES_0.1 |
next_step_name | String | Step name to transfer to. Enter NONE if no further steps will be performed. | Step_1.1 |
Sample Input: ZProcedure_E_0_Step_4.1.txt
E_0 Step_4.1
"Check Safety Injection Status"
3153 3165 1.0
1.0
1
A_Safety_Injection
3109 0.0 1.0 1.0 1.0
4
A_Lo_SG_Pressure_SI
3045 0.0 1.0 1.0
3023
3002
Block_Main_Steam_Isolation
3045 0.0 0.5 2.0
3023
3003
A_Hi_Cont_Pressure
3045 0.0 1.0 1.0
3023
3003
A_Lo_PZR_Pressure_SI
3045 0.0 1.0 1.0
3023
3002
Block_Low_Press_SI
3045 0.0 0.5 2.0
3023
3003
Safety_Injection
3002 0.0 1.0 1.0
3022
3045
3110
E_0
Step_4.2
1.0 100.0
ES_0.1
Step_1.1Sample Explanation
The file name is ZProcedure_E_0_Step_4.1.txt. The procedure is an emergency operating procedure (3153 = VEOP) with a step objective of diagnosis (3165 = VDIAGNOSIS). Step complexity is set to the neutral value of 1.0. There is 1 substep.
The substep action verifies the status of the safety injection alarm (A_Safety_Injection) using action type VVERIFY (3109) — a time delay with no active control manipulation. The Weibull parameters for the verification time are u = 0.0, α = 1.0, β = 1.0. The base skip probability Beta distribution parameters are α = 1.0, β = 100.0, giving a mean skip probability of approximately 0.01.
The substep has 4 expectation units:
- Verify that the low steam generator pressure safety injection alarm is OFF (
3023=VOFF) OR that the main steam isolation has been manually blocked (3023=VOFF). Logic flag3002(VYES) connects these two with OR logic. - Verify that the high containment pressure alarm is OFF. AND with next unit (logic flag
3003). - Verify that the low pressurizer pressure safety injection alarm is OFF OR that the low pressure safety injection has been manually blocked.
- Verify that the safety injection alarm is OFF. Logic flag
3045terminates the unit.
If any expectation is not satisfied, the non-response action transfers (3110 = VPROCEDURE) to procedure E_0, step Step_4.2. If expectations are satisfied, the step transfers to procedure ES_0.1, step Step_1.1.