LabVIEW and IGOR communication

Hi!

Has anyone ever tried to make LabVIEW and IGOR "talk" to each other?

We use LabVIEW as our data acquisition (and instrument control) software, but all the analysis is done with IGOR. Since some of the measurements take some time (on the order of an hour) it would be nice if the already acquired data could be transferred to IGOR running on a different computer on the same network. This way we could "see" during the data acquisition the intermediate results (some data treatment has to be performed with IGOR, so it is not an option to do it in LabVIEW).

Since the acquired data is saved in a temporary file by LabVIEW I was thinking of reading that file with IGOR (during acquisition) but it is not possible because LabVIEW locks the access to the file. Does anyone know any other way how to do this communication (with as little effort as possible ...)?

Thanks a lot for any ideas!

Gregor
What instrument control software are you using?
There exists both a tango and an epics XOP which allows to interact with these control systems. Both are on igorexchange.
I'm using tango with one of my projects.

What kind of file are you writing in labview? Maybe you need to create a temporary copy from within labview of this file so that igor can access it.
If you are running on Windows, you may be able to use ActiveX Automation. Execute:
DisplayHelpTopic "ActiveX Automation"


ActiveX Automation has a fairly steep learning curve though.
Quote:
What instrument control software are you using?


We have in-house made software running on Windows. The temporary files solution is probably the (easiest) way to go ...

If it would be possible to write to a file (LabVIEW) and at the "same" time read it (IGOR) would be nice - is that doable? Any experience with this?


Thanks for your suggestions.

--
Gregor K
ALOISA Beamline
Elettra Synchrotron
I would try to communicate between IGOR and the LabView Software by output to RAW text files or via a MySQL database. Both readings can be done via IGOR.

If you want to directly read the data by Igor, there is also a LabView integration from some institute in Berlin for saving Data as Igor Binary Files (IBW). We used it to save our acquired Data from a LabView acquisition software. Further processing of the data is then done via IGOR.
In Igor there is a possibility to load IBW files By Reference. So you could maybe write to the IBW file from LabView and have a read-only version in IGOR.

If you are interested I could look on monday, what VI we use for saving as IBW. Though I would personally recommend a central database.
Quote:
But "ActiveX Automation" is not supported anymore with IP7 64bit, or?


That's correct. If there is sufficient interest, we will look into supporting it in IGOR64.

Quote:
If it would be possible to write to a file (LabVIEW) and at the "same" time read it (IGOR) would be nice - is that doable?


Not quite but check out the "WaitForFileProcs.ipf" procedure file. I allows you to wait until a file exist before opening it.
[quote=ukos]Addendum:
The LabView-Program I was talking about was written in 2010 by Andreas Wirsing, FU Berlin. The SVN repo did not change for a very long time but it still works.
It can be found on igorExchange http://www.igorexchange.com/project/LVarray2ibw[/quote]

I will take a look at it. Thank you!

--
Gregor K
ALOISA Beamline
Elettra Synchrotron
The last version of the LabVIEW binding for Tango provides a server API - i.e. you can now write Tango device servers in LabVIEW or turn any existing LabVIEW application into a Tango device server. On the other end, you have the Igor Pro binding for Tango and its client API. With both of them you can easily implement a nice distributed client/server platform (or control system).

Visit the Tango Controls web site for more information : http://www.tango-controls.org/downloads/bindings

nleclercq wrote:
The last version of the LabVIEW binding for Tango provides a server API - i.e. you can now write Tango device servers in LabVIEW or turn any existing LabVIEW application into a Tango device server. On the other end, you have the Igor Pro binding for Tango and its client API. We both of them you can easily implement a nice distributed client/server platform (or control system).


Thank you for this information. I will give a look at it.

--
Gregor K
ALOISA Beamline
Elettra Synchrotron