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.

Tags: NI Hardware

Similar Questions

  • Network published simple Variable help

    I am writing a program to be a 'LabView wrapper' for iperf

    I need to run iperf server and client iperf on two different machines.

    Machine: iperf Server launch and write ture to a shared variable

    B: machine customer shared reading variable iperf and launch if computer A is running iperf Server

    I've never used a shared variable before, I looked at the examples, but as usual, they work but are default and one explanation as to why or how.

    I managed to get as far as a variable to shine as a network type Boolean putting published a shared on my block diagram variable I can choose the my project server variable, very well, but the shared variable is read-only?

    How can I write to a shared variable?

    Right click and change the access mode to write

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

  • 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

  • reconnect the stall network of shared network variables

    I have a cRIO unit communicates with a laptop using shared network Variables, one of them being a table of 21 index which is buffered.

    The system connects and communicates very well, but sometimes the wireless laptop card is to lose the signal from the WAP, attached to the cRIO.

    In this case the network never shared Variables "reconnect" and start to receive values still once the wireless link is restored.  Is this expected behavior?

    When I tried to use other WAP industry instead of the card laptop wireless, I get no abandonment.

    Hello Ryan,

    Please contact National Instruments!  I looked into the problem you are having and I wanted to ask you a few questions more.  First of all, you have a period of time which allows the reconnection?  I believe that the Shared Variables should find the connection after a short period, but it may not be a very quick process.  It may take a few minutes to the Variables shared to reconnect.

    The other thing that could happen is if you have error son being passed by shared Variables, it is possible that the error is not be deleted, and so he will always see the error and not a so never reconnect.  In this case, you will need to filter this error and then clear the error in order to use again shared variables.

    If you have more specific information about your program that can help us to determine the reason for this behavior.  As a screenshot of your code would be useful.  Please let me know if you have any other questions and I'll be happy to help you.  I hope this helps!

  • 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

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

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

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

  • Publish a queue using the shared variable

    I have a 2D table queue and I would like to publish (the reference) in a shared variable, so that I can pay the items in the queue in an another vi. I tried to create a queue control and used the custom of the shared variable control option, but it gives me an error "invalid data type.

    You try to read from the queue to another computer? Passing the reference to the queue on the network to a another computer will not allow the application to read data from the queue. The queue data is stored only locally.

    I honestly don't know why you get an error trying, however. Other options to access a queue in the world on the same machine are to use a Global Variable, rather than a shared Variable, or to get your reference queue by using a well-known name who know the other parties of the request.

  • 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

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

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

  • 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

  • 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