Virtual Axis Overview

Use virtual axes to test or debug program execution without a drive. If the controller is configured to use Virtual communication, all axes become virtual axes. If the controller is configured to use HyperWire communication, all axes that are not associated with a physical drive on the HyperWire motion bus (based on their communication channels) become virtual axes. See the Controller milestone for more information about Virtual and HyperWire communication.

To determine if an axis is a virtual axis, look at the Axis Dashboard in Automation1 Studio. An active V on the axis dashboard shows that the axis is virtual.

Figure: Axis Dashboard with Correction

You can also get the AxisStatusItem.AxisStatus item for the axis. The NotVirtual bit changes to OFF for an axis if it is a virtual axis.

You can execute all functions (Enable(), Home(), MoveRapid(), MoveLinear(), MoveCw(), MoveCcw(), and camming and gearing) on a virtual axis. Some functions (TuningSetMotorAngle(), TuningSetMotorCurrent(), AutofocusOn(), and PSO functions) do not have an effect when you execute them on a virtual axis.

The controller ignores feedback parameters (FeedbackSetup, FeedbackInput0, PrimaryFeedbackType, etc.) and unconditionally sets position feedback equal to the position command for all virtual axes. If you home a virtual axis, it sets the position to the value of the HomePositionSet parameter instantly, regardless of the HomeType parameter.

You can read and write to and from inputs and outputs on a virtual axis. Also, all analog and digital output values are copied to their respective input.

For Example

Axis X is a virtual axis, and you issue the AnalogOutputSet() function to set analog output 0 on axis X to 2.5 V. The controller automatically sets analog input 0 on axis X to 2.5 V.

Virtual axes do not support some drive features such as a dedicated ESTOP input, hardware end-of-travel limits, a hardware home limit, a marker input, encoder errors, or a brake output. The DriveStatus bits for these features will always be OFF for virtual axes.

The virtual drive behaves as a single-axis servo drive by default. You can configure the virtual drive to behave as a 2-axis or 3-axis galvo drive supporting all capabilities described in the Galvo and IFOV Functions page by configuring the VirtualDriveType Parameter and the VirtualDriveStartingAxis Parameter. Galvo functionality is only available on a PC-based controller.

Virtual axes have a drive array of 2048 bytes.

The round-trip communication delay and motion delay of a virtual axis are zero.