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
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.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).
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.
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#3000 12288 | A multiple selection input was detected. |
|
16#3001 12289 | A no selection input condition existed for more than 250 ms. |
|
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. |
|
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