Generating a sequence of waveforms with NI 5640R card

Hello,
I have a question regarding generating a sequence of waveforms. I want to use the example "NI 5640R analog input and output" (I know this example is capable of generating a QAM or single tone signal) and make changes such that the when i run the VI i want the output to be switching between single tone and QAM and i want this to happen until i stop the VI.
And in the future i want to add another waveform (sawtooth) and want my output to be switching between the 3 waveforms. Any help regarding this will be grately appreciated.
Thanks,
Sandeep. 
Sandeep Palreddy, Graduate Research Assistance
The Microwave Remote Sensing Laboratory (MIRSL)
University of Massachusetts
151 Holdsworth Way
Amherst MA 01003-9284

Hello,
I have a question regarding generating a sequence of waveforms. I want to use the example "NI 5640R analog input and output" (I know this example is capable of generating a QAM or single tone signal) and make changes such that the when i run the VI i want the output to be switching between single tone and QAM and i want this to happen until i stop the VI.
And in the future i want to add another waveform (sawtooth) and want my output to be switching between the 3 waveforms. Any help regarding this will be grately appreciated.
Thanks,
Sandeep. 
Sandeep Palreddy, Graduate Research Assistance
The Microwave Remote Sensing Laboratory (MIRSL)
University of Massachusetts
151 Holdsworth Way
Amherst MA 01003-9284

Similar Messages

  • "How do I generate a sequence of waveforms, like first a sine wave, then a square one, and say again a sine wave?"

    "Hello everyone, I hope someone can answer the following question. How do I generate a sequence of different waveforms, with different attributes?
    Like, i want to generate a sine wave for some time, then a square pulse of some width and then again a sine wave of some other time. Finally I want to repeat this sequence. I'll really appreciated it if I can get an answer soon. Thank you!

    From the previous comments I am assuming that your waveforms are arrays, rather than the waveform data type. I am also assuming that the sine waves on both sides of the square wave are the same signal.
    If so then I suggest a slightly different approach. 1. Generate your sine wave, rather than the empty array. The length should be the length of the entire end signal.
    2. Generate the square waveform. You can either generate it at the length you need, or you can generate a much larger square wave, and then use the Array Subset VI to get the portion you need. Which method you use depends how you want to implement the whole method.
    3. Use the Replace Array Subset VI to place the portion of the square wave at the location (index) of the original sine wave you ge
    nerated.
    The result of this method will be an array that starts with your sine wave, and then at the index you choose it will place the square wave of the length you want right into the signal, and then finish up with the sine wave for the rest of the signal.
    Evan Collier
    Application Engineering
    National Instruments

  • Help needed with generating a sine wave with NI-5640R card

    Hi there,
    I have created a simple programe using the 5640R card, and i am attaching the programe to this question. Using a "sine generation" function/block i am generating a sine wave and outputting to one of the o/p ports and then i am connecting that o/p port to one of the i/p ports using a cable. Then i am plotting what ever i have recieved through the i/p port (this has to be same as what is generated using "sine generator" ). The graph shows that i am not receiving aything from the i/p port, but when i plot the o/p of the "sine generator", i see that the sine generator is generating the sine wave. Please refer to the attached figure and please tell me what mistake i have made in this simple programe.
    Thanks,
    Sandeep.
    Message Edited by sandeep palreddy on 07-08-2007 12:46 PM
    Sandeep Palreddy, Graduate Research Assistance
    The Microwave Remote Sensing Laboratory (MIRSL)
    University of Massachusetts
    151 Holdsworth Way
    Amherst MA 01003-9284
    Attachments:
    figure.doc ‏27 KB
    figure.doc ‏27 KB

    Hi sandeep
    This small segment of code will not work on the NI PCI-5640R.  This module does not support running the FPGA Vis directly.  A Host VI must be run that calls to the FPGA Vis.
    I suggest that you look at the ni5640R Analog Input and Output example that is installed by the NI PCI-5640R software. 
    Jerry
    PS: Make sure that you are using the NI PCI-5640R software version 1.1.

  • Generating a tri state waveform pattern and writing into DAQ card

    Hi,
    I am using LV8.0 and NI-6259 DAQ card.
    I want to generate a waveform pattern which initially goes to +5v and goes to 0v and then again goes to -5v
    and finally goes to 0v. 
    I have used the waveform pattern generator and have generated 4 kinds of waveform with some particular samples
    and I will be appending all the 4 waveform patterns(+5, 0, -5, 0) and the appended waveform will be written into DAQ card.
    The problem is:
        When I probe CRO at the Analog output pin of the DAQ card, the pin level will be always at +5v and sometimes
        it goes to 0 and back to +5v. But I am expecting a waveform with 3 voltage levels i.e.., +5( some 100 samples), 0v(for some 1000 samples.
        -5v(same as +5v) and 0v( 2000 samples). 
    How to get this kind of waveforms in NI-6259 DAQ(M Series) card.
    Please find the attached VI which I have created.
    Letme know the loophole in the VI and correct way of generating a tristate waveform.
    Thanx in advance, 
     Yogesh
    Attachments:
    PWM_sample.vi ‏43 KB

    Hello YogeshaYS,
    Thanks for your post!
    I see that you are wanting to output a waveform that goes from 5 to 0 to -5 and then back to 0. It looks like from your code that you want to do this in a continuous fashion? If this is so you will need a while loop to output the waveform. Take a look at one of our shipping examples that shows how to do analog output waveform. Go to Help >> Find Examples. When here go to Hardware Input and Output >>  DAQmx >> Voltage >> Cont Gen Voltage Wfm-Int Clk.vi. Your VI works great but it only does the output once so that may be why you see some interesting results on your output. Let me know if any of this information helps you with your program. I was able to run it in a continuous mode and see the voltage levels go from 5 to 0 to -5 just like you were wanting. Have a great day YogeshaYS and please reply if you have any other questions on this. 
    Cheers!
    Corby_B
    http://www.ni.com/support 

  • How to generate sequence no increased with an increment in o/p file name

    Hi all,
             I am doing a file to file scenario in which my output file name consists of a sequence number which is increased by fixed increment.i  thought of proceeding with variable substitution by writing one udf involving Dynamic Configuration object (the udf describd in Micheal blog).However my problem is that i am unable to generate the sequence number with a fixed increment .plz guide me how to proceed to achieve the desired output filename with sequence number.
    For ex:o/p file name:chxx.bcdtspd.00000002.<datetimestamp>.dat
                                  :chxx.bcdtspd.00000003.<dattimestamp>.dat           
    The scenario is FTP so we cant use addcounter.Plz help as its urgent.
    Regards,
    Saurabh Sharma

    Hi,
    What you can do is.
    U have to use the counter which increment everytime ur mapping is executed.
    Steps which needs to be followed.
    1) Maintain one table at R3.
    2) Pass the control to R3 and update the table value with one.
    3) For the second time fetch the counter value from the table and add 1 to it and again update the table with the increment value.
    4) pass the incremented value to XI and use that counter value for ur file name.
    Here u have to always pass 1 value to R3.
    The method is called as lookup.
    Just go through the below weblog:
    Lookup - /people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
    Thnx
    Chirag
    Thnx
    Chirag

  • Select from table in group of columns and generate a sequence number

    I have to select data from a table in group of columns and generate a sequence for every group resetting the sequence to start from 1 onwards.
    For example:
    Data:
    Col1 Col2 Col3 Col4
    A NA KA 2009-08-13
    B NA KA 2009-08-13
    C NA KA 2009-08-13
    A NA KA 2009-08-13
    B NA KA 2009-08-13
    A NA KA 2009-08-13
    Expected output from Select Statement:
    Col1 Col2 Col3 Col4 Seq_No
    A NA KA 2009-08-13 1
    A NA KA 2009-08-13 2
    A NA KA 2009-08-13 3
    B NA KA 2009-08-13 1
    B NA KA 2009-08-13 2
    C NA KA 2009-08-13 1
    How can this be possible with a SELECT statement? Is it possible to assign seq numbers for a group of columns and reset it when it changes? In the above example, all columns form the key to generate the seq number
    I know it can be done using Stored procedures and that is how I am doing it now by introducing a temporary table.
    Can anyone help me in this regard? Please let me know if the question is vague to understand!
    Thanks,
    Nachi

    with t as(select 'A' col1,'NA' col2 ,'KA' col3,'2009-08-13' col4 from dual
    union all
    select 'B' col1,'NA' col2 ,'KA' col3,'2009-08-13' col4 from dual
    union all
    select 'C' col1,'NA' col2 ,'KA' col3,'2009-08-13' col4 from dual
    union all
    select 'A' col1,'NA' col2 ,'KA' col3,'2009-08-13' col4 from dual
    union all
    select 'B' col1,'NA' col2 ,'KA' col3,'2009-08-13' col4 from dual
    union all
    select 'A' col1,'NA' col2 ,'KA' col3,'2009-08-13' col4 from dual)
    select t.*,row_number() over (partition by col1,col2,col3,col4 order by col1,col2,col3,col4) from tYou can replace partition by col1,col2,col3,col4 with only columns that you need for grouping condition
    and also order by you can just do on the column you need.

  • Sequence in combination with function

    Hi,
    I have an issue with a sequence in combination with a function.
    I want to generate some kind of an inventory material report that contains some kind of a material ID (a non-repeating, auto-incrementing number, gaps allowed). However I have to keep track of which material IDs I have used for which inventory material, for traceability reasons. Another important requirement is that whenever the report is run, that the returned material IDs are never repeating. So repeatedly runs for the same inventory material should always return new material ID.
    So I was about to create a simple PL/SQL function where I pass my data from traceability as parameters. Then the function uses internally a sequence (nextval) to generate a new material ID, then stores the new material ID with the related values from the input parameters into a table (autonomous transaction) and returns the new ID.
    This works pretty fine so far.
    Now the tricky part: I want have a SQL statement where I want to return one and the same ID in different columns.
    Let me give an example:
    CREATE SEQUENCE XXX_TEST_SEQ
    MINVALUE 1 MAXVALUE 999999999999999999999999999
    INCREMENT BY 1 START WITH 1
    NOCACHE NOORDER NOCYCLE;
    CREATE PACKAGE XXX_TEST_PKG AUTHID CURRENT_USER AS
    FUNCTION get_id(p_someparameter NUMBER) RETURN NUMBER;
    END XXX_TEST_PKG;
    CREATE PACKAGE BODY XXX_TEST_PKG AS
    FUNCTION get_id(p_someparameter NUMBER) RETURN NUMBER IS
      l_new_id NUMBER;
    BEGIN
      SELECT XXX_TEST_SEQ.NEXTVAL
        INTO l_new_id
        FROM DUAL;
        /* do some more logic, e.g. store the freshly generated ID
            together with the input parameter values in some tracing table */
      RETURN l_new_id;
    END get_id;
    END XXX_TEST_PKG;This is a simplified version of the function for demo.
    Let's use it:
    -- 1) this works as expected:
    select xxx_test_pkg.get_id(1) from dual;
    XXX_TEST_PKG.GET_ID(1)
    1                       
    -- 2) this returns two different numbers:
    select xxx_test_pkg.get_id(1) as id_one
        ,  xxx_test_pkg.get_id(1) as id_two
    from dual;
    ID_ONE                 ID_TWO                
    2                      3                     
    -- 3) This is the problematic case: I want to return the same ID two times:
    select my_id as id
         , my_id as same_id
    from (select xxx_test_pkg.get_id(1) as my_id from dual);
    ID                     SAME_ID               
    4                      5                     
    -- 4) CURVAL on these sequence does not work:
    select my_id as id
         , xxx_test_seq.curval as same_id
    from (select xxx_test_pkg.get_id(1) as my_id from dual);
    SQL Error: ORA-00904: "XXX_TEST_SEQ"."CURVAL": invalid identifier
    -- 5) This gives the output that I need, but why?
    select my_id as id
         , xxx_test_seq.nextval as same_id
    from (select xxx_test_pkg.get_id(1) as my_id from dual);
    ID                     SAME_ID               
    7                      7                      So query 3 is the one that gives me headaches. I need to return one and the same ID in different columns. But this returns just two different IDs. I know that the optimizer will merge the two select statements into one and therefore execute the function twice. Does anybody know how I could avoid this?
    What is a bit strange to me is that query 5 really returns what I need, but at a first glance I would say it should not do so. I would say that using nextval would return me again another sequence number.
    This is confusing... Can anybody explain this and advise how I could build a query were I can get the same ID two times per row?
    I know I can totally get rid of the sequence in my function and use something different, but I was wondering if I can avoid changing my function.
    Thanks,
    David.

    David Weber wrote:
    thanks lot for all the great feedback. That's really helpful. I think I'll go for the NO_MERGE hint. A first test with this looks good.Keep in mind, only undocumented hint MATERIALIZE along with subquery factoring clause WITH (for which this hint was created) will work in real queries:
    SQL> select my_id as id
      2       , my_id as same_id
      3  from (select /*+ NO_MERGE */ xxx_test_pkg.get_id(1) as my_id from dual),emp where rownum < 6;
            ID    SAME_ID
            20         20
            21         21
            21         21
            21         21
            21         21
    SQL> select my_id as id
      2       , my_id as same_id
      3  from (select xxx_test_pkg.get_id(1) as my_id from dual where rownum=1),emp where rownum < 6;
            ID    SAME_ID
            22         22
            23         23
            23         23
            23         23
            23         23
    SQL> select my_id as id
      2       , my_id as same_id
      3  from (select /*+ MATERIALIZE */ xxx_test_pkg.get_id(1) as my_id from dual),emp where rownum < 6;
            ID    SAME_ID
            24         25
            26         27
            28         29
            30         31
            32         33
    SQL> with t as (select /*+ MATERIALIZE */ xxx_test_pkg.get_id(1) as my_id from dual)
      2  select my_id as id
      3       , my_id as same_id
      4  from t,emp where rownum < 6;
            ID    SAME_ID
            34         34
            34         34
            34         34
            34         34
            34         34
    SQL> SY.

  • User event for array of waveforms with attribute

    I have been transferring data in a Producer/Consumer architecture via User Events.  The data consisted of an array of waveforms. When I added an attribute to the waveforms the code breaks with two errors about Create User Event: User event data type is unnamed or has elements with no names or duplicate names, and Contains unwired or bad terminal.
    From reading the help on user events it is not clear that arrays are even allowed: "user event data type is a cluster of elements or an individual element whose data type and label define the data type and name of the user event."
    From experimentation it seems that arrays of numerics and arrays of wavefroms without attributes work. A single waveform with an attribute can also be used. But an array of the same waveform with attribute leads to a broken run arrow. It also appears that I can put the array of waveforms with attributes inside a cluster and then create the user event.
    Is this a bug, an undocumented corner case, or some "feature" that I do not understand?
    Searching for User Event for Array of Waveforms generates some interesting, but mostly irrelevant results.
    Lynn

    tst wrote:
    Another option would be typecasting, but it looks like you can't typecast a waveform. Variant to Data or Coerce to Type might also work, but I haven't tried.
    I have also done the Flatten To String and Unflatten From String to send data around.  It would be preferable to not need to do that though.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Generate signal f=50 Hz with NI-9264

    Hi. i'm Sorin.
    I need to generate a sine waveform with f=50 Hz, U=3Vrms. I have a C module, NI-9264. Is it any good ? Or it can only generates Vcc ?
    I only have C modules: AI for RTD, V,mA, universal,  and AO for V and mA.
    What can i use? 
    Thanks. 
    Solved!
    Go to Solution.

    Of course it's more than enough 25000 samples for 50 Hz. (500 samples per period). I think the fact that it outputs 25000 samples per second has nothing to do with output waveform. I read the specs before i use the module and i was in dilema on this. Maybe it was better to use the module and see what it can first, than read the specs.  Just kidding. But the fact is that i didn't use the module till now, i wanted to be sure regarding waveform before i begin.
    So you say it will work. that's great. Thank you. 

  • Calculate date differences in consecutive rows and generate a sequence

    Hi Guys,
    I am trying to implement one scenario where in i need to compare the date differences for consecutive rows and generate a sequence against that.
    this is the table schema:
    create table temp
    id int identity(1,1),
    emp_id int,
    time datetime
    insert into temp 
    values
    (1, '2011-02-20 12:30:00.000'),
    (1, '2011-02-20 12:32:34.172'),
    (1, '2011-02-20 12:32:34.172'),
    (1, '2011-02-20 12:43:21.004'),
    (1, '2011-02-20 12:46:39.745'),
    (2, '2011-02-20 12:48:06.004'),
    (2, '2011-02-20 12:48:06.004'),
    (2, '2011-02-20 12:53:07.733'),
    (2, '2011-02-20 12:55:30.295');
    now, I want to compare the first date-time with the second and so on. now if the date-time difference is same for two consecutive rows then the sequence should  increment by 1 otherwise the sequence again will start from '00' for any unique date-time.
    This sequence number should start from '00' from each employee.
    I want the output to be like this
    ID emp_id
    time    
    sequence
    1 1 2011-02-20 12:30:00.000
    00
    2  1 2011-02-20 12:32:34.172
    00
    3  1 2011-02-20 12:32:34.172
    01
    4  1 2011-02-20 12:32:34.172
    02
    5  1 2011-02-20 12:46:39.745
    00
    6  2 
    2011-02-20 12:48:06.004 00
    7  2 
    2011-02-20 12:48:07.003 00
    8  2 
    2011-02-20 12:48:07.003 01
    9  2 
    2011-02-20 12:46:39.745 00
    Please revert as soon as possible as this is a bit urgent.
    Thank You in Advance. :)

    create table temp
    (id int identity(1,1),
     emp_id int,
     time datetime
    insert into temp values
    (1, '20110220 12:30:00.000'),
    (1, '20110220 12:32:34.172'),
    (1, '20110220 12:32:34.172'),
    (1, '20110220 12:43:21.004'),
    (1, '20110220 12:46:39.745'),
    (2, '20110220 12:48:06.004'),
    (2, '20110220 12:48:06.004'),
    (2, '20110220 12:53:07.733'),
    (2, '20110220 12:55:30.295');
    go
    SELECT id, emp_id, time,
           dateadd(mcs, (row_number() OVER(PARTITION BY emp_id, time ORDER BY
    id) - 1) * 10,
                   convert(datetime2(5), time)) AS [Sequence]
    FROM   temp
    ORDER  BY id
    go
    DROP TABLE temp
    Erland Sommarskog, SQL Server MVP, [email protected]

  • Generate complement​ary digital signals with dead time between each pulse and controlled by duty ratio

    I am to generate  two complementary digital signals using NI 9606 conected by RIO Mezannine Card to NI 9683 (Half Bridge DO).
    I am able to generate the signals but I am not able to put dead time between high and low signal and also, low and high signal.
    Requirement:
    (1) When the first signal goes high and the second signal goes low, there should be a controllable dead time.
    (2) Also when the second signal goes high and the first signal goes low, there should be a controllable dead time.
    I am able to do requirement 1, but I am unable to fulfill requirement 2.
    Please have a look at my VI and let me know how to go about satisfying requirement 2.
    Attachments:
    complementary test 2.vi ‏69 KB

    Hi Frank ,
    I have already taken note of the example Tannerite has provided  and have built my vi ( attached in previous post) surrounding that example.
    Now I require to control the PWM duty cycle as you can see from the vi using a knob and that control refers to both the signal 1 and 2.
    Now the signal 1 end and signal 2 generation requires a controllable dead time. Similarly, signal 2 end and signal 1 geneeration also requires another controllable dead time.
    I am able to do either one dead time at a time using delay but not two dead time simultaneously.
    I feel that I have two put the delays at the appropriate data flow point. I am working on that.
    I would really appreciate if you could give some insight on how to solve this dead time issue and generate two complementary waveform with dead times whose duty cycle can be controlled by a knob controller in fronty panel .
    I have also posted the required timing diagram for reference as suggested by Tannerite.
    Best regards.

  • Generating a sequence.....

    hi,
    I have the following requirement. I need to generate an unique sequence in a specified format : Xnnnn
    where nnnn = 0000 - 9999
    So it looks like this: X0000,X0001,X0002 and so on ..
    i need to acheive this through progammatically i believe. Any ideas ,how this could be done?
    Thanks in advance.

    I created a sequnce like this:
    CREATE SEQUENCE test_s
    START WITH 00000
    MAXVALUE 999999
    MINVALUE 00000
    NOCYCLE
    NOCACHE
    NOORDER;
    select test_s.nextval from dual
    0
    I want to get 00000
    so that i could use seq:= concat('M',test_s.nextval );
    in this case, i am getting M0 instead of M00000 that is required.
    Thanks.

  • Jitter of output digital waveform with external clock

    Hi,
    I need to generate digital waveform with 20 bits pattern * 1000 times. Digital waveform must be sync with 1 MHz external clock.
    It is not big deal.
    But there is additional requirement that digital waveform has jitter < 200 ps. It can be delayed for couple ns but it must be very stable.
    Can anyone point me on that parameter? Or share your expirience?
    Thanks!

    Hi Andrei,
    Tph on figure 3 is defined as tp - 2.2ns as we discussed earlier. The data jitter, along with channel to channel skew, is already taken into account. We don't specifically spec the data jitter since we have made this calculate for you. It is safe to say that the data jitter involved in tph is less than 200 ps however this is not a standard spec we provide.
    As for additional board recommendations, what is your application? The 6562 is designed for LVDS applications. The 655x series is highly recommended for high speed TTL based applications. If you reference the 655x manual you will notice similar or better specifications in regards to setup and hold times, which again already take into account data jitter and skew.
    I am curious as to why you would like the specific values documented. We provide the current specifications so that you do not have to use the individual statistics to calculate numerics such as the setup and hold times. Is there something specific you are trying to do here? You mentioned a simple example earlier, what is your actual application?
    Regards,
    Chris Behnke
    Sr. RF Engineer
    High Frequency Measurements

  • Generate alphanumeric sequence using oracle sequence

    Hi,
    Can we generate alphanumeric sequence from Oracle sequence.
    Sequence would be something like this. Please advice
    TEMP-0001
    TEMP-0002
    TEMP-0010
    Thanks,
    Lak

    hi,
    You can try below procedure...
    SQL> create sequence sec
      2  minvalue 0
      3  start with 001
      4  increment by 1
      5  nocache;
    Sequence created.
    SQL> select 'temp-'||to_char(sec.nextval) from dual;
    'TEMP-'||TO_CHAR(SEC.NEXTVAL)
    temp-1

  • Generate a new pdf report with itens on my pdf form

    Hi! My name is Heitor.
    I have Adobe Forms Central and Adobe Acrobat XI Pro installed on my machine.
    I would like to know if its possible to make a pdf report.
    Example: Clicking in a button "print" on my already open and filled pdf form, and gathering all my 30 itens (see that i am only showing 5 itens on my form. but on my form exists a "Add" button to add itens on variables) on a dropdown list and generating a new pdf report with all these itens listed.
    Thanks!
    Heitor Teixeira
    www.heitorteixeira.com

    Hi! My name is Heitor.
    I have Adobe Forms Central and Adobe Acrobat XI Pro installed on my machine.
    I would like to know if its possible to make a pdf report.
    Example: Clicking in a button "print" on my already open and filled pdf form, and gathering all my 30 itens (see that i am only showing 5 itens on my form. but on my form exists a "Add" button to add itens on variables) on a dropdown list and generating a new pdf report with all these itens listed.
    Thanks!
    Heitor Teixeira
    www.heitorteixeira.com

Maybe you are looking for

  • GL a/c balances report

    Hi All, When im trying to get report in this path Accounting>Financial Accounting >General Ledger >Reporting >Information System >General Ledger Reports (New) >Account Balances >General >G/L Account Balances >G/L Account Balances (New) I gav vendor r

  • Rev 2 G5 iMac Drive crashed twice.  Call it in?

    We purchased this iMac in June when the new revs came out. Since then, the hard drive has had what can only be described as terminal corruption twice. The symptoms are as follows: 1) I get a disk full message - close applications to continue. This wh

  • Send port subscirption

    Hi, one quick doubt. I have one orchestration which picks up message from a MSMQ queue. This works fine. Now I added one more new send port with filter condition to picks up the message from the same queue. Now my question is, adding a new sendport a

  • Can't print Canon Pixma via Airport Express

    I am at my wits end. I can't print to my Canon Pixma 830 when the usb is connected to the aiport express (I can print when plugged directly into my ibook). I upgraded my base station to v6.3 from 6.2, and did all basic troubleshooting (restart, unplu

  • PM change order IW32

    Hello, This is my fist attempt to use SND so I am hoping for a fast reply that will get me to long on more often. Here goes. I want to be able to change a PM order with a function module. I'm in 4.6c and I have not seen bapis for this. The only thing