From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

control two applications by the 3rd application.

Solved!
Go to solution

Hi,

I have two applications (A.exe for control & B.exe for measurement) made by Labview.

(Only some shared variables were linked in A.exe and B.exe)
It takes a long time to see some result using two application.
So, I want to make C application to load, wait and control A.exe & B.exe during some process.

They are all in the same computer.

 

In summary, there are three independent applications not in developement environment.
I have a little experience dynamic loading of vi (not application) but no chance to meet this kind of work with multiple independent applications.

 

Even this case, can I control A.exe and B.exe by C.exe?
What do I do to realize this project in A.vi, B.vi, and C.vi and how to build them?

 

labmaster.

0 Kudos
Message 1 of 5
(1,216 Views)

After reading the forum, I got to know the application is a similar with VI reference.

I made a test program and maybe I can put or read a value to some variables in other application using invoke nodes.

However, I cannot transfer the signal event due to the mechnical property of button in this attachment.

(pots: okay, stop: no)

 

Can you advice me how to send the event effectively without modifying some prepared applications?

 

labmaster.

0 Kudos
Message 2 of 5
(1,171 Views)

Here are some ideas that you might explore.  I have limited (which can mean "no or not very much", and can also mean "a little, but don't consider myself an Expert") experience with them, so they might not be appropriate for what you are doing:

  • Explore a Framework, such as the Actor Framework, or the Delacor Queued Message Handler (DQMH), which support multiple interacting routines "working together".  Note that these methods might lead to a single "Mega-routine", rather than three isolated routines.
  • Using the model of LabVIEW Real-Time, have a Host routine that can "reach out" and "manage" two "Associate" routines (only one of which might be active), with Information and Message-passing taking place over Network Streams (or some other method).  Note that this would also allow you to host the Associates on other PCs, though I haven't thought out how you'd start them.
  • Write the two "Associates" as self-contained sub-VIs, and have a Mega-routine that uses Start Asynchronous Call to spin up the two Associates who can communicate with the Main using some form of Messaging.  I used this approach for a routine that did Behavioral Monitoring on up to 24 identical "Stations" that ran independently and asynchronously, all of them exchanging data with the Main.  Your situation could be much simpler, since each of your two routines is largely handling its own data -- you just need enough CPU power and capacity to run the two Asynchronous routines simultaneously.  Note that this would result in a single Executable, with routines B and C being essentially sub-VIs called (via Start Asynchronous Call) from the Main (A).

Bob Schor

0 Kudos
Message 3 of 5
(1,151 Views)

Dear Bob_Schor,

 

Thank you for introducing Delacor Queued Message Handler (DQMH).

I will look at it and think about how to apply for it to my future application.

 

However, I am not a program specialist for LabVIEW but a scientist who works with LabVIEW for simple automation with measurement instruments.

So have no many chances to develop some complicated my own codes or applications.

Sometimes, I need to understand other's application without major corrections for my purpose.

 

In return to my problem (event with latching a boolean button), maybe I need to use a user-event to solve my trouble in single application.

But I am wondering how to add the function of user-event-"like" to my 3rd application in multiple applications.

Can you kindly consider my trouble?

 

labmaster.

 

 

 

0 Kudos
Message 4 of 5
(1,120 Views)
Solution
Accepted by labmaster

I can find the way to control two application by the 3rd application using Functional Global and VI server.

Refer an example code located in 해결됨: Re: Call-and-response between EXE through Functional Global Variable Events and VI Server - NI ...

 

labmaster.

0 Kudos
Message 5 of 5
(1,097 Views)