Download as pdf or txt
Download as pdf or txt
You are on page 1of 40

Beginner’s Guide to

PLC
Programming
How to Program a PLC (Programmable Logic Controller)

By Neal Babcock

www.plc-training.com

Copyright 2004

1
Table of Contents
PLCs ............................................................................................................................................3
Ladder Logic.................................................................................................................................3
The Dialect of PLCs .....................................................................................................................4
Equivalent Logic ...........................................................................................................................5
The Automated Drill Press............................................................................................................8
Sequence of Operation.................................................................................................................9
Operator Station .........................................................................................................................11
I/O Listing ...................................................................................................................................12
Inputs ......................................................................................................................................12
Outputs ...................................................................................................................................12
Internal Coils...........................................................................................................................13
The Program ..............................................................................................................................13
Machine Safeties ....................................................................................................................13
Pilot Light Test ........................................................................................................................15
Indicate The System Is Operational ........................................................................................16
Machine Operation Mode........................................................................................................17
Run The Spindle Drive Motor..................................................................................................18
Indicate The Spindle Drive Is Running....................................................................................19
Run The Infeed Conveyor.......................................................................................................19
Ensure There Are No Parts In The Machine ...........................................................................20
Ensure All Components Are At Home.....................................................................................20
Begin The Cycle .....................................................................................................................21
Lower The Stop Gate..............................................................................................................22
Run The Main Conveyor .........................................................................................................22
Indicate The Part Is In Place...................................................................................................23
Clamp The Part In Place.........................................................................................................24
Lower The Spindle ..................................................................................................................25
Drilling Operation Is Complete ................................................................................................26
Return The Spindle To Its Home Position...............................................................................27
Machine Cycle Is Complete ....................................................................................................28
Fault Detection And System Diagnostics ................................................................................29
Personnel Safety Guard Door.................................................................................................29
Low Compressed Air Pressure ...............................................................................................30
Motor Starter Overload ...........................................................................................................31
Latch The Motor Overload Detection ......................................................................................32
Indicate A Motor Overload Condition ......................................................................................33
Jammed Part Detection ..........................................................................................................34
Latch The Part Jammed Detection .........................................................................................35
Indicate A Part Jammed Condition .........................................................................................35
Monitor The Drill Time.............................................................................................................36
Summarize The Fault Conditions............................................................................................37
13 Marks Of A Well Written Program: ........................................................................................38
General PLC Tips.......................................................................................................................39

2
PLCs

Nearly all the industrial equipment that you find in a modern manufacturing facility shares one
thing in common - computer control. The most commonly used controller is the PLC, or the
Programmable Logic Controller, using a programming language called Ladder Logic. The
language was developed to make programming easy for people who already understood how
switches, relay contacts and coils work. Its format is similar to the electrical style of drawing
known as the “ladder diagram”.

Originally, there were only a few functions available in this language, but as times have
progressed, many more higher level functions have been introduced. We are going to stick to
the basic, commonly used functions here. Also, this text will not replace the user's manual that
comes with a PLC, but it will give you a big head start if you have never programmed a PLC.

This course is intended to provide an introduction to the programming methods used in PLCs
and give the reader a solid, basic understanding of the language of Ladder Logic.

Ladder Logic

We have summarized the terms and techniques you need to know if you are going to work with
ladder logic. It is not a comprehensive summary, as that would take volumes of text, but if you
are just starting out, the information in this book will be very helpful. Every PLC programmer, no
matter what skill level, must have learned the principles described in this book at one point in
time. There is simply no way around it.

We have included a program for a simple machine that lets you really understand how Ladder
Logic works.

To effectively write a program, or even edit one, the programmer must know how to visualize the
effects of the changes he will make. In other words, you have to be able to look at the logic “on
paper” and imagine how it will work when it is entered into the PLC. This course will teach you
how to do that.

There are many types of PLCs, and differences among PLCs, but what is discussed here should
be common to all types. After you read and understand this, you will have a clear understanding
of the structure of this type of programming. In the real world of industrial automation, the
methods presented in this document may be all that many people will ever need to know.

3
The Dialect of PLCs

Lets' define some terms and symbols:

BIT - an address within the PLC. It can be an input, output or internal coil, among others.

RUNG - A section of the PLC ladder program that terminates in an output function of some type.

HARDWIRED INPUT - a physical connection to the PLC from an input device (switch or sensor,
etc.)

A hardwired input is labeled INPUT in our example.

HARDWIRED OUTPUT - a physical connection from the PLC to an output device (relay or pilot
light, etc.)

A hardwired output is labeled OUTPUT in our example.

INTERNAL COIL
This is a programmable bit used to simulate a relay within the PLC. The internal coil has no
connection to the outside world. It does not connect to an output card. Internal coils are used to
store information. The “contacts” of this “relay” can then be used multiple times in other parts of
the program.

An internal coil is labeled COIL in our example.

--] [-- Normally Open Contact


When used with a hardwired input, this instruction is off until there is a voltage applied to the
input. The bit address then goes high, or on, and the instruction becomes “true.” It works the
same way when it has the same address as an internal coil, except that the coil must be turned
on by logic in the program.

--]/[-- Normally Closed Contact


This is an inverted normally open contact. When used with a hardwired input, this instruction is
"true" until there is a voltage applied to the input. It then goes low, or off, and becomes “false.” It
also can be used with an internal coil, becoming true when the coil is off and becoming false
when the coil is on.

-( )- Output Coil
When used with a hardwired output, this function is off until the logic in the program allows it to
turn on. It then becomes “true”, and will energize the device that is wired to the respective
output. If it is used as an internal coil, it will toggle the instructions associated with it. That is, it
will close a normally open instruction and open a normally closed instruction.

4
+---------+
TIMER |
+-- SEC---+ Timer
This function is used to supply a programmable delay. It requires the use of its "timer finished"
bit, like a time delay relay uses its contact.

+---------+
COUNTER |
+-- 000---+ Counter
The counter function is used to count events. It could be used to keep track of machine cycles,
count parts, etc. It can be programmed with a preset value that triggers another event when the
count is reached.

TRUE - An indication the a bit is “on”. If you press a pushbutton switch that is wired to an input,
then the bit is said to be true. Also, if the logic in a rung turns on the output of the rung, then the
rung is said to be true.

FALSE - Without stating the obvious, this is the opposite of true.

Equivalent Logic

Suppose we want to use a PLC to operate a relay. In its elementary form, PLC logic is very
similar to the hard-wired logic you would find in an electrical ladder diagram.

For example, If you wanted to turn on a light with a momentary pushbutton, you would wire it
like the circuit below. When you press PB1, the pilot light PL1 lights up.

H N
| PILOT |
| LIGHT |
| PB1 PL1 |
|---] [------------------------------------------------------(L)----|
| |
|

5
Now let's do the same thing in a PLC. To duplicate the hardwired circuit on a PLC, you would
wire the switch PB1 to an input and wire the light PL1 to an output. Each PLC manufacturer
gives you the details of wiring their particular modules. The I/O (hardwired inputs and outputs) is
set up like this:

- There is a “PB1” pushbutton switch wired to INPUT1 of the PLC.


- There is a “PL1” pilot light wired to OUTPUT1 of the PLC.

| PB1 PL1
| INPUT1 OUTPUT1
[---] [------------------------------------------------------( OUT )
|

Now let’s examine the sequence of events. When you first turn on the PLC, the PB1 pushbutton
is off, or false. Therefore, the PL1 output is off. Pressing PB1 will make INPUT1 true,
OUTPUT1 will come on and the light will be energized. It will stay on only as long as you hold
the button in. Just like electrical current has to flow through the switch to turn on the light in the
hardwired circuit, the logic has to "flow" through the normally open instruction (which is closed
when you press the switch) of INPUT1 to energize the output that turns on PL1.

The programming terminal display will look something like this as you hold in PB1. The yellow
highlight indicates the bit, or address, is “on” or “true”.

| PB1 PL1
| INPUT1 OUTPUT1
[---] [------------------------------------------------------( OUT )
|

Let's look at how a timer works. Suppose you want to delay running a motor for 2 seconds after
you turn on a switch. You can use the input from the switch to run a timer. Program the timer for
the duration you want and then use the "timer finished" bit to turn on your motor. In this
instance, we have configured an "on delay" timing sequence. Two seconds after INPUT1 is on,
the TIMER1 will turn on its "finished" bit and the motor will run.

Note that there is no "off delay" here. As soon as the start switch is released, the "timer finished"
bit will drop out and the motor will stop. With a little creativity, you can combine timers to provide
any timing function you need.

6
|Start +--Motor -+
|Motor | Start |
|PB1 | Delay |
|INPUT1 TIMER1 |
[---] [---------------------------------------------------+--2SEC------+
|
|
|Motor
|Start Run
|Delay Motor
|TIMER1 OUTPUT1
[---] [-------------------------------------------------------( OUT )

One nice feature of PLCs is that you can document each bit in the program. In the example
above, “INPUT1” is somewhat meaningless on its own. After you add the descriptive text “Start
Motor PB1”, things make more sense.

Most PLCs are programmed via a Windows based terminal. Editing, deleting or adding to the
ladder logic is usually pretty straightforward. You use the arrow keys or the mouse to add
instructions, change addresses or comments, etc. We won’t cover the specifics of keystrokes
here, but will concentrate on understanding the ladder logic.

These terminals will usually have the capability of programming online or offline. If you are
making changes in online mode, be aware that any changes you make and save (or upload) will
alter the program that is being used to run the machine. This requires great care and a full
understanding of what will happen when you make the change.

Scan Time

One critical difference between a PLC program and the equivalent electrical circuit is the issue
of scanning. It works like this:

The PLC looks at the state of the inputs, and stores that information in a temporary buffer. Then,
it ignores what is happening electrically at the inputs. The PLC will use the information in the
temporary buffer to execute the logic in the program. It will solve the logic from top to bottom,
determining the truth of each rung, and turn on or turn off the appropriate addresses in the
temporary buffer. When it reaches the last rung in the program, the PLC will use the data in the
temporary buffer to turn on or turn off the corresponding outputs. The scan cycle is complete,
and the PLC will once again look at the inputs. The amount of time this takes is called scan
time, and is measured in milliseconds.

Stated more simply, the PLC reads the inputs, performs the logic and adjusts the outputs as
needed.

An electrical circuit has events occurring simultaneously – a PLC performs its logic in steps.

7
The Automated Drill Press

Now let’s jump right into a project. The best way to learn a programming language is to look at a
real world example. However, before you can do any programming, you must have a clear
understanding of how the machine works. Let’s say a furniture manufacturer needs to drill a 3/8”
hole in a certain spot on a piece of wood. The entire process needs to be automatic. The
mechanical and electrical engineers bring you an isometric drawing like the one shown here.
Mechanical details have been omitted for clarity, as is often the case in a “concept” drawing.

The main conveyor will transport the part into the machine where the part will meet a
pneumatically actuated stop gate. At that time, another pneumatic cylinder will actuate a clamp
that will push the part back against the conveyor wall. This will hold the part in place during the
drilling process. Photocells will verify that the part is in position, the spindle will lower and
proceed to drill a hole in the part. After the hole has been drilled and the spindle has retracted to
its home position, the clamp will release, the stop gate will raise and the part will exit. The cycle
then repeats itself for each part that comes down the line.

8
Sequence of Operation

Here is a more detailed explanation of the drilling process:

When the machine starts, the stop gate lowers


and the part is moved into position by the main
conveyor.

Optical sensors (photoeyes) determine when


the part is in place.

When the part is positioned correctly, a clamp


extends to hold the part in place.

9
The spindle of the drill press is lowered, and
the hole is drilled in the part.

A sensor in the drill press spindle tells the PLC


when the spindle has reached the end of its
travel.

After the hole is drilled, the spindle retracts,


the clamp retracts, the stop gate is lifted and
the part is carried out of the machine by the
main conveyor.

10
Operator Station

An operator station for the machine might look like this. Though the device name, such as PB1,
would not show up on the actual station, it is a good idea to show them on your drawing.

11
I/O Listing

It is important to define the I/O (inputs/outputs) you begin to program. Do not skip this crucial
step.

Listed below is the I/O arrangement for the Automated Drill Press program.

Inputs
Address Device Name Device Type Description
INPUT1 PB1 pushbutton switch Reset System
INPUT2 PB2 pushbutton switch System Start
INPUT3 PB3 pushbutton switch System Stop
INPUT4 SS4 selector switch System in Auto Mode
INPUT5 CR1 relay Emergency Stop Cleared
INPUT6 PB6 pushbutton switch Start Press
INPUT7 PB7 pushbutton switch Stop Press
INPUT10 PB10 pushbutton switch Raise Spindle
INPUT11 PB11 pushbutton switch Lower Spindle
INPUT12 PB12 pushbutton switch Hold Part In Place
INPUT20 MS1AUX aux contacts on motor starter Infeed Conveyor Running
INPUT21 MS2AUX aux contacts on motor starter Press Conveyor Running
INPUT22 MS3AUX aux contacts on motor starter Main Conveyor Running
INPUT24 MS5AUX aux contacts on motor starter Drill Press Running
INPUT26 LS26 limit switch Guard in Place
INPUT27 PS27 air pressure switch Air Pressure Abnormal
INPUT33 PSC33 photo-electric switch Part at Home
INPUT34 PSC31 photo-electric switch Part Cleared
INPUT35 PRS35 proximity switch Spindle Raised
INPUT36 PRS36 proximity switch Spindle Lowered

Outputs
Address Device Name Device Type Description
OUTPUT1 MS1 motor starter Run Infeed Conveyor
OUTPUT2 MS2 motor starter Run Main Conveyor
OUTPUT5 MS5 motor starter Run Drill Press
OUTPUT6 DRV1 variable speed drive Raise Spindle
OUTPUT7 DRV1 variable speed drive Lower Spindle
OUTPUT11 SOL11 solenoid Hold Part in Place
OUTPUT12 SOL12 solenoid Lower Drilling Stop Gate
OUTPUT20 PL20 pilot light System Running
OUTPUT21 PL21 pilot light Drill Press Running
OUTPUT22 PL22 pilot light Part in Place
OUTPUT23 PL23 pilot light Part Jammed
OUTPUT24 PL24 pilot light Motor Overload Detected
OUTPUT25 PL25 pilot light Guard Open
OUTPUT26 PL26 pilot light Low Air Pressure

12
Internal Coils
Address Description
COIL1 System Running
COIL2 Pilot Light Test
COIL4 System in Auto Mode
COIL5 System in Manual Mode
COIL20 No Part In Machine
COIL21 Machine at Home
COIL22 Machine in Cycle
COIL23 Drilling Operation Complete
COIL24 End of Machine Cycle
COIL34 Part Jam Detected
COIL35 Excessive Drill Time Detected
COIL40 Motor Overload Detected
COIL50 System Fault

The Program

Now that you understand what has to be done, and how it is to be accomplished by the
mechanical equipment, you can begin writing the program.

The text in the fixed font is what you would see if you were looking at the monitor of the
computer or a printout. A series of asterisks (*****) indicates a "rung comment." This is
descriptive text added to the program, and is seen on the programming monitor, but has no
affect on the logic. For purposes of this manual, I have placed additional explanations between
rungs.

Use a title to name the program and include any general information.

| ____________________________________________________________
| | |
| | AUTOMATIC DRILL PRESS MACHINE CONTROL |
| | PRODUCTION LINE #3 |
| | REVISION 2 |
| |__________________________________________________________|

Machine Safeties

It is best to start a program by evaluating any safety switches and setting a master bit. This type
of bit is what we call an internal coil. It has no hardwired connection to the outside world. In this
case, a latch is used to set an internal “System Running” bit. The “latch” is accomplished by
putting a normally open contact around the Start System pushbutton input.

13
If the emergency stop is clear, and the machine guard is in place, and there is no system fault
the operator may press the start button to set the latch. If the stop button is pushed or a
previous conditions ceases to exist, the “System Running” latch will drop out.

Most of the time, the order of the bits in a rung doesn't matter. We could have rearranged any of
the bits in this rung, though we would still have to put the latch around the Start pushbutton. The
PLC wouldn't care and the output coil would still respond the same. However, to make the rung
easier to read, I try to place bits from left to right in order of importance. If the E-Stop is not
cleared, then nothing else should matter anyway. Having the safety guard in place is more
important than a system fault. Now, if those requirements have been met, we can press the start
button. And we don't care about the stop button until we have pushed the start button.

Note the instruction used for the input of PB3, the Stop System bit. It may seem backwards at
first, since a hard-wired circuit would use the normally closed contacts of the switch. In fact, the
switch is wired in the failsafe position, using the normally closed contacts as the input to the
PLC.

The E-Stop and the guard limit switch are called "safety interlocks." NEVER rely on a PLC to
stop a machine if a contact of a safety interlock is open. ALWAYS use an interlock in a
hardwired, fail-safe circuit. Use additional contacts from the switches and wire them to inputs of
the PLC so that it knows the machine is to be stopped, or has stopped.

It is very important to label the bits properly. Arrange the verbs and nouns correctly. If you do,
the rung will read like a sentence. You can look at this rung and say “If the Emergency Stop is
Cleared and the Guard is in Place and there is no System Fault and the Start System button is
pressed and the Stop System button is not pressed the System Running coil will turn on and
latch itself”.

| ***** ENSURE ALL MACHINE SAFETIES HAVE BEEN MADE TO ALLOW


| THE SYSTEM TO BE ENABLED.
|
|EmergStop Guard in Start Stop
|Cleared Place System System System System
|CR1 LS26 Fault PB2 PB3 Running
| INPUT5 INPUT26 COIL50 INPUT2 INPUT3 COIL1
1 [---] [--------] [--------]/[----+----] [----+----] [----------( OUT )
| | |
| | |
| | System |
| | Running |
| | COIL1 |
| +----] [----+

14
The main reason for setting a master “System Running” bit is to simplify the program. For
example, we don’t want the spindle motor to run if the e-stop has been pressed, or if the guard
is not in place, or if there is a system fault. Rather than putting all of these bits in the rung that
controls the spindle motor, we can summarize all of these bits and make the “System Running”
bit. We can then place just that bit in the rung that controls the spindle motor and know that we
have met all the criteria to allow the spindle motor to run.

Pilot Light Test

The next two rungs provide a pilot light test. The idea is to turn on all the pilots lights for a
couple of seconds so you can verify that all the lights work. This feature is very handy when you
are troubleshooting a machine.

When the Emergency stop is first cleared, Timer 0 is started.

| ***** PERFORM A PILOT LIGHT TEST UPON CLEARING THE


| EMERGENCY STOP.
|
|
| +--Pilot-+
|EmergStop | Light |
|Cleared | Test |
|CR1 | Time |
|INPUT5 TIMER0 |
2 [---] [----------------------------------------------------+--2SEC--+
|
|
|

During the period when the Emergency Stop is clear but the timer is not finished, the Pilot Light
Test bit is on. The effect is that all the pilot lights will turn on for two seconds after the E-Stop is
cleared. This bit is then used throughout the program.

| ***** TEST THE PILOT LIGHTS


|
|EmergStop Pilot Pilot
|Cleared Light Light
|CR1 Test Time Test
|INPUT5 TIMER0 COIL2
3 [---] [-------]/[----------------------------------------------( OUT )
|

15
Indicate The System Is Operational

Let the operator know that the safeties have been made and the machine is ready to run.

|
| ***** INDICATE THE SYSTEM IS OPERATIONAL.
|
|
| System
|System Running
|Running PL20
| COIL1 OUTPUT20
4 [---] [---+----------------------------------------------------( OUT )
| |
|Pilot |
|Light |
|Test |
|COIL2 |
[---] [---+
|
|

16
Machine Operation Mode

Here we look at the Manual/Auto Mode selector switch to set the machine mode. You want to
enable certain machine functions in Auto Mode, and disable some in Manual Mode, and vice
versa. Notice how the System Running bit is used. If we lose that bit , such as when the
emergency stop is pressed or the machine guard is opened, neither mode is valid.

The state of the bits below indicate that the System Mode Selector switch is in “Auto”.

|
| ***** DETERMINE THE MODE OF MACHINE OPERATION.
|
|
| System In System in
|System Auto Mode Manual
|Running SS4 Mode
| COIL1 INPUT4 COIL5
5 [---] [-------]/[--------------------------------------------( OUT )
|
|
|
| System In
|System Auto Mode System in
|Running SS4 Auto Mode
| COIL1 INPUT4 COIL4
6 [---] [-------] [--------------------------------------------( OUT )
|

17
Run The Spindle Drive Motor

This rung turns on the drill press spindle motor. It will come on immediately in automatic mode,
but it can also be controlled by the “Press Start” and “Press Stop” switches in manual mode.

| ***** RUN THE SPINDLE DRIVE MOTOR OF THE DRILL PRESS. A


| MANUAL MODE IS PROVIDED TO ALLOW EASE OF SET-UP.
|
|
| Run Drill
|System in Press
|Auto Mode MS5
| COIL4 OUTPUT5
7 [---] [-----------------------+----------------------------( OUT )
| |
|SystemIn Start Stop |
|Manual Press Press |
|Mode PB6 PB7 |
| COIL5 INPUT6 INPUT7 |
[---] [---+---] [---+---]/[---+
| | |
| |Run Drill|
| |Press |
| |MS5 |
| | OUTPUT5 |
| +---] [---+
|

18
Indicate The Spindle Drive Is Running

Turn on the pilot light to let the operator know the motor is running.

|
| ***** INDICATE THE SPINDLE DRIVE IS RUNNING.
|
|
|Run Drill DrillPres
|Press Running
|MS5 PL21
| OUTPUT5 OUTPUT21
8 [---] [---+------------------------------------------------( OUT )
| |
|Pilot |
|Light |
|Test |
| COIL2 |
[---] [---+

Run The Infeed Conveyor

Run the conveyor all the time when the machine is in auto mode. Note the use of the “System In
Auto Mode” bit to ensure all machine safety conditions have been met.

|
| ***** RUN THE INFEED CONVEYOR IF THE MACHINE IS
| IN AUTOMATIC MODE.
|
|
| RunInfeed
|System in Conveyor
|Auto Mode MS1
| COIL4 OUTPUT1
9 [---] [---------------------------------------------------( OUT )
|
|

19
Ensure There Are No Parts In The Machine
You want to make sure there are no parts in the machine before you start a cycle. These
photoeyes are positioned so that if they "see" a part, they will turn on the input. A part will break
the beam, the input will turn on and you know you have a part present.

In this rung, we want to make sure there is no part in the machine. The rung will only be true if
all the photoeyes indicate there is not a part present.

|
| ***** ENSURE THERE ARE NO PARTS IN THE MACHINE TO START THE
| DRILLING CYCLE.
|
|
|Placed in Placed in Part at Part No Part
|X-Axis Y-Axis Home Cleared In
|PSC31 PSC32 PSC33 PSC34 Machine
| INPUT31 INPUT32 INPUT33 INPUT34 COIL20
10 [---]/[---------]/[---------]/[---------]/[-------------------( OUT )
|
|

Ensure All Components Are At Home


Make sure all the moving parts of the machine are at their initial or "home" position before you
allow any automatic motion to begin. This is standard on most machines.

| ***** ENSURE ALL COMPONENTS ARE AT HOME.


|
|
|Hold Part Drilling Spindle
|In Place Stop Gate Raised Machine
|SOL11 SOL12 PRS35 At Home
|OUTPUT11 OUTPUT12 INPUT35 COIL21
11 [---]/[---------]/[---------] [--------------------------( OUT )
|

20
Begin The Cycle

Here is the rung that starts the machine's automatic cycle. When the operator goes to Auto
Mode, and there are no parts in the machine, and the machine components are at home, the
cycle will begin. You might ask, "If there is a part in the press, wouldn't the machine start
running as soon as the operator took the part out?" The answer has to be no. You don't want
this machine to start running when someone clears a part. In our case, to remove a part the
operator would have to open the machine guard door in order to physically remove the part, and
that would kick the machine out of automatic mode. He would have to close the guard and start
the machine again.

|
| ***** BEGIN THE CYCLE WHEN THE PART HAS CLEARED THE MACHINE
| AND ALL COMPONENTS ARE AT HOME. BIT COIL22 WILL STAY ON
| DURING THE ENTIRE DRILLING CYCLE AND DROP OUT WHEN AN END OF CYCLE
| SIGNAL IS GENERATED.
|
|
| No Part End of
|System in In Machine Machine Machine
|Auto Mode Machine At Home Cycle In Cycle
| COIL4 COIL20 COIL21 COIL24 COIL22
12 [---] [---+---] [-------] [---+---]/[--------------------------( OUT )
| | |
| | |
| |Machine |
| |In Cycle |
| | COIL22 |
| +---] [-------------+
|

21
Lower The Stop Gate

Lower the stop gate when the machine is in cycle.

| ***** LOWER THE STOP GATE TO STOP THE PART UNDER THE
| SPINDLE.
|
|
| Drilling
|Machine Stop Gate
|In Cycle SOL12
| COIL22 OUTPUT12
13 [---] [-----------------------------------------------( OUT )
|

Run The Main Conveyor

Bring the part into position by running the conveyor in the press. Note that the PLC will stop the
conveyor after the part has been clamped in place (Rung 16), but until that happens, the
conveyor will run.

|
| ***** RUN THE MAIN CONVEYOR UNLESS A PART IS BEING CLAMPED.
|
|
| Hold Part Run Main
|System in In Place Conveyor
|Auto Mode SOL11 MS2
| COIL4 OUTPUT11 OUTPUT2
14 [---] [---------]/[-----------------------------------------( OUT )
|

22
Indicate The Part Is In Place

The photoeye PSC33 is physically placed so that the part will block the beam of the photoeye
when the part is in place. This rung will let the operator know that.

| ***** INDICATE THE PART IS IN PLACE AND READY TO BE DRILLED.


|
|
|Part at Part In
|Home Place
|PSC33 PL22
|INPUT33 OUTPUT22
15 [---] [---------------------------+-------------------------( OUT )
| |
|Pilot |
|Light |
|Test |
| COIL2 |
[---] [---------------------------+
|

23
Clamp The Part In Place

When the part is in position, the PLC will clamp it in place. Since the “Hold Part In Place” bit is
used in Rung 14, the press conveyor will stop running.

Also, a manual method of holding the part has been provided for machine set-up.

|
| ***** CLAMP THE PART IN PLACE AFTER IT HAS REACHED THE
| PROPER POSITION.
|
|
| Part at Hold Part
|Machine Home In Place
|In Cycle PSC33 SOL11
| COIL22 INPUT33 OUTPUT11
16 [---] [---------] [-----------------------------+-------( OUT )
| |
|System in Hold Part |
|Manual In Place |
|Mode PB12 |
| COIL4 INPUT12 |
[---] [---------] [-----------------------------+
|
|

24
Lower The Spindle

The spindle of the press is a variable speed motor. This particular drive has two inputs; one to
make the motor go forward (move the spindle down) and one to make the motor go in reverse
(move the spindle up). So, when the part is held in place, the PLC will command the drive to
lower the spindle until it reaches the lower limit (Spindle Lowered) proximity switch.

The Raise Spindle bit (OUTPUT6) from Rung 19 is used to keep the drive from trying to lower
the spindle until after the drilling has been completed. We don’t want to tell the spindle to lower
and raise at the same time.

|
| ***** AFTER THE PART HAS BEEN CLAMPED IN PLACE, LOWER THE
| SPINDLE. THE FEED RATE IS DETERMINED BY A VARIABLE SPEED
| DRIVE.
|
|
| Hold Part Spindle Raise Lower
|Machine In Place Lowered Spindle Spindle
|In Cycle SOL11 PRS36 DRV1RAISE DRV1LOWER
| COIL22 OUTPUT11 INPUT36 OUTPUT6 OUTPUT7
17 [---] [---+---] [---+---]/[-------]/[---+----------------( OUT )
| |
|System in Lower |
|Manual Spindle |
|Mode PB11 |
| COIL5 INPUT11 |
[---] [-------] [-----------------------+
|

25
Drilling Operation Is Complete

When the spindle has reached the end of travel and activates the Spindle Lowered prox switch,
an internal bit is set to indicate that the drilling operation is complete.

|
| ***** THE DRILLING OPERATION IS COMPLETE IF THE SPINDLE
| REACHES THE LOWER LIMIT IN AUTOMATIC MODE.
|
|
| Spindle Drilling
|Machine Lowered Operation
|In Cycle PRS36 Complete
| COIL22 INPUT36 COIL23
18 [---] [---+---] [---+--------------------------------------( OUT )
| | |
| |Drilling |
| |Operation|
| |Complete |
| | COIL23 |
| +---] [---+
|

26
Return The Spindle To Its Home Position

After the drilling operation is complete, a latch is set to raise the spindle. Since the spindle is
below the SPINDLE RAISED proximity switch, the PLC will tell the spindle to raise. As soon as
the spindle reaches the upper end of travel and trips the SPINDLE RAISED proximity switch, the
latch drops out.

A manual method of raising the spindle is also provided.

|
| ***** AFTER THE SPINDLE HAS REACHED THE LOWER LIMIT OF ITS
| TRAVEL, RETURN THE SPINDLE TO ITS HOME POSITION.
|
|
| Drilling Spindle Raise
|Machine Operation Raised Spindle
|In Cycle PRS36 PRS35 DRV1RAISE
| COIL22 INPUT36 INPUT35 OUTPUT6
19 [---] [---+---] [---+-----]/[---+----------------------------( OUT )
| | | |
| |Raise | |
| |Spindle | |
| |DRV1RAISE| |
| | OUTPUT6 | |
| +---] [---+ |
| |
|System in Raise |
|Manual Spindle |
|Mode PB10 |
| COIL5 INPUT10 |
[---] [----------] [------------+
|
|

27
Machine Cycle Is Complete

This rung terminates the machine cycle. The drilling is done and the spindle is back in its home
position, so the End of Machine Cycle bit is latched. When this bit goes high, it causes the
Machine In Cycle latch to drop out (Rung 12). This in turns raises the stop gate (Rung 13),
releases the part (Rung 15) and turns on the press conveyor (Rung 14). The End of Machine
Cycle latch drops out when the Machine In Cycle bit goes low. When the part clears all the
photoeyes, the stop gate lowers and the machine waits for another part.

| ***** THE MACHINE CYCLE IS COMPLETE IF THE DRILLING


| OPERATION IS COMPLETE AND THE SPINDLE IS RAISED.
|
|
| Drilling Spindle End of
|Machine Operation Raised Machine
|In Cycle Complete PRS35 Cycle
| COIL22 COIL23 INPUT35 COIL24
20 [---] [---+---] [---------] [---+---------------------------( OUT )
| | |
| |End of |
| |Machine |
| |Cycle |
| | COIL24 |
| +---] [---------------+

28
Fault Detection And System Diagnostics

This section of the program evaluates problems and monitors the machine. The machine would
still run without these rungs, but they make life a lot easier for the operators and could prevent
the machine from damaging itself.

| ____________________________________________________________
| | |
| | FAULT DETECTION AND SYSTEM DIAGNOSTICS |
| |__________________________________________________________|

Personnel Safety Guard Door

Let the operator know if the guard door is open. You might think this should be obvious, but it is
nice to have a red light come on when a safety gate is open. It makes people take a little more
care when working around the machine.

| **** INDICATE IF THE PERSONNEL SAFETY GUARD DOOR IS OPEN.


|
|Guard in Guard
|Place Open
|LS26 PL25
| INPUT26 OUTPUT25
21 [---]/[---+------------------------------------------------( OUT )
| |
|Pilot |
|Light |
|Test |
| COIL2 |
[---] [---+

29
Low Compressed Air Pressure

It is a good idea to keep track of the compressed air pressure. The machine will not operate
properly if there is insufficient air pressure. You can put it on a fairly long time delay, because
you don't care about momentary drops in pressure, like a second or two. But when it does drop
beyond the lower limit for enough time, you want the machine to stop.

You also want it to latch so you know why the machine stopped running. The air pressure could
come back up before the operator sees the pilot light, and he would be left scratching his head.
The latch is reset by the Reset System pushbutton.

| ***** DETECT ABNORMALLY LOW COMPRESSED AIR PRESSURE.


|
|
|AirPressr +--Air -+
|Normal | Pressure |
|PS27 | Abnormal |
| INPUT27 TIMER27 |
22 [---]/[-------------+---------------------------------+---4SEC-----+
| |
|Air Reset |
|Pressure System |
|Abnormal PB1 |
| TIMER27 INPUT1 |
[---] [-------]/[---+
|
|
| ***** INDICATE ABNORMALLY LOW AIR PRESSURE.
|
|Air Low Air
|Pressure Pressure
|Abnormal PL26
| TIMER27 OUTPUT26
23 [---] [---+-------------------------------------------------( OUT )
| |
|Pilot |
|Light |
|Test |
| COIL2 |
[---] [---+

30
Motor Starter Overload

If the auxiliary contacts in the motor starters don't pull in after one second, there is some kind of
problem. You have to look at each one individually.

| ***** THE STARTER IS ASSUMED TO BE OVERLOADED IF THE AUX.


| CONTACT DOES NOT PULL IN AFTER 1 SECOND.
|
|RunInfeed InfedConv +--Infeed -+
|Conveyor Running | Conveyor |
|MS1 MS1AUX | Overload |
| OUTPUT1 INPUT20 TIMER1 |
24 [---] [-------]/[-------------------------------------+--1SEC------+
|
|
|
|Run Main Main Conv +--Main -+
|Conveyor Running | Conveyor |
|MS2 MS3AUX | Overload |
| OUTPUT2 INPUT22 TIMER3 |
26 [---] [-------]/[-------------------------------------+---1SEC-----+
|
|
|Run Drill DrillPres +--Spindle -+
|Press Running | Drive |
|MS5 MS5AUX | Overload |
|OUTPUT7 INPUT24 TIMER5 |
27 [---] [-------]/[-------------------------------------+---1SEC-----+
|
|

31
Latch The Motor Overload Detection

If any of the overload timers finish, latch the alarm bit. When the operator presses the “Reset
System” pushbutton, the alarm will be cleared.

| ***** LATCH THE MOTOR OVERLOAD DETECTION.


|
|Infeed Reset Motor
|Conveyor System Overload
|Overload PB1 Detected
| TIMER1 INPUT1 COIL40
28 [---] [---+---]/[-------------------------------------------( OUT )
| |
|Main |
|Conveyor |
|Overload |
| TIMER2 |
[---] [---]
| |
|Spindle |
|Drive |
|Overload |
| TIMER5 |
[---] [---]
| |
|Motor |
|Overload |
|Detected |
| COIL40 |
[---] [---+

32
Indicate A Motor Overload Condition

Display the alarm.

| ***** INDICATE A MOTOR OVERLOAD CONDITION.


|
|
|Motor Motor
|Overload Overload
|Detected PL24
| COIL40 OUTPUT24
29 [---] [---+-------------------------------------------------( OUT )
| |
|Pilot |
|Light |
|Test |
| COIL2 |
[---] [---+

33
Jammed Part Detection

Rung 30 contains what is known as a "watchdog timer." A watchdog timer keeps track of the
amount of time it takes for a machine to complete a given process. If a part is sitting in the
machine for more than 30 seconds while the machine is in cycle, then the part is probably
jammed. This is also a good indication of a photoeye that has become dirty and blocked. It will
also tell you if a conveyor belt stopped turning.

| ***** A PART IS JAMMED IF A PHOTOCELL DETECTS A PART FOR


| MORE THAN 30 SECONDS DURING THE MACHINE CYCLE.
|
| Placed in +--Part -+
|Machine X-Axis | Jam |
|In Cycle PSC31 | Time |
| COIL22 INPUT31 TIMER34 |
30 [---] [---+---] [---+---------------------------------+--30SEC-----+
| | |
| |Placed in|
| |Y-Axis |
| |PSC32 |
| | INPUT32 |
| [---] [---]
| | |
| |Part at |
| |Home |
| |PSC33 |
| | INPUT33 |
| [---] [---]
| | |
| |Part |
| |Cleared |
| |PSC34 |
| | INPUT34 |
| +---] [---+

34
Latch The Part Jammed Detection

| ***** LATCH THE PART JAMMED DETECTION


|
|Part
|Jam Part Jam
|Time Detected
| TIMER34 COIL34
31 [---] [-------------+---------------------------------------( OUT )
| |
| Reset |
|Part Jam System |
|Detected PB1 |
| COIL34 INPUT1 |
[---] [-------]/[---+
|
|

Indicate A Part Jammed Condition

| ***** INDICATE A PART JAMMED CONDITION.


|
| Part
|Part Jam Jammed
|Detected PL23
| COIL34 OUTPUT23
32 [---] [---+------------------------------------------------( OUT )
| |
|Pilot |
|Light |
|Test |
| COIL2 |
[---] [---+

35
Monitor The Drill Time

Keep an eye on the drill time. If this timer finishes, there could be a bad prox switch, a broken
drill bit or a spindle drive malfunction.

| ***** MONITOR THE DRILL TIME.


|
| Spindle +--Drill -+
|Machine Raised | Watchdog |
|In Cycle PRS35 | Timer |
| COIL22 INPUT35 TIMER35 |
33 [---] [-------]/[-------------------------------------+---8SEC-----+
|
| ***** LATCH THE EXCESSIVE DRILL TIME DETECTION.
|
|Drill Excessive
|Watchdog DrillTime
|Timer Detected
| TIMER35 COIL35
34 [---] [-------------+--------------------------------------( OUT )
| |
|Excessive Reset |
|DrillTime System |
|Detected PB1 |
| COIL35 INPUT1 |
[---] [-------]/[---+

36
Summarize The Fault Conditions

This rung puts all the faults together to supply one bit to shut off the machine if any of these
problems are detected. The “System Fault” (COIL50) is used, as you recall, in Rung 1 to stop
the machine if there is any problem.

|
| ***** SUMMARIZE THE FAULT CONDITIONS AND STOP ALL MACHINE
| MOTION IF ANY ONE OF THESE FAULTS OCCUR.
|
|
|Guard in
|Place System
|LS26 Fault
| INPUT26 COIL50
35 [---]/[---+-----------------------------------------------( OUT )
| |
|Air |
|Pressure |
|Abnormal |
| TIMER27 |
[---] [---]
| |
|Motor |
|Overload |
|Detected |
| COIL40 |
[---] [---]
| |
| |
|Part Jam |
|Detected |
| COIL34 |
[---] [---]
| |
|Excessive|
|DrillTime|
|Detected |
| COIL35 |
[---] [---+

37
13 Marks Of A Well Written Program:

A well written program will:

- meet the specified production requirements of time a quality control.

- always tells the operator why the PLC stopped the machine.

- be as simple as possible.

- use a minimum of ladder logic.

- not violate any specs (NEC, JIC, client, etc.)

- make the machine easy to start and operate.

- recover well from a fault.

- tolerate physical variations and mechanical adjustment (changing belt speed,


deviations in air pressure, cylinder speeds, etc.)

- detect bad machine components, if at all possible.

- be easy to understand and troubleshoot.

- stand the test of time.

- not let the machine break itself.

- make the machine sound good and run smoothly.

38
General PLC Tips

Here are a few general PLC tips:

The only true test of program integrity and reliability is time. If someone tells you about problem
with a program that has been running for few days, consider the program. If the program has
been running for a few months, consider other potential problems, such as a hardware failure of
a peripheral device.

Get as many different PLC programming manuals as you can find and hold onto them. Many
companies use PLCs that are older models, and you never know when you might run across
one.

Avoid putting two devices in series on a PLC input, or paralleling two devices on an output. Most
always, you will end up regretting it.

Assign wire numbers and device numbers going from your I/O to match the respective input or
output.

Don't use timers in the process loop of a program. Write event-triggered programs, based on
actual changes in temperature, position, speed and so on.

Backup your program files frequently, but don't erase your old files until you are sure you don't
need them. Always know how to retrace your footsteps.

39
PLC is a trademark of the Allen-Bradley Company.

Disclaimer

THE AUTHOR INTENDS THIS DOCUMENT TO BE ADVISORY ONLY. ITS USE IN INDUSTRY OR TRADE IS ENTIRELY
VOLUNTARY.

THIS DOCUMENT IS PROVIDED BY THE VENDOR``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE VENDOR OR ITS CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS DOCUMENT, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

40

You might also like