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.
   132   133   134   135   136   137   138   139   140   141   142