Skip to content

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}.txt

For 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:

  1. Changing the component operating mode (e.g., automatic vs. manual mode)
  2. Setting a specific control value for a component (e.g., throttling a control valve to 50% open)
  3. Incrementing the control setting of a component (e.g., throttling a control valve open by an additional 10%)
  4. 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)
  5. 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_3

Expectations 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).

text
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_name

Reserved 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 ​

FieldTypeDescriptionExample Value
procedure_nameStringProcedure name. Must match an entry in Procedures.txt. No spaces; use _. Reserved: FRG_ (FRG), MPBG_ (mental).E_0
step_nameStringStep 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"
doubleDoubleReserved for future use. Enter a dummy value.1.0
number_of_substepsInteger, > 0Number 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 CodeVariable NameProcedure Type
3151VNOPNormal Operating Procedure
3152VAOPAbnormal Procedure
3153VEOPEmergency Operating Procedure
3154VFRGFunctional Recovery Guideline
3155VECAEmergency Contingency Action
3156VMENTAL_PROCEDUREMemorized Mental Procedure

Step Objective Codes ​

Integer CodeVariable NameStep Type
3161VOBJECTIVE_RELATEDObjective related
3162VPREREQUISITE_ACTIONPrerequisite
3163VMONITORING_STEPMonitoring
3164VVERIFICATION_STEPVerification
3165VDIAGNOSIS_STEPDiagnostic

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 ​

FieldTypeDescriptionExample Value
action_nameStringControl 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_typeIntegerType of control manipulation (see table below). Not provided for SCAN or 0.3109
minimum_timeDouble, > 0.0Minimum time (Weibull location parameter u) for the action, in seconds.0.0
weibull_alphaDouble, > 0.0Weibull scale parameter α for action time.1.0
weibull_betaDouble, > 0.0Weibull shape parameter β for action time.1.0
control_valueDoubleControl value applied to the action. Required for VACTION, VVERIFY, VADDITIVE. For VVERIFY, a dummy value is acceptable.0.0
control_parameterStringControl panel indicator whose perceived value is used as the control value. Required only when action_type is VPARAMETER_CONTROL (3139).PZR_Pressure
skip_step_alphaDouble, > 0.0Beta distribution α parameter for the base step skipping probability (Equation 15). Required for active action types and SCAN.1.0
skip_step_betaDouble, > 0.0Beta distribution β parameter for the base step skipping probability. Required for active action types and SCAN.100.0

Action Type Codes ​

Integer CodeVariable NameDescription
3074VACTIONSimple controller manipulation — position controller to control_value
3109VVERIFYTime delay only — no active control manipulation; dummy control_value required
3112VADDITIVEIncrement controller value by control_value; bounded by fully open/on and fully closed/off limits in ControlPanel.txt
3139VPARAMETER_CONTROLPosition controller to perceived value of control_parameter indicator; no action if not yet perceived
3136VOAT_SCANAdd 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):

p(x)=Γ(α+β)Γ(α)Γ(β)x(α−1)(1−x)(β−1),p¯=αα+β

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
FieldTypeDescriptionExample Value
expect_nameStringControl 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_1StringRequired 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_2StringRequired only if expect_name is Parameter_Difference. Must match a parameter_name in ControlPanel.txt.—
verificationInteger3002 (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_timeDouble, > 0.0Weibull location parameter for expectation evaluation time. Required for all expectation types except Mental_Belief.0.0
weibull_alphaDouble, > 0.0Weibull α for expectation evaluation time.1.0
weibull_betaDouble, > 0.0Weibull β for expectation evaluation time.1.0
thresholdDoubleThreshold value for Parameter_Difference expectations. Expectation satisfied if expect_parameter_1 − expect_parameter_2 > threshold.—
expected_stateIntegerExpected 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
relationshipIntegerComparison operator for parameter value expectations. See relationship codes below.3010
expect_value_1DoubleThreshold value for comparison.0.0
expect_value_2DoubleUpper bound for VBETWEEN comparisons; a dummy value must be supplied for all other relationships.0.0
logic_flagInteger3002 (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 CodeVariable NameApplicable To
3022VONComponent / support system (ON state), Alarm (activated)
3023VOFFComponent / support system (OFF state), Alarm (not activated)
3098VOPENComponent / support system (OPEN state)
3099VCLOSEComponent / support system (CLOSE state)
3021VSUCCEEDMental Belief (active/succeeded)
3045VNONEMental Belief (not yet activated); also used as dummy for parameter expectations

Relationship Codes ​

Integer CodeVariable NameCondition
3006VGTParameter > expect_value_1
3007VGEParameter >= expect_value_1
3008VEQParameter == expect_value_1 (use with caution due to floating-point precision)
3009VLEParameter <= expect_value_1
3010VLTParameter < expect_value_1
3032VBETWEENexpect_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.

FieldTypeDescriptionExample Value
nonresponse_action_typeIntegerType of contingency action (see table below). This field must always be provided.3110
procedure_nameStringTarget procedure for a VPROCEDURE transfer. Only entered for code 3110.E_0
step_nameStringTarget step for a VPROCEDURE transfer. Only entered for code 3110.Step_4.2
nonresponse_action_nameStringController to manipulate (VACTION, VADDITIVE, VPARAMETER_CONTROL) or indicator to add to scan queue (VPARAMETER_SCAN). Not entered for VPROCEDURE, VSTOP, or VNONE.—
nonresponse_action_codeIntegerVACTION/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_typeIntegerScan queue sub-list type (1=alarm, 2=component, 3=parameter). Only for VPARAMETER_SCAN (3140).—
nonresponse_scan_priorityInteger, > 1Initial scan priority for the added indicator. Lower value = higher priority. Only for VPARAMETER_SCAN (3140).—
minimum_timeDoubleWeibull u for non-response action time. Required for 3074, 3112, 3139, 3140.1.0
weibull_alphaDoubleWeibull α for non-response action time. Required for 3074, 3112, 3139, 3140.100.0
weibull_betaDoubleWeibull β for non-response action time. Required for 3074, 3112, 3139, 3140.—
nonresponse_control_valueDoubleControl value for VACTION or VADDITIVE non-response actions.—
nonresponse_control_parameterStringPerceived parameter indicator used for VPARAMETER_CONTROL non-response actions.—
skip_nonresponse_alphaDouble, > 0.0Beta distribution α for non-response step skipping probability (Equation 16). Required for 3074, 3110, 3112, 3139, 3140.1.0
skip_nonresponse_betaDouble, > 0.0Beta distribution β for non-response step skipping probability. Required for 3074, 3110, 3112, 3139, 3140.100.0

Non-Response Action Type Codes ​

Integer CodeVariable NameDescription
3045VNONENo contingency action performed. No further fields in the substep.
3074VACTIONSimple controller manipulation — position to nonresponse_control_value
3110VPROCEDURETransfer to the procedure step specified by procedure_name and step_name
3112VADDITIVEIncrement controller value by nonresponse_control_value
3116VSTOPTerminate the accident sequence. No further fields in the substep.
3139VPARAMETER_CONTROLPosition controller to perceived value of nonresponse_control_parameter
3140VPARAMETER_SCANAdd control panel indicator to the operator scan queue

Step Transfer Fields ​

FieldTypeDescriptionExample Value
next_procedure_nameStringProcedure name to transfer to after the step is complete. Enter NONE if no further steps will be performed.ES_0.1
next_step_nameStringStep 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 ​

text
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.1

Sample 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:

  1. 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 flag 3002 (VYES) connects these two with OR logic.
  2. Verify that the high containment pressure alarm is OFF. AND with next unit (logic flag 3003).
  3. Verify that the low pressurizer pressure safety injection alarm is OFF OR that the low pressure safety injection has been manually blocked.
  4. Verify that the safety injection alarm is OFF. Logic flag 3045 terminates 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.

ADS-IDAC Engine Documentation