ISISComputingGroup / IBEX

Top level repository for IBEX stories
5 stars 2 forks source link

SURF: Control of NIMA Trough #3783

Closed kjwoodsISIS closed 5 years ago

kjwoodsISIS commented 5 years ago

As a SURF scientist, I want IBEX to support the NIMA Trough, on my instrument, so that I can use it with IBEX in my experiments.

Acceptance Criteria

  1. Solution provides equivalent functionality to existing solution in SECI.
  2. I can control the NIMA Trough via the IBEX GUI
  3. I can control the NIMA Trough via genie_python

Notes

  1. SECI uses the existing, manufacturer-supplied, set of VIs to control the NIMA Trough. Please consult it.
    1. Given that the VIs are manufacturer supplied, it may be best to consider an lvDCOM solution.
    2. The NIMA Trough code is located here: C:\LabVIEW Modules\Drivers\Nima Trough. There may be some documentation in the sub-folders.
  2. We may wish to consider controlling the NIMA Trough via a separate PC, with only a simple level of control on IBEX. The manufacturer's VIs already provide a lot of functionality. In making this decision, we should consider the following aspects to controlling the NIMA Trough:
    • there is a need to control it during an experiment
    • there is a need to control it during set up
    • there is a need to control it whilst cleaning it
  3. One of the key features of the existing NIMA Trough VI is the ability to display graphs showing the status of the thin-film created by the trough. The scientists use these graphs while performing the experiment. We should consider how these graphs will be displayed to the scientist (e.g. in IBEX? or via the existing VI?).
  4. A few more details on the SURF Instrument Details page.
John-Holt-Tessella commented 5 years ago

Ticket will involve some analysis.

KathrynBaker commented 5 years ago

Having had a quick look at the SECI component for the NIMA trough on SURF (so potentially limited to a small use case) all the blocks in use look at Nima Trough Interface.vi, there are about 15 items on there, all but one then looks at Nima Trough.vi to get the data that is fed back. Nima Trough.vi is also included in the SECI component, so whilst not scriptable, the entirety of the manufacturers VI is available. Given the clustered nature of the vendor vi front panel controls we are not going to be able to use LVDCOM on it directly. My instinct for something achievable would be to use the vendor vi (Nima Trough.vi) and run it and leave it visible for the graphs and controls, and probably LVDCOM Nima Trough Interface.vi to make what is currently accessed as blocks available as PVs. (This is the kind of setup currently in use on the HIFI Cryomagnet, all be it SECI at the other end of the channel access from the LVDCOM rather than IBEX.) Migrating the system to EPICS/IBEX if a driver doesn't already exist would be a significant undertaking, there is some information in the help files for LabVIEW, but I would measure the time needed to define the requirements to run this natively within IBEX/EPICS in months.

kjwoodsISIS commented 5 years ago

So, how about we do this:

  1. Setup a dedicated PC, running LabVIEW, to control the NIMA Trough. This helps address the three bullet points in Notes 2 above. The PC can live with the trough.
  2. As Kathryn suggests, create an lvDCOM interface for Nima Trough Interface.vi to create the necessary blocks and a simple OPI. Will this allow us to display the graphs noted above?
ChrisM-S commented 5 years ago

If the current VI runs on the control PC successfully already, we significantly reduce the reliability of the the control system by putting a second PC in the loop (two things to fail not one). In the context of a running experiment, this extra PC is also a new critical component who's failure would also lose us beam time (another PC is also a significant support load if it is critical component and something which could fail with a full disk, faulty ports, hardware, memory or connector's etc.)

it might be that we could simply provide the control required for an experiment via serial and leave the complex setup to a laptop - but this would still seem to be a poor solution given the current setup appears to already work successfully for the scientists.

Kevin-Woods-Tessella commented 5 years ago

If it is feasible the control/monitor the trough while, at the same time, controlling the rest of the instrument, then fine, the manufacturer's VI can run on the NDX machine. Worth checking this with the instrument scientist as you are developing the lvDCOM/IOC/OPI.

KathrynBaker commented 5 years ago

At the moment their VI is loaded into SECI usually, it would need to be a separate open window on the NDX, and in time we may need to revisit how the graphs etc. are viewed, but in the spirit of an MVP for our current setup, leave it all on the NDX, launch the VI front panel within the system (this can be done from the interface VI – minor change and a technique used in other places under SECI), LVDCOM the interface, and if we ever get to running clients remotely we can revisit the extra control/interactions and ways to manage them at that point.

Kevin-Woods-Tessella commented 5 years ago

Sounds good.

FreddieAkeroyd commented 5 years ago

Do we know if the vendor who supplied the VIs has alternative non-labview control software available?

kjwoodsISIS commented 5 years ago

The original vendor, the one that supplied the VIs, has been taken over by another company. The new company is Biolin Scientific. They have download page for "KSV NIMA Software", but the page contains no download link (unlike their other download pages).

I have posted a support query to their web-site, asking if the "KSV NIMA" software is available.

DominicOram commented 5 years ago

Should we hold off on doing the lvDCOM for this then?

FreddieAkeroyd commented 5 years ago

Just to summarise the decision, we will continue with lvdcom to the existing SECI VI as it is a simple interface to the more complex vendor vi and so easy to do, but will investigate if there is alternative vendor software that might be of use for any future purpose as the status of the current vendor VI is unknown

DominicOram commented 5 years ago

Aaron and I are doing the IOC side but there are a couple of labview changes that are required. @KathrynBaker or @davidkeymer, can you look at these?

KathrynBaker commented 5 years ago

The interface is just an event case, it is called frequently from the manufacturers VI – the LabVIEW will need a few larger changes than normal. The version in SourceSafe is also not the same version as is currently on SURF (the interface front panel is the same, but the code behind is slightly different), so that can be updated at the same time.

aaron-long commented 5 years ago
kjwoodsISIS commented 5 years ago

The manufacturer has finally responded to my support request. They have made additional software available. I have downloaded a copy and stored it here: \\isis\shares\ISIS_Experimental_Controls\NIMA Trough\Nima_TR8.1.zip. However, I suspect it is just compiled LabVIEW software. Can someone please confirm.

P.S. For the avoidance of doubt - there is no requirement to change what we have done in this ticket to interface with the new software. The purpose of the note above is merely to register that we now have the above software. I have also made a note of the software in the instrument wiki pages.

KathrynBaker commented 5 years ago

It’s an installer, so I’d have to assume that it will install compiled code, I’ve not run it on my system however, so I could be wrong. There are certainly no VIs visible.

kjwoodsISIS commented 5 years ago

I tried installing the NIMA software. The icon for the executable gives it away: it is compiled LabVIEW. Capture3. They also license NI's VISA drivers. Capture2