Buffered high-speed capture with multiple axes

Has anyone succeeded in using buffered high-speed capture (on 7350 boards) with multiple axes?
The capture works really well for me on a single axis, but when I try to use it on 2 axes simultaneously it behaves very strangely.  There seems to be some kind of unwanted interaction between the two buffers which means data points are lost and they often stop updating altogether.
A very similar question was posted here over a year ago (http://forums.ni.com/ni/board/message?board.id=240&thread.id=4087), which includes a more detailed explanation and an example VI.  Can anyone help?  I'm using LabVIEW 8.5 RT with NI-Motion 7.6 and a 7358 board.
Thank you,
Ian

Hi Ian
I have been asked working with kostas on this problem for you and just wanted to give you an update as I know its been a while and is an important issue for you. I have been chasing up our specialists in the field and resently had responses of  the kind:
"Hi Graham
The issue was found out to be a bug in our motion driver. The issue is being examined by motion R&D right now. I do not know a time frame on when this will be fixed as it is proving to be a tricky problem. I am copying Stuart and Lorne on this since they have been working on it as well.
Thanks,"
Be assured that I am chasing it as closely as I can. From your end what is the situation, do you have a work arround that will suffice or are you still waiting on this.
Thanks for your understanding and I look forward to hearing from you with your current situation.
best regards
Graham Green
Technical Marketing Engineer
National instruments UK & Ireland

Similar Messages

  • Buffered high speed capture

    Hello,
    I am looking for any example of an on-board buffered High Speed (HS) capture. The only example I've found so far (see http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=B45EACE3D77D56A4E034080020E74861&p_node=DZ52480&p_source=External) deals with single HS capture mode and cannot work with the high frequency capture of about 1000 Hz that I am interested in. Can anybody help me?
    Thanks.

    In this case NI can offer you two solutions:
    1. NI offers hardware upgrades. You could contact your local NI branch and ask them to exchange your 7344 with a 7354 (or a 7352 if you don't need more than two axes). This would be the best and easiest solution but maybe not the cheapest. At least you could ask them to send you a quote. Please take into account that the connector of the 7354 is compatible to the connector of the 7344 so you wouldn't have to buy additional cables or connector blocks.
    2. You could add a PCI-6601 counter board to your setup. The 6601 can be used to measure positions by either connecting the encoder of your motor to the inputs of the 6601 (in parallel to the 7344) or if you don't use an encoder (open loop stepper) then you could measure the step/dir signal of the 7344 with the 6601. You can connect your trigger signal to the 6601 for a buffered position measurement. The 6601 supports DMA so a position measurement rate of 1 kHz is absolutely no problem.
    The disadvantage of this solution is obviously the additional cabling and a higher complexity in programming.
    Regards,
    Jochenhttp://forums.ni.com/ni/board/post?board.id=240&message.reply_to_id=2110#
    Preview Post

  • High Speed Streaming with Multiple FPGA FIFOs and TDMS Advanced Asynchronous (Data Ref)

    I am using an FPGA with adapter card (7962 with 5751) for data acquisition and signal processing. I have adapted the FlexRio example "High Throughput Streaming," which works very well for a transferring data from the FPGA via a single FIFO. This example uses the TDMS Advanced Asynchronous Write (Data Ref). The "High Throughput Streaming" example is similar to "Streaming External Data to a TDMS File (Windows)" but includes more code to prep the FIFO buffer size and TDMS size.
    My question is how can I adapt this code to incorporate multiple FIFOs that write data to different channels in the TDMS file? Can I use multiple instances of  TDMS Advanced Asynchronous Write (Data Ref) in a single VI for each FIFO Acquire Read Region? If so, how do I insure that the correct data is written to the correct channel in the TDMS file?

    Thank you DeppSu for your explanation, I will look into that.
    But first, I want to be sure that the FPGA and the Hot general designs are correct, which for the moment I am not sure. So I have included my code.
    I tried the Host vi several times, and it seems that it works sometimes and sometimes not, like there are some communication problems between the fpga and the host on the "read acquire region" method which is not executed. I managed to make it work randomly before, but not now. Maybe it is because of the reset that I added?
    If someone could check my code and help me, I would really appreciate it since nobody in my workplace has the expertise to do so :-) If you see some obvious mistake, please share with me, I also added some comment boxes in the code with questions.
    Delphine
    Attachments:
    thoughput.zip ‏1261 KB

  • Onboard Wait On High Speed Capture

    I would like for an onboard program to wait for a high speed capture signal from a trigger input. Unfortunately, I have not had success with the flex_wait_on_condition function; it has always timed out before detecting the event. However, calls to the function flex_read_hs_cap_status identify that the high speed capture line is indeed toggling faster than the 3 second timeout. I use the following sequence of functions to configure the high speed capture:
    flex_configure_hs_capture(m_BoardID, NIMC_AXIS2, NIMC_HS_LOW_TO_HIGH_EDGE, 0);
    flex_begin_store(m_BoardID, ProgramNumber);
    flex_enable_hs_capture(m_BoardID, NIMC_AXIS2, NIMC_TRUE);
    flex_wait_on_condition(m_BoardID, NIMC_AXIS2, NIMC_WAIT, NIMC_CONDITION_HIGH_SPEED_CAPTURE, 0, 0,
    NIMC_MATCH_ANY, 30, 0);
    flex_end_store(m_BoardID, ProgramNumber);
    Axis 2 is configured as a open loop stepper axis with encoder resource 2 mapped to it.
    Any thoughts as to why this wouldn't work?
    Thanks!

    Thanks for the suggestion. It seems to work fairly well, although there is some delay between the trigger event and the execution of the critical section of code.
    Are you aware of a method to speed up execution of an on-board program? The critical section of code in the attached program fragment takes about 4ms to execute. With the added delay of the polled high speed capture line, I am limited to a ~150 Hz loop. I would like to increase the execution time by about twice.
    Also, a command from the host computer seems to preempt the on-board program, causing it to take up to ten times as long to complete. Is there a way to set the priority of the on-board program task above host communication?
    Thanks for you assistance,
    Mike
    flex_insert_program_label(m_BoardID, LABEL_LOOP_START); // main program loop
    flex_read_hs_cap_status(m_BoardID, NIMC_AXIS3, DATA_HS_CAP_STATUS); // check if high speed capture triggered
    flex_and_vars(m_BoardID, DATA_HS_CAP_STATUS, DATA_HS_CAP_STATUS_MASK, DATA_HS_CAP_STATUS_MASKED); // AND high speed capture with trigger 3 mask
    flex_jump_label_on_condition(m_BoardID, NIMC_AXIS3, NIMC_CONDITION_EQUAL, NIMC_FALSE, NIMC_FALSE, NIMC_MATCH_ANY, LABEL_LOOP_START); // if trigger 3 not triggered, jump to main program loop
    // Critical Section Code >>>
    flex_set_breakpoint_momo(m_BoardID, NIMC_AXIS3, 0x08, 0x00, 0xFF); // set digital output high
    flex_enable_hs_capture(m_BoardID, NIMC_AXIS3, NIMC_TRUE); // re-enable the high-speed capture
    flex_read_adc(m_BoardID, NIMC_ADC1, DATA_ANALOG_INPUT_1); // read the analog input
    flex_write_buffer(m_BoardID, ANALOG_INPUT_BUFFER, 1, 0, &UselessLong, DATA_WRITE_TO_BUFFER_NUM_PTS); // write the analog input to the buffer
    flex_read_buffer(m_BoardID, VELOCITY_PROFILE_BUFFER, 1, DATA_VELOCITY_CMD); // read the next velocity profile point
    flex_load_velocity(m_BoardID, NIMC_AXIS3, UselessLong, DATA_VELOCITY_CMD); // set the axis velocity
    flex_start(m_BoardID, NIMC_AXIS3, 0); // update the velocity by calling start
    flex_set_breakpoint_momo(m_BoardID, NIMC_AXIS3, 0x00, 0x08, 0xFF); // set digital output low
    // <<< Critical Section Code
    flex_jump_label_on_condition(m_BoardID, NIMC_AXIS3, NIMC_CONDITION_TRUE, NIMC_FALSE, NIMC_FALSE, NIMC_MATCH_ANY, LABEL_LOOP_START); // jump to main program loop
    flex_end_store(m_BoardID, ProgramNumber); // stop program store

  • Route scan clock to high speed capture

    Hi, I want to have a continuous aquisition and sample into an array two encoders and my e series channel about 100 scans per sec. I will be routing the board clock over RTSI, assumed to bt the gerneral purpose clock, to do a high speed capture from two encoders. Absolute positions and AI must be syncronized. Can I use the internal clock from the e series, and what is it called? How do I get a periodic sample from AI to be stored with each high speed capture?

    Matt,
    To synchronize your analog input and encoder measurements, you will need to route your analog input scan clock over RTSI. In LabVIEW, you will use Route Signal.vi with AI scan start as the signal source input and your chosen RTSI line as the signal name input. This RTSI line can then be used to latch your encoder readings into a buffer. Thus, the data in your analog input and encoder buffers will be synchronized.
    Good luck with your application.
    Spencer S.

  • Mapping the High Speed Capture signal to RTSI

    Hello,
    Can i Mapp the "High Speed Capture" signal to RTSI ?
    When i'm using the motion RTSI example and mae some changes: 
    i'm setting the source to "High speed capture"  and the destination to RTSI_0 i 'm getting an error that its possible!
    i want to use this input to trigger an action on other pci.
    I'm using pci-7344 with umi - 7774 and pcie-1430
    Thanks
    Mor
    Message Edited by MotiM on 08-01-2009 08:47 AM

    Dear Jochen,
    Thank you for your reply.
    I try to map the High Speed capture to RTSI , but the HSC doesnt work.
    When i remove the RTSI mapping from my diagram, the HSC work and i can capture the encoder position.
    I'm using the UM7774, and the HSC is wired to the global connectors (TRIGGER/BREAKPOINT connector)
    I also read all the relevant documentation about my hardware and i notice that there is a comment about mapping the motion rtsi :
    (from Select Signal vi Help):  Note  You must route signals from the RTSI lines before you enable high-speed capture ,
    so i also consider that, it still doesnt work....
    I really appreciate if you can take a look about the 2 versions of vi i attached here.
    They both need to do the same.
    Each vi contains 2 parallel diagrams, one diagram for the single axis move, the move is to target position X,
    the second diagram is for the vision, there is "trigger each line" from rtsi line (the motion diagram includes maping the encoder phase A to the rtsi for this purpose)
    and i want to use the High speed capture to trigger the start of imaq also.
    The example :
     HSC in motion activate the start of imaq in second loop.vi 
    is a working example that runs good and capture the image.
    but its "dirty" programming, i dont think its should work like this.
    its actualy a implementation of "busy wait" loop.... ( i dont like it, but work...)
    The example :  
    HSC triger directly the start of imaq.vi
    is hoe i think its should be ( i know that i need to trigger the HSC whitin the time of the timeout of waiting to the start trigger of imaq to accure, that is why i put a big number there... )
    BUT, this vi doesnt work, the High speed capture doesnt happend at all...
    Can you take a look on these vi and let me know what i'm doing wrong here.
    I really appriciate your help.
    Regards
    Mor
    Message Edited by M0Reng on 08-03-2009 02:14 PM
    Attachments:
    HSC in motion activate the start of imaq in second loop.vi ‏72 KB
    HSC triger directly the start of imaq.vi ‏71 KB

  • High speed sampling with analog trigger

    I am a new user of DAQ card and I need to sample the analog signal with a high speed.
    I will use a sinusoidal-like wave to trigger the sampling and set a voltage around the peak of trigger wave with rising slope. When the voltage arrived, I only sample one point from CH0 or CH1. The frequency of the trigger wave is about 5MHz and I heard the LabView only works at KHz level. Is it possible to use LABView to realize my application?
    If it's possible, would you mind telling me how to realize? Or if it's not possible, would you mind telling me what to do? My DAQ card is PXI-5112.
    Thank you very much!!!

    Hello amo71993,
    I guess in this case the solution is creating the little app programatically, save it as a VI and the use it as a function (subVI). Nevertheless I will be researching to see if there is another option and I will post it here.
    Regards.
     

  • Excise invoice capture with multiple batches

    Hi
    We have created a Purchase order for Material X and carried out the transfer posting(MB1B)and selected two different batched of stocks, and created excise invoice using
    t code J1IS.
    When I am capturing the excise invoice in J1IEX. with ref to Purchase order, system is showing only one line item.
    It is not capturing multiple batches.this. we are doing it before goods receipts.
    Regards
    Suresh

    Hi,
    Point1)
    Ur material directly goes to the site for site work right ?
    My question is why are u not taking the credit and dont want to update the part1 and part2.....???
    ur are the consignee(purchaser) for the same so u can take credit...!!!
    again one thing if ur not taking the credit then why r u bother about the excise settelement...Do the vendor invoice settelement. and inventorised the total excise.......
    Point 2)U need to maitain the excise master i.e J1ID...( it is as important as maitaining material master for procurement).If u want excise related transaction to be happened.
    Point 3) if ur not interested in maitaining the excise master then use ME51 report for analysis for excise settelement.
    regards,
    sujit borse

  • Column Chart with Multiple axes

    Hi folks
    I am using flex 2 charts for displaying data. I want to show my data using column chart with secondary axis. However columns for multiple series are coming one over another. here is the code I have attached:-
    But I want to put columns side by side. Any thoughts will be appreciated.
    Warm Regards
    Rush-me

    Any thoughts?
    Warm Regards
    Rush-me

  • Property node for a chart with multiple axes

    I have created a chart with two y axes, one for each of two data sets
    that I am plotting. From the front panel, I can view the properties of
    the chart and adjust the scales of the two axes separately under the
    Scales tab. I need to, though, adjust the maximum and minimum of these
    axes programmatically. How can I create a property node that refers to
    one of the two y axes, and how can I specify which axis the node is
    referring to? If create a generic YScale:Minimum property node, I get
    an error.
    Thanks for the help,
    TJR

    "...YScale:Minimum property node, I get an error."
    That is curious.
    You can specify the active scale for which the property will be applied.
    The attached demo (in LV 7.1) illustrates how to do this by fist setting the index of the active scale and then updating its property (property nodes execute from top to bottom).
    What error do you get?
    Ben
    Message Edited by Ben on 11-30-2005 08:07 PM
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction
    Attachments:
    Set Active Scale.vi ‏27 KB
    Set Active Scale.JPG ‏18 KB

  • Buffer high speed capture

    when i use the Vi shown in figure uploaded ,the captured positions can read from the buffer either the the trigger is input or not.Is there anthing else to configure ? 

    This is the Final Cut Express forum, and no there aren't any tape deck that will do that.

  • Continuous, triggered, high-speed motion capture

    Hello,
    I'm attempting to perform a continuous triggered high speed motion capture independent of the motion, and it's not clear that this is possible. Before I spend a few hours on a wild goose chase, I thought I'd ask around.
    I have a digital pulse train coming in at about 100 Hz and I'd like to measure the position of my motion system in all 3 axes at each pulse. Having acquired the data, it should then get dumped to a file. This should happend continuously until the user exits the program. The continuous part of this seems unnecessarily complicated, involving on-board programming, if my reading of examples such as onboard-hsi-gpbuffer.vi and continuous_hsc.vi is correct. However, if that's the worst of it, I'll survive.
    Meanwhile, the system is undergoing random motion, including starting and stopping of the axes. This is the part that has me particularly concerned. All of the examples that I have seen, both bundled and otherwise, seem to include a single move as part of the program. Since my system will be undergoing multiple moves controlled by the user, I'm concerned that these moves (or the end of the moves) will cancel the capture operations.
    Does anyone have any insight into this sort of setup?
    Thanks,
    Jason

    This seems to do the trick. It's based on the "Onboard Program - Continuous High Speed Capture into General Purpose Buffer" which can be found in the online examples. It implements an on-board program which fills a general purpose buffer. Most importantly, it runs continuously and independent of the motion or stops of the various axes. Hope someone else finds it useful.
    Still curious if this is really the easiest way to accomplish this.
    Jason
    Attachments:
    ContHSCapture.llb ‏160 KB

  • LabVIEW 8.5 high-speed camera

    Hi,
    I'd like to take many
    high-speed images with a camera, and save them to a disk, or my computer's hard drive. I congfigure the camera (it is a Pulnix TM-6740cl camera) with the Measurement and Automation Explorer (MAX.) I take the pictures with LabVIEW. I've found an example program in LabVIEW that is close to what I want; it was written by two members of this forum, N_Holmes and reut. The only differences between that program, and
    the program that I'd like to run is that I need to be able to change
    the shutter speed of the camera (although I believe that I can do this
    with MAX), I'd like to be able to change the target
    directory (for some reason, if I change the directory with the reut
    program, the camera only takes 1 "frame" and stops), and I'd like to be
    able to save a file for each frame taken by the camera (I can only get
    the reut program to save 1 file.) I have LabVIEW version 8.5. If you
    could help me out in any way, then that would be greatly appreciated. Thanks!
    Attachments:
    grab images and Save to FileReut-11.vi ‏67 KB

    Hi Bolin,
    I'm using an NI PCI 1426 with NI-IMAQ, 18MB. Thanks for your previous help. I've actually worked on the program, and I got the camera to take multiple pictures. I also incorporated a part in the program that decodes the raw bayer image that this camera outputs.
    I do have some other questions, though. First of all, I'm not entirely sure what you mean by "trigger." I use the computer to take the pictures; MAX configures the camera, and LabVIEW sends the signals to the camera to take the pictures, and then saves them on the computer. Also, I know this is probably a bad question, but I'm not 100% sure where in MAX I can look to find out what framerate I'm acquiring at. I'd like to acquire pictures at the camera's maximum framerate, which I believe is somewhere over 1000fps. I tried many different methods in order to capture at the maximum framerate, and the best option seemed to be at the settings: manual shutter, shutter setting 0, 4X4 binning. However, my pictures were of extremely poor quality, and they were very dark.
    Also, where can I go in MAX to change the shutter speed? I've tried changing the shutter control setting and the shutter setting number; I just want to verify that this is correct.
    Thanks again for your help! Once I can figure out how to make these pictures take at maximum speed, and at the best quality, then I can finally start on my project!

  • Multiple axes chart - baseline issue

    Hi all,
    I'm currently working on charts (column, bar, line, ..) with
    multiple axes (each for one series).
    If negative amount values are shown in a chart, the baselines
    (for zero values) appears
    on different coordinates/levels.
    As an example see the code listed below:
    <?xml version="1.0"?>
    <mx:Application xmlns:mx="
    http://www.adobe.com/2006/mxml">
    <mx:Script>
    <![CDATA[
    import mx.collections.ArrayCollection;
    [Bindable]
    public var expenses:ArrayCollection = new ArrayCollection([
    {Month:"Jan", Profit:2000, Expenses:15},
    {Month:"Feb", Profit:1000, Expenses:20},
    {Month:"Mar", Profit:1500, Expenses:50},
    {Month:"Apr", Profit:100, Expenses:-10}
    ]]>
    </mx:Script>
    <mx:Panel title="Column Chart">
    <mx:ColumnChart id="myChart" dataProvider="{expenses}"
    showDataTips="true">
    <mx:horizontalAxis>
    <mx:CategoryAxis dataProvider="{expenses}"
    categoryField="Month"/>
    </mx:horizontalAxis>
    <mx:series>
    <mx:ColumnSeries xField="Month" yField="Profit"
    displayName="Profit">
    <mx:verticalAxis>
    <mx:LinearAxis id="v1"/>
    </mx:verticalAxis>
    </mx:ColumnSeries>
    <mx:ColumnSeries xField="Month" yField="Expenses"
    displayName="Expenses">
    <mx:verticalAxis>
    <mx:LinearAxis id="v2"/>
    </mx:verticalAxis>
    </mx:ColumnSeries>
    </mx:series>
    <mx:verticalAxisRenderers>
    <mx:AxisRenderer placement="left" axis="{v1}"/>
    <mx:AxisRenderer placement="right" axis="{v2}"/>
    </mx:verticalAxisRenderers>
    </mx:ColumnChart>
    <mx:Legend dataProvider="{myChart}"/>
    </mx:Panel>
    </mx:Application>
    I'm using Flex Builder 3.0.2 /Flex SDK 3.2.
    Is this is a bug in flex?
    Am i missing something in the mxml/as, or is there a solution
    or workaround?
    Any hints are highly appreciated.
    Regards,
    Matthias

    The series both work fine on their own, of course, but when
    you mix in a series with a negative value, it causes the "floating
    columns" because the zero-points on the axes don't line up with
    each other.
    My suspicion is that this is expected behavior. This would
    work with other column chart types (like stacked), as long as you
    set allowNegativeForStacked to true (there's an example here:
    http://livedocs.adobe.com/flex/3/html/help.html?content=charts_displayingdata_11.html).
    But since you want clustered columns, it might be a problem.
    If you think it is a bug, you can file one here:
    http://bugs.adobe.com/jira
    hth,
    matt horn
    flex docs

  • Simple Position Capture with NI 7344 without RTSI

    Hello,
    I am very new to LabView, so please forgive my ignorance.
    I have some LabView software that control a single axis servo motor with the NI 7344 controller card.
    I have wired in the Sync Input and Sync Output of my camera to the Breakpoint4 and Trigger4 connections on the NI7344 interface cable.
    I have been trying to use the measurement and automation explorer to generate a breakpoint to test if my wiring is all OK but can find anywhere to specify which breakpoint I want signal. Likewise I have configured the camera to signal a trigger when it is exposing but also cant find where to test this.
    I have been trying to use the 1D Interactive > Advanced panel to enable a modulo breakpoint every 100 counts and enable the trigger capture but this doesnt seem to be doing anything.
    Any assistance will be greatly appreciated.
    Thanks,
    Paul

    I have just found the "High Speed Capture (no RSTI).vi"
    Probably a good place to start....
    Also have to rewire onto the correct pins for the axis I want to capture I think. *embarrased*

Maybe you are looking for

  • JEditorPane and HTML

    I have this html file on my C drive and I want to display it in a JEditorPane. THe problem is that I always get this malformed URL exception. I've done this before, but right now I can't seem to figure out whats happening. Any help as to the syntax a

  • How to upgrade from HDD to SSD

    Hi All, I am thinking of upgrading my HDD to a SSD, but I  dont know how exactly to transfer OS, settings, my own files etc. onto new SSD? Can someone please brake the whole process into simple step-by-step guide? Thanks in advance, Max

  • Do the fonts in Photoshop CS4 have any restrictions for commercial use?

    I am a  designer and I wanted to know if there were any restrictions in the Photoshop CS4 Extended version concerning font usage?  I have read all the terms but I got confused after awhile.  I wanted to make sure there are no restricted usage if I us

  • Change of call manager, if I change a call manager I need to bought the migration license?

    hello; I client want to change the box of the call manager, my question it's I need to bought the migration license to?

  • Phantom assembly confirmation

    if I have an Product, and in its BOM there is a phantom assembly item which has its own routing. Question is, can i confirm also the operations for that phantom assembly? How is confirmation done, when there is only one production order (which is for