SystemLink

cancel
Showing results for 
Search instead for 
Did you mean: 

SystemLink APIs in NXG and current gen

Hi!

 

I am trying to get a WebVI (NXG 3.1) to communicate with a real-time VI (LV2019) on a cRIO. I am somewhat confused about the different SystemLink APIs in the two applications.


1) Can anyone explain how the NI Skyline Message :: Open in LV2019 relates to Open configuration + Message :: Open in NXG? In LV2019, one can choose between HTTP and AMQP, but there is no such option in NXG.

 

2) Since I want two local applications to communicate, I would like to avoid using a remote server for SystemLink. I can easily do this in LV2019 in the Sync Messaging example by using default inputs for NI Skyline Message :: Open. I also works, if I move them to my cRIO. But when I try the same in NXG, Open configuration gives me error -251042. What am I missing here?

Clipboard01.jpg

 

I should say that I build the WebVI (cRIO WebVI::index.gviweb) to HTML and copy it to the www folder of the cRIO, but I get the same error when I run it directly in NXG. The full error source is:

NI :: Skyline :: MessageHTTP :: Execute HTTP Verb.gvi<ERR>
-251042: The web server responded with error 400.

<b>Response body:</b>

<b>Complete call chain:</b>
NI :: Skyline :: MessageHTTP :: Execute HTTP Verb.gvi
NI :: Skyline :: MessageHTTP :: Open.gvi
cRIO WebVI :: index.gviweb

 

Cheers,

Poul

0 Kudos
Message 1 of 3
(1,027 Views)

Hi Poul,

 


1) Can anyone explain how the NI Skyline Message :: Open in LV2019 relates to Open configuration + Message :: Open in NXG? In LV2019, one can choose between HTTP and AMQP, but there is no such option in NXG.

These set of functions should accomplish the same task, that is, communicate using SystemLink tags. You'll also find that there's an equivalent Open Configuration VI in LabVIEW 2019:

 

Capture.PNG

 

2) Since I want two local applications to communicate, I would like to avoid using a remote server for SystemLink. I can easily do this in LV2019 in the Sync Messaging example by using default inputs for NI Skyline Message :: Open. I also works, if I move them to my cRIO. But when I try the same in NXG, Open configuration gives me error -251042. What am I missing here?

Clipboard01.jpg

Could you clarify what you mean by remote server? In order to use SystemLink tags/messages, you'll need a server setup to store data, and subsequently, you'll need to input those credentials to your Open Configuration VI. This server could be set up locally, but without it, there's nowhere for your data to "live". For the NXG side of things, I would check out this example, which walks through server setup, and has great content for this topic overall.

 


I am trying to get a WebVI (NXG 3.1) to communicate with a real-time VI (LV2019) on a cRIO. I am somewhat confused about the different SystemLink APIs in the two applications.

Additionally, if you don't like the idea of setting up a server, you can go the route of LabVIEW 201X Web Services + LabVIEW NXG Web Module client. You'll be able to use HTTP requests to send/receive data, and you can bundle everything into one project (i.e. putting the built Web VI contents into the LabVIEW 201X RIO project); instructions here

 

Brandon Nguyen | Product Support Engineer | National Instruments R&D

0 Kudos
Message 2 of 3
(997 Views)

Thanks for the reply, Brandon.

 

By remote server, I mean that I would like the app to be independent of servers hosted on other devices. The two VIs both live on the cRIO, so the communication between them should continue even if the cRIO is disconnected from the network.

 


In order to use SystemLink tags/messages, you'll need a server setup to store data, and subsequently, you'll need to input those credentials to your Open Configuration VI. This server could be set up locally, but without it, there's nowhere for your data to "live".

In the Sync Messaging example in LV2019 I can send messages between two VIs without specifying a server. As far as I can see, the Host and Client VIs are identical apart from the identifying string, so I don't see where a server is involved. Does it have something to do with the AMQP version of the Open method?

My only issue with a server is, that I don't think it is possible to set it up locally on a cRIO - or am I wrong? If there are better methods for the two VIs to communicate without HTTP, I am very interested.

 

Cheers, Poul

 

0 Kudos
Message 3 of 3
(989 Views)