Hi Pete,
Here’s a message I sent to Philip Taylor at
Observatory Sciences recently in response to a similar inquiry. I’ve
included the attachments from that message as well.
Mark
Hi Philip,
There is no more documentation on the fast feedback, that
needs to be done.
I've attached an example .template file. The 7 strings
parsed are macro parameters to the fast_pid_control.db file.
INPUT: The name of the asynPort which provides the
readback
INPUT_DATA: The asyn "drvInfo" string which is
used to identify the data parameter on the asynFloat64 interface.
INPUT_INTERVAL: The asyn "drvInfo" string which is
used to identify the input interval parameter on the asynFloat64 interface.
This is a time in seconds beween data samples. The input driver must
provide this number.
ICHAN: The asyn "addr" field for the input driver,
i.e. which ADC channel, etc.
OUTPUT: The name of the asynPort for the output signal
OUTPUT_DATA: The asyn "drvInfo" string which is
used to identify the data parameter on the asynFloat64 interface.
OCHAN: The asyn "addr" field for the output
driver, i.e. which DAC channel, etc.
The DT field of the EPID record is used to control how often
the feedback is done. It is always an integer multiple of the input
callback interval. If the multiple is greater than 1 then averaging is
done in the device support.
The SCAN field of the EPID record is just used to control
how quickly a "snapshot" of the actual PID values are done.
I've attached screen shots of the pid_control.adl screen,
the pid_parameters.adl screen and the pid_plot_readback screen.
These were all done with the first PID record in the
template file. This is an IP330 input channel 0 connected to DAC output
channel 0. I changed the setpoint (red) and you see the ADC input respond
(blue).
I found a bug in the DAC128V driver while putting this
together, and have committed a new version here:
https://subversion.xor.aps.anl.gov/synApps/dac128V/trunk/
Let me know if you have more questions or problems.
Cheers,
Mark
Can someone enlighten me as to how to initialise the
latest version of the fast epid record?
I used to use the following but the INP field has
changed in the latest version
record(epid, "BL18I-OP-DCM-01:FPMTR:FFBS3")
{
field(DTYP, "Fast Epid")
field(INP, "@ip330 6 DAC1 0")
From the code I can see there are an additional 3
fields in the INP so it now requires all of the following
field(INP,”@<inputName>
<inputChannel> <inputDataString> <inputIntervalString>
<outputName> <outputChannel> <outputDataString>”)
So what are inputDataString, inputIntervalString,
outputDataString?
I guess there is an example somewhere?
Thanks
Pete Leicester
Diamond Light Source
--
This
e-mail and any attachments may contain confidential, copyright and or
privileged material, and are for the use of the intended addressee only. If you
are not the intended addressee or an authorised recipient of the addressee
please notify us of receipt by returning the e-mail and do not use, copy,
retain, distribute or disclose the information in or attached to the e-mail.
Any opinions expressed within this e-mail are those of the individual and not
necessarily of Diamond Light Source Ltd.
Diamond Light Source Ltd. cannot guarantee that this e-mail or any attachments
are free from viruses and we cannot accept liability for any damage which you
may sustain as a result of software viruses which may be transmitted in or with
the message.
Diamond Light Source Limited (company no. 4375679). Registered in England and Wales
with its registered office at Diamond House, Harwell Science and Innovation
Campus, Didcot, Oxfordshire,
OX11 0DE, United Kingdom