Tuesday, December 2, 2008

Testing SISPI Components with Fermilab Hardware

I spent Movember 24-26 at Fermilab, in order to get the shutter control integrated into the Observation Control stream. Testing prior to this showed that the ICS_SHUTTER.vi SML device successfully received commands from a (locally running) OCS and passed the commands to the Shutter Hardware Interface VI developed by Allen.

At Fermilab, I started tests with OCS running on a Linux box and SML running on the Windows machine (where the cRIO used for Shutter control was installed). The two machines could communicate via Shared Variables, but the PML devices could only communicate one way. After significant debugging (of order one full day), I believe the problem is the Windows Firewall, which is restricting the network communications. Solution? Remove the Windows machine from the control stream.

Enter Allen with his spare cRIO and updated Shutter Interface (hosttcp.vi). Once the Shutter was physically connected to the cRIO controlled from the Linux machine, completing the OCS-SML-cRIO-Shutter circuit was trivial. Thus the minimal goals of this test were fulfilled.

We then moved on to testing PanDev/PanView with simultaneous Shutter control via the OCS. The documentation on setup, installation, and running PanDev was sparse, and it required significant communication with Ann and Marco in order to complete the configuration. Initially, we took a series of images with Juan acting as "PanDev" and controlling the PANs manually while the OCS controlled everything else. Below is an example of one such image. You can see me crouching on the floor and looking at the camera, with my face neatly split in two by the gap between the CCDs:



I also took an automated series of images controlled by the OCS, which included readout of simulated data from the PANs (these images are not nearly as exciting to look at). That means we finally have the two parallel control streams (OCS-SML-cRIO-Shutter plus OCS-PanDev-PAN-IB) successfully working together.

Apart from the tedious and sparsely-documented installation, configuration, and debugging process, the only significant software problem was the cRIO occasionally dropping communication with hosttcp.vi, which was solved by Stopping and then Running that vi. I believe the cRIO has an internal timeout of 60 seconds, so perhaps hosttcp.vi needs to be modified to send something like a "still alive" message to the cRIO every 30-45 seconds to prevent the cRIO from dropping the connection.

The next step will be to automate the collection of actual images with the CCDs in the MCCDTV. While OCS talked to PanDev with no problems, there is still some debugging to be done before the entire process will work seamlessly. Marco has some ideas on resolving the remaining issues; these will be followed up over the next few weeks.

Additional documentation regarding these tests will be added to doc-DB (likely as a presentation to be given at the Dec 8 SISPI Meeting), and a snapshot of the software and configuration settings used for these tests will be preserved within the SISPI repository.

No comments: