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.

FlexLogger

cancel
Showing results for 
Search instead for 
Did you mean: 

Why is reading Skyline tags from FlexLogger limited to 1 Hz?

LabVIEW queue won't work across different applications. Network streams should work great, but you need to know how to set them up on both the FlexLogger plugin side and the LV application side. In your FlexLogger plugin, I would put the Create Network Stream Writer Endpoint VI in the Process VI so you don't need to worry about whether the FlexLogger plugin starts first or the LV application (i.e. If you put it in Configure Sessio nor Initialize, it may get called once and if LV code isn't ready yet, it could either miss it if you specify a timeout or hang if you specify -1 for the timeout. Specify a timeout of 10ms for example in the Process.vi when you call the Create Network Stream Writer Endpoint.vi and keep trying every iteration of your Process.vi to establish a connection. Once it's established, you can save the session and a flag to indicate you're connected in the private data of your plugin so you know next iteration not try connecting, but to just use the stored session. If you ever lose connection, reset the flag so th Process.vi will try connecting again on subsequent iterations.

 

On the FlexLogger Plugin, make sure the Create Network Stream Writer Endpoint uses a URL like: "//localhost/reader" and a name like "writer". The LabVIEW code should use a Create Network Stream Reader Endpoint with a name "reader" and it looks like the URL is optional based on the article I mention below. On the LV side, set the timeout for Create Network Stream Reader Endpoint to -1 (or loop with a timeout) and it will wait for FlexLogger Plugin to be ready before continuing.

 

Here's an article that talks about Network streams: https://www.ni.com/en-us/innovations/white-papers/10/lossless-communication-with-network-streams--co...

Here's another one that talks about different options for communicating between machines (or within the same machine but across different processes):
https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000001Dd68SAC&l=en-US

If you still need help, please include all your LV code and all the source code for your FlexLogger plugin.

 

Hope this helps,

Brad

0 Kudos
Message 11 of 13
(782 Views)

Thanks for the reply! Your guidance was helpful. The only additional thing I needed to figure out was that the application context needed to be specified in the endpoints.

 

I couldn't find straight forward documentation on the application context, but eventually figured it out.

 

I attached a simple example of streaming out of a plug-in that is an extension of the Calculation plug-in template. Hopefully it can help anyone else out that is having this issue.

 

 

 

0 Kudos
Message 12 of 13
(764 Views)

It sounds like you got this working in this thread, so attaching link here:
https://forums.ni.com/t5/FlexLogger/Why-is-reading-Skyline-tags-from-FlexLogger-limited-to-1-Hz/m-p/...

0 Kudos
Message 13 of 13
(743 Views)