2.18. USBMotion3XIII

Summary:

A motor driver for the USB Motion 3x III card, COPTONIX GmbH, www.coptonix.com

Type:

Actuator

License:

Licensed under LGPL

Platforms:

Windows

Devices:

USB Motion 3x III controller from COPTONIX GmbH (www.coptonix.com)

Author:

M. Gronle, ITO, University Stuttgart

2.18.1. Overview

This plugin is a wrapper for the driver of the USB Motion 3x III card of COPTONIX GmbH (www.coptonix.com). It is able to address up to three different 3-phase stepper motors with up to 64 microstep-accuracy.

The controller is connected to the computer by a USB connection. The wrapper addresses the methods given by the Windows library provided by COPTONIX. For more information about the driver see the corresponding website of the manufacturer (The 64bit DLL was directly provided by COPTONIX).

If you change any parameters like speed or acceleration, set the values and then read the values again, since the currently set values might slightly differ from the desired values due to rounding uncertainties.

2.18.2. Initialization

The following parameters are mandatory or optional for initializing an instance of this plugin:

  • serialNumber: str

    serial number or string of the device to open, or ‘auto’ if next unused device should be opened or ‘0’,’1’… to indicate the index of the device to open.

    default: “auto”

  • axisSteps1: float, optional

    number of full steps per unit (deg or mm) of axis 1, 0: axis not connected [default]

    Value range: [0, 100000], Default: 0

  • axisSteps2: float, optional

    number of full steps per unit (deg or mm) of axis 2, 0: axis not connected [default]

    Value range: [0, 100000], Default: 0

  • axisSteps3: float, optional

    number of full steps per unit (deg or mm) of axis 3, 0: axis not connected [default]

    Value range: [0, 100000], Default: 0

  • unit1: int, optional

    unit of axis 1, 0: degree (default), 1: mm

    Value range: [0, 1], Default: 0

  • unit2: int, optional

    unit of axis 2, 0: degree (default), 1: mm

    Value range: [0, 1], Default: 0

  • unit3: int, optional

    unit of axis 3, 0: degree (default), 1: mm

    Value range: [0, 1], Default: 0

  • switchSettings: int, optional

    SwitchSettings

    Value range: [0, 63], Default: 0

2.18.3. Parameters

An instance of this plugin has the following internal parameters:

name: {str}, read-only

USBMotion3XIII

connected: {int}, read-only

indicates whether motor driver is connected (1) or not (0)

serialNumber: {str}, read-only

serial number for this motor driver

productVersion: {str}, read-only

product version for this motor driver

vendorName: {str}, read-only

vendor name for this motor driver

productName: {str}, read-only

product name for this motor driver

async: {int}

asynchronous move (1), synchronous (0) [default]

axisSteps1: {float}, read-only

number of full steps per turn of motor 1, 0: motor not connected

vMin1: {float}

minimal speed in degree per second of motor 1

vMax1: {float}

maximal speed in degree per second of motor 1

aMax1: {float}

maximal acceleration in degree/s^2 of motor 1

coilCurrentHigh1: {float}

coil current if acceleration is higher than coilCurrentThreshold1 [12.5%, 25%, … 87.5%, 100%]

coilCurrentLow1: {float}

coil current if acceleration is lower than coilCurrentThreshold1 [12.5%, 25%, … 87.5%, 100%]

coilCurrentRest1: {float}

coil current if motor 1 is in rest [12.5%, 25%, … 87.5%, 100%]

coilCurrentThreshold1: {float}

threshold acceleration for distinction between coilCurrentHigh and coilCurrentLow

axisEnabled1: {int}

determine if motor 1 is enabled (1) or disabled (0). If disabled, this motor is manually moveable

microSteps1: {int}

micro steps for motor 1 [1,2,4,8,16,32,64]

switchSettings1: {int}

bitmask of switch settings (bit 1: DISABLE_STOP_L, bit 2: DISABLE_STOP_R, bit 3: SOFT_STOP, bit 4: REF_RnL

axisSteps2: {float}, read-only

number of full steps per turn of motor 2, 0: motor not connected

vMin2: {float}

minimal speed in degree per second of motor 2

vMax2: {float}

maximal speed in degree per second of motor 2

aMax2: {float}

maximal acceleration in degree/s^2 of motor 2

coilCurrentHigh2: {float}

coil current if acceleration is higher than coilCurrentThreshold2 [12.5%, 25%, … 87.5%, 100%]

coilCurrentLow2: {float}

coil current if acceleration is lower than coilCurrentThreshold2 [12.5%, 25%, … 87.5%, 100%]

coilCurrentRest2: {float}

coil current if motor 2 is in rest [12.5%, 25%, … 87.5%, 100%]

coilCurrentThreshold2: {float}

threshold acceleration for distinction between coilCurrentHigh and coilCurrentLow

axisEnabled2: {int}

determine if motor 2 is enabled (1) or disabled (0). If disabled, this motor is manually moveable

microSteps2: {int}

micro steps for motor 2 [1,2,4,8,16,32,64]

switchSettings2: {int}

bitmask of switch settings (bit 1: DISABLE_STOP_L, bit 2: DISABLE_STOP_R, bit 3: SOFT_STOP, bit 4: REF_RnL

axisSteps3: {float}, read-only

number of full steps per turn of motor 3, 0: motor not connected

vMin3: {float}

minimal speed in degree per second of motor 3

vMax3: {float}

maximal speed in degree per second of motor 3

aMax3: {float}

maximal acceleration in degree/s^2 of motor 3

coilCurrentHigh3: {float}

coil current if acceleration is higher than coilCurrentThreshold3 [12.5%, 25%, … 87.5%, 100%]

coilCurrentLow3: {float}

coil current if acceleration is lower than coilCurrentThreshold3 [12.5%, 25%, … 87.5%, 100%]

coilCurrentRest3: {float}

coil current if motor 3 is in rest [12.5%, 25%, … 87.5%, 100%]

coilCurrentThreshold3: {float}

threshold acceleration for distinction between coilCurrentHigh and coilCurrentLow

axisEnabled3: {int}

determine if motor 3 is enabled (1) or disabled (0). If disabled, this motor is manually moveable

microSteps3: {int}

micro steps for motor 3 [1,2,4,8,16,32,64]

switchSettings3: {int}

bitmask of switch settings (bit 1: DISABLE_STOP_L, bit 2: DISABLE_STOP_R, bit 3: SOFT_STOP, bit 4: REF_RnL