10-28-2009 11:39 AM
Ok, now back to the original problem statement...
The crux of the issue is that NSV are a BW hog for use in high speed RT logic so
naturally single process SV's are prefered. The problem is that there is no programmatic way to
transfer the single process SV's to NSV's (which would be bound to the HMI) so they have to be statically linked one by one.
10-28-2009 09:36 PM
Here is an idea.
Create two sets of network shared variables.
The first set is used for sending values from the cRIO to the HMI. It has an array of strings and and an array of doubles. The array of strings contain the names of the variables, the array of doubles contains the values of the variables. Write to the arrays on the cRIO. On the HMI use the Search 1D array function and the tag name on the array of strings to access the appropriate value in the array of doubles.
Here is how to access a tag name:
The second set is used for sending values from the HMI to the cRIO. Just switch the read/write locations.
This way only four shared variables are needed. Data is transfered via TCP/IP in fewer packets, each containing more data. This is more efficient than a whole bunch of small packets. Also, it is easier to dynamically create "tags" from a file. And the file is easily created in Excel or Notepad.
10-29-2009 09:08 AM
xkenneth,
Can you provide a link to the architecture you are referring to?
Also, if you all are not aware, we recently posted a fairly comprehensive development guide for cRIO, which we will continue to update: http://www.ni.com/compactriodevguide/
Kurt
11-01-2009 07:52 PM
The architecture I'm following is the one specified in the dev guide. See the "Creating a networked HMI" section.
- Ken
02-02-2010 11:17 AM
If you would like programmatic access to single process variables, vote for it in the idea exchange: