Page 137 - Welding Robots Technology, System Issues, and Applications
P. 137
124 Welding Robots
actual states. Since actual robot control systems are multitasking systems,
users must consider robot programs as tasks and deal with them as such.
2. IO read/write services: the remote client needs to monitor and change
the actual state of selected IO signals, in a way to safely control the
welding application: for example, signals controlling the GAS valve, the
WIRE speed, the welding CURRENT, etc., are IO signals generated by
the robot controller. Consequently, the possibility to read/write to any
digital and analog signal is needed.
3. Variable read/write services: if the remote client is necessary to
parameterize the welding operation, including the welding trajectory
(obtained for example from a CAD software package), to control the
welding tasks using commanding variables (see the previous section), to
monitor the welding operation, etc., then variable read/write services are
needed.
Building a TCP/IP server to implement these types of services is very simple. In
the following and with the objective of demonstrating how it could be done, a
simple TCP/IP server that explores the facilities available in the new ABB IRC5
robot controller will be designed and built. The choice for this robot controller is
based on the fact that it allows users to explore and program TCP/IP socket
connections since those are fully supported by the programming environment [43].
The server presented below was written in RAPID (ABB robot programming
language [43]), and the client example was coded using the Visual Basic compiler
of the Microsoft Visual Studio .NET 2003 developing suite [42]. In the following
the software will be designed and built step-by-step.
First step - define the messaging syntax to use: to develop the TCP/IP server to
run on the robot controller, a proper messaging syntax should be clearly defined.
For this simple example the following message structure will be used:
Command structure:
command parameter_1 parameter_2 … parameter_n
Answer structure:
error_code answer_1 answer_2 … answer_n
where “command” is a string that identifies the specific command, “parameter_1”
to “parameter_n” are optional parameters associated with the specific command,
“error_code” is a numeric value that specifies if the command was executed
correctly (zero returned) or with errors (negative value identifying the returned
error), and “answer_1” to “answer_n” are the results of the execution of the
command. The commands considered are summarized in Table 4.2.