Do I need to set host side shared variables to RT FIFO?

Hello there,
in my application a LV host application communicates with compact RIO through shared variables. On cRIO i have some shared vars with RT FIFO enabled. On host side for those vars which are bound to cRIO i did the same. Is that neccessary?
In general I am confused about shared variable settings on both sides, for example when I want network buffering. Do I set buffering on RT side or on PC side or on both, what is the difference?
regards
Thomas

Dear Thomas,
thank you so much for your post. The shared variable with RT FIFO enabled works the same as the RT FIFO functions on the RT functions palette. The RT FIFO is for communication between the higher priority loop and the normal priority loop. You can see it like this; if the shared variable with RT Fifo enabled is network published there is a communication loop (hidden) which publishes the shared variable to the network port of the cRIO system. The RT FIFO option is only for the communication between your high priority loop and this hidden loop. The hidden loop is executed when the higher priority loop is idle. Again I speak about hidden loop just to create a clear picture.
So for your PC side no RT FIFO is needed. Please notice that by using shared variables you can lose data; for example the cRIO publishes the data faster then your PC can read the data; you will lose data points. Shared variables are based on UDB, you can see it like a radio station which is transmitting. It doesn't matter if people are listing to the radio station. Use the TCP functions (for example theSTM library ) or the network stream API if you don't want to lose data.
Please let me know if you have any further questions,
Best regards,
Martijn S
Applications Engineer
NI Netherlands

Similar Messages

  • HT202213 Where is the Apple website that I need to set up home sharing?

    Where is the Apple website that I need to set up home sharing?

    Understanding Home Sharing - Apple
    http://www.apple.com/support/homesharing
    iTunes: Setting up Home Sharing on your computer - Apple

  • Too many id's need help setting up family sharing

    We currently have one apple id (tjc) that is associated with the apple store and one that is associated with itunes (m7).  The itunes one (m7) does not have an icloud account attached to it, used only for purchases from itunes store.  Husband uses the apple store id (tjc) and I have my own (jj).  Can I set up family sharing with the itunes id (m7) as the purchaser?  Or how do I keep all my itunes purchases if we make husbands/apple store id (tjc) the primary?
    Currently running OS X yosemite and ios 8 on an imac, iphones, and ipads.
    Thanks for your assistance!

    Hi bremaura,
    Thanks for the question. If I understand correctly, you want to havde all purchases from one Apple ID available in Family sharing. I would recommend that you read this article, it may be able to help you isolate or resolve the issue.
    Family Sharing - Apple Support
    All your family’s purchases, on all your family’s devices.
    Once you’ve set up Family Sharing, all the eligible songs, albums, movies, TV shows, books, and apps ever purchased by family members are immediately available to everyone else in the family. And, of course, so are new purchases. 
    Thanks for using Apple Support Communities.
    Have a great day,
    Mario

  • Need help setting up a shared /Library/Fonts folder for font sharing

    Hi,
    I have a problem setting up a shared /Library/Fonts folder on my OSX 10.5.5 server that gets automounted on the OSX 10.5.x clients.
    While I managed to get the folder to show up automatically under /Network/Library/Fonts on the clients, the fonts in these folders do not show up in Font Book on the client systems. Plus, it seems like there is some sort of language mismatch, since I am using a German OSX installation. While the shared /Library/Fonts folder does show up under the "Network" area (where the servers are listed), it does not connect correctly on the "/Netzwerk" folder that OS X creates automatically. In fact there are 2 folders named "/Netzwerk" on my startup drive root directory, one that reads "/Network" when looking at it in the terminal, and one named "/Netzwerk". The /Network one does have a working link to the /Library folder, and the /Netzwerk one does only contain something looking like an alias of /Library, but it does not allow any access to this alias.
    If anybody did manage to get this Netowrk "/Library/Fonts" to work I would be happy for some feedback. I am simply not sure if this is related to a localization bug, or if I am doing something wrong here. The fact that the folder and the fonts does show up correctly under the network portion of the sidebar seems to indicate that my setup is correct, but still the fonts do not work.
    Any ideas, or maybe a step-by-step description on how to set this up would be great.
    Thanks a lot,
    Floh

    Hi, Sorry I don't have an answer for you. But how did you get to share /Library/Fonts? I was trying to do the same thing by using "File Sharing" in Server administrator. But under volumes, I don't see my root directory "/". So there is no way that I can share any of my folders under "/".
    Thanks.

  • I need help setting up file sharing with my MBP and a PC

    i have been trying to set up file sharing so I can move files on my windows PC (music, pic's, office, pdf, etc..) to my new MBP.  I followed all the directions, but still cannot see the MBP on the PC.  I had it working a few days ago by setting up the workgroup function.  but now, nothing.  it will not show up in Windows Explorer. Just trying to move files into Dropbox.  Help!!  thanks.

    i have been trying to set up file sharing so I can move files on my windows PC (music, pic's, office, pdf, etc..) to my new MBP.  I followed all the directions, but still cannot see the MBP on the PC.  I had it working a few days ago by setting up the workgroup function.  but now, nothing.  it will not show up in Windows Explorer. Just trying to move files into Dropbox.  Help!!  thanks.

  • I want to Host my Shared Variables on a cRIO, but use DSC for Logging/Alarming/SCADA

    Hi everyone,
    What I'm trying to do is this:
    -Host shared variables on my RT targets (cRIO-9022) for reliability
    -Use the DSC module to log to database, track Alarms, develop distributed HMI
    The problem I'm running into is that the DSC engine (it seems) needs the shared variables it is monitoring to be hosted on that computer. The DSC engine can not run on a real-time target.
    My end goal is to create a plant-wide network of cRIO's that are all linked back to a central server/PC that runs DSC to collect and stores data in a database. The plant HMI would also connect to the central server and get their information from there (not directly connected to the cRIO process). Is this possible/does any one have ideas on how to do this efficiently?
    Thanks for the help.
    --CLD--
    LV 6.1, 8.6.1, 2011 SP1, 2012 SP1
    Solved!
    Go to Solution.

    Sachsm,
    Thanks for the input. I tried to create a test project for this type of architecture (bound NSV's) but am running into some errors.
    I have attached a screenshot of the project and front panel showing the binding status of each variable **see attached picture**
    Hosted on PC:
    -Clone (Variable1) ---- This is bound to Variable1 on cRIo using the "Create Bound Variables" option in the Library
    -Variable3
    Hosted on cRIO
    -Variable1
    As you can see, when I drag variable 1 directly onto the PC front panel, the variable connects (indicator is green). Likewise, when I host Variable3 on the PC and drag it to the front panel, it connects. However, when I drag the Clone (variable bound to Variable1 on cRIO) onto the front panel, it cannot connect. Any thoughts?
    --CLD--
    LV 6.1, 8.6.1, 2011 SP1, 2012 SP1
    Attachments:
    Binding Error.jpg ‏127 KB

  • Using a 2-D array Single Process Shared Variable w/ RT FIFO for comm between a Deterministic and non-deterministic loop on an RT Target

    Our problem is that we currently use a 2D array to store CAN data on a Real-time Target. The array is 20 elements of 3 byte elements as so:
                    0              1              2
    0              [byte]   [byte]   [byte]
    19           [byte]   [byte]   [byte]
    These values are passed between a Deterministic Timed (DT) loop where they are set and a Non-Deterministic Timed (NDT) loop where they are read and passed into a Network Published Shared Variable (NPSV) for communication across the network to a Host PC. I have insrted an image for illustration, pardon the size.
    Currently to pass the data between the DT and NDT loop we are using a Global Variable (GV). To improve the system we have attempted to replace these GVs with Single Process Shared Variables (SPSV) with an RT FIFO enabled.
    To create the shared variable I simply right clicked the GV of interest and selected create Shared Variable Node form the drop downs. At this point LabVIEW presented me with a 2D NPSV within a new Library hosted on the RT Target. I then selected this new NPSV from the Project, changed it to a SPSV, and enabled a single element FIFO. This variable was initialized with a default value for the size described above and then used in our code for the DT to NDT communication, and conversion to a corresponding NPSV for sending to the Host.
    When I went to run the code I noticed that the variable was in fact 2D, however its size was only 2 elements of three bytes each, in other words only two of the row indices were populated and the other appeared as uninitialized. in addition, this data had no resemblance to the set initilazation value. This was also how the variable was presented on the host side of the network after tranfer into a NPSV.
    The peculiar part is that If I change this SPSV to a NPSV and then try to change it back, I receive an error saying the type is not supported for SPSV with an RT FIFO enabled. I have to disable the FIFO (which defeats the entire purpose) in order to successfully compile! I am unclear as to what is the bug in this case. Should I not be allowed to create the original 2D SPSV with a single element RT FIFO enabled without receiving an error? Or if this is okay how do I fix the problems associated with the variable after being allowed to create it?
    I have found the following discussion in which a user states “The only limitations for custom controls is the ability to use it with RT FIFO enabled on a network-published shared variable”. Is this also true for SPSV? I have not found any documentation explicitely stating this for SPSV, though it is stated for the NPSVs.

    Martin,
    RT FIFOs don't support Multi-Dimensional Arrays, which would corroborate the issues you're seeing.  You can break up the 2D array into 1D arrays by reshaping the array, then you'll be able to use the RT FIFO enabled variable, just set the array size to the total number of elements (20*3 = 60).
    You can also pass the 2D array via pre-allocated queue, or using a Functional Global.  We have a reference example for a circular buffer using Functional Globals here.

  • I cannot log on to ITunes to set up Home sharing between my new IPAD and AppleTV. Therfe is not even the typical home screen for me to log on to my account at APlle Store or ITunes?

    I have a new IPAD and just bought APple TV. Need to set up home sharing on my account and have followed Support options wherein you log into ITunes, choose advanced, then allow Home sharing. There is no place to even sign in to ITunes as i have always seen before. Cannot start ITunes on  Laptop (linked to IPAD) at all but can from Browser. Trying to share content from my IPAD and APple TV.
    I had no problem doing so on my home PC and APple TV but not IPAD?

    BStroke wrote:
    Cannot start ITunes on  Laptop
    WHat happens?
    Have your tried removing and reinstalling iTunes?
    Cannot start ITunes on  Laptop (linked to IPAD) at all but can from Browser.
    What does "can from browser" mean?
    Trying to share content from my IPAD and APple TV.
    You don't share content from AppleTV (as it contains no content) and you can AirpPlay from iPad to AppleTV, not share content.
    To turn on Home Sharing on the iPad, Settings > Store.
    THis allow soyu to view the content of the iTune slibrary on your comnoputer.

  • I have an apple id with verizon and @me and i can't set up family sharing

    i need help setting up family sharing because i have two apple id's  one with verizon and one @me.com  so i already purchased more storage on the cloud with verizon and when i signed in on the desktop to upload my library and set up homesharing i had to do another 9.99/mo plan because that computer only allows me to sign in with @me.com.  I've read that I can't combine them??  So how can I fix this?  Any easy solution?

    Howdy Denise,
    It is not possible to combine Apple IDs. See this article -
    Frequently asked questions about Apple ID - Apple Support
    You can set up Family Sharing using one of your Apple IDs by following the directions in this article -
    iCloud: Family Sharing
    Note in particular that in order to set up Family Sharing you need a Mac computer running Mac OS X 10.10 (Yosemite).
    This article provides a good overview of Family Sharing and what you can do with it -
    Family Sharing - Apple Support
    Thanks for using Apple Support Communities.
    Best,
    Brett L 

  • Custom data type causing trouble in deploying shared variable to RT target

    I seem to be having some difficulty in using a network published shared variable created from a custom data type when deployed as an executable on an RT cRIO target.  I'll start by describing why I believe this is where the problem lies.  I created my RT VI in the LabVIEW development environment (LV 2012) and everything works fine.  This VI is pretty simple because it rapidly devolved in to a debug exercise.  The RT VI starts by simply blinking the User LED a couple of times and then starts a simple acquisition loop to read a few values off the hardware using the scan engine (while still blinking the User LED).  After reading the hardware, the values are bundled in to a cluster and written to a network-published shared variable defined by a type def custom control.  The custom control contains five dbl precision floats.  If it matters, the cRIO RT system hosts the shared variable in this case.
    So, I deploy this under the development environment and everything works fine.  The LED blinks merrily along, telling me that the program is running properly.  Running a host VI that reads the network-published shared variable yields the desired result.  All is good.
    Now I want the cRIO system to run this simple program autonomously at startup.  I build it, set it as the startup VI, deploy it and then restart the cRIO target.  The LED never starts blinking... the VI does not seem to run.  I will spare you most of the debugging work and jump to the end.  I basically "Diagram Disabled" various sections of code until the VI started running correctly as an executable.  I kept reducing the size of the disabled code until only one thing was disabled:  the write to the custom data type shared variable.
    So, I guess my question is this:  Are custom data types defined by type def'd custom controls allowed in executable RT programs?  I've read through the cRIO Developers Guide, my NI Real Time Development course book and the Using Shared Variables white paper and I didn't see anything that forbade it.  I know that there are some things not allowed in executables that are allowed in the development environment (front panel property nodes, dialog VIs, OS-specific calls, etc), but no mention of custom data type shared variables.  Any ideas as to why my VI runs in the development environment but fails when compiled unless I remove the write to the network published shared variable?
    Thanks in advance for your help!!
    Solved!
    Go to Solution.

    Paolo,
    So I thought that you meant to disconnect them in the build specification.  Under the Additional Exclusions in the build specification, there is a check box for Disconnect Type Defs.  I checked that box, recompiled, redeployed and it did not work.  At this point I had to give and move forward, so I was going to convert the data typed from a cluster to an array.  When I went in to change the data type in the shared variable pop-up from the project explorer, there was a big button under the variable definition that "Disconnect from Type Def".  Clicked that button, recompiled, redeployed, restarted and everything worked great.  Thank You!!
    I suspect that I'll have to be careful if I change the definition of that data type (add an element, etc) since it is no longer connected to the data type.  We'll cross that bridge when we need to.
    Thanks again

  • Upgrade to 8.5.1 on all computers using shared variables?

    Hello,
    We are currently using DSC 8.5 and hosting the shared variable engine on one 'server' computer with other computers subscribing to network shared variables.  Some of the computers are Windows XP and others are RT.
    When we upgrade to DSC 8.5.1 can we just upgrade the 'server' computer and leave all other computers at 8.5 or do we need to upgrade all systems to 8.5.1 at the same time?  Will computers running 8.5 be able to read/write network shared variables hosted on the DSC 8.5.1 system?  Is such a progressive upgrade not advised?  Thank you in advance.
       - Chris White
         ThinkG Consulting LLC

    Hi Chris,
    The variables pass through the Shared Variable Engine on your server before they are read by other subscribers. Therefore, you do not have to upgrade the DSC on all your subscribers. I hope that answers your question. For further reference on how network pulished shared variables operate as well as the role of the SVE, please refer to this link.
    Ipshita C.
    National Instruments
    Applications Engineer

  • How do you synchroniz​e accesses to a LabVIEW Shared Variable?

    I would like to create an ad-hoc weather station program (I'll explain more in a bit).  I am using LabVIEW 8.0 Full Edition, and I would like to share data over a network between stations with the LabVIEW Shared Variable.  Here's what I want to be able to do:
    A node would start up, and begin publishing data to a network via a shared variable.
    The shared variable is an array of clusters
    The cluster information would hold things like:
    Station Name
    Station Location
    Weather information cluster (temperature, rainfall, windspeed, wind direction, etc...)
    Timestamp of last update
    When a new node would like to enter, it would bind to the shared variable, grow the array, and add its information.
    If a node's Station Name and Station Location is already in the shared variable, it would merely update the information in the cluster.
    Viewing nodes could pop in, bind to the shared variable, and read/display the information at any time. 
    I am trying to enumerate problems with this before implementing, and I have run into a stinker of a problem that I am not sure how to solve.  How do I synchronize accesses to the LabVIEW Shared Variable?  If I read the variable, modify it, and write it back, I will undoubtedly run into a race condition where 2 nodes attempt to update its data and I will lose the data written by the first node - Node A reads, Node A modifies, Node B reads, Node A writes, Node B Modifies, Node B Writes, and thus the modifications made by Node A are lost.  In my specific application losing some data isn't critical, but if not remedied this type of problem could cause massive amounts of data to be lost when there are numerous nodes, and that is definitely not acceptable. 
    Does anyone have any recommendations on how to synchronize the read-modify-write operations on the data in the Shared Variable?
    -Danny

    Wendy,
    I am afraid Semaphores are not network-shared objects (to my knowledge), they are system-level objects that use operating-system synchronization mechanisms.  If I were synchronizing on a single machine, a semaphore might be a valid mechanism; as an aside, most user-mode semaphores are designed to synchronize within a single process - to synchronize between processes you need to store the semaphore in the Kernel, and to synchronize over a network you would need a network node to handle serialization of requests.  My Shared Variable is published over a network, and to my knowledge there are no network-published synchronization mechanisms available - mostly because there is no way to currently perform an atomic test-and-set on the Shared Variable (am I correct?) and there isn't a mechanism for blocking access to a Shared Variable from another network device/machine (or is there?).  I've been looking for some way to implement an atomic test-and-set but I am running into a wall; I know that if I select the "single writer" attribute of the Shared Variable I can get LabVIEW to force a single writer allowing me to have an atomic "set", but I need more than that.
    If only there was a network-shared Semaphore or some way to block other network accesses to the Shared Variable I would be in business - something like what I want doesn't exist, does it?
    Thanks!
    -Danny
    Message Edited by texasdiaz on 02-23-2006 02:52 AM

  • How Can i retain the Shared Variable Values after PC rebooting

    Hi all,
    I am facing a paculiar problem with Shared Variables. I have an application in which shared variables are used for data communication.
    One of the application requirement is to retain the variable values eventhough PC is rebooted or started after crashing. 
    As per the my understanding, the variable values will retain eventhough the PC is rebooted. But here i can observe a paculiar problem like some library variables are retaing the values while some others not. I enabled logging for all the variables.
    I tried many ways. like logging enabled, logging disabled, changing variable names, changing process names etc... But i am not getting a consistent behaviour.
    I hope some you can help me in solving this issue.. "How Can i retain the Shared Variable Values after PC rebooting"
    Thanks and Regards,
    Mir

    Hi Blackperl,
    Thanks for the post and I hope your well. 
    What do you mean by not getting consistent behaviour.. this will all depend on excatly when the crash happens i.e. before the write or after. 
    Surely a better method would be to log the data to a file during the reboot...
    I beleived the value read back
    will be the default value for the shared variable's data type.
    The LabVIEW DSC 8.0 module adds more functionality to the shared variable, including initial values and alarms.
    If you enable an initial value on a shared variable, when the variable
    engine comes back on-line it will default to this value. Setting a bad
    status alarm for the shared variable is also a good way of handling
    this type of event. Additionally, if you are using a LabVIEW Real-Time
    target such as Compact RIO or Compact FieldPoint, it is appropriate to
    consider hosting the shared variable engine on the real-time target.
    These devices have watch-dog capabilities and are typically the
    hardware controlling the critical pieces of an application. Most
    Windows or PC-based targets do not have these fail-safes.
    I guess, if you could explain to me again that would be great. From my point of view, if I have a cRIO and a Windows PC. If the windows PC crashes, the cRIO will still update its shared variables. Then once the PC has started up its own shared variable engine, and the bindings are loaded, it will once again continue to update its copies of the variables.
    Please let me know what you think,
    Kind Regards,
    James.
    Kind Regards
    James Hillman
    Applications Engineer 2008 to 2009 National Instruments UK & Ireland
    Loughborough University UK - 2006 to 2011
    Remember Kudos those who help!

  • Deploy Shared Variable Engine in localhost

    I need to talk to multiple RTs using single computer. It seems
    obvious to deploy shared variable engine (libraries) in localhost instead of
    RT. However, the problem is the shared variables (read) used in localhost VIs
    are not being updated from RTs. But when I am using another local VI to update
    the shared variable, it is working just fine. The variable path of the RT looks
    like "\\My Computer\Local NPSVlvlib\Test
    Data". I think this is the problem why the values are not being updated
    because RT cannot resolve the network path ("\\My
    Computer\Local NPSVlvlib\Test Data"). Also, I tried to change the shared
    variable path in RT but I could not do it. Help Needed!!!!
    Solved!
    Go to Solution.

    Thanks for your reply. I found in this link http://zone.ni.com/devzone/cda/tut/p/id/9900#toc2 that host computer can host the shared variable library and RT does not need the shared variable engine. See below
    If your application includes a single host computer and a single or multiple RT targets it is recommended to host the library on the host computer. This will save memory and processor time on the RT targets. Also, by hosting the library on the host computer instead of the RT target, you can reduce the software install footprint on the RT target. The RT target will not need the Network Variable Engine, but will still require Variable Client Support. The Network Variable Engine allows hosting, the Client allows communicating with libraries on other machines. You can see a RIO target with these installed in Figure 4.
    That exactly what I am trying to do. Any comments? 

  • Datasocket shared variable api

    I ran into the following the other day whilst debugging some code:
    We had a type mismatch when sending data however, when testing the DataSocket API did not return this error information, nut the Shared Variable API did.
    DS just returned default data with a change in the timestamp)
    This got me thinking:
    Is using Shared Variable API the way to go? Is it a better (more refined) API?
    Are there different reasons for using one over the other? (I do like that DS's refnum is not datatyped, which means that I have to provide the datatype on the read as opposed to the SV-API).  
    With respect to the type mismatch, I found that I could actually initialise the Variable with either datatype and it worked (only) for that datatype.
    It would only error when the other datatype was used.
    Does that mean the Variable does not know what its datatype actually is when a cluster is used?
    Cheers
    -JG
    Certified LabVIEW Architect * LabVIEW Champion

    charris wrote:
    I'm not sure I quite follow your question regarding datatypes. It looks like the error is being returned because a variable cannot contain a cluster. You can do arrays, but not clusters, so that's probably why the SV API is complaining about the type input.
    Hi Caleb
    My question was relating to the fact that if the variable is not initialized on one PC, and I try reading from it on another PC, specifying the datatype to read back, then I get an error using the SV API but no error from DataSocket.
    My use case was for a Cluster.
    I didn't check whether it was Cluster-specific or occurs for every datatype.
    I assumed Cluster-only as Clusters differ when setting up the Shared Variable.
    I.e. All standard datatypes are available in a drop-down, but you need to select Custom Control for a Cluster.
    So the last question was asking could I theoretically use any Cluster with a SV-Cluster as long it is the same when I do a Read and Write.
    I.e. When using the DS/SV-API the Shared Variable does not know (/have information on) what its datatype actually is when a Cluster is used - it relies on what datatype is used to initialize it? 
    Hope that makes sense.
    Cheers
    Jon
    Certified LabVIEW Architect * LabVIEW Champion

Maybe you are looking for

  • Where are the Sales Org and DC details entered in IDOC type ORDERS05?

    I'm continually getting the message that the SORG and DC does not exist for a PO raised within CRM. However, I can't actually see any segments where these details can be entered. Is this something that is derived automatically based on the material n

  • SCCM 2012 and .PCK files - how exactly are they used?

    Ok, no one, not even Microsoft engineers can seem to provide a clear and definitive answer on this topic, everyone's understanding of the .PCK file with relation to SCCM 2012 is clear as mud. I understand what .PCK files are...in the SCCM 2007 world,

  • Time machine taking longer to backup?

    Since the recent update to the timemachine software it has been taking about twice as long to complete each hourly backup.  Amy ideas out there? Colin

  • SAP BI - Data Services connection

    Hello I am trying to set up SAP BI - Data Services connection. Couple of questions : 1. Where from within the SAP can I get SAP gateway hostname and SAP gateway service name 2. I have a developer right on BW. Is it enough to make connection with my u

  • Error 8 occurred when building an executable due to file permission error?

    I received this error on executable builds from two different .vis.  Other .vis in the project build without incident and the message below doesn't seem to indicate the file that is causing the problem, unless it is the SPT-errors.txt file listed at