esrf

Beamline Instrument Software Support
SPEC Macro documentation: [ Macro Index | BCU Home ]

pace6000.mac $Revision: 1.6 $
See other macros in category: All
Description:
    Macromotor to control the PACE6000 K0443 Pressure Automated Calibration Equipment.
Documentation:
    DESCRIPTION
    Control of the PACE5000 single-channel or PACE6000 single/dual-channel Pressure Automated Calibration Equipment.
    Control via ethernet sockets.
    The macromotor controller to be used is 'pace6000'. Each controller must define the serial device index or the "adress:socket_number" as the address in config. Declare a motor controller:
    MOTORS     DEVICE               ADDR  <>MODE  NUM         <>TYPE
       YES   pace6000  id09pace6000:5025            2   Macro Motors
    
    and a macro motor:

    Unit is index num of controller, second is the controller channel as number 0 (zero) or 1 (one).
    Number: <>Controller          xx: MAC_MOT
    Unit/[Module/]Channel                 y/0
    Name                                 pace
    Mnemonic                             pace
    Steps per degree/mm                 10000
    Sign of user * dial                     1
    Backlash [steps]                        0
    Steady-state rate [Hz]               2000
    Base rate [Hz]                        200
    Acceleration time [msec]              125
    Motor accumulator                     362
    Restrictions <>                      NONE
    
    Dial = accumulator / steps
      High limit                     xxx.0000
      Current                          0.0000
      Low limit                        0.0100
    User = sign * dial + offset
      Offset                           0.0000
      `High' limit                   xxx.0000
      Current                          0.0000
      `Low' limit                      0.0100
    

    Then hit 'm' twice. Set the following for your motor:
    Hardware read mode <>        PR + AL + NQ
    
    Please NOTE: When the controller is close to zero, it mightn`t return the second in-limit parameter as 1. This implies, that the pressure zero will not be reached and the controller will never signal it has reached the final destination. Solution is to set the lower limit to 0.1.

Macros:
    pace6000_debug
    Usage: pace6000_debug
    toggle the debug mode if (!(whatis("_pace6000_debug") & 2)) rdef _pace6000_debug \'#$*\'

    pace6000_simul
    Usage: pace6000_simul
    toggle simulation mode for the present macros.

    pace6000_switch
    Usage: pace6000_switch <mnemonic> <on/off>
    switch controller on or off

    pace6000_slewrate
    Usage: pace6000_slewrate mnemonic <slewrate>
    Set the rate at which the controller ramps pressure. Documentation says values can also be "max" or "min", but that didn't work for me.

Internal Macros:
    pace6000_config
    Usage: pace6000_config(mne, type, unit, num_motors)
    MACRO MOTOR: Called by spec after reading the config file

    pace6000_cmd
    Usage: pace6000_cmd(num,key,p1,p2)
    MACRO MOTOR: Called by spec on motor operation. It manages:
    - position
    - start_one
    - get_status %QUOTE%

    _pace6000_io
    Usage: _pace6000_io(num, cmd)
    sends the string 'cmd' to controller.
    It ends the command with \\r and \\n for serial comm.
    There could be a GPIB connection, but it's not handled here.

    _pace6000_report_error
    Usage: _pace6000_report_error ()
    get errors
    returns ".error." if there is an error
    returns 0 if no error

    pace_switch
    Usage: pace_switch


    pace_slewrate
    Usage: pace_slewrate


Filename: pace6000.mac
Author: mcd january 2011, hw - move to SCPI in Jan 2013
Last mod.: 02/06/2015 15:12 by witsch