Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Purpose

Queue operation is used to buffer lines of AeroScript code. This operation mode is useful for applications that require many short duration moves in a row. This often includes CNC machining or laser manufacture applications. Programs that require velocity blending, velocity profiling, or lookahead synchronization are also common use cases for queue operation. Some AeroScript commands are also only compatible with queue mode operation.

Command Queue History

Command Queue operation was officially released in Automation1 version 2.3.0. When executing AeroScript code via the .NET interface, a fixed overhead of processing time and sometimes network latency occurs between commands. Command Queue operation allows the controller to buffer single lines of AeroScript code in a FIFO (First In First Out) queue to execute commands with no latency. 

...

For complete documentation, please refer to the Automation1 Help documentation on our website for the .NET API and the C API.

Governing the Command Queue

Command Queue has its own control methods to govern the task in which it runs. This differs from ProgramStop() and other AeroScript commands, which aren't available in Command Queue. The following basic control and scheduling functions are available for the Command Queue, in both the .NET API and the C API:

  • Begin: Assigns a task to Command Queue mode operation. The queue begins storing all command sent to it, executing them in FIFO sequence. The assigned task cannot run normal AeroScript programs while Command Queue is executing.
  • Various basic motion commands have their own Command Queue enabled versions, such as Enable, Disable, MoveLinear, etc. See the documentation for examples. For all other commands, use:
  • Execute: Adds a single line of AeroBasic code to the end of the queue. This does not execute the command immediately. This is useful if you're not sure what specific Command Queue style lines to use. Please refer to the restrictions on legal commands in the documentation above.
  • Pause: Pause Command Queue execution. If a queue line is currently executing, the line will complete without being aborted.
  • Resume: Return from a Pause condition.
  • WaitForEmpty: Halt until all commands currently in the queue have been executed. You can optionally provide a timeout for this function.
  • End: Abort the currently executing AeroScript line from Command Queue, discard all remaining queued lines, and returns the assigned task to normal AeroScript execution.

The following statuses are also available for the Command Queue. Their method of retrieval differs between .NET and C.

  • Paused status (boolean)
  • Empty queue status (boolean)
  • Number of executed commands over the queue's lifespan
  • Number of unexecuted commands remaining in the queue
  • Number of times the queue became empty during its lifespan

Additional Considerations

When using Command Queue, several considerations are the responsibility of the customer and end user. This includes queue starvation management, and thread safety.

Please refer to the documentation (.NET APIC API) for full information on queue starvation management and thread safety for the Queue Mode commands and class, which differ between .NET and C.


Content by Label
showLabelsfalse
max5
spacesAKB
showSpacefalse
sortmodified
reversetrue
typepage
cqllabel in ("a3200","automation1","programming") and type = "page" and space = "AKB"
labelsa3200 automation1 intime

...