esrf

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

eurotherm2700.mac
See other macros in category: Temperature
Description:
    TEST macros for a the use of a EuroTherm 2700 temperature controller.
Documentation:
    DESCRIPTION
    Implement macro motors and macro counters to control the regulation loop and to read any MODBUS address from the controller. For the macro counters, the channel is used to defined the MODBUS address to read. But as a scaler controller can only have 999 channels, to read a higher address, there is an optional counter parameter named "address". When MODBUS address to read is defined like than, there is a second optional parameter named "floatvalue" to get a float value from the controller instead of a rounded temperature value. $Revision: 1.12 $ Package bliss version 1.2 is corrupted. need modbus-rtu.mac if (!(whatis("__e2700debug") & 2)) rdef __e2700debug \'#$*\'

    INTERNALS


Macros:
    e2700_debug
    Usage: e2700_debug
    toggle debug mode for the present macros.

    euro2700status
    Usage: euro2700status [unit]
    Gives information about the status of the controller. Not to confuse with europrogstatus, which gives information about a program execution in the controller. This one reads the status bytes on a controller and puts them out in human readable form. Saves you to rtfm. The bits of the fast status read (tag 75) are as follows:
     0 Alarm 1 State ( 0 = Safe, 1 = Alarm )
    1 Alarm 2 State ( 0 = Safe, 1 = Alarm )
    2 Alarm 3 State ( 0 = Safe, 1 = Alarm )
    3 Alarm 4 State ( 0 = Safe, 1 = Alarm )
    4 Manual Mode ( 0 = Auto, 1 = Manual )
    5 Sensor Break ( 0 = Good PV, 1 = Sensor Broken )
    6 Loop Break ( 0 = Good closed loop, 1 = Open Loop )
    7 Heater Fail ( 0 = No Fault, 1 = Load fault detected )
    8 Tune Active ( 0 = Auto Tune disabled, 1 = Auto Tune active)
    9 Ramp/Program Complete ( 0 = Running/Reset, 1 = Complete )
    10 PV out of range ( 0 = PV within table range, 1 = PV out of table range )
    11 DC control module fault (0= Good,. 1= BAD)
    12 Programmer Segment Synchronise (0= Waiting, 1 = Running)
    13 Remote input sensor break (0 = Good, 1 = Bad)
    After reflexion, Ill give you all that is there :-), 74 to 77

    euro2700showpid
    Usage: euro2700showpid unit
    Show the PID values for unit


    euro2700configuration
    Usage: euro2700configuration
    Please run without arguments to find out about the possible actions. Put controller into configuration mode and set one of several special cells. The following values influence the macros considerably. They can be set from the computer to make the user experience less painful.
    Note: no spaces are allowed around the `=` signs!
    Note: the decimal display will only be valid, if the Resolution is set to 0 (full)!!!
    Decimal places displayed (mb address 525)
    0: nnnn
    1: nnn.n
    2: nn.nn
Resolution (mb address 12275)
0: Full
1: Integer
Low Range Limit (mb address 11)
High Range Limit (mb address 12)
Instrument Units (mb address 516)
0: oC
1: oF
2: oK
3: None

euro2700parameters
Usage: euro2700parameters
Please run without arguments to find out about the possible actions. Set one of several special cells. The following values influence the macros considerably. They can be set from the computer to make the user experience less painful.
Note: no spaces are allowed around the `=` signs!


eurowaitformove
Usage: eurowaitformove mne
toggle behaviour for motor mne to wait for the end of a move, if a simple mv command is using a ramp rate.

Internal Macros:
    __e2700_put
    Usage: __e2700_put (unit, fwaddr, value)


    __e2700_blockput
    Usage: __e2700_blockput (unit, fwaddr, num, data)


    __e2700_get
    Usage: __e2700_get (unit, fwaddr, num, data)


    __e2700_put_serial
    Usage: __e2700_put_serial (node, fwaddr, value)
    Called by spec

    __e2700_blockput_serial
    Usage: __e2700_blockput_serial (node, fwaddr, value)
    Called by spec

    __e2700_get_serial
    Usage: __e2700_get_serial (fwaddr, fwaddr, num, data)
    Called by spec

    __e2700_put_tango
    Usage: __e2700_put_tango (fwaddr, value)
    (server, fwaddr, value) Called by spec

    __e2700_blockput_tango
    Usage: __e2700_blockput_tango (server, fwaddr, nwords, data)
    Called by spec

    __e2700_get_tango
    Usage: __e2700_get_tango (server, fwaddr, num, data)
    Called by spec.<BR>data is ushort array

    __e2700_rfloat
    Usage: __e2700_rfloat(unit, val)


    __e2700_wfloat
    Usage: __e2700_wfloat(unit, val)


    E2700_config
    Usage: E2700_config (mne, type, unit, mod, chan)
    Called by spec

    E2700_cmd
    Usage: E2700_cmd(mne, cmd, p1, p2, p3)
    Called by spec

    E2700_par
    Usage: E2700_par(num, key, action, p1, p2)
    Called by spec with different keys to handle motor_par(mot,"key",new_value) and counter_par(cnt,"key") actions.

    __euro__float
    Usage: __euro__float (<data>)
    Converts 4 byte size values into IEEE floating point value and returns it.
    The 2408 can be put into a floating point mode (read cell 12275) which then displays values with variable number of floating point numbers. To avoid getting in trouble with that, the protocol allows to read 4 bytes from adresses over 0x8000. Thus, the cell 2 reads from
    2 x 2 + 8000h = 8004h = 32772 decimal.


    __e2700_simple
    Usage: __e2700_simple


Filename: eurotherm2700.mac
Author: H. Witsch, BLISS - ESRF, derived from the macros in eurotherm2400.mac, mainly programmed by H. Witsch Revision: preliminary, Date: 2009/06/16
Last mod.: 12/10/2017 14:09 by perez