WP 12463: This will close this FRS: https://services1.ligo-la.caltech.edu/FRS/show_bug.cgi?id=5861
We changed PSLFSS and PSLPMC model and related MEDM screens and confirmed that the PMC and FSS relocked right away before RyanS started his work in the PSL room. Guardian was modified to accomodate this. Safe SDF for PMC and FSS were updated.
(FYI, the motivation for this ancient ticket was to kill the habit of using arbitrary number for ON/OFF status, which was really bad in all PSL models. Depending on who wrote what, sometimes 1 means ON, sometimes -1, some other times -30000, and these status were cdsEpicsInput which are floating point. Now they're cdsEpicsBinIn, which is binary, ON is 1, OFF is 0.)
I pulled pslfss and pslpmc model from svn to close the FRS above. We'll have to keep some local modifications unique to LHO at least until the end of the run. Due to local changes, the models will not be committed to SVN upstream.
Changed models: ${userapps}/release/psl/common/models/pslfss.mdl, ${userapps}/release/psl/common/models/pslpmc.adl, ${userapps}/release/psl/h1/models/h1pslfss.mdl.
See the first two screen shots.
Local modifications 1: Adding back CALI filters.
These filters are not used any more from this point on. However, removing these from DAQ means that we cannot trend the data of these back without using NDS2 and specifying epoch, which is not a great thing to do in the middle of the run.
See the first and second screen shot (red in the left panel).
Local modifications 2: Move NPRO_TEMP_OUT out of the common model and into the H1 model.
Dave originally added NPRO_TEMP_OUT channel to DAQ at 256Hz locally to the common FSS model in May 2023. However, he moved it to h1pslfss.
Local modifications 3: Don't change binary to DAC count and convert it back to binary
There was such a block in the common PMC model in the SVN (1st screen shot, right panel, green), which was eliminated in the local common model for the sake of simplicity.
Local modifications 4 (cosmetic): Define a constant representing DAC count that will produce +10V in the model.
Blue in the first two screen shots.
Dave thinks that this needs to be in the top level of local models (not in the common model) right before the signal goes to DAC in the future. That way, when we upgrade the DAC we can just change the constant.
Manually changed: ${userapps}/release/psl/common/medm/PSL_PMC.adl as the file on SVN still uses the old logic.
Pulled from SVN: ${userapps}/release/psl/common/medm/PSL_FSS.adl and ${userapps}/release/psl/common/medm/FSS/MAN.adl (and other things in FSS directory).
In isc_library.py,
L200 if ezca['PSL-PMC_LOCK_ON'] != -30000:
was changed to
L200 if ezca['PSL-PMC_LOCK_ON'] == 0:
In LASER_POWER.py,
L157 elif self.timer['wait_for_busy'] and ezca['PSL-ROTATIONSTAGE_STATE_BUSY'] == 0 and ezca['PSL-PMC_LOCK_ON'] == -30000:
L161 elif self.timer['wait_for_busy'] and ezca['PSL-ROTATIONSTAGE_STATE_BUSY'] == 1 and ezca['PSL-PMC_LOCK_ON'] == -30000:
were changed to
L157 elif self.timer['wait_for_busy'] and ezca['PSL-ROTATIONSTAGE_STATE_BUSY'] == 0 and ezca['PSL-PMC_LOCK_ON'] == 1:
L161 elif self.timer['wait_for_busy'] and ezca['PSL-ROTATIONSTAGE_STATE_BUSY'] == 1 and ezca['PSL-PMC_LOCK_ON'] == 1:
See screen shots 3 and 4. (You can see that the old setpoints were float and the new setpoints are binary.)
It's not shown in the last screen shot but I accepted H1:PSL-FSS_AUTOLOCK_ON in the afternoon after RyanS locked the FSS again.
H1:PSL-PMC_LOCK_ON, H1:PSL-PMC_TF_IN_ON, H1:PSL-PMC_RAMP_ONI, H1:PSL-PMC_ALIGNRAMP_ON, H1:PSL-PMC_BOOST, H1:PSL-PMC_BLANKING, H1:PSL-FSS_AUTOLOCK_ON, H1:PSL-FSS_TEST1_ON, H1:PSL-FSS_TEMP_LOOP_ON_REQUEST
For these channels, 0 (zero) means OFF, and non-zero means ON. This doesn't change. It's just that many numbers like -1 and 1 and -30000 used to be used as "non-zero" depending on who wrote what, but from this point "non-zero" can only mean 1.
However, due to the change from float to integer, if you trend these channels, non-zero value for the data older than 10AM-ish Pacific on Apr/22/2025 is not displayed correctly. Fortunately zero is still zero (Jonathan confirmed), so if you trend the data to see if something was ON, check that the channel was not zero, i.e. H1:PMC-TF_IN_ON != 0 rather than H1:PMC-TF_IN_ON == -30000.
H1:PSL-FSS_TEST2_ON
Semantics of this signal changed. It used to be that ON=0 (zero) and OFF=1 to compensate the inverted logic in the hardware, but now ON=1, OFF=0 as the logic inversion is in the model.
The same caveat about float to integer applies. If you want to trend this channel, check H1:PSL-FSS_TEST2_ON ~=0 rather than H1:PSL-FSS_TEST2_ON == 1, and then you have to be aware that H1:PSL-FSS_TEST2_ON ~=0 means OFF for data older than 10AM-ish Pacific on Apr/22/2025, but the same thing means ON for newer data.