Configurable Redundant Output (CROUT)
The Configurable Redundant Output instruction controls and monitors redundant
outputs. The reaction time for output feedback is configurable. The instruction
supports positive and negative feedback signals.
Available Languages
Ladder Diagram

Function Block
This instruction is not available in function block.
Structured Text
This instruction is not available in structured text.
Operands
IMPORTANT:
Unexpected operation, including controller
assert or a Major Non-Recoverable Fault, can occur if:
- Backing tag members are written to.
- Backing tags are shared by multiple instruction invocations.
- Backing tag members are passed as parameters to an instruction controlled by the same backing tag.
- The backing tag.EnableInmember is referenced anywhere in the program..EnableInis a parameter that represents rung state into an instruction and is only intended for internal use.For examples of these incorrect backing tag usages, see Backing tag usages that can cause unexpected operation.
WARNING:
If changing instruction operands while in Run
mode, accept the pending edits and cycle the controller mode from Program to Run for
the changes to take effect.
This table provides the operands used to configure the instruction. These operands
cannot be changed at runtime.
Operand | Data type | Format | Description | |
|---|---|---|---|---|
CROUT | CONFIGURABLE_ROUT | tag | CROUT structure | |
Feedback Type | BOOL | Drop-down | This operand defines the feedback ON and OFF states. | |
Positive (1) | ON (1): Feedback 1 ON, Output 1 ON. OFF (0): Feedback 1 OFF, Output 1 OFF. | |||
Negative (0) | ON (1): Feedback 1 OFF, Output 1 ON. OFF (0): Feedback 1 ON, Output 1 OFF. | |||
Feedback Reaction Time | DINT | immediate | This operand specifies the amount of time that the instruction
waits for Feedback 1 and Feedback 2 to reflect the state of
Output 1 and Output 2 as specified by the configured Feedback
Type. The valid range is 5 to 1000 ms. | |
The following table explains the instruction inputs.
Operand | Data Type | Format | Description |
|---|---|---|---|
Actuate | BOOL | tag | This input energizes or de-energizes Output 1 and Output 2. ON (1): Output 1 and Output 2 are energized if no faults
exist. OFF (0): Output 1 and Output 2 are de-energized. |
Feedback 1 | BOOL | tag | This input is constantly monitored to make sure that it reflects
the state of Output 1. When Output 1 transitions, this input
must detect the transition within the Feedback Reaction
Time. |
Feedback 2 | BOOL | tag | This input is constantly monitored to make sure that it reflects
the state of Output 2. When Output 2 transitions, this input
must detect the transition within the Feedback Reaction
Time. |
Input Status | BOOL | tag immediate | If instruction inputs are from a safety I/O module, this is the
status from the I/O module or modules (Connection Status or
Combined Status). If instruction inputs are derived from
internal logic, it is the application programmer’s
responsibility to determine the conditions. ON (1): The inputs to this instruction are valid. OFF (0): The inputs to this instruction are invalid. |
Output Status | BOOL | tag immediate | This input indicates the output status of the I/O module or
modules used by this instruction. ON (1): The I/O connection and the I/O module are
operational. OFF (0): The module has a fault or the connection to the module
has been lost. |
Reset 1 | BOOL | tag | This input clears the instruction faults provided the fault
condition is not present. OFF (0) -> ON (1): The FP and Fault Code outputs are
reset. |
1
Some safety standards require monitoring the transition of the reset
input. When the reset is used to reset a safety function, additional logic may be
required to verify a transition of the reset input from High-to-Low or
Low-to-High.The following table explains the instruction outputs.
Operand | Data Type | Description |
|---|---|---|
Output 1 (01) | BOOL | This output is used to control one channel of a two channel
output device. Output 1 is de-energized when 1 or more of the
following occurs:
|
Output 2 (02) | BOOL | This output is used to control one channel of a two channel
output device. Output 2 is de-energized when 1 or more of the
following occurs:
|
Fault Present (FP) | BOOL | ON (1): A fault is present in the instruction. OFF (0): The instruction is operating normally. |
Fault Code | DINT | This output indicates the type of fault that occurred. See the
Fault Codes section below for the list of fault codes. This parameter is not safety-related. |
Diagnostic Code | DINT | This output indicates the diagnostic status of the instruction.
See the Diagnostic Codes section below for a list of diagnostic
codes. This parameter is not safety-related. |
IMPORTANT:
Do not write to any instruction output tag
under any circumstances.
Normal Operation
This timing diagram shows normal operation of this instruction to control dual
channel outputs when the Feedback Type is Positive. Outputs 1 and 2 are energized at
(A) when the Actuate input turns ON (1). Both feedback inputs react before the
Feedback Reaction timer has expired, so Output 1 and Output 2 remain energized in
steady state at (B). Outputs 1 and 2 are de-energized at (C) when the Actuate input
turns OFF (0). At (D), both feedback inputs react before the Feedback Reaction timer
has expired, so Output 1 and Output 2 remain de-energized in steady state.

Feedback Fault
A feedback fault can occur when either Feedback 1 or Feedback 2 fails to correctly
reflect the state of Output 1 and Output 2. The Feedback Type is configured as
Positive in this diagram example. Output 1 and Output 2 are energized at (A), but at
(B), Feedback 2 has not turned ON (1) before the Feedback Reaction timer expires,
generating a feedback fault. The fault cannot be cleared at (C), because Feedback 1
and Feedback 2 do not yet reflect the state of Output 1 and Output 2. The fault is
cleared at (D) when the Reset input turns ON (1) and both Feedback 1 and Feedback 2
are OFF (0), correctly reflecting the state of Output and Output 2.

False Rung State Behavior
When the instruction is executed on a false rung, all instruction outputs are
de-energized.
Fault Codes and Corrective Actions
Fault Code | Description | Corrective Action |
|---|---|---|
0 | No fault | None |
16#20 32 | The Input Status input transitioned from ON (1) to OFF (0) while
the instruction was executing. |
|
16#21 33 | The Output Status input transitioned from ON (1) to OFF (0) while
the instruction was executing. |
|
16#5000 20480 | Feedback 1 and Feedback 2 turned OFF (0) unexpectedly. |
|
16#5001 20481 | Feedback 1 turned OFF (0) unexpectedly. |
|
16#5002 20482 | Feedback 2 turned OFF (0) unexpectedly. |
|
16#5003 20483 | Feedback 1 and Feedback 2 turned ON (1) unexpectedly. |
|
16#5004 20484 | Feedback 1 turned ON (1) unexpectedly. |
|
16#5005 20485 | Feedback 2 turned ON (1) unexpectedly. |
|
16#5006 20486 | Feedback 1 and Feedback 2 did not turn ON (1) within the Feedback
Reaction Time. |
|
16#5007 20487 | Feedback 1 did not turn ON (1) within the Feedback Reaction
Time. |
|
16#5008 20488 | Feedback 2 did not turn ON (1) within the Feedback Reaction
Time. |
|
16#5009 20489 | Feedback 1 and Feedback 2 did not turn OFF (0) within the
Feedback Reaction Time. |
|
16#500A 20490 | Feedback 1 did not turn OFF (0) within the Feedback Reaction
Time. |
|
16#500B 20491 | Feedback 2 did not turn OFF (0) within the Feedback Reaction
Time. |
|
Diagnostic Codes and Corrective Actions
Diagnostic Code | Description | Corrective Action |
|---|---|---|
0 | No fault | None |
16#20 32 | The Input Status was OFF (0) when the instruction started. | Check the I/O module connection. |
16#21 33 | The Output Status input transitioned from ON (1) to OFF (0) while
the instruction was executing. | Check the I/O module connection. |
16#5000 20480 | The Actuate input is held ON (1). | Set the Actuate input to OFF (0). |
Affects Math Status Flags
No
Major/Minor Faults
None specific to this instruction. See Index through arrays for array-indexing
faults.
Execution
Condition/State | Action Taken |
|---|---|
Prescan | Same as Rung-condition-in is false. |
Rung-condition-in is false | The .01 and .02 outputs are cleared to false. The Diagnostic Code and Fault Code outputs are set to 0 |
Rung-condition-in is true | The instruction executes. |
Postscan | Same as Rung-condition-in is false. |
Configurable Redundant Output
CROUT
redundant outputs
feedback signals
reaction time
Provide Feedback