03-17-2022 10:54 PM
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.
03-17-2022 11:12 PM - edited 03-17-2022 11:14 PM
@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
03-17-2022 11:32 PM
TCP/IP would be a better approach with higher throughput and both applications can be developed in different languages if required.
03-18-2022 01:20 AM
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
03-18-2022 08:40 AM
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?
03-18-2022 08:58 AM
@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.
03-18-2022 09:19 AM
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.
03-23-2022 07:52 PM
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