man8/RAMPmngr

Table of Contents

Name

RAMPmngr - ramp manager

Synopsis

RAMPmngr <argument list>

Description

This program is a general purpose analog ramp manager.

It uses one datapoint ( comm1 ) to determine when to ramp another datapoint ( ctl1 ) up/down. comm2 is the final value of ctl1 when ramping up. comm3 is the final value of ctl1 when ramping down.

<const1 1> allows a choice of behaviors when the value of comm2 is changed.

If the value of <const1 1> is zero then when ramping up or down is complete further changes to comm2 are copied directly through to ctl1 i.e. no ramping takes place.

If <const1 1> is nonzero then whenever the value of comm2 is changed ctl1 ramps to the new value.

<const2 1> provides similiar behavior when using comm3

comm1 is used to control ramp initiation. When comm1.Current equals comm1.Preset it ramps up, else it ramps down.

A typical use might be to ramp up a power supply when it is turned on. In this case comm1 would be the PwrSC, comm2 is the voltage control manipulated by the operator and ctl1 is the hardware voltage control for the power supply.

Arguments

Arguments are processed using Unix long argument syntax.
--mngr <fn>

The CONFLIST file from which to obtain the configuration information.

If this is not specified it defaults to "MNGRconf" in the current working directory (i.e. the directory where the program was started).

--mngr_pn <fn>

The program name to use when parsing the CONFLIST file.

If this argument is not specified it generally defaults to the program name.

--show_tbl

If this argument is present the contents of the CONFLIST table is printed to stderr
--diag

If this argument is present stdout and stdin are left open and the program may be killed by SIGINT.

This argument is useful when setting up the parameters for RAMPmngr because it makes it very easy to kill and restart the program after changing the config file.

--verbose=<n>

Normally the program does it’s work silently. This sets the level of logging information. The number is optional but if provided it must include the "=". If no argument is provided the default level is 1.
0 - work silently
1 - print signon msg, option settings

Configuration name usage

The configuration file uses the libmngr(3mngr) facility to connect internal parameters to the AccelNET database. The mappings for this program are given below.

Parameters needed by this program can be combined with parameters belonging to other programs. The "program name" field in the configuration file differentiates the entries.

RAMPmngr uses "RAMPmngr" as the program name when searching the file.

Eight groups are supported.

<comm1 0> - required

PosSC or PwrSC or whatever
- starts ramp up cycle when Current == Preset
- starts dn cycle when Current != Preset
<comm2 0> - optional

VCset or DCset or whatever up - end of ramp cycle setting

if this is not supplied ctl1.PhyMax is used

<comm3 0> - optional

VCset2 or DCset2 or whatever dn - end of ramp cycle setting

if this is not supplied ctl1.PhyMin is used

<ctl1 0> - required

VC or DC or whatever - parameter to be ramped

<const1 0> - optional

up - number of steps in ramp

if not supplied steps defaults to 1

<const1 1> - optional

up - ramp behavior

See the description above.

<const1 2> - optional

up - ramp deltaT (in seconds)

This is the amount of time to wait between steps.

if not supplied deltaT defaults to 1

<const2 0> - optional

dn - number of steps in ramp

if not supplied steps defaults to 1

<const2 1> - optional

up - ramp behavior

See the description above.

<const2 2> - optional

dn - ramp deltaT (in seconds)

This is the amount of time to wait between steps.

if not supplied deltaT defaults to 1

Behavior Of Slewing And The Step Parameter

The step parameters (const1/2 0) determine how many steps are involved in slewing. The step size is computed by computing the difference between phymin and phymax and dividing it by the steps value.

The deltaT parameters (const1/2 1) determine how much time to wait between steps.

For example, if the system is configured with steps=100 and deltaT=2 then it will take 200 seconds to ramp to the new value.

EXAMPLE #1 - controlling a power supply

From time to time situations arise where it is desired to ramp up a power supply. A large injector deck or other type of high voltage deck is an example of this.

In this application we want the power supply to ramp up to the operating value when the supply is enabled. When the supply is disabled we want it to immediately go to zero.

RAMPmngr is configured for 100 setups with 1 second between steps.

In this case comm2 is used and comm3 is not.

The MNGRconf entries look like this:
#
# BIA S1-1 EnableSC - the enable control
# BIA S1-1 VC - the VC control setting
# BIA S1-1 VCactual - the DAC setting
#
RAMPmngr|g1|comm1 |0|BIA S1-1|EnableSC|1.0
RAMPmngr|g1|comm2 |0|BIA S1-1|VC |
RAMPmngr|g1|ctl1 |0|BIA S1-1|VCactual|
#
# these are used to control ramp up
# const1 0 - ramp up - number of steps
# const1 1 - ramp up - slew mode
# const1 2 - ramp up - deltaT
#
RAMPmngr|g1|const1 |0|NULL |NULL |100
RAMPmngr|g1|const1 |1|NULL |NULL |1
RAMPmngr|g1|const1 |2|NULL |NULL |1
#
# these are used to control ramp down
# const2 0 - ramp up - number of steps
# const2 1 - ramp up - slew mode
# const2 2 - ramp up - deltaT
#
# in this case none of the entries are needed
# since we are asking that the power supply go
# immediately to zero when disabled
# (notice they are commented out)
#
#RAMPmngr|g1|const2 |0|NULL |NULL |100
#RAMPmngr|g1|const2 |1|NULL |NULL |1
#RAMPmngr|g1|const2 |2|NULL |NULL |1

EXAMPLE #2 - changing a power supply between two values

This is a somewhat fictious example using the same power supply used in example #1.

In this case for some reason or another we want a power supply to slew between two different values depending on the state of <comm1>.

This example uses <comm2> to set the ’enabled" value and <comm3> to set the "disabled" value.

Notice that the number of steps used for the up ramp is different than the number of steps in the down ramp. This has the effect of making the supply ramp downward twice as fast as it ramps up.

If the "const" entries are commented out the supply will switch between the two values rather than ramping.

The MNGRconf entries look like this:
#
# BIA S1-1 EnableSC - the enable control
# BIA S1-1 VCmin - the VC min control setting
# BIA S1-1 VCmax - the VC max control setting
# BIA S1-1 VCactual - the DAC setting
#
RAMPmngr|g1|comm1 |0|BIA S1-1|EnableSC|1.0
RAMPmngr|g1|comm2 |0|BIA S1-1|VCmin |
RAMPmngr|g1|comm3 |0|BIA S1-1|VCmax |
RAMPmngr|g1|ctl1 |0|BIA S1-1|VCactual|
#
# these are used to control ramp down
# const1 0 - ramp up - number of steps
# const1 1 - ramp up - slew mode
# const1 2 - ramp up - deltaT
#
RAMPmngr|g1|const1 |0|NULL |NULL |200
RAMPmngr|g1|const1 |1|NULL |NULL |1
RAMPmngr|g1|const1 |2|NULL |NULL |1
#
# these are used to control ramp down
# const2 0 - ramp up - number of steps
# const2 1 - ramp up - slew mode
# const2 2 - ramp up - deltaT
#
RAMPmngr|g1|const2 |0|NULL |NULL |100
RAMPmngr|g1|const2 |1|NULL |NULL |1
RAMPmngr|g1|const2 |2|NULL |NULL |1

See Also

libmngr(3mngr)

Manual page revision

$Id: RAMPmngr.8,v 1.13 2008/03/14 16:34:23 kitchen Exp $


Table of Contents