esrf

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

hexapod850.mac
See other macros in category: Positioning
Description:
    Macros for controlling the Physik Instrumente hexapod controllers 850 and 887
Documentation:
    DESCRIPTION
    The Physik Instrument Hexapod M850 is a hexapod controller with a serial line interface. The Physik Instrument Hexapod C887 is a hexapod controller with a serial line and socket interfaces. Both of them can be used with this set of macros.

    OVERVIEW
    These macros offer full functionality to this device if connected through a Serial Line device server ( VME ). It would be possible to modify the macros for a generic SPEC serial interface but then the polling routine has to be redesigned.

    If a movement is stop before the final position is reached the controller position register will always show the setpoint value ( and not the real one ). For security the hexapod is then marked as disabled. This state has to be manually reset. To get to a safe position you have to move the hexapode to any position different from the saved one. This is all done from the macro hexareset

    In normal operation we strongly recommend to include the lines hexasetup and the necessary hexamot lines in setup.

    EXAMPLE
    hexapod
    Opens a menu with full functionality to all hexapod functions
    hexashow
    Shows current state and other parameters
    hexasetup d26h/sl001_0/2 Dubble-Hexapod
    Sets up serial device name and description
    hexamot hexx X
    Defines the motor hexx as a pseudo motor on the X direction. This motor can then be use as any other motor in SPEC for moving, scanning... The motor hexx has to be previously configured in config
    hexaon
    Activates pseudo-motors
    hexamove
    Move absolute with all six coordinates
    hexarot
    prompts the user with parameters for new rotation point


Macros:
    hexa850
    Usage: hexa850
    Opens a menu with full functionality to all hexapod functions

    hexa850setup
    Usage: hexa850setup [ device-name description ]
    Define the device used to talk to the PI controller. Could be a serial line TACO device server or an hostname over ethernet.

    hexa850reset
    Usage: hexa850reset
    Resets error flag after control-C

    hexa850on
    Usage: hexa850on
    Activates pseudo motors

    hexa850off
    Usage: hexa850off
    Deactivates pseudo motors

    hexa850show
    Usage: hexa850show
    Show current state of hexapod

    hexa850mot
    Usage: hexa850mot [ mnemonic type ]
    Defines a pseudo motor on hexapod Withous parametes will just show help on usage

    hexa850setrot
    Usage: hexa850setrot


    hexa850stop
    Usage: hexa850stop


    hexa850cmd
    Usage: hexa850cmd GCS_cmd args...
    Send GCS commands to controller and print answer for query comamnds (ended with "?"). For the binary GCS commands, use "#" character. For instance "#5" (do not forget the quotes)

    hexa850debug
    Usage: hexa850debug [on|off]


    hexa850unsetup
    Usage: hexa850unsetup
    remove cdefs of pi hexapod

Internal Macros:
    hexa850_showcmds
    Usage: hexa850_showcmds()


    hexa850body
    Usage: hexa850body(mode)


    hexa850hwinit
    Usage: hexa850hwinit


    hexa850init
    Usage: hexa850init


    _hexa850on_cdef
    Usage: _hexa850on_cdef
    Activates pseudo motors

    _hexa850off_cdef
    Usage: _hexa850off_cdef
    Deactivates pseudo motors

    hexa850header
    Usage: hexa850header


    hexa850motorsmv
    Usage: hexa850motorsmv


    hexa850motorspoll
    Usage: hexa850motorspoll


    hexa850motorsget
    Usage: hexa850motorsget


    hexamot850add
    Usage: hexamot850add(mne,type)


    hexa850move
    Usage: hexa850move


    _hexa850wait
    Usage: _hexa850wait


    _hexa850move
    Usage: _hexa850move(newpos)


    _hexa850showpos
    Usage: _hexa850showpos


    _hexa850_put
    Usage: _hexa850_put (GCS_cmd)


    _hexa850_putget
    Usage: _hexa850_putget (GCS_cmd)


    _hexa850cmd
    Usage: _hexa850cmd (GCS_cmd)


    _hexa850clearerr
    Usage: _hexa850clearerr()
    The controller keeps in memory the last error, therefore it must be cleared to avoid mis-interpretation.

    _hexa850checkerr
    Usage: _hexa850checkerr()


    _hexa850poll
    Usage: _hexa850poll()
    Returns 0 if motor is moving, returns 1 otherwise

    _hexa850readpos
    Usage: _hexa850readpos


    _hexa850getrot
    Usage: _hexa850getrot


    _hexa850check
    Usage: _hexa850check(newpos)


Filename: hexapod850.mac
Author: V.Rey - Dubble/SpLine - ESRF 2000
$Revision: 1.11 $ / $Date: 2017/01/16 10:36:50 $
Last mod.: 16/01/2017 11:37 by guilloud