Execution tracer idea - labview

Hi, I have been working with labview for the past month with hardware
and software.
I was wondering if there is a way to see the order of
execution of the vi....It would be nice to see on the block diagram a
trace system or numbering scheme or drop down flow that tells the order of
operation...I think this is all done behind the scenes in labview..It might
be nice to have a trace or label..maybe this exists..I am getting
the book for scientist(s) and engineers...so maybe it is there..any help..
FOR simple programs its not an issue....I have seen some complex vi's!!
I guess I am use to the old C programming...line by line..
maybe with time?
J
Solved!
Go to Solution.

NitinD wrote:
Alternatively, help yourself by creating a simple "Log results VI" that is connected after every major operation you are doing. LabVIEW essentially divides the codes in clumps, if you can figure out what clumps LV is dividing your code into, probably your job will be easier.
But I don't see how knowing the order of execution will help you. Even LabVIEW doesn't know it before hand. If your code is so execution-dependent perhaps you should use Frame Structures, that force sequential execution.
Actually LabVIEW knows it pretty well, but things like timers, delays and such can and will change the execution order between successive runs sometimes.
Also it is quite useless information to debug an application, because if the execution order of nodes matters in a program you have to force it (dataflow) or you will have a potential race condition, that can and will expose itself at the latest at the moment your application is installed at the other side of the globe and with no internet connection available to even attempt to do remote debugging.
Just learn to live with it and use its advantages. It is not hard to do correct code. Things like global variables and local variables are an ideal way to cause race condition so if you make it for yourself to a rule to never use them unless you have thought at least twice why they are necessary and how to make sure you have no race condition there, then you are already set for at least 50%.
You can have race conditions too in C, but there you have to explicitedly write multithreading code, which is kind of hard and therefore is only done when absolutley needed and usually by people who understand exactly what the implications are, and if they don't, they learn it fast during development, or abandon the project sooner than later.
Rolf Kalbermatter
Message Edited by rolfk on 08-30-2009 09:12 AM
Rolf Kalbermatter
CIT Engineering Netherlands
a division of Test & Measurement Solutions

Similar Messages

  • Can the LabVIEW Desktop Execution Trace Toolkit (DETT) be used with LabVIEW 2013 64-bit

    I looked in Help and searched NI.com, but I haven't found a clear and definitive answer.
    (Is it just me, or does it seem odd that the NI.com forum spell checker flags "LabVIEW" and "NI.com"?)

    Hi Matt,
    Here is a document showing what toolkits/modules are supported with 64-bit LabVIEW - http://www.ni.com/white-paper/10383/en/.
    Desktop Execution Trace Toolkit does not support 64-bit LabVIEW (however it will work with 32-bit LabVIEW on a 64-bit system).
    Regards,
    Jeff Peacock 
    Product Support Engineer | LabVIEW R&D | National Instruments 

  • How to use Real time execution trace toolkit with Dual-core processor??

    hi there
    the situation as follows:
    i have a computer (PC and Laptop) types with Dual-core processors, and am trying to do simulation using Multi-core technology and based on different simulation scenarios...starting from sequantial processing,.......Piple lining processing strategy. so that i can differentiate the time delay between those types of processing based on (Using 1 processor then dual-core processor Computers)
    my question is: As i read through Ni's white papers i saw many notes refer to Real-time execution trace toolkit to investigate the (processing-time , etc) of multi-core processors in processing diffenent algorithms. My algorithms are to be run on 1 computer with dual-core processor BUT, not in real time environments, that is ( No hardware to be connected to my pc) only algorithms running on my pc....
    So, is it possible to use Real time execution trace toolkit  or anyother tools in LabVIEW to show processing-delays and/or anyother timing critical issues without using my application for  real- time hardware.???
    in other words: how to use Real time execution trace toolkit  in non-hardware and/or real-time scenarios???
    please help me in this.
    Any suggestion, comments, feedback.....is absolutely highly appreciated
    thanks a lot in advance
    Labview Lover

    Hey,
    The Realtime Execution Trace Toolkit only works for NI RT Targets.
    But you can use the Desktop Execution Trace Toolkit, just search for it under ni.com.
    Christian

  • Execution trace won't transfer trace to host

    I am trying to get the execution trace toolkit to work on my system for the first time.  I am using a PXI-8196 realtime controller.  I have put a TraqceTool Start on my block diagram for the real time system as well as a TraceTool Stop Trace and Send.  I have the Execution Trace Tool running on the host computer.  When the real time code gets to the TraceTool Stop Trace and Send vi it gets stuck and eventually gives the error "Error 56 occured at TCP Open Connection in TraceTool Stop Trace And Send.vi->test_main_delete.vi.  Possible reason: The network operation exceeded the user-specified or system time limit.".  I am using the company network in which the IP address is set up to obtain an IP address automatically but, I have gone to a command window on the host machine, typed in ipconfig and taken the IP address that specifies and have attached that IP Address to theTrace Host Network Address connection on the TraceTool Stop Trace and Send vi.  I'm guessing it has to do with the IP address I have inserted but, I can't figure out any other way to talk over the network to the host machine.  Any ideas??

    Hello,
    The IP address returned by ipconfig should be perfectly valid for the Stop Trace and Send VI, so long as you don't restart your host PC or obtain a new IP for the host.  One thing to verify as well is whether you have multiple internet adapters (for example, an ethernet port and a wireless card), since each of these will have separate IP addresses.  Additionally, this VI will attempt to communicate with your PC over a particular port, if you have a firewall enabled, this port is likely being blocked.  Try running it with your firewall disabled.
    If all else fails, you always have the option to save the trace log file locally on the RT target and retrieve it later via a standard FTP connection.  To do this, use the Stop Trace and Save VI instead. Give these a try and let me know how it goes.
    Cheers,
    Matt Pollock
    National Instruments

  • Desktop Execution Trace Toolkit from project explorer

    Hello
    I could launch desktop execution trace toolkit from start menu. This is however not showing in shortcut menu when I right click my computer in project explorer. Anything I could do?
    Kind Regards

    Does it show up under tools/profile? Have you tried to reinstall DETT?
    =====================
    LabVIEW 2012

  • Execution system differs between VI properties and Execution Trace Toolkit

    I have a time critical acquisition VI whose execution system is set to "E/S d'instruments" (instrument IO). When I dump the execution trace in the execution trace toolkit it appears as "LabVIEW Thread [Standard]". Moreover there is a second line with the same thread name. Is this just a confusing bug or does it reflect a possible conflict in my program ?
    Thanks in advance.
    Gael.
    Additionnal information : I am working on FP-2015.

    Gael,
    I made my top-level VI run at normal priority in the "same as caller" execution system, and my subVI run at time critical priority in the "instr I/O" execution system. The trace (attached) showed correct behavior.
    There are a few things to try. First make a backup of your application. Try removing the storage management subVI assigned to "other 1". You should now have a top-level VI running at normal priority in the same as caller exec system and a subVI running at time-critical in the instr I/O exec system (same as my setup).
    If you still get the weird behavior, we might be able to isolate the behavior to a subVI you're calling inside the time-critical VI. Try removing one subVI at a time and collect a tra
    ce each time.
    Alternatively, you can start with my simply VIs and slowly add components from your application until you see the weird behavior.
    I should remark that when you assign a VI to run at time-critical priority, that VI gets its own thread, even if the VI is set to run in the "same as caller" execution system. So even if your time-critical VI is not adhering to its assigned execution system, it's still running in its own time-critical priority thread (shown as red in the trace tool).
    Attachments:
    topVI_sameascaller_subVI_intrIO_timecritical.bmp ‏2089 KB
    instr_io.vi ‏19 KB
    sub_instr_io.vi ‏20 KB

  • NI RT execution trace toolkit and firewall

    Hi,
    I tried launching the RT execution trace toolkit and been ask to add the NI service locator to the exclusion list of my computer's firewall.
    It appears that for LV 2010, the NI service locator is included within the SystemWebserver.exe located here:C:\Program Files\National Instruments\Shared\NI WebServer.
    I added the SystemWebserver.exe in the exclusion list of the firewall but i still get the message asking to add the NI service locator to the exclusion list of my computer's firewall.
    Any hint?
    I'm Using Labview 2010 under Win7.
    Regards,
    Guillaume

    Hi Guillaume,
    So you have both the NI System Web Server, and the Real-Time Execution Trace Toolkit listed in the 'Allowed programs and features' section of the Windows Firewall control panel? Are they allowed on all network types?
    If you ignore the firewall request, does the Real-Time Execution Trace Toolkit successfully connect to the target? If you turn off the firewall does the Real-Time Execution Trace Toolkit successfully connect at that time? Is your firewall managed by a group administrator?
    Kind regards,
    Fred V -- Product Support Engineer -- LabVIEW R&D -- National Instruments

  • Download execution trace toolkit

    Dear All,
    i want execution trace toolkit for labview8.2. Where i can get it.
    Regards
    Manasi

    I'm assuming you already did a search to find that you have to buy it?
    If you need an earlier version than what's available then you would need to contact your local NI sales office. I don't know the details of the license for the toolkit, but if it's like LabVIEW, then you can buy a license for the current version and install a previous version (assuming NI can provide it to you).

  • How can I extract the data from a Real-time Execution Trace ".log" file?

    I would like to get the data for the traces from the Real-time Execution Trace toolkit ".log" file to read in Excel and generate a report.

    Hi Chuck,
    Have you tried reading it into a text or binary file first and then generating a report using the Report Generation VIs?
    Ipshita C.
    National Instruments
    Applications Engineer

  • Did anyone used Execution trace toolkit ??

    Hi all!
    I try to debug an RT application using Execution trace toolkit, and i wanted to tell everybody this tool is unuseable !!! It's impossible to debug anything with such a tool, and i wander how it's possible to even sell this tool !!! I have a 3.2Ghz with 1Gb RAM and this program takes 100% CPU during 2mn to refresh the screen !!  Everytime you make a zoom, move the scrollbar...  it takes more than 2mn !!!! And no : I didn't parameter a buffer of 5 000 000 (but 200 000, so approximatively 3ms of trace) !
    So my questions are the following:
    1) Does anyone have the same problem ?
    2) Is there an other tool able to read a .log file ?
    3) Is NI working on a better version for this tool ???
    Thanks !  

    Hi KaBooOoom.
    Though this is getting off topic; the issue with NI-CAN priority inversion was resolved by using multiple CAN cards.  According to the developers at NI a two channel CAN card (I use the PXI-8464) has the same onboard embedded processor (386) and shared memory resources as a single channel card.  Though the series2 cards were redesigned to improve throughput there are still some issues such as accessing the drivers from multiple threads.
    I used the trace execution toolkit to identify the problem, but had to use internal resources within the NI-CAN group to find a resolution.  Their proposal was to use multiple cards, and use only 1 channel on each.  Yes; this can be an expensive proposal; particularly if you have to get a larger chassis as was my case.  To get all of the cards working together "properly" (as their timebases are not sync'ed to RT); I had to use a pair of timers on a DAQ board which I happen to have in my system.  DAQmx was used to route a shared clock across the RTSI backplane and also act as a synchronized time source for a few timed loops that I use to service CAN.  You can PM me directly if you would like to discuss this further.
    Thanks

  • Virtual machine: Execution trace. HELP

    HI,
    I want to write an application using the latest jdk which shows a graphical representation of a program's execution. There are already commercial programs available I know but my one will be aimed at helping new programmers visualise method calls etc. helping debugging.
    Is this possible? How does one log an execution trace, and know the variables, objects and method calls at a particular time in a program.
    Any help would be very much appreciated. I need to know where to start! (And how!)

    HI,
    I want to write an application using the latest jdk
    which shows a graphical representation of a program's
    execution. There are already commercial programs
    available I know but my one will be aimed at helping
    new programmers visualise method calls etc. helping
    debugging.
    Is this possible? How does one log an execution trace,
    and know the variables, objects and method calls at a
    particular time in a program.
    Any help would be very much appreciated. I need to
    know where to start! (And how!)This article might interest you:
    http://java.sun.com/features/2002/08/omnidebug.html

  • Current execution system of labview 8.20

    What is the Current execution system of labview 8.20

    Hi,
    I presume you mean how LabVIEW executes the code in your block diagram? You can see this happen using the "Highlight Execution" button located next to the run, run continuously and abort buttons.
    Thanks,
    CLA | LabVIEW 7.1... 2013
    www.renishaw.com

  • NI LabVIEW Desktop Execution Trace Toolkit 2010

    Does anyone know where I can download the trial for the 2010 version rather than the 2011?
    Many thanks
    Griogair

    From the services resource center. DETT
    =====================
    LabVIEW 2012

  • Trace active LabVIEW processes

    I have a VI running that calls many subVIs (nonsequentially). 
    For debugging, is there a way to perform a trace type action, that will indicate all of (sub)VIs that are currently executing? 
    I.e., how can I determine, without turning on "Highlight Execution" what part of the code is currently being executed? 
    Within LabVIEW, is there something akin to C++ tracing and logging, or perhaps like Windows Task Manager that lists VI processes within LabVIEW? 
    Thank you.

    You can write your own code to trace the VI execution.
    (1) Make a string inicator on the Front Panel of your main VI.
    (2) Pass a reference of this indicator to the subVIs.
    (3) At the start of each subVI, print it's name to this string indicator using a property node. (To get a running trace, you can apppend names to the string indicator.)
    I do not know of any built-in LabVIEW tool which will do this for you. May be there is one!!

  • How does I read a HWS file that contains 2 traces, in labview? (error -21508)

    Dear experts,
    I have been using a PXI-5105 acquisition card to save data from 2 channels at the same time (coming from different sensors).
    Up to now I have been reading the files in Matlab, taking into consideration the group name, the trace name and the coefficients of each channel. I was able to do the post-processing of the data in Matlab. I attach an example of the kind of files I'm handling if it helps, inside a zip.
    Now I would like to implement this post-processing (FFT, etc.) in Labview. I have tried to use a couple of examples such as "hws_low_level_read.vi" or even the HI-HWS Express load utility to check the file, but it seems difficult to read it because of the 2 channels saved inside the same file.
    The error -21508 appears at the "niHWS Get Wfm reference.vi". That refers to:
    Error -21508 occurred at niHWS Get Wfm Reference.vi
    Possible reason(s): NIHWS:  There is no group in the file that matches the provided group name
    And it seems odd to me, as I'm using the same name for group (wfm_group0) and trace(vector0) than I was using in Matlab.
    Anything I'm missing? Any hint on how to read it in any way?
    Thanks you very much in advance for your help
    Best regards
    IñigoA
    Solved!
    Go to Solution.
    Attachments:
    EjempleHWS2channels.zip ‏44 KB

    Dear all,
    I have been struggling with that problem today and I just wanted to post here how I have finally found a way to read the data.
    It is so easy that I'm a bit ashamed, but I think it is worthy to answer in case anyone would need it.
    The "niHWS Get wfm Reference" is asking for a Group Name and for a waveform name. I have used the "niHWS Get Group Name" and the "niHWS Get wfm Name". Both have direct outputs (strings) with the information that "niHWS Get wfm Reference" understands. You can directly link them.
    But actually, in the reading of the data I found that the group name doesn't need to be fulfilled and the waveform name is "0" or "1" in cae you have 2 channels.
    So, you see, it was very easy for my HWS file: put a control and select "0" or "1" for waveform name. The simpler the better, jejeje.
    I hope it helps. And sorry for opening the question I'm now answering myself. I was completely lost yesterday.
    Best regards
    IñigoA

Maybe you are looking for

  • 64-Bit OS' no longer work on GT780DXR

    Hi there, Hopefully someone can help point me toward what might be going on here; basically the other day when turning my laptop on, it made it to the Windows 7 loading screen (with the rotating coloured balls), before suddenly crashing out and BSOD'

  • Looping Background Movie Clip

    Hi i am having trouble with having a looping background movie clip on the bottom layer of my flash project. I have it on the bottom layer in the first frame, above it i have some menus fading in and it seems as though once it gets to this scene, it j

  • Transactional iview for Adobe form in ESS MSS

    Hi, I have a object of printing adobe form in R/3 and ESS both.  I have created the object for R/3.  But now i have to create this object for ESS also.  Kindly suggest technically which is the best way to print the adobe form on ESS. I have tried one

  • Problem while querying a form

    hi, if i query my form with wrong value ie, press F7 give wrong value for EMPNO and press F8. it says Query caused no records to be retrieved. but after that its not coming out of the first row. if i press cancel button, the cursor remains in the fir

  • LMS Ver 4.0.1 unable to set error count options

    I have a recent new install of Cisco Works and all is working fine.  My issue is with a feature that doesn't seem to be present.  When I create a report to ccheck on sys logs the report returns all sys log whether they are repetitive or not.  Is ther