Safety Mat (SMAT)
Supported controllers and software
Supported controllers | Supported controller firmware versions |
|---|---|
Compact GuardLogix 5380 Safety | 37.00 and later |
GuardLogix 5580 Safety | 37.00 and later |
ControlLogix 5590 | 38.00 and later |
The purpose of the Safety Mat instruction is to indicate, through O1 (Output 1), if the
safety mat is occupied.
Safety mats typically consist of two conductive plates held apart by non-conductive
separators. Each conductive plate, Channel A and Channel B of the safety mat, are alternately
sourced by the safety-mat instruction’s SRCA (Source A) and SRCB (Source B) outputs. Output A
and Output B of the safety mat are routed to the safety mat instruction’s Channel A and
Channel B 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
WARNING:
If you change instruction parameters while in Run mode, you must accept the pending edits
and cycle the controller mode from Program to Run for the changes to take effect.
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.
IMPORTANT:
Do not use the same tag name for more than one instruction in the same program. Do not
write to any instruction output tag under any circumstances.
IMPORTANT:
Make sure that your 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.
The following table provides the parameters that are used to configure the instruction.
Operand | Data Type | Format | Description |
|---|---|---|---|
SMAT | SAFETY_MAT | tag | This parameter is a backing tag that maintains important execution information for each usage of this instruction. For examples of incorrect backing tag usages, see Backing tag usages that can cause unexpected operation. |
Restart Type | DINT | name | This input configures Output 1 for either manual or automatic Restart. Manual (0) - A transition of the reset input from OFF (0) to ON (1), while
all of the Output 1 enabling conditions are met, is required to energize Output
1Automatic (1) - Output 1 is energized 50 ms after all of the enabling
conditions are met.
ATTENTION:
Automatic Restart may only be used in
application situations where you can prove that no unsafe conditions can occur as a
result of its use, or the reset function is being performed elsewhere in the safety
circuit (for example, output function).
|
Short Circuit Detect Delay Time | DINT | immediate | This parameter is the time (5...250 ms) that the instruction uses to determine the
difference between a short circuit and the safety mat being occupied. When using this instruction with 1791DS I/O modules, the short-circuit
detection-delay time has to be greater than the associated module’s input-error
latch time. The module’s input-error latch time holds the test output fault
generated by the two channels being shorted together for the configured amount of
time. Output 1 goes to the safe state as soon as possible (task period and input
filter dependent), only the declaration of a fault is delayed by this time. It has
no effect on the safety reaction time. |
The following table explains instruction inputs. The inputs are typically used to select
different modes of application operation by enabling other instructions.
Operand | Data Type | Format | Description |
|---|---|---|---|
Channel A 1 | BOOL | tag | This input is sourced by the Channel A output of the safety mat. |
Channel B 1 | BOOL | tag | This input is sourced by the Channel B output of the safety mat. |
Input Status | BOOL | immediate tag | If instruction inputs are from a safety I/O module, this value 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. |
Reset 2 | BOOL | tag | If the Restart Type = Manual, this input is used to energize Output 1. This input also clears the instruction faults provided the fault condition is not
present. OFF (0) -> ON (1): The Fault Present (FP) and Fault Code outputs are reset. |
1
If this input is from a Guard I/O
input module, make sure that
the input is configured as single, not Equivalent or Complementary.2
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 provides the outputs to the instruction. In many applications, the output
tags may represent the state of actual field devices. They may also be internal tags used to
represent machine state information for use with other instructions.
Operand | Data Type | Description |
|---|---|---|
Output 1 (O1) | BOOL | This output is energized when all input conditions are satisfied. The output becomes de-energized when the following occurs:
|
Source A (SRCA) | BOOL | This output is used to source the Channel A input of the safety mat. |
Source B (SRCB) | BOOL | This output is used to source the Channel B input of the safety mat. |
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 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. |
Fault Present (FP) | BOOL | ON (1): A fault is present in the instruction. OFF (0): This instruction is operating normally. |
IMPORTANT:
Do not write to any instruction output tag under any circumstance.
Circuit Verification Test
The Safety Mat instruction monitors the Channel A and Channel B Safety Mat Inputs. Before
Output 1 can be energized, a verification of the safety mat circuit must be completed,
verifying that the Source A and Source B output to Channel A and Channel B input connections
are good. This process is referred to as the circuit verification test (CVT) and is identified
by the shaded areas in the timing diagrams. Output 1 can be energized when the CVT test is
successful and the proper Restart-Type conditions are met.
Normal Operation
Manual Restart Operation
The timing diagram illustrates the instruction being configured for manual restart. At (A),
Output 1 is energized when the reset input transitions from OFF (0) to ON (1) after the
CVT.

Automatic Restart Operation
The timing diagram illustrates the instruction being configured for automatic restart. At
(A), Output 1 is energized 50 ms after the CVT test.

Safety Mat Occupied Operation
The timing diagram illustrates Output 1 being de-energized when the safety mat becomes
occupied. At (A), the safety mat is considered occupied and Output 1 is de-energized when the
Channel A and Channel B inputs are both ON (1). At (B), the Channel A and Channel B inputs
follow the Source A output for as long as the safety mat is occupied.

Safety Mat Unoccupied Operation
The timing diagram illustrates the safety mat being unoccupied and the Safety Mat instruction
is initializing. At (A), the Channel A and Channel B inputs begin tracking the Source A and
Source B outputs. Output 1 can then be energized based on the configured Restart Type and
after the CVT.

Fault Detection Operation
The instruction detects the source output to channel input open circuits and short circuits.
A short circuit between Channel A and Channel B appears to the instruction as though the mat
is occupied, where Output 1 is de-energized.
The timing diagram illustrates the safety mat being occupied and the connection between
Source A and Channel A is open. The restart type is configured for Manual. At (A), the circuit
is opened and the Channel A input stops following the Source A output. Output 1 is
de-energized and the short-circuit detect delay timer is started. At (B), the timer expires
and a fault is generated. At (C), the opened circuit is corrected and the fault is reset when
an OFF (0) to ON (1) transition is detected on the Reset input. At (D), the Safety Mat
instruction completes the CVT test, and an OFF (0) to ON (1) transition is detected on the
Reset input, and Output 1 is energized.

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 |
|---|---|---|
00 | No fault. | None. |
16#20 32 | The Input Status input transitioned from ON (1) to OFF (0) while the instruction
was executing. |
|
16#8000 32768 | Channel A is shorted to power. |
|
16#8001 32769 | Channel B is shorted to power. | |
16#8002 32770 | Channels A and B are shorted to power. | |
16#8003 32771 | Channel A is shorted to power and Channel B is either shorted to ground or
open. | |
16#8004 32772 | Channel A is either shorted to ground or is open. | |
16#8005 32773 | Channel A is either shorted to ground or is open and Channel B is shorted to
power. | |
16#8006 32774 | Channel B is either shorted to ground or open. |
Diagnostic Codes and Corrective Actions
The diagnostic codes are listed in hexadecimal format followed by decimal format.
Diagnostic Code | Description | Corrective Action |
|---|---|---|
00 | No fault. | None |
16#05 5 | The Reset input is held ON (1) | Set the Reset input to OFF (0). |
16#20 32 | The Input Status input was OFF (0) when the instruction started. | Check the I/O module connections. |
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, .SRCA, .SRCB and .FP are cleared to false. |
Rung-condition-in is true | The instruction executes as described in the Normal Operation section. |
Postscan | Same as Rung-condition-in is false. |
Example

Provide Feedback