You are on page 1of 5

Nonconventional Technologies Review

Romania, June, 2012

2012 Romanian Association of Nonconventional Technologies

COMPARISON BETWEEN TWO METHODS OF ROBOT CONTROL IN THE


PRODUCTION OF PRISMATIC PARTS
1

Csokmai Lehel Szabolcs1


University of Oradea, lcsokmai@uoradea.ro

ABSTRACT: In this paper two robot programming methods will be compared. The two methods are the PC SDK which uses ABB
.NET libraries to communicate with the IRC5 robot controller, the second methods will use the PC Interface option of the IRC5
robot controller.
KEY WORDS: ABB, IRC5, IRB 1600, C#, RAPID, LAN, socket, network, internet, communication.

1. INTRODUCTION
The system contains two IRB 1600 robots and one IRC5
controller from ABB.
The IRC5 is ABBs fifth generation robot controller. Its motion
control technology, TrueMove & QuickMove, is key to the
robots performance in terms of accuracy, speed, cycle-time,
programmability and synchronization with external devices.

RobotStudio, is a powerful PC tool for working with


IRC5 data on-line as well as off-line. In off-line mode,
RobotStudio provides a perfect digital copy of the
robot system together with strong programming and
simulation features.

Figure 2. ABB IRB 1600 robot


The IRB 1600 key features are:

Figure 1. ABB IRC5 robot controller


The IRC5 key features are:
 Safety, operator safety is a central quality of the IRC5,
fulfilling all relevant regulations with good measure,
as certified by third party inspections. Electronic
position switches and SafeMove represent a new
generation of safety, enabling more flexible cell safety
concepts, e.g. involving collaboration between robot
and operator;
 RAPID programming language provides the perfect
combination of simplicity, flexibility and power. It is
a truly unlimited language with support for structured
programs, shop floor language and advanced features.
It also incorporates powerful support for many
process applications;
 Communication, the IRC5 supports the state-of-the-art
field busses for I/O and is a well-behaved node in any
plant network. Sensor interfaces, remote disk access
and socket messaging are examples of the many
powerful networking features;







Reliable - high production up time, low maintenance


requirements, and short repair times
Fast - short cycle times, faster than any other robot in
its class.
Accurate - consistent parts quality, outstanding
position repeatability - 0.05mm.
Robust - protected for harsh production environment,
IP 67 classified
Versatile - flexible integration and production,
mounting options - wall, floor, inverted or tilted

In this paper two robot programming methods will be


compared. The two methods are the PC SDK which uses ABB
.NET libraries to communicate with the IRC5 robot controller,
the second methos will use the PC Interface option of the IRC5
robot controller.

27

2. PC SDK

The PC SDK offer controller functionality through the public


application interface called Controller API. The interface can
be seen as a specification of the controller services available.

ABB's PC Software Development Kit (PC SDK) is a software


tool, which enables programmers to develop customized
operator interfaces for the IRC5 robot controller.

The PC SDK class libraries are organized in the following


domains:

The application is divided in two parts, one is written in the C#


programming language using the .NET libraries and the second
part is a RAPID program which is running on the IRC5 robot
controller.













The remote client written in C# do not have all the privileges of


a local client. For example, both PC and RAPID applications
can reset the program pointer and start the execution, but for a
PC SDK application to do this there are certain restrictions.
Mastership of the RAPID domain must be requested explicitly
by the PC application and the IRC5 controller has to be in
automatic operating mode.
An advantage of a remote client, on the other hand, is the
possibility to monitor and access several robot controllers from
one location. As for large applications the PC platform is also
less limited than the IRC5 robot controller as regards memory
resources and process power.

Controllers
ConfigurationDomain
Discovery
EventLogDomain
FileSystemDomain
Hosting
IOSystemDomain
Messaging
MotionDomain
RapidDomain
UserAuthorizationManagement

The classes used to access robot controller functionality


together make up theController API (CAPI). The following
illustration shows a part of the CAPI object model:

A minimum response time for a real controller should be


expected to be in the order of 10-100 milliseconds, meaning
that hard real time demands cannot be met on any platform.

Figure 3. PC application written in C#


The following illustration shows the Software archtitecture of
PC SDK. It shows the PC platform. Two PC SDK applications
developed on top of the PC SDK. The PC SDK CAPI is the
public API offering controller functionality. A PC SDK
application can control many robot controllers on the network.
All communication with these is done via the internal Robot
Communication Runtime.

Figure 5. Controller API (CAPI)


For the comparison we made a virtual controller in the
RobotStudio application.

Figure 4. PC SDK architecture


Figure 6. RobotStudio application

28

SocketSend socket1 \Str:="Hello server";


SocketReceive socket1 \Str:=received_string;
TPWrite "Server wrote - " + received_string;
received_string := "";
! Continue sending and receiving
...
! Shutdown the connection
SocketSend socket1 \Str:="Shutdown connection";
SocketReceive socket1 \Str:=received_string;
TPWrite "Server wrote - " + received_string;
SocketClose socket1;

The following application has been made in RAPID


programming language for the IRC5 robot controller.
MODULE prog_01
VAR robtarget p50 := [ [740, -325, 504], [0.707170, 0,
0.707170, 0], [0, 0, 0, 0], [9E9, 9E9, 9E9, 9E9, 9E9, 9E9] ];
VAR bool flag_exec := FALSE;
VAR bool flag_stop := FALSE;
proc main_01()
WHILE flag_stop=FALSE DO
IF flag_exec=TRUE THEN
MoveJ p50, v200, fine, tPen;
flag_exec:=FALSE;
ENDIF
ENDWHILE
ENDPROC
ENDMODULE

ENDPROC

A default position is defined for the IRB 1600 robot where,


after the RAPID program starts the robot will move. After the
RAPID program is started the PC application is started, then
the application logs in the IRC5 robot controller.
After the login is accepted we can set the target coordiantes
then the variable flag_exec to TRUE. When the robot reaches
the coordinates set by the PC application the flag_exec will be
FALSE
This cycle can be executed for any number of coordinates,
when we want to stop the RAPID application the
flag_stopmust be TRUE;

3. PC INTERFACE
PC Interface is used for communication between the controller
and a PC connected to an Ethernet network, and is required for
some software products from ABB, such as WebWare and
some functionality in RobotStudio.
Figure 7. Illustration of socket communication

With PC Interface, data can be sent to a PC. This is, for


example, used for:
 backup
 production statistics logging
 operator information presented on a PC.
The major advantage of the PC Interface is, the connection can
be made from any platform. The client application can be made
in any programming language which can use the TCP/IP
protocols.

Code example for server (with IP address 192.168.0.2):


VAR socketdev temp_socket;
VAR socketdev client_socket;
VAR string received_string;
VAR bool keep_listening := TRUE;
PROC main()
SocketCreate temp_socket;
SocketBind temp_socket, "192.168.0.2", 1025;
SocketListen temp_socket;
WHILE keep_listening DO
SocketAccept temp_socket, client_socket;
SocketReceive client_socket \Str:=received_string;
TPWrite "Client wrote - " + received_string;
received_string := "";
SocketSend client_socket \Str:="Message acknowledged";
SocketReceive client_socket \Str:=received_string;
TPWrite "Client wrote - " + received_string;
SocketSend client_socket \Str:="Shutdown acknowledged";
SocketClose client_socket;
ENDWHILE
SocketClose temp_socket;
ENDPROC
The client-server application which connects to the IRC5
controller is made with the help of the RAD Studio IDE.

With the help of the PC Interface any RAPID program can


utilize the Socket Messaging. The purpose of Socket
Messaging is to allow a RAPID programmer to transmit
application data between computers, using the TCP/IP network
protocol.
A socket represents a general communication channel,
independent of the network protocol being used. Socket
communication is a standard that has its origin in Berkeley
Software Distribution Unix. Besides Unix, it is supported by,
for example, Microsoft Windows. With Socket Messaging, a
RAPID program on a robot controller can, for example,
communicate with a C/C++ program on another computer.
Code example for client, contacting server with IP address
192.168.0.2:
VAR socketdev socket1;
VAR string received_string;
PROC main()
SocketCreate socket1;
SocketConnect socket1, "192.168.0.2", 1025;

Code example for client-server PC application:


try
with tcp_client_01_ do

29

begin
if Connected then Disconnect;
Host := '192.168.125.1';
Port := 65502;
Connect;
IOHandler.WriteLn('R2_coord');
memo_01.Lines.Add( IOHandler.ReadLn() );
IOHandler.WriteLn('847.92,9.45,749.22');
memo_01.Lines.Add( IOHandler.ReadLn() );
IOHandler.WriteLn('0.701172,0.0135639,0.712714,0.014585')
;
memo_01.Lines.Add( IOHandler.ReadLn() );
IOHandler.WriteLn('0,-1,0,1');
memo_01.Lines.Add( IOHandler.ReadLn() );
memo_01.Lines.Add( IOHandler.ReadLn() );
Disconnect;
end;
except
on E : Exception do
begin
ShowMessage(E.Message);
end;
end;

case 2:
echo "Connection refused\n";
break;
case 1:
echo "Connection accepted\n";
$conn = @socket_accept($socket);
break;
case 0:
echo "Connection timed out\n";
break;
}
if ($conn !== false) {
}

4. CONCLUSIONS
We demonstrated above that the use of the PC Interface
functions to control the IRB 1600 robots, are more versatile
than using the PC SDK. The PC SDK`s most restrictive part is
the need to use the .NET libraries. The .NET libraries can be
used only on Windows platforms and with only few
programming languages while with PC Interface almost any
language can communicate with the robots.

The coordinates for the IRB 1600 robot has to be sent in three
parts because the IRC5 robot controller cannot accept strings
with more than 60 characters.

5. ACKNOWLEDGEMENTS
This work was partially supported by the strategic grant
POSDRU/107/1.5/S/80272, inside POSDRU Romania 20072013 co-financed by the European Social Fund - Investing in
People.

6. REFERENCES
1.
2.
3.
4.
5.
Figure 8. PC application for socket messaging

6.

An example for a socket server written in the LabVIEW


programming environment.

7.
8.
9.
10.
11.

Figure 9. Simple Messaging Reference Library (STM) in


LabVIEW

12.

Code example for server written in PHP:

13.

$socket =
socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
socket_bind($socket,$address,$port);
socket_listen($socket);
echo "Waiting for a connection\n";
$conn = false;
switch(@socket_select($r = array($socket), $w =
array($socket), $e = array($socket), 60)) {

14.
15.

30

Cory C. LabVIEW Digital Signal Processing: and Digital


Communications, ISBN 0071444920, (2005).
Pedro P.C., Fernando D.R, Intelligent Control Systems
with LabVIEW, ISBN: 1848826834, (2009).
Sumathi, S., Surekha, P. LabVIEW based Advanced
Instrumentation Systems, ISBN 3540485007.
Ronald W.L, LabVIEW for Engineers, ISBN 0136094295.
Forester W.I., DSP for MATLAB and LabVIEW IV: LMS
Adaptive Filtering (Synthesis Lectures on Signal
Processing), ISBN 1598298992.
Folea S., LabVIEW - Practical Applications and Solutions,
ISBN: 9789533076508, (2011).
Riccardo De Asmundis, Labview - Modeling,
Programming and Simulations, ISBN: 9789533075211,
(2011).
Christopher, G.R., Image Acquisition and Processing with
LabVIEW, ISBN: 0849314801, (2003).
Nasser, K. Digital Signal Processing System - Level
Design Using LabVIEW, ISBN 075067914X, (2005).
Thomas, K. Image Processing with LabVIEW and IMAQ
Vision, ISBN: 0130474150, (2003)
Peter, A.B. The LabVIEW Style Book, ISBN: 0131458353,
(2003)
Naramore, E., Glass, M.K., Gerner, J., Yann Le
Scouarnec, Stolz, J., Beginning PHP5, Apache, and
MySQL Web Development, ISBN 0764579665, (2005).
Lengstorf, J. Pro PHP and jQuery, ISBN: 1430228474,
(2010).
Larry E. Ullman, PHP 6 and MySQL 5 for Dynamic Web
Sites: Visual QuickPro Guide, ISBN: 032152599X,
(2007).
Nixon, R. Learning PHP, MySQL, & JavaScript: A StepBy-Step Guide to Creating Dynamic Websites, ISBN:
0596157134, (2009).

16. Brandon Savage, The PHP Playbook By Brandon Savage,


ISBN: 0981034543, (2011).
17. Julie C. Meloni, PHP 5 Fast & Easy Web Development,
ISBN: 1592004733, (2004).
18. W. Jason Gilmore, Beginning PHP and MySQL: From
Novice to Professional, ISBN: 1590598628, (2008).
19. Markus Feilner, Openvpn: Building And Integrating
Virtual Private Networks, ISBN: 190481185X, (2008).
20. Joseph Steinberg, SSL VPN : Understanding, evaluating
and planning secure, web-based remote access, ISBN:
1904811078, 2005.
21. H.K. Shivanand, M.M. Benal, V. Koti. Flexible
Manufacturing System. s.l. : New Age, ISBN 978-81-2242559-8, (2006).
22. en.wikipedia.org/wiki/Industrial_Ethernet. [Online]
23. en.wikipedia.org/wiki/DeviceNet. [Online]
24. en.wikipedia.org/wiki/CANopen. [Online]
25. Steve Mackay, Edwin Wright, Deon Reynders, John Park.
Practical Industrial Data Networks: Design, Installation
and Troubleshooting. s.l. : Elsevier, ISBN 075065807X,
(2004).
26. en.wikipedia.org/wiki/Modbus. [Online]
27. en.wikipedia.org/wiki/Field_bus. [Online]

28.
29.
30.
31.
32.
33.

34.
35.
36.
37.
38.

31

en.wikipedia.org/wiki/Profibus. [Online]
en.wikipedia.org/wiki/PROFINET. [Online]
www.profibus.org. [Online]
www.ob121.com. [Online]
Ganea, M. Maini unelte i sisteme flexibile, Editura
Universitatii din Oradea, ISBN: 978-606-10-0020-3,
(2010).
Ganea,
M. Masini unelte flexibile si echipamente
tehnologice pentru prelucrarea pieselor prismatice,
Editura Universitatii din Oradea, ISBN:978-973-759-884,
(2009).
Ganea, C. Particularitati tehnologice privind prelucrarea
pieselor, Universitatea Tehnica Cluj-Napoca : s.n., (1998).
Andrea, Matta, Design of Advanced Manufacturing
Systems, Torino: Springer, ISBN-10 1-4020-2930-6 200,
(2005).
Altintas, Y. Manufacturing Automation, s.l. : Cambridge
University Press, ISBM:0-521-65973-6, (2000).
Barabas T., Vesselenyi T. Maini unelte i aggregate,
Editura Universitatii din Oradea, (1997).
Abrudan, I. Sisteme flexibile de fabricatie. Concepte de
proiectare si management, Editura Dacia, (1996).

You might also like