Page 182 - Welding Robots Technology, System Issues, and Applications
P. 182

170 Welding Robots
                           2. Define the  type of  motion: the user  must specify  what type  of  motion to
                           perform to achieve the target point, i.e., linear motion or coordinated joint motion.
                           This is specified writing to the variable varmove (198 for joint coordinated motion
                           and any other value for linear motion). For example, the command

                               pcrob.WriteNum(“varmove”, 198, channel);

                           specifies joint  coordinated motion, using the  open RPC socket identified by the
                           parameter channel.

                           3. Command the Cartesian and rotational offsets: the user must write the offsets
                           to the correspondent variables. After that, when the user signals that the offsets are
                           available (writing a value different than zero to the variable move), the robot moves
                           to the position/orientation obtained by adding those offsets to the actual position,
                           and waits for another motion command. For example, the sequence of commands
                           necessary to move the robot 20 mm in the positive X direction and 10 mm in the
                           negative Z direction should be

                               pcrob.WriteNum(“x”, 20, channel);
                               pcrob.WriteNum(“y”, -10, channel);
                               pcrob.WriteNum(“move”, 1, channel);                          robot moves now!

                           where again channel identifies the open RPC socket.

                           4. Leave the service: to leave this service the user must write any value different
                           from 9100 to the variable decision1. For example, the following command writes
                           the value -1 to the numeric variable decision1 and makes the robot program to quit
                           the Move_CRobot service:

                               pcrob.WriteNum(“decision1”, -1, channel);

                           Finally, let’s consider the service  Welding (Figure 5.17) that corresponds to the
                           value  9401 of the variable  decision1. The simplified version of the code is
                           presented in Figure 5.18.

                           It is clear from the presented code (Figure 5.18) that the user should command the
                           Welding service to execute, after sending the matrices defining the welding
                           sequence. This service commands the  robot to  follow exactly the command
                           sequence, moving the robot and igniting or stopping the welding arc whenever in
                           the presence of a welding or approach/escape trajectory, respectively.

                           The presented example shows clearly that there are considerable gains in terms of
                           flexibility and agility when using distributed client-server software architecture to
                           assist industrial welding operations  [11]-[15],  namely taking advantage of the
                           powerful programming tools developed for personal computers. It also shows that
                           actual CAD packages can be used for robot programming tasks with great
                           advantages, which extend the interest of already largely utilized software tools.
   177   178   179   180   181   182   183   184   185   186   187