ARRIVE
(Statement)
[Version 1.2 or later]
Defines the motion ratio relative to the programmed full travel distance to the target point in order to make the current program stand by to execute the next step until the robot reaches the defined motion ratio.
ARRIVE <Motionratio>
When an usual motion command is executed, any command on the subsequent step cannot be executed until the completion of the current motion or the start of pass motion. If a motion command includes an IOBLOCK or NEXT option, however, the program may proceed to the subsequent step halfway through the execution of the current command. This ARRIVE command makes the program stand by to execute the next step until the robot reaches the defined motion ratio.
<Motionratio> is the motion ratio relative to the programmed full travel distance instructed by a motion command. The entry range is from 1 to 99 (%) which may be set with numerals, integer variables, or floating-point variables.
ARRIVE takes effect only for robot joints. Therefore, when operating only extended-joints by DRIVE or DRIVEA, this ARRIVE command does not work.
An ARRIVE command defines the motion ratio for the immediately preceding motion command in a TAKEARMed task that has obtained arm-semaphore.
If an ARRIVE command is executed after arm-semaphore is obtained and before execution of a motion command, Error 648C will result.
If an ARRIVE command is executed without arm-semaphore obtained, Error 21F7 will result.
If the robot has stopped instantaneously during execution of an ARRIVE command and the positioning error exceeds 10 mm between the stop position and the restart position at restarting, Error 6486 will result.
If the robot has stopped instantaneously during execution of an ARRIVE command and no motion command has been executed at restarting, then the robot will not reach <Motionratio>, resulting in Error 6489.
The <Motionratio> refers to the ratio relative to the robot travel distance. However, depending upon the robot operating conditions (e.g., speed and acceleration), the actual robot position when the ARRIVE command is completed may vary. On the contrary, changing the <Motionratio> may bring no change of the actual robot position when the ARRIVE command is completed. If you want to use the ARRIVE command and synchronize the robot with the peripherals, check the timing.
If you use an ARRIVE command with any current limit function, the robot may not pass the <Motionratio> due to its limited drive current. If this happens, the program will infinitely wait for the completion of the ARRIVE command. You need to stop the program and resume it.
If you use an ARRIVE command with an INTERRUPT command, any motion command following INTERRUPT ON will not be executed by INTERRUPT SKIP signals but the ARRIVE command will be executed. Therefore, depending upon the timing of the INTERRUPT SKIP signals, the ARRIVE command may be executed for an unexpected motion command or the robot may not pass the <Motionratio>. If either of them happens, the program will infinitely wait for the completion of the ARRIVE command. You need to stop the program and resume it.
In teach check, the NEXT option and IOBLOCK command are invalid, and the ARRIVE command has no meaning.
Ex1
PROGRAM PRO1
|
|
TAKEARM
|
|
MOVE P, P1, NEXT
|
|
ARRIVE 50
|
'If the motion ratio reaches 50%,
|
SET IO[240]
|
'turn on IO[240].
|
ARRIVE I1
|
'If the motion ratio reaches the percentage assigned to
|
RESET IO[240]
|
'integer 1, turn off IO[240].
|
END
|
|
Ex2(extended-joint)
If an arm group is set in 4-joint robots as shown below, the program sample below works as follows.