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.
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.
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:
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.
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.
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.
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):