Shared variable version on host and RT target

Hi,
Is it possible to use different shared variable engine on host computer and RT target? We use shared variable to communicate between RT target and host computer. Once the products shipped to customers we will keep the software on RT target unchanged but we would like to keep updating the program on the host computer with newest LabVIEW version. Is it possible to just update the host computer without updating the RT target?Thanks for help!
Tao

Hi Tom,
Are you getting an error code or some thing else?
Attached are two zip files.   The 8_5.zip is a LabVIEW project that was written in 8.5 and deployed to a cFP.  The 9_0.zip is a LabVIEW project written in LabVIEW 2009 (9.0), that reads the shared variable off of the cFP running the 8.5 code.
This works for me, so if you could give a little more detail, hopefully I can help you out.
Justin Parker
National Instruments
Product Support Engineer
Attachments:
8_5.zip ‏36 KB
9_0.zip ‏30 KB

Similar Messages

  • How to use the "Get Shared Variable List" VI on an RT target?

    Hello,
    I'd like to programatically iterate through all the shared variables in a library hosted on my CompactRIO. I dropped the "Get Shared Variable List" VI into my Real-Time VI, but when I tried deploying it, LabVIEW said
    Deploying PRC_GetVarList.viPRC_GetVarList.vi loaded with errors on the target and was closed.
    LabVIEW: Failed to load shared library dscProc.dll:ni_lvdsc_process_GetTagListEnd:C. Ensure that the library is present on the RT target. Use MAX to install NI software or FTP to transfer custom libraries to the RT target.
    LabVIEW: Failed to load shared library dscProc.dll:ni_lvdsc_process_GetTagListBegin:C. Ensure that the library is present on the RT target. Use MAX to install NI software or FTP to transfer custom libraries to the RT target.
    I looked at the MAX Software Wizard, but couldn't find any DSC-related modules. Where should I be looking?
    Thanks!
    Solved!
    Go to Solution.

    Hello,
    The DSC palette is not supported on Real-Time VIs and will lead to errors when deployed.  Unfortunately, to have a successful build you will need to modify your application and remove any of the VIs from the DSC palette on your RT Target.
    Regards,
    M. Whitaker
    ni.com/support

  • Shared Variables using Two Computers and Crossover Cable

    I'm just trying to put together a simple bench test tying two computers together by a crossover cable.  They ping correctly to each other.  I used the LabVIEW examples for TCP connections and they talk correctly that way too.  I try to build and deploy shared variables on one computer, but the other computer will not identify the SV's on the first computer and vice versa. 
    Can someone give me some details on how to build, deploy, and effectively use SV's?  I've read all the NI documentation, but I'm not getting the step-by-step approach very well.
    Thanks.
    Nathan - Certified LabVIEW Developer
    Solved!
    Go to Solution.

    Are you making them network published shared variables and binding them to each other? This doc gives a pretty good step by step:
    http://digital.ni.com/public.nsf/allkb/7815BCE435DCC432862575DA006FEBF8
    --Ryan

  • Binding a shared variable to a NI-PSP data object does not work

    Hi,
    I want to share data between a RT-target and one or more hosts (LV 8.6.1). The network shared variables are deployed to the RT-Target.  According to NI accessing shared variables from another project or host has to be done by defining a shared variable on the host and aliasing it to the NI-PSP data object on the target.
     I did that and the host shared variable generated an error (0x8BBB0011) during runtime.
    Next I aliased to a shared variable deployed on the host from another project. This did work.
    Another thing I tried was to bind the variable from the RT-target to a display element:
    This is working !!! And as you can see the path of the NI-PSP data object is exactly the same ! So what is the difference between binding a data object to a shared variable and to a display element?
    Is there a bug in the SVE or am I missing something here?
    The host project:
    The publisher VI
    Hope, someone has an answer.
    Regards
    Matthias Quade
    Solved!
    Go to Solution.
    Attachments:
    AliasTestWrite-RT.vi ‏8 KB
    AliasTestConsumer.vi ‏8 KB

    Dear Mr. Quade,
    thank you for posting at the National Instruments Forum. There is a known issue with the path of the bound variable with LabVIEW 8.6.1
    Please download the patch for LabVIEW 8.6.1, it should solve your problem:
    http://joule.ni.com/nidu/cds/view/p/id/1255/lang/de
    Best regards from Munich
    MarianO

  • Shared variable, missing data, the same timestamp for two consecutiv​ely data

    hello
    I have a problem with missing data when I read from a network published shared variable.
    Host VI:
    In a host VI on my Laptop (HP with WinXP Prof.) i'm writing data to the shared Variable "data". Between two consecutively write operations is a minimum of Milliseconds waiting time. I use that because I want to be sure that the timestamp for each new data value is different then the preview one (resolution shared variables is 1 ms)
    Target VI:
    the Target VI on a cRIO-9012 realtime device is reading only new data in the way that it compares the timestamp of a new value with the timestamp from the last value.
    Problem:
    rarely, I'm missing a datapoint (sometimes everything works fine for several hours, transferring thousands of data correctly before suddenly the failure happens). With some workaround I'm able to catch the missing data. I've discovered that the missing data has the exactly same timestamp then the last readed datapoint, therefore is ignored in my "legal" data.
    To sum up, the missed value is written to the shared variable in the host, but the target ignores him because his timestamp is wrong, respectively the same as the last value has, despite the host waits every time for a minimum of 10 milliseconds before writing a new value.
    Note:
    The shared Variable is hosted on the Laptop and configured using buffering.
    The example is simplified only to show the principle function, in real I use also a handshaking and I secure that there is no over- and underflow.
    Simplified Example:
    Question:
    Has someone an idea why two consecutively data can have the same timestamp ?
    Where is the (wrong) timestamp finally coming from (system?) ?
    What would be a possible solution (at the moment with shared Variables) ?
    -> I tried a workaround with clusters where each data gets a  unique ID. It works but it is slower than comparing timestamps and I could get performance problems.
    Would it change something when I host the shared Variable on the RT-System ?
    Thanks for your help
    Regards
    Reto
    Solved!
    Go to Solution.

    Hi Reto,
    I had a look on your modified Example.
    Because the Shared Variables didn`t work like Queues or Notifiers (No Event or Interrupt when a new value has been written. And for sure the´re not possible over a network) you will see the issue, that the code is reading the values more often with the same timestamp (Polling Problematic) if the reader is faster then the writer. And because the timestamp is written with the value you´re able to program like you do. Filter out whats duplicated when you have the same timestamp.
    Everything is described in here:
    http://zone.ni.com/devzone/cda/tut/p/id/4679#toc1
    Laurent talked about a second depth of buffer. Please have also a look at the link. Somewhere in the middle of the tutorial you see the explanations of Buffer and RT-Buffer.
    Regarding your question: Would it change something when I host the shared Variable on the RT-System? --> No
    In my experiences, you should consider to place the Shared Variable Engine after asking some questions regarding the application.
    You will find the Answers to this 3 Questions also in the link:
    Does the application require datalogging and supervisory functionality?
    Does the computing device have adequate processor and memory resources?
    Which system is always online?
    And you`re right the smalles time interval you can see in the timestamp is 1ms.!
    What you also can do is working with an enabled "timed out". This might be more performance efficient than reading the timestamp.
    What I don`t know and not find up to now, is if LabVIEW or the OS adds the timestamp. It´s taken from the system time, this looks like LabVIEW is taking the value and adds it. 
    I hope this helps
    Alex
    NI Switzerland

  • Shared Variables stop working on cRIO-9074

       I have a Dell E5540 laptop running W7 and LV 2013.  The project talks to a cRIO-9074.  I use a handful of shared variables to communicate some of the data between the two platforms.  I have gotten this all working fine.  Then twice, something has gone wrong.  The shared variables just stop communicating.  They are hosted on the laptop.  The host program sets them just fine.  The Distributed System Manager can monitor them and sees them change.  But the RT program never gets the new values.  The RT connection is fine.  I can probe into the running RT VI, and I see that the shared variables do not get the correct values.
        The firewall is off.  I've undeployed and redeployed everything over and over.  Cycled power, rebooted, etc.
        In both cases, I finally was able to fix the issue by re-installing the entire suite of NI software on the cRIO.  After I did that, the program started up and behaved fine.  I have no idea what triggered the failure in either case.  Also, I have a second laptop that I've used to verify that the problem is with the cRIO and not with the laptop.  When things are broken, it fails with both laptops.   As soon as I reinstall the software on the cRIO, both laptops work with it fine.
        Has anyone seen this before?  Any ideas how the cRIO might be failing?  It seems like some software component on the cRIO must be getting corrupted, since the software reinstall is the only thing that fixes this.  Perhaps the cRIO is bad?  The one other possible clue I have is that during the second fix, I even went so far as to reformat the cRIO disk using MAX.  After the format worked for a while, it popped up an error saying that the format had failed.  But I was able to reconnect and reinstall the software and get things running.  I just wonder if that error code is another symptom of a bad piece of hardware...
    Thanks,
        DaveT
    David Thomson Original Code Consulting
    www.originalcode.com
    National Instruments Alliance Program Member
    Certified LabVIEW Architect
    There are 10 kinds of people: those who understand binary, and those who don't.

    Hello Dave,
    You can try to pinpoint where the problem is with some tests. First, you could try running the real-time VI on your host instead and seeing if the problem with communication still occurs. Then if this seems to work fine, try running a LabVIEW shipping example for network shared variables on the host and target. One such example is Analog Input - Getting Started - Scan Mode.lvproj from the NI RIO driver.  If this succeeds, the problem is most likely with the LabVIEW application you have. However, if it fails there is a much higher chance that there is a problem with the cRIO.
    Have a good day,
    Siana A.
    Application Engineering
    National Instruments

  • Digital shared variables stop working

    I have many shared variables bound to Fieldpoint channels with OPC (DSC 8.2). Sometimes, all the digital input and output variables stop working at the same time, with no apparent reason. In Variable Manager their quality shows as "subnormal". If i try to read/write any variable, i get error -1950679030 (Unspecified error) at ni_tagger_lv_read or ni_tagger_lv_write (writing works, though).
    The Fieldpoints keep working perfectly and i can normally access all the channels in MAX, only shared variables don't work.
    The variables never get to work again (it happened friday night last time, and i discovered it monday morning!), until their vaule changes. When the value of a digital channel changes, the bound shared variable starts working again, and its quality gets back to "good".
    The only way to make all the variables work again is manually undeploy and redeploy the library. Any hint?

    Hello Dave,
    You can try to pinpoint where the problem is with some tests. First, you could try running the real-time VI on your host instead and seeing if the problem with communication still occurs. Then if this seems to work fine, try running a LabVIEW shipping example for network shared variables on the host and target. One such example is Analog Input - Getting Started - Scan Mode.lvproj from the NI RIO driver.  If this succeeds, the problem is most likely with the LabVIEW application you have. However, if it fails there is a much higher chance that there is a problem with the cRIO.
    Have a good day,
    Siana A.
    Application Engineering
    National Instruments

  • Shared Variable Deployment and Hosting

    Hi all,
    I am writing a labview RT application where a host PC will communicate with a RIO 9074 to write/update some 400 I/O simultaneously..
    I have decided to write an entry level VI on the host PC so that I can pass all data to the RIO and then receive the processed data back. Here is my question... Where should I create the network shared variables in my project?? Under the host PC or under the RIO target?? What would be the difference between hosting the network shared variables in my host PC or hosting them in my cRIO??
    Cheers,
    Harry

    There are some questions you need to ask yourself before you make those decisions. The following tutorial has that covered under the title 'Recommendations for Shared Variable Hosting Location'. Have a look and let us know if you have any further questions:
    Using the LabVIEW Shared Variable
    Adnan Zafar
    Certified LabVIEW Architect
    Coleman Technologies

  • Compact FieldPoint and Shared Variables

    Hi Real-Time community,
    let me first to describe my problem: I have a project running perfectly on Windows XP machine. The Real-Time Target (compact FieldPoint) is acquiring a data from different sensors and sends them via Shared Variables to the host machine (WinXP). Now this host application has to migrate to Windows 7 machine, which second Ethernet port is also connected to the compact FieldPoint's network. I have created an installer, it run on Win 7 computer but I I see no data there. Shared Variables are standart network-published. What else I need to configure to get Shared Variables visible over there? Thank you in advance for any helpful hint.
    Armen

    Hi,
    we do have the full edition of Signal Express, this is not the problem. We are already logging the information comming from our cFP-1808 : TC-120 and AI-111 module. The problem is that the AI-111 module is a 4 to 20mA module, and we have thermocouple connect to it. We want to read temperature in Signal Express instead of mA.
    There's a option in MAX where you can add scaling to a cFP module. This scaling work in MAX, in the OPC server of the cFP, but not in Signal Express. In Signal Express, you still read the mA value.
    I know we can add a formula in Signal Express, but we don't want to do that, when there is an other option in MAX.
    Thanks

  • RT target slows down after updating with a shared variable

    I am using a shared variable that is defined in the RT target (cFP-2110) to transfer data from the host PC.  The shared variable is a cluster of scaling parameters that needs to be stored in the RT target.  The host PC is only connected temporarily for system setup and calibration. 
    There is only one instance of the shared variable in both the host PC vi and the target vi.  The shared variable in the host is located in an event case that is activated when there is a value change.  Everything works great until I make a value change in the shared variable.  The target vi promptly slows from 30mSec to about 500 mSec and stays that way.  The only way I can get the RT target to run full speed again is to recycle power or reset it.
    What am I doing wrong?
    Temporarily slowing down the RT target when the shared variable is updated is not a problem for this application.  The problem is that I have to restart the target to get it running at full speed again.
    I’m using Win-XP, LV 8.5.1 and FieldPoint 6.0.1 
    Thanks,
    Dave J.

    Hi Mark,
    The host is sending the shared variable via an event case.   When the event is activated, the data is sent to the target and it functions as expected, except that it slows down to a crawl. I have to restart the target to get it working up to speed again.   The are no error codes.
    The shared variable is a cluster of several items and it is attached.
    In the mean time to promote the project, I split up the cluster into smaller clusters to use several shared variables and now I do not have a slow down problem.  In other words, it works great.  As an experiment I have sent the several small clusters at one time and I get the slow-down problem again.
    I've come to the conclusion that large single cluster (which is attached) is too much to send at one time.
    Please advise if there is something else to learn or understand.
    Thanks,
    Dave J.
    Attachments:
    Host Data In.ctl ‏33 KB

  • Modbus Ethernet read and write to a Eurotherm 6180XIO Modbus server using LV8.2 shared variables

    I am having EXTREME difficulty trying to establish communications with a Modbus device using LV8.2 shared variables.  The device is a Eurotherm 6180XIO Datalogger configured as a Modbus master.  The PC and a cFP-1804 are slaves.  All IP addresses are set correctly.  This approach using shared variables would seem simple, but I can't find any examples or proper guidance on how to get it working.  I am trying to avoid having to mess around with TCP/IP, OPC, or any other old-fashioned method.
    I have read many threads on related topics but none directly apply to this situation.  I have created a library containing a Modbus I/O server and shared variables bound to read and write holding registers.  I have followed all recommended tips for creating such variables but I can neither read or write data.  All data types are U16 due to Modbus protocol limitations.  I have also applied the LV x10 factor in the most significant digit in the register offset (6 digits instead of 5).
    I have a cFP-1804 on the same network which reads into the datalogger OK.  The registers I use are 31000 (for CH0 on module 0, 31002 for CH1, etc) and the data can be read as FLOAT32.  I have updated the firmwate on the 1804 to the latest level.  I cannot even get shared variables to read SGL values.  Using registers 301001 for CH0 and 301002 for CH1 I can only read U16 values, and not a 2-word SGL.
    Third party Modbus simulation software is able to write to and read from registers very easily, but not LabVIEW.
    Some questions are:
    - do I use a Modbus master or slave as an I/O server in the library as a target for binding the shared variables?
    - is there some other wierd translation in register offsets between LabVIEW and traditional Modbus?
    - is this actually possible using shared variables or am I wasting my time?

    Sending the whole 60-character string using a string or array would be the most efficient.  I have tried both methods, and these only cause the datalogger to flag a message log but no text is displayed.
    For a string variable, I have used the following binding "My Computer\Modbus Test.lvlib\ModbusServer6180\442305", where ModbusServer6180 is a Modbus I/O server configured with the logger IP address, and 42304 is the register offset at the start of the text block in the logger.  I need to write to 30 consecutive registers starting with this one.  I am not using buffering and have not enabled single writer.
    Can anyone confirm whether this method should work in 8.2?
    Does the string need a special termination character?

  • Multiple versions of Shared Variables on same network

    I have 2 seperate reactors working on the same network each deploying ~50 shared variables (different names on each process) communicating with LV 8.5RT running on FP hardware.  One of the reactors is requested for new features and to be upgraded.  Is it possible to heve 2 different shared variable engines (8.5 and 2010) and versions on the same network and client computer, or am I asking for trouble.
    Paul Falkenstein
    Coleman Technologies Inc.
    CLA, CPI, AIA-Vision
    Labview 4.0- 2013, RT, Vision, FPGA
    Solved!
    Go to Solution.

    I believe we address this here: http://forums.ni.com/t5/LabVIEW/multiple-versions-of-Shared-Variables-on-same-network/m-p/1487366#M5...  
    Sam S
    Applications Engineer
    National Instruments

  • Shared Variables, Scan Engine & Multiple Targets

    I am seeking some general advice about the structure of my LabVIEW project.
    The project consists of a laptop with LabVIEW, and a joystick connected, and a CompactRIO connected via ethernet. I had been running the cRIO in FPGA Interface mode, however a change in some things caused the project to have to be shifted to scan mode.
    As of now, the code on the laptop updates shared variables on the cRIO, and reads from shared variables on the cRIO for monitoring. I want the shared variables hosted on the cRIO because it will also need to operate without the laptop connected. Before switching the cRIO to scan mode, I found that I had to first run the laptop code, and then run the cRIO code, or the shared variables would not communicate properly. Now that I have switched to scan mode, I have to run the cRIO code first, and even then the shared vars do not communicate properly for more than a few seconds, and are much laggier.
    My ideal project solution is a system that can run with or
    without the laptop connected, and obviously not having all these shared
    variable issues. I would like to autostart the code on the cRIO, and
    have the user run the laptop code if necessary, but in the past this did
    not seem to work with the shared variables.
    I am really confused about why this is happening. Hopefully I have explained my problem well enough. I don't really want to post the entire project on here, but I can email it to people if they are willing to take a look at it. Thank you for taking the time to read this.
    I am running LabVIEW 2010 SP1 with the Real-time, FPGA, DSC, and Robotics modules. I have the Feb '11 driver set and NI-RIO 3.6.0 installed and all completed updated on my RT cRIO.
    Solved!
    Go to Solution.

    I do this type of stuff all the time...
    Move all your NSV libraries to the cRIO.  From the project you must deploy to the cRIO and from then on they are persistant until you reformat.
    From your windows HMI app, you can place static NSV tags on the block diagram or use the dynamic SV API to R/W.  Also you can bind HMI controls and
    indicators directly to cRIO NSV's (This is what I do)  Also I create a 'mirror' library in the PC HMI that is bound to the cRIO library.  This library has DSC Citadel
    data logging enable and will automatically save historical traces of all my important data - very nice.  PC hosted libraries can be set to autodeploy in the app build. 
    also the project has a autodeploy option for the Development Environment which I normally turn off.  If you have PC to cRIO binding setup then you need to be cautious
    about any sort of autodeployment since it will potentially force the cRIO app to stop when you deploy.  To get around this, you can use PSP binding (IP address rather than project
    process name) and use the DSC deploy library vi's in your HMI app.  Once you are using the scan engine you can use the DSM (Distributed System Manager) app to view, proble and
    chart all of you IOV and NSV's on your network.

  • How to add a new Shared Variable programmatically to an existing and deployed library?

    Hi there!
    I am trying to accomplish this on both LabVIEW 8.6 and LabVIEW 2010 and seems like it's not any different in this situation.
    My case: A project has a library with 4 Shared Variables (SVs). The library and the variables are deployed (visible in Distributed System Manager 8.6/2010). I want to add 2 more variables into this library. It is possible to do this manually from Project Explorer window's options menu. But while running an application it has to be done programmatically. Can I provide the library reference to the one currently existing without creating a new one?
    "Create Or Add Library To Project" function in the Datalogging and Supervisory Control (DSC) toolkit does not help in this case. That function, as the name suggests, just tries to create a new library in the project.
    Two possible methods:
    The function "Add Shared Variable To Library" (DSC>EngineControl>Libraries & Processes) needs a library reference, which could be provided via "CreateOrAddLibraryToProject" function, but this function tries to create a new library, and if I provide the path of the existing library it throws an exception that the library already exists in the project (yes, as I wrote above, I need to add new variables to an existing and deployed library).
    OR
    The function "Create Shared Variable" (DSC>EngineControl>Variables & I/O Servers) will add Shared Variable in a process, and not physically in a library file, and the problem (limitation) with this approach is that it doesn't allow to add complex data type Shared Variables (for example in LabVIEW 8.6 it has only 4 datatype options in input parameter, and even in LV2010 it does not have "Image" datatype that I need).
    The scond method is my preferred method as it allows to work on Online Shared Variables and doesn't create them physically in libraries (and this is good as the variables' scope remains only till the Variable Engine is running). But it doesn't support advanced data types, and the first method is powerful in terms that it supports to virtually any datatype, it just seems tricky to get that reference to the library.
    Any tips?
    Thanks ahead!
    Vaibhav

       <<<<>>>>   
    As the above two images show, while a library does not exist, it is easy to use the "CreateOrAddLibraryToProject.vi" which will add a new library to the project (if it doesn't exist on file system, a new library will be created) and that way, using the reference (the green wire going out from the function and the Case Structure, can be used to add Shared Variables to the library. The problem was what to do when a library already exists in the project, how to add more variables to it. I was looking for a way to get a library reference, and somehow I could not see it inside a Project's property (VI Server functions). Hence I posted the question. And upon continuing my search, I found it on the Application's property list.
    I hope it was useful for someone else as well. And thanks for the replies. Please share a better idea if you have.
    Vaibhav

  • LABVIEW 2012 - shared variable error during programming of NI CRIO 9023 and TPC 2212

    HELLO,
    i am using CRIO 9023 with TPC 2212 and LV 2012. I want to develop a stand alone app which has a front panel on TPC. at first i am building a simple app with two controls variables, one is a sliding bar on TPC Vi and the other one is the while loop  variable "i" on CRIO VI. i used  shared variables.
    first i creat shared variable on CRIO side and access this on TPC Vi. I COMPILE both Vi,s and they are working fine. But when i created the slide bar control in TPC VI, compiled and deploy the TPC Vi, it get deployed in TPC. But when i  start compiling the CRIO VI an error mesage occured as follows;
    I have tried every option to best of my understanding like formating crio then installing all softwares including Network variable engine etc. i also go in properties of the executable file of TPC Vi and go in properties-shared variable- then check the "deploy variable in application" option . below is image displayed.
    I am in despirate need for solving this problem as i have to develop the final app for testing soon. can some one help me regrarding this.
    REGARDS

    I would not recommend using shared variable engine.  It is supposed to make things easier, but in fact, you will spend more time troubleshooting why it is not working than you will actually coding an alternative solution.
    Try the Simple TCP Messaging instead.
    http://zone.ni.com/devzone/cda/epd/p/id/2739
    Machine Vision, Robotics, Embedded Systems, Surveillance
    www.movimed.com - Custom Imaging Solutions

Maybe you are looking for

  • Character checking for arabic

    Hi I have an issue with one function which used to work perfectly when the characterset of the database was al32utf8 , Now we have changed the characterset to ar8mswin1256 , due to use of arabic language in the application. Below is the function CREA

  • Excel file trucation in PDF output file

    Having problem with PDF output file as the imported EXCEL table gets truncated - approx. the left 1/2 upper left corner is the only part of the table that appears in the PDF file.  Master file displays correctly in PM. No apparent memory issue so any

  • Can't make lines on After Effects CC (Pen Tool)

    Im having trouble making lines with the pen tool I made a quick video showing what happens

  • FRM-92101 error when changing the passwd when running Forms 10g application

    Hi Friends, Issue is with: Getting FRM-92101: There was a failure in the Forms Server during startup. This could happen due to invalid configuration. Please look into the web-server log file for details. Steps i followed. 1. Start th OC4J instance of

  • 12c Client: How to Resolve Error [INS-30131] on Win7 x64 Install?

    Hi all, I'm getting an error message I can't figure out on the Oracle 12c client installer. I have 11g client installed on my machine. I took the following steps: Downloaded the 12g client for x64 from Oracle's web site. Extracted the zip file. Right