GI | Go Immediate | syntax – GI or GIi |
Value: N/A
Units: N/A
Range: N/A
The GI command begins a defined move profile in the same manner as the GO command. Unlike the GO command, where program execution waits until all defined moves have terminated, GI allows program execution to continue when the move has begun. This allows for other program defined processes to take place while an axis is moving, such as independent
Examples:
VE1 DI20 GI MS1, “Axis #1 is moving” TD2
In this example, when the DI20 move begins, program execution immediately displays the “Axis #1 is moving” message for 2 seconds. When the TD2 command has executed, the program will terminate; however, axis #1 will continue to move until the DI20 distance is reached. A Stop, Kill, or press of the ESC key will halt a GI based move either inside or outside program execution.
The GI command can cause program execution and moves to be asynchronous. To
VE1 DA100 GI OT1,1 DA0 GI IF1,1 MS1, “All moves done” EB
If a GI move is in progress and an additional move is commanded on the same axis, the additional move will not begin until the GI move has completed.
In this program, one may expect to see the message “All moves done” immediately after the DA100 move begins. In reality, the program will wait at the DA0 GI until the DA100 move has completed before continuing. More simply stated, a move cannot be commanded to begin on an axis that is already moving.
Since GI allows program execution to continue, there can be programming issues when using GI. For example, in the program fragment “LP VE2 DI10 GI OT1 TD1 OT0 EB” shown in Figure
|
| Figure |
V |
|
|
Axis 1 |
|
|
|
| T |
V | 1 Second | 1 Second |
Output 1 |
|
|
|
| T |
V |
|
|
Axis 1 |
|
|
|
| T |
V |
|
|
Output 1 |
|
|
|
| T |
The program will operate as shown here.
The program will not operate as shown here.
| MN1853 |