05-24-2025 10:22 PM
Hi all,
I've been trying to use Vis from Horiba to control the detector (Symphony II CCD). However, the acquire spectral.vi causes my LabVIEW to crash every time I run. Once I delete it from the code and the code works fine and never crashes the software. Has anyone encounter this issue before? I'll be happy to discuss more details if you have experience using the old Vis from Horiba.
Attached is the code that I ran.
05-25-2025 12:56 AM - edited 05-25-2025 01:02 AM
I don't have any of the drivers installed, but you might have a problem with execution order. LabVIEW does not execute left to right, but order is determined by the wiring (i.e. dataflow).
The way your VIs are wired, "spectral reformat", SetupCCD" and "read temperature" will all run in parallel and it is impossible to tell what happens first. That could create a problem.
If you want the subVIs to execute in the order they are arranged on the diagram, you need to wire the error in the correct order, for example.
(These are all just guesses, because I am not familiar with these drivers.)
05-25-2025 01:57 AM - edited 05-25-2025 02:02 AM
Hi,
I try to debug and I found when I delete acquire spectral vi from the code then the code works fine and won't crash. I did wire the errors in order so I think the order might not be a problem? The first picture is the code that crashed. The second didn't crash and I could see the temp from the front panel (the connection is good)
05-25-2025 09:31 AM
I managed to find a link to a 2012 Horiba manual to the Symphony II camera, and from there a PDF of the LabVIEW manual (which, in trying to capture the link to post here, the "new and improved Chrome/Acrobat" system totally refused to show me the link, and in trying to retrace my steps to paste the link here, I also lost the link to the LabVIEW manual, version 0.9.something).
I can tell you that the manual described code written a long time ago, running on Windows XP and LabVIEW 7. Some of the VIs have Error In/Error Out terminals (interesting that some of the terminal names are in French, and are not in the customary lower corner connectors), some have one (more typically Error In), some have none.
You can always "force" execution the "FPGA way" by enclosing the VI in a very small Frame Sequence and using "Data In/Data Out" wires (and the Three Rules of Data Flow) to make sure that the VI so wrapped "waits for all its inputs to be satisfied" before it runs, and "all following VIs wait until the wrapped VI finishes".
My other suggestion is to get in touch with Horiba and request the latest version of its LabVIEW interface to their proprietary software. With a little luck, they'll have something that is at least Windows 10 compatible (and might work with Windows 11).
Bob Schor
05-25-2025 12:24 PM - edited 05-25-2025 12:31 PM
I can't believe these are commercial drivers with input and output terminal going in all directions, very unusual error IO placement, etc. The super ugly icons don't help either. These are from back in the days where the error wire was still pink!
.
What makes things worse are all the overlapping wires in the caller and a general hairball of wires. This makes it very hard to even "follow the wire" for debugging. Is there a reason that the CCD need to be initialize with ever iteration of the loop? That typically needs to be done exactly once per run.
Just looking at the code, I have no confidence at all in this program. Too many places for bugs to hide.
I assume you are using LabVIEW 32bit.