Process Interlocks (PINTLK)

This information applies to the CompactLogix 5380P and ControlLogix 5580P controllers.
The Process Interlocks (PINTLK) instruction collects, or sums up, the interlock conditions that stop or de-energize a running or energized piece of equipment. This instruction can also help prevent equipment from starting or being energized. Interlocks are always evaluated to de-energize equipment. For permissive conditions that must be made to start the equipment, but are ignored once the equipment is running, use the Process Permissive (PPERM) instruction.
The PINTLK instruction provides:
  • Interlock input OK check: Each input is compared with its configured OK state. If the input is not in its OK state, it raises an interlock condition unless bypassed.
  • Interlock Condition Latching: If the input is configured as latched, the interlock condition is latched until reset, unless the latch defeat input is true. If the input is not configured as latched, the interlock condition clears when the input returns to it’s OK state.
  • Interlock Bypass: If an input is configured as able to be bypassed (Cfg_Bypassable.x = 1), the interlock is bypassed (MSet_Bypass.x = 1), and the downstream equipment instruction has bypass enabled (Sts_Bypass = 1), the input will not raise an interlock condition, even if it is not in its OK state. If the input is configured as not able to be bypassed (Cfg_Bypassable.x = 0) or if interlock is not bypassed (MSet_Bypass.x = 0) or the connected device does not have bypass enabled (Sts_Bypass =0), the input will raise an interlock condition. Typically, Engineering configures which interlocks are allowed to be bypassed. Maintenance then picks the ones to bypass from the interlocks that are allowed by Engineering.
  • First Out: If no interlock conditions are raised (OK to run), the first interlock condition to be raised is marked as the first out. If multiple interlock conditions are raised in the same scan, they are all marked as first out.
  • Latch Defeat: A latch defeat function reduces the number of operator actions that are required to start equipment. The latch defeat input is set when the equipment is not running. When the latch defeat input is true, the latched configuration of inputs is ignored, and all interlock conditions clear when their corresponding inputs are in their OK states. This action saves the operator from having to reset before starting the equipment. When the equipment starts, the latch defeat input is turned off. Then, if an interlock condition configured as latched shuts down the equipment, it remains latched until reset.
  • Interlock Types: There are eight configurable interlock Types. Each Type has a description; by default, the description is a three-letter abbreviation (for HMI use) followed by a colon and the full description. Each Type affects bypassability, latching, and availability. Types 0, 2, 4 and 6 affect availability; Types 0, 1, 2 and 3 force latching and require reset; Types 0, 1, 4 and 5 force not allowing bypass.
  • Input Available Field: An input Available field allows for cascading of interlock banks and working with equipment that is ready to run but not available at certain points in a sequence (for example, a pump with an automated block valve that is currently closed).
    IMPORTANT: When using interlock banks, the PINTLK instructions must be executed so that Bank 0 is executed first. Executing the instruction for Bank 0 clears the data for all banks, then processes Bank 0. Executing for other banks does NOT clear bank data. The PINTLK instructions can be executed in any order, as long as Bank 0 is executed first, and all banks are executed before the device instruction.
  • Summary Status: Summarizes its 32 interlock input conditions into two primary status bits:
    • Sts_IntlkOK. Indicates that all interlock conditions are clear regardless of bypass state (ready to run regardless of bypassed state).
    • Sts_NBIntlkOK. Indicates that all interlock conditions that cannot be bypassed are clear and all interlock conditions that are able to be bypassed are either clear or bypassed (ready to run if interlocks are bypassed).
    • Sts_Available. Indicates to equipment that it is still available to be energized although an interlock is currently active.
      IMPORTANT: The downstream equipment instructions determine whether interlocks are bypassed. The PINTLK instruction simply provides the two summary status bits. These two bits are to be wired or mapped to the equipment control logic.
Available Languages
Ladder Diagram
PINTLK_avail_LD
Function Block Diagram
PINTLK_avail_FBD
Structured Text
PINTLK (PINTLK tag, Ref_IntlkBankSts);
Operands
IMPORTANT:
Unexpected operation may occur if:
  • Output tag operands are overwritten.
  • Members of a structure operand are overwritten.
  • Except when specified, structure operands are shared by multiple instructions.
There are data conversion rules for mixing numeric data types within an instruction. See Data conversions.
Configuration Operands
Operand
Type
Format
Description
PlantPAx
P_INTERLOCK
tag
Data structure required for proper operation of instruction.
Ref_IntlkBankSts
P_INTERLOCK_BANK_STATUS
tag
Reference interlock bank status.
P_INTERLOCK Structure
Public members are standard, visible tag members that are programmatically accessible. Private, hidden members are used in HMI faceplates and are not programmatically accessible. Private members are listed in separate tables after public members.
Public Input Members
Data Type
Description
EnableIn
BOOL
Enable Input - System Defined Parameter
Default is true.
Inp_InitializeReq
BOOL
1 = Request to initialize the instruction. The instruction is normally initialized in instruction first run. Use this request when reinitialization is needed. The instruction clears this operand automatically.
Default is true.
Inp_Intlk00
BOOL
Interlock condition 00, de-energize if not in configured OK state.
Default is false.
Inp_Intlk01
BOOL
Interlock condition 01, de-energize if not in configured OK state.
Default is false.
Inp_Intlk02
BOOL
Interlock condition 02, de-energize if not in configured OK state.
Default is false.
Inp_Intlk03
BOOL
Interlock condition 03, de-energize if not in configured OK state.
Default is false.
Inp_Intlk04
BOOL
Interlock condition 04, de-energize if not in configured OK state.
Default is false.
Inp_Intlk05
BOOL
Interlock condition 05, de-energize if not in configured OK state.
Default is false.
Inp_Intlk06
BOOL
Interlock condition 06, de-energize if not in configured OK state.
Default is false.
Inp_Intlk07
BOOL
Interlock condition 07, de-energize if not in configured OK state.
Default is false.
Inp_Intlk08
BOOL
Interlock condition 08, de-energize if not in configured OK state.
Default is false.
Inp_Intlk09
BOOL
Interlock condition 09, de-energize if not in configured OK state.
Default is false.
Inp_Intlk10
BOOL
Interlock condition 10, de-energize if not in configured OK state.
Default is false.
Inp_Intlk11
BOOL
Interlock condition 11, de-energize if not in configured OK state.
Default is false.
Inp_Intlk12
BOOL
Interlock condition 12, de-energize if not in configured OK state.
Default is false.
Inp_Intlk13
BOOL
Interlock condition 13, de-energize if not in configured OK state.
Default is false.
Inp_Intlk14
BOOL
Interlock condition 14, de-energize if not in configured OK state.
Default is false.
Inp_Intlk15
BOOL
Interlock condition 15, de-energize if not in configured OK state.
Default is false.
Inp_Intlk16
BOOL
Interlock condition 16 , de-energize if not in configured OK state.
Default is false.
Inp_Intlk17
BOOL
Interlock condition 17 , de-energize if not in configured OK state.
Default is false.
Inp_Intlk18
BOOL
Interlock condition 18 , de-energize if not in configured OK state.
Default is false.
Inp_Intlk19
BOOL
Interlock condition 19 , de-energize if not in configured OK state.
Default is false.
Inp_Intlk20
BOOL
Interlock condition 20 , de-energize if not in configured OK state.
Default is false.
Inp_Intlk21
BOOL
Interlock condition 21 , de-energize if not in configured OK state.
Default is false.
Inp_Intlk22
BOOL
Interlock condition 22 , de-energize if not in configured OK state.
Default is false.
Inp_Intlk23
BOOL
Interlock condition 23 , de-energize if not in configured OK state.
Default is false.
Inp_Intlk24
BOOL
Interlock condition 24 , de-energize if not in configured OK state.
Default is false.
Inp_Intlk25
BOOL
Interlock condition 25 , de-energize if not in configured OK state.
Default is false.
Inp_Intlk26
BOOL
Interlock condition 26 , de-energize if not in configured OK state.
Default is false.
Inp_Intlk27
BOOL
Interlock condition 27 , de-energize if not in configured OK state.
Default is false.
Inp_Intlk28
BOOL
Interlock condition 28 , de-energize if not in configured OK state.
Default is false.
Inp_Intlk29
BOOL
Interlock condition 29 , de-energize if not in configured OK state.
Default is false.
Inp_Intlk30
BOOL
Interlock condition 30 , de-energize if not in configured OK state.
Default is false.
Inp_Intlk31
BOOL
Interlock condition 31 , de-energize if not in configured OK state.
Default is false.
Inp_IOFault
DINT
Input register for IO fault logic.
Default is 2#0000_0000_0000_0000_0000_0000_0000_0000.
Inp_Available
BOOL
External availability input.
Default is true.
Inp_BypActive
BOOL
1 = Interlock Bypassing is currently active.
Default is false.
Inp_LatchDefeat
BOOL
Set when device is de-energized. 1 =Do not latch inputs, even if configured for latching, and do not capture a new first-out.
Default is false.
Inp_Reset
BOOL
1 = Reset latched interlocks and first-out.
Default is false.
Cfg_OKState
DINT
Bits indicate which state (0 or 1) of each input is OK to run.
Default is 2#0000_0000_0000_0000_0000_0000_0000_0000.
Cfg_Latched
DINT
Set bits indicate which conditions are latched (sealed in).
Default is 2#0000_0000_0000_0000_0000_0000_0000_0000.
Cfg_StopOnly
DINT
Set bits indicate which conditions cause a stop - do not trip.
Default is 2#0000_0000_0000_0000_0000_0000_0000_0000.
Cfg_Bypassable
DINT
Set bits indicate which conditions can be bypassed.
Default is 2#0000_0000_0000_0000_0000_0000_0000_0000.
Cfg_HasNav
DINT
Set bits indicate which navigation buttons are enabled.
Default is 2#0000_0000_0000_0000_0000_0000_0000_0000.
Cfg_eType00
SINT
Enumerated type of Interlock 0.
Default is 6.
Cfg_eType01
SINT
Enumerated type of Interlock 1.
Default is 6.
Cfg_eType02
SINT
Enumerated type of Interlock 2.
Default is 6.
Cfg_eType03
SINT
Enumerated type of Interlock 3.
Default is 6.
Cfg_eType04
SINT
Enumerated type of Interlock 4.
Default is 6.
Cfg_eType05
SINT
Enumerated type of Interlock 5.
Default is 6.
Cfg_eType06
SINT
Enumerated type of Interlock 6.
Default is 6.
Cfg_eType07
SINT
Enumerated type of Interlock 7.
Default is 6.
Cfg_eType08
SINT
Enumerated type of Interlock 8.
Default is 6.
Cfg_eType09
SINT
Enumerated type of Interlock 9.
Default is 6.
Cfg_eType10
SINT
Enumerated type of Interlock 10.
Default is 6.
Cfg_eType11
SINT
Enumerated type of Interlock 11.
Default is 6.
Cfg_eType12
SINT
Enumerated type of Interlock 12.
Default is 6.
Cfg_eType13
SINT
Enumerated type of Interlock 13.
Default is 6.
Cfg_eType14
SINT
Enumerated type of Interlock 14.
Default is 6.
Cfg_eType15
SINT
Enumerated type of Interlock 15.
Default is 6.
Cfg_eType16
SINT
Enumerated type of Interlock 16.
Default is 6.
Cfg_eType17
SINT
Enumerated type of Interlock 17.
Default is 6.
Cfg_eType18
SINT
Enumerated type of Interlock 18.
Default is 6.
Cfg_eType19
SINT
Enumerated type of Interlock 19.
Default is 6.
Cfg_eType20
SINT
Enumerated type of Interlock 20.
Default is 6.
Cfg_eType21
SINT
Enumerated type of Interlock 21.
Default is 6.
Cfg_eType22
SINT
Enumerated type of Interlock 22.
Default is 6.
Cfg_eType23
SINT
Enumerated type of Interlock 23.
Default is 6.
Cfg_eType24
SINT
Enumerated type of Interlock 24.
Default is 6.
Cfg_eType25
SINT
Enumerated type of Interlock 25.
Default is 6.
Cfg_eType26
SINT
Enumerated type of Interlock 26.
Default is 6.
Cfg_eType27
SINT
Enumerated type of Interlock 27.
Default is 6.
Cfg_eType28
SINT
Enumerated type of Interlock 28.
Default is 6.
Cfg_eType29
SINT
Enumerated type of Interlock 29.
Default is 6.
Cfg_eType30
SINT
Enumerated type of Interlock 30.
Default is 6.
Cfg_eType31
SINT
Enumerated type of Interlock 31.
Default is 6.
Cfg_HasType
SINT
Enable selection for types from HMI.
Default is 2#1111_1111.
Cfg_TypeDesc00
BOOL
Interlock type 00 description.
Default is false.
Cfg_TypeDesc01
BOOL
Interlock type 01 description.
Default is false.
Cfg_TypeDesc02
BOOL
Interlock type 02 description.
Default is false.
Cfg_TypeDesc03
BOOL
Interlock type 03 description.
Default is false.
Cfg_TypeDesc04
BOOL
Interlock type 04 description.
Default is false.
Cfg_TypeDesc05
BOOL
Interlock type 05 description.
Default is false.
Cfg_TypeDesc06
BOOL
Interlock type 06 description.
Default is false.
Cfg_TypeDesc07
BOOL
Interlock type 07description.
Default is false.
Cfg_BankID
INT
Bank ID for use with multiple banks (0 to 7).
Default is 0.
Cfg_HasMoreObj
BOOL
1 = Tells HMI an object with more information is available.
Default is false.
Cfg_CnfrmReqd
SINT
Operator command confirmation required. Represents the type of command confirmation required. 0 = None, 1 = Command confirmation required, 2 = Performer e-signature required, 3 = Performer and approver e-signature required.
Default is 0.
PCmd_Reset
BOOL
Program command to reset latched interlocks.
Default is false.
Public Output Members
Data Type
Description
EnableOut
BOOL
Enable Output - System Defined Parameter
Out_Reset
BOOL
1 = Reset external devices.
Val_FirstUpBankID
INT
Bank ID number of first up interlock.
Val_FirstUpIndex
INT
Index number of first up interlock.
Sts_Initialized
BOOL
1 = Instruction is initialized. Use Inp_InitializeReq to reinitialize.
Sts_IntlkOK
BOOL
1 = OK to run, 0 = Stop.
Sts_NBIntlkOK
BOOL
1 = All non-bypassable interlocks OK to run.
Sts_Available
BOOL
1 = Available.
Sts_IntlkTripInh
BOOL
1 = Interlock trip inhibit - stops equipment but does not trip.
Sts_BypActive
BOOL
1 = Interlock bypassing is active (ignore bypassable interlocks).
Sts_FirstUpDetect
BOOL
1 = First up interlock detected.
Sts_BankIDError
BOOL
1 = Error in bank ID's, each bank ID must be unique.
Sts_LatchDefeat
BOOL
1 = Do not latch inputs even if configured for latching.
Sts_RdyReset
BOOL
1 = A latched interlock (returned to OK) is ready to be reset.
Sts_LatchMask
DINT
Latch mask- always latch based on type.
Sts_BypassMask
DINT
Bypass mask- bypass based on type.
Sts_Intlk
DINT
Individual interlock status (1 = stop, 0 = OK).
Sts_FirstOut
DINT
Interlock first out status (bit 1 is first not-OK condition).
Private Input Members
Data Type
Description
HMI_Tab
SINT
Tab to display (FTView ME).
Default is 0.
MSet_Bypass
DINT
Individual condition maintenance bypass toggles.
Default is 2#0000_0000_0000_0000_0000_0000_0000_0000.
OCmd_Reset
BOOL
Operator command to reset latched interlocks.
Default is false.
Private Output Members
Data Type
Description
ORdy_Reset
BOOL
1 = Ready for OCmd_Reset (enables HMI button).
Val_BankMap
DINT
Map of interlock banks detected.
Val_BankSts
DINT
Map of interlock banks statuses.
P_INTERLOCK_BANK_STATUS Structure
Members
Data Type
Description
Val_FirstUpIndex
INT
Index number of first up interlock.
Val_FirstUpBankID
INT
Bank ID number of first up interlock.
Val_BankMap
DINT
Map of interlock banks detected.
Val_BankSts
DINT
Map of interlock banks statuses.
Inp_Reset
BOOL
1 = Reset trip and first up.
Inp_BypActive
BOOL
1 = Interlock bypassing is currently active.
Inp_LatchDefeat
BOOL
1 = Do not latch.
Inp_Available
BOOL
1 = Available from preceding equipment.
Sts_BankIDError
BOOL
1 = Duplicate or invalid bank ID.
Sts_IntlkOK
BOOL
Interlocks bypassable interlock status (1 = all interlocks OK to energize).
Sts_NBIntlkOK
BOOL
Interlocks non-bypassable interlock status (1=all non-bypassable interlocks OK to energize).
Sts_IntlkTripInh
BOOL
1 = Interlock trip inhibit – stops equipment but does not trip.
Sts_Available
BOOL
Availability status.(1 = Available).
Sts_FirstUpDetect
BOOL
1=First up interlock detected.
Sts_RdyReset
BOOL
1=A latched interlock (returned to OK) is ready to be reset.
Sts_PrevIntlkOK
BOOL
Previous interlocks bypassable interlock status (1 = all interlocks OK to energize).
Sts_PrevNBIntlkOK
BOOL
Previous interlocks non-bypassable interlock status (1 = all non-bypassable interlocks OK to energize).
Operation
This diagram illustrates the functionality of the PINTLK instruction:
PINTLK_operation
Configuration of Strings for HMI
Configure strings for HMI faceplates (FT View) and for the Logix Designer configuration dialog box. The strings are set to extended properties of tag items. Configure the strings in Logix Designer only.
  • Description
  • Label for graphic symbol
  • Display Library for HMI Faceplate call-up
  • Instruction name
  • Area name
  • URL link
  • Input Conditional Text
  • Navigation Path
  • Interlock Type
  • More Information
Monitor the PINTLK Instruction
Use the operator faceplate from the PlantPAx library of Process objects for monitoring.
Affects Math Status Flags
No.
Major/Minor Faults
None specific to this instruction. See Index Through Arrays for array-indexing faults.
Execution
Ladder Diagram
Condition/State
Action Taken
Prescan
Rung-condition-out is cleared to false.
Instruction first run
The instruction executes normally.
Rung-condition-in is false
Rung-condition-out is cleared to false.
If this instruction is off-scan, then set the summary interlock OK status bits to false.
Only set individual interlock bypasses for conditions that are configured for bypassing. All the MSets for inputs that are NOT bypassable will be cleared.
Rung-condition-in is true
Set rung-condition-out to rung-condition-in.
The instruction executes.
Postscan
Rung-condition-out is cleared to false.
Function Block Diagram
Condition/State
Action Taken
Prescan
EnableOut is cleared to false.
Instruction first run
The instruction executes normally.
Instruction first scan
See Instruction first run in the Function Block Diagram table.
EnableIn is false
EnableOut is cleared to false.
If this instruction is off-scan, then set the summary interlock OK status bits to false.
Only set individual interlock bypasses for conditions that are configured for bypassing. All the MSets for inputs that are NOT bypassable will be cleared.
EnableIn is true
EnableOut is set to true.
The instruction executes.
Postscan
EnableIn and EnableOut bits are cleared to false.
Interlock Banks
When using interlock banks, the PINTLK instructions must be executed so that Bank 0 is executed first. Executing the instruction for Bank 0 clears the data for all banks, then processes Bank 0. Executing for other banks does NOT clear bank data. The PINTLK instructions can be executed in any order, as long as Bank 0 is executed first, and all banks are executed before the device instruction.
Structured Text
In Structured Text, EnableIn is always true during normal scan. The instruction executes when it is in the control path activated by the logic.
Condition/State
Action Taken
Prescan
See Prescan in the Function Block Diagram table.
Instruction first run
See Instruction first run in the Function Block Diagram table.
EnableIn is true
See EnableIn is true in the Function Block Diagram table.
Postscan
See Postscan in the Function Block Diagram table.
Example
This example uses the PINTLK instruction to concentrate the interlock conditions that allow the functioning of the refiner plates that are used for grinding wood as part of the pulp manufacturing process.
Ladder Diagram
PINTLK_example_LD
Function Block Diagram
Function Block Diagram
Structured Text
P182_Motor_INTLK.Inp_BypActive := P182_Motor.Sts_BypActive;
P182_Motor_INTLK.Inp_Intlk00 := Zone_1_Light_Curtain;
P182_Motor_INTLK.Inp_Intlk01 := Coolant_Pressure_OK;
PINTLK(P182_Motor_INTLK, 0);
P182_Motor.Inp_IntlkOK := P182_Motor_INTLK.Sts_IntlkOK;
P182_Motor.Inp_NBIntlkOK := P182_Motor_INTLK.Sts_NBIntlkOK;
PMTR(P182_Motor,P182_CtrlSet,P182_CtrlCmd,P182_CtrlSts, 0, 0);
Provide Feedback
Have questions or feedback about this documentation? Please submit your feedback here.