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

Similar Messages

  • Programming batch modify properties of shared variables DSC Module

    DSC module to establish a large number of shared variables, you need to modify the property values ​​programmed variables, rather than setting property values ​​when creating variables.  
    DSC module to build tens of thousands of shared variables, alarm limit properties of these variables need to be set after the software is released by the customers themselves, rather than set when you create the variable.  
    So many variables, how programming in the software interface can be set variable attributes?
    Solved!
    Go to Solution.

    请参考http://digital.ni.com/public.nsf/allkb/5292824E278CF8B948257254002DEE60

  • What happened to my shared variable DSC alarms?

    I would like to programmatically alter the alarm levels of my shared variables using the recommended datasocket write method, but for some reason my alarm levels disappear.  If I open Variable Monitor, sometimes the alarm data isn't there.  I have them configured, and sometimes they are there.  This also means that the Datasocket URL doesn't exist for the alarm levels.  Why is that?
    Attachments:
    Shared Variable Monitor.JPG ‏94 KB
    Shared Variable Properties.JPG ‏46 KB

    Hi Brian,
    I am not sure what resource pointed you to using Datasocket Write to change the alarm levels of a shared variable programmatically, but that is not the recommended method.
    One resource that you I suggest you check out is the example called Library Generation.lvproj, it is in the example finder under Toolkits and Modules->Datalogging and Supervisory Control->Fundamentals. This shows how to add variables to a library and set the alarms.
    For an existing library, please check out this Knowledgebase article, which describes getting a shared variable reference. One you have the reference, you can use the property "Alarming..." to set Hi, Lo, etc. Then, once you're done, redeploy the library programmatically (Deploy Library.VI).
    Best regards,
    -Sam F, DAQ Marketing Manager
    Learn about measuring temperature
    Learn how to take voltage measurements
    Learn how to measure current

  • 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

  • Datasocket read stop but shared variable can update

    Hello ,
    I program with datasocket open/read, sometimes the read stops and after some time,maybe 10s, it go on reading, I compare this with shared variable (DSC) and found
    the shared variable can update ,I don't know what happen to my program.
    ( the reason I'd like to use datasocket is that I need to change the ULR dynamically , I have many OPC tags to read ( 100 PLCs time 80 tags per PLC )  )
    thanks for your help!  
    Solved!
    Go to Solution.
    Attachments:
    shared variable VS datasocket.jpg ‏23 KB
    shared variable VS datasocket.vi ‏17 KB

    Hi~
    The read function waits for items to be updated, and 10ms is the default time for this waiting. Setting wait for updated value to false will probably solve this issue.
    PS: URLs of variables could be changed programmatically, see this document if you like.
    Good day

  • Performanc​e of Modbus using DSC Shared Variables

       I'm fairly new at using Modbus with LabVIEW.  Out of the roughly dozen tools and API's that can be used, for one project I'm working on I decided to try using Shared Variables aliased to Modbus registers in the project, which is a DSC tool.  It seemed like a clever way to go.  I've used Shared Variables in the past, though, and am aware of some of the issues surrounding them, especially when the number of them begins to increase.  I'll only have about 120 variables, so I don't think it will be too bad, but I'm beginning to be a bit concerned...
       The way I started doing this was to create a new shared variable for every data point.  What I've noticed since then is that there is a mechanism for addressing multiple registers at once using an array of values.  (Unfortunately, even if I wanted to use the array method, I probably couldn't.  The Modbus points I am interfacing to are for a custom device, and the programmer didn't bother using consecutive registers...)  But in any case, I was wondering what the performance issues might be surrounding this API.
        I'm guessing that:
    1) All the caveates of shared variables apply.  These really are shared variables, it's only that DSC taught the SV Engine how to go read them.  Is that right?
       And I'm wondering:
    2) Is there any performance improvement for reading an array of consecutive variables rather than reading each variable individually?
    3) Are there any performance issues above what shared variables normally have, when using Modbus specifically?  (E.g. how often can you read a few hundred Modbus points from the same device?)
    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.
    Solved!
    Go to Solution.

    Anna,
        Thanks so much for the reply.  That helps a lot.
        I am still wondering about one thing, though.  According to the documentation, the "A" prefix in a Modbus DSC address means that it will return an array of data, whereas something like the F prefix is for a single precision float.  When I create a channel, I pick the F300001 option, and the address that is returned is a range:  F300001 - F365534.  The range would imply that a series of values will be returned, e.g. an array.  I always just delete the range and enter a single address.  Is that the intention?  Does it return the range just so you know the range of allowed addresses?
       OK, I'm actually wondering two things.  Is there a reason why the DSC addresses start with 1, e.g. F300001, instead of 0, like F300000?  For the old Modbus API from LV7, one of the devices we have that uses that API has a register at 0.  How would that be handled in DSC?
    Thanks,
        Dave
    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.

  • 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

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

  • 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

  • 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

Maybe you are looking for

  • Getting a New MBP and Want to Understand CDs/DVDs

    Hello- this might be the wrong area bt I am sure I will hear if it is. If it is, I apologize in advance. I have never understood all the various kinds of CDs/DVds. One very specific question I have is trying to purchase the correct CD/DVD for making

  • Third Party X-Fi Mode Switching Softw

    I recently ran across an issue which is documented in this thread: http://forums.creative.com/creativelabs/board/message?board.id=soundblaster&message.id=53809 What I found out raised an interesting possibility: it should fairly easy to make software

  • Argh! My itunes has gone crazy!

    Ok, so I tried to listen to a song in itunes today, but when I pressed play it just ran through all the songs in a random order, without stopping to play them.... it's v. weird, i've looked through all the settings and can't see anything that could b

  • Can't download all contents to Windows

    Hi, Set up iCloud on my Win7, and got all the photos alright (~200MB). However no Videos came through, and my iCloud storage claims to be ~5GB (probably bloated up with vids?). How can I see what's in there, or download the vids? 'Manage' only lets m

  • EM can connect to DB to export.

    I am new to Oracle, so. I first can connect to the DB in stand alone mode, no prolem. Then through the OEM I log in ok but when I go to access the DB it asks for the user name and password, I use the sameones as in stand along but get ORA-01031 - ins