ID : 5935
SyncTime
Function
This command allows different motion commands on multiple robots to operate synchronously.
This option is available to the following motion commands.
Approach, Depart, Draw, Drive, DriveA, Move, Rotate, RotateH
This option is available in Ver.1.9.* or higher.
Syntax
SyncTime (Motion command), (Motion command)[, (Motion command)[, (Motion command)]]
[, Next]
Guaranteed Entry
- Motion command
Specify the robot name with the form of "Robot*." before the motion command.
For detail of each command, refer to the manual of respective command.Example
SyncTime ( Robot0.Move P, P0, Speed = 40 ), ( Robot1.Move P, P1, Speed = 70 ), Next
Note that you cannot specify multiple target positions in series. Next option is not available.
Example
In the following example, "P" and "P5" are invalid.SyncTime( Robot0.Move P, P[2], P[5], Speed = 30, Next ), ( Robot1.Move P, P1 ), Next
Description
This command allows different motion commands on multiple robots to operate synchronously. This motion is called as "synchronous motion".
To execute this command, controls of all specified robots must be obtained.
Related Terms
Attention
- This command is exclusive to the Cooperative Control Function.
- If one of the motion option from Time, Speed, Accel, or Decel are used, a robot motion with the motion option may take longer time. As a result, robots may not behave as you have specified with SyncTime command because robots synchronize with the most slowest robot.
- This option is not available to ArchMove.
- An error occurs if the pass start displacement of the motion commands that move synchronously are different.
Example
However, the combination of @P, @numeric value, and @0 will work properly.SyncTime ( Robot0.Move P, @P P1 ), ( Robot1.Move P, @e P2 )
Example
Also, the combination between @E and @C will work properly.SyncTime ( Robot0.Move P, @P P1 ), ( Robot1.Move P, @0 P2 )
Example
SyncTime ( Robot0.Move P, @c P1 ), ( Robot1.Move P, @e P2 )
-
The following shows the restrictions when synchronous motions are connected with pass motion (including the pass motion of position designation).
Three or more robots cannot be run with pass motion. In two robots-used operation, to connect two motions with the pass motion, the robot combinations must be the same before and after the pass motion. The following shows the examples for available or unavailable motion patterns.
Motion available To link the first motion (performed by Robot0) and the second motion (performed by Robot0 and Robot1) with the pass motion. (Two robots move with the pass motion.)
'Sample program Robot0.Move L, @P P1, Next SyncTime (Robot0.Move L, P2),(Robot1.Move L, P4)
To link the first and the second motions (both are performed by Robot0 and Robot1) with the pass motion. (The robot combination before and after the pass motion are the same.)
'Sample program SyncTime (Robot0.Move L, @P P1),(Robot1.Move L, @P P3), Next SyncTime (Robot0.Move L, P2),(Robot1.Move L, P4)
To move the first motion (performed by Robot0 and Robot1) with the Next option, move the second motion (performed by Robot2 and Robot3) with the Next option, and then start the third motion (performed by Robot0 and Robot1) with the pass motion. (The robot combination before and after the pass motion are the same.)
'Sample program SyncTime (Robot0.Move L, @P P1),(Robot1.Move L, @P P3), Next SyncTime (Robot2.Move L, P11),(Robot3.Move L, P21), Next SyncTime (Robot0.Move L, P2),(Robot1.Move L, P4)
In this case, robots used in the first motion (Robot0 and Robot1) should not be used in the second motion. Suppose that Robot0 is used in the second motion. Robot0 is used in the first and the second motion, therefore, the system tries to link the two motions with pass motion. On the other hand, Robot1 is used in the first and the third motion and the system tries to link the two motions with the pass motion. As a result, the system gets confused because Robot0 and Robot1 specify different motion for pass motion execution (Robot0 specifies the second motion, Robot1 specifies the third motion), leading to failure.
Motion not available To link the first motion (performed by Robot0) and the second motion (performed by Robot0, Robot1, and Robot2) with the pass motion. (Three robots move with the pass motion.)
'Sample program
Robot0.Move L, @P P1, Next SyncTime (Robot0.Move L, P2),(Robot1.Move L, P4)
,(Robot2.Move L, P14)
To link the first motion (performed by Robot0 and Robot1) and the second motion (performed by Robot0, Robot1, and Robot2) with the pass motion. (Three robots move with the pass motion and the robot combination are different before and after the pass motion.)
'Sample program
SyncTime (Robot0.Move L, @P P1),(Robot1.Move L, @P P3), Next SyncTime (Robot0.Move L, P2),(Robot1.Move L, P4),(Robot2.Move L, P14)
To link the first motion (performed by Robot0 and Robot1) and the second motion (performed by Robot1 and Robot2) with the pass motion. (The robot combination before and after the pass motion are different.)
'Sample program
SyncTime (Robot0.Move L, @P P1),(Robot1.Move L, @P P3), Next SyncTime (Robot1.Move L, P4),(Robot2.Move L, P14)
- If any of the following conditions are met, when a certain motion (described later in this content) is performed, the motion start timing gap among multiple robots may occur.
Only Ethernet is used for communication method among robot controllers. "Cooperative control sync option" is set to other than "High accuracy". (Initial setting of "Cooperative control sync option" is "High accuracy".) Software version of robot controller is lower than 2.5.*. A certain motion mentioned above is to perform the synchronous or cooperative motion (a motion that uses SyncMove motion option) in the following order.
1: With specifying other than @E for the pass start displacement, execute any motion that is not the synchronous nor the cooperative motion. 2: Execute the synchronous or the cooperative motion. In the case above, to clear the motion start timing gap, change the motion that is written just before the synchronous or cooperative motion as one of the following.
Set @E for the pass start displacement of the prior command Set @0 for the pass start displacement of the prior command, and then write Delay command between the prior command and the synchronous or cooperative motion to adjust timing. Example
Example2Move P, @0 P0 'Specify @0 or @E for the pass start displacement of the command that runs immediately before SyncTime. Delay( 30 ) 'If @0 is entered, insert Delay between SyncTime and the prior command. Delay is not required if @E is entered. SyncTime ( Robot0.Move P, @P P1 ), ( Robot1.Move P, @P P2 )
'Delay is not required if the prior motion command is SyncTime or SyncMove, SyncTime ( Robot0.Move P, @P P3 ), ( Robot1.Move P, @P P4 ) SyncTime ( Robot0.Move P, @P P5 ), ( Robot1.Move P, @P P6 )
About Cooperative Control Sync Option
- Robot controller with software version before 2.5.* does not have Cooperative control sync option.
- If a robot program (project) which has been programmed by a robot controller with software version before 2.5.* is used in a robot controller with version 2.5.* or higher, "Cooperative control sync option" is set to "Normal".
- Once the Cooperative control sync option setting is changed, the cycle time of robot programs may be changed.
- To set/confirm the Cooperative control sync option setting, set the user level [Maintainer], and then do the following operation with a teach pendant.
Operation path : [F6 Setting]-[F9 Cooperation] When [Cooperative setting] window appears, set/confirm [No.76: Cooperative control sync option].
Example
Robot0.TakeArm 'Obtain the control of Robot0
Robot1.TakeArm 'Obtain the control of Robot1
SyncTime ( Robot0.Move P, P0, Speed = 40 ), ( Robot1.Move P, P1, Speed = 70 ), Next
ID : 5935