spec

Software for Diffraction

ANC150/ANC300

Attocube ANC150/ANC300 Piezo Controllers

DESCRIPTION

The Attocube ANC150 and ANC300 are piezo device controllers. spec supports the ANC300 over Ethernet and serial connections. The ANC150 works only over a serial connection.

The controller is selected on the hardware configuration editor Devices screen along the lines of:

MOTORS     DEVICE  ADDR <>MODE  NUM                        <>TYPE U#
0  YES /dev/ttyS0    <>  38400    3  Attocube ANC150/300 (Serial)  0
1  YES   anc_host                 6      Attocube ANC300 (Socket)  1

The standard baud rate for serial connections for these controllers is 38400. For the socket configuration of the ANC300, anc_host is a resolvable host name or IP address. The default port number, 7230, is built into the code. If the controller is set up to use another port, enter the DEVICE as anc_host:port.

On the Motor screen, choose ANC150 or ANC300 as the controller type.

Currently, the only move mode implemented for these controllers is step mode. That is, the "setm stp" command is sent to the controller. The motor speed (slew rate from the config file) is sent using the "setf" command. The amplitude of the steps can be set in the config file as a non-standard optional parameter. If that parameter exists, spec will program the controller with the "setv" command. The units are volts.

Neither the ANC150 nor the ANC300 have the capability to report current position. During an updated move, spec will display an approximate current position based on the configured speed (steps/second) and the elapsed time. If a move is aborted, spec will save the estimated position based on the time the "stop" command was sent to the controller.

PARAMETERS

The motor_par() options shown below are case insensitive. Any combination of lower and upper case is allowed.

motor_par(mne, "mode" [, arg]) (ANC150 and ANC300)
Sets or gets the axis operating mode. The valid modes for the ANC150 are "gnd", "cap", "stp", "off", "stp+" and "stp-". The valid modes for the ANC300 are "gnd", "inp", "cap", "stp", "off", "stp+" and "stp-". Note however, the axis must be in "stp" mode for spec's move commands to work.
motor_par(mne, "ACin" [, arg]) (ANC300 only)
Sets or gets the state of the AC input. Allowed values are "on" or "off".
motor_par(mne, "DCin" [, arg]) (ANC300 only)
Sets or gets the state of the AC input. Allowed values are "on" or "off".
motor_par(mne, "filter" [, arg]) (ANC300 only)
Sets or gets the filter value. Allowed values are 1.6, 16, 160, 1600 and "off".
motor_par(mne, "frequency" [, arg]) (ANC150 and ANC300)
Sets or gets the frequency value. Note, spec programs this value according to the current value of the motor speed (slew rate) parameter when an axis is moved.
motor_par(mne, "Voffset" [, arg]) (ANC300 only)
Sets or gets the voltage offset.
motor_par(mne, "amplitude" [, arg]) (ANC150 and ANC300)
Sets or gets the step amplitude in volts. Note, this parameter can be set as a nonstandard optional parameter in the config file.
motor_par(mne, "Voutput") (ANC300 only)
Returns the measured output voltage.
motor_par(mne, "capacitance") (ANC150 and ANC300)
Returns the saved capacitance value. On the ANC150, the axis must be in "cap" mode.
motor_par(mne, "maintain" [, arg]) (ANC150 only)
Sets or gets the state of the voltage maintenance feature. Allowed values are "on" or "off".
motor_par(mne, "pattern_up" [, slot]) (ANC150 only)
Sets or gets the pattern slot number for the up direction for motor mne. Valid arguments are integers from 0 to 19. The controller default is slot 0.
motor_par(mne, "pattern_down" [, slot]) (ANC150 only)
Sets or gets the pattern slot number for the down direction for motor mne. Valid arguments are integers from 0 to 19. The controller default is slot 1.
motor_par(mne, "pattern", index [, value]) (ANC150 only)
Sets element index of the temporary pattern space to value on the controller associated with motor mne. The indices run from 0 to 255. Values also run from 0 to 255.
motor_par(mne, "pattern_store", slot) (ANC150 only)
Stores the temporary pattern space in the designated slot on the controller associated with motor mne.
motor_par(mne, "pattern_reset") (ANC150 only)
Resets the patterns to factory defaults on the controller associated with motor mne.
motor_par(mne, "dump")

Prints a formatted display of parameters for the given motor. The display includes the parameter description, the current value as read from the controller and the parameter name in quotation marks. For the ANC150:

            Mode : stp                      "mode"
       Frequency : 50 Hz               "frequency"
       Amplitude : 60 V                "amplitude"
Maintain voltage : on                   "maintain"
  Up pattern num : 0                  "pattern_up"
Down pattern num : 1                "pattern_down"

For the ANC300:

 Serial number : ANM300A-M-1045-2005075
          Mode : stp                      "mode"
      AC input : off                      "ACin"
      DC input : off                      "DCin"
        Filter : off                    "filter"
     Frequency : 1000 Hz             "frequency"
     Amplitude : 60 V                "amplitude"
        Offset : 0.000000 V            "Voffset"
Output voltage : 0.000000 V            "Voutput"
   Capacitance : 0.000000 nF       "capacitance"
motor_par(mne, "send", cmd)
Sends the string cmd to the channel associated with mne. spec will insert the axis number and add the line terminator.
motor_par(mne, "read", cmd)
Sends the string cmd to the channel associated with mne, as above, and returns a string containing the response.
motor_par(mne, "usend", cmd)
Sends the string cmd to the unit associated with mne, but doesn't address the command to a specific motor. spec will add the line terminator.
motor_par(mne, "uread", cmd)
Sends the string cmd to the unit associated with mne, as above, and returns a string containing the response.