DSC Saving Shared Variables to Library

I'm guessing this is a bug (LV/DSC 2009 SP1), but I wanted to see if anyone else had experienced this or had a workaround.
I'd like to make changes to the logging state of some shared variables programmatically and be able to save the changes. When I use the SharedVariablestoLib.vi function on a simple test library it works. However when I use it on my actual library I get the following (testing vi I'm using is Untitled 2):
Error Code 1
Invoke Node in PRC_SVsToLib.vi->PRC_DumpSharedVariables.vi->NI_DSC.lvlibharedVariablesToLib.vi->Untitled 2
Possible reason(s):
LabVIEW:  An input parameter is invalid. For example if the input is a path, the path might contain a character not allowed by the OS such as ? or @.
=========================
NI-488:  Command requires GPIB Controller to be Controller-In-Charge.
I think the culprit is that my library has variables organized into virtual folders. Any thoughts?
Thanks,
Kyle
CLD using LV, DSC 8.5-2009, RT 8.5
Ghoti!

I can pretty well cause the problem with virtual folders. I have attached the vi I'm using to change the logging state and save the changes as well as the two libraries I used for testing purposes.
What I did to test:
-Disabled logging on both variables in both libraries.
-Saved, undeployed, and redeployed both libraries.
-Ran my log enabling vi on each library. It ran on Test 2 (no folders) fine. On Test 3 (includes a folder) it threw the same error as above.
-At this point I tested and both libraries were logging both variables.
-Looking at the variable properties in the project, both Test 2 variables showed Enable Logging checked. Neither Test 3 variable did.
-Exited the project. Test 3 had unsaved changes so I saved it.
-Re-opened the project and examined the variables, both Test 2 variables showed Enable Logging as before. In Test3 the root variable showed Enable Logging but the variable in the folder did not.
-Undeployed and redeployed both libraries.
-Confirmed that both Test 2 variables and only the root Test 3 variable were logging.
CLD using LV, DSC 8.5-2009, RT 8.5
Ghoti!
Attachments:
Programmatic Log Change.vi ‏17 KB
Test 2 Library.lvlib ‏5 KB
Test 3 Library.lvlib ‏4 KB

Similar Messages

  • DSC: Importing Shared Variables results in error -1950679010

    This post is more of an "FYI" rather than a question.  I am using LV DSC 8.2.
    ASIDE:  I ran into this problem because I was trying to solve a related problem with Deploy Library.vi (I had dependant libraries that deployed manually, but not programmatically).  Eventually, I found the answer in http://digital.ni.com/public.nsf/allkb/8EF71E1DDDC36C908625716900594B50 (not a very satisfactory answer however, IMHO).
    During my solution search, another hint was provided with http://forums.ni.com/ni/board/message?board.id=170&message.id=177268&requireLogin=False which hints that using a "Network" defined SV, as opposed to a "Project" defined SV, could help.  Then I discovered the difference between NetworkrojectPath and Network:URL in the SV property definition.  Then I realized that NetworkrojectBinding is exposed in the Import fields (using the Multiple Variable Editor to do the importing of course), and this gave me the idea of being able to define a Network SV using the Import function.
    Unfortunately, it does not work.  In the csv file I set NetworkrojectBinding to FALSE, Network:UseBinding to TRUE and provide a valid Network SV path, but this results in error -1950679010: "Shared variable is bound but path or URL is not specified", which occurs when trying to save the LVLIB.  It would be nice to know why this doesn't work, as I think it should.  I think it is a problem with the SV import mechanism.
    David Moerman
    TruView Technology Integration Ltd.

    Yes, you can do this programatically.  I've attached a small chunk of example code (LV 8.5) that creates just 1 variable, as well as an image of it in case you are using an earlier version of LV.  If you want to create multiple variables for the same library just put the "AddSharedVariableToLibrary" in a loop, of course.
    David Moerman
    Attachments:
    Create Library and SV.PNG ‏48 KB
    Create Library of SVs - BASIC.vi ‏24 KB

  • Dsc opc shared variables yields Server Failure

    I've been struggling with the transition from DSC 7.1 to 8+ ever since the release of version 8. I use the Allen Bradley OPC server supplied with the DSC module (Industrial Automation OPC Servers v 5.1) to communicate with a PLC 5/30 via Ethernet, or at least I did when I was using 7.1.
    Prior to today I always failed to get the shared variables that were bound to addresses in the OPC server to deploy, usually getting an error number that started with -19. However today I finally got it to deploy by keeping the I/O server and the shared variables in separate libraries within my project. Now that they deploy I find that I am unable to monitor them. I keep getting a Server Failure. I have browsed the forums here heavily, and the documentation all relates to remote OPC, which is not what I'm doing here (OPC client and server are on the same machine). I tried changing the login account for the Variable Engine service anyway, but that doesn't help, so I put it back.
    I have had some luck simply binding my front panel objects to the OPC server addresses using Datasockets, so it appears that my OPC server is working. However, Datasockets is not a viable option for me because there are times when my project needs to write to a large number of addresses in the PLC sequentially, which never works over datasockets (in my experience).
    We have continued to work in version 7.1 because of the challenges of moving to 8+, but since we can no longer purchase DSC runtime licenses for version 7.1 in order to deploy, it seems that we MUST move forward to 8+ or abandon LabVIEW altogether (which is certainly an option).
    For clarification, I am now working with version 8.2 (but I've been fighting with it since 8.0 without much success). If anybody out there can think of a critical step that I might have missed that might cause this, or if there is a known solution, I could really use (and would greatly appreciate) the help. Thanks!

    Nobody out there seems to have any answers for this, so I kept pounding on it (and pulling my hair out). In the end I finally succeeded in getting one of my old 7.1 DSC projects to run on 8.2. Here's what I did:
    1. I begin with a fresh installation of Windows. I tested it with both 2000 and XP Pro. Vista RC1 will absolutely NOT work!
    2. Install LabVIEW 8.2, DSC 8.2, and just the OPC server that I need from the IA OPC CD (in my case the Allen Bradley server)
    3. Open the IA OPC server editor, and create a new file with an object in it for my PLC (PLC 5/30, Ethernet in my case)
    4. Save, set it as the startup file
    5. Run LabVIEW, create an empty project
    6. Add an IO server
    7. Launch Multi Variable Editor, load project file created in step 6, and bind one variable to PLC address
    8. Save all. Uncheck auto deploy for the library, and deploy all.
    9. Launch variable monitor, browse to new variable, double click to monitor.
    10. This will ALWAYS fail with "server failure". Don't worry, just exit completely out of LabVIEW.
    11. Stop the Variable Engine service.
    12. Run OPC server editor again, and load up the lpd file from your old project. Modify if needed, save, and set as startup
    13. Start the Variable Engine service again.
    14. Launch LabVIEW
    15. Create a new empty project (I created mine in the same directory as my old 7.1 project resided)
    16. Add an IO server, and uncheck auto deploy for its library
    17. Save all
    18. Run Tools->DSC->Migrate->import scf
    19. Convert your old SCF file
    20. Add the new library to your project (it will be named LabVIEW)
    21. Uncheck auto deploy for the "LabVIEW" library you just added
    22. Right click on the "LabVIEW" library and do deploy all
    23. Save, and open the variable monitor
    24. Browse to a tag in the LabVIEW library, and double click
    25. This time it will actually monitor the variable, with a status of "Good"
    26. Now you can add your main front panel VI to your project, open it and run it
    27. Version 8.2 will select the proper legacy tag read/write VI's, whereas 8.0 does not. The writes however do not work. Replace them with shared variable writes. The reads work fine.
    28. The empty project that you created in step 5 is a throw away. It will never work anyway.
    29. So far the only variables that I can get to work at all are the ones that I import from an scf file, which is a pain, but if I must create all my tags in 7.1 and import them into 8.2 I will (for now). I may try exporting to Excel and copying variables that work in order to get functional new variables, since binding them in the editor does not work.
    I hope this helps anybody else out there struggling with moving to 8+ DSC. I saw a few posts with similar issues, but without ANY answers at all. It's a convoluted solution that doesn't make a lot of sense, but for me it is repeatable.

  • Programatically add description into the Shared Variables in library file

    Hello All,
    I have been successful to programatically create the shared variables.
    Now, i want to programatically add the description to these variables, is there any method through which i can progrmatically add the description into these variables?
    Regards,
    Nishant

     Hello Dennis,
    I haven't refuseed to change the icon but whenever i try to change the icon, i am getting nothing in my icon gallery and subsquently failing to change the icon.
    I am really sorry, fi that would have create problems. But, i have always tried to change it.
    Let try it once again.
    Regards,
    Nishant

  • 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

  • Dsc shared variable property are saved to library?

    Hi,
    I would like to be sure to know if the shared variable properties like "alarm level" and "description" are saved to the library directly?
    If not, where? database?
    Also can we not add table to the dsc ms sql express database? (the one for alarms and events)
    Thanks
    Patrick
    Message Edited by paubine on 09-04-2009 08:23 AM

    The properties of the shared variables like alarm and description do get saved to the library. As for your second questions about a table in ms sql, can you tell me more about this? Are you using the LabVIEW DSC VIs to do this, if so provide a screen shot or your code or a good description. Tell me exactly what is going wrong, what behavior you expect and what you are seeing.
    Thanks,
    Anna K.
    National Instruments

  • Error -1950678991 saving LV8.2 library of shared variables

    I used to be able to programmatically save my library of shared variables using "ProcessToLib.vi" (set to Process mode) after changing properties of some or all variables.  Now, and I don't know what has changed, I get this error:
    Error -1950678991 occurred at property node (arg 1) in NI_Variable.lvlib: SetRawCluster.vi -> PRC_SVsToLib.vi -> PRC_DumpProcess.vi -> ProcessToLib.vi.
    The explanation suggests that an Engineering Full Scale is the same as an Engineering Zero Scale value, but I have checked all variables that use scaling (not all do) and I can't find any such fault.  Since these low-level VIs have protected diagrams, I can't trace the source of the error.  I have tried the same thing on other libraries and they work fine. 
    I have attached my library for anyone to verify or duplicate the problem and maybe find out what is causing this error.
    I have recently installed the DSC patch, but this should not be related to the problem.
    Thanks,
    Mike
    UK
    Attachments:
    Krystallon Variables.lvlib ‏142 KB

    Hi Mike,
    I think something has become corrupted in your library. When getting the names of all the shared programatically I get multiple entries for a couple of the X-GPS variables. I deleted all the X-GPS variables and WS-116 and it saves fine. I think you might need to delete and recreate these variables.
    Regards
    Jon B
    Applications Engineer
    NI UK & Ireland

  • Problem with dsc shared shared variables and error 1950679023

    I'm having trouble using shared variables on my laptop PC (with Windows XP) using Labview 8.2 and DSC.   I've set up a simple project with one VI and one shared variable library.  In the VI, I have  a while loop that writes a number from a front panel control to the shared variable.  Another loop running in parallel reads the shared variable and displays to an indicator on the front panel.   The VI resides on my PC (no remote targets). This program executes just fine on my desk top PC; however I get the following error codes out of the shared variable nodes when I run the project and VI on my laptop for the write and read, respectively: ni_tagger_lv_Write 180121604 ni_tagger_lv_Read -1950679023 I've tried to manually deploy the shared variable library without success. The NI knowledge base  and other entries on this forum suggested that the Windows firewall should be disabled for a quick fix, however, the firewall was already disabled on my lap top. I didn't see any entries regarding the 180121604 error code.
    Any suggestions would be appreciated.

    The problem has mysteriously gone away.  For about the 10th time, I manually deployed the share variable library, and it started to work properly.

  • Dsc 8.2.1 cannot write to shared variables error 1950679035

    I am getting error 1950679035 ni_tagger_write when I try to write to my shared variables.  I recently upgraded from labview 8.2 to 8.2.1.  I also upgraded to DSC 8.2.1.  During the install, I had to upgrade my computer to SP2 (windows xp), which installed mdac 2.8 sp1 for use with dsc 8.2.1.
    I have the windows firewall turned off, I checked with our IT dept and no upgrades were completed overnight (as the program worked yesterday using 8.2).  I checked and MAX will get a connection with the fieldpoint unit.  Everything is deployed from my machine, currently running under the dev environment.
    I have looked at this thread, but I was not able to get anywhere, http://digital.ni.com/public.nsf/websearch/0D7B86F4B4D19A5E86256F9A006EECB1?OpenDocument and here.
    Even though I have windows firewall turned off, I added all of the execptions to the windows firewall list.
    It appears that the shared variable library is deploying correctly, as the the windows says that it has (when you run a vi).  I am progmatically deploying the vi.
    I looked at the variable manager and I attached a screenshot below.  I am not sure if that means that it did not deploy correctly or not.?? (I was only watching a couple of the variables, I have about 20 total)
    thanks
    Kenny
    Attachments:
    variable manager.jpg ‏55 KB

    It appears that my problem has been solved.  Apparently our network had an internal error for a quick second and my nic did not like it.  So after I restarted again (fourth of the morning) it started working now.
    Kenny

  • LV7.1 DSC tag engine VS LV8.6 DSC shared variables

    I'm currently running LV7.1 with DSC and RT. To handle communications and logging RT variables I'm using the init / read / write publish.vi's on the RT side and datasockets on the HMI side (Windows XP). This has worked out great - new tags can be programmatically created in real time with the publsih vi's and then I go to the the .scf file and use the tag configuration wizard to add them to my scf file and handle data logging. This worked very well - the wizard would organize all of the memory tags into folders by block name used by the init publish vi. I could also select entire groups of tags and add hundreds at a time to the .scf file. Hardware Tag also worked in a similar fashion, organizing tags by controller and module folders. Now - looking at LV8.6.I found I can still use the init / read / publish vi's on the RT side - great. However there is not tag configuration editor as in LV7.1 to let me add large numbers of tags through a wizard. The closest thing I've found is to create a library to represent each block name from the RT init publish.vi then use "create bound variables" option under the library to bind the new shared variables to the RT memory tags. I can browse to the tags on the controller by network items, but when I add them it doesn't bring the block name of the tag as it did in 7.1, only the item name. I use a lot of PID loops that share the same tag names (i.e.: P,I,D, mode, output), so not including the block name represents an organizational problem. The problem with this is, it's very labor intensive compared to the wizard in LV7.1 DSC, especially talking about creating systems with thousands of RT memory tags. Also, there is a similar problem with hardware channels (I'm using compact FieldPoint). To log channels via DSC do I have to create a shared variable for each channel to access the DSC logging capabilities? Again how do I add all of the hardware channels in some organized fashion? I hope I'm missing some tool that is an analog to the tag configuration wizard to bring in these channels and organize them. Any help or suggestions would be appreciated. Thanks,Brad

    Hi lb,
    We're glad to hear you're upgrading, but because there was a fundamental change in architecture since version 7.1, there will likely be some portions that require a rewrite. 
    The RTE needs to match the version of DSC your using.  Also, the tag architecture used in 7.1 is not compatible with the shared variable approach used in 2012.  Please see the KnowledgeBase article Do I Need to Upgrade My DSC Runtime Version After Upgrading the LabVIEW DSC Module?
    You will also need to convert from tags to shared variables.  The change from tags to shared variables took place in the transition to LabVIEW 8.  The KnowledgeBase Migrating from LabVIEW DSC 7.1 to 8.0 gives the process for changing from tags to shared variables. 
    Hope this gets you headed in the right direction.  Let us know if you have more questions.
    Thanks,
    Dave C.
    Applications Engineer
    National Instruments

  • Using Modbus TCP I/O Server with new DSC Shared Variables in LabVIEW 8.6

    Hello,
    I'm using LabVIEW 8.6 and want to communicate with a Beckhoff BK9000 Ethernet TCP/IP Bus Coupler via Modbus TCP. Instead of using the NI Modbus Library, I've tried the new LabVIEW 8.6 feature "DSC Shared Variables" as described at the bottom of this page: Latest NI LabVIEW DSC Module Features and Demos. Reading of analog input bus terminals works fine. However, I haven't figured out yet how to write on an anolog output bus terminal with these shared variables.
    It's about a 16 bit analog output and I need to write to the registers 0x1121 and 0x0801. It works with the NI Modbus Library (just using function code 6 and choosing the registers), but on the other hand I don't know which shared variables I have to choose for these registers. I've tried several data items (e.g. 400001 upwards as well as 402049 for 0x0801) but none of them worked. I would be glad for a short explanation - thanks in advance for your support!
    Regards
    utechle

    The Beckhoff documentation says, that holding registers start with 0x0800. I've checked this by using the NI Modbus Library. I used the "MB Ethernet Master Query.vi" togehter with the function code 6 for "Write Single Registers", changed the settings of the starting address to hexadecimal view and entered 801 (since it starts with a control byte in 0x0800 and the data out word follows in 0x0801). Furthermore, I had to address register 0x1121 in the same way for resetting the watchdog. As I've mentioned in my first post, this method works fine. However, I haven't found out yet which shared variables i have to use for accessing these registers.
    On the other hand, it's no problem to read data from analog input bus terminals using shared variables. They start with 0x0000 (status byte) and 0x0001 (data in word) and I can read data with the shared variable and data item 300001, respectively.
    Message Edited by utechle on 01-27-2009 11:12 PM

  • Migrating large project from DSC 7.1 to LabView 2009 Shared Variables ... What's the next step after recreating my variables?

    I am in the process of migrating a large distributed (multi-workstation) automation system from the LabVIEW 7.11 DSCEngine on Windows XP to the LabVIEW 2009 Shared Variable Engine on Windows 7.
    I have about 600 tags which represent data or IO states in a series of Opto22 instruments, accessible via their OptoOPCServer. There are another 150 memory tags which are used so the multiple workstations can trade requests and status information to coordinate motion and process sequencing.  Only one workstation may be allowed to run the Opto22 server, because otherwise the Opto22 instruments are overwhelmed by the multiple communications requests; for simplicity, I'll refer to that workstation as the Opto22 gateway.
    The LabVIEW 2009 migration tool was unable to properly migrate the Opto22 tags, but with some help from NI support (thank you, Jared!) and many days of pointing and clicking, I have successfully created a bound shared-variable library connecting to all the necessary data and IO.  I've also created shared variables corresponding to the memory tags. All the variables have been deployed.
    So far, so good. After much fighting with Windows 7 network location settings,  I can open the Distributed System Manager on a second W7/LV2009 machine (I'll refer to it as the "remote" machine henceforth) and see the processes and all those variables on the Opto22 gateway workstation. I've also created a few variables on the remote workstation and confirmed that I can see them from the gateway workstation.
    Now I need to be able to use (both read and write) the variables in VIs running on the remote workstation machine. (And by extension, on more remote workstations as I do the upgrade/migration).
    I have succeeded in reading and writing them by creating a tag reader pointed at the URL for the process on the Opto22 gateway. I can see a way I could replace the old DSC tag reads and writes in my applications using this technique, but is this the right way to do this? Is this actually using the Shared Variable Engine, or is it actually using the DataSocket? I know for a fact that attempting to manipulate ~800 items via Datasocket will bog down the systems.
    I had the impression that I should be able to create shared variables in my project on the remote workstation that link to those on the Opto22 gateway workstation. When, however, I try to browse to find the processes on that workstation, I get an error saying that isn't possible.
    Am I on the right track with the tag reader? If not, is there some basic step I'm missing in trying to access the shared variables I created on the gateway workstation?
    Any advice will be greatly appreciated.
    Kevin
    Kevin Roche
    Advisory Engineer/Scientist
    Spintronics and Magnetoelectronics group
    IBM Research Almaden

    I have found the answer to part of my question -- an relatively easy way to create a "remote" library of shared variables that connect to the master library on my gateway workstation.
    Export the variables from the master library as a csv file and copy that to the remote machine.
    Open the file on the remote machine (in excel or the spreadsheet app of your choice) and (for safety's sake) immediately save it with a name marking it as the remote version.
    Find the network path column (it was "U" in my file).
    replace the path for each variable (which will be either a long file path or a blank, depending on the kind of variable) with \\machine\'process name'\variable name
    where machine is the name or ip address of the master (gateway) workstation (I used the ip address to make sure it uses my dedicated automation ethernet network rather than our building-wide network)
    and process name is the name of the process with the deployed variables visible in the Distributed System Manager on the gateway machine.
    NOTE the single quotes around the process name; they are required.
    The variable name is in the first ("A") column, so in Excel, I could do this for line 2 with the formula =CONCATENATE("\\machine\'process name'\",A2)
    Once the formula worked on line 2, I could copy it into all the other lines.
    Save the CSV file.
    Import the CSV into the remote library to create the variables.
    Note: at this point, if you attempt to deploy the variables, it will fail. The aliases are not quite set properly yet.
    Open the properties for the first imported variable.
    There is probably an error message at the bottom saying the alias is invalid.
    In the alias section, you'll see it is set to "Project Variable" with the network path from step 4.
    Change the setting to "PSP URL" with the same path and the error message should disappear.
    Close the properties box, save the library, and then export the variables to a new CSV file.
    Open the new CSV file in Excel, and scroll sideways to the NetworkrojectBound field.
    You'll notice it is False for the first variable, and true for the rest. Set the field FALSE for all lines in the spreadsheet.
    Scroll sideways... you'll notice there are two new columns between NetworkrojectPath and Network:UseBinding
    The first one is NetworkingleWriter; it should already be FALSE for all lines.
    The second one is Network:URL. That needs to be set equal to the value for each line of NetworkrojectPath.
    You can accomplish this with a formula like in step 4. In Excel it was =U2 for line 2, and then cut and paste into all lines below it.
    There is a third new field, Path, which should already be set to the location of the variable library. You don't need to do anything with it.
    Save the edited CSV file.
    Go back to the remote library, and import variables from the just-edited remote library CSV file.
    Once you have imported them and the Multiple Variable Editor opens, click on done.
    You should now be able to deploy the remote variable library without error. (Make sure to open the Distributed System Manager and start the local variable engine. It took me a few failures before I realized I had to do that before attempting a deployment).
    Voila! You now have a "remote" library of shared variables that references all the shared variables on the master machine, and which should be deployable on other machines with very little difficulty.
    It actually took longer to write out the process here than to perform these steps once I figured it out.
    Kevin Roche
    Advisory Engineer/Scientist
    Spintronics and Magnetoelectronics group
    IBM Research Almaden

  • 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

  • Shared Variable Properties and DSC

    Is there a way to assign engineering units to a shared variable as a
    configuration parameter?  This should be on the "Scaling" page of
    the shared variable properties.  It seems this is a logical and
    convenient place to track units.  Assigning units programmatically
    using the Scaling:Units property is awkward (to say the least).
    On similar lines, why aren't shared variable properties automatically
    saved to the DSC historical database?  Every trace should have a
    set of information that exposes ALL the shared variable properties that
    created it.  Take something like engineering units for
    example:  then you would know what kind of historical trace you
    are looking at!  This seems so basic I can't imagine why it was
    missed.
    Unless I missed something -- please enlighten me.
    Regards,
    David Moerman
    TruView Technology Integration Ltd.

    Hello David,
    You are correct in that the units property is not exposed on the
    Scaling page of hte Shared Variable properties dialog, and it sounds
    like you are already well aware of the existing method to access this
    property through the property node interface.  As you have also
    discovered, the Citadel database that we use with DSC does not have a
    built-in provision for storing metadata about the shared variable from
    which a trace originates.  You can emulate this with, for example, an
    array of strings which is also logged to the database, with each string
    containing the metadata for a particular trace. 
    Since it seems like having these features would benefit you, I
    encourage you to let our DSC development group know your needs by
    filling out product feedback, accessible on our site at
    http://www.ni.com/contact   .  This will send a feature request
    directly to the appropriate R & D group, who reads and evaluates
    every suggestion made.  This is your most direct way to let us know
    what features would best meet your needs.
    Cheers,
    Matt Pollock
    National Instruments

  • Shared variable / DSC problen

    hello out there,
    i've got a big problem with labview dsc. i've created library within
    an project with several network-bind shared vars (connected to a
    symbolic siemens opc server). the problem is that sometimes, when i
    use these variables (just drag and drop from the projectexplorer), the
    values seemes to be currupted (especially 0). siemens' opc scout say's
    there is a value and also NI's shared variable monitor do so.
    open to all criticism.
    r.p.

    Shared variables must be initialized with a known value, and the node must be ran at least once, before predictable behavior can be expected. They don't behave like plain old global variables. The shared variable manager proves this out, as you've seen.
    The easiest way to accomplish this is to have each shared variable you'll use in your application's initialize routine, and  "read it out" and write to it once before ever using it in the main application.
    Message Edited by Broken Arrow on 12-16-2008 09:47 AM
    Message Edited by Broken Arrow on 12-16-2008 09:48 AM
    Richard

Maybe you are looking for

  • How to install kde/gnome desktop in arch linux?

    I tried with installing pacman -S xorg-server and xorg-apps then i have given installation for kde and gnome using  pacman -Sy kde kdm xorg-xinit dbus gnome gnome-extra. But it is asking me to replace some softwares.. At the end after downloading whi

  • Problems with patch 10.2.0.3 installation

    Hi all, I´m trying to apply the patch set 10.2.0.3. I've stoped all services, but during the installation, a file msvcr71.dll may be in use. What file is this? What other service can I stop to continue? thanks!!!

  • SQL Developer / JDK On Windows Server 2008 64 bit R2

    Does anyone have the recipe to fix the annoying message:  "Cannot find a J2SE installed at path:  C:\Program Files\Java\jre6"?  I get the same message, when trying to set up and run SQL Developer on a Windows 2008 server with SQL Developer 32 bit, Ja

  • Java on my iPad 2

    How do I install Java on my iPad 2 ?

  • Keyword tags on JPG from Photoshop Elements

    Hi, I have just started to use Lightroom and used to use Photoshop Elements for organizing my photos. And in Photoshop element I only put a keyword tag on the JPG file on and not on the RAW file. And after that I "hided" the RAW files in Photoshop el