E-series counter

Hi, evry!
The task is to measure time interval (around 10 ms) between rising edges of two different digital lines.
How can this be done using 6052E card?
Thanks in advance!
Solved!
Go to Solution.
Attachments:
Interval.png ‏7 KB

Hi JungleBoy,
Please take a look at this example from the Example Finder: Meas Two Edge Separation. You can use the Gate and Source of a single counter to measure the time between a rising (or falling) edge of a signal with respect to the falling (or rising) edge of another one. This example can be found in Help » Find Examples » Hardware Input and Output » DAQmx » Counter measurements » Two-Signal Edge-Separation.
Regards,
Daniel REDS
RF Systems Engineer
Help us grow.
If a post solves your question, mark it as The Solution.
If a post helps, give Kudos to it.

Similar Messages

  • M-series counter interrupts/dma

    I'm trying to get the counters on an m-series board (6281) to generate interrupts, so I can do buffered event counting. As a test, when I turn on terminal count interrupts, then make the counter count down to zero, no interrupt is generated. It is disarming when it hits the TC (I have it configured to stop counting and disarm on TC) but no interrupt. I have the TC interrupt enabled in the interrupt A enable register (i'm using counter 0), and I am able to generate TC interrupts using an e-series board. I've noticed the m-series has some additional bits in the Gi_DMA_Config register and I've played with them but to no effect.
    Is there any extra magic to make counter interrupts work on m-series boards? Is there any example code of buffered counting using m-series boards (there's none in the m-series ddk, although there is for the 660x boards in the 660x ddk)? Ultimately, I'd like to get buffered counting working with DMA, but for now I'd just like to get it to generate an interrupt.

    Hi fmhess-
    I created an example recently for DMA-based buffered period measurement.  It's attached as gpctex6.cpp and should be a good starting point (along with gpctex1.cpp from the M Series MHDDK) to get buffered edge counting with DMA working.  This should give considerably better performance than interrupt-based transfers; will DMA-based transfers (using the MHDDK's DMA library) work for your app?
    Thanks-
    Tom W
    National Instruments
    Attachments:
    gpctex6.cpp ‏12 KB

  • M Series Counter TC interruption and Gi_Status_1 register

    Hello everyone
    Q1: About the G0_Status1 register
    Everytime I get TC interruption from a board, checking the G0_Status_1 register.
    And I could find bit 12 is always TRUE and it is even when TC doesn't hit to 0.
    The 660x RLP Manual says the bit 15 is G0 Interrupt and bit 3 is TC interrupt and
    I'm sure it working correct. But I don't know why the bit 12 is always TRUE.
    Could anyone tell me what the bit 12 is?
    Q2: About TC interruption
    Also, I could make the TC interrupt count down direction and when it hits to 0.
    If there is some configuration the direction inverted, I would like to know how to
    do it. I mean it is something like that the Counter0 counts up and when it hits to
    specified value, TC interrupt occurs.
    Thanks in advance
    Ash

    Hi fmhess-
    I created an example recently for DMA-based buffered period measurement.  It's attached as gpctex6.cpp and should be a good starting point (along with gpctex1.cpp from the M Series MHDDK) to get buffered edge counting with DMA working.  This should give considerably better performance than interrupt-based transfers; will DMA-based transfers (using the MHDDK's DMA library) work for your app?
    Thanks-
    Tom W
    National Instruments
    Attachments:
    gpctex6.cpp ‏12 KB

  • PCI-6229 M-Series (count 3 encoders)

    Hello,
    I only have one DAQ board (PCI-6229 M-Series) and as I know, the board have two counters:
    Ctr0 which uses PFI8 and PFI10 - now using that to count outputs from my first encoder
    Ctr1 which uses PFI3 and PFI11 - for my second encoder
    But I have 3 encoders, can I use other PFI pins on the DAQ board to count the outputs coming from my third encoder? Is it possible with just one DAQ board? Did I miss any example code which tell me how to do this?
    Thanks alot.
    Kenneth

    Hi
    Try the link below
    http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=F0F64AEE06C0010CE0340003BA7CCD71&p_...
    for using a counter as the DIO clock for M Series boards.
    Requirements= LabVIEW 7.1
    NI DAQ MX 7.3
    I hope this example helps!
    Kind Regards,
    Kurt
    Attachments:
    Using_a_Counter_as_the_DIO_clock_for_M_Series.vi ‏84 KB

  • X Series is here – New Counter Features!

    Hey All,
    The new X Series Multifunction DAQ devices have been announced – check them out here.
    I’m posting here because I think X Series has several new counter features that many on this forum have been looking for. The user manual
    will have all of these details and more with timing diagrams but I
    thought I’d summarize a few of the sexier features and open it up for
    comments/feedback.
    First off – what stayed the same between
    M Series/TIO counters and X series counters? The pinouts between M and
    X series are the same so the PFI lines and default counter pinouts are
    the same. The DAQmx programming is the same (you’ll need DAQmx 9.0, it
    should be up this afternoon) and all the functionality that was
    supported by M Series is supported by X Series, though a few behaviors
    may have changed. Counters are still 32 bit.
    Now on to
    the fun stuff – the big one that I tend to overlook: X Series has 4
    counters per board! They all have the same features and Freq Out is
    still there too (with an additional 20MHz timebase).
    Timebases:
    X Series devices have 100MHz, 20MHz and 100kHz timebases. Note the
    difference between 80MHz on M series and 100MHz on X series. DAQmx will
    take care of the difference for you, unless you were programming in
    terms of ticks and hardcoded in numbers based off of a 80MHz clock. 
    Counter
    FIFOs: X Series has a 127 sample FIFO per counter. When combined with
    PCIe/PXIe, our benchmarked buffered counter rates went from ~350k on M series
    (with a 2 sample FIFO) with a single counter to 10MHz on all four
    counters (160MB/s streaming rate). The FIFO also allows us to implement…
    Buffered Counter Output: Probably my favorite new feature. You can
    now use a multi point write on counters and write out a buffer of pulse
    values. There are two timing modes for this: implicit and sample
    clocked. With implicit timing, every idle/active pair you write is
    generated as a pulse. You can vary the idle/active time for every pulse
    in your pulse train. Check out the "Gen Dig Pulse
    Train-Buff-Implicit-Cont.vi" shipping example. With sample clock
    timing, the idle/active time are updated every time a sample clock is
    received. Check out the "Gen Dig Pulse Train-Buff-Ext Clk-Cont.vi"
    shipping example. These modes give you much more control over your
    waveform – now everything about it can be hardware timed. Also, I’ve
    benchmarked the output rates at 10MHz on all four counters at the same
    time.
    Finite pulse train with one counter: Each X Series
    counter has an Embedded counter paired with it. The embedded counter
    isn’t directly programmable, but it does allow you to do counter
    operations on one counter that used to take two.  A finite pulse train
    used to take two counters – one to generate the pulse train and one to
    gate it. Now a counter generates the pulse train, and its embedded
    counter counts the TCs and disables the counter when it reaches the
    number of pulses to generate.
    More sample clocked
    measurement modes: Edge counting and encoder measurements always
    supported sample clocks, all other counter measurements were implicitly
    (timed by the measurement waveform) timed. With the addition of the
    sample clock terminal to the counters now all counter measurements
    (except for semi-period) support sample clock timing. You can now get
    the pulse width of the pulse just before the sample clock rather than
    getting all the pulse widths and figuring out where they happened in
    time. Why not semi period? We added a new “pulse” measurement instead
    that returns a sample that contains the high and low time (or high and
    low ticks, or frequency and duty cycle) so for each sample clock edge
    you get a full pulse spec. Semi period still supports the same
    measurements it used to, just not sample clocked. Speaking of sample
    clocked…
    Sample clocked frequency/period measurement
    with averaging: X Series still supports the three frequency modes: Low
    frequency 1 counter, 2 counter High Frequency and 2 counter Large
    Range. In addition it supports sample clocked averaging. This is
    essentially a method that is high accuracy method based on the sample
    clock rate. With the same measurement time it has the same accuracy as
    the Large range mode but it doesn’t take two counters.  Note, counters
    do not have their own internal sample clock so you have to provide them
    with an external signal.
    Hope this helps,
    Andrew S
    National Instruments
    Multifunction DAQ Product Support Engineer
    Getting Started with NI-DAQmx
    Measurement Fundamentals

    Hi guys,
    I drew up a schematic of one of the applications I need to get running in our lab. To recap:
    1)      We have several piezo controllers for nanopositioning of samples under a microscope, some of them driven by a digital circuit that handles coordinate programming and trigger line programming (for syncing detectors to the piezo motion), other controllers are analog and need to be driven by voltages.
    2)      We would like to emulate the behavior of the digital controller using the analog HW (we have much more analog controllers than digital ones).
    3)      The basic implementation is like this (see also slide one in the attached pdf file) and runs perfectly:
    a.       A global pulsetrain ticks with a certain frequency
    b.      At each tick a voltage is written on an AO line and this tick is also sent to an RTSI line to sync multiple detectors
    4)      To fully emulate the digital controller we also need to implement 4 trigger lines that exist on the digital controller. These trigger lines allow for fully programmable pulsetrain output that is in sync with the movement of the piezo. Slide two in the attached pdf illustrates what is needed. These trigger lines allow for much more intricate syncing of our detectors (only measure during certain parts of the motion instead of all the time).
    After a lot of thinking and experimenting with the existing M series boards back here I came to the conclusion that the desired behavior is not possible with an M series board since they only allow for the output of “simple” pulsetrains with a given frequency.
    Looking at this webpage (http://zone.ni.com/devzone/cda/tut/p/id/9384#toc3) however, I think that the X series board would offer exactly what we need since it allows for buffered counter output that enables definition of very complex pulstrain “shapes”.
    Looking at the schemes I provided, could someone confirm that the X-series covers our needs? If this is the case, we would be interested in purchasing these kinds of boards.
    Cheers,
    Kris Janssen
    Attachments:
    Raman Imaging Timing Implementation.pdf ‏76 KB

  • How to disable (turn off) a counter output

    I have a similar question up on the the board but I thought I would ask it in another way to make it simple and straightforward. 
    Can an E-series counter output be disabled (and enabled) quickly through some software command?  When I say " disabled" I mean switched off to a TTL low state.  I have tried both the "disable" counter control command and gating the counter with a TTL signal.  Both methods leave the output pin in whatever state the output happens to be in at the time of the command or gating.  I need a disable function where "disabled" automatically sets an OFF or LOW on the output.  I am using this to generate a pulse train where the pulse train switches off at certain times, and I cannot have the output remain high at these times.
    I am using traditional DAQ but if there is a method in DAQmx that works I'd be willing to try it...

    Have you tried using the following vi with a reset command (search in help, it works with the E series counters)
    Counter Control
    This VI controls groups of counters. Control operations include starting, stopping, and setting the state of active acquisitions. This VI works with DAQ-STC and NI-TIO-based devices.
    Control code 1 (reset) reinitializes the counter back to the default settings.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~
    "It’s the questions that drive us.”
    ~~~~~~~~~~~~~~~~~~~~~~~~~~

  • Time-based interrupt m-series

    I can't find anything directly related to what I'm hoping to do, so I'm back to ask more questions.
    I'm running a hardware timed analog input acquisition (80 kHz currently) using dma transfers, on-demand analog output, and on-demand DIO on an M-series PCI-622x.  I'm exploring the possibility of using a counter to send an interrupt every 200 ms using an internal signal as the counter source.  I found this forum post, which looks like it is a least a good source of information about the counter registers.  I haven't found much else on internal routing, setting up a continuous digital output task to feed back to the counter (if I have to go with a round about way to do this), etc, but as you can see I'm really stabbing in the dark.
    I'm hoping I can set the counter up in a trivial setup that counts like crazy to a specified number, triggers an interrupt, resets the counter, and automatically begins counting again repeating the process.  Any enlightenment people can provide to the possibility of this or even round about ways of accomplishing a similar task would be greatly appreciated.
    Aaron

    Hi Aaron-
    I'm a bit unclear on exactly what you're trying to accomplish.  Is the "interrupt" you're trying to generate just a pulse to be generated out to the I/O connector for interface to some external hardware, or are you looking for a way to route an internal event signal back to the host CPU as a software interrupt (to be handled by some ISR associated with your app).
    If it's the former, you should be able to achieve what you want by setting up the M Series counter for pulse train generation.  We don't have an example of this for the M Series DDK, but the 660x DDK examples do show how to set this up (specifically, ni660x/Examples/gpct_ex3.cpp would be a good reference).
    Hopefully this helps-
    Message Edited by Tom W [DE] on 10-11-2007 09:56 AM
    Tom W
    National Instruments

  • Register information on X series driver for encoder

    Hi All:
    I am working on the X series driver development by using MHDDK. After comparing M series and X series I found that theere is a Gi_Save_Trace bit in register Gi_Command_Register in M series. When it is set, the register goes into the latched mode after the next clock edge to assure valid data was latched. However, I can't find equivalent register bit in all X series counter registers.
    Can anyone tell me what is the equivalent register bit for same function that Gi_Save_Trace does?
    Thanks,
    Larry

    Hi PedroMunoz,
    Actually, I wanted to post it at DDK forum. I don't know why it is shown here. I may need to do it again.
    Thanks,
    Larry

  • Can I use the the measured time between the first count and the last count in a fixed time window in order to increase the accuracy of a quadrature velocity measurement?

    I am measuring velocity using a linear encoder. Resolution is 40microns, sample frequency is 1MHz and the real velocity is oscillatory in nature with an amplitude of 200 to 400 mm/s with a freq of about 1Hz. We use a 5ms fixed time window to measure velocity. The quanization error for this is 8mm/s. Can I get rid of the quatization error by somehow measuring the exact time from the first pulse to the last pulse in the measurement window?

    There is probably a way to do it, but it it may be easier to use an X-series board for the job.   They support a new counter capability for count reset on a digital edge without needing to be configured in encoder position mode.  I am not sure exactly how that feature's been implemented however, so maybe it won't make things easier after all.
    The plan based on the hoped-for behavior: 
    1. Configure an X-series counter for pulse generation based on "ticks" of your clock channel.
    2. Set both initial delay and low time to the critical # of ticks.
    3. Configure for count reset on a digital edge (if possible in pulse generation mode)
    4. Configure the count reset value to be the critical # (or possibly 1 less, if possible in pulse generation mode)
    5. If you want the output to remain high indefinitely, configure the counter task to use its own output as a
    pause trigger, and pause while high.
    The way pulse generation works is to preload a # of "low time" ticks into the count register.  Then every source edge will decrement the count.  When the count reaches terminal count (0), the counter's output is toggled (or can be configured to pulse).  The register is then loaded with the # of "high time" ticks and the process continues.
    You would be perpetually interrupting the count-down process as long as you got your triggers in time.  The count would keep getting reset to the # of low counts, keep decrementing toward 0 without reaching it, and so on.  If ever you did reach 0, the output state would toggle high, then the high state would prevent subsequent clock signals from decrementing the count.
    You can conceivably do a similar thing with a 6601, but I'm pretty sure you'd need 2 counters working together to get it working.
    -Kevin P

  • Can I use the 'Export Signal Property Node' on a quadrature encoder?

    Hi,
    So I don't know which counter board I'd be using yet for this (it's used in conjunction with a PCI-6280--the PCI-6280's counter inputs are all taken and so I need another board), but assuming this is possible at all in DAQmx I wouldn't mind knowing whether, say, the PCI-6601 (or any other timer board for that matter) could do this. I'm programming this in LabVIEW 2010 by the way. 
    I want to have a counter which counts the number of pulses on one channel (I'll call this the 'clock' channel) between when another channel goes from low to high (which I'll call the trigger). It's basically a pulse width measurement, but I only care if there are more than n clock pulses between triggers. I need to have a hardware-timed digital signal which goes from low to high if there are ever more than n pulses between trigger changing state from low to high. 
    What I am planning to do is this: 
    Wire 'trigger' to the z-input of the quadrature encoder, and set the z-input value to some arbitrary large value such that, at the quadrature encoder counter task's settings, the counter reaches terminal count in n pulses.
    Configure the quadrature encoder counter using DAQmx Export Signal Property Node (tutorial I was looking at is here: http://zone.ni.com/devzone/cda/tut/p/id/5387 ) to toggle a digital channel ('counter event output') from low to high if the counter reaches terminal count (ie, if the encoder reads n pulses).
    If the encoder ever reads n pulses on 'clock' between two rising pulses on 'trigger', it sets counter event output high.
    Is this possible? Reading through the manual of M series PCI-62xx devices, the index pulse loads the counter with a particular value so it seems like you could conceivably set the counter to the terminal count if you wanted. My only real problem is whether DAQmx Export Signal Property Node works on all counter tasks or just on edge counting tasks. 
    Thanks in advance for your help. If this isn't possible, I can reply with more details on the problem this is supposed to solve so that you can help me figure out an alternate method.
    Solved!
    Go to Solution.

    There is probably a way to do it, but it it may be easier to use an X-series board for the job.   They support a new counter capability for count reset on a digital edge without needing to be configured in encoder position mode.  I am not sure exactly how that feature's been implemented however, so maybe it won't make things easier after all.
    The plan based on the hoped-for behavior: 
    1. Configure an X-series counter for pulse generation based on "ticks" of your clock channel.
    2. Set both initial delay and low time to the critical # of ticks.
    3. Configure for count reset on a digital edge (if possible in pulse generation mode)
    4. Configure the count reset value to be the critical # (or possibly 1 less, if possible in pulse generation mode)
    5. If you want the output to remain high indefinitely, configure the counter task to use its own output as a
    pause trigger, and pause while high.
    The way pulse generation works is to preload a # of "low time" ticks into the count register.  Then every source edge will decrement the count.  When the count reaches terminal count (0), the counter's output is toggled (or can be configured to pulse).  The register is then loaded with the # of "high time" ticks and the process continues.
    You would be perpetually interrupting the count-down process as long as you got your triggers in time.  The count would keep getting reset to the # of low counts, keep decrementing toward 0 without reaching it, and so on.  If ever you did reach 0, the output state would toggle high, then the high state would prevent subsequent clock signals from decrementing the count.
    You can conceivably do a similar thing with a 6601, but I'm pretty sure you'd need 2 counters working together to get it working.
    -Kevin P

  • How to get the data in Charts

    HI Guys,
    In the BEX reports for the rows used the date and in the columns i have created a structue using the selections based on the KF. i have used the 29 KF in the structure. My problem i want to dispaly the data by spliting the key figures from 1-15 and 16-29 in the WAD for the tables and graphs
    i did the settings for the tables as followed and getting the data correctly
    Display data from value column = 1
    Display data  to value column = 15.
    i want to apply the same settings for the graph.
    Please help me where i need to do the settings for the series(legends).
    Thanks,
    Visu
    Edited by: visu rao on Apr 9, 2008 5:45 PM

    Hi Visu,
    In Chart, you cannot have such option. You should have two same queries as such with 1 to 15 KF's in one query and 16 to 29 KF's (with structures) in second query with all other similar fields. Now use these two queries in two different charts with 15 categories in first chart and the other 14 categories in second chart. You can have the categories what ever you want... U just need to maintain in the query in the structure, the number of KF's... and the same number of categories in chart.
    You can have the categories and series count in "Edit chart-->Wizard and Chart designer".
    Assign points if this helps u...
    Regards,
    KK.

  • Programming Analog Input Registers for MSeries NI-6221

    I am trying to understand the Preliminary M Series Register Map in order to correctly setup and acquire data from the Analog Input channels of my PCX-6221 card. I have been able to figure out the DIO locations and use them but I am having trouble understanding what I have to do to configure and acquire data using the Analog Input registers of the card. I need to program at this level for an RTX application using Microsoft Visual Studio Net 2003 and have had great success doing so with other NI Cards. I have tried looking at the examples provided by the MDDK but I haven't been able to create a environment that allows me to compile them with Chipobjects and it appears like alot of the work is hidden by the subroutines.
    I wonder if someone had a high level algorithum using the Register Map it would help out alot.
    Questions:
    How would I create a multiple channel Scan List and load it into the card setting gain etc...
    How would I configure the card to acquire continously at a specified freq (ex 1000 samples a sec)
    How would I start/stop acquisition
    I would guess getting the status of the FIFO and accessing the FIFO is a matter of reading the AI_STATUS_1 and AI_FIFO_DATA locations
    Would looking at the Register Programming Manual for the "E" Series help me or just get me more confused?
    Thanks in advance for any light you can shed on the subject.
    Floyd

    Hi Floyd-
    Let me address your questions individually:
    How would I create a multiple channel Scan List and load it into the card setting gain etc...
    A multi-channel scanlist can be created as shown in the method aiConfigureChannel() from ai.cpp in the M Series MHDDK \Examples folder.  Note that the other operations leading up that point (notably, aiClearConfigurationMemory() must be performed in the order shown in the various AI examples.  aiex3.cpp is the most useful starting point for investigation, in my opinion.
    How would I configure the card to acquire continously at a specified freq (ex 1000 samples a sec)
    aiex3.cpp shows how to setup the device and its DMA controller (aka the "MITE") for DMA operation.  In order to configure for continuous operation you set the "continous" flag in that example to kTrue.  The effect of that setting is to program the STC-II to generate either a finite or continuous AI sample clock.  This programming is performed in the function aiNumberOfSamples() from ai.cpp and has the effect of setting the appropriate bitfield for continuous operation in the AI_Mode_1 register. 
    Earlier in your post you asked if the STC Technical Reference Manual ( http://digital.ni.com/manuals.nsf/websearch/E929838D7D0EE50986256728007FEADF ) would be a good reference.  In fact, it's a great reference from the perspective of understanding the bitfield/register names and understanding the basics of how the timing hardware works (for example BC, UC and other sample counters are all functionally equivalent in the STC and STC-II).  From the perspective of actual register writes and reads, the functionality is different between E Series and M Series.  The biggest difference, as another forum user alluded, is that we map and write directly to the registers on M Series so Windowed_Mode reads and writes are no longer necessary.
    Another difference between STC and STC-II is that the STC-II uses NI TIO-style counter/timers.  For that reason, the NI 660x RLP manual ( http://digital.ni.com/manuals.nsf/websearch/4CE1C778F442B01386256C870060F9F3  ) would be a good reference for M Series counter/timer operations.
    How would I start/stop acquisition
    Assuming you don't need an external start trigger, you only need to write to the strobe bit AI_Command_2->AI_START1_Pulse.  This will create a single start trigger pulse internally.  The differences between AI_START1 and AI_START are described in the STC Technical Reference Manual.
    A finite acquisition would be stopped automatically by the AI timing engine based on the number of samples you program via the method shown in aiNumberOfSamples().  Continuous AI would be stopped by first stopping the DMA operation and then calling aiReset().
     I would guess getting the status of the FIFO and accessing the FIFO is a matter of reading the AI_STATUS_1 and AI_FIFO_DATA locations
    Yes, this would work but I would strongly suggest using DMA as shown in aiex3.cpp.  If you want to use "programmed I/O" to read the FIFO data directly, that method is shown in aiex2.cpp
     Would looking at the Register Programming Manual for the "E" Series help me or just get me more confused?
    In many cases it would be very helpful.  See my comments, above.
    I have inherited code that works on 65xx cards which I am pretty sure uses windowed mode that I am using in this 6221 driver. I have found that I can set the PLL registers to act as DIO and I can read the Discrete inputs just fine. Makes me curious, if Windowed mode is not used doesn't that mean the addresses are relative to the BAR1 address? Why then am I able to read the DIO?
    I'm not sure why this would work- it's possible that some legacy functionality is still working due to the way you access the hardware in your code.  For full functionality with M Series you must use mapped memory I/O to write and read from the device's registers.
    Also starting with Clock_and_FOUT according to the example I set it for Slow_Internal_Timebase. But when I read back that Address it is always zero. According to the register map it is a "write". Does that mean I can't read it's contents? Or do I seem to have a problem because I am trying to use windowed mode with this card.
    Yes, the "write" registers are write-only and the "read" registers are read-only.  The effect of data read from or written to "write" or "read" registers, respectively, is undefined.
    Hopefully this helps-
    Tom W
    National Instruments

  • Create Gantt-Chart by using class CL_GUI_CHART_ENGINE

    Hello,
    my goal is to create a Gantt-Chart by using CL_GUI_CHART_ENGINE .
    I´ve copied report GRAPHICS_GUI_CE_DEMO and tried to modify its XML data in order to get a Gant-Chart
    but I failed. I´ve also used SAP Chart-Designer to get an executable customizing for the chart engine
    but this way was unsuccesful too. Every time the chart shows no data...
    Is there anyone who has an example (code, docu, xml) to create a Gantt-Chart?
    Thank you.
    Kind regards,
    Oliver
    Edited by: Oliver Seifer on Mar 24, 2011 2:16 PM

    Hi,
    Please try this sample code. You'll need a customizing from ChartDesigner to launch it.
    I have hardcoded sample data but you can take it further from here.
    Please use following settings in the wizard
    Step 1
    Gantt
    Step 2
    Series Count 2
    Category Count 1
    Step 3
    Defaults
    Step 4
    Defaults
    Step 5
    Defaults
    Step 6
    Defaults
    Step 7
    Save as...
    DATA lt_cust_text TYPE w3htmltabtype.
      DATA lt_data_text TYPE w3htmltabtype.
      DATA wa_data_text TYPE w3html.
      IF g_ce_container IS INITIAL.
        CREATE OBJECT g_ce_container
          EXPORTING
            container_name = 'CONTAINER'.
        CREATE OBJECT g_ce_viewer
          EXPORTING
            parent = g_ce_container.
      ENDIF.
      cl_gui_frontend_services=>gui_upload(
        EXPORTING
          filename                = 'path to your customising\gant.xml'
        CHANGING
          data_tab                =     lt_cust_text
        EXCEPTIONS
          OTHERS                  = 19 ).
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                   WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
      g_ce_viewer->set_customizing( data_table = lt_cust_text ).
      APPEND '<?xml version="1.0" encoding="utf-8"?>' TO lt_data_text.
      APPEND '<ChartData> ' TO lt_data_text.
      APPEND '<Categories><Category>Category 1</Category></Categories>' TO lt_data_text.
      APPEND '<Series customizing="Series1">' TO lt_data_text.
      APPEND '<Point>' TO lt_data_text.
      APPEND '<Value type="time">20000301</Value>' TO lt_data_text.
      APPEND '<Value type="time">20000305</Value>' TO lt_data_text.
      APPEND '<Value type="time">20000310</Value>' TO lt_data_text.
      APPEND '<Value type="time">20000401</Value>' TO lt_data_text.
      APPEND '</Point>' TO lt_data_text.
      APPEND '</Series>' TO lt_data_text.
      APPEND '<Series customizing="Series2">' TO lt_data_text.
      APPEND '<Point>' TO lt_data_text.
      APPEND '<Value type="time">20000302</Value>' TO lt_data_text.
      APPEND '<Value type="time">20000319</Value>' TO lt_data_text.
      APPEND '</Point>' TO lt_data_text.
      APPEND '</Series>' TO lt_data_text.
      APPEND '</ChartData>' TO lt_data_text.
      g_ce_viewer->set_data( data_table = lt_data_text ).
      g_ce_viewer->render( ).

  • WAD legend error

    Hello Experts,
    I have a WAD with graph Columns 2.5D with series count 2 and legend in Bottom.
    In the query used for this graph, in rows, i have WBS Category with hierarchy display expanded to 1 level and followed by Actual Value which is key figure(this is used in structure). We have to display the WBS Category's i.e. Electrical and Insulation which are coming from hier in the legend. It was displaying Electrical / Actual and Insulation / Actual. Then I removed the description of the key figure Actual in structure and put blank. Now it's displaying Electrical /^ like with extra symbol. The symbol is reverese tp which i have given here. I have to remove "/^". I checked all settings in WAD also.
    If anyone know, can you please give suggestions
    If you can provide mail id, i will send screen shots.
    Thanks in advance,
    Venky

    Hi Brian,
    You mean you dont have the WAD or something else. Did you get any result when u run the WAD?
    If you can create one query with chararcteristc followed by structure or key figure and remove the description of key figure and use query in WAD for your test.
    Thanks for you help
    Venky
    Edited by: Venkatesh S on Jul 24, 2009 1:27 PM
    Edited by: Venkatesh S on Jul 27, 2009 12:22 PM

  • DAQ and Encoder Connections

    "Please help a DAQ/Motion neophyte ....
    I'd like to synchronize/correlate a load cell output with the a linear stage position via the on-board encoder. The on-line documents show Ch.A to PFI8_Source, Ch.B to DIO6_Up_Down, and GND to DGND. However, the Agilent HEDL-5504-A encoder that I have has A+ and A-, B+ and B-, I+ and I-, and GND channels (i.e., seven connectors). What is the proper way to connect to the terminal block of the SCC-2345 to communicate with my PCI-6036E DAQ device for this encoder? Thanks in advance ... Jerry"

    Yes it's correct. What's happening is that the 24-bit counter is rolling over from 0 to its max value of 2^24 -1. You probably want to see is something like 3, 2, 1, 0, -1, -2, ..., right? You can do that fairly easily in software. The following isn't perhaps the most formal or elegant, but it'll get the job done.
    Your count value is stored in an unsigned 32-bit integer datatype, but only bits 0-23 are used. Note that bit 23 is "on" for the largest half of the numbers, the ones we'll want to treat as negative positions.
    First convert your count from a u32 to an i32. Then if bit 23 is "on", replace the count with (count - 2^24). Note: the 2^24 constant should be an i32 datatype.
    Topic 2. Using a DAQ-STC counter to m
    easure position from a quadrature encoder is not a foolproof measurement. Have your read through the tutorial and app note yet?
    http://zone.ni.com/devzone/conceptd.nsf/2d17d611efb58b22862567a9006ffe76/6f25cba2cd73417786256869005e5fc3?OpenDocument
    If you care about repeatability after back-and-forth moves, or if your system experiences oscillations at the end of motion, you will probably need a true quadrature interface. You can either build the quadrature interface circuit described in the tutorial / app note, or buy a 660x-series counter/timer board which has quadrature built in.
    Other advantages of the 660x series are:
    - tracks +/- positions on its own without software conversions
    - can use index channel for repeatable hardware reset of "zero" position.
    The cheaper 6601 can meet your needs for today, but be aware of the following improved features in the 6602:
    - 4 additional counters
    - 3 DMA channels for buffered operations instead of 1
    - 4x higher resolution
    on timing (80 MHz vs. 20 MHz)

Maybe you are looking for

  • How can I create multiple PDF files from multiple InDesign files?

    I have 144 InDesign files that I need to create a PDF file for each. I do not want to open each InDesign file to create the PDF's. Acrobat Batch create won't open the InDesign files. Is there another way?

  • Capture full URL with CF CGI variable

    I need to capture an entire URL and send it in the body of an email, using CFMAIL. I'm looking at my CGI variables using CFDUMP, but can't seem to get the entire URL string, including the http:// or https://. Help?

  • How do I search all Contacts fields in the Q5 with OS10.2?

    Blackberry appear to be advancing backwards with their new Q5 and 10.2 operating system. I originally bought the Blackberry specifically for its ability to search into the notes field of email contacts, which no other phone could do at the time. When

  • Times are displayed as hyperlinks

    In every app on my phone, anything that looks like a time is displayed as a link to "Create Event", "Show in Calendar", etc. Is it possible to turn this "feature" off?

  • 7.2.0 won't recognize video input devices and gives error 2003332927

    Ever since upgrading to QT 7.2.0, my G5 duo 2.0 has been unable to use quicktime to record video from hardware that worked fine with earlier devices. Also this hardware is recognized fine by Final Cut Pro and iMovie even with QT 7.2.0 installed. I ha