Dual Channel Input Monitor (DCM)

This instruction applies to the Compact GuardLogix 5370, GuardLogix 5570, Compact GuardLogix 5380, and GuardLogix 5580 controllers.
The Dual Channel Input Monitor instruction monitors dual-input safety devices and sets O1 (Output 1) based on the Input Type operand and the combined state of Channel A and Channel B.
Available Languages
Ladder Diagram
DCM_LD_avail_v31
Function Block
This instruction is not available in function block.
Structured Text
This instruction is not available in structured text.
Operands
IMPORTANT:
Unexpected operation may occur if:
  • Output tag operands are overwritten.
  • Members of a structure operand are overwritten.
  • Structure operands are shared by multiple instructions.
IMPORTANT:
Make sure safety input points are configured as single, not Equivalent or Complementary. These instructions provide all dual channel functionality necessary for PLd (Cat. 3) or Ple (Cat. 4) safety functions.
WARNING:
ATTENTION:
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.
The following table provides the operands that are used to configure the instruction. These operands cannot be changed at runtime.
Operand
Data Type
Format
Description
DCM
DCI_MONITOR
tag
DCM structure
Safety Function
DINT
Drop Down
This operand provides a text name for how this instruction is being used. Choices include cam switch (40), position limit switch (41), and user-defined (100).
This operand does not affect instruction behavior. It is for information/documentation purposes only.
Input Type
DINT
Drop Down
This operand selects input channel behavior.
Equivalent - Active High (0)
: Inputs are in the active state when Channel A and Channel B inputs are 1.
Equivalent - Active Low (1)
: Inputs are in the active state when Channel A and Channel B inputs are 0.
Complementary (2)
: Inputs are in the active state when Channel A is 1 and Channel B is 0.
Discrepancy Time (ms)
DINT
immediate
The amount of time that the inputs can be in an inconsistent state before an instruction fault is generated. The inconsistent state depends on the Input Type.
Equivalent: Inconsistent state is when either is true:
Channel A = 0 and Channel B =1
Channel A =1 and Channel B =0
Complementary: Inconsistent state is when either is true:
Channel A = 0 and Channel B =0
Channel A =1 and Channel B =1
If this operand is 0, the Discrepancy Time checking is disabled (0 = infinite). The allowable range is 0...3000 ms.
The following table explains instruction inputs. The inputs may be field device signals from input devices or derived from user logic.
Operand
Data Type
Format
Description
Channel A
1
BOOL
tag
This input is one of the two inputs being monitored. When either input is in the safe state, Output 1 is de-energized.
Channel B
1
BOOL
tag
This input is one of the two inputs being monitored. When either input is in the safe state, Output 1 is de-energized.
Input Status
BOOL
immediate
tag
If instruction inputs are from a safety I/O module, this is the status from the I/O module (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.
Reset
2
BOOL
tag
This input clears the instruction faults provided the fault condition is not present.
OFF (0) -> ON (1): The Fault Present and Fault Code outputs are reset.
1
If the input is from a
Guard I/O
input module, make sure that the input is configured as single, not Equivalent or Complementary.
2
ISO 13849-1 stipulates instruction reset functions must occur on falling edge signals. To comply with ISO 13849-1 requirements, add this logic immediately before this instruction. Rename the Reset_Signal tag in this example to the reset signal tag name. Then use the OSF instruction Output Bit tag as the reset source of the instruction.
Reset_Signal Example_v31
The following table explains instruction outputs. The outputs may be external tags (safety output modules) or internal tags for use in other logic routines.
Operand
Data Type
Description
Output 1 (O1)
BOOL
This output is energized (1) when the input conditions are satisfied.
The output becomes de-energized (0) when:
  • Either Channel A or Channel B transitions to the safe state.
  • The Input Status is OFF (0).
Instruction Status (IS)
BOOL
This output is ON (1) when Output 1 of this instruction is valid (no faults or diagnostics are present).
Fault Present (FP)
BOOL
ON (1): A fault is present in the instruction.
OFF (0): This instruction is operating normally.
Fault Code
DINT
This output indicates the type of fault that occurred. See the Fault Codes section below for a list of fault codes.
This operand is not safety-related.
Diagnostic Code
DINT
This output indicates the diagnostic status of the instruction. See the Diagnostic Codes for a list of diagnostic codes.
This operand is not safety-related.
IMPORTANT:
Do not write to any instruction output tag under any circumstances.
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 .O1, .IS, and .FP are cleared to false.
Rung-condition-in is true
The instruction executes as described in the operation section.
Postscan
Same as Rung-condition-in is false.
Operation
Normal Operation
The timing diagram illustrates the normal monitoring of a dual-channel input with the Input Type configured as Equivalent - Active High. Output 1 is ON (1) initially because the safety inputs are in the active state. At (A), Channel A transitions to the safe state, which causes Output 1 to go to the safe state. At (B), both of the safety inputs have transitioned to the active state, which energizes Output 1. At (C), Output 1 is de-energized and energized again at (D).
The Instruction Status is ON (1) the entire time because no faults or diagnostics occur.
DCM Normal Operation diagram
Input Status Fault Operation
The timing diagram illustrates instruction behavior with fault conditions. At (A), Output 1 turns ON (1) when the Input Status becomes valid. This also energizes Output 1 because the safety inputs are in the active state. At (B), a fault is generated when the Input status becomes invalid. This also turns OFF (0) the Instruction Status output. At (C), the fault cannot be reset because the Input Status is still invalid. At (D), the fault is cleared when a reset is triggered with the Input Status being valid. This also turns the Instruction Status output ON (1).
DCM I/O Status Fault Operation
Discrepancy Fault Operation
The timing diagram illustrates a discrepancy fault occurring when Channel A and Channel B are in an inconsistent state for longer than the Discrepancy Time. At (A), a fault is generated when the safety inputs are in an inconsistent state for longer than the Discrepancy Time. This also turns Output 1 OFF (0). At (B), the fault is cleared because a Reset is triggered when the safety inputs are no longer in an inconsistent state. At (C), the fault is generated when the safety inputs are again in an inconsistent state for longer than the Discrepancy Time. At (D), the fault is reset.
DCM Discrepency Fault Operation
False Rung State Behavior
When the instruction is executed on a false rung, all instruction outputs are de-energized.
Fault Codes and Corrective Actions
The fault codes are listed in hexadecimal format followed by decimal format.
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.
  • Check the I/O module connection or the internal logic used to source input status.
  • Reset the fault.
16#4000
16384
Channel A and Channel B were in an inconsistent state for longer than the Discrepancy Time. At the time of the fault, Channel A was in the active state. Channel B was in the safe state.
  • Check the wiring.
  • Perform a functional test of the device (put Channel A and Channel B in a safe state).
  • Reset the fault.
16#4001
16385
Channel A and Channel B were in an inconsistent state for longer than the Discrepancy Time. At the time of the fault, Channel A was in the safe state. Channel B was in the active state.
16#4002
16386
Channel A went to the safe state and back to the active state while Channel B remained active.
16#4003
16387
Channel B went to the safe state and back to the active state while Channel A remained active.
Diagnostic Codes and Corrective Actions
The diagnostic codes are listed in hexadecimal format followed by decimal format.
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 or the internal logic used to source input status.
Provide Feedback
Have questions or feedback about this documentation? Please submit your feedback here.