LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Passing live DAQ data between two LabVIEW executables

Is it possible to pass live DAQ data from one LabVIEW executable (acquiring data) to another LabVIEW executable (analyzing data)? If yes, what is the best practice?

What I can think of is via

1. shared variables, and

2. TCP/IP. 

 

Any suggestions are appreciated.

 

Thanks.

0 Kudos
Message 1 of 8
(2,115 Views)

@XLEagle wrote:

Is it possible to pass live DAQ data from one LabVIEW executable (acquiring data) to another LabVIEW executable (analyzing data)? If yes, what is the best practice?

 


Combine them into one program that uses a Producer/Consumer architecture

========================
=== Engineer Ambiguously ===
========================
0 Kudos
Message 2 of 8
(2,102 Views)

TCP/IP would be a better approach with higher throughput and both applications can be developed in different languages if required.

Santhosh
Soliton Technologies

New to the forum? Please read community guidelines and how to ask smart questions

Only two ways to appreciate someone who spent their free time to reply/answer your question - give them Kudos or mark their reply as the answer/solution
0 Kudos
Message 3 of 8
(2,095 Views)

I used Producer/Consumer architecture in the DAQ module/executable, but unfortunately for this project, the DAQ and Analysis fundctions must be built in two separate executables.

Thanks.

XL

0 Kudos
Message 4 of 8
(2,075 Views)

gRPC is also a good alternative to TCP/IP.

 

Does the data analysis have to be almost real-time or can it be like post-processing where you write data to a file and process the files later in time?

Santhosh
Soliton Technologies

New to the forum? Please read community guidelines and how to ask smart questions

Only two ways to appreciate someone who spent their free time to reply/answer your question - give them Kudos or mark their reply as the answer/solution
0 Kudos
Message 5 of 8
(2,049 Views)

@XLEagle wrote:

I used Producer/Consumer architecture in the DAQ module/executable, but unfortunately for this project, the DAQ and Analysis fundctions must be built in two separate executables.

Thanks.

XL


Unless for some reason you had to use a different programming language for something, that really does not make a lot of sense but okay...

 

Then TCP/IP 

 

Good luck.

========================
=== Engineer Ambiguously ===
========================
0 Kudos
Message 6 of 8
(2,042 Views)

I did find this white page on doing it the shared variable route. This is interesting though I am going to have to me try some things out this weekend and see what I can come up with and what other people post.

 

Communicate Between Multiple LabVIEW Executables Using Shared Variables - NI

 

I did come across some C++ posts about data between two executables seemed to take an input/output handle + some buffering and thread approach, then I see some people suggest a 3rd executable that acts as an interface between the other two that is always monitors the inputs and outputs of both executables.

 

I hope to get back to you with more I am super curious now.

0 Kudos
Message 7 of 8
(2,035 Views)

Thank you all for your inputs.

I may have described the challenge in a wrong way. I was describing a potential solution than the actual problem.

The challenge is 

1. Data acquisition and some general analysis capabilities are developed by Party A

2. A special analysis module "Module B" is developed by Party B

3. Party B dos not want Party A to have access to module B, but would like to use the capabilities developed by Party A (and Party A has to issue with that).

4. Party B will change/modify Module B frequently but does not want Party A to recompile executable every time.

I did some research, it appears to me that, instead of having two executables and trying to pass data between them, PPL+plugins may be a better way to solve the problem.

I have never done PPL+Plugin before, and would appreciate your advice.

 

Thanks.

 

XL

 

 

0 Kudos
Message 8 of 8
(1,991 Views)