Properties of shared variables

Hi all... I'm looking for a tutorial or article knowledge base explain the following:

Use: Labview 8.6 Professional RT, none module DSC (impossible to spend right now, no funds available)

System: PXI (called targets) communicate with various instruments and a PC (called host) by TCP/IP. operator enters variables of control through Labview program separate running on PC (XP).

Background: development of the Labview project from version 4.3, made only another project of RT PXI, who communicated with an HMI via Modbus.

Question about shared Variables: on my last project of RT, I had to 'read' all shared in the PXI program variables before you use them so that they would be 'available' to the HMI. I don't know that I'm creating variables properly now:

Set up the 'network Variables' on the PXI system with the following properties - Type: network has published, the network: use buffering, the number of elements: 1, RT FIFO: enabled, the number of items: 1, FIFO type: single element

Side host, I defined the same variables with the following properties: allow Aliasing and link to: URL of the PSP.

It seems that I have to set the same properties as the other variables: network: use buffering, the number of items: 1, etc.

What is the correct way to do this? I read a few posts on the problems of "deployment" variables, if the program PXI or the program host is and such. I saw one or two things 'flipped' passes, is not up to date variables. I just want if sure I do this correctly. PXI will always control if the host program does not work.

Thanks for any help and I will continue to look for more information. And, just to remember, there is NO money available to upgrade my software now.


Tags: NI Software

Similar Questions

  • Modification of the data types of the custom shared variables

    My application includes a library containing a number of shared single process variables. I use type defs to create the shared variable "of the custom control." I know that shared variables do not-automatic update since the type defs, so I'm updating shared variables (data type, do a right click, properties) whenever I update the type definitions.  However, if I make a change to a type design that does not change the data type, for example to change the labels controls, these changes will be reflected in the shared variable.  The data types of variable window shared list contains entries for each previous update, which indicates he uses the previous entries.  How can I make the window of properties of shared variables 'forget' my previous defs type wandering without deleting the variable total? Withdrawal and replacement would be troublesome because the done variable references throughout my project.

    Thank you

    Wes

    The variable is not in the Distributed System Manager, or Manager of the Variable, and cancellation of the deployment has not been resolved.  However, I found Labview from closing completely and reboot clears the memory of the previously used custom data types that sees the library.  Thus, the effective workaround I found is:

    1 make a significant change to the data type of the type (per your suggestion) FED. Record.

    2 - redefine the variable screw-notice type FED.

    3. save the project. Close and restart labview.

    4 - the old def type is now disabled.

    5. return the significant change of the def type, implement trivial change and save.

    6 redefine the variable using the type correct now def. Viola!

    Thank you!

  • Embedded FPGA vi - network shared variable not updated

    Hello

    I work with an ethernet RIO 9149 of data acquisition. I use a hybrid programming mode.

    I have a very simple FPGA VI that I downloaded on the flash memory. I used the indicator led to show my VI runs once the power of the RIO. Everything is fine, except that my shared network variables are not updated in the DSM ("no known values" displayed). However when I run the FPGA VI of my laptop, only once then stop and close (with 'interactive execution'), then my shared variables are updated in the DSM.

    Any ideas why is this and how do I get the RIO update automatically shared variables without having to run the VI once?

    Thank you very much.

    Hello

    I did a few tests and research and discovered that it doesn't seem to be possible. It is important to note the difference between Network-Published static (NSPV) and Variables of e/s of Network-Published.

    The other are "user defined variable I/O" to communicate between FPGA and RT (RT absent on chassis Ethernet as the NI 9149) host. If these variables are checked to be published-network (in properties). They are accessible by VI running on the hosts of the same LabVIEW project, so you need to run a VI to access, as you mention. This is explained on the next page, Variable IO data custom FPGA of e/s (real-time Module or Module FPGA):

    https://zone.NI.com/reference/en-XX/help/371361H-01/lvioscanhelp/io_vars/#user_IOV

    I did find a way without a host (host RT or Windows PC) running a VI. If you have a cRIO with RT and NPSV host in the RT VI it is possible.

  • Shared Variable (published network) communication

    Hi all

    All day I was hitting my head with variable communication shared between RT host and the host computer:

    I basically tried to pass an array of the host of the CR to the host computer. For this I used a published shared variable of network type Array U64. I used this link to help me understand usign shared variable communication

    http://www.ni.com/white-paper/4679/en ...

    I also activated RT FIFO. Now in the city that link the information given on the use of FIFO of the single element or Multi element FIFO

    "By enabling real-time FIFO, you can choose between two types of compatible FIFO slightly different variables: the only element and the buffer insurance program. A distinction between these two types of buffers, it's that the only element FIFO reports no warnings on positive or negative overflow conditions. A second distinction is the value returned by LabVIEW when several readers read an empty buffer. Several readers the only element FIFO receive the same value, and the only element FIFO returns the same value until a writer writes back to this variable. Several readers of a FIFO empty array each get the last value that they read from the buffer or the default value for the data type of the variable, if they have not read before variable. "

    I had read the content above a 100 times, but still I'm not able to get a clear picture of the difference and when to use which option. So I decided to take the text and tried to try something for me.

    I had a loop in the reception of RT who writes arrays of 3 different elements in the 'network published variable shared'. Now when I use the option of multi element with "number of berries as - 2" I am able to read tables separates one by one in the host computer (as you can read a queue in general).

    Now when I used the option of single element for the RT FIFO with 1 UN editable table option, only the last table written in the 'shared variable published network' is read in the host computer.

    This seems absolutely ridiculous as if this is the case, then what is the purpose of creating the "buffer". For testing purposes, I had put the buffer in 5 tables.

    In fact, I have only a single author (written in loop in the reception of RT) and a reader (new looping in the host computer). So I don't know even if I need option of the RT FIFO for the published network shared variable.

    I'm sorry for the long message but I've reached the limits of going around in circles waiting to type somewhere

    I know I made a mistake stupid somewher or it miss me probably a clear simple trick but don't know what it is...

    I request some clarification... In fact I posted a little while earlier today so ... bind - http://forums.ni.com/t5/LabVIEW/RT-Host-to-Host-computer-communication/td-p/2348130 )

    any help would be appreciated

    See you soon

    me

    Hello

    I think that the difference between these two types is clearer by using LabVIEW:

    "

    Activation of the FIFO in real-time

    You can activate the FIFO in real-time to a shared variable since the page FIFO in real-time of the properties of the shared Variable dialog box. Check the box Enable the FIFO in real-time in a deterministic way share data using the one element or several elements FIFO.

    Single element FIFO

    One FIFO shares the most recent value of the data. The shared variable overrides the value of data when it receives a new data value. Use this option when you need only the most recent value. Configure the size of the elements of the array or the size of the waveform for the FIFO buffer, if you select a table or a waveform data type.

    Several elements FIFO

    A FIFO multi-elements implements buffer the values shared by the shared variable. You can configure the size and elements of the buffer FIFO to match the parameters of buffering to use of the Variable page, or you can configure a custom size for the FIFO and FIFO elements.

    Note  For single item both multi-elements FIFOs, if the variable contains data table or a waveform, you must configure the size of the elements FIFO equals the size of the data to share. If the network buffer both the RT FIFO are enabled, the network buffer should be at least as big as one of the elements of FIFO. Sharing data smaller or larger that the specified length results in a memory allocation which affects determinism.
    Note  Waveforms contain variant of varying size that are not compatible with real-time FIFO. Therefore, if you enable the FIFO in real-time on a shared variable that contains the waveform data, the item variant waveform data does not transfer.

    "

    http://zone.NI.com/reference/en-XX/help/370622K-01/lvrtconcepts/rt_projectvariable/#Single_Element_F...

    ' Hope this helps

    Aurélie

  • Delay weird read shared variables

    Hello

    I'm working on a project were I am followed a few lines of production. I use an OPC server on the DSC module to connect to PLCs on the production line and I created variables related to my labview tags of the PLC project.

    On my project, I have a main VI were I show information on production lines and I can access several subVIs were I see more information on these lines. Then I a VI that runs in the background were I read about 50 shared the PLC variables and where I save data in a MySQL database, data entry of data on the database of the Citadel and the recording of alarms.

    The problem I have is that I noticed a delay read variables that read weight of containers from the production line the VI that runs in the background. It seems that all shared variables suffer no delay, only the variables weight start to make some delay when the values are on the rise. It also seems that when I run only one VI, without running the main VI, there is no any kind of delay. I read shared variables shared as variable nodes.

    Can someone help me understand what is happening and how can I fix this delay? The VI that runs in the background is time critical and a strange delay like that messes up my data.

    Hi Mateus23,

    The shared variable has various capabilites buffering, including integration with real-time FIFO functionality in LabVIEW Real-time.

    I guess that buffering settings are causing the unexpected behavior.

    Check out these resources:

    Buffer Network-Published static Variables (white paper)

    Properties shared Variables dialog box

    - Network Page

    - Page FIFO in real-time

  • shared - variables multi-network

    Hello

    I have problems of publication of multiple variables shared in a network configuration to the correct network. (NIC1, NIC2, wireless)

    I followed the info in Spreading of Variables shared for a specific network adapter

    For a Windows-based system:
    If one does not already exist, create a file in the C:\WINDOWS directory named logos.ini and add the following lines to the file:
    [LOGOS]
    ServiceBindTo=XX:XX:XX:XX:XX:XX
    where XX:XX:XX:XX:XX:XX is the MAC address of the Ethernet card to want to bind to.
    
    Right-click on My Computer within the LabVIEW Project Explorer, click on Properties. Under the General tab, click the Specify Custom Address checkbox, and enter the IP address of the network card that the shared variables will be deployed to.
    

    but it comes to 8.2.1 - is still topical for 8.5?

    After these changes my shared variables always deployed to the default (wireless)

    I am running XP on the computers and LabVIEW 8.5

    Hello Al,.

    I think you may need to change your default interface card just.

    Here is an article that should help you further:

    http://digital.NI.com/public.nsf/allkb/FB4B94AE226BEA2986257559006D0FF1

    And also, point number 8 on this refers to a similar route of troubleshooting:

    http://digital.NI.com/public.nsf/allkb/6E37AC5435E44F9F862570D2005FEF25

    I hope this helps.

    Let me know if the problem persists.

    Kind regards

    Michael S.
    Technical sales engineer
    NEITHER UK & Ireland

  • Executable does not connect to the hosted PXI shared Variables

    Hello

    I'm developing an application to run with RTE 8.2.1 on Windows XPe machine. Data are passed through network shared Variables in a target RT PXI. I developed on a laptop with the top Suite Developer Pro and everything works wonderfully here. When I create a program installation (and an EXE version) and on the port to the XPe machine, variables don't connect with each other (as seen to drag the control to the public Service, view the small arrow to the right to the status of the connection). I think it's due to not having the right drivers on the target XPe. Do you have any suggestions as drivers that I should include in the installation properties? I currently have:

    OR LabVIEW 8.2.1 RTE

    Engine OR Variable

    And NI-DAQmx is already installed on the machine (I think... a previous installation, the wizard sees a newer version about this than what I'm trying to install). I have also included the library with the shared variables in the properties of the EXE in the part of the Support files.

    I know this is a very old version of LV, but if you have ideas, or things to check, I would be very happy to help.

    Thank you!

    I understand the problem!

    In the structure of the Project Explorer files, I had included the buttons under the heading of the library (HMIvariables.lvlib), with the rest of the variables. I guess when you try to deploy by programming, he's trying to deploy the control files and get the dreaded error 1. I moved out of the library control files in Project Explorer and it fixed the issue and deployed the library, as verified by the Manager of shared Variable.

    I got 1 Core 3, and on the RT 1 and 2. Nobody never mentioned against it and could not find any documentation talking about do not do. I hope it helps someone else!

    Thanks for your help.

  • to connect to a shared variable (android)

    Hello

    I just started to learn how to use the dashboard data Labview for android.

    I made a very simple project, with a VI that generates random numbers. I also added a variable published network shared in this project, and I write the random number generated for this variable shared every second.

    I would like to read this value on my phone (Motorola Razr i, Android 4.1.2) android using the dashboard of data for an Android application.

    I have a wireless access point and both my laptop (that hosts the project, LabView, Labview 2013) and my smart phone is properly connected to the wireless router, and both gets from dynamic IP addresses.

    I start running my VI on the laptop and the variable shared within the lvlib correctly deployed and began to broadcast (I guess) its value to the network.

    I start the DD application on my Smartphone, I choose 'Connect shared variable to', I type the local IP address of my laptop, which is 192.168.0.100, and I try to connect.

    After some 'research' and waiting, I get a message "connection error".

    Do I did wrong?

    Thank you much for the help.

    Best regards


  • Network shared Variable breaks rtexe

    I have a cRIO-9063 which I want to use for the control (PWM digital output for pumps signals) and measurement (temperature and voltage) of a system. In the ideal configuration the cRIO would be able to take measures and rebroadcast to a PC for monitoring and logging. The PC must be also able to change the digital output PWM on the cRIO lines. The cRIO should be able to continue to operate when the PC is not available. To do this, I use Scan interface for data acquisition and shared variables (single editor, no RT FIFO) hosted on the cRIO for network communication.

    I have developed the code for the target cRIO as well as my host PC meets my criteria. However, this code only works in development mode. When I try to build and deploy a rtexe on the cRIO, it does not work. I reinforced to the back and made a simple LED flashing user vi, ensure what I create and deploy properly. Slowly adding things to this flashing vi, I discovered it's shared network variables that break the vi once it is integrated into a rtexe.

    After flipping through other-related posts, I'll include the following:

    -There is no object on the remote VI front panel. Simply add a variable node shared is enough to break the vi (when it is deployed).

    -J' tried including my shared variable library in support of the construction directory, but what I saw there is not copied during construction or deployment. I manually copied the library to the /home/lvuser/natinst/bin/data / directory on the cRIO, then used an invoke node to deploy the cRIO variables when the software starts first. Even when you include a delay of 10 seconds after the invoke node, it did not work, just a mistake of 1043 at "the method or property is not supported in this version of LabVIEW."

    -NSV is referenced as absolute

    Some details of my configuration:

    LabVIEW 2015

    cRIO 15.0

    NOR-RIO 15.0

    Communication via ethernet, static IP

    Any help would be GREATLY appreciated. I suspect that I forget a few minor step or detail, otherwise am poorly understand exactly how and when shared network variables are deployed.

    I found shared to not be worthwhile over the years network variables.

    The RT EXE is not able to use the library to deploy to deploy the shared Variables.  See Help topic: http://zone.ni.com/reference/en-XX/help/371361M-01/lvprop/app_libdeploy_library/

    In general, SV are deployed once the project and they persist through reboots of the RT system.  In general, you should have a startup routine that checks the shared variables and expected for there to be without error on a node of the OAS and then move on to the rest of the program, defining the commissioning of values and check that they spread in the engine of the Variable is a typical method.

    See here for more information on the deployment of a variable in an application of the RT.  http://digital.NI.com/public.nsf/allkb/990508969805A7C086257619007189E7

    The section deployment of Variables shared in a real-time (RT) target running Headlessly is downstairs.  Because you are connected to an HMI PC, you should be able to use the library to deploy feature of the PC code targeting the cRIO.

    Usually, it's a faster, more scalable solution to replace your shared network Variables with a stream of network dedicated to the HMI and another for HMI - RT EXE commands.  You can send complex structures such as a cluster or even define the message as a cluster of enum and variant type to be able to use the Enum to convert the variant correctly according to the Enum value.

  • Update of address of the card "shared Variable.

    Hello Experts!

    I have a question about shared variables:

    Now I create a variable Shared (81O_G01) in the library, and it is related to:

    My Computer\SVCREATION.lvlib\Modbus1\410611

    Question is: How can I change this address SV (410611) when tha variable has already been opened?  is this possible?

    Thanks in advance!

    Anibal

    Hey Anibaldos,

    Looks like you're trying basically change the binding of a /A1 to /A2 variables at run time. I think that there are a few options for this:

    (1) in LabVIEW DSC, you can access a hosted variable and change the link address by using a property node. If you run the server modbus on a windows machine, this is the best option. Otherwise, I'm guessing you don't have a DSC. If this is the case you can always edit links by editing the library manually, but it seems that this will not help you.

    (2) it may be possible to open a variable connection shared using pallets (Data Communication > shared Variable) to this specific address, to which cases you have no need to use the shared variable. You can simply open a connection to two addresses different modbus and read one or the other as needed.

    (3) if #2 does not work, then I think you can still use datasocket API to perform such an operation. There is a bit of research you need to do to use it (for example, URL editing and UI thread problems), but it does not work. In my opinion, this is the approach taken by this document: https://decibel.ni.com/content/docs/DOC-13508 (I know from experience, you have to dig a little to find the screw, but they are there).

    (4) you can use the Ni Labs library: http://ni.com/labs

  • Shared variable RT FIFO (multi element) - read both

    Hi all!

    I'm trying to collect data from analog inputs on my cRIO with a time step of 1 second. For this I use a timed loop and a variable shared with RT FIFO active (several table of doubles). Along with the timed loop, I also use a while loop that is significantly slower (lets say 10 sec period) who must read all the berries stored in the FIFO and write it in a .txt file (everything is run locally on target RT). Is it possible to empty the shared variable RT FIFO at the same time, and if not how can I get a number of tables that are currently stored in a shared variable?

    What is the difference between one created using the palette of FIFO of Real-Time/RT and RT FIFO created by a shared variable? I prefer to use the shared variable instead of Real-Time/RT FIFO allowing also time stamp.

    Best regards

    Marko.

    Marko,

    We recommend that the nondeterministic loop run faster than your deterministic loop and remove samples when they become available. If you don't want to do this, you can simply place your RT FIFO loop for the value to perform 10 iterations and then put that in your loop. For more information about the differences between the RT FIFO and Variables shared with RT FIFO active, please see pages 32 to 35 of the CompactRIO Developers Guide link below.

    http://www.NI.com/PDF/products/us/fullcriodevguide.PDF

    I hope this helps!

  • Shared variables is deployed several times

    Everyone has experienced problems with an application in development mode (LV2015) from deploy shared variables whenever it loads a VI?

    He suddenly began to arrive, and I don't know why or what I did. Now it charges 11 times before can run the application. Very annoying and I can't find where to select a VI not deply its Variables shared. Deploying them should suffice

    It was only a matter of time. I have a main VI calling several other VI that uses the same shared variables to communicate with each other. It translates the same loading variables each time the main VI called the next VI on startup.

    Solution was to right click on my computer in the project and check the option 'Disable Autodeplay Variables'.

  • Passage of an object by a shared variable

    Hi all

    I don't know if the title is entirely appropriate, but it describes exactly what I'm trying to do.  I have an application that runs on a machine RT which I'm trying to pass an object of the application on the machine of the RT to a host.  The problem is that when I turn the object to a variant and then insert the object in the shared variable (the size of the object is about 450 b), I get no response on the coast host, indicating that the variable has updated.  Probing the error on the shared variable where I write (on the machine of the CR), it turns out I get the error code - 2147467259, an unspecified error.  Has anyone seen this error before?  Does anyone have any ideas as to why what is happening?  All other variables are responds ok.

    Thanks, Matt

    OK, so the solution found.  For some reason, I can't pass the object as a Variant.  However, as when I use the STM library, I can flatten the string object and then pass the data through the variable shared by using a string of SV.  This isn't an unreasonable solution, it seems I just do something very similar when I pass the data via a SV Variant.  You have any ideas as to why I can't pass it by using a Variant?  Looking forward, it is going to be any support to pass objects directly through SVs?

    Cheers, Matt

  • There is no chance to install a standalone engine shared Variable of EVS?

    Hello!

    I wrote a small application that reads the values of a NetworkVariable created on the local computer. The address of this variable is something like \\127.0.0.1\System\test1

    That I can see, I can use this type of variable (I mean System -based) that if I installed an EVS (by Measurement Studio). But to install Measurement Studio, I need too Visual Studio...

    There is a way to work properly with NetworkVariables based on a system without having to install everything as I said before? AES is responsible for the correct operation of NetworkVariables? In this case, is there any chance to install a standalone engine shared Variable of EVS?

    Thank you!

    I found the solution to help NI MeasurementStudio 2008:

    Server deployment

    In this scenario, you must deploy the motor Variable shared to another machine that plays the role of the server. To deploy the shared Variable engine, you must run an installation on the target computer. The required Installer is installed with Measurement Studio for the [InstallDir] \ Redist\NINETVARSERV folder.

    You can view all the command-line options to run the installation program with setup.exe /? . Command line options, you can choose to run the installer in silent mode.

    You can use the Variable Manager to create and configure network on the server variables. The variable Manager is installed by default. To run the Setup program without installing the Variable Manager, run setup.exe /prop VARMANEXCLUDE=1 command. To run the installation program of engine Variable shared in silence and without the Variable Manager, run setup.exe /q /acceptlicenses yes /prop VARMANEXCLUDE=1 command.

  • published RT cRIO-9030 with network-a project of shared variables cannot communicate with host VI when compiled and deployed as executable startup.

    I have a project including a VI RT running on a cRIO-9030 and a host VI running on a desktop computer.  The two programs communicate via shared variables that are hosted on the cRIO.  As shows, when I run the screw of the project, everything works as expected.  When I compile the RT VI in a start-up executable can deploy for the cRIO, as well as the libraries of shared variables (the record of support in the build specification-oriented), I am unable to connect to the executable running in real time.

    I have 'Disable Autodeploy Variables' checked on the cRIO target, if I no longer get the prompt to stop the currently running application to deploy the variables.  The host VI opens and appears to run, but has no connection with shared variables (data does not update).  Compilation of the host VI as an executable file and it works outside the project result in the same behavior.

    I read some relevant posts / knowledge base articles related to this problem, but still can't seem to find a way around it.  I note a number of articles on the series in double bond of variables, but this is in contradiction with my possible behavior for this system: I finally have a number of cRIO controllers identical all runnning the same executable RT and want to be able to have a single host VI which allows the user to select from a list of available controllers (using the screw system configuration) and extract the host name of the controller selected, that would be later used for programmatic addressing of the variables on the host of part VI.

    In any case, I want to start with the simple fact of being able to get that first controller running without an open connection to the RT VI project.  With the deployed executable start, I checked via programmed behavior of LED application of the RT and FPGA are running on the cRIO.  The problem, I think, has to do with shared variables, but I'm not sure where to go from here.  I want to connect to RT executable running from the VI to the host (in project) to verify that the compiled executable of RT works as expected and then the subsequently compile host VI in an executable that can be run from any desktop on the local subnet.

    Thoughts?

    It seems that the error has now been corrected.  There were three things, I changed: the file startup.aliases in the startup on the target directory (Home: / lvuser/natinst/bin) put in 'localhost' as an alias for the controller.  I changed it to the IP address of the controller.  Then, I got some features of IO files in my application RT relative paths using the path obtained by the 'current path VI' VI.  As this path changes according to the location / delivery system, I had to create a VI that has used the Application property: type with a case properly structure band / build railroads desired regardless of the runtime system data files.  This may have broke my RT request.  Finally, I got a property node in one of my RT SubVIs, who attempted to change an indicator in the Subvi, which is not taken care of in an RT compiled executable.  I can't do this for debugging purposes somewhere along the way, but in any case, I removed it, and after a recompilation and the deployment of the executable of RT, everything seems to work as expected today.  The host VI on the desktop can connect to the application of the RT project, and when it is compiled into an executable file, which also works.

Maybe you are looking for