1. 1
Ministry of Higher Education
and Scientific research
οͺοͺοͺοͺοͺοͺοͺ
University of Carthage
οͺοͺοͺοͺοͺοͺοͺ
National Institute of Applied
Sciences et de Technology
Required Internship Report Summer 2015
Field of study: Instrumentation and Industrial Maintenance
Level: 4th
Year
Subject:
Realization of software in LABVIEW to control the
filling level of a glass of water served by an industrial
robot
Realized by: Marwa HADDAD
Company/University:
Labor Robotik und Handhabungstechnik, Hochschule Merseburg, Germany
2015/2016
2. 2
I. Introduction
In March 2014, I participated in the competition of Tunirobots within the CIM Club. Weβve
made a small robot with different cards and I was the one who were trying to find the right
program for these cards. Since that period, I became passionate by robotic and programming and
I was always looking for an internship in this sector.
This report describes a LABVIEW program made for an industrial robot to control the filling
level of water served. You will find in it everything I did during this 2 months internship detailed;
the obstacles encountered and the solutions used. You will find at the end of the report a CD
containing this program and some videos of how it works.
The writing of this book gave me a great understanding of how LABVIEW is used to analyze,
order and command todayβs technology. The importance of researches concerning new
technologies is great in our modern world.
I would like to thank both of my promoters Prof. Dr.-Ing. Achim Merklinger and Dipl.-Ing
Michael Bluhm for giving me the opportunity to study at Hochschule Merseburg and for the
support during this project.
The international office of Hochschule Merseburg has been a great help during my stay. Their
support office for foreign internship students is very well organized and always gave me a
welcoming feeling.
Last I would like to thank all the Erasmus and IAESTE student of Merseburg and my
roommates to keep up the spirit and for all the good times we had together, and the friends I
have made here. They gave me a different look on how different cultures also have their
similarities.
3. 3
II. Description of the host Institution:
My internship was elabored at the Labor Robotic laboratory und Handhabungstechnik in
Hochschule Merseburg (HoMe) or University of Applied science Merseburg, Germany. The
University was founded on April 1st
1992. The campus site is in use since 1954 and was formally
known as the βCarl Schorlemmerβ technical institution.
Figure 1 : presentation of the host institute
The University of Applied science Merseburg lectures 2895 students (AY 2014-15) in 4
departments:
ο· Department of Computerscience andCommunicationsystems
ο· Department of Engineering and Natural sciences
ο· Department of Social work,media and culture
ο· Department of Businesssciences
The department of computer sciences and communication systems focuses on core competence
as a mix between electrical engineering, computer science, mathematics, and technical writing.
The department of engineering and natural science is known for its mathematical and natural
science courses. Creative, communicative skills and the knowledge of management are the
fundamentals for the department of social work, media and culture. The department of Business
science lecturers the managers and specialists of tomorrow.
Main
Buidling Library
HoMe
Logo
4. 4
The university offers 13 bachelors and 10 masters programs. 208 employees take care of the daily
routines of the school of which have 106 professors and faculty staff and 58 third-party funded
employees.
I worked within the department of computer sciences and communication systems. My Labor is
a Robotic Lab where students make workshops to be ready for the industrial experience.
As showen in the picture, my laboratory contains different robots.
III. Objectives and specifications of the internship
In the previous projects
ο· Computer gestewerter Ausgussvorgang
And
ο· Testhilfsmittel zur fehlersuche und Optimierung des Computergesteuerten
ausgussvorganges
Were realized that a glass was filled by an industrial robot. The filling level of the glass is watched
by continuously measuring the weight of the bottle. To realize this, a force-torque-sensor is
arranged between the arm and the gripper of the robot.
The sensor is connected to a computer (windows pc) using the serial interface (RS232). With the
help of a C# program the computer watches the weight of the bottle continuously.
If the pre-set filling level is achieved, the computer stops the filling process by sending a signal to
the robot controller.
Figure 2: Representation of the Labor
5. 5
The connection between the computer and robot is realized by using the printer interface on the
computer and digital input/output on the robot controller.
My task was to create a new program using LABVIEW that realizes the same function as the C#
program (set a filling level, watch the filling process, stop the filling process is the level is
achieved).
ο· Workflow:
1. Familiarize with the previous program with help of its documentations
2. Create the LABVIEW program
3. Testing the program and removal errors
4. Final PowerPoint presentation of the resolution.
IV. Training Schedule
Figure 3: Training Schedule
6. 6
V. Work done :
A. Problematic:
In the previous project done in this labor, they tried to fill a glass by an Industrial robot with C#
Program.. But this program was not working correctly and it couldnβt stop filling the glass when
the pre-set volume is achieved.
My task was to make the same program with LABVIEW and to resolve the problems occurred.
B. The hardware:
The System is composed of:
ο· An Asea IRB6/2 with a sensor in its arm
ο· An electrical cabinet
ο· A computer
ο· A bottle holder(which may include 3 bottle)
ο· A glass holder(which may include 9 glass)
a) The Asea Industrial Robot 6/2:
It consists of a cabinet with an integrated Power unit, a portable
programming unit and an electrically driven mechanical unit.
The handling capacity of the industrial robot is 6kg.
The IRB 6/2 owns five axes of motion.
The sensor used is situated between the arm and the clapet of the
robot and it calculates the different forces: Fx, Fy, Fz.
Figure 4: The hardware
Figure 5: Axes of the IR
7. 7
b) The computer:
The computer is used to control and display the measured values of the forces and moments of
the sensor. In addition, the program code of the robot program can be output to the au PC. The
sensor and the program code of the IR are communicated respectively via RS232 interfaces.
The communication between the robot and the PC is done via a parallel port (LPT1).
2-1. The parallel interface:
The parallel port is an input-output interface with 8-bit data bus for transmitting the information.
The data transmission is asynchronous, so at any time, and is not aligned with a clock signal. In
addition to the eight data outputs (data register), 8 data inputs (status register) are installed to
allow a response of the peripheral device to be controlled.
The interface consists of 25 pins in D-
SUB connectors, which are accessed
from 3 tabs. It can read signals that their
electric potential difference is 5VDC as
output. Whereas for inputs, if the
difference is from 0 to 0.4 V, it will be
interpreted as LOW and if it is from 2.4
to 5 V it will be interpreted as HIGH.
The data lines can be loaded with up
to 32 mA to earth.
Pins 18 to 25 are ground terminals (GND)
The I/O address range is from 0xEC00 to 0xEC07 (default: 0x0378- 0x037F). However, only the
first two registers (0xEC00 and 0xEC01) will be used.
The Data tab has the address 0xEC00, includes 8 bits and is used to binary output, these
individual pins can be directly switched on and off (5 or 0 V).
The binary input is realized via the status register. Only the pins S3 (15), S4 (13), S5 (12) and S6
(10) are used because the rest is not available as a Pin.
There are characterized 8 digital Outputs and 4 digital inputs provided.
To access to the parallel Port, we use the software-side functions situated in a Dynamic Link
Library (DLL). This dynamic Library is located in the "inpout32.dll" file and is used by Logix4
provided at leisure. With the function "Out32" and the indication of Register address, the pins of
Figure 6: Parallel port
8. 8
the Data Register on HIGH or LOW are switched. The function "Inp32" allows the reading of a
register address, in this case the Status register.
3- Connections
The aim of this connection is to establish a communication between the computer, and by that
we mean the program, and the robot controller. This robot controller provides free inputs and
outputs, as well as various interrupt inputs are available, which are based on 24 VDC level. The
PC provides a free parallel port available to the 5VDC outputs and inputssignals. To adjust this
altitude, a level converter is necessary. This fits from the PC to the robot controller 8 digital
inputs and 4 digital outputs of the robot controller to the 4 inputs of the PC to the 8 digital
outputs. Figure 4 shows the existing system with black arrows and frames.
Figure 7: connections between the IR and the PC
9. 9
A. The software:
The main program starts after checking the willingness of the robot (a digital output number 27
will be set HIGH to signal it), the existence of the bottle and glass respectively in their magazine.
When the digital input number 27 is set HIGH signaling the willingness of the PC, the bottle can
be removed from the magazine.
When the robot reaches the first position, the weighing process starts. The sensor will send the
forces values which will be evaluated in the computer.
Is there enough water in the bottle? If yes the program continues untill the tipping point will be
approached. Then we start filling in the glass. The filling process can be interrupted by the pc
program when the pre-set filling volume is achieved. If itβs the case, the bottle is turned off again
and the robot moves t the home position.
To summarize the steps of the program are:
ο· Check the existence of the bottle and the glass
ο· Remove the bottle
ο· Start weighing process
ο· Reach tipping point position
ο· Start filling
ο· Interrupt filling when the pre-set volume is reached
ο· Move to home position
10. 10
1- LABVIEW Program:
The program is composed
of 2 parts:
ο· A first part that calculates the initial volume of the bottle
ο· A second part that calculates the current volume of the bottle
the explanation will only include one part because both parts are have the same function.
The second part just repeats the function in real time till achieving the stop volume.
1-1. The serial port
First of all, we start by choosing the port where the sensor is connected. In this
case, itβs the serial port COM5. The parameters set for the sensor are:
- Baud rate= 9600
- Data bit= 8
- Parity= none
- Time out= 10second
- Stop bit = 1bit
Figure 8: The main program
Figure 9: serial port
11. 11
We also have to configure the density of the liquid inside the bottle, the weight of the bottle and
the volume that we want to fill in the glass.
1-1-1. weighing process:
This window is used to display the measured values of the forces and the moments by the sensor.
First, we have to send these commands to the sensor so we can read the forces and the moments
as shown in βbuffer de lecture9β;
- SU: Start continuous data output
- SA4: averaging over 4 measurements values
- TF1: select the tool coordinate system
- QS: start the constant data output
The data from the sensor are transmitted in ASCII format. The row is a record (consisting of 45
bytes) in the βbuffer de lecture9β appears.
The character string is divided into the individual components, inverted,
converted and displayed. First, the separation of the components takes place in
substrings based on the comma. Subsequently, the components of the "string"
format are converted in the Number Format "double". Now the translation is
performing in the corresponding SI units.
The values of the force components are multiplied by the factor 1/10 to obtain
values in unit N.
To have stable forces, we take an average of 10 values of Fx, Fy and Fz.
Then, these values are multiplied by the factor 1/100
Figure 10
Figure 11
12. 12
ο· The resulting force is given by the expression:
πΉπππ = β πΉπ₯
2 + πΉπ¦
2 + πΉπ§
2
The resulting force is calculated because the force components are all perpendicular to each
other.
If the display is completed, the "stop" button can be pressed or the window on [x] getting closed.
In both cases, the sensor is a carriage return command (/ r, ASCII13) sent to stop the data
output. Subsequently, the serial interface closed.
ο· The volume of the bottle is calculated by this expression:
ππππ‘π‘ππ =
πΉπππ β π ππππ‘π¦πππ‘π‘ππ β 9.81 β πΉππππππ‘
9.81 β π
After calculating the initial volume of the bottle, the second part of the program start running
when the robot reaches the tipping point position (which is the point when we will start to fill the
liquid in the glass)
Figure 12: conversion part of the program
13. 13
1-1-2. Filling process:
In this part of the program, we will calculate the current volume of the bottle in real time using
the same expression as given. We will stop filling when the current volume of the bottle become
lower than the stop volume.
ο· The stop volume is given by this expression :
ππ π‘ππ = ππππ‘π‘ππ β ππ‘π ππππ
The program work following this condition: if ππππππ‘πππ β πππ’πππππ‘ > ππ π‘ππ then the program
continue filling. If not the robot brings back the bottle to the magazine and moves to home
position.
1-2. The parallel port :
As said previously, to command the robot we use the parallel port as shown in the pictures.
To set the output, Iβm actually calling a function of the C# program which is
called out32.
β’ 888 is the conversion of the hexadecimal address 0x378 of
output
β’ 1 is the number of digital output that you want to set on Figure 13
14. 14
To read the input, Iβm calling another function which is called inp32
β’ 889 is the conversion of the hexadecimal adress 0x379 of Input
B. Obstacles occurred:
After finishing the programming, and testing it. We noticed that the resulting force πΉπππ changes
when we turn the position of the robot arm of 5N which is completely wrong because πΉπππ has to
be constant.
This variation of πΉπππ distort totally the volume of the bottle. As a consequence, all the results
obtained are false and the robot doesnβt stop filling the water in the glass.
ο We concludethen that the sensoris notcalibrated.
C. Solutions:
To calibrate the sensor we used different masses. The aim is to compare the correct forces
applicated with the forces read by the program.
πΉπππππππ‘ =
π β 9.81
1000
First, we try set constant X and Z axis and vary the mass on the Y axis. We got the following
table:
Tableau 1: Y Axis
Masses[g] π π πππππππ [N] π π ππππ [N] π π ππππ [N] π π ππππ [N] π πππ[N]
0 0 -23.71 4,18 -1,65 24,13212
200 1.962 -23.72 5,72 -1,68 24,4577
250 2.4525 -23.74 6,32 -1,65 24,6222
400 3.924 -23.78 7,63 -1,71 25,03257
500 4.905 -23.75 8,4 -1,76 25,25312
700 6.867 -23.7 10,19 -1,7 25,85374
800 7.848 -23.72 11,1 -1,71 26,24448
1000 9.81 -23.69 12,71 -1,7 26,9379
1200 11.772 -23.68 14,39 -1,67 27,75974
1400 13.734 -23.7 16,12 -1,71 28,71356
1500 14.715 -23.73 17,26 -1,75 29,39529
Figure 14
15. 15
Second, we fixed Y and Z axis and vary the mass on the X axis
Tableau 2: X Axis
Masses[g] π π πππππππ [N] π π ππππ [N] π π ππππ [N] π π ππππ [N] π πππ[N]
0 0 3,44 25,7 -1,99 26,00546
200 1,962 5,3 25,72 -2,02 26,33797
250 2,4525 5,82 25,69 -2,04 26,41988
400 3,924 7,18 25,67 -2,02 26,73166
500 4,905 8,21 25,72 -2,02 27,07403
700 6,867 10,12 25,68 -2,02 27,67593
800 7,848 11,03 25,65 -2,04 27,99545
1000 9,81 13,1 25,7 -2,02 28,91678
1200 11,772 14,78 25,69 -2,05 29,70904
1400 13,734 16,48 25,68 -2,07 30,58329
1500 14,715 17,99 25,69 -2,06 31,43024
Finally we draw the curves πΉπππππππ‘ in function with πΉππππ and we got these expressions:
Y=1.0273x-2 for X
Y=1.1519x-2.91 for Y
To have the correctπΉπππ then;
We have to multiply the πΉπ₯ ππππ by 1.0273 and to less 2.
We have to multiply the πΉπ¦ ππππby 1.1519 and to less 2.91.
VI. Consolidation of achievements
TABLE OF CONTENTS
INFORMATIQUE FOR INSTRUMENTATION
TECHNICAL CALIBRATION
SENSORS
PROJECT MANAGEMENT
COMMUNICATION
16. 16
VII. Conclusion
During this internship, we were able to create a LABVIEW program which commands an
industrial robot doing the same function as the C# program.
The mission was to set an exact pre-set volume of the liquid inside the bottle in the glass.
The problem occurred in the C# was actually the sensor which is not calibrated and was making
an error of 6N, almost 5000ml of volume.
Thanks to the LABVIEW program, we calibrated the sensor by adjusting the values. As a
consequence, the resulting force is almost constant now and is varying of 0.15 N that cause a
difference of 10 or 15ml less than the exact volume that we want to fill in the glass.
To make it exact, we just have to make the calibration of the sensor more precise.
οͺοͺοͺοͺοͺοͺοͺ
Knowing that during their practical hours, my mentor's students will use my program to control
that robot makes me feel happy and honored too⦠because my hours spent in research and
work have finally led to a very good result.
VIII. Bibliographies
β’ Computer gesteuerter ausguss vorgang
β’ Testhilfsmittelzurfehlersuche und Optimierung des Computergesteuert en
Ausguss vorganges mit ein em Industriel roboter