D027B Omron
D027B Omron
Engineering
Department
1
01/09
DK
2
05/10
DK
3
06/10
DK
-2-
Table of contents
Table of contents .......................................................................................................................... 3
Introduction to PLCs...................................................................................................................... 5
Individual PLC sections ................................................................................................................. 7
Peripheral devices....................................................................................................................... 12
PLC Operation ............................................................................................................................ 13
Basic PLC instructions ................................................................................................................ 19
Getting Started ............................................................................................................................ 29
Latching Instructions ................................................................................................................... 40
Timers ......................................................................................................................................... 43
Counters ..................................................................................................................................... 49
Exercises and Assessment items ................................................................................................ 56
Assessment Item 1 Door Simulation ................................................................................. 62
Assessment Item 2 Level application ................................................................................ 64
Assessment Item 3 - Timer .................................................................................................. 65
Personal Safety and Safe Work Practices ................................................................................... 67
PLC Installation ........................................................................................................................... 70
Program Storage Methods .......................................................................................................... 72
PLC Hardware ............................................................................................................................ 79
Peripheral Devices ...................................................................................................................... 85
Basic diagnostics ........................................................................................................................ 96
Derived Timers.......................................................................................................................... 103
Derived Timers.......................................................................................................................... 103
Derived timer Exercises ............................................................................................................ 111
Assessment item 5 ............................................................................................................. 113
Reversible Counters.................................................................................................................. 114
One Shot (OSR)........................................................................................................................ 115
Comparison instructions ............................................................................................................ 119
Process control ......................................................................................................................... 122
Assessment Item 6 Traffic light sequence ........................................................................ 125
Program Control ........................................................................................................................ 126
Assessment Item 5 - Program Flow ................................................................................... 131
Shift Registers........................................................................................................................... 132
Assessment Item 8 Shift Register ................................................................................... 141
-3-
-4-
Introduction to PLCs
The PLC
A PLC ( Programmable Logic Controller) is a device that was invented to replace the necessary
sequential relay circuits for machine control.
The PLC works by looking at its inputs and depending upon their state, turning on/off its outputs.
The user enters a program, usually via software, that gives the desired results.
PLCs are used in many "real world" applications. If there is industry present, chances are good
that there is a PLC present. If you are involved in machining, packaging, material handling,
automated assembly or countless other industries you are probably already using them. If you are
not, you are wasting money and time. Almost any application that needs some type of electrical
control has a need for a PLC.
For example, let's assume that when a switch turns on we want to turn a solenoid on for 5
seconds and then turn it off regardless of how long the switch is on for. We can do this with a
simple external timer. But what if the process included 10 switches and solenoids? We would
need 10 external timers. What if the process also needed to count how many times the switches
individually turned on? We need a lot of external counters.
As you can see the bigger the process the more of a need we have for a PLC. We can simply
program the PLC to count its inputs and turn the solenoids on for the specified time.
History
In the late 1960's PLCs were first introduced. The primary reason for designing such a device was
eliminating the large cost involved in replacing the complicated relay based machine control
systems. Bedford Associates (Bedford, MA) proposed something called a Modular Digital
Controller (MODICON) to a major US car manufacturer. Other companies at the time proposed
computer based schemes, one of which was based upon the PDP-8. The MODICON 084 brought
the world's first PLC into commercial production.
When production requirements changed so did the control system. This becomes very expensive
when the change is frequent. Since relays are mechanical devices they also have a limited
lifetime which required strict adhesion to maintenance schedules. Troubleshooting was also quite
tedious when so many relays are involved. Now picture a machine control panel that included
many, possibly hundreds or thousands, of individual relays. The size could be mind boggling.
How about the complicated initial wiring of so many individual devices!
These relays would be individually wired together in a manner that would yield the desired
outcome.
These "new controllers" also had to be easily programmed by maintenance and plant engineers.
The lifetime had to be long and programming changes easily performed. They also had to survive
the harsh industrial environment. That's a lot to ask! The answers were to use a programming
technique most people were already familiar with and replace mechanical parts with solid-state
ones.
-5-
-6-
CPU module.
"CPU," "controller," or "processor" are all terms used by different manufacturers to denote the
same module that performs basically the same functions. The CPU module can be divided into
two sections: the processor section and the memory section.
The processor section makes the decisions needed by the PLC so that it can operate and
communicate with other modules. It communicates along either a serial or parallel data-bus. An
I/O base interface module or individual on-board interface I/O circuitry provides the signal
conditioning required to communicate with the processor. The processor section also executes
the programmer's RLL software program.
-7-
-8-
-9-
Output module
The output module transmits discrete or analog signals to activate various devices such as
hydraulic actuators, solenoids, motor starters, and displays the status (through the use of LEDs)
of the connected output points. Signal conditioning, termination, and isolation are also part of the
output module's functions. The output module is treated in the same manner as the input module
by the processor.
Some typical output modules available today include the following:
* DC voltage (24, 48,110V) or current (4-20 mA).
* AC voltage (110, 240v) or current (4-20 mA).
* Isolated (24VDC).
* Analog output (12-bit).
* Word output (16-bit/parallel).
* Intelligent output.
* ASCII output.
* Dual communication port.
- 10 -
The diagram below shows a block diagram of a PLC being used to control a simple
security system
- 11 -
Peripheral devices
Peripheral devices to the PLC and its I/O base(s) can be anything from a host computer and
control console to a motor drive unit or field limit switches. Printers and industrial terminals used
for programming are also peripheral devices.
Peripheral devices can generate or receive AC or DC voltages and currents as well as digital
pulse trains or single pulses of quick length (pulse width).
These external operating devices, with their sometimes harsh and/or fast signal characteristics,
must be able to interface with the PLC's sensitive microprocessor. Various types of I/O modules
(using the proper shielded cabling) are available to do this job.
COUNTERS
These again do not physically exist. They are simulated counters and they can be programmed to
count pulses. Typically these counters can count up, down or both up and down. Since they are
simulated they are limited in counting speed. Some manufacturers also include high-speed
counters that are hardware based. We can think of these as physically existing. Most times these
counters can count up, down or up and down.
TIMERS
These also do not physically exist. They come in many varieties and increments. The most
common type is an on-delay type. Others include off-delay and both retentive and non-retentive
types. Increments vary from 1ms through 1s.
DATA STORAGE
Typically these are registers assigned to simply store data. They are usually used as temporary
storage for maths or data manipulation. They can also typically be used to store data when power
is removed from the PLC. Upon power-up they will still have the same contents as before power
was removed. Very convenient and necessary!!
- 12 -
PLC Operation
A PLC works by continually scanning a program. We can think of this scan cycle as consisting of
3 important steps. There are typically more than 3 but we can focus on the important parts and
not worry about the others. Typically the others are checking the system and updating the current
internal counter and timer values.
EXECUTE PROGRAM
Next the PLC executes your program one instruction at a time. Maybe your program said that if
the first input was on then it should turn on the first output. Since it already knows which inputs
are on/off from the previous step it will be able to decide whether the first output should be turned
on based on the state of the first input. It will store the execution results for use later during the
next step.
- 13 -
INPUT
It took a certain amount of time for the brain to notice the input signal from the eyes.
EXECUTION
It took a certain amount of time to process the information received from the eyes. Consider the
program to be: If the eyes see an ugly picture then output appropriate words to the mouth.
OUTPUT
The mouth receives a signal from the brain and eventually spits (no pun intended) out the words
"that's a really ugly picture!"
- 14 -
Interrupt function.
This function interrupts the scan to process a special routine that you have written.
( As soon as the input turns on, regardless of where the scan currently is, the PLC immediately
stops what its doing and executes an interrupt routine.) A routine can be thought of as a mini
program outside of the main program.
After its done executing the interrupt routine, it goes back to the point it left off and continues on
with the normal scan process.
Immediate update
Some PLCs have an instruction that allows you to set points in the program where the inputs are
updated. Instead of just one input update per scan, you can set as many as you need to ensure
that the input pulse is seen by the PLC
- 15 -
Notice in the picture that we have 2 separate circuits. The bottom, (thin) section indicates the DC
part. The top(thick) section indicates the AC part.
Here we are using a DC relay to control an AC circuit. That's the fun of relays! When the switch is
open no current can flow through the coil of the relay. As soon as the switch is closed, however,
current runs through the coil causing a magnetic field to build up. This magnetic field causes the
contacts of the relay to close. Now AC current flows through the bell and we hear it. Lunch time!
- 16 -
First step
We have to translate all of the items we're using into symbols the PLC understands. The PLC
doesn't understand terms like switch, relay, bell, etc. It prefers input, output, coil, contact, etc. It
doesn't care what the actual input or output device actually is. It only cares that it is an input or an
output.
First we replace the battery with a symbol. This symbol is common to all ladder diagrams. We
draw what are called bus bars. These simply look like two vertical bars. One on each side of the
diagram. Think of the left one as being + voltage and the right one as being ground. Further think
of the current (logic) flow as being from left to right.
Next we give the inputs a symbol. In this basic example we have one real world input. (i.e. the
switch) We give the input that the switch will be connected to, to the symbol shown below. This
symbol can also be used as the contact of a relay.
A contact symbol
Next we give the outputs a symbol. In this example we use one output (i.e. the bell). We give the
output that the bell will be physically connected to the symbol shown below. This symbol is used
as the coil of a relay.
A coil symbol
The AC supply is an external supply so we don't put it in our ladder. The PLC only cares about
which output it turns on and not what's physically connected to it.
- 17 -
Second step
We must tell the PLC where everything is located. In other words we have to give all the devices
an address. Where is the switch going to be physically connected to the PLC? How about the
bell? We start with a blank road map in the PLCs town and give each item an address. Could you
find your friends if you didn't know their address? You know they live in the same town but which
house? The PLC town has a lot of houses (inputs and outputs) but we have to figure out who
lives where (what device is connected where). We'll get further into the addressing scheme later.
The PLC manufacturers each do it a different way! For now let's say that our input will be called
"0000". The output will be called "500".
Final step
We have to convert the schematic into a logical sequence of events. This is much easier than it
sounds. The program we're going to write tells the PLC what to do when certain events take
place. In our example we have to tell the PLC what to do when the operator turns on the switch.
Obviously we want the bell to sound but the PLC doesn't know that.
The picture above is the final converted diagram. Notice that we eliminated the real world relay
from needing a symbol. It's actually "inferred" from the diagram.
Now let's examine some of the basic instructions is greater detail to see more about what each
one does.
- 18 -
Example
Ladder
Mnemonics
Assume that a normally open switch is connected to input 0.00 and a lamp is connected to output
10.00.
When the switch is closed the input instruction will be true and the lamp will turn on.
When the switch is open the input instruction will be false and the lamp will turn off.
- 19 -
A LoadNot symbol
This is used when an input signal does not need to be present for the symbol to turn on. When
the physical input is off we can say that the instruction is True. We examine the input for an off
signal. If the input is physically off then the symbol is on. This symbol normally can be used for
internal inputs, external inputs and sometimes, external output contacts. Remember again that
internal relays don't physically exist. They are simulated (software) relays. It is the exact opposite
of the Load instruction.
Note: With most PLCs this instruction (Load or Loadbar) MUST be the first symbol on the left of
the ladder.
Logic State
Load
LoadNot
False
True
True
False
Example
Ladder
Mnemonics
Assume that a normally open switch is connected to input 0.00 and a lamp is connected to output
10.00.
When the switch is closed the input instruction will be false and the lamp will turn off.
When the switch is open the input instruction will be true and the lamp will turn on.
- 20 -
Example
Ladder
Mnemonics
Assume that a normally open switch is connected to input 0.00 and a lamp is connected to output
10.00.
When the switch is closed the input instruction will be true and the lamp will turn on.
When the switch is open the input instruction will be false and the lamp will turn off.
- 21 -
An OUTBar symbol
When there is a path of False instructions preceding this on the ladder rung, it will be true. When
the instruction is rue it is physically On.
This instruction can be used for internal coils and external outputs. It is the exact opposite of the
Out instruction.
Logic State
Load
LoadNot
False
True
True
False
Example
Ladder
Mnemonics
Assume that a normally open switch is connected to input 0.00 and a lamp is connected to output
10.00.
When the switch is closed the input instruction will be true and the lamp will turn off.
When the switch is open the input instruction will be false and the lamp will turn on.
- 22 -
Simple Example
Now let's compare a simple ladder diagram with its real world external physically connected relay
circuit and see the differences.
In the above circuit, the coil will be energized when there is a closed loop between the + and terminals of the battery. We can simulate this same circuit with a ladder diagram.
A ladder diagram consists of individual rungs just like on a real ladder. Each rung must contain
one or more inputs and one or more outputs. The first instruction on a rung must always be an
input instruction and the last instruction on a rung should always be an output (or its equivalent).
Notice in this simple one rung ladder diagram we have recreated the external circuit above with a
ladder diagram. Here we used the Load and Out instructions. Some manufacturers require that
every ladder diagram include an END instruction on the last rung.
- 23 -
Here, we want the fill motor to pump lubricating oil into the tank until the high level sensor turns
on. At that point we want to turn off the motor until the level falls below the low level sensor. Then
we should turn on the fill motor and repeat the process.
Here we have a need for 3 I/O (i.e. Inputs/Outputs). 2 are inputs (the sensors) and 1 is an output
(the fill motor). Both of our inputs will be NC (normally closed) fiber-optic level sensors. When they
are NOT immersed in liquid they will be ON. When they are immersed in liquid they will be OFF.
We will give each input and output device an address. This lets the PLC know where they are
physically connected. The addresses are shown in the following tables:
Inputs
Low
High
Address
0000
0001
Outputs
Motor
Address
5000
- 24 -
Internal Utility
1000
We should always remember that the most common reason for using PLCs in our applications is
for replacing real-world relays. The internal utility relays make this action possible. It's impossible
to indicate how many internal relays are included with each brand of PLC. Some include 100's
while others include 1000's while still others include 10's of 1000's! Typically, PLC size (not
physical size but rather I/O size) is the deciding factor. If we are using a micro-PLC with a few I/O
we don't need many internal relays. If however, we are using a large PLC with 100's or 1000's of
I/O we'll certainly need many more internal relays.
If ever there is a question as to whether or not the manufacturer supplies enough internal relays,
consult their specification sheets. In all but the largest of large applications, the supplied amount
should be MORE than enough.
- 25 -
Initially the tank is empty therefore, input 0000 is TRUE and input 0001 is also TRUE.
Scan 1
Scan 2-100
- 26 -
Scan 101-1000
Notice that even when the low level sensor is false there is still a path of true logic from left to
right. This is why we used an internal relay.
Relay 1000 is latching the output (5000) on. It will stay this way until there is no true logic path
from left to right.(i.e. when 0001 becomes false).
After 1000 scans the oil level rises above the high level sensor at it also becomes open (false)
Scan 1001
Scan 1002
- 27 -
Scan 1050
Notice that even though the high level sensor became true there still is NO continuous true logic
path and therefore coil 1000 remains false!
After 2000 scans the oil level falls below the low level sensor and it will also become true again.
At this point the logic will appear the same as SCAN 1 above and the logic will repeat as
illustrated above.
- 28 -
Getting Started
To start the program
Double click on the CX-program icon on your desktop.
The CX workspace
You can move around and select the various screen functions and options either by using the
keyboard buttons or the mouse . The menu options at the top of the screen identify the alternative
key operations. If you are only using the keyboard, you will not need to display the tool bars (see
Tool bars note below).
Hint: You can jump between the project workspace and the ladder diagram by pressing the Alt-O
keys.
- 29 -
- 30 -
- 31 -
rung.
- 32 -
- 33 -
You may enter your symbols in the symbol table before you write your program.
You may use the symbol table to insert symbols after you have finished programming.
Method 1
Select file new and complete the change PLC dialog box.
From the project workspace select symbols as shown below.
- 34 -
When the symbols table appears, right click in the first line and select insert symbol
Now simply write your program in the normal manner and the symbols and comments will appear
as you address your instructions.
Your completed program should now look like this
Note: You can select tools/options to customise your workplace by modifying the way your
program looks.
- 35 -
If you are using the hand held programmer to write your program you must write your program
using mnemonics. You can convert your ladder diagram to mnemonics simply by selecting the
view mnemonics
button on the toolbar. Your completed program now looks like this.
If you accidentally add an instruction which you wish to remove, you may right
click on the instruction and then select "cut" or delete from the drop-down menu
that appears.
- 36 -
The program will now prompt you to connect to the PLC and if your communications setup is
correct you should now be connected.
- 37 -
Operate the switches and ensure that your program works properly.
- 39 -
Latching Instructions
Regular output coils are of course an essential part of our programs but we must remember that
they are only TRUE when all instructions before them on the rung are also TRUE. What happens
if they are not? Then of course, the output will become false (turn off).
Think back to the lunch bell example we did a few chapters ago. What would've happened if we
couldn't find a "push on/push off" switch? Then we would've had to keep pressing the button for
as long as we wanted the bell to sound. (A momentary switch) The latching instructions let us use
momentary switches and program the PLC so that when we push one the output turns on and
when we push another the output turns off.
Here is a real world example.
Picture the remote control for your TV. It has a button for ON and another for OFF. When you
push the ON button the TV turns on. When you push the OFF button the TV turns off. You don't
have to keep pushing the ON button to keep the TV on. This would be the function of a latching
instruction.
The latch instruction is often called a SET or OTL (output latch).
The unlatch instruction is often called a RES (reset), OTU (output unlatch) or RST (reset). The
diagram below shows how to use them in a program.
Here we are using 2 momentary push button switches. One is physically connected to input 0000
while the other is physically connected to input 0001. When the operator pushes switch 0000 the
instruction "set 0500" will become true and output 0500 physically turns on.
Even after the operator stops pushing the switch, the output (0500) will remain on. It is latched on.
The only way to turn off output 0500 is turn on input 0001. This will cause the instruction "res
0500" to become true thereby unlatching or resetting output 0500.
Here's something to think about. What would happen if input 0000 and 0001 both turn on at the
exact same time.
Will output 0500 be latched or unlatched?
To answer this question we have to think about the scanning sequence. The ladder is always
scanned from top to bottom, left to right. The first thing in the scan is to physically look at the
inputs. 0000 and 0001 are both physically on.
Next the PLC executes the program. Starting from the top left, input 0000 is true therefore it
should set 0500. Next it goes to the next rung and since input 0001 is true it should reset 0500.
The last thing it said was to reset 0500. Therefore on the last part of the scan when it updates the
outputs it will keep 0500 off.
Latching Example
Stop/Start using set (SET) and reset (RSET)
- 40 -
Mnemonics
Activate the Start and Stop switches and ensure that the S and R output instructions are responding
correctly. Once you have the lamp ON, could you turn it off if power was lost in the Stop Switch
circuit? (broken wire)
Now modify your program so that it operates correctly when you substitute the N.O. Stop switch
(I0.1) with a Normally Closed Switch. If we now lost power on the N.C. Stop switch circuit, what
would happen to the state of Lamp (Q0.0)?
- 41 -
Ladder
Mnemonics
Activate the Start and Stop switches and ensure that the keep output instruction is responding
correctly.
- 42 -
Timers
Let's now see how a timer works. What is a timer? Its exactly what the word says... it is an
instruction that waits a set amount of time before doing something.
When we look at the different kinds of timers available the fun begins. As always, different types
of timers are available with different manufacturers. Here are most of them:
On-Delay timer-This type of timer simply "delays turning on". In other words, after our sensor
(input) turns on we wait x-seconds before activating a solenoid valve (output). This is the most
common timer. It is often called TON (timer on-delay), TIM (timer) or TMR (timer).
Off-Delay timer- This type of timer is the opposite of the on-delay timer listed above. This timer
simply "delays turning off". After our sensor (input) sees a target we turn on a solenoid (output).
When the sensor no longer sees the target we hold the solenoid on for x-seconds before turning it
off.
It is called a TOF (timer off-delay) and is less common than the on-delay type listed above.
Retentive or Accumulating timer- This type of timer needs 2 inputs. One input starts the timing
event (i.e. the clock starts ticking) and the other resets it. The on/off delay timers above would be
reset if the input sensor wasn't on/off for the complete timer duration. This timer however holds or
retains the current elapsed time when the sensor turns off in mid-stream.
For example, we want to know how long a sensor is on for during a 1 hour period.
If we use one of the above timers they will keep resetting when the sensor turns off/on. This timer
however, will give us a total or accumulated time. It is often called an RTO (retentive timer) or
TMRA (accumulating timer).
Let's now see how to use them. We typically need to know 2 things:
What will enable the timer. Typically this is one of the inputs.(a sensor connected to input 0000 for
example)
How long we want to delay before we react. Let's wait 5 seconds before we turn on a solenoid, for
example.
When the instructions before the timer symbol are true the timer starts "timing".
When the time elapses the timer will automatically close its contacts.
When the program is running on the PLC, the program typically displays the elapsed or
"accumulated" time for us so we can see the current value.
Typically timers can time from 0 to 9999 or 0 to 65535 times.
Why the weird numbers? Again its because most PLCs have 16-bit timers. 0-9999 is 16-bit BCD
(binary coded decimal) 0 to 65535 is 16-bit binary.
Each tick of the clock is equal to input value x seconds.
Typically each manufacturer offers several different ticks.
Most manufacturers offer 10 and 100 ms increments (ticks of the clock).
A "ms" is a milli-second or 1/1000th of a second.
Several manufacturers also offer 1ms as well as 1 second increments.
These different increment timers work the same as above but sometimes they have different
names to show their timebase.
Some are TMH (high speed timer), TMS (super high speed timer) or TMRAF (accumulating fast
timer)
Shown below is a typical timer instruction symbol we will encounter (depending on which
manufacturer we choose) and how to use it. Remember that while they may look different they
are all used basically the same way. If we can setup one we can setup any of them.
- 43 -
In this diagram we wait for input 0001 to turn on. When it does, timer T000 (a 100ms increment
timer) starts ticking.
It will tick 100 times. Each tick (increment) is 100ms so the timer will be a 10000ms (i.e. 10
second) timer.
100ticks X 100ms = 10,000ms. When 10 seconds have elapsed, the T000 contacts close and 500
turns on.
When input 0001 turns off(false) the timer T000 will reset back to 0 causing its contacts to turn
off(become false) thereby making output 500 turn back off.
An accumulating/retentive timer would look similar to this:
This timer is named Txxx. When the enable input is on the timer starts to tick.
When it ticks yyyyy (the preset value) times, it will turn on its contacts that we will use later in the
program. Remember that the duration of a tick (increment) varies with the vendor and the
timebase used. (i.e. a tick might be 1ms or 1 second or...) If however, the enable input turns off
before the timer has completed, the current value will be retained.
When the input turns back on, the timer will continue from where it left off. The only way to force
the timer back to its preset value to start again is to turn on the reset input.
- 44 -
In this diagram we wait for input 0001 to turn on. When it does timer T000 (a 10ms increment
timer) starts ticking. It will tick 100 times.
Each tick (increment) is 10ms so the timer will be a 1000ms (1 second) timer. (100ticks X 10ms =
1,000ms).
When 1 second has elapsed, the T000 contacts close and 5000 turns on.
If input 0001 turns off while the timer is timing the accumulated value will be retained. When 0001
turns back on the timer will continue where it left off.
When input 0002 turns on (true) the timer T000 will reset back to 0 causing its contacts to turn off
(become false).
Always remember that although the symbols may look different they all operate the same way.
Typically the major differences are in the duration of the ticks increments.
- 45 -
Description
A timer is activated when its execution condition goes ON and is reset (to SV) when the execution
condition goes OFF. Once activated, TIM measures in units of 0.1 second from the SV.
If the execution condition remains ON long enough for TIM to time down to zero, the Completion
Flag for the TC number used will turn ON and will remain ON until TIM is reset (that is, until its
execution condition goes OFF).
Operand Data Areas:
N:
TC Number
000 - 511
SV:
Use the TIM instruction to turn an output on or off after the timer has been on for a preset time
interval. This output instruction begins timing when its rung goes "true." It then waits the specified
amount of time (as set in the set value SV), keeps track of the accumulated intervals which have
occurred, and sets the TIM000 bit when the current time equals zero.
- 46 -
Ladder
Mnemonics
Once you have your program entered and compiled, download it to the PLC.
Ensure that Switch 0.00 is Open, and then place the PLC into the Run mode.
Note the initial value of timer TIM000's present value (PV) and set value (SV) in the spaces
below. Also indicate the state of each of the timer's control bits in the spaces provided:
Initial
TIM000 (PV)
TIM000 (SV)
TIM000 (contact)
State
= _____
= _____
= _____
(Switch
I0.0=Open):
Close switch 0.00, and carefully observe the incrementing of the timer's accumulator, and the
state of it's control bit (timer contact).
Once the Timer reaches zero, note the final value of timer TIM000 's accumulator, preset, and the
state of it's control bit below:
- 47 -
=
= _____
= _____
= _____
preset
(Switch
I0.0=Closed):
Toggle the state of switch 0.00 a number of times, and observe the operation of the Timer in the
Ladder Rung program display.
Confirm that when the rung is taken false, the accumulator and its control bit is set to the SV. This
type of timer is a non-retentive instruction.
Conclusion:
Use the TIM instruction to turn an output on or off after the timer has been on for a preset time
interval. This output instruction begins timing when its rung goes "true". It waits the specified
amount of time (as set in the SV), keeps track of the accumulated intervals which have occurred
and
sets
the
timer
contact
when
the
accumulated
time
equals
zero.
As long as rung conditions remain true, the timer adjusts its accumulated value each evaluation
until it reaches zero. The accumulated value is reset when rung conditions go false, regardless of
whether the timer has timed out.
Note
The Omron CPM1A does not support timer off delay and retentive timer instructions.
- 48 -
Counters
A counter is a simple device intended to do one simple thing - count. Using them, however, can
sometimes be a challenge because every manufacturer (for whatever reason) seems to use them
a different way. The following information will let you simply and easily program anybody's
counters.
Types of counters
What kinds of counters are there? Well, there are up-counters (they only count up 1,2,3...). These
are called CTU,(count up) CNT,C, or CTR.
There are down counters (they only count down 9,8,7,...). These are typically called CTD (count
down) when they are a separate instruction.
There are also up-down counters (they count up and/or down 1,2,3,4,3,2,3,4,5,...).
These are typically called UDC (up-down counter) when they are separate instructions.
Many manufacturers have only one or two types of counters but they can be used to count up,
down or both.
To further confuse the issue, most manufacturers also include a limited number of high-speed
counters.
These are commonly called HSC (high-speed counter), or CTH (Counter High-speed?).
Typically a high-speed counter is a "hardware" device. The normal counters listed above are
typically "software" counters, in other words they don't physically exist in the plc but rather they
are simulated in software.
Hardware counters do exist in the plc and they are not dependent on scan time.
A good rule of thumb is simply to always use the normal (software) counters unless the pulses
you are counting will arrive faster than 2X the scan time. (i.e. if the scan time is 2ms and pulses
will be arriving for counting every 4ms or longer then use a software counter.
If they arrive faster than every 4ms (3ms for example) then use the hardware (high-speed)
counters. (2xscan time = 2x2ms= 4ms)
To use them we must know 3 things:
Where the pulses that we want to count are coming from. Typically this is from one of the
inputs.(a sensor connected to input 0000 for example)
How many pulses we want to count before we react. Let's count 5 bottles before we box them, for
example.
When/how we will reset the counter so it can count again. After we count 5 bottles lets reset the
counter, for example.
When the program is running on the PLC the program typically displays the current or
"accumulated" value for us so we can see the current count value.
Typically counters can count from "0 to 9999", "-32,768 to +32,767" or "0 to 65535". Why the
weird numbers?
This is because 0-9999 is 16-bit BCD (binary coded decimal) and -32,768 to 32767 and 0 to
65535 require 16-bit binary and most PLCs use 16bit numbers
Here are some of the instruction symbols we will encounter (depending on which manufacturer
we choose) and how to use them.
Remember that while they may look different they are all used basically the same way. If we can
program one we can program any of them.
- 49 -
In this counter we need 2 inputs. One goes before the reset line. When this input turns on the
current (accumulated) count value will return to zero.
The second input is the address where the pulses we are counting are coming from.
For example, if we are counting how many bottles pass in front of the sensor that is physically
connected to input 0001 then we would put normally open contacts with the address 0001 in front
of the pulse line.
Cxxx is the name of the counter. If we want to call it counter 000 then we would put "C000" here.
yyyyy is the number of pulses we want to count before doing something. If we want to count 5
bottles before turning on a physical output to box them we would put 5 here. If we wanted to
count 100 bottles then we would put 100 here, etc.
When the counter is finished (i.e we counted yyyyy bottles) it will turn on a separate contact that
we also label Cxxx.
Note that the counter accumulated value ONLY changes at the off to on transition of the pulse
input.
Here's the symbol on a ladder showing how we set up a counter (we'll name it counter 000) to
count 100 bottles from input 0001 before turning on output 500.
Sensor 0002 resets the counter.
- 50 -
In this up-down counter we need to assign 3 inputs. The reset input has the same function as
above, however, instead of having only 1 input for the pulse counting we now have 2.
One is for counting up and the other is for counting down.
In this example we will call the counter UDC000 and we will give it a preset value of 1000. (we'll
count 1000 total pulses) For inputs we'll use a sensor which will turn on input 0001 when it sees a
target and another sensor at input 0003 will also turn on when it sees a target. When input 0001
turns on we count up and when input 0003 turns on we count down. When we reach 1000 pulses
we will turn on output 500. Again note that the counter accumulated value ONLY changes at the
off to on transition of the pulse input. The ladder diagram is shown below.
One important thing to note is that in some PLCs counters and timers can't have the same
address.
This is because they typically use the same registers.
- 51 -
Description
CNT is used to count down from SV when the execution condition on the count pulse, CP, goes
from OFF to ON, that is, the present value (PV) will be decremented by one whenever CNT is
executed with an ON execution condition for CP and the execution condition was OFF for the last
execution.
If the execution condition has not changed or has changed from ON to OFF, the PV of CNT will
not be changed.
The Completion Flag for a counter is turned ON when the PV reaches zero and will remain ON
until the counter is reset.
CNT is reset with a reset input, R.
When R goes from OFF to ON, the PV is reset to SV.
The PV will not be decremented while R is ON.
Counting down from SV will begin again when R goes OFF.
The PV for CNT will not be reset in interlocked program sections or by power interruptions.
Operand Data Areas:
N:
TC Number
000 - 511
SV:
Since there is one current value for each counter, do not assign the same counter number to
more than one counter.
(Up Counters, Up/Down Counters, and Down Counters with the same number access the same
current value.)
This output instruction counts down for each false-to-true transition of conditions preceding it in
the rung and produces an output when the accumulated value reaches the preset value.
Rung transitions might be triggered by a limit switch or by parts travelling past a detector.
The ability of the counter to detect false-to-true transitions depends on the speed (frequency) of
the incoming signal.
The on and off duration of an incoming signal must not be faster than the scan time.
Each count is retained when the rung conditions again become false.
- 52 -
Ladder
Mnemonics
Confirm that you have entered the number 10 as the counter's set value. This value is optionally
used to set the point at which the counter's completion flag will be Set, indicating that the count is
complete.
Once you have your program entered, and have ensured that it is correct, download it to the PLC.
Ensure that Switches 0.00 and 0.01 are Open, and then place the PLC into the Run mode.
Close switch 0.01 momentarily to set the counter to its SV.
Note the value of Counter C0's present value PV, set and completion flag (contact) in the spaces
provided below.
Initial
State
CNT000 PV
= _______
CNT000 SV
= _______
CNT000 contact = ___
(Switch
I0.0=Open):
Open and Close switch 0.00 a number of times and carefully observe the decrementing of C0's
accumulator and the operation of the output bit.
Close switch 0.01 and observe the effect that the "R" input has on the counter.
Attempt to decrement the counter while switch I0.1 is closed.
You should not be able to decrement the counter while the "R" input is held "True".
- 53 -
- 54 -
Description
The CNTR(12) is a reversible, up/down circular counter, that is, it is used to count between zero
and SV according to changes in two execution conditions, those in the increment input (II) and
those in the decrement input (DI).
The present value (PV) will be incremented by one whenever CNTR(12) is executed with an ON
execution condition for II.
The present value (PV) will be decremented by one whenever CNTR(12) is executed with an ON
execution condition for DI and the last execution condition for DI was OFF.
If OFF to ON changes have occurred in both II and DI since the last execution, the PV will not be
changed.
If the execution conditions have not changed or have changed from ON to OFF for both II and DI,
the PV of CNT will not be changed.
When decremented from 0000, the present value is set to SV and the Completion Flag is turned
ON until the PV is decremented again.
When incremented past the SV, the PV is set to 0000 and the Completion Flag is turned ON until
the PV is incremented again.
CNTR(12) is reset with a reset input, R. When R goes from OFF to ON, the PV is reset to zero.
The PV will not be incremented or decremented while R is ON. Counting will begin again when R
goes OFF.
The PV for CNTR(12) will not be reset in interlocked program sections or by the effects of power
interruptions. (retentive)
Operand Data Areas:
N:
TC Number
000 - 511
SV:
- 55 -
- 56 -
- 57 -
- 58 -
- 59 -
CONVEYOR CONTROL
The above circuit operates as follows.
When the conveyor is stopped 'Motor stopped' light is on.
When the reverse start button is pressed the conveyor starts in reverse and the reverse indicator
light comes on.
When the forward start button is pressed the conveyor starts in forward and the forward indicator
light comes on.
The Conveyor must be stopped before changing from reverse to forward and vice versa.
The conveyor shuts down if either 'Thermal overload' or 'master stop' is pressed.
- 60 -
- 61 -
In this exercise we want you to apply your knowledge of Relay Logic Instructions to design a
program which will control the Door. The Door System includes a Reversible Motor, a pair of
Limit Switches and a Control Panel, all connected to your PLC. The program you create will
monitor and control this equipment while adhering to the following criteria:
The Open and Close pushbuttons will be used to control the movement of the door.
Movement will not be maintained when either switch is released.
Pressing the Open Switch will cause the door to move upwards (open) if not already fully
open. The opening operation will continue as long as the switch is held down. If the switch
is released, or if limit switch LS1 closes, the door movement will halt immediately.
- 62 -
Pressing the Close Switch will cause the door to move down (close) if not already fully
closed. The closing operation will continue as long as the switch is held down. If the switch
is released, or if limit switch LS2 closes, the door movement will halt immediately.
If the Door is already fully opened, Pressing the Open Switch will Not energize the motor.
If the Door is already fully closed, Pressing the Close Switch will Not energize the motor.
Under no circumstance will both motor windings be energized at the same time.
The Open Lamp will be illuminated if the door is in the Fully Open position.
The Shut Lamp will be illuminated if the door is in the Fully Closed position.
Design, debug, and test your Program. Avoid the use of Set or Reset latching instructions, and
make a concerted effort to minimize the number of rungs employed.
Ensure that you have made effective use of both instruction and rung comments to clearly
document your program. All I/O components referenced within your program should be clearly
labelled, and rung comments should be employed to add additional clarity as required.
- 63 -
The fill motor is to pump lubricating oil into the tank until the high level sensor turns on. At that
point the motor is turned off until the level falls below the low level sensor. The fill motor should
turn on again and repeat the process.
Both inputs are NC (normally closed) fibre-optic level sensors.
When they are NOT immersed in liquid they will be ON.
When they are immersed in liquid they will be OFF.
- 64 -
This circuit places a ten second shot of liquid into a carton each time a carton position limit switch
is operated.
The circuit must provide for a carton position limit input and a dosing solenoid output.
- 65 -
- 66 -
Australian Standards
The Australian Standards are the guiding publication for safety. Listed below are some of the key
clauses in the current versions of the standards.
AS/NZ 3000 clause 2.8 devices for isolation and switching
Clause 2.8.3.2 states that a semiconductor device shall not be used for isolation purposes
AS/NZ 3000 clause 2.11.8 refers to cranes and hoists
This will also refer you to AS1418
AS 1543 Electrical equipment of industrial machines - all sections (but in general)
Section 1 - Scope & general
Section 3 - Power & control circuits
Section 4 - Control Equipment
Section 6 Wiring
Appendix C - Protective interlocking
Employers' Responsibility
Employers shall ensure as far as is reasonably practicable that machinery, plant and equipment is
safe and without risks when used property. This requires having the application of hazard
analysis procedures at the design stage together with procedures which specifically relate to the
following:
Design and procurement.
Installation.
Commissioning and acceptance.
Training and supervision.
Operation.
Maintenance.
- 67 -
Installation
The installation, spacing, clearance, services and foothold around machinery, plant and
equipment shall be such as to ensure:
stability, safe operation, access and supervision.
satisfactory facilities for maintenance work, operating adjustments and cleaning.
adequate space for handling materials and parts to or from machines and for work in progress.
- 68 -
Isolating controls
All power driven machinery or equipment shall have a control for isolating it from all sources of
power, whether electrical, hydraulic, pneumatic, mechanical or other.
The isolator shall be either on the machine, or in close proximity to it, and shall be clearly visible,
readily accessible and clearly identified.
There shall be provision for the manual locking of the isolator in the isolated position, except
where the machinery or equipment is supplied through a removable plug or coupling.
- 69 -
PLC Installation
Installation of a PLC requires the installer to understand many factors, including environmental,
electrical and safety considerations. This chapter will explore these factors in more detail.
Climatic Environment
The location of PLC should be away from heat sources, preferably towards the bottom of
the electrical enclosure.
Electrical Interference
Some electrical equipment, such as welders and Variable Speed Drives (VSDs), emit high levels
of electrical interference.
A PLC can be affected by this interference and precautions such as line filtering may need to be
taken.
Generally PLCs should be installed away from sources of interference such as above as well the
cables running to such devices.
The PLC input signal wiring must be kept away from these interference sources and any power
cables that may be in the vicinity.
Earthing
For the safety reasons, earthing procedures are important on PLC installations.
- 70 -
- 71 -
- 72 -
The DATA is transferred to the diskette one bit at a time onto sections of the disk called TRACKS
by magnetising the surface to represent groups of bit patterns in either the ON or OFF state.
Within the disk drive there is a magnetising head which is known as the READ / WRITE HEAD
and is used to either WRITE data onto the disk or READ data from the disk whilst it is spinning at
extremely high speed.
The head moves in and out over the spinning disk to access the different sections of the disk area
and because this can occur at very high speeds then the resultant access time to READ or
WRITE to the disk is extremely low.
- 73 -
- 74 -
ROM
Similar to RAM, ROM chips contain a grid of columns and rows. But where the columns and rows
intersect, ROM chips are fundamentally different from RAM chips. While RAM uses transistors to
turn on or off access to a capacitor at each intersection, ROM uses a diode to connect the lines if
the value is 1. If the value is 0, then the lines are not connected at all.
A diode normally allows current to flow in only one direction and has a certain threshold, known
as the forward breakover, that determines how much current is required before the diode will pass
it on. In silicon-based items such as processors and memory chips, the forward breakover voltage
is approximately 0.6 volts. By taking advantage of the unique properties of a diode, a ROM chip
can send a charge that is above the forward breakover down the appropriate column with the
selected row grounded to connect at a specific cell. If a diode is present at that cell, the charge
will be conducted through to the ground, and, under the binary system, the cell will be read as
being "on" (a value of 1). If the cell's value is 0, there is no diode at that intersection to connect
the column and row. So the charge on the column does not get transferred to the row.
As you can see, the way a ROM chip works necessitates the programming of perfect and
complete data when the chip is created. You cannot reprogram or rewrite a standard ROM chip. If
it is incorrect, or the data needs to be updated, you have to throw it away and start over. Creating
the original template for a ROM chip is often a laborious process full of trial and error. But the
benefits of ROM chips outweigh the drawbacks. Once the template is completed, the actual chips
can cost as little as a few cents each. They use very little power, are extremely reliable and, in the
case of most small electronic devices, contain all the necessary programming to control the
device.
- 75 -
PROMs can only be programmed once. They are more fragile than ROMs. A jolt of static
electricity can easily cause fuses in the PROM to burn out, changing essential bits from 1 to 0.
But blank PROMs are inexpensive and are great for prototyping the data for a ROM before
committing to the costly ROM fabrication process.
EPROM
Working with ROMs and PROMs can be a wasteful business. Even though they are inexpensive
per chip, the cost can add up over time. Erasable programmable read-only memory (EPROM)
addresses this issue. EPROM chips can be rewritten many times. Erasing an EPROM requires a
special tool that emits a certain frequency of ultraviolet (UV) light. EPROMs are configured using
an EPROM programmer that provides voltage at specified levels depending on the type of
EPROM used.
Once again we have a grid of columns and rows. In an EPROM, the cell at each intersection has
two transistors. The two transistors are separated from each other by a thin oxide layer. One of
the transistors is known as the floating gate and the other as the control gate. The floating gate's
only link to the row (wordline) is through the control gate. As long as this link is in place, the cell
has a value of 1. To change the value to 0 requires a curious process called Fowler-Nordheim
tunnelling.
Tunnelling is used to alter the placement of electrons in the floating gate. An electrical charge,
usually 10 to 13 volts, is applied to the floating gate. The charge comes from the column (bitline),
enters the floating gate and drains to a ground.
This charge causes the floating-gate transistor to act like an electron gun. The excited electrons
are pushed through and trapped on the other side of the thin oxide layer, giving it a negative
charge. These negatively charged electrons act as a barrier between the control gate and the
- 76 -
Printing Facilities
Although the user program contained within the PLC's memory can be searched through and
monitored using the PLC's programming unit it is almost essential that a hard copy print-out can
be obtained from the PLC system.
Being able to view the entire Ladder diagram layout of the user program on paper allows the user
to follow through the operational sequence of the program.
If the Ladder print-out is correct and well documented then fault finding and commissioning can
be accomplished with much less confusion and also quite possibly without the use of the PLC's
programming unit.
At the very least the print-out obtained generally consists of the program Ladder diagram layout
plus all of the associated addressing information contained within the program. Additional
features available with most PLC systems allow the user to print out comments on the programs
operation, specific names given to each of the addresses (usually known as Mnemonics), Cross
reference information on all addresses used within the program and a listing of all contents of
associated data registers (i.e. Timer, Counter and Shift Register values etc.).
- 78 -
PLC Hardware
Correct choice of PLC hardware is an important step in an automation project. There are many
types on packages with various CPUs, I/O modules and mounting chassis. There is also an I/O
limit to each of the packages. In this chapter we investigate the various choices that are
commonly available.
Micro
Typically used for small projects
Usually fixed I/O sizes from 10 to 30 points
- 79 -
Omron
Micro Programmable Controller CPM1A
The CPM1A series micro controllers solve both basic and semi-complex applications.
The brick style models include AC inputs/relay outputs, DC inputs/transistor or relay outputs to
meet your design requirements.
The base I/O for the CPUs ranges from 10, 20, 30, and 40 I/O points with maximum expansion to
100 I/O.
Specialised expansion modules include mixed analogue I/O, temperature sensor inputs and serial
communications
- 80 -
Provides an economical alternative to discrete timers, counters and general purpose relays.
Control programs can be created using the 32-bit, Windows-based ZEN support software or using
the operation buttons on the front panel (LCD models only). The ZEN is also flexible, with six CPU
types, multiple expansion options, and a wide selection of accessories.
Wide variety of functions.
Saving and copying of programs.
Space saver-the extreme compact size allows for installation in almost any location.
Flexible expansion- up to 3 expansion I/O modules can be added to any CPU for a maximum of
34 I/O points.
Memory backup.
- 81 -
The PC programming software follows the Siemens STEP5 structured programming which
divides the programming into manageable pieces where only appropriate program blocks
are executed to increase scan times.
Alternatively, the Siemens POG605U Programming Panel (PLCSP1) is a small, on-line
LCD programming panel suitable for entering basic programs into any of the S5 range of
PLCs.
Programs are entered using the STatement List (STL) method and programming is aided
by the display of system prompts and error messages.
- 82 -
SLC500 Accessories
Allen Bradley have many programming options and accessories available for their PLCs. PC
programming of the PLCs is easily achieved using the RS Logix Programming Software
(RSLOGIX), which features Ladder Programming and Monitoring, together with a suite of editing
tools. Programs are downloaded to the PLC using the PLC to PC converter supplied with the
software. Multi-user versions of the software are also available.
The hand held programming terminal (PLCAP1) is a powerful, portable programming
tool for the SLC500 fixed or 5/01 and 5/02 modular processors and can display up to 5 rungs of
ladder logic at any time. The data access module (PLCAP8) is a plant floor device that gives easy
assess to timer, counter and other data table areas.
Order
Code
Base Unit
Inputs
Memory
PLCA1
SLC500
Fixed
12
8 relay
1k UVPROM
PLCA2
SLC500
Fixed
12
8 relay
4 inputs
10V or
1k UVPROM
SLC502
Fixed
PLCA3
20mA
8 relay
8 inputs
10V/20mA 4k UVPROM
4 outputs
10V
- 83 -
Order
Code
Base Unit
Inputs
Dimensions
PLCA4
L16BWB
10
6 relay
24V
120 x 80 x 40mm
PLCA5
L32BWB
12
12 relay
24V
200 x 80 x 40mm
Micrologix Accessories
The Micrologix 1000 is fully supported by the standard Allen Bradley RS Logix Software, which
includes program documentation for adding rung comments and instructions, editing facilities cut, copy and paste, program reports, plus many more.
A hand held programmer uses the globally accepted instruction list language to program the PLC
and offers the facility to monitor operation, enter and modify programs plus store and transfer
programs between controllers.
The 'Micro-View' low-cost data access panel is available that gives access to the various data
areas of the PLC.
- 84 -
Peripheral Devices
Peripheral devices to the PLC and its I/O base(s) can be anything from a host computer and
control console to a motor drive unit or field limit switch. Printers and industrial terminals used for
programming are also peripheral devices.
Peripheral devices can generate or receive AC or DC voltages and currents as well as digital
pulse trains or single pulses of quick length (pulse width).
These external operating devices, with their sometimes harsh and/or fast signal characteristics,
must be able to interface with the PLC's sensitive microprocessor. Various types of I/O modules
(using the proper shielded cabling) are available to do this job.
Input modules
The input module has two functions: reception of an external signal and status display of that
input point. In other words, it receives the peripheral sensing unit's signal and provides signal
conditioning, termination, isolation and/or indication for that signal's state.
The input to an input module is in either a discrete or analogue form. If the input is an ON-OFF
type, such as with a push button or limit switch, the signal is considered to be of a discrete nature.
If, on the other hand, the input varies, such as with temperature, pressure, or level, the signal is
analogue in nature.
Peripheral devices sending signals to input modules that describe external conditions can be
switches (limit, proximity, pressure, or temperature), push buttons, or logic, binary coded decimal
(BCD) or analogue-to-digital (A/D) circuits. These input signal points are scanned, and their status
is communicated through the interface module or circuitry within each individual PLC and I/O
base.
Some typical types of input modules are:
DC voltage (110, 220, 14, 24, 48, 15-30V) or current (4-20 mA).
AC voltage (110, 240, 24, 48V) or current (4-20 mA).
TTL (transistor logic) input (3-15VDC).
Analogue input (12-bit).
Word input (16-bit/parallel).
Thermocouple input.
Resistance temperature detector.
High current relay.
Low current relay.
Latching input (24VDC/110VAC).
Isolated input (24VDC/85-132VAC).
Intelligent input (contains a microprocessor).
Positioning input.
PID (proportional, integral, differentiation) input.
High-speed pulse.
- 85 -
- 86 -
On the NPN sensor we connect one output to the PLCs input and the other output to the power
supply ground. If the sensor is not powered from the same supply as the plc, we should connect
both grounds together.
Many engineers will say that PNP is better (i.e. safer) because the load is switched to ground, but
whatever works for you is best. Just remember to plan for the worst.
On the PNP sensor we connect one output to positive voltage and the other output to the PLCs
input. If the sensor is not powered from the same supply as the plc, we should connect both V+'s
together. PNP sensors are most commonly used in Europe.
- 87 -
An ordinary switch (i.e. limit switch, pushbutton, toggle, etc.) would be connected to the inputs in
a similar fashion. One side of the switch would be connected directly to V+. The other end goes to
the plc input terminal. This assumes the common terminal is connected to 0V (ground). If the
common is connected to V+ then simply connect one end of the switch to 0V (ground) and the
other end to the plc input terminal.
A device called a photocoupler is used to isolate the PLCs internal circuit from the inputs. This
eliminates the chance of any electrical noise entering the internal circuitry. They work by
converting the electrical input signal to light and then by converting the light back to an electrical
signal to be processed by the internal circuit.
- 88 -
We typically connect an AC device to our input module as shown above. Commonly the AC "hot"
wire is connected to the switch while the "neutral" goes to the PLC common. The AC ground (3rd
wire where applicable) should be connected to the frame ground terminal of the PLC.(not shown)
As is true with DC, AC connections are typically colour coded so that the individual wiring the
device knows which wire is which. This coding varies from country to country. In Australia it is
coded as brown (active), blue (neutral) and green with a yellow stripe (3rd wire ground where
applicable).
The only things accessible to the user are the terminals labelled COMMON, INPUT 0000,
INPUTxxxx... The common terminal gets connected to the neutral wire.
A common switch (ie. limit switch, pushbutton, toggle, etc.) would be connected to the input
terminals directly. One side of the switch would be connected directly to INPUT XXX. The other
end goes to the AC active wire. This assumes the common terminal is connected to neutral.
Always check the manufacturers specifications before wiring, to be sure AND SAFE.
The photocouplers are used to isolate the PLCs internal circuit from the inputs. This eliminates
the chance of any electrical noise entering the internal circuitry. They work by converting the
- 89 -
Digital Outputs
The output assembly of a programmable controller consists of a number of sections (see Figure
below). The output signal is derived from signals in the processor being fed to the output logic
circuits which are isolated to protect the logic from accidental application of excessive voltages to
field wiring. The output is usually provided with over current protection such as a fuse to stop the
output assembly from being damaged if an accidental short circuit is applied in the field wiring.
- 90 -
Relay Outputs
One of the most common types of outputs available is the relay output. A relay can be used with
both AC and DC loads. A load is simply a fancy word for whatever is connected to our outputs.
We call it a load because we are "loading the output" with something. If we connected no load to
the output (ie. just connect it directly to a power supply) we would certainly damage the outputs.
This would be similar to replacing the light bulb in the lamp you're using to read this with a piece
of wire. If you did this, the lamp would draw a tremendous amount of current from the outlet and
certainly pop your circuit breaker or blow your fuse.
Some common forms of a load are a solenoid, lamp, motor, etc. These "loads" come in all sizes.
Electrical sizes, that is. Always check the specifications of your load before connecting it to the
PLC output. You always want to make sure that the maximum current it will consume is within the
specifications of the PLC output. If it is not within the specifications (ie. draws too much current) it
will probably damage the output. When in doubt, double check with the manufacturer to see if it
can be connected without potential damage.
Some types of loads are very deceiving. These deceiving loads are called "inductive loads".
These have a tendency to deliver a "back current" when they turn on. This back current is like a
voltage spike coming through the system.
A good example of an inductive load that most of us see about 6 months per year is an air
conditioning unit. Perhaps in your home you have an air conditioner. Have you ever noticed that
when the air conditioner "kicks on" the lights dim for a second or two? Then they return to their
normal brightness. This is because when the air conditioner turns on it tries to draw a lot of
current through your wiring system. After this initial voltage surge it requires less current and the
lights go back to normal. This could be dangerous to your PLCs output relays. It is estimated that
this voltage surge is about 30 times the rated current of the load.
- 91 -
Shown above is a typical method of connecting our outputs to the relays. Although our diagram
shows the output connected to an AC supply, DC can be used as well. A relay is non-polarised
and typically it can switch either AC or DC. Here the common is connected to one end of our
power supply and the other end of the supply is connected to the load. The other side of our load
gets connected to the actual PLC output you have designated within your ladder program.
The relay is internal to the PLC. Its circuit diagram typically looks like that shown above. When
our ladder diagram tells the output to turn on, the PLC will internally apply a voltage to the relay
coil. This voltage will allow the selected contact to close.
When the contact closes, an external current is allowed to flow through our external circuit. When
the ladder diagram tells the PLC to turn off the output, it will simply remove the voltage from the
internal circuit thereby enabling the output contact to release. Our load will than have an open
circuit and will therefore be off.
- 92 -
Shown above is how we typically connect our output device to the transistor output. Please note
that this is an NPN type transistor. If it were a PNP type, the common terminal would most likely
be connected to V+ and V- would connect to one end of our load. Note that since this is a DC
type output we must always observe proper polarity for the output. One end of the load is
connected directly to V+ as shown above.
- 93 -
Notice that as we saw with the transistor type inputs, there is a photocoupler isolating the "real
world" from the internal circuit. When the ladder diagram calls for it, the internal circuit turns on
the photocoupler by applying a small voltage to the LED side of the photocoupler. This makes the
LED emit light and the receiving part of the photocoupler will see it and allow current to flow. This
small current will turn on the base of the output transistor connected to output 0500. Therefore,
whatever is connected between COM and 0500 will turn on. When the ladder tells 0500 to turn
off, the LED will stop emitting light and hence the output transistor connected between 0500 and
COM will turn off.
One other important thing to note is that a transistor typically cannot switch as large a load as a
relay. Check the manufacturers specifications to find the largest load it can safely switch. If the
load current you need to switch exceeds the specification of the output, you can connect the LC
output to an external relay then connect the relay to the large load. You may be thinking, "why not
just use a relay in the first place"? The answer is because a relay is not always the correct choice
for every output.
A transistor gives you the opportunity to use external relays when and only when necessary.
In summary, a transistor is fast, switches a small current, has a long lifetime and works with DC
only. Whereas a relay is slow, can switch a large current, has a shorter lifetime and works with AC
or DC. Select the appropriate one based upon your actual application needs.
- 94 -
Outputs
Relay
o Very common.
o Slow switching at high currents up to 2.5A
o Voltage dependent
Transistor Sink or Source
o Very common
o Fast switching at low currents up to 0.5A
o Voltage dependant, typically 24 VDC
Triac
o Less common
o Fast AC switching at low currents up to 0.25A
o Voltage dependant, typically 110 or 230 VAC
- 95 -
Basic diagnostics
Diagnostics provide a programmer with the ability to problem solve and debug their program.
PLCs have tools and features called diagnostics to enable fault finding. . By using diagnostics a
programmer can also test and commission a PLC project. The type and extent of the diagnostics
will depend on the PLC type and model.
Compile errors
These codes are presented as an alert after program has been compiled when a particular
programming or communication fault occurs.
The Compile
icon is located on the toolbar above the programming workspacecompiles the
current block. The compiler follows the rules below when compiling each individual network.
1.
2.
3.
4.
5.
6.
The compiler checks for errors due to features not present in the PLC
- 96 -
selected.
Program 1
The program above shows a broken rung at the input to the counter.
The error dialog box shows two errors.
The first is referring to a broken connection to the output and the second is referring to a broken
connection to the input. (two references to the same error).
Note
If you are not sure where the error is in your program simply double click on the error in the box
and the cursor will move to the error.
- 97 -
Program 2
Program 3
- 98 -
Note 1
The program above is error free but the compiler is reminding you that you have programmed the
same output twice.
Note 2
The diagnostic tools will help find many unexpected problems and errors, but will not find program
logic errors.
Program logic errors must be solved using other methods such as flow charts or truth tables.
- 99 -
Force instuctions
Force On
Forces the selected bit ON.
Force Off
Forces the selected bit OFF.
Force Cancel
Cancels the forced condition on the address. The current value is freed to be changed by the PLC
program.
Force Cancel All Forces
Cancels all forcing of bits within the PLC. The current values are freed to be changed by the PLC
program(s).
- 100 -
To use the force instruction , right click on the bit you want to force then select force on or off.
The bit will stay in the selected state until you cancel the force
- 101 -
SET example
You can use the set instruction to toggle a bit on or off in a program as long as the bit is not
controlled by the program.
Using the set instruction to control internal relay 200.00
Right click on the instruction you want to set and select set on or off as shown below.
- 102 -
Derived Timers
Intermediate Programming
To be an effective, a programmer must have a wide range of programming instruction available to
them. Not only must the programmer know when to use a particular instruction or function, they
must also have a good understanding of the instructions use and parameters.
In this section we will explore the program instructions that provide the programmer with
Derived Timers
Depending on the PLC, you may not have a particular timer function, such as Off Delay.
If this is the case you will need to construct or derive a timer function from one or more On
Delay timers.
Common derived timers are:
Off Delay
o Begins timing when the input goes false
o When the input goes false the output energises instantaneously
o The output de-energises after the time delay period
- 103 -
Ladder
Mnemonics
- 104 -
Ladder
Mnemonics
- 105 -
Ladder
Mnemonics
Note: Many PLCs have internal clocks that can be used for some of the derived timer functions
we have described here.
- 106 -
- 107 -
- 108 -
- 109 -
- 110 -
Exercise 2
When a switch is turned on, LAMP1, LAMP2 and LAMP3 energise immediately.
When the switch is turned off, turn off LAMP1, LAMP2 and LAMP3 at 5 second intervals.
(use set and reset instructions to energise and de-energise the lamps)
- 111 -
Exercise 4
A timing operation requires to time a long period of 27.5 hours
Construct a timer program that will operate a lamp once the period has elapsed
- 112 -
Assessment item 5
A high-speed machine requires the number of parts to be counted before changing the dies for
the next part. The number of parts is 50,200.
Construct a counter program that will operate a buzzer and stop the process when the number of
parts is reached
A manual reset is required
- 113 -
Reversible Counters
Many PLCs including the Omron use a counter that can count up and down, the instruction in the
Omron is CNTR (reversible).
A count up bit will control the II (increment input)
A count down bit will control the DI (decrement input
A count up will increment the accumulator
A count down will decrement the accumulator
The counter also uses a reset input which resets the counter to zero when closed.
- 114 -
DIFU(13) turns ON the designated bit (B) for one scan on reception of the leading (rising) edge of
the input signal.
DIFD(14) turns ON the designated bit (B) for one scan on reception of the trailing (falling) edge of
the input signal.
- 115 -
Ladder
Mnemonics
- 116 -
- 117 -
- 118 -
Comparison instructions
Comparison instructions are extremely useful in PLC programming in industry and are available in
almost all manufacturers' controllers.
The following compare instructions are taken from the Omron controller instruction set but they
are available in some form in all PLCs.
This instruction compares Cp1 and Cp2 and outputs the result to the GR, EQ and LE flags in the
SR area.
The following flag numbers are used to implement the compare instructions
255.05 Greater Than (GT) Flag
255.06 Equals (EQ) Flag
255.07 Less Than (LT) Flag
- 119 -
- 120 -
- 121 -
Process control
Compare Exercises
Exercise 1 Part 1
The process shown below has the capacity to contain 50 parts at any one time.
Two sensors connected to the inputs of a PLC are to be used to keep track of the number
of parts in the process.
S1 detects parts entering and S2 detects parts leaving.
An alarm is to be turned on when the process is full.
Use the count up and count down instructions to achieve this.
- 122 -
A green light is to be on when the number of parts in the process is less than 40.
An amber light is to be on between 40 and 49.
A red light indicates that the process is full.
- 123 -
- 124 -
The start of the sequence is taken to be when King St red is off and Turner St red is on.
The timing diagram below shows the sequence of the traffic lights
(The black areas are on)
Program
Write a program using a repeating timer and six compare instructions to control the intersection .
- 125 -
Program Control
IL(02) - Interlock
Purpose:
If an interlock condition is OFF, all outputs and all timer PVs between the current IL(02) and the
next ILC(03) are turned OFF or reset, respectively. Other instructions are treated as NOP.
Counter PVs are maintained. If the execution condition is ON, execution continues normally.
Purpose:
If an interlock condition is OFF, all outputs and all timer PVs between the current IL(02) and the
next ILC(03) are turned OFF or reset, respectively. Other instructions are treated as NOP.
Counter PVs are maintained. If the execution condition is ON, execution continues normally.
- 126 -
Jump (JMP)
JMP(04) is always used in conjunction with JME(05) to create jumps, that is, to skip from one
point in a ladder diagram to another point. JMP(04) defines the point from which the jump will be
made; JME(05) defines the destination of the jump.
When the execution condition for JMP(04) in ON, no jump is made and the program is executed
consecutively as written.
When the execution condition for JMP(04) is OFF, a jump is made to the JME(05) with the same
jump number and the instruction following JME(05) is executed next.
N:
Availability:
C200H, C200HS, CPM1, CPM2*, SRM1, SRM1-V2, CQM1, CQM1H, C1000H, C2000H, IDSC
and C200HX Family
- 127 -
Jump example
---Network n ----
When 0.00 is true, the program scan operates normally and the whole program is scanned.
When 0.00 goes false the program between network 4 and 9 is no longer scanned and all
outputs,
timers
and
counters
etc
remain
in
their
last
state.
- 128 -
Description
END(01) is required as the last instruction in any program.
If there are subroutines, END(01) is placed after the last subroutine.
No instruction written after END(01) will be executed.
END(01) can be placed anywhere in the program to execute all instructions up to that point, as is
sometimes done to debug a program, but it must be removed to execute the remainder of the
program.
Note:
If there is no END(01) in the program, no instructions will be executed and the error message "NO
END INST" will appear
The temporary end instruction allows you to set conditions to end the program at any point in the
scan.
In the program shown below the program scan ends at network 6.
Only rungs 1 to 6 are scanned .
------------Network n ----
- 129 -
- 130 -
- 131 -
Shift Registers
Bit Shift
Shift registers are used extensively in industry for a variety of purposes.
Essentially a shift register uses a register or group of registers to form a train of bits to store the
previous on/off status.
Each time the Clock input is pulsed, the status of the data input gets stored in the first bit and the
remaining bits get shifted down the train.
The shift register goes by many names. SFT (Shift), BSL (Bit Shift Left), SFR (Shift Forward
Register) are some of the common names.
These registers shift the bits to the left.
BSR (Bit Shift Right) and SFRN (Shift Forward Register Not) are some examples of instructions
that shift bits to the right.
We should note that not all manufacturers have shift registers that shift data to the right but most
have left shifting registers.
A typical shift register instruction has a symbol like that shown below.
The symbol needs 3 inputs and has some data inside the symbol.
- 132 -
Clock
On the rising edge of the clock input, the shift register shifts the data one location to the right or
left enters the status of the data input into the first bit. On each rising edge of this input the
process will repeat.
Reset
The reset input does just what it says. It clears all the bits inside the register to 0.
Bit 1000 inside the shift register symbol is the location of the first bit of our shift register.
Bit 1003 inside the symbol above is the last bit of our shift register.
Bits 1001 and 1002 are intermediate bits.
So this shift register has 4 bits.
(1003, 1002, 1001, 1000)
- 133 -
Description
SFT(10) is controlled by three execution conditions, I (input), P (pulse), and R (reset).
If SFT(10) is executed and (a) execution condition P is ON and was OFF the last execution and
(b) R is OFF, then execution condition I is shifted into the rightmost bit of a shift register defined
between St and E, that is, if I is ON, a 1 is shifted into the register; if I is OFF, a 0 is shifted in.
When I is shifted into the register, all bits previously in the register are shifted to the left and the
leftmost bit of the register is lost.
The execution condition on P functions like a differentiated instruction, that is, I will be shifted into
the register only when P is ON and was OFF the last time SFT(10) was executed. If execution
condition P has not changed or has gone from ON to OFF, the shift register will remain
unaffected.
St designates the rightmost word of the shift register; E designates the leftmost.
The shift register includes both of these words and all words between them.
The same word may be designated for St and E to create a 16-bit (that is, 1-word) shift register.
E:
End Word
- 134 -
Program example
When execution condition R (reset) goes ON, all bits in the shift register will be turned OFF (that
is, set to 0) and the shift register will not operate until R goes OFF again.
- 135 -
Practical example
The following application describes a typical use for a bit shift register.
An ice-cream cone machine has 4 steps.
First we verify the cone is not broken.
Next we put ice cream inside the cone.(turn on output 10.00).
Next we add chocolate.(turn on output 10.01)
Finally we add sprinkles.(turn on output 10.02)
If the cone is broken we obviously don't want to add ice cream and the other items. Therefore we
have to track the bad cone down our process line so that we can tell the machine not to add each
item.
We use a sensor to look at the bottom of the cone as it enters the machine.
( 0.00)
If it is on then the cone is perfect and if it is off then the cone is broken.
Another sensor clocks the register each time a cone enters the machine.
(0.01)
- 136 -
- 137 -
--
--
3
0
2
0
1
0
0
0
--
--
3
0
2
0
1
0
0
1
As the conveying system moves on, another cone comes in front of the sensor.
This time it's a broken cone, the fault sensor remains off and the clock input generates another
pulse.
The old status of bit 0 is transferred to bit 1.
The old status of bit 1 shifts to bit 2.
The old status of bit 2 shifts to bit 3 and the new status of the data input (cone sensor) is
transferred to bit 0.
The register now looks like this:
Data word 200
15
--
--
3
0
2
0
1
1
0
0
Since the register shows that bit 1 is now on, the ladder says that output 10.00 will turn on and ice
cream is put in the cone.
As the conveying system continues to move on, another cone comes in front of the sensor. This
time it's a good cone and the sensor turns on.
Now the clock input generates another pulse.
The old status of bit 0 is transferred to bit 1.
The old status of 1 shifts to 2.
The old status of 2 shifts to 3 and the new status of the data input (cone sensor) is transferred to
bit 0.
The register now looks like this:
Data word 200
15
--
--
3
0
- 138 -
2
1
1
0
0
1
--
--
3
1
2
0
1
1
0
1
Since the register shows that bit 3 is now on, the ladder says that output 10.02 will turn on and
sprinkles are put on the cone.
Since bit 2 now holds the status of a broken cone, output 10.01 remains off and no chocolate is
put onto this cone.
Since the register shows that bit 1 is now on, the ladder says that output 10.00 will turn on and ice
cream is put in that cone.
As the conveying system continues to move on, another cone comes in front of the sensor.
This time it's another broken cone and the sensor turns off.
The clock input generates another pulse.
The old status of bit 0 is transferred to bit 1.
The old status of 1 shifts to 2.
The old status of 2 shifts to 3 and the new status of the data input (cone sensor) is transferred to
bit 0.
The register now looks like this:
Data word 200
15
--
--
3
0
2
1
1
1
0
0
The operation above would continue on with each bit shifting on the rising edge of the clock
signal.
- 139 -
- 140 -
- 141 -