Versions Compared

Key

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

Purpose

Queue operation is used to buffer lines of AeroBasic or 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 during extremely long AeroScript programs are also common use cases for queue operation. Some AeroBasic and AeroScript commands are also only compatible with queue mode operation.

...

Command Queue History

Command Queue operation was introduced officially released in Automation1 version 2.13.0.

Why would you use Command Queue? 1. When executing AeroScript code via the .NET interface and the C library, 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.   

Command Queue operation is supported in the .NET interface only and is not necessary for operation via the Automation1 Studio. This is a change from A3200's use cases; see below for more details. The Command Queue reserves one task for operation.library and C library; this feature can't be accessed from Automation1 Studio. Command Queue obsoletes the previous Queue Mode operation and PROGRAM BUFFEREDRUN command from A3200 and has significant differences from the A3200 implementation. See Introduction to Queue Mode and Command Queue in A3200 for more details on the previous implementation. 

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

...

Queue Mode operation allows the controller to buffer single lines or blocks of AeroBasic code in a FIFO (First In First Out) queue. This is most commonly used for VELOCITY contouring blocks in A3200. In addition to the other use cases, Queue Mode operation in A3200 may be required for programs that are too large to compile and run normally. This limit can vary, but usually occurs above 60,000-80,000 lines of code. Queue mode differs from the standard Immediate Command mode

Queue Mode operation can be used via either the PROGRAM BUFFEREDRUN command in the A3200 suite, or using the .NET library or the C library. The .NET and C interfaces can insert single lines of AeroBasic code into the queue, and all three options can be used to run full AeroBasic programs. Queue Mode reserves one task for operation.

Command Queue has its own control methods to govern the task in which it runs. (The Command Queue reserves one task for operation which cannot be used for other purposes.) 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 whether a specific Command Queue version of an AeroScript command exists. 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 CFor complete documentation, please refer to the Queue Mode Operation article and the PROGRAM BUFFEREDRUN article in the A3200 Help documentation.


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

...