Change Alarm / Quality of Shared Variables for I/O Server

How does one set the Bad Status of a Shared Variable in 2009?
IE).  I have a custom device that communicates via TCP/IP.  I wrote my own I/O server that handles this communication and publishes a set of Shared Variables that my Main Application displays on a screen.  These variables are all doubles and hold pressures and temperatures.   If my I/O server in labview loses communication I would like to be able to set the status of the variables to bad so they will set off an alarm.  In our main application we have colour indicators that are able to display this status.  For example the background goes yellow for all indicators that are in "HI" alarm status, red in "HI HI" and orange when "Bad Status" (disconnected). 
We were able to accomplish this using LabVIEW 7.1 DSC, by creating a VI to register all our "Tags" and a VI to run the server.  The server vi's that came with 7.1 allowed us to set the quality when writing to the server item.  Therefore when the device was disconnected or failed we could set the bad status and use the DSC system to log an alarm and use the alarm features to colour code our indicators. 

None of the Shared Variable IO Properties can be configured to allow you to set the alarm.  You can only configure the properties such as turning the possibility of the alarm status on/off and the priority, name etc.  You do not have the ability to indicate that this shared variable is in alarm because your custom server has encountered a problem.   I've talked to tech support about it and I've been informed that this was something that was removed when the shared variable engine was introduced.   I've been told informed that the recommended alternative is to create an additional boolean shared variable that will contain the status of the items, or to write some sort of unique garbage value to the actual tag value to indicate there is a problem with it.
I now have to come up with a new way of providing this information.  I just find it will likely be a poor programming choice because now my entire system will have to handle "tags" differently based on what hardware is being used.  (IE) if its coming from a custom I/O device or from an OPC / Modbus etc capable device. 

Similar Messages

  • View alarm status of shared variable

    Hello:
    I need to know the alarm status (I mean, if the shared variable is currently alarmed) of some shared variables hosted in a Compact Fieldpoint Controller.
    I've seached for options on how to do this (like searching for a property through a property node of the SharedVariableIO class) but haven't found a succesful method to do it.
    Anybody knows how to do that?
    Thanks in advance!
    Robst.
    Robst - CLD
    Using LabVIEW since version 7.0

      Hola Robst, para ver las propiedades de una variable lo que necesitas hacer es habilitar el porperty node para que acepte como entradas las constantes de Variables Compartidas. Para que property node acepte esta referencia como entrada tienes que decirle que en clase es una variable compartida. Para seleccionar la clase da clic derecho sobre el nodo, y ahí aparece en el menu class. Después selecciona Shared Variable. Una vez que tengas la Shared Variable vas a tener todas las propiedades, sin embargo aquí no hay una propiedad que diga si está o no activa la alarma este nodo más bien te permite saber la configuración de la alarma y modificarla.
    Aquí hay tres opciones sencillas para sacar esto. La primera es utiliza solo una variable y conectala al Read Alarms, o Alarm Status a partir de aquí puedes saber si existe o no alarmas.
    Con el de Read Alarms si el arreglo regresa vacio es que no hay alarmas. Con el de alarm Status hay una elemento del Cluster que te indica que si hay alguna alarma.
    Ahora otra opción es utilizar Read Alarms y de ahí extraer cuales son las alarmas.
    Saludos
    Message Edited by BeCeGa on 12-18-2008 05:43 PM
    Benjamin C
    Senior Systems Engineer // CLA // CLED // CTD
    Attachments:
    Alarmas2.PNG ‏21 KB
    Alarms Variables.vi ‏22 KB

  • What is the best way to create shared variable for multiple PXI(Real-Time) to GUI PC?

    What is the best way to create shared variable for multiple Real time (PXI) to GUI PC? I have 16 Nos of PXI system in network and 1 nos of GUI PC. I want to send command to all the PXI system with using single variable from GUI PC(Like Start Data acquisition, Stop data Acquisition) and I also want data from each PXI system to GUI PC display purpose. Can anybody suggest me best performance system configuration. Where to create variable?(Host PC or at  individual PXI system).

    Dear Ravens,
    I want to control real-time application from host(Command from GUI PC to PXI).Host PC should have access to all 16 sets PXI's variable. During communication failure with PXI, Host will stop data display for particular station.
    Ravens Fan wrote:
    Either.  For the best performance, you need to determine what that means.  Is it more important for each PXI machine to have access to the shared variable, or for the host PC to have access to all 16 sets of variables?  If you have slowdown or issue with the network communication, what kinds of problems would it cause for each machine?
    You want to located the shared variable library on whatever machine is more critical.  That is probably each PXI machine, but only you know your application.
    Ravens Fan wrote:
    Either.  For the best performance, you need to determine what that means.  Is it more important for each PXI machine to have access to the shared variable, or for the host PC to have access to all 16 sets of variables?  If you have slowdown or issue with the network communication, what kinds of problems would it cause for each machine?
    You want to located the shared variable library on whatever machine is more critical.  That is probably each PXI machine, but only you know your application.

  • Blink while alarm on using shared variables with remote panel

    I am creating an application where I have front panel indicators data bound to shared variables.  I also set it up to have them blink when the alarm is on.  I am using the DSC module.
    This works great under the development environment.  But when I connect using the remote panel, I can no longer see the blinking indicator if there is an alarm.  I can see the blinking indicator on the machine that is running the program, but no on any of the remote panels (I have no problems connecting to the remote panel and controlling the program).
    I have the remote panel set as embedded, since I want the user to be able to change some settings over the network.
    I am sure I am missing something simple, any ideas??
    thanks
    Kenny

    I have been using IE6 and Firefox, and I have found that the blinking does show up, if you refresh the page.  And then if the alarm stops and the blinking stops, you will not notice it until you refresh again.
    Kenny

  • Shared Variables for Real-TIme Robot Control

    I'm really stuck in my efforts to use LV real-time in my hardware control application. I have a 6-axis industrial robot arm that I must control programmatically from my PC. To do this I've developed a dynamic link library of functions for various robot control commands that I can call using Code Interface Nodes in LV (using 8.5). This has worked great, that is, until I tried to port parts of the application to a real-time controller. As it turns out, because the robot control dll is linked with and relies so heavily upon several Windows libraries, it is not compatible with use on a RT target, as verified by the the "DLL Checker" application I downloaded from the NI site. When the robot is not actually executing movements, I am constantly reading/writing analog and digital I/O from various sensors, etc.....
    This seemed to suggest that I should simply segregate my robot commands from the I/O activities, using my host PC for the former, and my deterministic RT loop on the target machine for the latter. I set up a Robot Controller Server (RCS) vi running on my host PC that is continuously looking for (in a timed loop) a flag (a boolean) to initiate a robot movement command. Because several parameters are used to specify the robot movement, I created a custom control cluster (which includes the boolean variable) that I then used to make a Network Shared Variable that can be updated by either the RT target or the host PC running the RCS. I chose NOT to use buffering, and FIFO is not available with shared variables based on custom controls.
    Here's sequence of events I'd like to accomplish:
    1) on my host PC I deploy the RCS, which continuously pools a boolean variable in the control cluster that would indicate the robot should move. The shared variable cluster is initialized in the RBS and the timed loop begins.
    2) I deploy the RT vi, which should set the boolean flag in the control cluster, then update the shared variable cluster.
    3) an instance of the control cluster node in the RCS should update, thereby initiating a sequence of events in a case structure. (this happens on some occassions, but very few)
    4) robot movement commands are executed, after which the boolean in the control cluster is set back to its original value.
    5) the RT vi (which is polling in a loop) should see this latest change in the boolean as a loop stop condition and continue with the RT vi execution.
    With the robot controller running in a timed loop, it occassionally "sees" and responds to a change of value in members of the shared variable cluster, but most times it does not. Furthermore, when the robot controller vi tries to trigger that the movement has completed by changing a boolean in the control cluster, the RT vi never sees it and does not respond.
    1) Bad or inappropriate use of network shared variables?
    2) a racing issue?
    3) slow network?
    4) should I buffer the control cluster?
    5) a limitation of a custom control?
    6) too many readers/writers?
    7) should I change some control cluster nodes to relative, rather than absolute?
    8) why can't I "compile" my RT vi into an executable?
    Any help would be greatly appreciated. Unfortunately, I'm writing this from home and cannot attach vi files or pictures, but would be happy to do so at work tomorrow. I'm counting on the collective genius in the universe of LV users and veterans to save my bacon.....
    David

    Hi David,
    I'm curious why you decided to build a CIN instead of developing the code in
    LabVIEW.  Is there some functionality that that LabVIEW couldn't
    provide?  Can you provide some more information about the LabVIEW
    Real-Time target you're using?  What type of IO are you using?
    It is impossible to get LabVIEW Real-Time performance on a desktop PC running
    an OS other than LabVIEW Real-Time.  Even running a timed loop in LabVIEW
    for Windows won't guarantee a jitter free application.  Also, no TCP based
    network communication can be deterministic.  This means Network Shared
    Variables are also not deterministic (they use a TCP for data transport) and I
    advise against using them as a means to send time critical control data between
    a Windows host and a LabVIEW Real-Time application.
    In general, I would architect most LabVIEW-based control applications as
    follows:
    - Write all control logic and IO operations in LabVIEW Real-Time.  The
    LabVIEW Real-Time application would accept set points and/or commands from the
    'host' (desktop PC).  The Real-Time controller should be capable of
    running independently or automatically shutting down safely if communication to
    the PC is lost.
    - Write a front-end user interface in LabVIEW that runs on the desktop
    PC.  Use Shared Variables with the RT-FIFO option enabled to send new set
    points and/or commands to the LabVIEW Real-Time target.
    Shared variable buffering and RT-FIFOs can be a little confusing.  Granted
    not all control applications are the same, but I generally recommend against
    using buffering in control applications and in LabVIEW Real-Time applications
    recommend using the RT-FIFO option.  Here's why:  Imagine you have a
    Real-Time application with two timed loops.  Time-loop 'A' calculates the
    time critical control parameters that get written to hardware output in
    timed-loop 'B'.  Loop 'A' writes the outputs to a RT-FIFO enabled variable
    with a RT-FIFO length of 50.  Loop 'B' reads the outputs from the shared
    variable, but for some reason, if loop 'B' gets behind then the shared variable
    RT-FIFO will now contain several extra elements.  Unless loop 'b' runs
    extra fast to empty the RT-FIFO, loop 'B' will now start outputting values that
    it should have output on previous cycles.  The actual desired behavior is
    that loop 'B' should output the most recent control settings, which means you
    should turn off buffering and set the RT-FIFO length to 1.
    There is also a clear distinction between buffering and the RT-FIFO
    option.  The RT-FIFO option is used to add a non-blocking layer between
    network communication and time-critical code in LabVIEW Real-Time
    applications.  It also provides a safe mechanism to share data between two
    loops running in a Real-Time application without introducing unnecessary
    jitter.  Network buffering is a feature that allows a client to receive
    data change updates from the server even if the client is reading the variable
    slower than the server is writing to it.  In the example I presented above
    you don't need to enable networking because the shared variable is used
    entirely within the Real-Time application.  However, it would be
    appropriate to send control set points from a Windows PC to the Real-Time
    application using network published shared variables with the RT-FIFO option
    enabled.  If it is critical that the Real-Time application executed all
    commands in the sequence they were sent then you could enable an appropriate
    buffer.  If the control application only needs the latest set point
    setting from the Windows host then you can safely disable network buffering
    (but you should still enable the RT-FIFO option with a length of 1 element.)
    Network buffering is especially good if the writer is 'bursty' and the reading
    rate is relatively constant. In the robot application I can imagine buffering
    would be useful if you wanted to send a sequence of timed movements to the
    Real-Time controller using a cluster of timestamp and set point.  In this
    case, you may write the sequence values to the variable very quickly, but the
    Real-Time controller would read the set points out as it proceeded through the movements.
    The following document presents a good overview of shared variable
    options:  http://zone.ni.com/devzone/cda/tut/p/id/4679
    -Nick
    LabVIEW R&D
    ~~

  • Using TCP or shared variable for data transfer

    I am trying to send a large amount of numbers from a real-time module to a host computer.  These numbers have been arranged into a large array, such as an array with 10s of thousands of points.  The time critical portion of getting the information has already been done, so the data transfer back to the host VI is not time critical.  I know I will need to break the large array down into smaller arrays and then reform the large array after all the information has been sent.  I know how to use both TCP and shared variables with FIFO.  What I am unsure of is which one is better to use for this application.  I do not know what the maximum size arrays I can send through either.
    Also, from what I have gathered from using LabView is that the sender has to be listening for a connection before the client opens a connection, or else it will throw an error.  When I tried breaking it down into 50 points, if i did not wait long enough in the host VI or if I did not put a long enough wait function in the RT loop, and error would throw, so it would take a long time to transfer the data when it worked properly.
    Any help or suggestions is appreciated, thanks.

    Regarding the array size question, there is no real limit (other then the amount of memory in your system) to the size of data that you can transfer in a single block using either TCP or the Shared Variable. In your case you can easily transfer an array with 10's of thousands of data points in a single write operation. Both TCP and the Shared Variable will automatically handle breaking up the data for the maximum packet size on Ethernet and then reconstitute the array on the receiving end. In LabVIEW you will simply get back the array as a whole without needing to worrying about how the data is broken into smaller packets on the Ethernet.
    I tested the attached example which transfers 400kB per block (50000 Doubles) without any problems. You do need to have the Server (in this case RT) running first before the client (Windows) can connect.
    Message Edited by Christian L on 02-09-2007 11:34 AM
    Christian Loew, CLA
    Principal Systems Engineer, National Instruments
    Please tip your answer providers with kudos.
    Any attached Code is provided As Is. It has not been tested or validated as a product, for use in a deployed application or system,
    or for use in hazardous environments. You assume all risks for use of the Code and use of the Code is subject
    to the Sample Code License Terms which can be found at: http://ni.com/samplecodelicense
    Attachments:
    TCP.JPG ‏44 KB

  • Use of Shared Variables for data transfer from a RT traget to a desktop application

    Hi,
    I want to adopt the shared variables to share data in an existing distributed application comparable with the T3 Benchmark configuration in this document:
    [1] http://zone.ni.com/devzone/conceptd.nsf/webmain/5B4C3CC1B2AD10BA862570F2007569EF
    The current implementation uses a well tuned solution with RT FIFOs and TCP/IP communication with a desktop-PC which monitors and stores the data.
    The desktop application runs with a much slower execution rate than the TCL. So the TCP/IP packets are used to buffer the data with a package size dependent on the data send rate.
    To use the shared variables instead of this RT FIFO + TCP/IP implementation I need to read the shared vairable buffer at once each time the desktop application reads the shared variable.
    But according to this quotation from [1]:
    "With buffering, you can account for temporary fluctuations between read/write rates of a variable. Readers that occasionally read a variable slower than the writer can miss some updates."
    this seems to be impossible. Am I right?
    Are there any suggestions to circumvent this problem? Or are shared variables not made to share data between unsynchronized processes without data loss?
    Regards Till

    You can use the error-cluster to detect the end of your queue. The erroroutput of the shared variable will return a -2220 Warning, if it reads a value it has read already before. I attached a modified example and saved it for 8.2 I hope you can open it.
    Attachments:
    readbuffered82.zip ‏51 KB

  • Can we change the quality of the output for Blu-Ray?  & 6 Channels Audio output?

    I'd like to know how to change the quality of the output of a BD.  'cause i am using an untouched m2ts from a BD which has two audio tracks(encore recognise only one).  The bitrate is 30Mbit + but the output is like 3 Mbit.  What am i doing wrong?
    And how to output a 6channels audio?
    Thanks for any help!

    I am confused on your workflow here. It seems that you are Importing material that is already in fully BD-compliant form, but then are Transcoding again?
    Can you step us through the exact Assets that you are working with, and the steps that you are taking with those Assets?
    Also, if you have a muxed MPEG source file, I would rip it to the elemental/elementary streams, as Encore has some issues with muxed MPEG source files. Also, you will want to rip the two Audio streams, and Import those separately. These Assets should show Do Not Transcode, if they are 100% BD-compliant. If they do not, you should be able to force Encore to NOT Transcode them, so the quality should match that of the Imported files exactly, and no more work should need to be done. Remember, that is if they ARE 100% BD-compliant - very important.
    If you already have your dual-Audio streams, you will not need the SurCode DD 5.1 SS encoder plug-in, in this case, as that encoding has already been done, or at least I think that it has been done.
    Good luck, and we'll be looking for details on your workflow,
    Hunt

  • E4200 v1- problem creating a shared folder for the FTP server.

    Hi, 
    I'm trying to share an external USB harddrive (4TB- HFS+) that is attached to my e4200 router.  I'm trying to set up the FTP server, but when I try to create a shared folder, I get kicked out of the browser based interface for the router just as I'm trying to save the new shared drive.  I have tried many different things to get it to work: different computers (PC and Mac) different browsers, reflashing the firmware (which is version 1.0.06, build 3), I tried all of this with an NTFS formatted drive as well-  everytime I try to set up the shared folder- right as I hit the save button it kicks me out saying: Session Failure.
    I can see my drive on the local network, and I know the FTP server is working, because I can log into it from the outside- but I don't see anything shared, when I do.
    I have successfully gotten the media server to work using the same drive- but I can't create shared folder there either...  It seems to have shared the entire disk automatically when I first connected the drive to the router.
    Anybody have anything else for me to try?  
    Help!

    Same problem. Has anyone found a solution? I contacted tech support and got nonsense responses. I was of course asked to Factory Reset even though I told them I had done it before I called - classic brush off. Basicly here is the problem. 
    1. I cannot create a share on a USB connected HDD - this worked on the older Firmware. Now every time I try to set up the shared folder- right as I hit the save button it kicks me out saying: Session Failure. I am not the only person with the problem. Crazy thing is I had a share created and it worked after the upgrade. I wanted to add an additional share and now it wont share anything. HDD plugged into my PC works great. I was asked to try a different PC - even though I told them I tried from IE, Chrome, Firefox on a Windows 7, Vista, windows XP, IPad, Kindle and Samsung phone.
    2. While troubleshooting with the agent I discovered that although I have remote access disabled in the Administration>Management page but I can still access the router remotely. This is a huge security issue.
    3. Linksys is no longer a Cisco Company - if the code is this bad Belkin should take the Cisco logo out of the GUI. Don’t blame Cisco for your poor SW.
    I am ready to buy a new router and avoid Linksys and Belkin all together in light of these issues.
    Additionally, I would simply downgrade but the older Firmware is not available. When I asked for it I was told I could not get it. 

  • Shared variable architecture for distributed crio system

    I have a distributed system consisting of 20 cRIOs and one central server running Windows XP. Each cRIO is a mix and match of AI, AO, DO, DI and TC modules. There are around 200 AI and TC channels and close to 100 AO, DO and DI channels. I need to acquire data from all the AI & TC channels at 10 Samples/sec and log them in the Server. In some cRIOs I have 2 to 3 PID loops, in addition to the data acquisition or generation code. Since a cRIO chassis can have only eight modules, certain PID loops will have to use data of channels that are available in other cRIOs. cRIOs can be turned ON and will be running even without the control server, but facility and test will be started only through the control server.
    We have decide to use LabVIEW DSC for this application and shared variable for data transfer, logging and alarm. We are using the following SV architecture.
    1. Each cRIO will have its own RT shared variables for AI, AO, DI, DO and TC parameters
    2. Each AI and AO parameter shared variable in RT will have its corresponding host shared variable which will be bound to the RT Shared variable. In host shared variable we are enabling logging and alarm option for variables corresponding AI parameters.
    3. In cRIO RT, data is read from the FPGA (using FIFO every 500ms, and we get 5 Samples for each channel) in binary format and scaling is done. After scaling we are updating the corresponding AI RT shared variables using DataSocket write in a loop. In any cRIO there will be only a maximum of 32 AI or TC parameters.
    4.  The server has a mimic panel where we need to display the status of DIs and allow the user to turn ON and OFF DOs. For the we decided to use Front panel DataSocket binding. 
    I would like to know whether there is any better shared variable architecture that we can follow. Considering the number of variable that we are using, will the current architecture cause any performance issues?
    Thanks!
    "A VI inside a Class is worth hundreds in the bush"
    യവന്‍ പുലിയാണു കേട്ടാ!!!

    Hi Mike,
    Looks like you are lucky as you can make use of the great feature available in 8.6. Over here I have 8.5.1 so got to do some of the things the 'hard' way But I must say, 8.5.1 is the so far the best version of LabVIEW I have worked after 7.1 as the crashes are less and less frequent. 
    BTW I faced some problems directly dragging and dropping an RT SV node  to Windows. If the RT code is running and if you try to run the Windows code, it was asking to stop the code running in RT. That's one reason I had to duplicate some RT Shared variable in host and bind them to corresponding RT Shared variables.
    This is the first time I am handling this many number of shared variables. In case I come across some issues, I will post them here.
    "A VI inside a Class is worth hundreds in the bush"
    യവന്‍ പുലിയാണു കേട്ടാ!!!

  • Are clusters or individual elements better for shared variables?

    So...  I have some RT code that is being updated, and pulled out of the Stone Ages of LabVIEW.  It was originally written for an old FieldPoint controller operating in "headless" mode, and used the "publish" and datasocket methods for communications and external control.  I had to get clever way back then, and put together a parsing/unparsing system for strings to send sets of data back and forth between the controller and any HMI or other computer attached.
    Now, I'm completely rewriting the code for a cRIO system, and doing my best to leverage all of the strengths of the latest LabVIEW versions.  I have already done an intermediate stage, where I converted from the publish/datasocket method to using network shared variables for my strings, so I could keep some of the original control and calculation logic.  Now, however, I'm going back to the drawing board for most of the program, with only some of the proven logic being held over into the new version.  And, as I'm putting together the data structures I need for both internal control and external communication, I'm in a bit of a quandary...
    I have come upon a data structure dilemma:  should I use individual shared variables for my data, or assemble associated data into clusters?  My original program had a string (essentially a flattened cluster) for each sensor in use (up to 4), one for the system parameters and states, and one for the control parameters and states.  There was a certain advantage to keeping the data compartmentalized like that, it kept things organized and forced me to avoid too many random references of each data point.  And it kept the number of communications channels limited to just a handful.  Mimicking this structure with cluster shared variables would be easy.  But, I'm not sure it's the best or most network-efficient method.
    I know the bundling/unbundling will add some processor time in my code, that is not new to me (it will still be much faster than my old parsing routines).  But, if I have individual data points being thrown around, I can access them easily from things like Data Dashboard (which is great, but far too limited to be able to grab items in clusters and such).  Having all of my data points individually available would make my project messier, but open up easier access.  It would also dramatically increase the number of data points being thrown around on the network at any one moment.  For reference, I would probably have a maximum of 100 data points at one time, made up of a combination of integers, floats, booleans, integer arrays, boolean arrays.  Or I would have a maximum of 8 clusters that would contain those data points.
    Any suggestions on which way I should lean?  Are there any advantages/disadvantages between shared clusters like the ones I need vs. the number of individual shared variables I would need using the alternative methods?  Network traffic and efficiency are always a concern, particularly since this is a "headless" cRIO in a control situation that must maintain a fast scan rate...
    Thanks for any help.  I'm so stuck on this fence, and I can't figure out which side to fall off!
    Solved!
    Go to Solution.

    Thanks Tim, that is a great source that I somehow missed in my hunt for information regarding my dilemna...
    I have to wonder though, does that 25 number also include the I/O points on your cRIO?  Anyone know that particular?  Most of the I/O points are network shared by default during initial configuration, and you could very quickly exceed 25 variables on an 8 slot rack (such as the one I use, a 9074).  Now I'm a bit worried that I'm overusing the variable engine, even before the communications clusters get figured in...

  • Support for Shared Variables in Third Party XP embedded based TPC's?

    I have deployed an application in an XP embedded based Touch Panel (Third party). The application is working fine, but the shared variables hosted on an RT (sbRIO Board) are not getting updated in the application on TPC
    1. The TPC is part of the project as Windows XP Embedded Touch Panel
    2. NI TPC Service has been installed on the TPC and the application can be deployed remotely from the development PC through ethernet. (Hence network connections and communications are OK)
    3. By using Distributed Systems Manager in the development computer, I can see that the shared variables are getting updated on the network
    I believe that the problem can be solved if the following programs are installed on the TPC
    A. Support for shared variables for XPembedded
    B. Shared Variable engine
    I have tried installing support for shared variables from Program Files > National Instruments > Labview 8.6 > PDA > Utilities > Variables > x86 - but am getting an installation error "Unable to find application manager for Pocket PC applications".
    Shared variable engine has been installed from ve220 folder. The program is getting installed. But the Variable Engine is not started Control Panel > Administrative tools > Services in Xpe, the service is stopped and cannot be started. When I try to start the service, I am getting the following error on TPC
    "Could not start the National Instruments Variable Engine Service on the local computer.
    Error 1053. The service did not respond to the start or control request in a timely fashion."
    Please suggest solutions for the above or alternate locations for the following:
    1. Support for shared variables for XP embedded TPC's
    2. Shared Variable engine installer program.
    Thanks
    Krish
    Solved!
    Go to Solution.

    Problem solved!
    Update for interested folks working on XP Embedded TPC's
    Just to make sure that Shared Variables were indeed accessible to the TPC, I wanted to install Distributed Systems Manager 8.6 on the TPC. However since the TPC was having only 1 GB of DOM (Disk on Memory) and with all the software I had tried, there were only a few Megabytes left on the system. I had to add another DOM of 2 GB.
    All the products of the Installation went fine, with the exception of NI Logos (Version 5.0). NI Logos installation failed repeatedly.  I tried installing NI Logos separately, with the same results. Then I had this gut feeling that NI Logos had something to do with the issue.
    I then downloaded the new version of NI DSM 2009 SP1. Although this was supposed to get installed on any fresh system without Labview, the installation would not proceed beyond the setup stage. I tried installing NI Logos from the products folder on the new download separately and it worked like magic!
    Once the new Logos (Ver 5.5) got installed, the Shared Variable Engine started automatically and the Shared Variables were finally unleashed - free to rise and shine! Thank God Almighty!!
    On the lighter side, come to think of it - for running an application of around 400KB, we need XP embedded, NI Run Time, Logos, DSM ..........  (all around 900MB). Can we make it any simpler?!!  Inviting your comments .......
    Thanks
    Krish

  • Shared Variable Engine Error Handling

    I have a HMI system that connects through shared variables to an OPC Server. I have encountered problems with Variable Engine, and a problem with tagger which I don't know anything about. I checked OPC Server to see  ifit's installed properly and the items status is good, and the server's connected. I tried to restart the shared variable engine service but it doesn't reply. When I monitor variables there's no connection. I used Alarm&Event query.vi in my application and then encountering tagger error, server connection failed. How could I handle these errors? 
    I appreciate any help.

    I've created Bindings to OPC items I want to read/write through an OPC Client instance, bound front panel objects to these shared variables, deployed the entire library and run the VI.
    All the connections were true (green PSP-LED. through the Monitor Variables all the variables and OPC items of client instance had good quality and right value.
    All the variables were configured to log data and alarms.
    Configuring the library for a data base through it's DSCsettings:database, I used Historical VIs (Read trace,… ) to retrieve data from citadel and they worked properly. I used Alarm & Event Query.vi to retrieve alarms from citadel, the VI encountered this Error:
            "Some part of tagger encountered a problem and should be closed"
    After that the entire connections failed (PSP-LEDs goes red) and the I/O Engine couldn't be restarted and shows this Error:
                 "Could not stop the National Instruments Variable Engine Service on local computer.
                  Error 1053: the service did not respond to the start or control request in a timely fashion."
    And the variable monitor dosen't show any library and variables.

  • Enable shared variable buffer

    Dear all,
    I'm writing on a program to create shared variables programmatically. I use the examples available in labview and DSC 8.0 as reference. I'm able to create and set the different properties such as scaling, alarms, inital value etc for the shared variable(s). However, when i wire a boolean "true" to " enable buffering", it doesnt seems to work. I checked the shared variable created in the shared variable engine, the variable is created but the buffering cant be enabled programmatically. Can anyone guide me what's the fault? thanks.

    Hi,
    The VI worked without any problem though I had to change the shared variable name. One thing to note about changing the properties of shared variables programmatically using the shared variable I/O is that it only affects the deployed shared variables and not the actual library file. In essence, these changes are not saved in the library. So the shared variable properties window will not reflect the current status of the "Network.UseBuffering" option. To verify that the "use buffering" is enabled, place another "Network.UseBuffering" property node on the block diagram and read the current state from it.
    Attached is a modified version of the VI with the current status of the "Network.UseBuffering" property for the deployed shared variable.
    Tunde
    Message Edited by Tunde A on 03-05-2007 12:34 PM
    Attachments:
    Modified_buffering_error.vi ‏10 KB

  • Using Shared Variables and Initialize Front Panel Binding (to PSP)

    Hi,
    I use LV DSC RT 8.2.1
    I have a Vacuum System That includes signals from - Pumps failure, Valves status, Vacuum gauge, start Pump ...
    Each signal is read by a FieldPoint. 
    All the relevant FieldPoint Channels are read by the Server (a computer in the Ethernet Network) and published to the network in the form of Shared Variables.
    I have a client VI that is reading the Shared Variables published by the Server using Front Panel Binding.
    Problem : 
    Some of the Bindings are in the mode 'Write &Read' and that causes some initialization problems.
    For example - Valve #1 is Open, and then a User start running the Client VI, (the Valve #1 Status mode is 'Write & Read")
                           if in the VI the status of Valve #1 is closed (before running it) then the Valve status is changing to Closed.
    I want the Client VI to first read the Physical status of the instrument and then to change the Value if the User changes it.
    But that's seems to be a problem when using Front Panel Binding... (is it?)
    I know I can Deploy a lvlib in the Client Side and Item Bind to the Shared Variables or Use DataSocket.
    (Is DataSocket is a Reliable method when connecting to Shared Variables? What are the disadvantages when using DataSocket?) 
    What is recommended by those of you that are experienced or by NI ?
    Sincerely Yours,
    Amitai Abramson.

    Amitai Abramson,
    Hello and thanks for using the NI Forums.
    I'm glad that you've read the Using the LabVIEW Shared Variable Tutorial on our website. Check out these other resources:
    Network Variable Technical Overview
    Troubleshooting Network-Published Shared Variables
    Why Do I See Unexpected Value Change Events for Shared Variables Using LabVIEW DSC?
    All You Need to Know About Shared Variables
    Creating a Value Change Event for Shared Variables
    Alternative Method for Using Shared Variables Between Systems in LabVIEW 8.x
    What Is The Difference Between Using Shared Variables And DataSocket VIs To Access OPC Tags?
    The issue that you are seeing by having "Write & Read" bound items on both the server and client side is essentially a race condition, you don't know which one is being read/written at what time. To resolve this issue I would take a look at some of the documents below.
    Using a Local, Global, or Shared Variable in Parallel Loops Can Cause Race Conditions
    Using Local and Global Variables Carefully
    Tutorial: Local Variable, Global Variable, and Race Conditions
    Locking a Shared Resource or Variable in LabVIEW Using Semaphores
    You mentioned not wanting to have two sets of shared variables (one on each side), but this is a great method to resovle this issue, that, or you can develope some sort of hand shaking to prevent these race conditions.
    I would suggest that in the future when using these forums you try to ask only one question per thread and make it more concise. It's hard to tackle multiple questions and such broad questions as "I want to know all the ways that I can connect to Shared Variables, and I want to know the advantages and disadvantages." I suggest this because we want you to get your questions answered and more concise questions will result in quicker and better answers. 
    Message Edited by Ben S on 10-01-2009 06:05 PM
    Ben Sisney
    FlexRIO V&V Engineer
    National Instruments

Maybe you are looking for

  • SSL VPN and dedicated IP address

    Hello I have an ASA 5505 8.3 and i setup it with ADSL 6.3 I am trying to dedicate IP addresses to clientless SSL VPN user: is it possible ? If not is it possible with Anyconnect client ? If yes i can't perform it ! I have a user test and i want dedic

  • To Extend material to plant using MATERIAL_MAINTAIN_DARK .

    I am tryin to extend material into plants using MATERIAL_MAINTAIN_DARK  function module.Can someone please check the code below and tell me how i should modify it to work.Is BDC a better option? DATA: t_amara_ueb LIKE mara_ueb OCCURS 0 WITH HEADER LI

  • Why does my sound not work?

    i had this macbook pro for a couple months, but the sound stops working and i can't get it to turn back on.... i have my volume as loud as it can go but it still doesn't work. i tried to find a way to fix it with he sound tab in system preference but

  • SQL Developer 4.0.0.13.80-no-jre.zip

    So I want to run SQL Developer on a Solaris 10 x86 platform and i've got JDK 1.7.0_51 installed. I downloaded the platform agnostic bundle with no JRE, and extracted the zip file. It appears that none of the shell scripts have the correct permissions

  • A challenging dynamic SQL query problem

    hi All, I have a very interesting problem at work: We have this particular table defined as follows : CREATE TABLE sales_data ( sales_id NUMBER, sales_m01 NUMBER, sales_m02 NUMBER, sales_m03 NUMBER, sales_m04 NUMBER, sales_m05 NUMBER, sales_m06 NUMBE