Code example for server written in PHP: ... Lengstorf, J. Pro PHP and jQuery,
ISBN: 1430228474, ... Brandon Savage, The PHP Playbook By Brandon Savage,
.
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,
[email protected]
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 ABB’s fifth generation robot controller. Its motion control technology, TrueMove & QuickMove, is key to the robot’s 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. Maşini 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. Maşini unelte şi aggregate, Editura Universitatii din Oradea, (1997). Abrudan, I. Sisteme flexibile de fabricatie. Concepte de proiectare si management, Editura Dacia, (1996).