## Arcus Technology USB Communications LabVIEW® Driver - version 3.0.0

### Installation Instructions

This package allows the targeted developer(s) to access the driver-set in two ways: (1) directly via the LabVIEW project seen here or (2) from a series of custom palette VI's (palette structure defined below) by invoking a pre-built installer that accompanies this package. The following instructions focus on the installer (recommended for novice developers).

Invoke the Installer

Contained within the downloaded package is a 'setup.exe' installer located in the following directory:

\\built\installers\arcus-usb-comm-installer\Volume\

Simply invoke this installer and the latest version of the Arcus driver toolset will be installed in LabVIEW's inst.lib directory.

Launch LabVIEW

If LabVIEW was open when step number (1) above was completed, restart the environment.

the newly installed Driver set will appear in the "Instrument I\O" >>> "Instrument Drivers" palette titled "Arcus Driver 3.0"

### Arcus Technology Instrument Driver - Palettes Overview

The following is a brief overview of the miscellaneous palettes as they appear in the "Instrument Drivers" >>> "Arcus Driver 3.0" palette.

NOTE: All VI's are documented. Refer to each VI's "Documentation" field or launch the Context Help window by clicking "Help" >>> "Show Context Help" then hover the cursor over each VI to see its description

Main Palette (top level)

This is the top level, main palette for the driver set.

Row 1

- Initialize: VI for initializing a connection to the Arcus device
- Send/Receive Command: VI instrumental for sending ASCII commands and another sub palette consisting of Utility Getters (discussed later)
- Close: VI for properly closing the established reference (connection)

Row 2

- Config (sub-palette): A sub-palette of Configuration VIs
- Action (sub-palette): A sub-palette of Action (setter) VIs
- Status (sub-palette): VI for properly closing the established reference (connection)

Row 3

- Utility (sub-palette): A sub-palette of driver Utility VIs
- Examples (sub-palette): A sub-palette of driver Example VIs and applications
- Select a VI...: LabVIEW native VI for selecting a VI or Control from a custom location

Config Sub-Palette

This sub-palette consists of a series higher level Configuration VI's (focussed on setting parameter data to the attached device) that translate info meaningful in LabVIEW to something the device can interpret.

Row 1

- Set Polarity Parameters: VI for setting the Polarity to memory of the referenced device
- Set Step N Loop Parameters: VI for setting the Step N Loop parameters to memory of the referenced device

Action (Setters) Sub-Palette

This sub-palette consists of a series higher level Action VI's (focussed on setting or writing-to the attached device) that translate info meaningful in LabVIEW to something the device can interpret.

Row 1

- Set Enabled State: Disables/Enables the motor at a specified axis (axis need not be specified for single-axis controller applications)
- Jog: Jog the motor in one direction or another at a specified axis (axis need not be specified for single-axis controller applications)
- Jog To Home: Jog the motor to the Home position at a specified axis (axis need not be specified for single-axis controller applications)

Row 2

- Move to Position: Moves the motor at a specified axis to a specific position (axis need not be specified for single-axis controller applications)
- Set On-The-Fly-Position: Set on-the-fly positioning at a specified axis (axis need not be specified for single-axis controller applications)
- Set On-The-Fly-Speed: Set on-the-fly speed at a specified axis (axis need not be specified for single-axis controller applications)

Row 3

- Enable S Curve: Enables S Curve at on specified axis (axis need not be specified for single-axis controller applications)
- Disable S Curve: Disables S Curve at on specified axis (axis need not be specified for single-axis controller applications)
- Enable Step N Loop: Enables Step-N-Loop on a specified axis (axis need not be specified for single-axis controller applications)

Row 4

- Disable Step N Loop: Disables Step-N-Loop on a specified axis (axis need not be specified for single-axis controller applications)
- Clear Limit Errors: Clears limit errors on specified axis (axis need not be specified for single-axis controller applications)
- Set Variable: Set variables to the controller (both volatile and non-volatile). Typically for purposes of facilitating the setup process for standalone programming (where applicable)

Row 5

- Set Device Name: Sets the name of the device. Note this VI alone does not permanently set the name to the device. A seperate call to commit the name permanently to non-volatile memory is required.
- Set Digital Output: Sets the state(s) to the digital output channel(s)
- Set Move Mode: Sets the move mode (absolute or incremental)

Row 6

- Store Permanently: Several calls that require data to be stored permanently to non-volatile memory (such that those values survive power cycles), this VI should be invoked immediately after (i.e. setting a device name requires permanent storage, setting Step N Loop parameters require permanent storage, etc).
- Multi-Axis (sub-palette): A sub-palette that contains action-related VIs that are only applicable to multi-axis controller applications

Action (Setters): Multi-Axis Sub-Palette

This sub-palette consists of a series higher level Action VI's that are applicable only to multi-axis applications.

Row 1

- Arc Movements: For supporting controllers, this VI may be used for setting up and invoking Arc based movements
- Circular Movements: For supporting controllers, this VI may be used for setting up and invoking Circular based movements

Status (Getters) Sub-Palette

This sub-palette consists of a series higher level Status VI's (focussed on retrieving information from the attached device) that translate data from the device to something meaningful in the LabVIEW development environment.

Row 1

- Get Device ID: Retrieve the ID of the referenced device
- Get Device Name: Retrieve the Name of the referenced device
- Get Status: Retrieve the status of the device at a specified axis (axis need not be specified for single-axis controller applications)

Row 2

- Get Pulse Position: Retrieve the pulse position of the motor at a specified axis (axis need not be specified for single-axis controller applications)
- Get Polarity Status: Retrieve the Polarity status values at a specified axis (axis need not be specified for single-axis controller applications)
- Get Variable: Retrieve the value of a variable given the variable ID

Row 3

- Read Analog Input: For supported controllers, read the Analog Input voltage at the specified AI channel.
- Get Digital Inputs: For supported controllers, retrieve the status of the Digital Input channels (at a specified channel or all at one time)
- Get Digital Outputs: For supported controllers, retrieve the status of the Digital Output channels (at a specified channel or all at one time)

Row 4

- Get Step N Loop Status: Retrieve Step N Loop Status at a specified axis (axis need not be specified for single-axis controller applications)
- Get Step N Loop Status: Retrieve Step N Loop Parameters at a specified axis (axis need not be specified for single-axis controller applications)
- Get Standalone Program Status: For supported controllers, retrieve the current status of an executing standalone program.

Row 5

- Stored Members (sub-palette): A sub-palette of VIs that take advantage of retrieving members stored to the parent 'Controller' object that gets instantiated in the Initialize step.

Status (Getters): Stored Members Sub-Palette

Upon device initialization, the 'Initialize' routine packs a variety of useful information into the 'reference' wire that gets passed around the driver VIs. This reference (which represents a LabVIEW Class Object of type "_Controller") contains several data members that are freely accessible wherever the reference remains active (not Closed) and accessible. This palette contains a series of these VIs that may be of use to the developer.

Row 1

- Get Device ID: Retrieve the ID of the referenced device. NOTE: this call does NOT pole the controller via a USB call. This was performed at device initialization. The Device ID was poled then and stored as a data member to the controller reference object.
- Get Device Name: Retrieve the Name of the referenced device. NOTE: this call does NOT pole the controller via a USB call. This was performed at device initialization. The Device Name was poled then and stored as a data member to the controller reference object.
- Get Device Model: Retrieve the Model of the referenced device. This is an enumerated constant of available Arcus product models. The correct one was inferred at device initialization and stored as a data member to the controller reference object.

Row 2

- Get USB Ref: Retrieve the USB reference number of the referenced device. This is the Arcus generated USB reference that was stored as a data member to the controller refernece object.
- Get Device Description: Retrieve the Description of referenced device.
- Get Device Index: Retrieve the Index of the referenced device. This is the index of the device that was provided at initialization and stored as a data member to the controller reference object.

Utilities Sub-Palette

This sub-palette contains a number of utility VIs that are both inherent to the Arcus USB Comm base set of features as well as some custom utilities that may prove useful for the LabVIEW developer

Row 1

- Build Device List: Builds a list of attached devices using index, device ID and device name to form the list.
- Device Selection Panel: A convenience VI that can be included in any application that permits the User to choose from a list of attached devices the particular device to proceed with.
- Set Communication Timeouts: Sets the USB Read and Write timeouts. This VI is actually a part of the Initialize VI referenced in the top-level palette. However, it can be used anywhere else throughout a custom application. NOTE: the stored member accessor VI for retrieving device USB Reference will be required.

Row 2

- Get Number of Devices: Retrieves the total number of discoverd Arcus USB device
- Get Device Info: This utility retrieves device information about the referenced device, namely device ID, device Name and device Model. NOTE this is performed in the Initialize VI referenced in the top-level palette.
- Clear USB Buffer: Clears the USB buffer. This VI is actually a part of the Initialize VI referenced in the top-level palette. However, it can be used anywhere else throughout a custom application. NOTE: the stored member accessor VI for retrieving device USB Reference will be required.

Examples Sub-Palette

This sub-palette contains a number of Example VIs and applications that to help the LabVIEW developer gain a clearer understanding of the use of the Arcus USB Comm LabVIEW driver in practice.

Row 1

- Connect: A simple example demonstrating the Initialize (and Close) routine.
- Issue ASCII Command: A simple example demonstrating a full Connect, issue command (via Send/Receive Command) and Close session.
- Get Info: A simple example demonstrating the retrieval of basic Device information.

Row 2

- Get Status: A simple example demonstrating the retrieval of a motor's status (multi-axis supported).

Row 3

- Console: A fully working application used for issuing ASCII commands via a command prompt type of entry.
- Utility - Single: A fully working application demonstrating the majority of key features of the DMX-J-SA product.
- Utility - Multi: A fully working application demonstrating the majority of key features of the PMX-4EX-SA product.

Row 4

- Digital IO (sub-palette): A sub-palette of example VIs demonstrating the use of DIO (for supporting devices)
- Motion (sub-palette): A sub-palette of example VIs demonstrating the use of various Motion control features
- Polarity (sub-palette): A sub-palette of example VIs demonstrating the use of setting and retrieving Polarity parameters and states.

Examples: Digital I/O Sub-Palette

This sub-palette contains a number of Example VIs and applications that to help the LabVIEW developer gain a clearer understanding of the use of the DIO features for DIO supporting controllers.

Row 1

- Read Digital Inputs: An example VI demonstrating reading Digital Input values
- Get Digital Outputs: An example VI demonstrating reading the status of Digital Output channel(s)

Row 2

- Set Digital Outputs: An example VI demonstrating setting Digital Output value(s)

Examples: Motion Sub-Palette

This sub-palette contains a number of Example VIs and applications that to help the LabVIEW developer gain a clearer understanding of the use of various Motion features.

Row 1

- Clear Limit/Alarm Errors: An example VI demonstrating clearing Limit and Alarm errors.
- Get Current Position: An example VI demonstrating retrieving current motor position.

Row 2

- Move to Position: An example VI demonstrating movement to a target position
- Move to Position with Feedback: An example VI demonstrating movement to a target position with live status feedback.

Row 3

- Move to Home: An example VI demonstrating movement to Home position

Examples: Polarity Sub-Palette

This sub-palette contains a number of Example VIs and applications that to help the LabVIEW developer gain a clearer understanding of the use of various Polarity setting/getting features.

Row 1

- Clear Limit/Alarm Errors: An example VI demonstrating retrieving Polarity values.
- Get Current Position: An example VI demonstrating setting Polarity values.

USB Communication Utility Control Panel - (Single Axis)

As briefly discussed above, the Examples Sub-Palette contains a "Utility - Single" that implements tha majority fo what the device API has to offer, catering primarily to the DMX-J-SA product line. This is an image of this interface. By clicking on the yellow "? button in the launched interface, a dialog appears providing details on each indicator and control on this interface. Simply hover the mouse over each to read its contents.

USB Communication Utility Control Panel - (Multi Axis)

As briefly discussed above, the Examples Sub-Palette contains a "Utility - Multi" that implements tha majority fo what the device API has to offer, catering primarily to the PMX-4EX-SA product line. This is an image of this interface.

USB Communication Console Panel

As briefly discussed above, the Examples Sub-Palette contains a "Console Panel" that implements only the ASCII level communication protocol with the attached device. By clicking on the yellow "? button in the launched interface, a dialog appears providing details on each indicator and control on this interface. Simply hover the mouse over each to read its contents.