!...! Parallel Processing

Processes input/output statements in parallel with motion.

Syntax
motion cmd !statements !

Parameters

motion cmd
Describe one of the following command that can be processed in parallel:
Arc, Arc3, Go, Jump, Jump3, Jump3CP, Move, BGo, BMove, TGo, TMove
!statements !
Describe any valid parallel processing I/O statement(s) which can be executed during motion. (See the table below.)

Description
Parallel processing commands are attached to motion commands to allow I/O statements to execute simultaneously with the beginning of motion travel. This means that I/O can execute while the arm is moving rather than always waiting for arm travel to stop and then executing I/O. There is even a facility to define when within the motion that the I/O should begin execution. (See the “Dn” parameter described in the table below.)

The table below shows all valid parallel processing statements. Each of these statements may be used as single statements or grouped together to allow multiple I/O statements to execute during one motion statement.

Dn

Used to specify %travel before the next parallel statement is executed and to get synchronized with a motion command. “n” is a percentage between 0 and 100 which represents the position within the motion where the parallel processing statements should begin. Statements which follow the Dn parameter will begin execution after n% of the motion travel has been completed.

When used with the Jump command, %travel does not include the vertical motion of Joint #3. To execute statements after the depart motion has completed, include D0 (zero) at the beginning of the statement.

When used with the Jump3 command, %travel does not include the depart and approach motions.

“Dn” may appear a maximum of 16 times in a parallel processing statement.

On / Off n Turn Output bit number “n” on or off.
MemOn / MemOff n Turns memory I/O bit number “n” on or off.

Out p,d

OpBCD p,q

OutW p,d

Outputs data “d” to output port “p”.

MemOut p, d

MemOutW p,d

Outputs data “d” to memory I/O port “p”.
Signal s Generates synchronizing signal.
WaitSig s Waits for signal “s” before processing next statement.
Wait t Delays for “t” seconds prior to execution of the next parallel processing statement.
Wait Sw(n) = j Delays execution of next parallel processing statement until the input bit “n” is equal to the condition defined by “j”. (On or Off)
Wait MemSw(n) = j Delays execution of the next parallel processing statement until the memory I/O bit “n” is equal to the condition defined by “j”. (On or Off)
Wait other conditions Wait other than the above two patterns are available. Refer to Wait Statement for details.
Print Prints data to the display device.
Print # Prints data to the specified communications port.
External functions Executes the external functions declared with Declare statement.

Hand_On n

Hand_Off n

Executes Hand_On/Hand_Off operation of hand number “n”.

Notes


  • When Motion is Completed before All I/O Commands are Complete

    If, after completing the motion for a specific motion command, all parallel processing statement execution has not been completed, subsequent program execution is delayed until all parallel processing statements execution has been completed. This situation is most likely to occur with short moves with many I/O commands to execute in parallel.

  • When the Till statement is used to stop the arm before completing the intended motion

    If Till is used to stop the arm at an intermediate travel position, the system considers that the motion is completed. The next statement execution is delayed until the execution of all parallel processing statements has been completed.

  • When the AbortMotion statement or Trap is used to stop the arm before completing the motion

    After the arm stops at an intermediate travel position, D statement cannot be executed.

  • Specifying “n” near 100% can cause path motion to decelerate

    If a large value of “n” is used during CP motion, the robot may decelerate to finish the current motion. This is because the position specified would normally be during deceleration if CP was not being used. To avoid deceleration, consider placing the processing statement after the motion command. For example, in the example below, the On 1 statement is moved from parallel processing during the jump to P1 to after the jump.

    CP On
    Jump P1 !D96; On 1!
    Go P2
    
    CP On
    Jump P1
    On 1
    Go P2
    
  • The Jump statement and Parallel Processing

    It should be noted that execution of parallel processing statements which are used with the Jump statement begins after the rising motion has completed and ends at the start of falling motion.

    It should be noted that execution of parallel processing statements which are used with the Jump3 statement begins after the depart motion has completed and ends at the start of approach motion.

  • The Here statement and Parallel Processing

    You cannot use both of the Here statement and parallel processing in one motion command like this:

    Go Here :Z(0) ! D10; MemOn 1 !
    

    Be sure to change the program like this:

    P999 = Here
    Go P999 Here :Z(0) ! D10; MemOn 1 !
    

    Be sure to change the program like this:


See Also
Arc, Arc3, Go, Jump, Jump3, Jump3CP, Move, BGo, BMove, TGo, TMove

!...! Parallel Processing Example
The following examples show various ways to use the parallel processing feature with Motion Commands:.

Parallel processing with the Jump command causes output bit 1 to turn on at the end of the Z joint rising travel and when the 1st, 2nd, and 4th axes begin to move. Then output bit 1 is turned off again after 50% of the Jump motion travel has completed.

Function test
   Jump P1 !D0; On 1; D50; Off 1!
Fend

Parallel processing with the Move command causes output bit 5 to turn on when the joints have completed 10% of their move to the point P1. Then 0.5 seconds later turn output bit 5 off.

Function test2
   Move P1 !D10; On 5; Wait 0.5; Off 5!
Fend