Yasir Amzad Ali MFKE2009
Yasir Amzad Ali MFKE2009
Yasir Amzad Ali MFKE2009
NOVEMBER, 2009
iii
ACKNOWLEDGEMENT
ABSTRACT
ABSTRAK
PLC merupakan salah satu alat yang terpenting dalam bidang automasi
industri pada masa kini.PLC merupakan alat yang mengawal mesin untuk berfusngi
secara automatik sepenuhnya.PLC jarang digunakan untuk mengawal pergerakan
paksi sesuatu mesin.Kebiasanya tugas mengawal paksi ini dilakukan oleh
CNC.Tetapi dalam Projek ini , PLC digunakan untuk mengawal pergerakan robot
gantri tiga paksi yang digerakkan oleh motor servo dan berkomunkasi mengunakan
PROFIBUS. Tujuan mengunakan PLC sebagai alat mengawal ialah kerana mesin
yang berlandaskan PLC secara relatifnya adalah lebih murah berbanding dengan
mesin yang mengunakan CNC.
vii
TABLE OF CONTENTS
DECLARATION ii
DEDICATION iii
ACKNOWLEDGEMENTS iv
ABSTRACT v
ABSTRAK vi
TABLE OF CONTENTS vii
LIST OF TABLES xi
LIST OF FIGURES xii
LIST OF ABBREVIATIONS xv
1 INTRODUCTION
2 LITERATURE REVIEW
3 PROJECT BACKGROUND
4 METHODOLOGY
4.1 Introduction 31
4.2 Siemens Programmable Logic Controller 32
4.2.1 Siemens PLC Hardware Configuration 32
4.2.2 Siemens Network Configuration 34
4.2.3 Siemens PLC Program Editor 35
4.2.3.1 Siemens S7-Graph Editor 36
4.2.3.2 Siemens Ladder Diagram (LAD) Editor 39
4.2.3.3 Siemens Statement List (STL) Editor 41
4.3 Siemens Human Machine Interface (HMI) 43
4.4 Global Drive Control 45
5.1 Introduction 46
5.2 Robot Auto Cycle 48
5.3 Machine Ready, Safety and Error Handling Program 54
5.4 Decision Making Program 58
5.5 Drive Control Program 61
5.6 Execution Of FB3 Programs 63
6 HMI IMPLIMENTATION
6.1 Introduction 67
6.2 Main Screen 68
6.3 Auto Cycle Screen 69
6.4 Semi Auto Cycle Screen 74
6.5 Manual Cycle Screen 76
6.6 System Diagnostic Screen 77
6.7 Teaching Mode Screen 78
x
7 DRIVE IMPLIMENTATION
7.1 Introduction 79
7.2 Drive Parameter Configurations 79
7.3 Position Configuration 81
7.4 Drive Program Editor 82
8.1 Introduction 84
8.2 Development Stages 85
8.3 Error Recording Program (FC250) 87
8.4 Features Of New Robot Gantry System 88
8.4.1 Simple And Reliable Control System 88
8.4.2 Easy Maintenance & Troubleshooting Process 91
8.4.3 One Touch Button Control Concept 92
8.4.4 Optimize Movement Concept 92
8.4.5 Improved Safety 93
8.4.6 Improved Tray Scanning Process 94
8.4.7 Variable Speed Control To Improve Process Time 95
8.4.8 Touch Screen For The Robot 95
9.1 Conclusion 97
9.2 Recommendation 98
REFERENCES 99
xi
LIST OF TABLES
LIST OF FIGURES
LIST OF ABBREVIATIONS
INTRODUCTION
To supply the roller for the furnace, SKF Nilai is using fully automated
gantry robot loading system. There is three major component of the gantry
system. First system is loading station. In loading station the roller is sorted at the
tray and then it will be transported to the furnace by robot. Robot will arrange the
tray at pallet in several layers before deliver the pallet into furnace.
2
This project is to upgrade the old gantry robot system to cheap & reliable
robot control system using PLC control system. After I had done some research
and studies, I had found out the simplest & much reliable robot design using PLC
& positioning servo drive.
Another aspect which was given high priority before design the system is
availability of spare part in our store & local support of the device that we use.
Almost 70% of the items include (PLC CPU, Input Output Card, Communication
Card, Touch Screen) is available in our spare part store. This will drastically
reduce downtime for robot due to availability of spare parts.
3
In order to achieve the objective of the project, there are several scope had
been outlined. The scope of this project includes writing PLC software using
Siemens Step 7 software, writing and designing HMI program Siemens WinCC
5
Flexible 2008 and configuring and writing Lenze drive program Global
Positioning Drive software.
Chapter 8 will discuss results and discussion regarding this project and
finally Chapter 9 is conclusion and recommendations.
CHAPTER 2
LITERATURE REVIEW
envelope of the gantry robot, and the gantry robot picks up each component and
attaches or places it on the device being assembled. The device being assembled
must also be within the working envelope of the gantry robot. Grippers of
various types can be bolted to the end of the Z direction motion to assist in
grasping the parts. Rotating motions can also be added to both the Z direction
motion and the working envelope to allow for greater part manipulation.
Gantry robots have several advantages over the more popular varieties of
robots. Gantry robots can be made very large, filling an entire room if necessary.
Gantry robots typically have much better position accuracy than their
competitors.
Position accuracy refers to how close the robot can place a part to the
instructed location. Gantry robots place parts exactly where programmed. This is
why gantry robots are usually used for pick and place applications. Gantry robots
are easier to program with respect to motion than are other robots. If the part
needs to be moved from point (3,6,9) to point (4,2,8), this is simply a move of 1
unit in the X direction, -4 units in the Y direction, and -1 unit in the Z direction.
8
The main difference from other computers is that PLCs are armored for
severe conditions (such as dust, moisture, heat, cold) and have the facility for
extensive input/output (I/O) arrangements. These connect the PLC to sensors and
actuators. PLCs read limit switches, analog process variables (such as
temperature and pressure), and the positions of complex positioning systems.
Some use machine vision. On the actuator side, PLCs operate electric motors,
pneumatic or hydraulic cylinders, magnetic relays, solenoids, or analog outputs.
The input/output arrangements may be built into a simple PLC, or the PLC may
have external I/O modules attached to a computer network that plugs into the
PLC.
9
A small PLC will have a fixed number of connections built in for inputs
and outputs. Typically, expansions are available if the base model has
insufficient I/O. Modular PLCs have a chassis (also called a rack) into which are
placed modules with different functions. The processor and selection of I/O
modules is customised for the particular application. Several racks can be
administered by a single processor, and may have thousands of inputs and
outputs. A special high speed serial I/O link is used so that racks can be
distributed away from the processor, reducing the wiring costs for large plants.
PLCs may need to interact with people for the purpose of configuration,
alarm reporting or everyday control. A Human-Machine Interface (HMI) is
employed for this purpose. HMIs are also referred to as MMIs (Man Machine
Interface) and GUI (Graphical User Interface).A simple system may use buttons
and lights to interact with the user. Text displays are available as well as
graphical touch screens. More complex systems use a programming and
monitoring software installed on a computer, with the PLC connected via a
communication interface.
10
2.2.5 Communication
ladder logic or function chart notation. PLC applications are typically highly
customized systems so the cost of a packaged PLC is low compared to the cost of
a specific custom-built controller design. On the other hand, in the case of mass-
produced goods, customized control systems are economic due to the lower cost
of the components, which can be optimally chosen instead of a generic solution,
and where the non-recurring engineering charges are spread over thousands or
millions of units.
Very complex process control, such as used in the chemical industry, may
require algorithms and performance beyond the capability of even high-
performance PLCs. Very high-speed or precision controls may also require
customized solutions; for example, aircraft flight controls.
be integrated with PLC so that G-code (involving a CNC machine) can be used
to instruct machine movements.
PLCs may include logic for single-variable feedback analog control loop,
a "proportional, integral, derivative" or "PID controller." A PID loop could be
used to control the temperature of a manufacturing process, for example.
Historically PLCs were usually configured with only a few analog control loops;
where processes required hundreds or thousands of loops, a distributed control
system (DCS) would instead be used. As PLCs have become more powerful, the
boundary between DCS and PLC applications has become less distinct.
representing Off, and intermediate values undefined. Initially, PLCs had only
discrete I/O.
Analog signals are like volume controls, with a range of values between
zero and full-scale. These are typically interpreted as integer values (counts) by
the PLC, with various ranges of accuracy depending on the device and the
number of bits available to store the data. As PLCs typically use 16-bit signed
binary processors, the integer values are limited between -32,768 and +32,767.
Pressure, temperature, flow, and weight are often represented by analog signals.
Analog signals can use voltage or current with a magnitude proportional to the
value of the process signal. For example, an analog 4-20 mA or 0 - 10 V input
would be converted into an integer value of 0 - 32767.Current inputs are less
sensitive to electrical noise (i.e. from welders or electric motor starts) than
voltage inputs.
The PS, CPU and communication process modules are placed in a UR2
rack. The UR2 rack is both a mechanical and electrical "backplane". The rack
lets the different components communicate with each other as well as provides a
mechanically stable platform for use in harsh industrial environments. Depending
on the type of the rack it can mount multiple "PLC cells", where each group
consists of a power supply, CPU and communication processor.
15
The PS supplies power to the rack through the backplane. The PS also
consists of two batteries (rechargeable), which are used if the regular power from
the grid is lost, thus creating redundancy. The S7 PLC program itself is stored on
a flash memory card, which holds the information, even during a power loss.
Although, the configuration data which holds informal ion of what kind of
components that is mounted on the rack, is stored in a volatile RAM thus making
PS redundancy important via the batteries.
The CPU module also holds a DP interface and a combined DP/MPI in-
terface. The MPI can be used to programmer the CPU modules flash card via an
expansion card in a PC. Usually, though, the memory card is programmed
through the CP modules Ethernet connection (that is via a network) [4].
and faults. For most effective use, these tools need trained and experienced
personnel able to apply the appropriate tests, at the right location and to
successfully understand and interpret the results presented, so allowing rapid and
accurate identification of any errors, and their correction.
PROJECT BACKGROUND
There is zero local support on the robot system. We are the only one
company in Malaysia is using this system. If there is a problem, we need to get
28
supports from oversea to solve the problem. Even, in oversea there are only few
people left to support the system because the system is old and no more support
available for the system. This is generating high cost and long time to repair the
system.
The field devices are located far from the CPU and input output module.
This module is connected to field devices using hundreds of cables. It make
difficult to troubleshoot and locate the fault.
29
Currently robot will back to home position every time it wants to execute
one task. This generates unnecessary movement in the robot and slows down the
process.
Robot will do unnecessary tray scanning and this process is slow down
the entire robot process. Robot will move down to the last tray to detect the
present of tray. Robot also not memorizes last tray location in case of power
failure.
Robot doesn’t have control of cage’s gates. Anyone can enter the cage
anytime. This will make the robot immediately stop in the middle of process and
this wills resulting programs conflict and sometimes need to reset the robots and
it take long time. This is also dangerous due to that some time while robot
picking tray and there is possibility the tray can drop and will hit person who
enter the cage.
30
In current robot operation, there is no option to load and unload roller tray
manually. This means that if one of the system breakdowns, entire robot system
will unable to operate. This is not efficient and not productive.
Robot doesn’t have safety parking position. If robot has this position,
people can easily work inside the cage without worried about any robot
movement not only electrically but some times due to gravitational forces
(example – tray that picked by robot fall down due to gravitational forces
because of robot not stop in safe position)
METHODOLOGY
4.1 Introduction
There is 4 major software parts that need to program in order to run the robot.
First is writing plc program. Here I choose using Siemens plc, so I’m using Step
7 V5.4 editor to write the plc program. I had used 3 languages to write program
which is Ladder Diagram (LAD), Statement list (STL) and Graph 7.
Second thing is, I write program for positioning servo drive. I’m using
Lenze servo drive and I use Global Drive Control V4.10 to configure and write
control program.
Third part is I write HMI program using WinCC Flexible 2008.I’m using
Siemens touch screen as my HMI unit. Last program that I had write is Profibus
32
communication protocol. I’m using Step 7 and Global Drive Control to execute
this job.
The tool Hardware Configuration is used for configuring and parameter the
hardware used for an automation project. The following functions are available:
• The configuration of the distributed I/Os is done in the same way as the
configuration of the non-distributed I/Os; channel-granular I/O modules are
also supported.
• Module parameter assignment. The user can specify all the adjustable
parameters of the modules in input screen forms. Adjustments via DIP
switches become unnecessary. Parameterization of hardware modules occurs
33
As shown in Figure 4.1 CPU is located at main rack at panel (0) UR. In this
rack, CPU 317-2DP is attached with 1 unit 32 bits digital inputs module and 2 units
32 bits of digital output module. This rack also contain FM 353 stepper control
module that used to control stepper motor for loading station.
Three units of Lenze servo drive 9300 series are connected via Profibus DP
network. Lenze drive is configured with node 10 (X-Axis drive), node 11 (Y-Axis
drive) and node 12 (Z-Axis drive).Meanwhile remote station interface module
(IM153-1) is connected via Profibus at node 3 and node 4.Each remote station is
contains of 2 units of 32 bits input module and 3 units 32 bits of output module.
For connecting between Siemens HMI touch panel MP277 10” and Siemens
S7 PLC, I need to configure connection using NetPro Configuration tools .Through
this software, I had interconnect between HMI and PLC. Figure 4.2 show the NetPro
configuration that used for this project. NetPro is also used to configure Time-driven
35
Siemens PLC offer more than 5 type of programming language. For this
project I had choose 3 types of PLC programming language. The languages that I
had used are S7-Graph, Ladder Diagram (LAD) and Instruction List (STL).The
reason I had used four type of language is because, every of this language had its
own advantages and this give me opportunity to speed up my time because I can use
different language for different application.
36
For sequential control, I’m using S7-Graph meanwhile for logic operation
I’m using LAD language. For statistical process or complex calculation, I’m using
STL.I will describe briefly about this method of programming at below.
The process is here split into single steps to provide a clear overview of the
functional scope. The graphical display of the sequencer can be documented with
pictures and text. Actions to be executed are determined in these steps. Transitions
control the transition between steps (conditions for switching to the next step).
Figure 4.3 show example of S7-Graph program that I had used for creating
sequential flow for this project.
37
S7 Graph as of V5.1 complies with the PLC open Basis Level for sequential
control systems as stipulated in the DIN EN 61131-3 standard. A sequential control
controls the process in a preset order that depends on certain conditions. The
complexity of the sequential control depends on the automation task. Actions can be
defined for the steps, and their execution controlled. Transitions control the
conditions required for the next step. Interlock and monitoring conditions are
defined for each step.
Additional benefits over LAD, FBD, and STL is that LAD, FBD and STL
focus on logic control. S7-GRAPH places more importance on the process
sequence.S7-Graph have clear graphical representation of the process using
sequencers, providing easy maintenance and modification/ adaptation of the pro-
grams if required. The process error troubleshooting with integrated diagnostics
functions; expensive downtimes during production are minimized.
38
Figure 4.4 show entire functions that I had created for the robot using S7-
Graph.All the program is sequential program. This entire program is control
movement of the robot. The movement is done sequentially and only one sequence
is executed and one time. Using S7-Graph program, I can make sure no other
process is executed and make the control much reliable and safe. Programming
using S7-Graph also give better understanding for the maintenance personnel in
future , because the programming is done in graphical method and easily
understandable.
39
By executing the loop fast enough, typically many times per second, the
effect of simultaneous and immediate execution is relatively achieved to within the
tolerance of the time required to execute every rung in the loop or the scan time. It is
somewhat similar to other rule-based languages, like spreadsheets or SQL. However,
proper use of programmable controllers requires understanding the limitations of the
execution order of rungs.
40
Figure 4.5 show the ladder diagram editor in for Siemens plc. I write the
programs which need to execute logic operation using ladder diagram. Figure 4.6
show the program that I developed using ladder diagram for this entire project.
41
The HMI system represents the interface between man (operator) and process
(machine/plant). The PLC is the actual unit which controls the process. Hence, there
is an interface between the operator and WinCC flexible (at the HMI device) and an
interface between WinCC flexible and the PLC. An HMI system assumes the
following tasks:
• Operator control of the process. The operator can control the process by
means of the GUI. For example, the operator can preset reference values for
the controls or start a motor.
• Archiving process values and alarms. The HMI system can log alarms and
process values. This feature allows you to log process sequences and to
retrieve previous production data.
44
• Process values and alarms logging. The HMI system can output alarms and
process value reports. This allows you to print out production data at the end
of a shift, for example.
• Process and machine parameter management. The HMI system can store the
parameters of processes and machines in recipes. For example, you can
download these parameters in one pass from the HMI device to the PLC to
change over the product version for production.
For this project I’m using Siemens MP 277 10” Touch panel that need to
programmed using WinCC flexible 2008.Figure 4.8 show WinCC Flexible 2008
editor software.
• Quick and easy commissioning of the drive by means of the short setup
function
• Easy drive connection via RS232/485, optical fibers or the system bus
The short setup function allows the whole drive to be commissioned quickly
and easily, by means of self-explanatory dialogues. A menu associated with the
inverter, in which all the operating parameters necessary for the drive train are
entered, appears automatically. An extensive inverter-specific help function
containing more detailed descriptions of the individual parameters can be called up
at any time.
46
Figure 4.9 show the Global Drive Control Software which used to write
programs and configuration to Lenze drives.
5.1 Introduction
Another subroutine that used for auto cycle control is, FC3 (Auto Cycle
Call).This subroutine is used to call whatever function that used in the auto
cycle.FC3 will be act as call manage function and it will determine which
subroutine need to be called whenever request by FB60.
When the auto cycle function is started, the first step is that it will check
for status mode. Machine should be in auto cycle mode, otherwise the sequence
will not continue. After checking mode status, the machine will check for
machine ready condition.This will call subroutine FC90 ( Safety and Error
Handling Function) , FC10 (Emergency and Safety Door Handling Function) and
FC15 (Drive Handling Function).When this subroutine is called, it will check all
safety aspect , error status and machine ready aspects before allowed user to
continue to run auto cycle. If there is any error or machine in not ready condition,
the system will prompt error message and suggest solution for the problem to
operator. If there is no error and machine in ready condition, the robot then will
50
update tray value and display it at screen. Figure 5.3 show the tray value that
updated by system and show it at touch screen.
After the tray update process is completed, the system will wait start
command from the operator. Operators need to press start auto cycle button at
touch screen and then the auto cycle will started. If the users don’t start the
system more than 10minutes, the system automatically will disable the auto
mode status and will enter the manual mode. This is safety futures for the robot.
The user need to select the auto mode again and then start the auto cycle if they
want to run auto cycle.
After operator press the start button at screen, the system will check if
there is any request in queue. The request will be highlighted at screen as shown
in Figure 5.6.
52
From Figure 5.6 we can see that, 3 request is requested at same time. The
requester are Station 1 , Station 5 and Station 6.When there is more than one
request at the time , the system will execute the station that have higher priority.
The higher priority requester is sort descend as seen at Figure 5.6.In this case the
system will execute FB3 followed by FB6 and last sequence will be FB1.
FB9 , FB3 , FB17 , FB16 , Fb2 , FB15 , FB6 , FB8 , FB4 , FB1 , FB5 and
FB7 is subroutine that control of the movement for robot. For example FB16 is
responsible for pick tray from Station 7 and place it at Station 4.The requester for
this sequence is Station 4.Station 4 will request for tray when the tray is empty
because the tray is loaded into the furnace.
From Figure 5.7, we can see that the system is executing FB3 and there
are still other request from Station 5 and Station 6 and the current step is step
number 10.Figure 5.8 show the PLC program that associate with FB3 and step 10.
If the user press stop cycle button, the system will complete the current
executing cycle and then will stop the system.
54
FC10 is mainly to check emergency stop button and safety door. For this
system, it contains more than 6 emergency button and 4 safety door. All this
units is monitored using this subroutine. Whenever door is opened or emergency
button is pressed, system will immediately stopped and auto cycle will reset
immediately. The system also will indicate to user, which emergency button or
which door is opened as shown in Figure 5.10.
55
Figure 5.10 : Error Message For Emergency Button And Safety Door
Meanwhile, FC15 is used to check the drive status and error at drives.
This function is also will monitor of over travel status of the drives. After checks
emergency, safety door and drive status, system will check for main air pressure.
This will make sure that pressure always need at 6 bars otherwise the gripper at
robots cannot operate. Figure 5.12 show the ladder diagram program for
monitoring and stop the robot when air pressure is fail.
After that, machine will check for any error conditions for robot, if the
robot is free from error conditions, finally the system will check for auto manual
selector switch. If the selector switch is in auto selection, robot will give access
to operator to start the robot. Machine ready status is displayed at touch screen as
shown in Figure 5.13.
58
From Figure 5.13 we can see that, only safety door and axis over travel is
in error free condition for the system meanwhile other condition is still not ready.
Operator need to rectify other problem that shown at the screen in order to start
the system. Operator always can check in diagnostic page to find solution for the
problems that displayed at screen.
Decision making is one of the important subroutine that used for the auto
cycle. This is controlled by FC60.The function is written in ladder language.
Figure 5.14 show the flow chart of the function. This function will determine the
request and determine which task need to execute depends on the priority.
As seen from the flow chart, the higher priority function is FB9.Which is
pick tray from Station 6 and place it at Station 1.Meanwhile the lowest priority is
FB7 which is pick tray from Station 53-55 and place it at Station 5.The priority is
depends on the task demand. Priority can be changed in future and user can
easily change the priority for the task at touch screen.
59
Not In
Start Auto Cycle
End
Auto Cycle
No Request
Check For
The
Request
Have Request
FB 9 FB 3 FB 17 FB 16 FB 2
No No No No
Requested Requested Requested Requested Requested
Jump To Start Jump To Start Jump To Start Jump To Start Jump To Start
No
FB 15 FB 6 FB 8 FB 4 FB 1
No No No No
Requested Requested Requested Requested Requested
Jump To Start Jump To Start Jump To Start Jump To Start Jump To Start
No
FB 5 FB 7
No No Jump To Start
Requested Requested
Yes Yes
Execute Execute
FB 5 FB 7
Completed Completed
Table 5.1 show the function with their respective request trigger.The table
also shows the 3 subroutines for each function which is needed in order to
complete the task.
60
Table 5.1 : Function List For The Robot Auto Cycle Sequence
61
After that, drive will ready and waiting for coordinate from any function
that require drives movement. The entire coordinate will pass through FC15 in
order to make sure no conflict in coordinate to prevent unnecessary movement or
mistake.
62
After receive the coordinate, drive will move to the coordinate and when
reach the position, drive will feedback reach position status through FC15.Drive
will stop accurately at desired position and then will ready to receive next
coordinate.
63
I had chosen FB3 as an example robot auto cycle execution. All other
function is made in the same ways, just the location will difference. In order to
execute FB3, which the task is to pick tray from Location 10 to 24 and place it at
Location 1, there must be no other function which had higher priority is
requested, in this case is FB9.
64
If this 3 conditions are fulfilled, the system will execute FB3.FB3 will
supported by 3 more subroutines which will handling logic for making decision
which location to pick (FC102) , update tray value after pick the tray depends on
the height (FC132) and last subroutine will check for empty or full of the
location 10 to 24 (FC170). Figure 5.19 shows the flow chart to execute FB3.
FB3 will wait for the subroutine start command from FB60 which
discussed earlier.FB60 will check the queue and priority and will give start
command for FB3. After receive start command from the FB60, FB3 will call
FC170 to check whether tray still available at location 10 to 24.If no tray
available, system will back to idling stage and will pass control to FB60 to
execute other function.
If tray is available at location 10-24, FB3 will call FC102 to check which
location the robot should pick the tray. The priority for pick tray always will be
65
After reach desired position, FC15 will feedback to drive and then FB3
will again communicate to FC15 to move Z-axis to desired height to pick tray
depending on tray height at the location. After reach the Z position , FC15 will
feedback to FB3 and then FB3 will grip the tray and then call FC132 to record
current value of tray after it finished pick the tray.FC132 will update the tray
value depending on encoder value which is linear to tray height value.
66
After the tray is picked up, the FB3 will call again FC15 to move drive to
Location 1 for place the tray. The same process repeated again until it finished.
After the process is finished, FB3 will be enter idling mode and give back control
to FB60 to decide which function should be executed next.
CHAPTER 6
HMI IMPLEMENTATION
6.1 Introduction
I had used WinCC Flexible 2008 software to design and program HMI
function for entire robot. WinCC Flexible 2008 software is can be used to design
various types of HMI units even from different brands.
Main screen is the screen which is loaded when startup the system. Main
screen is just simple screen showing analog clock and display machine name.
After 20 seconds the screen is loaded, it will automatically change to Auto Cycle
Screen. Figure 6.1 show Main Screen for the gantry robot.
Auto cycle screen is the main screen to control auto function for the
gantry robot. The screen is designed in such way so that , all the information
regarding robot auto cycles is displayed here and whatever settings that need to
done for auto cycle also done in this page. Figure 6.1 show the Auto Cycle
Screen.
Auto Cycle Screen contain a lot of information that usefull for operators
and maintanance personel in order to run or troubleshoot the gantry robot.Figure
6.3 shows the actual speed and actual position value and actual speed value that
taken directly from 3 axis drives.This information is usefull to user when they
70
doing teaching function to the robot or when they want calibrate encoders in case
of encoder giving fault values.
Figure 6.4 shows the value of tray at location. This screen also will
update to user regarding the status of loading and unloading station. This
information very useful to user, because they can see entire locations status in
one place. Sometimes , operator will manually load the tray inside the robot’s
area, in this case operator can easily change the value of tray at screen by
pressing at which location they had load the tray and then key in new value for
quantity of trays.
At this screen also, the limit exceeded information will displayed in red
color. For an example, from Figure 6.4, we can see that Location 10 is in red
color because the limit for Location 10 is only 12 piece trays. The actual value at
Location 10 is 13 pieces of tray, this is exceeding allowed values. With this
information displayed, operator can easily remove unnecessary tray to avoid any
crashes.
This screen also designed in such way that, user only can access start
button after the machine give access. The start button will be not displayed until
everything is ready. This will prevent any accident by human mistake. Figure 6.5
shows start button area with displaying error that need to be rectified meanwhile
Figure 6.6 show start button appear when all error is cleared.
Figure 6.5 : Start Button Hidden Figure 6.6 : Start Button Displayed
From the Auto Cycle Screen , user also can know regarding the task in
quee, current executing functions and current step of the functions.This
information is shown in Figure 6.8.From this information users can clearly see
what are task the robot will executing , what are the task in queue and also will
clearly see what are the step number that system is executing.These informations
will be very helpful when troubleshoot the systems.
Other than displaying information and start stop auto cycle , the Auto
Cycle Screen also is provide parameter setting function to users.Figure 6.9 show
the place to change the drives speed.
73
For a Y-Axis and X-Axis speed control, user can set 4 different speed
values, which is when robot moving without trays, robot move with empty tray,
and robot move with loaded tray and lastly robot move with holding big tray.
For Z-Axis user only can set single speed for entire operations. Whenever user
enters invalid value, system will automatically load default value, this will
prevent any unnecessary conflict at PLC or drives.
User also can set maximum tray value for each location at Auto Cycle
Screen. Figure 6.10 show, maximum tray value set area. This will helpful to user
to monitor maximum value of tray at each location and easily can change the
value if there is any needs.
74
Semi Auto Cycle Screen is used in case of there is any necessary to move
the robot to any locations. Figure 6.11 show Semi Auto Cycle Screen.
For semi auto function there is two main functions. First function is to
move axis independently to desired location. This can be by entering desired
location value at field as shown in Figure 6.12.After enter the desired value , user
need press “Start X & Y Semiauto” button. The robot will move to the desired
location.
75
Another function at Semi Auto Cycle screen is that, user can run partial
sequence. This is helpful when operators wan to execute certain task manually.
For example, if the user wants to clear all trays at location 50 to 53, user can
select the menu as shown in Figure 6.13.After selecting this function, user need
to press “Activate Part Program” button. The system will executing the function
till complete and then will reset the part program. If user wants to execute the
function again, user needs to run back the programs.
This screen is designed to show error message and suggestion to user how
to solve problems. In this screen also user can acknowledge or reset the error.
Figure 6.15 show the System Diagnostic Screen.
DRIVE IMPLEMENTATION
7.1 Introduction
For this project I’m using Lenze 9300 series positioning servo drives. The
reason I’m using positioning servo drives for this project is because, it can
memorize the location and handle the calculations for movement by itself
without need assist from PLC. This will reduce the load to PLC and PLC’s
resources can be utilized to other area such as controlling the sequences. This
drives is configured and programmed via Global Drive Control Software.
For an example , from Figure 7.2 we can see that actual value for
Location 1 is -4.3200 units , when I want to move robot to Location 1, PLC will
only tell drive move to Location 1 without need to tell actual position value and
drive will calculate current position value and then it will move to position -
4.3200 by itself.
For this project I had written certain logic condition at the drive itself.
The reason I write the logic inside the drive itself rather than in PLC is because,
some of the events need quick response time from drives.
For an example, if the robot is hit any object, the current of the drives will
peak suddenly, in this case I will immediately stop the drives without waiting
command from PLC. The same case applied when over travel I occurred. Drive
will stop immediately in case of over travel.
8.1 Introduction
The entire program for the robot is huge program. It take me almost two
month to complete entire program. Before writing actual program for robot, I had
written a lot of sample and test program. This program is needed to test small
portion of the robot function. I need to develop the system piece by piece and
make sure there is no error inside the program. In this development stage also I
need to develop safety program simultaneously to prevent any accident or
mishandling by human or machine itself. Figure 8.2 and Figure 8.3 show some
the screen that I used when developing robot.
86
I had written some special program that could record down some valuable
data that can be used for debugging process. This is program will monitor entire
sequence and immediately will record down if the drives or PLC stop in
abnormal way. Figure 8.4 show some of the code from FC250 to recording error.
I written error recording program using statement list language due to I need fast
processing program and complex algorithm is involved in this program.
While developing Nilai Gantry robot system, I had come with solution for
all the problems that faced by ABB Gantry Robot previously. I had combined all
the process in single PLC which means that every process is interconnected
inside the program itself, no more messy communication wires & protocols.
For the new control system I had choose Siemens s7-300 317-2dp PLC to
execute the whole control system task. This single CPU will handle work that
done by 5 CPU in previous gantry root control system. This CPU also will act as
NC control for the servo drive.
The reason I Choose Siemens 317- 2Dp Is because this CPU have large
work memory (512 Kbytes) and the load memory of the CPU can be extended
until 2 Megabyte. This CPU also capable of processing 0.05ms/1000 instructions
and come with MPI and DP connector (DP master or DP slave).It Also can be
multi-tier configuration of up to 32 modules.
89
This CPU can be used in multi master system and capable of send and
receive capability for direct data exchange. Another reason why I choose
Siemens PLC is because, I had been trained in this PLC and I’m also certified as
Siemens PLC Engineer in Germany. I have extensive knowledge in Siemens
PLC, so that it can help me to complete the project.
For the drive, I had chose Lenze 9300 Positioning Servo Drive. This drive
is able to communicate with PLC using Profibus Communication. This allowed
me to reduce bulk of wires and increase data exchange between PLC and drives.
This drive also can be pre-programmed, that mean I don’t need to memorize
exact location in PLC, the drive will take care the positioning.
For the Human Machine Interface (HMI), I had choose Siemens MP 277
10” Touch Screen. This HMI unit is capable of data logging, recipes
management, alarm management and communicate with PLC using Profibus -
2DP Protocol.
90
I had studied & identified the best way to write the program so that the
machine able to self diagnose any fault and problem and the machine itself will
locate the fault and suggesting the solution for the problem. The machine also
will completely show what is the current status of the robot‘s system. The plc &
drive can communicate with external pc using USB-serial cable connection and
the settings & program can easily backup and downloaded into drive or plc in
case of failure or when changing new drive or plc. This downloading process
took only few minutes. After downloading new program, robot directly can
continue the process without need to reset any parameter.
92
The robot will have single button to execute the whole robot operation.
The robot will do self checking for the position & any interruption and suggest to
operator for the solution and only allow the user to run the robot after all the
errors or faults have been rectified. User also has option to run robot without
running loading or unloading process. This will helpful when we have any
problem in loading or unloading area, we can manually load the tray and robot
able to complete the task. Homing process is also made easy. Operator only need
to press one button, the robot will do the rest.
I had to program the robot in such way that the movement will be
optimized and this will improve the process and help to reduce breakdown of the
devices (motor, gear & pulley) due to frequent movement. The algorithm that we
implement is, the robot will decide the priority of the job and will execute the job
depending on the current robot position.
If the robot is at loading area and there is two request coming in , first
from unloading area and second request is from the Ipsen big tray loading area.
The robot wills analysis the priority of the task, in this case the tasks have the
same priority and then the robot will analyze the current location and will
execute the job which is near to the current location.
93
In this case it will execute the Ipsen big tray loading process because the
location of big tray Ipsen is near to loading area compare to unloading area and
then only will execute unloading process.
After complete the task at unloading process, the robot will idle at that
position without returning to home position. Robot will not return to home
position. From the example above, the movement of robot has been minimized
and this definitely will increase robot’s efficiency.
I had implemented better safety gate control algorithm. User need to get
permission from the robot before enter the cage. Robot will complete current task
and then it will go to the safety position and will lower down the arm and then it
will unlock the cylinders and after that only it will unlock the safety gate and
allow people to enter the cage. This will make sure that people that going into the
cage will safe.
This will help people to do troubleshoot and the same time will not stop
the operation. This is also ensuring the safety of worker because robot is moving
in minimum speed.
Robot tray clamping unit will equipped with IFM optical sensor. This is
to scan the existing of the tray from the top without need to go down and detect
the present of tray. This process is only executed when needed or after manually
remove or adding tray. Otherwise robot will memorize the amount of tray and
will always update it in the memory. User also can alter the value of tray at touch
panel and the robot always update the value at the touch panel.
95
Robot will have 4 different speed operating mode. This is to improve the
process cycle time and also to ensure the safety. All the speed’s value is
predefined but user is able to change the set point and limit in the touch panel.
But this option is only allowed to be executed by the authorized person and this
operation needs to enter supervisor password in the touch panel.
I am using 10inch touch screen for the entire robot system. The touch
screen will allowed user to interact with the system easily. Any information
regarding the system can be obtained from the screen.
Every alarm message together with the suggestion to solve the problem
will be shown in the touch screen. User also can monitor inputs and outputs of
the system in the screen.
Selection for settings and to adjust any timer or speed value can easily
done through touch panel. The system is also able to run the robot in case of
touch screen is fail. The systems also have factory set value stored inside the
plc’s memory. User can set back all the data in one touch.
Every data will be stored inside the PLC itself, and the system is not
depend on the touch screen to execute the task. In the case of touch screen fail,
robot still can run without touch screen.
96
The queue of the upcoming task that will be executed by the robot also
will be updated in the screen, this will help operator to diagnose and troubleshoot
in case of the task is not executed.
The touch screen also will guide through the user in case of breakdown so,
the small stop can be avoided and production technician able to solve simple
issue without involving maintenance technicians. This will reduce stop time and
increase productivity.
CHAPTER 9
9.1 Conclusion
For this project I had achieved the objectives of the projects. The gantry robot
is currently under operations and running without any problems since July
2009.Controling gantry robot using PLC is proven to be one of the best solutions
because the system can work perfectly as it controlled by CNC and thus the
development cost is much cheaper.
The projects completed in time and had become pilot project for SKF
worldwide. These projects also become one of the most successful projects in
SKF worldwide for year 2009.SKF Nilai had requested from other sister
company from worldwide to upgrade their gantry system using the same concept
that developed in SKF Nilai.
98
9.2 Recommendation
REFERENCES