Programmable Logic Devices (PLDS)
Programmable Logic Devices (PLDS)
Programmable Logic Devices (PLDS)
1. Microprocessor
2. Microcomputer
2. Memory, it stores
Microprocessor works or operates in binary digits i.e. 0 and 1, bits. These bits are
nothing but electrical voltages in the machine, generally 0 - low voltage level, and 1 -
high voltage level. A group of bits form a ‘word’. In general, the word length is about
8 bits. This is called as a ‘byte’. A word with a length of 4 bits is called as a ‘Nibble’
Microprocessor processes the ‘commands in binary form’ to accomplish a task. These
are called as ‘instructions’. Instructions are generally entered through input devices
and can be stored in a storage device called memory.
Figure 3.1.2 and 3.1.3 show the configuration and basic blocks of a microprocessor.
The functions of each element are as follows.
2. Register Array: Registers are small storage devices that are available to CPU or
processors. They act as temporary storage for processing of intermediate data by
mathematical or logical operations.
3. Control: This part of CPU is dedicated to coordinate data flow and signal flow
through various types of buses i.e. Data Bus, Control Bus, and Address Bus etc. It
directs data flow between CPU and storage and I/O devices.
4. Memory: There are two different types of memory segments being used by the
CPU. First is the ROM which stands for Read Only Memory while other is R/W
which stands for Read and Write Memory or Random Access Memory (RAM).
a. ROM: From this memory unit, CPU can only read the stored data. No writing
operations can be done in this part of memory. Thus it is used to store the
programs that need no alteration or changes like Monitor Program or
Keyboard driver etc.
b. R/W: As name indicates it is opposite to ROM and used for both reading and
writing operations. In general User’s program and instruction are stored in this
segment of memory unit.
5. Input Devices: Input devices are used to enter input data to microprocessor from
Keyboard or from ADC which receives data from sensors/signal conditioning
systems.
6. Output Devices: These devices display the results/conclusions coming out from
ALUs either in soft copy (Monitor) or in Hard Copy (Printer).
2.1 Functions of microprocessor
Various functions of microprocessor are as follows:
Microprocessor performs a variety of logical and mathematical operations using
its ALU.
It controls data flow in a system and hence can transfer data from one location to
another based on the instructions given to it.
A microprocessor can take necessary decisions and jump to a new set of
instructions based on those decisions.
3. Microcomputer
Microcomputer is a microprocessor based system. It is a data processing system that
employs a microprocessor as its central unit. Based on the input it takes decisions. These
decisions are further used to control a system or to actuate an action or operation.
In this lecture we will study the various number systems, programming languages, and
internal architecture of the basic microprocessor, 8085.
1. Number System
Number system is a way of representing the value of any number with respect to a base
value. Number System can be classified on the basis of its “base”. Each number has a
unique representation in a number system. Different number systems have different
representation of the same number. In general Binary, Octal, Decimal and Hexadecimal
Number systems are used in microprocessor programming. Table 3.2.1 shows different
numbering systems and their details.
Table 3.2.1 Numbering systems
Any number in decimal system can be changed to any other number system by
continuously dividing it by base of the required number system and then writing
remainders after each step in reverse order.
Let us take an example of converting a decimal number 235 to its binary equivalent.
Following table shows the conversion process as stated above.
0 0000 0
1 0001 1
2 0010 2
3 0011 3
4 0100 4
5 0101 5
6 0110 6
7 0111 7
8 1000 8
9 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F
Example: Let us convert the number (235)10 to hexadecimal equivalent. Table 3.2.4
shows the conversion of this decimal number.
Table 3.2.4 Decimal to hexadecimal conversion
14 14 divided by 16 14 E
= Cannot divide
Then by arranging the hexadecimals in reverse order i.e. (EB)16. Thus (235)10 = (EB)16.
BCD code expresses each digit of a decimal system by its nibble equivalent. It uses 4 bit
binary strings to represent the digits 0 to 9. Figure 3.2.1 shows the representation of
number 523 as 010100100011 using BCD system. Due its longer representation scheme,
it is now rarely used in micro-electronics programming.
In assembly language, a word length is of about eight bits. It is called as a byte. Assembly
language can have 256 combinations of bytes. Thus the language has 256 words. There
can be a various patterns of bytes. With the help of electronic logic gates, these patterns
give a specific meaning to each combination of bytes. These are called as an
‘instruction’. Instructions are made up of one word or several words. The set of
instructions designed into the machine makes up the machine language that is specific to
each microprocessor based system viz. micro-computer.
8085 Microprocessor consists of six registers, one accumulator and a flag register. The
typical architecture is shown in figure 3.2.2. There are six general-purpose registers B, C,
D, E, H, and L, each having capacity to store 8 bit data. They are combined as BC, DE,
HL to perform 16 bit operations. In addition to this Register array, two 16 bit registers
viz. stack register and program counter are provided. As discussed in the earlier lecture,
the ‘program counter’ is employed to sequence the execution of instructions. It always
points to the memory address from which the next byte is to be fetched. Stack Pointer
points to the memory location in R/W (Read and/or write) memory. It is also termed as a
‘stack’.
The accumulator is 8-bit register (can store 8 bit data). It is a part of arithmetic/logic unit
(ALU). In general, after performing logical or arithmetical operations, result is stored in
accumulator. Accumulator is also identified as Register A.
3.3 Flags
ALU of 8085 have five flip flops whose states (set/reset) are determined by the result
data of other registers and accumulator. They are called as Zero, Carry, Sign, Parity and
Auxiliary-Carry flags.
Zero Flag (Z): When an arithmetic operation results in zero, the flip-flop called
the Zero flag - which is set to one.
Carry flag (CY): After an addition of two numbers, if the sum in the accumulator
is larger than eight bits, then the flip-flop uses to indicate a carry called the Carry
flag – which is set to one.
S-Sign (S): It is set to 1, if bit D7 of the result = 1; otherwise reset. D7 is the first
digit of a binary number.
D7 D6 D5 D4 D3 D2 D1 D0
S Z AC P CY
P-Parity (P): If the result has an even number of 1s, the flag is set to 1; for an odd
number of 1s the flag is reset.
AC-Auxiliary Carry (AC): In an arithmetic operation, when a carry is generated
by digit D3 and passed to digit D4, the AC flag is set. Generally this flag is used
internally for Binary Coded Decimals (BCD).
Figure 3.2.2 shows a 8-bit flag register, adjacent to the accumulator. It is not used as a
register. Out of eight bit-positions, five positions are used to store the outputs of five flip-
flops. These flags play an important role in decision-making process of the
microprocessor.
Memory Address Register (MAR) holds the address of next instruction to be executed.
In microprocessor, the Control Generator generates a signal that executes the operations
in accordance to the decoded instructions. In fact it creates a signal (information) which
have details about connections between different blocks of the microprocessor so that
data reaches to the respective place.
Microprocessor has few extra registers which can be used to store additional data during
a program.
4. Programming in 8085
As mentioned in above section, a simple and very effective substitution to binary codes
could be use of standard English words to complete any task. For example addition of
two numbers can be represented by ADD. Such codes are referred as mnemonic codes
and that language is called assembly language. Most of the early processers including
8085, are programmed using mnemonics. However, assembly language codes should be
converted into binary one so that microprocessor can identify the instructions given to it.
This operation is done by Assembler. In assembly language, instructions are composed of
two segments which are as follows:
Data Transfer
Arithmetic
Logical
Program Control
4.1.1 Data Transfer
1. Load: It reads content from specified memory location and copies it to specified
register location in CPU.
2. Store: It copies content of a specified register into specified memory location.
4.1.2 Arithmetic:
1. Add: It adds contents of a specified memory location to the data in some register.
2. Decrement: It subtracts 1 from contents of specified location.
3. Compare: It tells whether contents of a register are greater than, less than or
same as content of specified memory location.
4.1.3 Logical:
1. AND: Instruction carries out Logical AND operation with the contents of
specified memory location and data in some register. Numbers are ANDed bit by
bit.
2. OR: Instruction carries out Logical OR operation with the contents of specified
memory location and data in some register. Numbers are ORed bit by bit.
3. Logical Shift: Logical shift instruction involves moving a pattern of bits in the
register one place to left or right by moving a zero in the end of number.
1. Jump: This instruction changes the sequence in which program steps are carried
out. Normally program counter causes the program to be carried out sequentially
in strict numerical sequence. However, JUMP causes program counter to some
other specified location in the program.
2. Branch: This is a conditional instruction which might ‘branch’ if ‘zero’ results or
‘branch’ if ‘plus’ results of an operation. Branch also followed if right conditions
occur in the decision making process.
3. Halt: This instruction stops all further microprocessor activity.
4.2 Example: Though the basic concept remains same, however the Op codes may be
different for various microprocessors. A program example for 8085 is as follows.
Write the instructions to load two hexadecimal numbers 36B and 419 in the registers C
and D respectively. Add the numbers, and store the result in memory location B244D.
Mnemonics Code:
“The programmable logic controller is defined as a digital electronic device that uses a
programmable memory to store instructions and to implement functions such as logic,
sequencing, timing, counting and arithmetic words to control machines and processes.”
PLCs are generally used for incorporating automation in open loop systems where
processes are to be performed in a sequential manner. PLCs are used for automation of
assembly lines in industries. They are generally designed for multiple input multiple
output (MIMO) systems. In PLCs, instructions are saved in nonvolatile memory. Some of
the advantages of PLCs are:
Cost effective
Flexibility and ability to use similar system for other processes
Programming interface is easier in comparison to other processers
Resistant to impact and vibration
Resistant towards electrical and mechanical noise
Ability to work at high temperatures
Figure 3.3.1 shows the basic elements of a PLC. It is basically a microproceeor based
control system. Microprocessor communicates with the outside world with input/output
devives via a circuitry. This circuitry protects the microprocessor and other elements of
PLC from the high voltages and currents coming to the PLC. Microprocessor does its
basic functions of taking decisions according to the instructions written in the programs
which are stored in the memory. PLC scans a set of sensor inputs rapidly and repeatedly.
Then it evaluates their logic relationships to defined outputs according to a logic
program. At last it sets the outputs according to the programmed logic. Figure 3.3.2
shows an industrial PLC with input and output ports.
3. Programming a PLC:
PLCs are programmed through concept of ladder logic. In general there exists a graphical
user interface (GUI) to program a PLC that makes it different from other processers.
Ladder logic comprises of two columns. Left column shows input devices like switches,
sensors while in output column is at right side which shows actuators like cylinders,
motors.
Meanings of symbols used in PLC Program:
][
If the corresponding bit is “0” then the rung will not be executed continuously and
outputs will be de-energized. If this instruction is used as input bit, its status should be
according to the status of the real world input devices connected to the input table by
identical addresses.
This indicates address of a sample. I indicates input image table, 3 indicates slot no. 3 of
input port and 1 indicates bit three of 3rd slot of input port.
]/[
If the corresponding bit is “0” this instruction will not allow rung continuously and
outputs will be energized. If used as input bit, its status should correspond to the status of
the real world input devices tied to the input table by identical addresses.
OTE ( )
This is called as ‘output energize’. This instruction sets the specified bit when rung
continuity is achieved. Under normal operating conditions, if the set bit corresponds to an
output device, output device will be energized when rung goes true.
This is called as ‘output latch’. This instruction functions similar to output energize
except that once a bit is set with OTL, it is latched on. Once an OTL bit has been set ON
(1 on the memory) it will remain ON even if the rung condition goes false. The bit must
be reset.
(U)
This is called as ‘output unlatch’. This is used to unlatch (reset) a latched bit. Its address
must be same as latched one.
Timer
This is also called as “TON”. Figure 3.3.3 shows the schematic of a Timer. It is used to
turn an output ON or OFF after the timer has been ON for preset time interval. This
output instruction begins timing when rung goes true. It waits the specified amount of
time (As specified in Preset), keeps track of accumulated intervals which have occurred
(ACCUM), and sets DN (Done) bit when ACCUM time equals preset time.
As long as rung condition remains true, Timer adjusts its accumulated value to each
evaluation until it reaches the preset value. The accumulated value is reset when rung
condition go false, regardless of whether timer has timed out. ” TIME BASE” is an
amount of time after which accumulator increases its value by 1.
As discussed in earlier sections, PLCs are controlled through Ladder Logic. In input
section of the ladder, name of the input device must be mentioned on the top of symbol,
followed by primary input port. Secondary input port is mentioned just below symbol. In
similar way, output symbol should be mentioned with name and output ports as shown in
figure 3.3.5.
Figure 3.3.6 shows a program code to control the motion of pneumatic cylinder with a
switch.
At first station ST1, the sensor identifies an object (finished product) on the conveyer belt
and sends a signal to the controller. Controller processes this information and actuates the
electric motor to run the conveyer belt.
Second Station ST2: It is allotted for the inspection of the finished product or object. At
ST2, conveyer belt stops. In case any fault diagnosed by the inspection system, the
product will be taken away by the pneumatic actuators placed at Station 3, ST3.
Module 3: Programmable Logic Devices (PLDs)
Lecture 4
PID controllers
1. Introduction
In mechatronics, generally the objectives are to automate a process or to control
parameters of system. Control systems for manufacturing systems can be categorized into
two types. First is the sequential control where all the operations are carried out in a
sequence to automate the mechanical system(s). Automated vehicle assembly line is an
example of such control system. Such operations are controlled by Programmable Logic
Controller (PLCs) which we have already studied in previous lecture.
In the other type of the control system, precise control over output of system is to be
obtained. Therefore a continuous monitoring of such system is essential. For example
there is a necessity to continuously monitor and control the fuel tank used in a Boiler
based power plant. This type of control is also called modulating control. Feedback
systems and Proportional-integral-derivative (PID) controllers are employed in these
systems.
In general a closed loop system has several input variables and several output variables.
However one or two dominant input variables are considered in designing the control
system. Output variables are measured by using suitable transducer system and the
feedback is sent to the controller for comparison. A block diagram of closed loop system
is shown figure 3.4.1.
For a PID controller, the output can be expressed in terms of input as follows:
(𝑡) 𝑡
𝑢(𝑡) = 𝐾𝑃[𝑒(𝑡) + 𝜏𝑑 𝑑 𝑒 + 1 ∫ 𝑒(𝜏)𝑑𝜏] (3.4.1)
𝑑𝑡 𝜏𝑖 0
𝐶(𝑠) = 𝐾 �1 + 𝜏 𝑠 + 1
𝑝 𝑑 𝜏𝑖 𝑠� (3.4.2)
𝐾
𝑃(𝑠) = 1+𝜏𝑠 (3.4.3)
Now let us study the Proportional, Integrator and Differentiator Controllers one by one
and then adding them together as PID controller.
The proportional controller gives an output value that is proportional to the error value
with a gain value of Kp. The proportional response can be adjusted by multiplying the
error by a constant Kp, called the proportional gain constant (Eq. 3.4.1). Figure 3.4.3
shows the schematic of a proportional controller for a closed loop control system, the
transfer function can be written as,
𝐶(𝑠) 𝐾𝐾𝑝
𝑅(𝑠) = 1+𝜏𝑠
𝐾 (3.4.4)
1+
1+𝜏𝑠
𝐶(𝑠) 𝐾𝐾𝑃 1
= . (3.4.5)
𝑅(𝑠) 1+𝐾𝐾𝑃 1+𝜏′.𝑠
Where 𝜏 ′ = 1+𝐾𝐾
𝜏
𝑃
Thus unit step response for Proportional Controller will be,
𝑐(𝑡) = 𝐾𝐾𝑃
−𝑠𝜏
(1 − 𝑒 ) 𝜏′ (3.4.6)
1+𝐾𝐾𝑃
Without P
controller
With P
Controller
In an integral controller, the manipulation equals the integral of the error over time,
multipled by a gain KI (Eq. 3.4.1). Figure 3.4.5 shows the block diagram of Integral
controller empolyed for a SISO system. The closed loop transfer function can be written
as,
𝐶(𝑠) 𝐾
𝑅(𝑠) = 𝜏𝑖𝑠(1+𝜏𝑠)
1+
𝐾 (3.4.7)
𝜏𝑖𝑠(1+𝜏𝑠)
𝐶(𝑠) 𝐾
= (3.4.8)
𝑅(𝑠) 𝐾+ 𝜏𝑖𝑠+ 𝜏𝜏𝑖 𝑠2
For a Step input, R(s) = 1/s, we get the steady state error as,
𝜏𝑖𝑠(1+𝜏𝑠) 1
𝑒 (𝑠 ) = 𝜏𝑖𝑠(1+𝜏𝑠)+ 𝐾 . 𝑠 (3.4.9)
The step response of this closed loop system with integral action is shown in figure 3.4.6.
The integral term enhances the movement of the process towards desired point. It also
eliminates the residual steady-state error that produces with a pure proportional
controller. From the transfer function, it is observed that use of integral controller leads to
increasing order of closed loop system which may cause instability, slow and oscillatory
response. However the system has a major advantage that integral controller produces
zero steady state error.
2.3Differential control
𝐶(𝑠) 𝜏𝑑𝑠𝐾
𝑅(𝑠) = (1+𝜏𝑠)
𝜏𝑑𝑠𝐾 (3.4.11)
1+(1+𝜏𝑠)
𝐶(𝑠) 𝜏𝑑𝑠𝐾
= (3.4.12)
𝑅(𝑠) 1+𝜏𝑠+ 𝜏𝑑𝑠𝐾
For Step input R(s) = 1/s, the steady state error would be,
𝜏𝑑𝑠𝐾 1
𝑒(𝑠) = 1+𝜏𝑠+ 𝜏𝑑𝑠𝐾 𝑠
(3.4.13)
None
P
PI
I
PID controllers have wide variety of applications manufacturing industry. Some of them
are listed as follows.
1. PID control is used in automatic car steering when it is integrated with Fuzzy
Logic
2. In movement detection system of modern seismometer
3. In water/oil level monitoring in tanks
4. Head positioning of a disk drive
5. Automated inspection and quality control
6. Manufacturing process control: CNC machine tools
7. Chemical process control: flow control, temperature control
8. Automatic control of material handling equipments
9. Automatic packaging and dispatch
10. To ensure safety during manufacturing operations