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.

Tags: NI Hardware

Similar Questions

  • Are published network shared variable write & read Atomic actions

    Hello

    I have a very basic question about shered (published network) variable.

    I think I know the answer already, but since I couldn't find in my documentation, I thought that it is more prudent to request...

    Are reading and writing on a shared variable of stocks Atomic?

    To be more precise: on my target real time I create an array with data (each element being the configuration item or a cluster containing name, value, and type) and when the table is finished I am this store in a published network shared variable.

    On my host (Windows), I'm voting (in a loop) until the table contains at least 1 item, when this is true I'm parsing all the elements in the table.

    Is there a chance that, reading of the shared variable, the table contains a subset of the original painting on RT target (i.e. the action of reading takes place while writing is still ongoing).

    Or is the action of reading delayed until the write is completed? (i.e. both write and read actions are atomic even over the network)

    I think the latter is true but not could find no evidence in the documentation.

    Kind regards

    SoC

    Hello Rob,

    Yes, you can access the entire value, data type - you use both. For the table data type, the integer value is actually the full picture. So, Yes, you can see reading and writing as Atomic actions.

    But, on the other hand, you can lose data if the RT system rewrites the variable before the host had the time to read. To avoid this, you can enable buffering for the variable. See the following links for more information:

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

    http://zone.NI.com/reference/en-XX/help/371361H-01/lvconcepts/buffering_data/

    Finally, you can also activate a FIFO RT on your target RT if you need to send data through the variable in a deterministic section of the RT. See also, more information:

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

  • Passing an array via one RT FIFO network shared Variable, Code error-1950679034

    This should be simple.  I'm just passing through a table via a single RT FIFO network shared Variable element.  And yet I get nothing.  How could - not working?  What is this error?

    Well... it must have been some sort of thing calendar because adding an expectation of 100 ms fixed it straight up.

    Now don't feel ridiculous

  • network shared variable treatment

    Hello everyone,

    Someone tried to link data from a network shared Variable to the query (running in a smartphone or Tablet) made with "treatment"? I know on the dashboard of data but I would like to know if West someone working with these two technologies. Thanks in advance for your answers, comments, suggestions, etc.

    Hello Bene

    Apart from the dashboard of data there are other technologies that you can use for mobiel applications in LabVIEW

    If you already use a shared Variable, then the easier and faster way to connect your mobile device and the PC on the same network and then simply use DataDashboard to read from your published variable.

    You can also create your own thin clients or http Web pages and link to labview, send sms, share a front panel to distance between computers

    Here is a link where you can read all about it

    Cheers and good luck

  • 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.

  • VI refuses to run when the published network shared variable is not available

    I have a VI of logging data on my PC that gathers data from several sources, including several shared variable published network hosted on an RT target.

    The problem I have is that the data logger VI refuses to start if the target RT is disabled and the VI is abandoned if the network connection is interrupted.

    Is there an easy way to detect when running, be published these variable network are available and use a placeholder value, if they are not rather than the current behavior of refusing to work?

    I saw many people using data sockets, but I try to avoid the overhead of setting up and testing a loop of treatment relatively complex network on both ends when the network has published shared variables are so simple to use and works perfectly as this abnormal behavior.

    You can replace them with programmatic access (shared variable aperture and friends) and the dummy data placeholders if the variable is not accessible.

  • Why network shared variables is wrong values at startup?

    I run the example of the "RT FIFO Variables - Networked.lvproj" expedition. Once I have deploy shared variables that I can run successfully the host and the target live. Data is exchanged as expected. However, once I press the STOP button on the host VI VI target cannot be restarted independently of the execution state of the host VI. The only way I can get the target VI to start running again is to change (for example to add a text box or somekind of NOP) and then redeployed.

    It seems that some incorrect value gets stuck in the target variable stop FIFO and so cannot run the target. I tried to add a variable entry to the variable STOP before the loop in the example, but this is not enough.

    Can someone explain to me why this example of shipping can be run twice consecutively without a necessary redeployment?

    I vaguely remember something on the initialization of the shared Variables (I can't find the reference right now).  But I tried the demo code (finally) on and (as it turns out that) I had reason - is an example of poorly written, precisely because it is 'designed by omission"to work exactly once!

    Remember that instructions must start the host, and then start the target.  The first time, at the start of the target, you get a sinusoid.  But once you stop the host (which also stops the target), if you start again host, then the target, the target will stop immediately.  This is because the target (but not host) the shared Variable stop (when the target starts to run) as True (what it was the previous time the target ran) and stops see.  What you need to do is to provide sufficient time for the Variable (reset) shared between the host and spread throughout the network and gain access to the target.  I tried to put a 50 ms delay before entering the loop of the target - not long enough.  But 500 ms was fine - the example ran fine the second, third and a fourth time.

    I'll bring this to the attention of OR.

    Bob Schor

  • 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

  • Shared variable between 2 LabVIEW executables via the network

    Hello, I need to create a number of network shared variables by two (built with LabVIEW 8.6) executables running on two different computers on a local network. The library to invoke node returns an error when you use a different IP than localhost. even more, it is not clear to me what exactly I have to do (what executable deploys the library, on which targets, activate the link or not, so on...). Thanks for any help, if you have already managed to make this communication works properly...

    Thanks for the replies. I've found the last two documents, but the first one is the most interesting: if I can't put the sources of two applications in a single project, I will move to another solution (data as suggested by Mike sockets or TCP). The two original projects are larger, and their merger would lead to such a huge thing!

  • 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.

  • shared variable LAN configuration

    Hello everyone,

    I have a problem with deployment variable published network share and I hope that the experts of Labview in this forum could help me.

    I'm contacting a compactRIO (IP 192.168.10.100) via the published network shared variable. 32-bit LabVIEW version 2014. CompactRIO is AES.

    On the target, computer laptop, there is a port LAN (the usual) and it is used to connect to the internet with the IP (for example 10.115.22.200). There is also a USB adapter to ethernet, and it is used to connect to the compactRIO using IP 192.168.10.10. I am able to ping the compactRIo of the laptop.

    I called up the Manager of distributed system, but I couldn't see the compactRIO. I could see all the other devices on the 10.115.22.200 network.

    My question is, is it possible to set up a laptop with two IP addresses (192.168.10.10 and 10.115.22.200) with different subnets? I suspect that this is not possible and this is the reason why I do not see the compactRIO.

    Thanks in advance for your advice.

    chati

    Yes, shared variables are deployed.

    There is a solution. Apparently affecting USB) 1 Ethernet adapter to the network of 'Home' and 2) gateway defaults to the IP address of the cRIO, solves the problem.

    Thanks for the suggestions and the entries of Sam and natasftw.

    Your

    chati

  • new variable networked shared in my computer, but not in the shared variable engine list

    I have a Variables.lvlib shared on a cRIO target and test algorithms when I don't have access to material cRIO. Thought I could do a new project, add the library to the windows target (workstation). I need to add a few additional variables, I did in the original (i.e., while the library was the target in real time). Then create a new project and added the lvlib to the project (under my computer), and then wrote a VI to write in these SVs. When I let fall a constant Variable Refnum shared on the block diagram and browse for objects variables under 'Variable' Motors > ni.var.psp > localhost > shared Variables, list of variables shows everything except the 6 new variables. When I switch the view 'Current project', I get the same variables for new list WITH THE 6. However if I select the variables in the list and run the VI I get an error-1950679035 impossible to locate the variable in the shared Variable engine. Of course, I forgot something, anyone out there set me straight?

    Thanks for your time - lmd2

    Hello Lawrence,.

    Looks like you'll have to maybe just to deploy the new variables - refer to this document:

    LabVIEW Help: Making static Variables available on a network

    http://zone.NI.com/reference/en-XX/help/371361K-01/lvconcepts/sv_deploying/

    Hope that helps!

  • network Publish shared variable

    I'm hosting the OAS of a sbRIO engine, developing with LV10.  I share an array of Boolean values on the sbRIO and I need to be modified by (1) the sbRIO by programming the control array, and (2) a LV GUI running on PC graphically (i.e. option boxes).  I share the table and PC HMI can connect and view the States of the button as established by the sbRIO, but when I try to click on one of the radio buttons, the sbRIO seems to outweigh demand and turn the reverse button (I know demand is through, I see a very rapid change in the State of button/table on a temporary HMI connected through the sbRIO project).

    Do I need a separate shared table for applications for PC/HMI that I must then analyze via w/Combinatorial logic and find the changes then send updates until the sbRIO to write in the "master" control programmatically array?  Or is it a type of feature for arbitration to a shared Variable NP?

    THX

    Hey Atlas,

    This looks like a problem that arises from the conditions of competition, access to shared variables. You always read or write variables in a loop on each application? If the Boolean values are poised to the HMI, you must use a "send" or the "write" button that writes to the shared variable. If the HMI application is constantly reading and writing to the shared variable, you can overwhelm network variable motor and see problems like these. If you still have problems, feel free to post your screws or block diagram screenshots so that we can see what you're doing.

  • read into the buffer variable published network shared

    I use a shared variable that is published in the network buffer to write data to an RT target and read data buffered by the host application.

    I followed a different behavior regarding data buffering using Variable vs reading read the shared Variable node.

    There is no problem the shared variable node read but using the results of reading variable function of loss of data, such as access without alkaline reserve. I can read only some of my data values.

    I see no difference in access in the buffer in LV2009 help.

    against

    Any help is appreciated

    Christian

    Hi Christian,

    The behavior you describe is because the client side PSP buffering is not applied to the Variable API shared in LabVIEW 2009.  It was a design decision, but eventually, we hope to include this feature in a future version of LabVIEW.  This bug here as you pointed out is the lack of documentation for it.  Corrective Action Request # 202159 has been filed for this issue.

    Let me know if you need assistance working around this issue.

    See you soon,.

  • 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

Maybe you are looking for