Weird waveform using the PCI-5922

Hello

I'm having some difficulty with PCI-5922.

Rather than see a sinusoidal signal (generated by the PCI-5421), I see the forms attached wave, MAX and configured niScope EX Acquisition.vi

Sometimes he would turn to show a normal sine wave, often times it expires.

What could be a problem?

Thank you

Fomin

It's weird.

Could you give more details about your Setup?

(1) what is your operating system?

(2) what are the versions of NOR-SCOPE and NOR-FGEN you?

(3) you have another source of signals to test so that you can narrow down the problem to the digitizer or the generator?

(4) can we measure the same thing on the channel 0 and channel 1?

(5) what is expected of your sinusoidal signal amplitude?

(6) what is the result of executing a self-calibration on two of these cards?

-Jennifer O.

Tags: NI Products

Similar Questions

  • OR PCI-6542: Creation of dynamic waveforms using the HSDIO library

    Hello!

    I have problems to understand how to create waveforms using the HSDIO library to run on a card PCI-6542. I need to create a program that activates a channel for 12.5 microseconds, waiting for a while (i.e. 100 samples) and activates another channel to 12.5 microseconds.

    This program must be used in a Multielement ultrasound system.

    Here the example of dynamic generation program that transforms the channels 0-2 on 1024 samples.

    /************************************************************************
    *
    * Example program:
    * DynamicGeneration.c
    *
    * Description:
    * Generates a simple model on the specified channel.
    *
    * Pin connection information:
    * None.
    *
    ************************************************************************/

    / * Includes * /.


    #include "niHSDIO.h".

    / * Sets * /.
    #define WAVEFORM_SIZE 1024

    int main (void)
    {
    ViRsrc deviceID = 'Dev1 ';
    ViConstString channelList = "0-2";
    ViReal64 sampleClockRate = 50.0e6;
    DataWidth ViInt32 = 4;

    ViUInt32 waveformDataU32 [WAVEFORM_SIZE];
    ViConstString waveformName = "myWfm";
    ViInt32 timeout = 10000; / * milliseconds * /.

    ViSession vi = VI_NULL;
    Error ViStatus = VI_SUCCESS;
    Bruno errDesc [1024];
    ViInt32 i;

    / * Initialize generation session * /.
    checkErr (niHSDIO_InitGenerationSession)
    Deviceid, VI_FALSE, VI_FALSE, VI_NULL, &vi));

    / * Assign channels for dynamic generation * /.
    checkErr (niHSDIO_AssignDynamicChannels (vi, channelList));

    / * Set up the clock sample parameters * /.
    checkErr (niHSDIO_ConfigureSampleClock)
    VI, NIHSDIO_VAL_ON_BOARD_CLOCK_STR, sampleClockRate));

    / * Query the data Width attribute * /.
    checkErr (niHSDIO_GetAttributeViInt32)
    VI, VI_NULL, NIHSDIO_ATTR_DATA_WIDTH, & dataWidth));

    / * Fill the waveform with ramp data * /.
    < waveform_size;="">
    {
    waveformDataU32 [i] = i;
    }

    checkErr (niHSDIO_WriteNamedWaveformU32)
    VI, waveformName, WAVEFORM_SIZE, waveformDataU32));

    / * Start the generation * /.
    checkErr (niHSDIO_Initiate (vi));

    / * Wait for all the generation * /.
    checkErr (niHSDIO_WaitUntilDone (vi, timeout));

    Error:

    If (error is VI_SUCCESS)
    {
    / * Print result * /.
    printf ("made without error. \n") ;
    }
    on the other
    {
    / * Get the description of the error and print * /.
    niHSDIO_GetError (vi, & error, sizeof (errDesc) /sizeof (petitioner), errDesc);

    printf ("\nError encountered\n===\n%s\n", errDesc);
    }

    / * log * /.
    niHSDIO_close (vi);

    / * prompt to go out (for the popup console windows) * /.
    to continue...\n");
    GetChar ();

    error return;
    }

    Issues related to the:

    How can I change the values in waveformDataU32 to create market reports (instead of just always on)?

    How to select the channel waveformDataU32 is applied to the?

    Thank you!

    Zachary Geier

    The waveformDataU32 table is an array of 32-bit integers. Each bit corresponds to a line on the device.  On the first clock cycle, this program outputs:

    0000 0000 0000 0000 0000 0000 0000 0000

    Then it displays the following, changing at each clock Pulse:

    0000 0000 0000 0000 0000 0000 0000 0001,

    0000 0000 0000 0000 0000 0000 0000 0010,

    ...

    and so on all the way up to 1023:

    0000 0000 0000 0000 00000011 1111 1111

    In the example that you include at the bottom, you set the least significant bit (LSB) to zero and one, actually only change one line on the output. To change all the lines, you must instead use 4 294 967 295 or 0xFFFFFFFF:

    < waveform_size;="">
    < 200){="" if="" sample="" number="" is="" less="" than="">
    waveformDataU32 [i] = 0; Disable channels 0-2
    }
    else {}
    waveformDataU32 [i] = 4 294 967 295; Otherwise turn on all channels to 800 samples
    }
    }

  • some computers cannot acquire images using the PCI-1410

    I have a big problem in the acquisition of the images using the PCI-1410.

    It was a standard camera (SONY XC-ES). The test of the device is OK with my computer.

    I can not get a correct image via MAX. Also, I try to use the file of the camera for that camera.

    But it did not work properly.

    I consulted it toward the Korea of NEITHER and they discover THAT PCI-1410 worked properly with different computers.

    So, I try to change PC. Most of my computers cannot acquire the image even if the unit is OK of MAX.

    However, only a few computer works properly. (Work computers are from SAMSUNG. The other

    computers that did not work propely, were assembled in the lab.) (I have tested almost 6 computers for this purpose.)

    The problem is that there are at least 3-4 PCI ports for our applications. The work computer (SAMSUN) only has 2 ports PCI.

    What should I do to select the right computers? I can't buy dozens of computers to test the PCI-1410.

    Why is this kind of problem occurs?

    Thanks in advance for your advice. (Email: [email protected])

    Hello

    We also had a lot of problems in the past with different PCs and the problem came from the motherboard. Since that time, we only use motherboards with intel because we know that labview works very well with them.

    It was 2 or 3 years ago, and I thought that the problem has been resolved since then... you know the type of motherboards you use?

  • can I set up an amplifier to lock using the PCI-7831 RIO map?

    Normal 0 21 MicrosoftInternetExplorer4 / * Style Definitions * / table. MsoNormalTable {mso-style-name: "Table normal" "; mso-knew-rowband-size: 0; mso-knew-colband-size: 0; mso-style - noshow:yes; mso-style-parent:" ";" mso-padding-alt: 0 cm 0 cm 5.4pt 5.4pt; mso-para-margin: 0 cm; mso-para-margin-bottom: .0001pt; mso-pagination: widow-orphan; do-size: 10.0pt; do-family: 'Times New Roman' ;} "}

    Hi all

    I use FPGA, PCI-7831R module, I can implement locking an amplifier using the PCI-7831 RIO map?

    Kind regards!

    SUN

    Hey,.

    The following link shows an example of a lock-in amplifier set implemented on a cRIO with 9233 module.

    -> http://decibel.ni.com/content/docs/DOC-1762

    Hope this helps,

    Christian

  • Timestamp of the external Signal triggered using the PCIe-6351

    Hello

    I use a PCIe-6351 to acquire externally triggered data.  My block diagram looks almost exactly at this link in the section A. Posttriggered Acquisition with a digital start triggering:

    http://www.NI.com/white-paper/4329/en

    As you can see he is a straightforward acquisition.  My trigger signal is on PFI0 and it is supposed to occur at regular intervals.  However, I started to suspect that it varies in time.  For example, if this is supposed to happen every 2 milliseconds it can range from 1.9 to 2.1 milliseconds.  Is it possible for DAQmx record the time at which each trigger occurs?  I realize that it will not be synchronized with the time on the PC, but as long as I can have a time stamp of each trigger I can subtract each time individual time of the first condition for the time between triggers.

    Thank you!

    Steve

    MR. O,.

    Thanks for the reply. My system is set up to acquire many points of data at a relatively fast pace, so I their stamp on the data acquisition card and only download on the PC once the acquisition is completed. My understanding is that writing to file measure vi set a timestamp whenever he writes to the file - not for each individual data point. Is this correct?

    Steve

  • Control multiple devices using the PCI-8430/8

    Hello

    We have a few questions about the control of several equipment in series with the PCI-8430/8. I'm sorry if here is not the right place to post these questions.

    The goal is to control flow valve 6 magnetometers at the same time, each magnetometer has a RS 232 interface and baud rate of 300 to 72800 (in general, we use 9600).  Task includes the issue a few commands to config and continually read data of magnetometers in the defined format.

    Software platform: WINDOWS XP/32, C/C++

    (1) is it feasible with the PCI-8430/8? What is the highest baud rate, if all six magnetometers are running simultaneously?

    (2) are there similar to our task example codes? I found a C:.../National Instruments\NI-VISA\Examples\C\Serial\RdWrtSrl.c but I don't know if it's the right thing first (I have some experiences on programming via DAQmx DIO, but not with serial number).

    Thanks a lot for your time!

    Kunyan

    Hi eLions,

    (1) the baudrate on each channel, each channel can support max flow.

    (2) the USB-232/4 is only a single USB port that breaks in 4-port series.

  • History of clear waveform using the reference

    Hello

    I would like to clean up the history of the wave I have in my hand Vi. I'm passing his reference to a sub - VI. I'm not able to find ownership of historical data among the other properties of the property node. Behold that I have:

    Thank you.

    -H.

    And I think that your graphic reference is wrong. Have you copied the reference of the hand? In your hand, you have connected a data type? Since it has a variety of data that can be wired, you must do this so the history is the correct data type.

    And what you're trying to do with the True constant wired for all at the end of the Terminal loop? The loop only runs once.

  • In train to build a pacemaker triggered two pulses (in burst), using the PCI-6251 M-Series card.



  • Create a waveform using PCI-6723 AO with various time intervals on the trailing edge of the sample of 200 Hz clock and 0.1% duty cycle

    I use the PCI-6723 card and I am trying to produce a model of waveform using the analog output channel. The wave consists of 5 different voltage levels. The main problem is that the first 4 voltage levels are supposed to have 926 microseconds time intervals and the time interval the last voltage level is supposed to be 1,296 milliseconds. In addition, the waveform must be triggered on the trailing edge of a sample clock of 200 Hz with a 0.1% Duty Cycle. Is it still possible? If so, any help would be greatly appreciated. Thanks in advance!

    Here is what I currently have, but it does not fulfill my purpose.

     int32   written;
        float64 data[5] = {-0.23, 0.38, 1.12, 1.78, 0.10};  //volts
        //long  time[5] = {  926,  926,  926,  926, 1296};  //microseconds
    
        // DAQmx Configure Clock
        DAQmxErrChk (DAQmxCreateTask("",&taskHandleFRQ));
        DAQmxErrChk (DAQmxCreateCOPulseChanFreq(taskHandleFRQ,"Dev3/ctr0","",DAQmx_Val_Hz,DAQmx_Val_Low,0,200,0.001));
        DAQmxErrChk (DAQmxCfgImplicitTiming(taskHandleFRQ,DAQmx_Val_ContSamps,1));
    
        // DAQmx Start Code
        DAQmxErrChk (DAQmxStartTask(taskHandleFRQ));
    
        // DAQmx Configure Code
        DAQmxErrChk (DAQmxCreateTask("",&taskHandle));
        DAQmxErrChk (DAQmxCreateAOVoltageChan(taskHandle,"Dev3/ao0","",-10.0,10.0,DAQmx_Val_Volts,NULL));
        DAQmxErrChk (DAQmxCfgSampClkTiming(taskHandle,"/Dev3/Ctr0Out",1000.0,DAQmx_Val_Falling,DAQmx_Val_ContSamps,5));
    
        // DAQmx Write Code
        DAQmxErrChk (DAQmxWriteAnalogF64(taskHandle,5,0,10.0,DAQmx_Val_GroupByChannel,data,&written,NULL));
    
        // DAQmx Start Code
        DAQmxErrChk (DAQmxStartTask(taskHandle));
    

    Bingo. This code seems to work much better. Looks like I had to reduce my number of samples per 1 to fit the waveform desired in 5 milliseconds of the sample clock delay.

    However, if someone knows a better way to achieve these results, I am open to all ideas.

    void CDevDlg::OnRdr1e1()
    {
        float64     data[4000];
        float64     volt[5] = {-0.23, 0.38, 1.12, 1.78, 0.10};  //volts
        int x=0,d;
    
        for(int v=0; v<4; v++)
        {
            for(d=0; d<741; d++)
            {
                data[x++] = volt[v];
            }
        }
        for(d=0; d<1036; d++)
        {
            data[x++] = volt[4];
        }
    
        // DAQmx Configure Clock
        DAQmxErrChk (DAQmxCreateTask("",&taskHandleFRQ));
        DAQmxErrChk (DAQmxCreateCOPulseChanFreq(taskHandleFRQ,"Dev3/ctr0","",DAQmx_Val_Hz,DAQmx_Val_Low,0,200,0.001));
        DAQmxErrChk (DAQmxCfgImplicitTiming(taskHandleFRQ,DAQmx_Val_ContSamps,800000));
    
        // DAQmx Start Code
        DAQmxErrChk (DAQmxStartTask(taskHandleFRQ));
    
        // DAQmx Configure Code
        DAQmxErrChk (DAQmxCreateTask("",&taskHandle));
        DAQmxErrChk (DAQmxCreateAOVoltageChan(taskHandle,"Dev3/ao0","",-0.5,2.0,DAQmx_Val_Volts,NULL));
        DAQmxErrChk (DAQmxCfgSampClkTiming(taskHandle,"",800000,DAQmx_Val_Rising,DAQmx_Val_ContSamps,4000));
        DAQmxErrChk (DAQmxCfgDigEdgeStartTrig(taskHandle,"/Dev3/Ctr0Out",DAQmx_Val_Falling));
    
        // DAQmx Write Code
        DAQmxErrChk (DAQmxWriteAnalogF64(taskHandle,4000,1,10.0,DAQmx_Val_GroupByChannel,data,NULL,NULL));
    }
    
  • Synchronize the analog continuous entry and continuous analog output using the unique PCI6024E data acquisition card

    Hello

    I want to generate the continuous signal and at the same time I want to read that signal that I generate using a single card DAQ. I want to generate signal and the received signal is synchronized and in phase.

    I looked at several samples on the sync, but it quiet confusing. One using the same clock of entry while the other use a trigger to start. I use the PCI-6024E DAQ card.

    Can someone help me in this regard?

    In two of these screenshots, the task to HAVE started first (that's what you want, because it is the task of the slave).

    Typically for AO, you can simply write a unique period of your waveform, and then regenerate again and again.  Your waveform would be preset before the task starts.  If you need to update the waveform on the fly according to enter programming during execution of the task, you would disable the regeneration.  In addition, if the wave form is such that it cannot be easily represented by a predefined buffer (for example, it is a strange frequency which is not a same ditch at the bottom of the sample clock), then non-regeneration is the way to go.

    Best regards

  • PCI-5922 self-test error-223431

    I try to reset PCI-5922 OR MAX and get the error code 80040383:

    "There was a problem of resetting the device."

    Then I try the automatic test of NOR-MAX and get the State Code:-223431

    "The self test failed.

    State code:-223431

    Internal software error has occurred in the extended software. Please contact National Instruments. »

    I have tried following th:

    1. reboot the computer

    2. Uninstall and reinstall OR-Scope 15.1.1

    3. change of PCI slot

    After a few tries it turns out that the problem was in the computer. When it is installed in a different computer, the PCI-5922 worked properly.

    Now, it seems obvious: when troubleshooting

    1.) install the Board in another computer

    2.) install another identical sign (if you have one) in computer suspiciuous

    Yonathan

  • The PCI-6010 of is compatible with Windows 7 (32 or 64)?

    I'm hoping to get a quick response because I need right away by the operating system and I do not know if will work with Windows 7, and if so, what matter if it is a 32-bit version or 64-bit Windows?

    Thank you

    Tim

    Hi Tim,.

    The unit will work with Windows 7.  If you take a look at the readme file for the current version of DAQmx (9.2.3), you can find the PCI-6010 in the list of devices fully supported.

    There is also a much smaller list in the Readme of the devices which only is not supported under Windows Vista/7, as well as devices only support for 32-bit versions of these operating systems.  Fortunately, the PCI-6010 is not one of these devices.

    In addition, I can confirm that I used the PCI-6010 with 32-bit versions and 64-bit Windows 7 (I have my test machine reimage quite frequently).

    Best regards

  • With the help of screws of Vision Acquisition with the PCIe-1429

    Greetings earthlings,

    Y at - it a tutorial/book white/site that can give me an introduction on the use of the Vision Acquisition IMAQdx screw to capture images using the PCIe-1429? I am brand new to this kind of thing and it is a little outside my area of expertise, and I don't know where to start. I don't even know the basics of a general approach for the implementation of the process.  Any suggestions would be most appreciated. I am aware that I need to set up a file from the camera via the MAX application.

    Thank you!

    Candice

    Hi Candice,.

    There are a number of references on our site to help you get started. For starters there is the Manual and Quick start guide.

    What device do you want to buy from? Depending on whether you have the camera, you can download the file from camera on our site. To learn more about the files of camera here, which includes links to where to find ready made camera files. Finally, there are a number of examples in the example LabVIEW and CVI finders that explain how to acquire images using IMAQdx. You can access these examples via

    "' ' ' 'Help' example Finder. '" In the pop-up window, access the material record of entry and exit"IMAQdx.

  • Measurement of the temperature with the PCI-6229

    I was announced in an old thread and do not receive and answer, so I thought I try a new.

    Link to the old thread: http://forums.ni.com/ni/board/message?board.id=250&thread.id=14920&view=by_date_ascending&page=1

    I'm trying to measure temperatures using thermocouples using the PCI-6229 and I use two SBC-68LPR to make the connection.  They are not reference on them joints.

    After moving down from enugh to careful reading of the old thread I mentioned above and I think I knew what I should do.  Here's what I do now:

    Create a task - DAQmxCreateTask

    Create a channel for this task - DAQmxCreateAIThrmstrChanVex thermistor

    Create a number of channels of thermocouple for this task (DAQmxCreateAIThrmcplChan) using the cjcsource DAQmx_Val_Chan option and specifying the string thermistor as the source channel

    Start this task - DAQmxStartTask

    Get the temperatures - DAQmxReadAnalogF64

    Stop the task - DAQmxStopTask

    Disable the task - DAQmxClearTask

    I have not yet hooked, but I doubt that it is the cause of the error.

    A few more details (pardon my Delphi):

    Create the channel of the thermistor

    TmPcName: = ' Dev1/IA.19 ";

    Secret: = DAQmxCreateAIThrmstrChanVex)
    TcTaskHandle, / / task handle
    @TmPcName, / / physical channel name
    @TmChName, / / name of channel
    -80,                                   // Min range
    80,                                    // Max range
    DAQmx_Val_DegC, / / units, ° C
    DAQmx_Val_ResistanceConfiguration_4Wire, / / 2-wire, 4-wire, etc.
    DAQmx_Val_ExcitationSource_External, / / source of excitement, external
    1, / / value of excitement
    9.376e-4,                         // a
    2.208e-4,                         // b
    1.276e-7,                         // c
    30000);                            Resistance of reference

    Creation of the channel of thermocouple:

    TcPcName: = ' Dev1/ai23;

    Secret: = DAQmxCreateAIThrmcplChan)
    TcTaskHandle, / / task handle
    @TcPcName, / / physical channel name
    '',                                     // Channel name
    0,                                    // Min range
    1000, / / Max range
    DAQmx_Val_DegC, / / units
    DAQmx_Val_DegC, / / type of Thermocouple
    DAQmx_Val_Chan, / / source CJC
    25, / / value of CYC, so DAQxm_Val_ConstVal
    @TmPcName);             CJC channel, so DAQxm_Val_Chan

    It looks like 4 scales is required for voltage excitement thermistor measurements.

    In addition, it seems that external excitation is necessary in my case, PCI-6229.

    Everything works if I use a CJCConstant.  When I do this I use the same code to create channels of thermocouple, but I spend creating the channel of the thermistor.  When I try to use a CJCChannel I get an error saying "value required is not supported for this property value," which occurs when I call DAQmxStartTask.  I don't have no idea of what this message refers to and the best I can tell the properties that I've specified sense.  The constant termistor are from actual thermistor, that I found on travailleursduweb.com.

    I could also use some help to know how to connect the thermistor.  Looks like I need to fab, a thermistor circuit myself, with a stable voltage to power the termistor and use a double-ended analog and reference to the channel.

    Thank you

    Mike

    The error of thermocouple type was a type-o in the post.   Thanks for catching it.

    I think I found the problem.

    I wrote a small program to test for Thermistors and I went to using the routine exctation of tension for a common routine of excitement (... IEX instead of... Vex).  I had been by specifying a minimum value less than 0.  I changed it from-80 to 0, and it works now.  However, I got an error in division by zero, intermittently, when you read a thermistor channel.  The error is not in my code.  It occurs when you call DAQmxReadAnalogF64 for the first time and I'm not all mathematical related to this call.  I'm still looking into it.

  • Dell PowerEdge T430 using 1 PCIe slot for a PCIe of Sound Blaster card

    Got a T430 with RAID and network NIC using the PCIe connectors have only Slot 1, which is "Platform Controller Hub. Can I use Slot 1?

    I do not know whether the server will support a sound card, but you can try. Looking at the docs here slot 1 and 2 are provided and controlled by the Board of Directors system, slot 3 and 4 by cpu1 and 5, 6 by cpu2. Location 1 is usable.

Maybe you are looking for