Shared on a real-time target Variables defined causes the command to remotely fail

Here's a strange. We create a solution of customer using a CompactRIO, and they want remote panels can view and interact with the executable file. That's fine, we are able to create this, but we noticed a thing is:

If we build and deploy our code in real-time for CompactRIO with all shared Variables associated with a type definition, the executable will not run. Indeed, it is reported by the browser as a broken VI remote Panel utility.

Breaking the shared link Variable with the type-def and rebuild the executable file, solves the problem. Weird.

Anyone else seen this before?

Hello Thoric,

I think I spotted a CAR already assigned to it:

http://www.NI.com/white-paper/13235/en

#292012

Looking at our notes this should be fixed in the next version.

Tags: NI Software

Similar Questions

  • Deployment of local variables shared on a real-time target

    Hello everyone, once again

    I read more posts and knowledge base articles about this topic than I can count at this point, and I'm scared, I'm still not clear on exactly how it works, and I hope that someone can delete it for me, if it is to earn themselves some laurels more.

    I have a project with a real-time quote and the other Windows.  They shared communication via network-published variables.  The real-time part also uses shared single process variables to communicate between the loops.  I have the intention of all 3 libraries of shared variables (Windows-> RT, RT-> Windows and RT Local) to be hosted on RT target for reliability.  Real-time executable must start at startup and run even if side Windows is not started (on the side of Windows is optional).

    I realized that real-time executable will not start the variable engine shared and/or deploy itself shared variables.  I also read that I can't deploy the shared variables programmatically from the side of RT.  This leaves only two options that I know of:

    (1) their deployment programmatically in Windows-side program.

    (2) deploying the shared variables on the target RT manually via the project in the LabVIEW development environment, and

    About option 1, as I said running Windows is supposed to be optional, so you have to run a program on the Windows side before the side RT will work is highly undesirable.  Moreover, even if I do a little "Deploy shared variable" application that runs at Windows startup, I can't guarantee that it will work before start of the side RT executable will run.  In this case, the executable file RT will fail due to not having the variable engine shared running?  If so, and side Windows, and then starts the engine / deploys the shared variables, the side RT begins to work automatically?  If not, is it possible to trigger this restart of the Windows startup application side?

    Also, I just read everything and tried the option to build to deploy variables shared in the application of the side Windows.  Not only that my RT shared Local Library variables not listed as an option (given that the application of the side Windows does refer to it in all for obvious reasons), but when it deployed two other libraries at startup, the program side of RT (which was running in the development environment) stopped.  I'm not positive that would happen even if he was running like a real executable file, but it is certainly enough to make me nervous.  I assumed that the library is not listed may be resolved by including a variable network-a published in the local library of RT and including the app side Windows.

    About option 2, I don't understand how I'm supposed to deploy my libraries shared variables without stopping the execution of the startup on the target real-time application.  Once I did, the only way to restart the application of the RT is to restart the computer RT, correct?  In this case, I just undid all the interest to deploy the shared variable libraries?  Unless libraries remain deployed and variable motor shared running even after restarting the computer of RT, which would solve the problem I guess.  Certainly, I would like to know if this is the case.

    However, option 2 is complicated by the fact that when I manually right-click on any of my shared variables libraries and select "Deploy" or 'Deploy all', libraries still do not appear in the Manager of the distributed systems, even after clicking Refresh several times, on the local system or the target system.  The only thing that shows up, on both sides, is the Group of 'System', with FieldPoint, etc. in it.  The same is true when I run my application in real-time in the development environment, even if the shared variables are clearly working, as I mentioned earlier.

    So, if you have done so far through this mammoth post, thanks!  I have three main questions:

    (1) are that all my descriptions above correct in what concerns the variables how work sharing?

    (2) what is the best way to meet the requirements I have described above for my project?

    (3) why shared variables libraries not appearing in my manager of distributed systems?

    Thanks for any help you can give on any of these three questions!

    -Joe

    1. Yes, as soon as you deploy the project the NSV is tranactional.  EVS is loaded by MAX when you configure the RT target and begin to operate as part of the boot sequence.

    2. you can see anything on your target rt in the DSM?

    3. Yes, NSV and EVS are persistent resets.

  • Real-time target - change IP and shared network varables

    Hello

    I create an application for the system in time real (Compact RIO).

    All data between the (current running on a windows PC-based) GUI and the real time system - is transferred via shared network variables.

    Shared variables are hosted on the target.

    I attributed the static IP address to the real-time target.

    Now for the question:

    After the deployment of the application in real time on the Rio target compact

    If I change the IP address of the target: how the shared variables 'know' to connect to the target?

    There is no place in the GUI (running on windows PC based) I set the IP address of the target.

    So I change the IP Address of the target (and for the sake of argument if I change the IP address of the PC, but they are always on the same subnet) - how to 'know' how to connect?

    Looks like a basic question I am absolutely certain I'm missing something to understand shared variable...

    Thnaks

    Hello Hazkel,

    The IP address of your shared time variable real target is located in the *.aliases file when you create an executable file, you will need to change there.  See the example below:

  • RT - set the time of real-time target in MAX

    Hello

    I want to manually change the time on my target in time real (cRIO-9022) with MAX

    I followed the steps described here.

    http://digital.NI.com/public.nsf/allkb/FAB0EC4D6E5EE0F386257738005733A3?OpenDocument&MeTC=max_MAXDat...

    In step 2, when you install the remote system OR 14.5.0 Configuration Support

    I get the following error message when you try to install:

    "Labview real-time 12.0.1 requires the service locator 1.0".

    On the host computer, I had SP1 2013 Labview with the module time real 13.0.1

    On the cRIO, I'm under Labview RealTime 12.0.1

    I installed SP1 2012 Labview real-time Module on the host computer and tried 12.0.0.

    Then, I received this message:

    "Remote Server for Labview RT 13.5.0 requires Appweb 13.5.0

    Engine for Services execution Web 13.5.0 requires NEITHER System Web Server 13.5.0

    LabVIEW Real-time 12.0.1 requires the service locator 1.0 ".

    I searched the forum with no luck

    Any help I appreciated.

    BR

    Arne M

    Hello

    I solved the problem.

    Just had to select the correct versions of all additional software necessary

    Support remote Configuration OR system 5.6.0 etc..

  • Sharing Variables defined by the user through projects

    Hello

    I wonder if it is possible to share Variables defined by the user between projects. What I have in mind, is that I would like to have my user defined Variables configured in a central location and then insert them into my projects as variables bound so that they update automatically when I change their values. For example, I define a variable named ProductVersion , that has the value 9. Then I insert this variable in all my projects as a bound variable. After 2 months the product version changes was 10, so I change the value of the variable at 10 to the place where it is stored and it is automatically updated in all projects. Is it possible somehow? I'm new to RoboHelp and I find no answer. I tried the solution for a while using the product on the Internet without success. I even contacted Adobe Support and they redirect me to this forum I used help and manual before and how they deal with user variables was quite simple.

    Hello

    Unfortunately RoboHelp does not offer a way to let this, at least, is not directly.

    However, I think I found a way to get there, the variables are stored in a file named rhvariable.apj. So what you could do is to add this file as a file of luggage to each of your projects that will share variables.

    Now, you would create a shared location, but also a new category in your resource manager. This will create a common location to store the file apj.

    Add the file of baggage to the location. Repeat for all the projects that share variables.

    Now, when the variable is changed in any of the project participants, it should be to update the shared location and you can achieve the goal.

    Note, however, that although you'll get what you want, it will be always open each of the participating projects, synchronize the APJ file and generate the output in order to to refresh all. No way, I am aware of escape that.

    Cheers, Rick

  • FIFO in real-time instead of 'length of the graphic history.

    I was wondering how I can implement the following method with FIFO in real-time instead of 'length of the graphic history.

    Well Yes. It uses two FIFO read nodes. The first one reads the elements 0 and the output for the remaining element is wired to the number of items in the second node entry. Voila, check you what is in the FIFO and pull everything out of it.

  • Can I get several variables defined by the user in a slide?

    I used the variables defined by the user in the past to collect information on the results of the quiz, as well as for the certificate of quiz.  I would like to re - use variables in a few areas.  in my project, a slide invites you the user name (variable, I created), second will prompt you for the user ID (variable, I created).  I would like a third screen that reads 'Confirm your previous entries', and I want to show him the two variables.  I see only one.  Is it possible to get them both to display?

    I also want to re - use both in the quiz at the end certificate.  If I change the certificate in Flash widget, will be the two variable display?

    This quiz brings to me by email (we have no LMS).

    Any suggestions?

    Cyndi Nagel

    Hi again

    You reduce the screen shot before you download? You are right. It's barely legible.

    If the variables are inserted into more than a legend, double have you checked the timing? Maybe something is pause the slide before one of the legends has a chance to appear.

    See you soon... Rick

    Useful and practical links

  • How to create the shared library for linux real-time target in labVIEW Windows?

    I use myRIO running linux in real time. In my project, I need to pack some C code, so I tried the node library function call.

    I know that I should use the tools compile cross - compile linux on Eclipse to compile c code in linux .so library. But the problem is that call library function node does not recognize the .so file because my labVIEW runs on a Windows PC.

    What should I do to fix and how to combine C code with labVIEW during programming for devices shipped as myRIO?

    Basically, you must also create a Windows DLL that exports the same functions. These functions can be empty stubs if you do not want to run the code correctly on Windows, otherwise you will need to consider how to implement the equivalent functionality on the Windows API.

    Then you can write in your node library call as the name of the library ". "*" and the name of the shared library Windows ".dll" while the Linux version is called "name of your library > .so". LabVIEW will replace the * after the comma in the name of library with everything that is the preferred extension shared library for the platform it is running on and therefore load the right shared library.

    Alternatively you can wrap call all the nodes of the library in a structure that contains the node library in the case of Linux RT and all what you want to run on other platforms in the case of default or a case of specific platform, call the conditional compilation.

  • Debugging on a real-time target - deployment issues

    Dear community,

    After RT my 9651 sbRIO module wiring code, I do tests to check the intended functionality. For this I start my main VI who deploys the code on my SoM and I can happily move forward with my debugging session.

    Sometimes, however, while in the process of deployment, I get an error saying:

    [VI - name] .vi loaded with errors on the target and was closed

    When I open the VI it has no errors and the VI should work a fine might think.

    My solution was so far of the VI, just open move the wires and terminals round, re - save the VI and this is the deployment works.

    This trick worked for a while, because deployment error ca occur arbitrarily on different VI making debugging quite cumbersome.

    I then went ahead and just run the wrong VI in RT mode by moving terminals and structures around to get the VI runs in mode debugging, but it is very time consuming.

    Given that 3 people working on this project and we use git-subversioning I also do not want to "touch" each time just screws for the debugging session will without actually modifying the feature.

    Has anyone encountered a similar experience or perhaps found a magical setting to avoid this subject a lot of time?

    Hello

    If solutions already present Spex does not do the trick for you, clearing the cache of the compiled object can help.

    For more information, take a look at the following link:

    Why my screws are loaded with errors when it is deployed at my target in real time? -National Instruments
    http://digital.NI.com/public.nsf/allkb/7F6502FF0560FA9086257EB3005B13BA

    Concerning

    Alex

  • For a sequence in real-time output variable

    VS 2011, I have a sequence of real-time voltage step that sets an AO for a voltage given for awhile, and then resets the output to 0.

    Just before setting the output to 0, I want to read the response of my this stimulus of an AI System I call StepResponse. To do this, I place this in FinalValue I set as a Variable in my script. In other words, it is a parameter or a local Variable.

    Now, how can I get this out FinalValue? I don't see anything on how to "test" this variable to one of my user variable... I was able to do with the stimulus inherited in VS2010 Editor. Now, I'm stumped.

    Here is the sequence:

    and this is the profile of stimulus and settings below. I can set the fine settings via the API of LV, or run the Publisher of the Stimulus. But I can't seem to get out this FinalValue...

    THX.

    L.

    The return for a sequence (in your case FinalValue) variable is returned to the caller once the sequence has been completed as a result of this sequence. In your example, the appellant is stimulus profile that you configured. In a profile of stimulus, two relevant things will come based on the return value of variable a sequence called:

    1. The return variable value will be get recorded in the file of test result ATML for stimulus profile

    2. You can configure an assessment of output for the call to test sequence make a basic on the return variable test to determine a pass/fail result. For a numeric variable to return such as FinalValue, you can do a check of numerical limits to test whether the value is in or out of the specified limits. For a Boolean return value, you can translate either directly in a pass/fail result, or you can reverse the logic as well as False implies Pass.

    In addition, the LabVIEW API has a function, you can call once the sequence finished to programmatically retrieve the return value.

    However, in your sequence after that you store the value StepResponse in the return variable, you reset to zero before the end of the sequence. If your sequence always returns zero. I think that you do not remove this line and let FinalValue what so that you will get the StepResponse back closure instead of zero value.

  • Unable to connect to a real-time target... ugh I give up!

    This one is really frustrating... I did a lot with Labwindows for a long time, so get in... I just installed LW/CVI 2013 on a new machine in my lab.  hooked to a new PXI chassis, formatted a new disk in and installed all the drivers.  When you try to connect to the target environment labwindows I get the popup in the screenshot.  As you can see, the chassis is on the network, to the good ip, and the drivers are installed on the target... What is the problem!  Thank you.

    Hello

    This is the acutally NOR Configuration system that comes with MAX and interferes during the installation of the CVI real-time on the target.

    Decommissioning of MAX should solve the problem.

    If you don't want to upgrade to CVI real-time Module to 2013 SP1 there is also a work around:

    Edit C:\Program NIUninstaller Instruments\RT Images\CVI\version\cvilvrt.cdf and do one of the following:
    Remove the entry from CVIRealTimePeer.
    Specify the IP address or desired host name.
    Reinstall the LabWindows/CVI runtime for RT component to the target via NI MAX.

    Good day

    Constantin

  • where the daqmx on real-time target files are stored?

    Hello

    I'm working on an application that is embedded in a desktop RT target.  To make the system easier to maintain in the future, I would like to be able to generate a DAQmx task programmatically to the *.ini file exported from MAX.  In this way, users don't know what my code does to recalibrate the sensors or manage new material; they only know how to use MAX and where to store the files in config on the target.

    Where are the task daqmx, channel, and scale information stored on an RT target?  I have been through the files on the target you are looking for something that contains my task data but have found nothing, while dropping a node of system property in a VI running on the target will give a correct list of the tasks that I set up.  (The project that contains the aforementioned VI has no tasks in it IE: I do not import into the project.)

    Is there a utility that runs on the RT target that can generate a task at the time of the *.ini files exported?

    Thank you

    Exahustive keyword search led me to an answer on the forums.  I'll post here a brief summary in case someone else uses the same key words I.

    1 export the MAX configuration file

    2. write a VI that uses tools in the system palette to load the configuration on the target in real time.

    3 profit.

    In my case, the VI I wrote to download the config DAQmx also generates the configuration files for the screw on the side host and target, so everyone knows what is called tasks.

  • UDP playback does not work on a real-time target

    Hello

    I am running LabVIEW RT 8.6.1 on a PXI 8106 RT controller.  LabWindows/CVI for RT 9.0.0 execution engine is also installed that I develop using LabWindows/CVI 9.0.  I'm trying to send some data UDP for an external PC via the network for software running on the controller, but this does not work.  The UDP packets are certainly get sent (I receive on my PC when the transmitter to reconfigure my PC IP address) but the UDP callback function is not called.  The call to CreateUDPChannelConfig returns OK.  Here's the (very simple) code that I wrote based on the example of reading NI UDP:

    #include 
    #include 
    #include 
    
    // Global variables
    static int reader_channel = 0;
    
    // Global functions
    int CVICALLBACK UDPCallback (unsigned channel, int eventType, int errCode, void *callbackData);
    
    /// HIFN The main entry-point function for the Real-Time DLL.
    void CVIFUNC_C RTmain (void)
    {
        int errno;
    
        if (InitCVIRTE (0, 0, 0) == 0)
            return;    /* out of memory */
    
        // Create UDP receive task
        errno = CreateUDPChannelConfig(49152, UDP_ANY_ADDRESS, 0, UDPCallback, NULL, &reader_channel);
    
        while (!RTIsShuttingDown ())
        {
            SleepUS (1000);
        }   
    
        CloseCVIRTE ();
    }
    
    int CVICALLBACK UDPCallback (unsigned channel, int eventType, int errCode, void *callbackData)
    {
        static int udp_received = 0, default_rx = 0;
    
        switch (eventType)
        {
            case UDP_DATAREADY:
                udp_received++;
                break;
            default:
                default_rx++;
                break;
        }
    
        return 1;
    }
    

    All that happens is that software is just waiting for the callback to be called (which never does).  I found this ad that described a similar problem, but the developer was using LabVIEW and although he has found a way round the problem, he was never heard as to why it worked.

    Thank you

    Martin

    Hey,.

    Although the problem is now resolved, I thought that put the code for others see if the same error is encountered. The modified code is tested and works. It is saved as an attached png file.

  • Error trying to create the exe for real-time target

    I have a target program that works well on target in real time, but hangs when I try to create an executable fron, error is:

    An error occurred during the recording of the following file:

    C:\Program NIUninstaller Instruments\LabVIEW 2009\vi.lib\Motion\FunctionBlocks\straightLineMove\nimc.fb.straightLineMove.startStraightLineMove.axis.modeVelocity.0.vi

    Invoke the node in AB_Source_VI.lvclass:Close_Reference.vi-> AB_Build.lvclass:Copy_Files.vi-> AB_Application.lvclass:Copy_Files.vi-> AB_RTEXE.lvclass:Copy_Files.vi-> AB_Build.lvclass:Build.vi-> AB_Application.lvclass:Build.vi-> AB_RTEXE.lvclass:Build.vi-> AB_Build.lvclass:Build_from_Wizard.vi-> AB_UI_Frmwk_Build.lvclass:Build.vi-> AB_UI_FRAMEWORK.vi-> AB_CreateNewWizard_Invoke_CORE.vi-> RTBUIP_CreateNewWizard_Invoke.vi-> RTBUIP_CreateNewWizard_Invoke.vi.ProxyCaller

    Method name: Save target: Instrument

    Visit ni.com/ask support request page to learn more about the resolution of this problem. Use the following as a reference:

    Error 6a held at AB_Source_VI.lvclass:Close_Reference.vi-> AB_Build.lvclass:Copy_Files.vi-> AB_Application.lvclass:Copy_Files.vi-> AB_RTEXE.lvclass:Copy_Files.vi-> AB_Build.lvclass:Build.vi-> AB_Application.lvclass:Build.vi-> AB_RTEXE.lvclass:Build.vi-> AB_Build.lvclass:Build_from_Wizard.vi-> AB_UI_Frmwk_Build.lvclass:Build.vi-> AB_UI_FRAMEWORK.vi-> AB_CreateNewWizard_Invoke_CORE.vi-> RTBUIP_CreateNewWizard_Invoke.vi-> RTBUIP_CreateNewWizard_Invoke.vi.ProxyCaller

    Possible reasons:

    LabVIEW: File generic i/o error.
    =========================
    NOR-488: IO abandoned operation.

    The second was the issue, I found myself actually apply to open with an engineer and he helped me. Thank you very much!

  • FPGA target 9146 OR editions variable defined by the user to a network

    I am developing code to use on the expansion chassis NI 9146 ethernet with 3 hanging modules, NI 9205, NI 9264 and NI 9476.

    The code is supposed to be downloaded on the chassis as FPGA code and run the code itself and the release of information on the network for the chassis, it is hanging in.  The code is simple (blood pressure measurement and convert them to pressure).

    When the code is on the host pc, it can be run through the target and runs correctly.  The pieces are just have thing chassis user FPGA 1 LED blink a few times per second, convert the voltage in pressure and variable output on the network and read some Boolean variables that are on the network.  All variables are not listed in the network in this way (by pressing the button run an FPGA VI compiled host) by pressing

    When the FPGA VI is downloaded to the flash memory chassis, configured to run once downloaded and restarting the device, the VI FPGA runs, because user FPGA 1 LED flashes on the specifided rate in the code, but variables do not put on the network.

    Attached are several screenshots of the code window and screen project.

    Thank you for your time

    Mitchell

    Hello

    The FPGA cannot write to the variables by itself.  It is usually used to make a task of high speed.  In order to communicate with a host computer, you will need the code running on the controller that uses screws FPGA Interface.

Maybe you are looking for