Eight Position Mode Selector (EPMS)

This instruction applies to the Compact GuardLogix 5370, GuardLogix 5570, Compact GuardLogix 5380, and GuardLogix 5580 controllers.
The Eight Position Mode Selector (EPMS) instruction’s main function is to energize one of its eight outputs when the associated input goes active. Only one output may be energized at a time.
A fault is generated when a no input active condition exists for more than 250 ms, or a multiple input active condition exists. The fault is cleared by applying an OFF (0) to ON (1) transition on the Reset input, but only after the fault condition is corrected.
This instruction supports a Lock input. Updating the outputs is prohibited when the Lock input is set to ON (1). Attempting to update the outputs while the Lock input is ON (1) results in the generation of a diagnostic code and outputs are de-energized (no mode).
WARNING:
This instruction is specified to operate with Break before Make types of inputs.
Available Languages
Ladder Diagram
RSL5K_EPMS Ladder Diagram_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.
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 used to configure the instruction. These operands cannot be changed at runtime.
Operand
Data Type
Format
Description
EPMS
EIGHT_POS_MODE_SELECTOR
tag
EPMS structure
The following table explains instruction inputs. The inputs can be field device signals from input devices or be derived from user logic.
Name
Data Type
Format
Description
Input 1
BOOL
immediate
tag
ON (1): Input ON (1)
OFF (0): Input OFF (0)
Input 2
BOOL
immediate
tag
ON (1): Input ON (1)
OFF (0): Input OFF (0)
Input 3
BOOL
immediate
tag
ON (1): Input ON (1)
OFF (0): Input OFF (0)
Input 4
BOOL
immediate
tag
ON (1): Input ON (1)
OFF (0): Input OFF (0)
Input 5
BOOL
immediate
tag
ON (1): Input ON (1)
OFF (0): Input OFF (0)
Input 6
BOOL
immediate
tag
ON (1): Input ON (1)
OFF (0): Input OFF (0)
Input 7
BOOL
immediate
tag
ON (1): Input ON (1)
OFF (0): Input OFF (0)
Input 8
BOOL
immediate
tag
ON (1): Input ON (1)
OFF (0): Input OFF (0)
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.
ON (1) -> OFF (0): Generates a fault.
Lock
BOOL
immediate
tag
ON (1): The instruction is locked. Any changes in the input states result in all outputs being de-energized and a fault or diagnostic is generated.
OFF (0): The instruction is unlocked. Valid input changes are accepted.
Reset
1
BOOL
tag
This input clears instruction faults provided the fault condition is not present.
OFF (0) -> ON (1): The Fault Present and Fault Code outputs are reset.
(1)
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 tagname. Then use the OSF instruction Output Bit tag as the instruction’s reset source.
Logix5000CPMreset_v31
The following table explains instruction outputs. The outputs are typically used to select different modes of application operation by enabling other instructions (Output 1 for mode 1, and so on).
Name
Data Type
Description
Output 1 (01)
BOOL
ON (1): Input ON (1)
OFF (0): Input OFF (0)
Output 2 (01)
BOOL
ON (1): Input ON (1)
OFF (0): Input OFF (0)
Output 3 (01)
BOOL
ON (1): Input ON (1)
OFF (0): Input OFF (0)
Output 4 (01)
BOOL
ON (1): Input ON (1)
OFF (0): Input OFF (0)
Output 5 (01)
BOOL
ON (1): Input ON (1)
OFF (0): Input OFF (0)
Output 6 (01)
BOOL
ON (1): Input ON (1)
OFF (0): Input OFF (0)
Output 7 (01)
BOOL
ON (1): Input ON (1)
OFF (0): Input OFF (0)
Output 8 (01)
BOOL
ON (1): Input ON (1)
OFF (0): Input OFF (0)
Fault Present (FP)
BOOL
ON (1): A fault is present in the instruction.
OFF (0): This instruction is operating normally.
Diagnostic Code
DINT
This output indicates the diagnostic status of the instruction.
This operand is not safety-related.
See Diagnostic Codes.
Fault Code
DINT
This output indicates the type of fault that occurred.
This operand is not safety-related.
See Fault Codes.
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, .O2, .O3, .O4, .O5, .O6, .O7, .O8, 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
Lock Input OFF (0)
The timing diagram illustrates the Lock input OFF (0). At (A), a no inputs condition exists. At (B), a single input, Input x, transitions from OFF (0) to ON (1) within 250 ms and the corresponding output, Output x, turns ON (1). At (C), a no inputs condition is created when the single input, Input x, transitions from ON (1) to OFF (0). At (D), a single input, Input y, then transitions to ON (1) within 250 ms and the corresponding output, Output y, turns ON (1).
EPMS Lock Input OFF
Lock Input ON (1)
The timing diagram illustrates the Lock input ON (1). At (A), a no inputs condition exists. At (B), a single input, Input x, transitions from OFF (0) to ON (1) within 250 ms and the corresponding output, Output x, turns ON (1). At (C), the instruction becomes locked when the Lock input transitions from OFF (0) to ON (1). At (D), an attempt is made to change the mode when the single input, Input x, transitions from ON (1) to OFF (0), creating a no inputs condition. At (E), a single input, Input y, transitions from OFF (0) to ON (1) within 250 ms, generating a diagnostic code indicating that an attempt was made to change the mode while locked. The output, Output x, transitions from ON (1) to OFF (0). At (F), the Lock input transitions from ON (1) to OFF (0) while the single input, Input y, is ON (1), the corresponding output, Output y, is turned ON (1) and the diagnostic code is cleared.
EPMS Lock Input On
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 Safety I/O module connections or the internal logic used to source input status.
  • Reset the fault.
16#3000
12288
A multiple selection input was detected.
  • Check the mode selection inputs.
  • Reset the fault.
16#3001
12289
A no selection input condition existed for more than 250 ms.
  • Check the timing of the mode selection inputs to see if they are within 250 ms.
  • Reset the fault.
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 Safety I/O module connections or the internal logic used to source the input status.
  • Set the I/O status to 1 (if the inputs are not being sourced by the Safety I/O).
16#3000
12288
Input data changed while the Lock input was ON (1).
Only update the inputs when the Lock input is OFF (0).
Provide Feedback
Have questions or feedback about this documentation? Please submit your feedback here.