ALMA Front End Control - Windows library "FrontEndControl.DLL"
Normally the DLL is installed in "L:\labview\drivers\FE Control2" The user manual describes alternate installation locations and options.
This project builds a Windows DLL for control of the ALMA Front End
and auxiliary devices via the CAN bus (as well as other communication links.)
The software development plan for this library is here:
The algorithms embodied in this library are described here:
The user manual for the LabVIEW
software which uses this library is here:
Added detailed control of mixer heating process to the LabView
ESNs are now displayed in the opposite byte order from previously, but in line with the majority of component builders.
Added FE and cartridge health check functions.
New format for loading signal source configuration from INI file.
Signal source starts up displaying the hardware state correctly (implemented SignalSourceImpl
Bias settings are now retuned whenever the LO frequency is changed.
Refactored optimization exitAction(), FEMCEventQueue
Removed option to log CAN transactions to the MySQL
Removed logFile, logFileReplace, LogMySQL
, and saveConfigToIniFile options from configuration file.
All bias settings are echoed to log file with fixed precision -- easier to read.
correctSISVoltageError is now enabled by default.
Support for stand-alone FEMC module and signal source (BeaSTS
All optimize and I-V curve operations now have a stop button.
CryostatPumping process: Close the solenoid valve and turbo pump, even when gate valve fails to close.
Added subscribeForEvents to FEControl Init and Shutdown.
Fix: Flush log stream before deleting it at shutdown. Some final entries were getting lost.
Fix: Bias values in logs now given in fixed point.
Fixes for compiling with GCC 4.5.0
FrontEndControl GUI now uses power meter and chopper drivers directly for better performance.
Added longer delays when powering on cartridge before measuring SIS bias offset.
Added band 4 and 8 bias optimization support.
Increased timeout while waiting for power meters from 2 seconds to 10.
Optimize LO power detects oscillations around the nominal value. Always picks the higher value.
Skips adjusting LO PA if target IJ01 or IJ11 is 0.
Increased averaging when monitoring SIS current.
Bug fix affecting band 7 mixer heating.
to support ICD unit test suite.
Default config file includes warm bias values for bands 4 & 8.
Optimize LO Power now done to within 3% of IJ target rather than fixed 5 uA.
Added monitoring LORTM SystemGetInterlockStatus
and calibration coefficients.
LORTMGetErrorList does not clear the errors list.
All monitor points may be optionally dumped to the log with logMonitors=1 in config file.
The order in which analog monitor points are read can be randomized.
SIS and magnet monitor values are now returned even when not biased.
CPDS monitors are now returned even when cartridge is off.
Changed PLL monitoring to get real-time values for key lock monitor points.
LORTM accounts for FLOOG offset when setting output frequencies. WCA does not.
Made LORTM reference laser frequency configurable.
Bugfix: workaround for LORTM ambient temp sensor bytes in wrong order.
Bugfix: GCC & std.lib. 3.4.5 fixes logging-related crash.
Bugfix: LORTM error reporting.
Removed monitor point for SIS heater enable because was removed from FE-Computing ICD.
Removed FLOOG offset calculation from LORTM locking; was causing LORTM to lock 30 MHz away from nominal LO ref.
(But this needs to be put back... the FLOOG offset should be applied to the LORTM, not the LO!)
Added delays to LO locking algorithm to account for YTO slewing specs, based on comments from Eric Bryerton.
Extended timeout waiting for power meter readings while optimizing.
Added methods required for image rejection measurement:
- Get LO PA drain voltage setting
- Set LO PA drain voltage as a percentage of maximum
- Enable/disable WCA LO Output
- Added cartGetLocked method to query the lock status from LabVIEW
Fix timing bugs in LORTM methods to get status.
IV curve log file now named for pol and sb.
Fix only error status messages (for GUI) generated in CartAssembly
. All ok status msgs moved to FrontEndImpl
Fix bug where finding no ESNs kills the GUI.
Fix bug where an error in MeasureFineLOSweep
could lead to an infinite loop
Added reading of all installed electronic serial numbers (ESNs.)
Added option to measure SIS bias setting error on cartridge power-on and then subsequently use to correct bias settings.
Added support for operating a cold cartridge with no WCA (for bias module test set.)
Save Window screens are now written to logDir; removed path control from GUI.
Cartridge state control buttons (enabled, observing, SIS, etc.) are initialized to the actual state of the hardware.
Mixer heater operation now logs temperatures and currents to logDir.
I-V Curve now writes both the set and readback values for Vbias to its output file.
Fixed bug where PLL addjust was not being performed after successful lock.
Fixed bug where mixer deflux would not measure heater current during heating.
Reading of SIS voltage and current both support averaging and printing data points to the FE log.
Added separate executable for chopper and signal generator test programs.
Added status bar and status message history dialog.
Added fine LO stepping measurement, replacing cartStepMeasureLOPowerAmps (introduced in 2.2.0.)
Fixed thermal logging which was broken somewhere along the way. Now it is always on and sent to logDir.
Added PA Adjust function to Band 3. This will be useful when characterizing several WCAs with a single cold cartridge.
Improved error messages when unable to connect to FE, power meters, or chopper.
Failure to connect to power meters does not prevent use of chopper.
Added power meter readouts page.
Integrated control of the power meter and the chopper.
Added check for successful connection to the front end on startup (not working well yet.)
Added cartStepMeasureLOPowerAmps method. This is a special diagnostic method not for normal use:
- Steps the YTO and adjusts the PA drain voltage to hold the mixer current constant.
Refactored/simplified optimization and measurement routines.
Log now goes to a specified directory and is named automatically with the date and time.
I-V curve and optimization-related measurements create a data file in the log directory.
Added measurement of SIS junction current vs. magnet current.
Added measurement of IF power vs SIS voltage or LO PA Drain voltage.
Updated band 3 optimization routines to latest version from cartridge manual.
Band 7 and 9 optimization methods are fully supported, but not fully automated.
Reduced NICAN queue sizes so that CAN0 and CAN1 can both be used at once.
Fixed bug where optimizing the LO power amp could stop short due to unsteady junciton current readings.
- It now averages three current readings at each step.
Fixed bug where WCA is in minimal monitoring mode when first powered on.
Fixed annoyance where Zero Integrator gets turned off whenever LO frequency is set.
Fixed library+GUI bugs in manual setting magnet current.
Fixed GUI bug in manual setting junction voltage.
Changed cryostat temp sensor reading method to workaround slow sensor electronics.
Adopted Matthew's version of the GUI with the Save Window button.
Software now displays version number on the front panel.
Removed need for "Do init" control in LabVIEW
client. Library supports multiple simultaneous client apps.
Added LORTM support.
Monitoring may be turned off for individual CCs and WCAs
Band 3 optimization: added chart, software now sets power meters to Watts.
Fixed bug which gave bad data when reading INI file.
Added support for operating WCA and CC with no CPDS (CPDS=0 in INI file.)
Useful if external power supplies are used instead of CPDS.
Simplified CAN & SocketClient
send/receive queue code.
I belive the crash bug was lurking there but I did not find the exact bug mechanism.
Changes to SIS/Magnet GUI screens.
Added controls for manual setting of magnet current.
Converted adjustVJVD function into separate setVJVD and getVJVD funcs.
Fixed(?) multi-threaded logging issues causing crashes, especially when optimizing PA drive.
Added INI file control of SIS open/closed loop.
[Note added 2008-07-22]: Crash bug is not fixed in this version.
Fixed bugs found while operating in Chile.
Removed 'queryCartridgeState' action on startup -- was causeing EU & EA systems to freeze.
Consequence of this is that the software does not show which cartridges are on and biased at startup.
Added socket client capability. Needs testing and debugging.
Made configuration from INI file the default, rather than config from database.
Initial release to the EU-FEIC and EA-FEIC.
prior to 2.1.0: Internal release to NA-FEIC only.