P1-M622-16DR Mini PLC – Contact and Coil Instructions!

Contact and coil instructions are in every PLC program. The Productivity Suite Software comprises more than 82 instructions, organized into 13 categories for the PLC. Contacts and Coils are two of those categories. Contact instructions include NO, NC, NO Edge, NC Edge, and Compare. Coil instructions include Out, Set, Reset, OR Out, Flasher, Debounce, Timed, Toggle, Program End, and No Operation.
P1-M622-16DR Mini PLC – Contact and Coil Instructions!

We will be looking at these instructions in the Productivity Mini PLC P1-M622-16DR. We will also look at how to organize your frequently used instructions using the Favorites feature. Throughout this post, we will tie each instruction back to our start-stop motor circuit so you can see exactly how they apply to real programs. Let’s get started.

Previously in this Productivity Mini PLC P1-M622-16DR series, we have discussed:
P1-M622-16DR Mini PLC System HardwareVideo
Installing the SoftwareVideo
Establishing CommunicationVideo
First ProgramVideo
Monitoring and Testing the ProgramVideo
Wiring and TestingVideo
Online Editing and Fail-Safe WiringVideo
Using the Productivity Suite SimulatorVideo
Numbering Systems and Tag Database – Video

Favorites – Contact and Coil Instructions

The Favorites section is a heading found under the Instructions window of the Productivity Suite software. You can open the Instructions window by clicking on it in the Application Tools panel, or use the main menu: Tools | Instructions List.

Right-clicking any instruction in the list opens a menu that lets you ‘Add to Favorites’. Click that option, and the instruction will now appear under your Favorites heading at the top of the list.
P1-M622-16DR Mini PLC – Contact and Coil Instructions!

To remove an instruction from your Favorites, right-click on it under the Favorites heading and select ‘Remove from Favorites’.

Favorites are a great way to separate the instructions you use most often from the full list. As you work through this series and build more complex programs, you will find yourself reaching for the same handful of instructions repeatedly. Adding them to Favorites saves time and keeps your workflow organized.

Contacts – Contact and Coil Instructions

Contacts are the input conditions of a rung. They represent the state of Boolean tags — physical inputs, outputs, or internal bits — and control whether power flows through the rung to the output coil. The PLC evaluates logic from left to right, top to bottom, on each scan.

For a deeper understanding of how the PLC scan works, see this post: https://accautomation.ca/understanding-the-plc-program-scan/

NO Contact (NO) – The Normally Open contact enables power flow in a rung when the contact is energized. It disables power flow when the contact is de-energized.

This is the most common contact in PLC programming. In our start-stop motor circuit, the Start input (DI-0.1.1.1) uses an NO contact. When the physical Start pushbutton is pressed, the contact energizes, and power flows through the rung. When the button is released, the contact opens — but the sealing contact (DO-0.1.1.1 in the parallel branch) keeps the rung energized.
Normally Open NO

NC Contact (NC) – The Normally Closed contact enables power flow in a rung when the contact is de-energized. It disables power flow when the contact is energized. This is where most people get confused. Just think of a normally closed contact as the opposite logic.

In our start-stop motor circuit, the Stop input (DI-0.1.1.2) uses an NO contact in the ladder. As we covered in the Online Editing and Fail-Safe Wiring post, the physical Stop button is wired Normally Closed to the input — meaning the input is energized (ON) in its normal state. A NO contact in the ladder therefore passes power continuously as long as the Stop button is not pressed. When the Stop button is pressed, the physical NC contact opens, the input drops to OFF, and the NO ladder contact opens, breaking the rung. This is the correct fail-safe approach — a broken wire or failed button de-energizes the input and stops the motor automatically.
Normally Closed Wired contact

NO Edge Contact (NOE) – The Normally Open Edge contact acts as a one-shot input on either the Rising Edge or Falling Edge of a signal. It allows power flow for exactly one scan when the contact transitions from de-energized to energized (Rising Edge) or energized to de-energized (Falling Edge).
Normally Open Edge - One shot

This is sometimes referred to as a one-shot in PLC programming. It is extremely useful when you need an action to happen only once per button press — for example, incrementing a counter each time a button is pressed rather than once per scan while it is held. See this post for more details on one-shot logic: https://accautomation.ca/how-to-make-a-one-shot-in-the-plc/

NC Edge Contact (NCE) – The Normally Closed Edge contact also acts as a one-shot, but triggers on the transition of a Normally Closed contact. It allows power flow for one scan when the contact transitions from energized to de-energized (Rising Edge) or de-energized to energized (Falling Edge).
Normally closed edge - one shot

Compare Contact (CMP) – This input contact compares two numerical values. Based on the selected operand (equal to, not equal to, greater than, less than, greater than or equal to, or less than or equal to), it either enables or disables power flow in the rung.

A practical example: if you have an analog temperature sensor reading into the P1-M622-16DR via an expansion module, you could use a Compare contact to turn on a cooling fan output when the temperature tag exceeds a setpoint. The Compare contact makes numeric decisions directly in your ladder logic without requiring a separate math instruction.

Coils – Contact and Coil Instructions

Coils are the output elements of a rung. When the rung conditions (contacts) evaluate to true, the coil executes its function. The type of coil determines exactly what that function is.

Out Coil (OUT) – Provides an output that directly responds to the current state of the rung. When the rung is true, the output is ON. When the rung is false, the output is OFF.
P1-M622-16DR Mini PLC – Contact and Coil Instructions!

This is the coil we have been using throughout this series for the Motor output (DO-0.1.1.1) in our start-stop circuit. The Out coil also has a One-Shot option, which turns the output ON for just one scan during the transition from off to on.
P1-M622-16DR Mini PLC – Contact and Coil Instructions!

Set Coil (SET) – Sets the output into a latched ON condition when the rung is enabled. Once set, the output remains ON even if the rung condition goes false.
Set Instruction - Latch

Reset Coil (RST) – Resets (unlatches) the output of a corresponding Set coil. The output turns OFF when the Reset rung is enabled.
Reset Instruction - Unlatch

The Set and Reset instructions work together and are an alternative way to build a start-stop circuit. Rather than using a sealing contact with an Out coil as we did in our first program, you can use a Set coil on the Start rung and a Reset coil on the Stop rung. Both approaches produce the same result — the Set/Reset method can sometimes make the logic easier to read in programs with many interlocks.

See our First Program post for the sealing contact approach: https://accautomation.ca/p1-m622-16dr-mini-plc-first-program-start-stop-motor-circuit/
https://accautomation.ca/how-to-make-a-start-stop-jog-circuit-in-a-plc/

OR Out (OR) – Allows an Out coil with the same tag to be used in multiple rungs. When any rung with that tag is true, the output turns ON.
OR out timing chart - Do not use

Note: While the OR Out instruction is available, having the same output tag controlled from multiple rungs can make troubleshooting difficult. From my experience in the field, this should be avoided in most cases. Keep your outputs in a single rung where possible — it makes maintenance and troubleshooting much faster.

Flasher (FLS) – Cycles an output bit ON and OFF at a programmed rate. You set the cycle time in milliseconds. When the rung condition is true, the output will be ON for half the cycle time and OFF for the other half.
Flasher Timing Chart

For example, setting the cycle time to 1000 milliseconds results in an output that flashes 0.5 seconds ON and 0.5 seconds OFF. A practical use of the P1-M622-16DR would be to flash an indicator light (wired to one of the 8 relay outputs) to signal an alarm or a mode change — without needing a timer instruction to manage timing manually.

Debounce Coil (DBN) – Eliminates output coil chatter caused by rapid on/off transitions at the rung condition. The rung condition must remain continuously ON (or OFF) for the programmed debounce time before the output activates (or deactivates).
Debounce Input - reduce the noise

Chatter occurs when logic allows a rapid oscillation — for example, if a Compare contact is evaluating a value that is bouncing just above and below the comparison threshold. In our example, the rung condition must remain stable for 1000 milliseconds (1 second) before the output changes state. This adds a deliberate delay that filters out noise without needing a separate timer.

Timed Coil (TMC) – Holds the state of the output ON for a predetermined time after the rung becomes true. Even if the rung condition goes false before the time expires, the output will remain ON until the timed duration completes. An Output Maintained option is also available, which keeps the output ON after the timed period as long as the rung condition remains true.
Timed Coil Timing Chart

A practical example: pressing a momentary pushbutton could trigger the Timed coil to hold a solenoid valve open for exactly 5 seconds, regardless of how briefly the button was pressed.

Toggle Coil (TGC) – Changes the state of the output each time the rung is enabled. If the output is currently ON, it turns OFF. If it is currently OFF, it turns ON. This is sometimes called a Flip-Flop circuit.
Toggle Timing Chart - Flip Flop

In our example, when the input transitions from off to on, the output toggles. This is useful for applications where a single pushbutton needs to act as both an on and off control — common in simple lighting or fan controls. See this post for the logic behind the flip-flop circuit: https://accautomation.ca/creating-a-flip-flop-circuit-in-the-plc/

No Operation Coil (NOP) – Indicates that the rung will have no operation. It is used as a placeholder in ladder logic — for example, when you are reserving a rung for future expansion or temporarily disabling a rung during development without deleting it.

Program End Coil (END) – Marks the end of a task. The Productivity Suite software automatically places an END coil at the end of your program. The PLC will execute all rungs up to the END coil on each scan, then restart the scan from the top.

Applying What We’ve Learned to Our Start-Stop Circuit

Looking back at the start-stop motor circuit we have built throughout this series, you can now identify every instruction by name:

  • DI-0.1.1.1 (Start) – NO Contact. Passes power when the Start button is pressed.
  • DI-0.1.1.2 (Stop) – NC Contact. Passes power at all times; opens when the Stop button signal is energized.
  • DO-0.1.1.1 (Motor) sealing branch – NO Contact. Holds the rung energized after the Start button is released.
  • DO-0.1.1.1 (Motor) – Out Coil. Turns the relay output ON when the rung is true.

P1-M622-16DR Mini PLC – Contact and Coil Instructions!
That single rung uses three of the contact and coil instructions covered in this post. As we build more complex programs in the coming posts — adding timers, counters, and math — you will see all of these instructions combined in increasingly practical ways.

Watch the video below to see the contact and coil instructions used in the Productivity Mini PLC P1-M622-16DR.

Productivity Mini PLC P1-M622-16DR from AutomationDirect

Overview Link (Additional Information on the Unit) Configuration (Configure and purchase a system – BOM) User Manual and Inserts (Installation and Setup Guides) Productivity Suite Programming Software (Free Download Link)

This software contains all of the instruction sets and help files for the Productivity Series.

Next time, we will look at timer instructions in the Productivity Mini PLC P1-M622-16DR.

Watch on YouTube: P1-M622-16DR Mini PLC – Contact and Coil Instructions!

If you have any questions or need further information, please contact me. Thank you, Garry


Related Posts:

Many PLC manufacturers offer a range of hardware and software. All programmable logic controllers share similar basic features. Click here to see how I would approach learning about basic PLCs.
Once you are familiar with the basics of the PLC, you will learn the specifics of the controller you will be programming. This is the easiest way to learn about PLC programming.

Click here to see how you can program for free with the ACC PLC Simulator, with 3D scenes you can program.

Here are the controllers that we have covered or are covering at ACC Automation:
LS Electric XGB PLC Series
BRX Do-More Series (Do-More Designer Software + Simulator)
Productivity Series  P1000  /  P2000
Click PLC Series
Omron CP1H Series
Horner XL4 PLC Series
Arduino Opta PLC

The EasyPLC Software Suite is a comprehensive package that includes PLC, HMI, and machine simulator software. This allows you to make a digital twin. See below to receive 10% off this software. This PLC learning package contains the following:
Easy PLC – PLC Simulation will allow programming in Ladder, Grafcet, Logic Blocks, or Script.
HMI System – Easily create a visual human-machine interface (HMI)
Machine Simulator – A virtual 3D world with real-time graphics and physical properties. PLC programs can be tested using the EasyPLC or through other interfaces. (Modbus RTU, TCP, etc.)
Machine Simulator Lite – Designed to run on Android Devices.
Machine Simulator VR – Virtual Reality comes to life so you can test, train, or practice your PLC programming.
Purchase your copy of this learning digital twin package for less than $95 USD for a single computer installation or less than $110 USD to allow access on multiple computers.
Receive 10% off the investment by typing in ACC in the comment section when you order.
Learn PLC programming the easy way. Invest in yourself today.

Examples of PLC program development using the five steps.
Click PLC – Easy Transfer Line Programming – Video
Productivity PLC Simulator – Chain Conveyor MSVideo
Five Steps to PLC Program Development – Die Stamping
PLC Programming Example – Process Mixer
PLC Programming Example – Shift Register (Conveyor Reject)
PLC Programming Example – Paint Spraying
PLC Programming Example – Delay Starting of 7 Motors
PLC Programming Example – Pick and Place
PLC Programming Example – Sorting Station (Shift Register)
PLC Programming Example – Palletizer

If you’re like most of my readers, you’re committed to learning about technology. The numbering systems used in PLCs are not difficult to understand. We will walk through the numbering systems used in PLCs. This includes Bits, Decimals, Hexadecimal, ASCII, and Floating Points.

To get this free article, subscribe to my free email newsletter.


Use the information to educate others on how numbering systems work. Sign up now.

The ‘Robust Data Logging for Free’ eBook is also available as a free download. The link is included when you subscribe to ACC Automation.