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
Function Block Diagram
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:
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
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