Reading DMA FIFO using Invoke method node

Hi
I am trying to read a DMA FIFO using invoke method node to read the data in the FIFO on RT.
It works fine but the problem is that it consumes a lot of CPU if the timeout is increased. Can
anyone tell why this is happening and if this is the desired behaviour then what other methods i can
use to avert this.
Please help at the earliest
Regards
Amit

Hi
Can anybody help me as it is urgent ,
What i further found out is that is that it is eating up a lot of meory when continuosly polled up in a looop....
Regards
Amit Ahuja

Similar Messages

  • Crash when using Invoke Method: Library:Deploy Library

    I'm trying to set a library of shared variables to deploy when a VI runs. When using the method to deploy a library, Labview will crash with no error log. I am able to use Library.Open to, for example, HiliteInProjectWindow, and Library.GetFileLVVsersion (8.6). But for the life of me I cannot get deploy to work. Any ideas?

    hbcnb,
    I'm not quite sure why that is happening, but I
    can give you a work around for it.  There is a property node that
    returns the mode that LabVIEW is running in (Run-Time, Development,
    Evaluation).  If you output this value to a case structure, you can
    include your deploy code in the run-time version but not in your
    development version so that it will cease to crash.  Place down the
    property node, then select  Application » Kind.  I've included a
    picture of how to wire this up. Let me know if this helps work around
    the problem a bit easier.  
    Sincerely,
    Chris G in AE
    Attachments:
    application_pic.jpg ‏27 KB

  • Pass control references to subVI using Invoke Method

    Hi guys,
    Can I use <Control Value Set invoke method> to pass some control references to a sub VI, then use the <Run VI invoke method> to run the sub VI with the previously passed data?  The control refnums are for some frontpanel controls in the Main VI.
    I was able to pass other data but the refnum didn’t work.
    Thanks

    Hi there, There are a couple examples that use the same method. Check them here:
    - Set Control Values and Trigger UI Events in Another VI        
    - Set Values and Properties of Controls in a SubVI
    - Save and retrieve front panel control values
    Alejandro | Academic Program Engineer | National Instruments

  • When i used invoke methode with read out variants array byte crashd my LV by recal the second repeat?

    If i check it with VBASIC it runs fine, check it to run with Delphi its fine, wot is wrong with LV 6.02

    You may want to contact National Instruments directly. Try: www.ni.com/ask
    Brian

  • Get image invoke method gives blank image when I try to capture waveform graph picture

    Hello
    I am facing problem when try to capture waveform graph picture using invoke method Get image and write JPEG function, some times it gives blank images.I am using these functions inside nested loops.
    ObservationsWith reference to attached VI)
    (1) Sometimes  I found it captures images correctly when i run labview program first time but after that it starts writing blank images.
    (2) Whenever i use flat sequence structure for waveform graph and get image node it always gives blank picture which indicates that execution of waveform graph and Get image should not be sequential.
    (3) Whenever it gives blank image i checked the image data which is not valid data so it indicates problem is with Get image method or labview program flow(may be race condition between waveform graph and Get image method).
           I have attached vi ,please change path name and folder name in which images are being saved.I'm using labview 8.5.1 .
    Attachments:
    image_capture_problem.lvproj ‏6 KB
    image capture problem.JPG ‏149 KB
    0.0_10__3.jpg ‏2 KB

    Hi,
    I have tried sequence structure.But sometimes it also gives blank images. I have attached new vi which is using flat sequence. Run this vi 7-8 times then you will observe blank images. I don't know why?Any help will be greatly appreciated.
    Attachments:
    image_capture_problem.vi ‏69 KB

  • Unable assign a BPM Object field value to a JSP Variable using "invoke"

    Hi,
    I'm unable to retrieve a value returned by a BPM Object Method and use it in JSP. Here is what I'm trying to achieve:
    BPM object named : "myObject" has a method "getRequiredValue" which returns a "String". I want to assign the value returned by "getRequiredValue" to a JSP Variable "myVariable" using invoke method as below:
    <% String myVariable = ""; %>
    <f:invoke var="${myObject}" methodName="getRequiredValue" retAttName="myVariable"/>
    <% out.println ("myVariable: " + myVariable); %>
    When I execute the above code I don't get the value being returned by "getRequiredValue" into "myVariable".
    Any help would be highly appreciated!
    regards,
    MK

    1. Make sure you mark the "Server Side Method" property of the getRequiredValue method to "Yes".
    2. I guess you dont need to specify "<% String myVariable = ""; %>". Try removing it.
    3. Replace "<% out.println ("myVariable: " + myVariable); %>" by <c:out value="${myVariable}"/> just in case!
    4. Lastly, I hope "myObject" is the name of the instance variable in your screenflow, and not the BPM object name.
    Hope this helps
    -Hemant

  • Error -50400 occurred at Invoke Method: FIFO.Read in Host.vi

    Hey there,
    we have sensors on an Engine which are connected to a NI cRIO 9014 board (with a NI9411 6-channel digital input modul) and go from there via network to a host computer.
    cRIO board: the cRIO board collects the data from the engine and stores it in a buffer, this is because the network is to slow for the magnitude of data
    host computer: the host computer reads over the network the buffer on the cRIO board, on the host computer it takes out specific portions of the data to create pressure graphs of the engine
    Error: 
    Error -50400 occurred at Invoke Method: FIFO.Read in Host.vi
    Possible reason(s):
    The transfer did not complete within the timeout period or within the specified number of retries.
    This error occurs in the following scenario:
    - engine is running
    - cRIO is running
    When I press the start button (boolean 3) in the host.VI to start the reading of the data from the board AFTER I pressed the run button of the host VI. 
    The Error would not occur if I pressed the start button (boolean 3) BEFORE I pressed the run button of the host VI.
    We tried to increase the time out, but it still did not work, the error occurs!
    We would be really happy if you could look over it and help us in this case! If you need further informations or if we need to clarify some specific portion, please let us know!
    We included the VI's in the attachement!
    Thanks in advance!
    Solved!
    Go to Solution.
    Attachments:
    Host.vi ‏152 KB
    C_RIO.vi ‏92 KB
    Cyl_Pres.lvproj ‏196 KB

    Chrisse,
    There are a few things wrong in your application, if I may offer some suggestions.
    First, your while loops are not running in parallel.  In fact, they are in while loops with a true constant wired to them. I am not sure if this is by design for debugging, or on accident.  I would put the Polling(read pulling zero elements) outside your main while loop.
    Your second nested while loop (the one polling the # of elements and then pulling them out) is going to run just once, and may pull only a few samples.  I don't think that is what you are looking for here, and there are a couple ways we can go here.  You could continuously poll until you have 0 elements available for x amount of time, then you know you have no more samples available and you can process all the data OR you can put all of your data processing as part of that loop and just always write to file immediately as x samples are pulled.
    Also, your main loop's stop condition is (i <= 3) Therefore, it will run once and then stop.  Maybe you mean >=3?
    Also, you have 'append to file' disabled on your write to spreadsheet, so everytime you write you are overwriting old data.  If you want to continuously write, you will be losing data.  This can be cured by either setting this to true(requiring a new file name or programatically deleting the old spreadsheet every time you run the vi) OR you can collect all of your data in a shift register, and only write to file once you have all your data available.
    The error you are seeing is because you try to close your FPGA reference twice.  You only need to close it once.
    After seeing your overall picture, I think this can all be cured by simply hardwiring your Read to get your 1440X4 elements, but as we have seen, this does not work.  Something is happening in your system....this is what I want you to do...run just the following code...and let me know how many elements remaining it gives you...Once the number has settled(I hope it does and your engine doesn't keep running), hit stop, and all the values will be put on a graph for you.  My broken wires are because I do not have the FPGA VI.
    Message Edited by Robbob on 04-21-2009 01:48 PM
    Rob K
    Measurements Mechanical Engineer (C-Series, USB X-Series)
    National Instruments
    CompactRIO Developers Guide
    CompactRIO Out of the Box Video
    Attachments:
    numelements.jpg ‏39 KB

  • How can i decide the depth of all3 DMA fifo's are used as target to host at RT contoller side(host)?

    Hello,
          I am using all DMA fifos,I want to acquire data from 3 AI modules upto 50 khz frequency.Sampling rate can be varied according to application.
       please suggest me how should i allocate memory of my RT controller for those DMA fifos?I am also facing one problem, I am using 3 time deterministic loop with different different priorities,each time loop has one fifo where data is reading with polling method(first fifo.read=0 then againg fifo.read=remaining elements).and each time loop has been interact to host vi with global varibales.those global variables data update from normal time loop.can anybody suggest that this procedure is right or not.if my problem is not much clear i will again explaing my query with snapshot of my application.
    Pratima
    *****************Certified LabView Associate Developer****************************

    You wouldnt need to allocate memory separately on your RT Controller for the FIFOs. You need to create a FIFO under your FPGA target and use the FPGA interface VIs in your RT VI to access the DMA FIFO. You would need to use the FPGA interface invoke method VI to access your DMA FIFO.
    As for the other questions, I would recommend you to create a separate post the RT section of LabVIEW so that you can get a faster response to your questions.
    I hope this helps!
    Mehak D.

  • Is it better to use Invoke nodes or property nodes to set/get control values?

    I have a series of VI's that run in parallel, each to manage different functions- pumping, sensing, a fluid flow model, an experiment generator/runner.
    These need to exchange data, which I am currently doing using invoke nodes (that are all in subVIs), using methods "Set control value" and "Get control value". I find that every now and then (perhaps 1% of the time) the data isn't exchanged correctly and therefore the system doesn't work. I can imagine how "set" could go wrong if they happen simultaneously, and can devise ways of preventing this. However, the "Get" method suffers from the same problem. This is a major problem, because I want to leave it running for several hours.
    I could in
    principle achieve the same thing using property nodes and find myself wondering if this might be more reliable. But I don't want to change over only to find it makes no difference!
    Can anyone advise?

    You can use some kind of syncronization such as queues, occurances, or notifiers but I think the easiest way would be to create and action engine. This was only one action can execute at a time avoiding a "race condition". Possibly a write action and a read action might help. You also can add queues or notifiers into this concept. hope this helps.
    BJD1613
    Lead Test Tools Development Engineer
    Philips Respironics
    Certified LV Architect / Instructor

  • Using invoke nodes to change a control on a server vi

    I am trying to pass a parameter to a vi running in parallel with my main vi. I am using invoke nodes to do this without any problems. In server.vi I want to respond to a change in the control using an event structure. I have found that when passing the value to the vi using the invoke node from client.vi the event structure does not respond to the change in value. Is this correct behaviour? In the attachment run client and server, any change in the client panel is reflected in server without a response from the event structure. Running server by itself a change in the cluster causes the event structure to respond as expected. Thanks in advance for any help on this.
    Attachments:
    Test Invoke Node.llb ‏47 KB

    The set control value method is the same as using a local variable or the value property - it doesn't fire the event. To fire the event, you need to use the Value(signaling) property. To do this, you need to get a reference to the control. You can do this by taking the Front Panel property of the server VI and wiring that reference into another property node. Then, you get an array of references to all the controls on the FP. You will need to find your control and wire its reference into the signaling property and then the event will fire. There are, of course, other ways of doing this - this one is fairly complicated, since you have to find the reference.
    Try to take over the world!

  • Reading colour image using raster object and getsample() method

    Hello all,
    I am trying to read a grey image using this code below and it perfectly works:
    File filename = new File("myimage.jpg");
    BufferedImage inputimage = ImageIO.read(filename);
    Raster input = inputimage.getRaster();
    double pixelvalue = input.getSample(xx, yy, 0) ; // to read pixel colour.
    Now:
    what modifications should i do to read a colour image using getsample() method.
    any help, by example if y would.
    Thanks

    The code below
    double pixelvalue = input.getSample(xx, yy, 0) ; // to read pixel colour.actually doesn't obtain the pixel color. It reads a band of the specified pixel. If you are reading a tripple band image (24-bit colored image RGB ) then you have to invoke this method three times for band 0, 1 and 2. The arrangment of them depends on the BufferedImage type.
    In reply of your question, you can use getSamples method, refer to the java API documentation of the BufferedImage class for more info.
    you can also check methods getRGB and setRGB, they used to get/set the entire pixel in range of 0x00000000 to 0x00FFFFFF ( 0x00RRGGBB of image type TYPE_INT_RGB )
    Regards,
    Mohammed M Saleem

  • Problem in using the MBean.invoke() method

    I am using the method call:
    MBeanServer.invoke() which calls an appropriate method on the Remote MBean which is a synchronous call. However if the remote method takes longer than 5 seconds to execute, I get the following error
    javax.management.ReflectionException
         at org.jingle.jmxremote.server.RemoteDynamicMBean.invoke(RemoteDynamicMBean.java:317)
         at com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke(Unknown Source)
         at com.sun.jmx.mbeanserver.MetaDataImpl.invoke(Unknown Source)
         at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(Unknown Source)
         at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at com.sun.jmx.mbeanserver.StandardMetaDataImpl.invoke(Unknown Source)
         at com.sun.jmx.mbeanserver.MetaDataImpl.invoke(Unknown Source)
         at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(Unknown Source)
         at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(Unknown Source)
         at com.sun.jmx.remote.ws.server.actions.JMXInvokeManagedResourceOperationAP.processAction(JMXInvokeManagedResourceOperationAP.java:80)
         at javax.management.remote.ws.JMXManagementProcessor.processManagement(JMXManagementProcessor.java:268)
         at javax.management.remote.ws.JMXManagementProcessor.processManagement(JMXManagementProcessor.java:203)
         at javax.management.remote.ws.JMXServiceEndpoint.invoke(JMXServiceEndpoint.java:127)
         at javax.management.remote.ws.JMXServiceEndpoint.invoke(JMXServiceEndpoint.java:55)
         at com.sun.xml.ws.server.provider.ProviderPeptTie._invoke(ProviderPeptTie.java:63)
         at com.sun.xml.ws.protocol.soap.server.SOAPMessageDispatcher.invokeEndpoint(SOAPMessageDispatcher.java:278)
         at com.sun.xml.ws.protocol.soap.server.SOAPMessageDispatcher$SoapInvoker.invoke(SOAPMessageDispatcher.java:586)
         at com.sun.xml.ws.protocol.soap.server.SOAPMessageDispatcher.receive(SOAPMessageDispatcher.java:141)
         at com.sun.xml.ws.server.Tie.handle(Tie.java:88)
         at com.sun.xml.ws.transport.http.server.WSHttpHandler.process(WSHttpHandler.java:171)
         at com.sun.xml.ws.transport.http.server.WSHttpHandler.handleExchange(WSHttpHandler.java:119)
         at com.sun.xml.ws.transport.http.server.WSHttpHandler.handle(WSHttpHandler.java:95)
         at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:65)
         at sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:56)
         at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:68)
         at sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:513)
         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
         at java.lang.Thread.run(Unknown Source)
    Caused by: java.lang.InterruptedException
         at org.jingle.jmxremote.server.ResultContainer.hasException(ResultContainer.java:89)
         at org.jingle.jmxremote.server.RemoteDynamicMBean.invoke(RemoteDynamicMBean.java:306)
         ... 35 more
    Could you please help me in resolving this issue:
    Is this 5 second time out configurable?
    Is there some way I can by pass this problem?

    jingle is an implementation of the jmx-remote interface.
    The jingle implementation allows you to create an proxy of the MBeanServer on the MBean side. So the MBeanServer methods can be called using this proxy object rather than the the MBeanServerConnection object.
    The reason i am using this proxy object is because i want to register the mbean to the remote mbean server.

  • DMA FIFO number of elements to read mismatch in FPGA and RT

    Hi all
    I am using myRIO , LV14 to run my application.
    Application: I have to continuously acquire data via FPGA and process in RT host once every 2000 samples are collected. I use DMA FIFO (size 8191) to acquire data, use timeout property at the FPGA to eliminate buffer overflow. I had followed cRIOdevguide to implement this part. A snippet of what I have implemented is attached. Whole code runs in SCTL at 50MHz.
    Issue: Twice or thrice I encountered with this strange behaviour, that the FPGA FIFO is giving continous timeout and the RT is unable to read the FIFO. The number of elements to write propery in FPGA VI gives 0 showing that FIFO is full and no more can be written, but at the RT, elements remaining is giving 0, hence it is reading 0 (no) elements.
    Workaround: I put a case where I will write to FIFO (as per the code) and if the number of elements to write is nonzero. It seems to work fine, as of now.
    What confuses me is that my FPGA VI says that FIFO is full (FIFO number of elements to write = 0) and gives a timeout error, but RT VI says that number of elements remaining in FIFO is 0 and hence no data is read. Any idea why it is so? My FPGA and RT VIs continues to run, but with no data being acquired or read.
    I saw this behaviour within minutes after running the code. Any idea as to why it is happening? I am trying to reproduce the behaviour and will update if i again encounter with it. Sorry, I cannot post my code here, but i guess the code snippets explain it to some extend.
    Thanks
    Arya
    Edit: Even with the mentioned workaround, the problem persists, now that the FPGA does not write to FIFO at all. And the RT VI is not able to read any elements as it sees 0 elements in the FIFO. The FIFO continues to be in timeout state. So i guess the problem is with the RT side.
    Solved!
    Go to Solution.
    Attachments:
    cRIOdevguide_FIFOreadwrite.PNG ‏107 KB
    FPGA_FIFO_write.PNG ‏41 KB
    RT_FIFO_read.PNG ‏39 KB

    Hi Nathan
    Yes, I could have replaced it with an OR. Regarding my application, I want to acquire data in chunks of 2000 samples. If at all I receive a timeout error, I want to discard that chunk of 2k samples and start all over again. So my logic was like this, I acquire the data, if there is a timeout, the reset is triggered, and the system waits to comeback from reset, and it starts acquiring again. Btw, I tried removing the multiple FIFO reads in RT, but the error is still the same.
    I have a small doubt as well, if I do not want to obtain stale data at alI, I would just check if timeout occurs, empty my FIFO and start acquiring data again (no reset button), isnt it? This was my original logic, but I saw that after a while, it stopped acquiring data and timeout led was on. I was thinking that FPGA and RT was simultaneously trying to acquire FIFO which might cause timeout. Somehow, I now feel that, as you have pointed out, my code is overly complicated. I will modify it and update the results. Thank you!
    Arya

  • How to use mailForm methode (javascript) in adobe reader 9.3?

    Hi! I want to know if it exist a way to use the mailForm method (this is javascript) in adobe reader 9.3?
    Or, are there any equivalent method? I want to send by email a FDF with my PDF.
    When I run my javascript, I got the following error: "NotAllowedError: Security settings prevent access to this property or method.
    Doc.mailForm:55:Field FI_ENVOYER:Mouse Up ".
    (Here, FI_ENVOYER is the name of my button).
    Tanks for the help!

    My document have this rights:
    Protection method:                              None
    May be open in:                                  Every version of Acrobat
    Print:                                                 Allowed
    Assemble the document:                    Unauthorized
    Copy of content:                                 Allowed
    Copy of content for accessibility:         Allowed
    Extract pages:                                   Allowed
    Comments:                                       Allowed
    Filing form fields:                               Allowed
    Affixing signature:                              Allowed
    Creating pages models:                     Unauthorized
    Is "Creating pages models" or "Assemble the document" can prevent the use of the mailForm method?
    I know that the mailForm requires privileges, but how can I allow these two rights who are unhauthorized?
    Is there something else I can do to be able to use the method "mailForm" without having the "NotAllowedError"?
    Tanks

  • How can i call a DLL file using invoke node from labview?

    I cant call a DDL function using call library function.so plz tell me how to use invoke node and call DLL using invoke node
    Please Mark the solution as accepted if your problem is solved and donate kudoes

    Please stay in the same thread.
    - Cheers, Ed

Maybe you are looking for

  • Need to sinc my iphone 4 never done it before and when I plug it in to the laptop it tries to sinc to my dad's old long gone iphone?

    I need to sinc my iphone 4 that I bought in the summer of 2011. I've never done it before and when I plug it in to the laptop it tries to sinc to my dad's old long gone iphone? This laptop was used by him when he had a iphone a year or so ago but he

  • Display issues on iPad

    A coworker and I have been using iBooks Author to make nice sales aids for our reps for a couple years.  These iBooks are very heavy with graphics/photos, widgets and tables.  One frustration we've had is when viewing the output on the iPad (an old i

  • Detect substring in string

    Hi all, I am new to ABAP and hoping you guys can let me know if there is a better way to check for a substring in a string. I need to detect a substring (or should call it a word) 'CNF' in a string, and it need to be a word itself and not part of ano

  • Mac version of CS5

    What is latest version of PS CS5 ext for Mac CS 10.7.3?

  • Automatically starting mpdscribble when mpd is started

    Hi there! I want to have some program (mpdscribble) automatically started when I run another (mpd), but I don't want to start either of them as a service upon booting. Is there a way to go about this? I've googled my ass of but to no avail. Thanks!