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