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: 

Best way to run multiple VIs on cRio

I've built a VI that has tabbed control and the ability to stop and start the data acquisition.  I'm going to serve this VI out on the web server/remote front panel of the 9074; however, while I would like others to see the data (about 5 charts located on different tabs), I don't want others to be able to turn the data logging on and off - I want to be able to restrict that.

 

I thought I could simply write another VI with only displayed data and deploy it, but I'm wondering if I have to implement it in some sort of VI server.  Is this correct, or can I simply build a separate web page with the new "display only" embedded VI and only pass around the address to that page?  (I am okay with having a different named web page for public access; mine will have a cryptic name.  I'm not worried about the security of it, just the oops, I didn't mean to turn off the logging - out of sight, out of mind is what I'm going for).

 

Can I just build and deploy both VIs as startup VIs, or do I have to implement them programmatically?

 

Thanks. 

0 Kudos
Message 1 of 4
(2,773 Views)

I am assuming you are using the Web Publishing Tool to create the webpage. If that's the case, why don't you change the viewing mode to Monitor when setting up the webpage? It will be a snapshot of the VI that's running on the host machine and will not allow the user to interact with the controls of the VI from the browser. Let me know if that's what you are looking for.

 

To answer your question, I believe you shouldn't have any problems running multiple VIs on the cRIO. You can set each of them for web server access as well. You can share data amongst them using Shared Variables or the TCP/IP protocol. Or better still, have the main VI deploy the values on shared variables and create an executable for all users that gives them the ability to monitor data on the shared variables.

Adnan Zafar
Certified LabVIEW Architect
Coleman Technologies
0 Kudos
Message 2 of 4
(2,752 Views)

Thanks for the reply.

 

Yes, you are correct; I am using the web publishing tool to create the page.

 

Re Monitoring: I thought about that, and that would work, but I don't seem to have the option to allow Snapshot on the CompactRIO (maybe if it were hosted on a PC or a different chassis?)  It just shows a broken link when I load the page into and serve it from the cRio, so I just assumed it wasn't supported on the VxWorks server.  Maybe I'm doing it wrong (definitely not out of the question).

 

Re Shared Variables: Since I'm really only using the "raw" values coming back from the data acquisition modules, which I thought were also shared variables, I guess that's kinda what I'm doing.  Is my assumption correct?

 

I thought about the executable route, but I wanted to see if the web version would work first, as it would be easier to maintain (one central location for the app instead of having to maintain a list).  May still try it (never tried it before).  What I don't want is this extra VI causing a heavy load on the data acquisition processes to a detriment... but I don't have a lot of system load so I think I'm okay in that regard.

 

I'll try to deploy the second VI and it's associated webpage again and see what happens.  Hopefully, both apps can access the data acquisition modules.

0 Kudos
Message 3 of 4
(2,741 Views)

Hello,

 

Just an FYI, I do not believe it is possible to run multiple startup executables.  However, you can have multiple startup VIs if you have a startup executable call another VI on the controller programmatically.  There is some more information on this topic here.

0 Kudos
Message 4 of 4
(2,730 Views)