The program registers with dbman as PIDmngr.
If this is not specified it defaults to "MNGRconf" in the current working directory (i.e. the directory where the program was started).
If this is not specified it defaults to "PIDmngr".
This argument is useful when setting up the parameters for the PID loop(s) because it makes it very easy to kill and restart the program after changing the config file.
If no argument is provided the default level is
1.
0 - work silently
1 - print signon msg, option settings
2 - print signon msg, option settings, loop setup info
Parameters in the configuration file where this type of scaling is necessary use the Preset field in the configuration file as the full scale value for performing the conversion.
For example, using the type 1 filter to control a bending magnet requires a field strength control (comm1), a field reading from a device such as a hall probe (resp1), and a current control (ctl1).
In our example the hall probe controller has a range of +/- 30KG, and the power supply can provide 60A maximum which is capable of exciting the magnet to approximently 15KG.
The field strength control is a virtual parameter (i.e. not associated with hardware) so PhyMin and PhyMax are set as appropriate, in this case 0 to 15KG.
The first problem is to set the configuration so that the cmd and feedback elements are scaled in the same way. That is we want to scale both of them so that most of the positive internal parameter range of 0.0 to 1.0 is used.
Since the magnet is only capable of 15KG maximum it seems this is a likely number to use so we set the Preset fields for comm1 and resp1 to 15000.
The output variable is easy, 60 amperes is the power supply maximum and corresponds to 15KG so we set the Preset field for ctl1 to 60.
Parameters listed as required must be present in the config file for PIDmngr to operate on the group.
Parameters listed as optional are not required and will be ignored or overridden by defaults as appropriate.
The usage of all other parameters is dependent on filter type. See the appropriate filter section below.
The type1 filter is the classic PID loop. It consists of a proportional, an integral, and a derivative element.
The sampling rate is 1Hz and is presently hardcoded in the program.
The setup parameters are designed so that each function name is used for a an individual filter block within the PID loop. For example, int1 is assigned to the parameters related to the proportional filter section of the PID loop.
Index fields within the function are assigned to individual filter parameters. Names such as Index0 are used in the manual page for clarity and should be replaced with the integer value in the MNGRconf file, i.e. Index0 is replaced with 0.
All setup parameters may be entered with or without a corresponding database parameter.
If there is no database parameter, i.e. the label and refname fields are set to NULL, the value of the Preset field is used as the value of the parameter.
If there is a database parameter, i.e. the label and refname fields are set to a valid parameter tag name, the value from the AccelNET database is used and the Preset field is ignored.
If a database parameter is used the control key should be set to RSet and the parameter should be owned by whatever task PIDmngr registers as and the permissions should be set for direct update by users and direct update for the owner.
The control key should be set to RSet.
The parameter should be owned by whatever task PIDmngr registers as and the permissions should be set for direct update by users and direct update for the owner.
See the section "Parameter scaling information" above.
0.0 - off
1.0 - on
The control key should be set to IncN.
The parameter should be owned by whatever task PIDmngr registers as and the permissions should be set for indirect update by users and unconditional update for the owner.
0.0 - nop
1.0 - clear
The control key should be set to Mom.
The parameter should be owned by whatever task PIDmngr registers as and the permissions should be set for direct update by users and direct update for the owner.
0.0 - nop
1.0 - tune
2.0 - not_used
3.0 - error
Usually this parameter is named TuneSR in the database.
The control key should be set to RSet.
The parameter should be owned by whatever task PIDmngr registers as and the permissions should be set for no update by users and direct for the owner.
Many times this control is named Delta<something> in the database. For example, DeltaG might be used in the case of a PID loop for a bending magnet.
The control key should be set to RSet.
The parameter should be owned by whatever task PIDmngr registers as and the permissions should be set for no update by users and direct for the owner.
PhyMin, PhyMax, SpanMin, and SpanMax should be set to a value large enough to handle the maximum difference between the cmd input (comm1) and the feadback input (read1).
Ownership and permissions for the parameter do not matter and should be set as appropriate for the I/O manager obtaining the information from the hardware.
See the section "Parameter scaling information" above.
If this parameter is present then the current value is tested against the preset field and if they don’t match the tuning loop is inhibited.
Ownership and permissions for the parameter do not matter and should be set as appropriate for the I/O manager obtaining the information from the hardware.
The parameter should be writable by whatever task PIDmngr registers as.
See the section "Parameter scaling information" above.
If the difference is greater than deadband then tune status is set to "tune" and a correction is calculated.
This parameter is a positive quantity scaled in database units.
The parameter range is 0.0 to 10000.0.
If this entry is missing from the config file it defaults to 0.1.
If this entry is missing from the config file it defaults to 0.0.
The range is 0.0 to 1000.0.
If this entry is missing from the config file it defaults to 0.1.
If this entry is missing from the config file it defaults to 0.0.
The range is 0.0 to 1000.0.
If this entry is missing from the config file it defaults to 0.1.
If this entry is missing from the config file it defaults to 0.0.
The int0 function group is used for parameters related to the operation of the PID loop.
The filter parameters all use int1 as the function name.
Index fields within the function are assigned to the filter parameters. Names such as Index0 are used in the manual page for clarity and should be replaced with the integer value in the MNGRconf file, i.e. Index0 is replaced with 0.
All setup parameters may be entered with or without a corresponding database parameter.
If there is no database parameter, i.e. the label and refname fields are set to NULL, the value of the Preset field is used as the value of the parameter.
If there is a database parameter, i.e. the label and refname fields are set to a valid parameter tag name, the value from the AccelNET database is used and the Preset field is ignored.
If a database parameter is used the control key should be set to RSet and the parameter should be owned by whatever task PIDmngr registers as and the permissions should be set for direct update by users and direct update for the owner.
The control key should be set to RSet.
The parameter should be owned by whatever task PIDmngr registers as and the permissions should be set for direct update by users and direct update for the owner.
See the section "Parameter scaling information" above.
0.0 - off
1.0 - on
The control key should be set to IncN.
The parameter should be owned by whatever task PIDmngr registers as and the permissions should be set for indirect update by users and unconditional update for the owner.
0.0 - nop
1.0 - clear
The control key should be set to Mom.
The parameter should be owned by whatever task PIDmngr registers as and the permissions should be set for direct update by users and direct update for the owner.
0.0 - off
1.0 - in limits
2.0 - tune
3.0 - timeout (and still tuning)
4.0 - not used
5.0 - not used
6.0 - not used
7.0 - error
Usually this parameter is named TuneSR in the database.
The control key should be set to RSet.
The parameter should be owned by whatever task PIDmngr registers as and the permissions should be set for no update by users and direct for the owner.
Many times this control is named Delta<something> in the database. For example, DeltaG might be used in the case of a PID loop for a bending magnet.
The control key should be set to RSet.
The parameter should be owned by whatever task PIDmngr registers as and the permissions should be set for no update by users and direct for the owner.
PhyMin, PhyMax, SpanMin, and SpanMax should be set to a value large enough to handle the maximum difference between the cmd input (comm1) and the feadback input (read1).
Ownership and permissions for the parameter do not matter and should be set as appropriate for the I/O manager obtaining the information from the hardware.
See the section "Parameter scaling information" above.
Two interlock inputs are provided. Index0 is input 1 and Index1 is input 2.
If either of these parameters are present then the current value is tested against the preset field and if they don’t match the tuning loop is inhibited.
Ownership and permissions for the parameter do not matter and should be set as appropriate for the I/O manager obtaining the information from the hardware.
The parameter should be writable by whatever task PIDmngr registers as.
See the section "Parameter scaling information" above.
If the difference is greater than deadband then tune status is set to "tune" and a correction is calculated.
This parameter is a positive quantity scaled in database units.
The parameter range is 0.0 to 10000.0.
If this entry is missing from the config file it defaults to 0.1.
If the timeout value is exceeded the loop will continue to tune but the TuneSR value will indicate a timeout.
The parameter range is 1.0 to 60.0.
If this entry is missing from the config file it defaults to 1.0.
It specifies the crossover frequency between the integrator and the differentiator.
The range is 0.0 to 1000.0.
If this entry is missing from the config file it defaults to 0.1.
If this entry is missing from the config file it defaults to 0.0.
If this entry is missing from the config file it defaults to 0.0.
This can be useful in cases where relationship between the control and the feedback parameter is not monotonic over the entire control range and it is desired to limit the control range to the portion which IS monotonic.
The int0 function group is used for parameters related to the operation of the PID loop.
The filter parameters all use int1 as the function name.
Index fields within the function are assigned to the filter parameters. Names such as Index0 are used in the manual page for clarity and should be replaced with the integer value in the MNGRconf file, i.e. Index0 is replaced with 0.
All setup parameters may be entered with or without a corresponding database parameter.
If there is no database parameter, i.e. the label and refname fields are set to NULL, the value of the Preset field is used as the value of the parameter.
If there is a database parameter, i.e. the label and refname fields are set to a valid parameter tag name, the value from the AccelNET database is used and the Preset field is ignored.
If a database parameter is used the control key should be set to RSet and the parameter should be by owned whatever task PIDmngr registers as and the permissions should be set for direct update by users and direct update for the owner.
The control key should be set to RSet.
The parameter should be owned by whatever task PIDmngr registers as and the permissions should be set for direct update by users and direct update for the owner.
See the section "Parameter scaling information" above.
0.0 - off
1.0 - on
The control key should be set to IncN.
The parameter should be owned by whatever task PIDmngr registers as and the permissions should be set for indirect update by users and unconditional update for the owner.
0.0 - nop
1.0 - clear
The control key should be set to Mom.
The parameter should be owned by whatever task PIDmngr registers as and the permissions should be set for direct update by users and direct update for the owner.
0.0 - off
1.0 - in limits
2.0 - tune
3.0 - timeout (and still tuning)
4.0 - in limits and sleeping
5.0 - out of limits and sleeping
6.0 - not used
7.0 - error
Usually this parameter is named TuneSR in the database.
The control key should be set to RSet.
The parameter should be owned by whatever task PIDmngr registers as and the permissions should be set for no update by users and direct for the owner.
Many times this control is named DeltaG in the database.
The control key should be set to RSet.
The parameter should be owned by whatever task PIDmngr registers as and the permissions should be set for no update by users and direct for the owner.
PhyMin, PhyMax, SpanMin, and SpanMax should be set to a value large enough to handle the maximum difference between the cmd input (comm1) and the feadback input (read1).
Many times this control is named CntDown in the database.
The control key should be set to RSet.
The parameter should be owned by whatever task PIDmngr registers as and the permissions should be set for no update by users and direct for the owner.
PhyMin, PhyMax, SpanMin, and SpanMax should be set to a value large enough to handle the maximum timer value entered into the int0 index3 parameter.
Ownership and permissions for the parameter do not matter and should be set as appropriate for the I/O manager obtaining the information from the hardware.
See the section "Parameter scaling information" above.
Two interlock inputs are provided. Index0 is input 1 and Index1 is input 2.
If this parameter is present then the current value is tested against the preset field and if they don’t match the tuning loop is inhibited.
Ownership and permissions for the parameter do not matter and should be set as appropriate for the I/O manager obtaining the information from the hardware.
The parameter should be writable by whatever task PIDmngr registers as.
See the section "Parameter scaling information" above.
The Preset field is used for the value to send to the database.
The index numbers do not need to be consecutive. This makes it easy if you wish to comment one out in the CONFLIST file.
The purpose for which this was implemented is to clear the interlock bypass for the Faraday cup in front of the particle detector in the AMS systems. The problem here is trying to prevent the user from accidently putting the 13C or 12C beam on the detector and cooking it.
If the difference is greater than deadband then tune status is set to "tune" and a correction is calculated.
This parameter is a positive quantity scaled in database units.
The parameter range is 0.0 to 10000.0.
If this entry is missing from the config file it defaults to 0.1.
This takes care of situations where the BM needs to be tuned as precisely as possible but after the loop goes to sleep the BM may be allowed to be inside of a larger deadband without the tune status read, i.e. resp1 indicating "out of limits and sleeping".
If this parameter is not present the deadband_sleep value is set to the same value as the tuning deadband.
If the timeout value is exceeded the loop will continue to tune but the TuneSR value will indicate a timeout.
The parameter range is 1.0 to 60.0.
If this entry is missing from the config file it defaults to 1.0.
This is meant to be used with switching magnets where the power supply has a polarity switch and the current control is always positive.
It specifies the crossover frequency between the integrator and the differentiator.
The range is 0.0 to 1000.0.
If this entry is missing from the config file it defaults to 0.1.
If this entry is missing from the config file it defaults to 0.0.
If this entry is missing from the config file it defaults to 0.0.
The type1 filter is on it’s way to obsolesence so don’t use it.
The type2 filter will eventually become the type1 filter.
The difference between them are:
The proportional filter has been eliminated because it doesn’t make sense to have a proportional filter since the integrator is already DC coupled because of the integrator.
The type1 filter has independent frequency controls for each filter section. The type2 filter has one frequency control to specify the frequency at which control moves from the integrator to the differentiator.
The MNGRconf setup parameters have been rearranged to simplify them.