Abnormal behavior observed in real-time executable.

Hello

I have an interesting problem. I have developed an embedded application of Real-time/FPGA for cRIO 9024 and come across a problem that I don't understand. I work FPGA and RT of top-level and subVIs, proven individually and together when it is run interactively. When I create and deploy an executable in real-time like start, however, the behavior changes. I posted the code below, which I'll explain briefly:

I have a state machine with 5 States architecture. "Initialize" and "Shut Down" are exactly meet once whenever the device is reset, and the cycle between them is wait > pre-test > wait > run the Test and repeat as many times as desired. Measures are taken by FPGA and past in real-time by DMA FIFO and are then recorded to the TDMS file by the real time. Everything else is just interface.

The problem comes from the first time, the program enters the Test case to run. The FPGA send measurements as usual, and they are stored in a growing table updated buffering in the fixed-point shift register shown below.

Run interactively, this method successfully bed, buffers, sorts and writes all data in the file. However, in time real executable, only the data collected in the first round (147 items total, as it is initialized by the whole shift register) are saved, the rest seems remainsin a buffer? before calling the following function TDMS write, is that in the case before the next test.

I'm unable to debug the executable file in real time, probably because of the FPGA reference or some other schema components. I tried to replace the pad with a FIFO in real-time, a variable shared with RT FIFO active and tried to write inside the loop. The FIFO are not improving the situation, and when writing inside the loop, the loop does not run quite fast to stand.

The problem does not exist when I run the VI interactively from my computer, only when I try to deploy all of the embedded, any application that works (as far as I know) except this one place.

Any ideas to solve, or workarounds?

Ryan

Technical support helped me to resolve the problem, the early termination of loop caused loop condition, although I still don't understand why the behavior was different as an executable file, because the condition of the loop has worked in interactive mode, so if someone has any ideas as to the why, I would still like to know.

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.

  • Is there a tutorial for creating executables in real-time?

    I have the code in real-time which works OK in LabView (not the final version no doubt but I need to learn two or three other things as well).

    Now, I would like to create an executable file that I would run on some PCs with some inside monitors and control.

    I found little exercise on the development of Application (shortly): 1) create shared variables) 2 create a copy of the Vi that works and to replace the controls and monitors in it with static variable) 3 Windows creating welcome 4 VI) probably create an executable after that (step not described in the exercise).

    I'm currently stuck at step 3 with the 1950679035 error.

    Looks like a well known error, but I found no solution yet.

    My question is: which is the right way, I'm moving to? Or there is another way to create applications with control and monitoring of the device in time real NIcRIO 9072?

    Sergey.

    Hi Sergey,

    Glad to hear that you are making progress.

    And all you need to do now is create the façade in the same way that you would create a normal .exe file.

    Here is a link with tips on how to create front panels: (web-based)

    http://digital.NI.com/public.nsf/allkb/7F95D43D3F50FCAC8625710E000068E1?OpenDocument

    http://digital.NI.com/public.nsf/allkb/7FEE6BCFD264175C8625723E000D928E

    There are other links on the bottom of these pages.

    Kind regards

  • Behavior of v$ standby_log; during the real time applies...

    Hello

    I would like to understand this point of view, during the REPEAT APPLY behavior or real-time applies by using configuration of log roll forward pending. as in my db, when there apply to progress, I see the status column having a CURRENT value and the column DBID value of Eve DBID where the application is underway then status column goes to UNASSIGNED value and DBID column has no value inside of it... i mean Virgin... Why is it so? Ask you please help me understand this... Here is the log

    SQL > select * from v$ standby_log;

    GROUP # DBID THREAD # SEQUENCE # BYTE BLOCKSIZE USED ARC STATUS FIRST_CHANGE # FIRST_TIM NEXT_CHANGE # NEXT_TIME LAST_CHANGE # LAST_TIME
    ---------- ---------------------------------------- ---------- ---------- ---------- ---------- ---------- --- ---------- ------------- --------- ------------ --------- ------------ ---------
    7. UNASSIGNED 1 0 104857600 512 0 NOT ASSIGNED NO.
    8 3903727333 1 58534 104857600 512 338944 YES ACTIVE 2.3217E + 10 5 JANUARY 12 2.3217E + 10 5 JANUARY 12 2.3217E + 10 JANUARY 5, 12
    9. UNASSIGNED 1 0 104857600 512 0 NOT ASSIGNED NO.
    10 3903727333 2 38929 104857600 512 235008 YES ACTIVE 2.3217E + 10 5 JANUARY 12 2.3217E + 10 5 JANUARY 12 2.3217E + 10 JANUARY 5, 12
    2. UNASSIGNED 11 0 104857600 512 0 NOT ASSIGNED NO.
    2. UNASSIGNED 12 0 104857600 512 0 NOT ASSIGNED NO.

    6 selected lines.

    SQL > /.

    GROUP # DBID THREAD # SEQUENCE # BYTE BLOCKSIZE USED ARC STATUS FIRST_CHANGE # FIRST_TIM NEXT_CHANGE # NEXT_TIME LAST_CHANGE # LAST_TIME
    ---------- ---------------------------------------- ---------- ---------- ---------- ---------- ---------- --- ---------- ------------- --------- ------------ --------- ------------ ---------
    7. UNASSIGNED 1 0 104857600 512 0 NOT ASSIGNED NO.
    8. UNASSIGNED 1 0 104857600 512 0 NOT ASSIGNED NO.
    9. UNASSIGNED 1 0 104857600 512 0 NOT ASSIGNED NO.
    2. UNASSIGNED 10 0 104857600 512 0 NOT ASSIGNED NO.
    2. UNASSIGNED 11 0 104857600 512 0 NOT ASSIGNED NO.
    12 3903727333 2 38931 104857600 512 5120 YES ACTIVE 2.3217E + 10 5 JANUARY 12 2.3217E + 10 5 JANUARY 12 2.3217E + 10 JANUARY 5, 12

    GROUP # DBID THREAD # SEQUENCE # BYTE BLOCKSIZE USED ARC STATUS FIRST_CHANGE # FIRST_TIM NEXT_CHANGE #.
    ----------
    7. UNASSIGNED 1 0 104857600 512 0 NOT ASSIGNED NO.
    8. UNASSIGNED 1 0 104857600 512 0 NOT ASSIGNED NO.
    9. UNASSIGNED 1 0 104857600 512 0 NOT ASSIGNED NO.
    2. UNASSIGNED 10 0 104857600 512 0 NOT ASSIGNED NO.
    2. UNASSIGNED 11 0 104857600 512 0 NOT ASSIGNED NO.
    12 3903727333 2 38931 104857600 512 5120 YES ACTIVE 2.3217E + 10 5 JANUARY 12 2.3217E + 10 5 JANUARY 12 2.3217E + 10 JANUARY 5, 12

    DBID would be here.
    These groups of waiting for redo log files can contain either the thread 1 or thread2, several threads are used in RAC environment.

    In general architecture, once if any log switch (or) redo log is full then they will be sent in files archive, then it will be assigned to new files redo log. here in the primary redo log file, you can see the current, active, inactive state so now.

    During the real time applies, every time that data written to the primary log files, the log of the time same writer will be active and which will be assigned to the redo log file... not redo log file, you have to say standby redo log waiting for database.

    average not assigned here, this standby redo log file, can be used for the next time, perhaps earlier status as 'active '. Each time standby redo log file is active DBID so only you can see.
    If its in unassigned it will be inactive, once again if any new allocation then it will become active. similar chain / loop. This is perfectly normal behavior.

    UNASSIGNED - online redo log has never been written for. It comes to the State of a newspaper of restoration by progression that has been added, or just after a RESETLOGS when it is not the log during recovery.
    ACTIVE - Log is active but is not the current journal. It is necessary for the recovery of the failure. It can be used to block recovery. It may or may not be archived.

    HTH.

  • "1 MHz" for the name of the source on the time loop does not work on LabVIEW Real-time 9.0

    A Loopis Timed running as expected if a time source is manually chosen in the dialog box of configuration for "1 kHz" (first digit) and "1 MHz" (second digit). If the time Source name is set through the input of the channel "1 kHz", the loop is executed, too third figure). But if the input string is "1 MHz", the loop is not executed (last figure). The channel two are created by "create constant" on the entry of the loop to exclude typos. Is it possible to set the Source of a loop time timed through the input string to the real-time clock hard Mhz?

    OK, I was a bit confused by the difference between the behavior of error...

    Now, the question is quite clear. Aid for the timed loop provides the following regarding the Source of the calendar entry:

    Specifies the name of the synchronization source to use to control the structure. The source of synchronization must be created using the create synchronization Source VI on the block diagram or selected in the dialog box Configure the timed loop .

    So, I think that you have somewhere in your code a time Source.VI create if you pass "1 kHz" as the name. But you did not do this for your clock "MHz 1"...

    hope this helps,

    Norbert

  • delete the host controller real time program

    using NI9642 sbrio host in the sbrio real-time like a startup program now when I use the fttp: to remove the previous host program I can't remove it especially when I remove the version of the host of the project, I'm looking for a way to delete the file and work with the new real-time application program that I use it now.

    Hi AlaaShaw,

    Have you tried to cancel the deployment of the executable to the target and then deploy the new application?

  • Controller time real-time FieldPoint or Ethernet interface

    Good afternoon

    The first feature listed on the PS-2000 product page is:

  • Stand-alone embedded real-time controller or on PC distributed i/o Ethernet interface.
  • Everyone was able incorporate a PS-2000 as an Ethernet on PC distributed i/o interface?  In other words, have the PS-2000 as a FP-1600 Act?

    There are some discussions forum discussions that dance around the subject, but I found no really one who responds to her.

    Thank you

    Ed

    Hi edlad,

    After playing with a FP-2010 for a while, I think you need to install LabVIEW Real-time on the controller to make it work, even though you are technically not to use it because you are not running a VI/executable on the controller. Regarding your problem with the installation of LabVIEW 8.5.1 on a PS-2000, it is disturbing because it should not be a problem that at all. In fact, I have personally been able to install LabVIEW 8.5.1 on many FP of the 2000s. For that matter, I suggest reformatting of the PS-2000 of MAX and try again.

    ThinkG: Regarding your question on the use of a PSC-2220 to connect with belvedere, I don't know because the support of Lookout is managed by our subsidiary in Shanghai by e-mail only. However, I don't know that you can use this second ethernet port to connect with another network (cFP-180 x) FieldPoint module using the FieldPoint drivers. Here are some good articles about this configuration knowledge base. I hope they are useful.

    http://digital.NI.com/public.nsf/allkb/F602F6F1B243282686257495007695BB?OpenDocument

    http://digital.NI.com/public.nsf/allkb/67F94BB93BCE32CF86257367006B3659?OpenDocument

    Thanks for choosing National instruments.

    Aaron Peña

    National Instruments

    Technical sales engineer

    http://www.NI.com/support

  • LabVIEW 2014 SP1, hardware and real-time PXI

    I'm doing my third LabVIEW Wipe/reinstall in as many days, completely frustrated (and after several calls an hour with the support of NEITHER).  Here's the situation:

    I wrote a fairly large (1000 VI) project of Acquisition/control of our graduate students data used for behavioral experiment on sound localization.  It was developed in 2012 LabVIEW with the module running on a PC/PXI system real time.  It worked very well and was brought successfully under LabVIEW 2014 (with upgrades comparable to the software of the PXI.

    About 18 months ago the students began to write their theses, and at one point stopped gathering data.  Also, at some point, I upgraded the software on this system to LabVIEW 2014 SP1, but I am not sure that I never tested my software with this new system.

    This week, I pulled up the system to use MAX to open some test on the PXI multifunction and DIO card panels to control manually one of the stimuli.  I discovered that MAX could not communicate with the advice on the PXI system - he attributes them as devices VISA, indicating each Board with an icon with a red X means that he could not communicate with the IP that I had assigned to PXI.  Yet, MAX (a) could "discover" this PXI, (b) MAX can 'see' its IP address, and (c) Windows could not only Ping the IP, but could FTP on the drive of the PXI and I could move files back and forth.

    I did two sequences complete "Wipe/reinstall" using LabVIEW 2014 SP1, all giving the same result.  I know it has worked in the past, including when I installed LabVIEW 2014 (without SP1), something I repeat myself now with my third installation.  I discussed with OR (thin?) possibility that there is a "hidden defect" in the Distribution of the SP1, one that is visible to LabVIEW RT users using PXI hardware and go unnoticed because (a) install a few sites of LabVIEW versions SP1, (b) a minority use the RT Modules and (c) PXI is "old material".

    If anyone has such a system or saw a similar problem, please answer.  I'll do a follow-up post if I managed to 'fix' my system by this last reinstallation "a solution of worked before."

    Bob Schor

    Well, the answer is that, in my system, LabVIEW 2014 SP1 with LabVIEW Real-time connected to a PXI system does not appear to connect to boards plugged into the chassis.  Returning to LabVIEW 2014 (fall release), installed in exactly in the same way that the three failed attempts of LabVIEW 2014 SP1, works immediately.  Engineers OR will try to duplicate/verify/possibly patch? in this issue.

    Bob Schor

  • Real-time System Manager

    Hello world

    How can I open real-time System Manager to monitor on my project of myRIO resourses?

    I've already activated the VI server on the target.

    If I select Tools-> real-time Module I find only "Project Wizard", "set up Time-triggered network" and "viewer of Trace".

    Thank you in advance,

    Lorenzo

    The "Distributed System Manager" is an application/executable separated - you can find it, if installed, on the start menu under the folder "National Instruments". If it is not there, then you probably have installed as part of your installation - raise your LV Installer and choose to install.

    Alternatively, you can use the System Configuration API to read the various parameters (e.g. CPU / memory) on the target itself to monitoring the health of the system.

  • Need information about memory in real time

    Hello

    I use sbRIO 9633. I save data in the memory of the sbRIO (via ftp), as well as on the C drive of my computer (via an executable).

    My questions are,

    1. when the RAM is emptied (in other words, I take the target), the details logged on the sbrio via Server ftp does not get emptied. Therefore, when you connect via ftp, which part of memory are stored data? What happens if the memory is full? (as the application should work for years)

    2. that the application runs continuously, the bytes available on the real-time target decreases permanently (I guess) and finally RAM is full. So, do we not have to empty the RAM from time to time?

    3. If I do not add the loop of the newspaper on the RT vi, will decrease the "available bytes" on RT target? If not, then how?

    Hope that my questions are clear.

    (1) NEITHER sbRIO 9633 has 256 MB of memory persistent which is used by the ftp... should be easy to fill, so check the case 'out of memory '.

    (2) NEITHER sbRIO 9633 has 128 MB of RAM and you should read the FreePhysMem property when your application is loaded and determine a threshold to know when it's time to free the memory.

    (3) this can be done by the host (PC), by logging system (ip target) required.

    In my case, the memory used by the network flow increases over time, and I trigger to reset the stream to release the RAM.

    It may be useful

    Christian

  • Starting process in real time

    I have 2 questions related to LabVIEW Real-time. I'm using LabVIEW 2010 Service Pack 1. We have a PXI-8186 controller running the embedded real-time.

    (1) I have my software written to communicate using TCP/IP. The real time software runs the listener 'TCP create' then the 'wait on TCP listener"to look for the connections of the computer. This works well in the LabVIEW project. I then build the executable and deploy it in the system in real time, set up to run during startup. I put the target name to be my program name "Test program.rtexe" rather than "startup.rtexe". I don't know if that makes a difference. I saw the other files in the startup folder of the system in real time that have been named something else. My questions are: the name possible no matter what name we want and the system in real time all programs contained in the startup folder is running or is there another method to specify the programs to be executed?

    (2) is there a way to monitor or to see what programs are running on the system in real time? As the the Task Manager on a windows system. The reason I ask, is that after I restart the PXI system and without using the program of project, I can't connect to my test program running on the system in real time. I don't know if the software is running on the system in real time, is it established that the network interface which it was assumed, etc. to determine why I can not connect with him. Any help on various methods to determine if the software actually runs would be useful.

    Thanks for any help you can give.

    Bill

    Finally found the problem.

    It would seem that, at least in the 2 controllers shipped we have there, controllers have a flag in the BIOS that allows you to disable the file to begin execution on the system in real time. Once I put the flag on the 'NO', everything works. The flag is named:

    'Disable the boot VI' tab 'LabVIEW RT"in the BIOS.

    It is a good option if the boot VI is damaged or was not debugged prior to deployment.

  • Using FTPClient on a real time with system Exec.vi

    How can I tell FTPClient.exe address target when I start this executable with system Exec.vi in Labview?  I don't want to reinvent the file FTP utility used by MAX with targets in real time. I want to run this executable to a labview support utility without using MAX to do.

    Is this possible?

    Danny

    Thanks for the info.  Your "bad mood" response "suggests" a response to my question.  However, the full answer to my original question is that it is not possible to use FTPClient.exe outside MAX.  It is therefore not possible to spend in the address target at run time if the FTPClient.exe runs external to MAX.  FileZilla is a good choice - there are also other FTP clients out there, but you pointed out a solid choice.  Thank you.

  • How to read the text from a DOS window in real time?

    I call an executable file that downloads a file to flash memory.  This program displays status information in real time as the percentage of completion in one window BACK.   It also makes account of the CRC of the file as it downloads.  I am currently redirect the output of the DOS window in a text log file.  This works fine for obtaining of the CRC when the file is actually downloading but the operator loses the visibility of the State in the percentage of download.  Is there a way to read text information in a DOS window with my request of LabWindows/CVI real-time?

    Hi Brent,

    If redirect you the output from the first application in a log file, you would be able to read the contents of the file streaming to your second request, and whenever the content changes (such as the download value percentage), couldn't display you this information immediately with the second request in one window DOS or some other GUI?

    Luis

  • Calling functions in DLLS in LabVIEW Real-time

    Hello

    I have LabVIEW Real-time version 8.20 with PXI hardware. This uses Phar Lap ETS RTOS and support DLLs written in Microsoft Visual Studio 6.0 and Visual Studio .NET 2003. My question is if I upgrade to the latest version of LabVIEW Real-time, can I use later versions of Visual Studio to write DLLs?

    Search the OR web site all them I can find is that the version of the FTA has changed.

    Is it possible to use vxWorks on PXI hardware?

    Hello Paul,

    Lets try this again:

    How can I check that my DLL is executable in LabVIEW Real-time?

  • Algorithm of PID in 'PID and Fuzzy Logic Toolkit' and 'real time Module ".

    Hi all

    I am recently using LabVIEW 2011 and 2011 real time Module. My application requires the PID control.

    Now, I have a problem. In the manual for "And Fuzzy Logic Toolkit PID", Chapter 2 "algorithm PID" it indicates non-interactive algorithm (also called the ideal algorithm, Standard or ISA) be used in all the screws of PID in the Toolbox. It seems that Yes from source code. However, in Chapter 3, "Using the PID software" arrays of calculation of PID parameters based on method of Ziegler-Nichols, which was developed for the interactive algorithm (also called the series, the real classic algorithm). D action has been included in the scheme of control, the settings may be different for the two algorithms. In fact, Cohen Coons and adjustment PID Lambda rules can be used for the algorithm used by the box tool with no conversion.

    In addition, there is a PID function block comes with the real time Module, and I know not what PID algorithm it uses. Can someone help me?

    Thank you in advance.

    Su

    In the "and Fuzzy Logic PID Toolkit, we use the University structure to implement all algorithms. Tuning techniques we show on the manual to express the original work and we try to keep the same as you would look at the literature. However, in our implementation of autotuning internally converted to the structure used by our algorithms to keep compatibility with our own implementation.

    If you use an external source, you can use the Conversion.vi of Structure PID to change University, parallel or series of parameters in one used by our algorithm.

    The PID included with the real time module is a 'copy' of our algorithm, and they have the same settings and behavior. The only advantage to use this function block, you have access to the parameters through variables.

    Hope this helps...

Maybe you are looking for

  • MacBook pro retina start/stop

    After installing OS X 10.11.6 my macbook pro retina spontaneously restarts or stop. Any ideas? Thank you m

  • What are the causes a refresh of XMLHttpRequest?

    I'm developing a JavaScript program that uses XMLHttpRequest to retrieve an XML of my Apache server. It all works very well, but in my XML file that I do outside, changes appear not in my test page until I exit and restart Firefox. Is there another w

  • Configuration of extraction of DAQmx task ID...?

    Hello Is it possible to set up channels in a pull-out TaskID? I know it's just a number, which I think refers to an entry in a table of tasks taking into the configuration details. Regardless of whether I'm right or not, is it possible to decipher th

  • Canon MP530 6500 error code

    I have a MP530 all-in-one that gives me an error code of 6500 on the screen. I have tried turning the printer market and have also unplugged it and waited for a while, as indicated in the troubleshooting guide. None of them have made a difference.

  • Win 7, games and graphics glitches/display driver stops resonding

    It is essentially, while the game (WoW or Borderlands in my case) there will be a variety of glitches that occur. I know not just the terms for each of them, but it's going is going to be whatever it is grids of colored seemingly random pixels (pink