Showing results for 
Search instead for 
Did you mean: 

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

Anyone else seen this?

0 Kudos
Message 1 of 13

Tags are intended to be a slower update mechanism so our recommended maximum read rate is 1Hz.  We publish them at ~5Hz, but the SystemLink tag mechanism doesn't guarantee readers will see all those updates.  If you need faster data exchange it can be done with a plugin built using the Plugin Development Kit. If you give a few details about what you are trying to accomplish I may be able to give some pointers on how to accomplish that with the PDK.

Kevin Fort
Principal Software Engineer
0 Kudos
Message 2 of 13

I have the 1.1 SDK (and have used the 0.3 SDK in the past) and spent the past 2 days trying to figure out how to define what channels to select and read in the plugin. Would be nice to be able to read the channel names via plugin but not necessary...but I need to know the order of the channels that are read.


I see the example on how to have the user select multiple channels, but I can't do that...I have far too many channels to read. I've tried defining what channels to read but it doesn't work.


We need to share the data from FL to an external system (dyno controller) and from the external system to Flexlogger via Modbus. Data doesn't have to be perfectly synced but 10 Hz isn't fast enough (I can publish to FL at what seems to be 10 Hz via the screen display). I already have everything working except for reading from FlexLogger faster than 1 Hz.

0 Kudos
Message 3 of 13

Just making sure we are on the same page. For the example for the user selecting multiple channels did you look at the Rosette example or the template project which does a min/max calculation?  The Rosette example shows how to do N channels where the mapping of the channel is significant and it does require more interaction on the users perspective to select channels.  The template min/max example shows how to do a single N Channel picker that lets you quickly select any number of channels, but there is no name mapping associated with the specific channel (only the entire multi-channel parameter) so its not appropriate for all calculation types, but it sounds like it might work for what you are trying to do.


You can't select channels in the plugin itself right now, but I can add that to a future release.


You can use this VI to get the channel name the user has selected for a Multi channel or single channel parameter:



Kevin Fort
Principal Software Engineer
0 Kudos
Message 4 of 13

I'm pretty sure in the Rosette example, the user still has to assign what channels are to be used for "Strain 1", "Strain 2", "Strain 3". It's not very practical to have the user manually map 100+ channels to the plugin...there needs to be an option for the plugin to do this dynamically to. I can do this with Skyline tags (find what is there and select which to read)...would be nice to have the API do this too.


Actually, I could have the user select all channels, and if I can figure out the order signal are read, it may work, but I don't like it where the user can mess it up too and deselect what I already setup.  I'll look more into this.


I'll take another look at the Rosette example when I get a chance.





0 Kudos
Message 5 of 13

Yes, the user has to select the channels. I haven't been able to figure out how the FLexLogger plugin can do this w/o user intervention.

0 Kudos
Message 6 of 13

Per NI, the ability for the plugin to select channels is currently not possible.

0 Kudos
Message 7 of 13

FYI, I did add the ability for the plug-in to set the channel names itself. It's in the next release which should be available to download in a few weeks.

Kevin Fort
Principal Software Engineer
Message 8 of 13

As of 2020 R1 you can do this to pre-set channel parameters if you know the names you want to fill in for the user (you have to use some VIs that aren't on the plugin palette - they are in the packed library here: C:\Program Files\National Instruments\LabVIEW 2019\vi.lib\FlexLogger\SDK):


Kevin Fort
Principal Software Engineer
0 Kudos
Message 9 of 13

Hi Kevin,


You said: 

@Kevin_F wrote:

If you need faster data exchange it can be done with a plugin built using the Plugin Development Kit. 

I have been trying unsuccessfully to do just that with the PDK. I have tried both queues and network streams to send data out of the plug-in to an external VI (on the same computer). I have had no success with the external endpoint being able to communicate with the endpoint internal to the  plug-in.


Some internet searches implied it could be a problem with the queues being in separate application instances, or the references to the end points getting garbage collected between execution steps of the plug-in.


Can you provide some guidance on best practice to stream data out of a plug-in to a separate VI? (SystemLink tags seem perfect for this, but we need the data much faster than 1 Hz. Thanks!

0 Kudos
Message 10 of 13