Checking Status of Analog Output operation on DAQ6731

I am using the DAQ6731 board to output an analog signal. My program reads in a file which contains pre-calculated data values, and uses the following series of NIDAQ functions to do the outputting:
WFM_Group_Setup
WFM_Load
WFM_Rate
WFM_ClockRate
WFM_Group_Control/START
This is followed by a do-while loop which is supposed to check whether the output is done yet. I am trying to use WFM_Check to determine when the data is finished. As an added function, I want to let the user spontaneously stop the operation at any time by pressing any key. To do this, I am using an if statement which checks whether getch()==NULL, and if NOT, then I break out of the do-while loop. I could also put the getch()==NULL condi
tion inside the while argument and have it check there.
The loop is followed by WFM_Group_Control/CLEAR.
My problem is as follows. It seems like the WFM_Check function isn't doing anything. The getch()==NULL condition works (if I press a key at any time, the DAQ will stop waveform generation). However, if I do not press any keys, and the waveform generation finishes on its own, the program hangs there. It won't proceed until I press a key. I would like the program to stop if EITHER I press a key OR the waveform generation finished on its own. The key is, the wfmStopped parameter seems to remain 0 no matter what happens. In the Traditional NI-DAQ Function Reference Help, Version 7.1, it says for WFM_Check that "If the generation is continuous (including pulsed waveform generation), the parameters wfmStopped and itersDone are always 0". So it seems like WFM_Check is not doing anything when I call it.
Is there any way (like other NI-DAQ functions) that I can use which wil
l act as a flag and tell me when my operation is complete?

Hello,
It seems to me that our goal should be to output the data, and check for a key press. I have attached a sample program that will output data in small chunks. You should be able to modify this program to output your data from the disk. You can also add key press checking code inside of the while loop. Whenever you are done writing data, or get a key press, just exit the while loop.
Let us know if you have any follow questions on how to use this program.
Best regards,
Justin T.
National Instruments
Attachments:
WFMdoubleBuf.C ‏9 KB

Similar Messages

  • Buffered analog output puts out additional sample on aborting or stopping task

    I'm using DAQmx and LV 8.2
    I'm doing a buffered analog output operation where the sample clock is driven by pulses from ctr0 on the same device (PXI-6070E).  When I end the analog output task, either with the DAQmx stop task or DAQmx control task (abort option selected), the AO puts out one additional point from the buffer.  (I have checked by setting breakpoints and stepping through the code that the additional point is definitely generated when the analog ouput task is aborted)
    I need the output to remain where it was before the stop task command is issued.  How do I fix this?
    Thanks,
    Marc

    I'm watching to see if there hasn't been a sample output in a certain length of time, then terminating the task if there hasn't been.  Specifically, I have ctr0 outputting pulses to drive the task based on input from the AnalogComparisonEvent terminal.  I'm using a counter on a different PXI device to count the number of pulses and monitoring this count to determine if another sample has been output.  I'm outputting the ctr0 pulse to PFI3 as well, and I'm monitoring both the ctr0 output (which drives the ao clock) and the analog output itself on an oscilloscope.
    Basically I'm sitting in a while loop waiting for the monitoring counter to fail to increment.  Then I terminate the while loop and stop the analog output task.  I can watch the analog output on the oscilloscope while I step through the program.  Immediately before the daqmx control task - abort (or daqmx stop if I don't abort first, or daqmx clear, if I don't abort or stop) vi runs, the analog output remains outputting the last sample.  Immediately after the abort, stop, or clear, the analog output advances one sample in the buffer. 
    During this time, ctr0 does not output another pulse, so the scan clock should not advance.
    Thanks,
    Marc

  • I want to have two different operations on two analog output terminals of DAQ. When I work

    with AO0, it works. But after I add in another channel, AO1, there is an error saying that 'specified group is in use'. Actually, I assigned different group number for AO0 and AO1 when configuing the device using AO Config.vi. How to deal with this error?I want to have two different operations on two analog output terminals of DAQ. When I work with AO0, it works. But after I add in another channel, AO1, there is an error saying that 'specified group is in use'. Actually, I assigned different group number for AO0 and AO1 when configuing the device using AO Config.vi. How to deal with this error?

    with AO0, it works. But after I add in another channel, AO1, there is an error saying that 'specified group is in use'. Actually, I assigned different group number for AO0 and AO1 when configuing the device using AO Config.vi. How to deal with this error?Hey Steve,
    Doug is correct. Both analog outputs have a shared clock. If you want to write to both outputs simultaneously, you will need to include both of them in the same operation (group).
    You can write a 2-D array to the AO Write VI in which you can include data for both channels. In the 2-D array, column 1 will be for the first channel in the channel list and column 2 will be for the second channel.
    I hope this helps.
    Regards,
    Todd D.
    NI Applications Engineer

  • Generating sawtooth in Analog Output

    Dear Mr.
    I am programinning in labview and I would like to generate from my DaqPad 6020E sawtooth signal. I have a problem becouse I can generate virtually but not in Analog Output. Please verify my program which is attached to the mail. If you can please write your simple program which generate sawtooth signal in analog Output. I was checked programs (examles) in ni.com but i can generate one. I know that AO works becouse i checked it sending sin (as trigonomethry sig) and there was no problem.
    Best regards
    Tomasz Olszewski
    PS. If You speak Polish we can talk in Polish language.
    Attachments:
    ct03.vi ‏124 KB

    Have you verified output in the Test Panels of the Measurement & Automation Explorer (MAX)? Simply wire analog output 0 to analog input 0. In the test panels, generate a sine wave on the analog output pin. If you can read in the signal on the Analog Input tab, then the board is operational and something is wrong in the code. Check the code to make sure you are referencing the correct device # and channels. Have a great day!

  • Synchronize a counter and Analog Output

    Hello all,
    I want my Analog Output generation and my Counter0 operations to start at the same time. Any ideas how to accomplish it.
    I have tried to feed the output of another counter1 to the gate of counter0 as well as to the clock source of Analog Output (GPCTR1).
    This however doesnt seem the solution.
    Will appreciate any suggestions.
    Thanks

    Mili,
    I think you'll have to experiment, but it might be possible to do both operations with the equipment you have. This would be relatively easy with an NI 660x counter/timer board.
    You can use the Route Signal VI to send your counter output to a RTSI line and then select the RTSI line as your counter 1 gate. (this is the generic solution for any number of counters)
    For getting an external update clock, check out the continuous external clock example programs that are included with LabVIEW or NI-DAQ.
    You can easily start your output with a digital trigger, but the STC counters do not allow for digital triggering of counter operations. You may be able to come up with some programming scheme that gets counter 1 started, but gated low so t
    hat it is not counting until the start trigger comes in for the acquisition (such as a start trigger that is forced low until the start trigger for the analog input comes in). This would be a design you would have to work out or see if anyone else has found a way to do it.
    You can also search for many example programs/discussions at http://www.ni.com/support by searching in Option 3 for keywords like external, analog, output, and trigger.
    Hope this helps.
    Regards,
    John Nieri
    Applications Engineer
    National Instruments

  • How to get check box in alv output

    hi gurus
    can anyone explian me how to get check box in alv output
    it should not be a pop up window
    i want to get in output itself
    tahnk you
    regards
    kals.

    Hi
    by using rs_selfield
    ty to call dynamic subroutine..
    FORM user_command USING r_ucomm LIKE sy-ucomm
    rs_selfield TYPE slis_selfield. "#EC CALLED
    read table rs-selfield with key cond = 'X'
    endform.
    see the below example
    REPORT Z_GET_REFRESH no standard page heading.
    type-pools : slis.
    tables : makt,
    mara.
    data : i_fieldcat type slis_t_fieldcat_alv.
    CONSTANTS :
    gc_refresh TYPE syucomm VALUE '&REFRESH'.
    data : begin of i_makt occurs 0,
    matnr like makt-matnr,
    maktx like makt-maktx,
    end of i_makt.
    data : v_repid like sy-repid,
    g_user_command type slis_formname value 'USER_COMMAND',
    g_status_set type slis_formname value 'SET_PF_STATUS',
    lt_event_exit TYPE slis_t_event_exit,
    ls_event_exit TYPE slis_event_exit.
    DATA:LC_GLAY TYPE LVC_S_GLAY.
    select-options s_matnr for mara-matnr .
    start-of-selection.
    select matnr maktx from makt into table i_makt
    where matnr in s_matnr.
    end-of-selection.
    Fill the fieldcatlog
    perform fill_field.
    Call the FM
    perform call_fm.
    *& Form fill_field
    text
    --> p1 text
    <-- p2 text
    FORM fill_field.
    data wa_fieldcat type slis_fieldcat_alv.
    clear : wa_fieldcat.
    wa_fieldcat-tabname = 'I_MAKT'.
    wa_fieldcat-fieldname = 'MATNR'.
    wa_fieldcat-outputlen = '18'.
    wa_fieldcat-seltext_l = 'Material #'.
    wa_fieldcat-col_pos = '1'.
    append wa_fieldcat to i_fieldcat.
    clear : wa_fieldcat.
    wa_fieldcat-tabname = 'I_MAKT'.
    wa_fieldcat-fieldname = 'MAKTX'.
    wa_fieldcat-outputlen = '40'.
    wa_fieldcat-seltext_l = 'Material Desc'.
    wa_fieldcat-col_pos = '2'.
    append wa_fieldcat to i_fieldcat.
    ENDFORM. " fill_field
    *& Form call_fm
    text
    --> p1 text
    <-- p2 text
    FORM call_fm.
    v_repid = sy-repid.
    LC_GLAY-EDT_CLL_CB = 'X'.
    CLEAR ls_event_exit.
    ls_event_exit-ucomm = gc_refresh. " Refresh
    ls_event_exit-after = 'X'.
    APPEND ls_event_exit TO lt_event_exit.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    I_INTERFACE_CHECK = ' '
    I_BYPASSING_BUFFER =
    I_BUFFER_ACTIVE = ' '
    I_CALLBACK_PROGRAM = v_repid
    I_CALLBACK_PF_STATUS_SET = g_status_set
    I_CALLBACK_USER_COMMAND = g_user_command
    I_CALLBACK_TOP_OF_PAGE = ' '
    I_CALLBACK_HTML_TOP_OF_PAGE = ' '
    I_CALLBACK_HTML_END_OF_LIST = ' '
    I_STRUCTURE_NAME =
    I_BACKGROUND_ID = ' '
    I_GRID_TITLE =
    I_GRID_SETTINGS = LC_GLAY
    IS_LAYOUT =
    IT_FIELDCAT = i_fieldcat
    IT_EXCLUDING =
    IT_SPECIAL_GROUPS =
    IT_SORT =
    IT_FILTER =
    IS_SEL_HIDE =
    I_DEFAULT = 'X'
    I_SAVE = ' '
    IS_VARIANT =
    IT_EVENTS =
    IT_EVENT_EXIT = lt_event_exit
    IS_PRINT =
    IS_REPREP_ID =
    I_SCREEN_START_COLUMN = 0
    I_SCREEN_START_LINE = 0
    I_SCREEN_END_COLUMN = 0
    I_SCREEN_END_LINE = 0
    IT_ALV_GRAPHICS =
    IT_ADD_FIELDCAT =
    IT_HYPERLINK =
    I_HTML_HEIGHT_TOP =
    I_HTML_HEIGHT_END =
    IT_EXCEPT_QINFO =
    IMPORTING
    E_EXIT_CAUSED_BY_CALLER =
    ES_EXIT_CAUSED_BY_USER =
    TABLES
    T_OUTTAB = i_makt
    EXCEPTIONS
    PROGRAM_ERROR = 1
    OTHERS = 2
    IF SY-SUBRC 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM. " call_fm
    FORM USER_COMMAND *
    FORM user_command USING r_ucomm LIKE sy-ucomm
    rs_selfield TYPE slis_selfield. "#EC CALLED
    data i_RSPARAMS like RSPARAMS occurs 0.
    CASE R_UCOMM.
    WHEN '&IC1'.
    read table i_makt index rs_selfield-tabindex.
    SET PARAMETER ID 'MAT' FIELD i_makt-matnr.
    if not i_makt-matnr is initial.
    call transaction 'MM02' and skip first screen.
    endif.
    when '&REFRESH'.
    CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS'
    EXPORTING
    CURR_REPORT = v_repid
    IMPORTING
    SP =
    TABLES
    SELECTION_TABLE = i_RSPARAMS
    EXCEPTIONS
    NOT_FOUND = 1
    NO_REPORT = 2
    OTHERS = 3
    IF SY-SUBRC 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    submit z_get_refresh with selection-table i_RSPARAMS.
    rs_selfield-refresh = 'X'.
    ENDCASE.
    MOVE '&REFRESH' TO r_ucomm.
    ENDFORM.
    FORM set_pf_status *
    FORM SET_PF_STATUS USING rt_extab TYPE slis_t_extab.
    DELETE Rt_extab WHERE fcode = gc_refresh.
    SET PF-STATUS 'STANDARD_FULLSCREEN' OF PROGRAM 'SAPLKKBL'
    EXCLUDING Rt_extab.
    *SET PF-STATUS 'STANDARD' EXCLUDING rt_extab.
    SET TITLEBAR sy-tcode.
    ENDFORM.

  • NI-DAQmx VisualStud​io C++ 6 Single point analog output

    Specs: NI-DAQmx 7, VisualStudio C++ 6.0,  PCI-6722,8channel AO
    We have a very simple application: set a voltage (actually 6 channels) and keep it until we want it changed again, perform the change very quickly in response to an image capturing algorithm. So I don't need any waveforms or buffering.
    In this forum post http://forums.ni.com/ni/board/message?board.id=231​&message.id=3283&query.id=18094 you talk about an AOOnePoint example, but I get an error that the NI-DAQ driver does not support my device.
    I may need to use NI-DAQmx, but how? I would like to use something like AO_VWrite(,,), maybe for 6 channels in one call. But I can't find it in NI-DAQmx. It seems I need to setup buffers and frequencies. I have a working sample, but it seems a slow and certainly overkill of this simple application:
    // Link with \DAQmx ANSI C Dev\lib\msvc\NIDAQmx.lib
    #include "NIDAQmx.h"
    double[2] data;
    int taskHandleAnalog;
    int written;
    void Init()
        DAQmxErrChk (DAQmxCreateTask("",&taskHandleAnalog));
        DAQmxErrChk (DAQmxCreateAOVoltageChan(taskHandleAnalog,"Device and Channel Info","",0,10,DAQmx_Val_Volts,NULL));
        DAQmxErrChk (DAQmxCfgSampClkTiming(taskHandleAnalog,"",1000,DA​Qmx_Val_Rising,DAQmx_Val_ContSamps,NUMBER_OF_AO_SA​AMPLES));
        DAQmxErrChk (DAQmxWriteAnalogF64(taskHandleAnalog,NUMBER_OF_AO​_SAAMPLES,0,1.0,DAQmx_Val_GroupByChannel,data,&wri​tten,NULL));
        DAQmxErrChk (DAQmxStartTask(taskHandleAnalog));
    void SetVoltage( double voltage )
        data[0] = voltage;
        data[1] = voltage;
        DAQmxStopTask(taskHandleAnalog);
        DAQmxErrChk (DAQmxWriteAnalogF64(taskHandleAnalog,NUMBER_OF_AO​_SAAMPLES,true,10.0,DAQmx_Val_GroupByChannel,data,​&written,NULL));

    Hi,
    It looks like you simply wants to output voltages on the analog output channels, but only wants one update at a time with no waveforms or buffering in DAQmx.
    As I'm sure you know there are really just 3 types of measurements.  Single Point, Finite, and Continuous.  Since you want a single value at a time it's just a Single Point operation.
    You can find DAQmx examples for single point operations in this path:
    C:\Program Files\National Instruments\NI-DAQ\Examples\DAQmx ANSI C\Analog Out\Generate Voltage\Volt Update
    Simply place the DAQmx Write Code within a loop and you will be updating one value at a time, but multiple times when "we want it changed again".
    Dennis Morini
    Field Sales Engineer
    National Instruments Denmark
    http://www.ni.com/ask

  • Which audio interface(s) for 16 to 20 analog outputs?

    Hi. I wonder if anyone can help me...
    I'm running Logic 7.2 on a black MacBook. For my inputs I am using the MOTU 8pre, as this is convenient especially when recording drums with my band... no scrambling together of pre-amps... no faff...
    The thing is... I've been given a shed load of gear (literally), including a 24 channel analog mixing desk and tons of outboard rackmounted effects units/compressors/gates...
    I would REALLY love to integrate the two systems, especially at the mixing stage, by routing my Logic tracks to the desk. Unfortunately, the MOTU 8pre only has a couple of analog outputs (+ headphone out).
    To make this a venture worth undergoing, I'm going to need a minimum of 16 analog outputs. 20 would be great if possible.
    I suppose my initial questions are:
    1. Can I daisy-chain 2 firewire audio interfaces (each with 8 analog outputs) to give me a total of 16 analog outputs?
    2. Bearing in mind I have a low budget, could anyone advise me on which units to get. I don't think I could afford any more MOTU gear, unless I find an amazingly low priced second hand item. What about Edirol or M-Audio?
    Thanks in advance.
    MS

    This is worth checking: http://www.ioneconnects.com/product.shtml
    Based on new DICE II firewire chip with JetPLL technology (should have much lower jitter than regular firewire Audio devices that are not built on DICE II).
    I believe that you can choose the configuration you need.
    The only question for me is whether they are affected by apple's firewire streaming bug. But as I've heard that in the info of 10.4.9 SDK is a statement, that core audio bugs were repaired, I hope the offset streaming problem will be finally the past...
    Man I am really considering this firewire snake, as it definitelly has many ins and outs - including 4 AES/SPDIF in and out!!!
    I am going to upgrade my studio and two of those will probably give me enough ins and outs for all my needs (musicians + outboard hardware and a summing mixer). I was also thinking about Symphony (PCI solution seems to be still more stable than firewire) and some I/O "modules" from apogee, but that is much more expensive. And I 've read only positive info about the DICE II, so maybe I will give a firewire another chance...

  • Loop in combination with Analog output

    Hi
    I have modified the script thats translate a value in to a static analog output voltage. The value comes from another online running application. The analog output value must remain static until a new value arise. I'm using VB6 and DAQmx 8.5 on a XP computer. The DA converter is NI USB-6211. I have tried to play around with the Start/Stop and clear commands but my script still makes the program highly unstabile.
    So am I using the commands correctly?. And have I setup the write commands correctly too. Can anyone allso explain how to use the command Doevent correctly
      Dim taskHandle As Long
        Dim clockEdge As Long
        Dim sampsPerCycle As Double
        Dim desiredSampleClockRate As Double
        Dim resultingFrequency As Double
        Dim amplitude As Double
        Dim numSampsPerChannel As Long
        Dim numChannels As Long
        Dim errorCode As Long
        Dim errorString As String
        Dim sampsPerChanWritten As Long
        Dim XICVolt As Double
     '  Create the DAQmx task.
        Call DAQmxCreateTask("", taskHandle)
        '  Add an analog output channel to the task and check to see whether there is only ONE task.
        Call DAQmxCreateAOVoltageChan(taskHandle, "Dev2/ao0", "aoChannel", "-10", "10", DAQmx_Val_VoltageUnits2_Volts, "")
        Call DAQmxGetTaskNumChans(taskHandle, numChannels)
        If numChannels > 1 Then
            errorCode = -1
            errorString = "Please specify only one channel."
            Err.Raise errorCode, , errorString
        End If
    Data_is_recorded:
        If Actualcycles = expectedcycles Then
        GoTo end_script
        Else
        If Actualcycles > lastcycles Then
        DoEvents
         Call DataPoint.GetDataPoint(thenumberOfDataPoint, theXvalue, theYvalue)
            XICVolt = (theYvalue / 10000000#)
        '  Write to the desired channel(s).
        Call DAQmxWriteAnalogF64(taskHandle, 1, True, 10#, _
            DAQmx_Val_GroupByScanNumber, XICVolt, sampsPerChanWritten, ByVal 0&
        Else
         lastcycles = theWF.GetActualNumberOfCycles(sampleIndex, 0)
         End If
        GoTo Data_is_recorded
    end_script:
    End If
    call DAQmx.stopTask(Taskhandle)
    call DAQmx.clearTask(taskhandle)
    Best regards
    Peter

    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.

  • I often get transfer errors -10608 and -10803 when doing double buffered analog output. How can I fix this?

    I'm using the PCI 6711 board programmed in Visual Basic. I'm working from the WFMDoubleBuf example file for VB and I've modified it for continuous output on 2 analog channels. I fill the buffers with customized waveforms from files I have previously created. I often get -10608 (noTransferInProgError, No transfer is in progress for the specified resource) and -10803 (transferStoppedError   , The on-going transfer has been stopped. This is to prevent regeneration for output operations, or to reallocate resources for input operations) errors when I try to output at higher rates (about 140000samples per second and up). The -10608 error generally happens after seve
    ral (sometimes hundreds) of half buffers have been transfered, whereas the -10803 error usually occurs immediately after starting output. This device is supposed to be able to output at up to 1Msample per sec per channel but I don't seem to be able to do that. I have tried increasing the buffersize (up to 16777216) with no apparent effect. Is there any other information as to what causes these errors or how they can be avoided. Any ideas?

    Roz,
    I found two KnowledgeBase entries about the most common causes of these errors.
    1. Why Do I Receive the Error -10608 When Using the PCI-6711?: http://digital.ni.com/public.nsf/3efedde4322fef19862567740067f3cc/37752a79eb6a950886256c8b006e8870?OpenDocument
    2. Why am I Getting the 10800 and/or 10803 Errors?:
    http://digital.ni.com/public.nsf/3efedde4322fef19862567740067f3cc/c9097c72463d215886256a700075a6ef?OpenDocument
    Have a great day.

  • Enabling Create New Query and Personalize in Check Status

    Hi All,
    We followed below steps Enable Create New Query and Personalize in Check Status
    Go to the role of the user - PFCG - Authorizations - Change authorization data - Cross-application authorization objects - authorizations for Personal Object Work List (POWL) iViews
    Specified the application ID POWL_APPID - SAPSRM_E_CHECKSTATUS
    What should be done to enable define query and personalize for all users.
    We have changed the following settings -
    In activity POWL_CAT - '??' , POWL_LSEL-DISALLOWED - POWL_QUERY - ?? , POWL_RA_AL - ?? , POWL_TABLE - ??.
    With our current settings Create New Query and Personalize in Check Status appear but are disabled (greyed out)
    New Query Button appears but clicking on it produces no output.
    Nikhil
    Edited by: Nikhil Malvankar on Sep 12, 2011 5:57 AM

    You could the following to check if the Query still exists in the database:
    Open SQL Management Studio and connect to the SQL Server hosting the ConfigMgr database
    In SQL Managemnt Studio, Expand Database, Expand CM_YourSiteCode
    Expand tables and find the dbo.Queries table
    Right-click the dbo.Queries table and select Select Top 1000 Rows
    See if you can find your "ghost" Query
    Please note - it IS NOT supported
    to make direct changes to ConfigMgr database so I would properly call PSS on this one before you start getting creative.

  • Can I use two FP-AO-210'​s and one FP-1000 to obtain 16 channels of analog output?

    Hello All,
    I'm new to both Fieldpoint and LabVIEW.
    I'm developing a control system that requires at least 9 channels of analog-only output. I have been trying to connect two FP-AO-210's to a single FP-1000 by connecting one FP-AO-210 directly to the FP-1000, and the second FP-AO-210 to the first FP-AO-210. However, Fieldpoint Explorer only detects the network interface and the first analog output module.
    Is this configuration correct? Or, do I need a FP-1001 in order to use a second FP-AO-210?
    Does anyone have any alternate suggestions on how to obtain at least 9 channels of analog output?
    Thanks,
    Eric W

    Eric,
    One FP-1000 (or FP-1001/160X/20XX) can control up to 9 IO modules. If the second FP-AO-210 is not being detected by FieldPoint Explorer there are a couple things to check. First check to make sure that all of the terminal bases and modules are firmly connected to each other.
    Next, check the Power & Ready LED of the FP-AO-210 at address 2. Both LEDs should be lit. If they are not, de-power the system, remove the modules and terminal bases and make sure that you do not have any bent pins. Re-assemble and power up the system. Use FieldPoint Explorer again.
    If the module is still not detected, take a look at the addressing of the detected modules. The system should be detecting the first FP-AO-210 at address 1 (or 1 + a multiple of 10 if you have s
    et the FP-1000 to a different address). If the FP-AO-210 is at a different address, then it is likely a problem with the addressing circuitry either in the network module or the terminal base. Try swapping the positions of the two terminal bases and try again. If it works, then the error is in the addressing circuitry of the terminal base, if not, then it is in the addressing circuitry of the network module. Note: bent pins can also cause this.
    Regards,
    Aaron

  • PC able to detect all except for the analog output channel of my SCB-68 device.

    I would like to use the analog output channel of my SCB-68 device. I tried to locate the analog o/p using the wizard but still unable to detect. Why is that so?
    Any possible steps/procedure that i have missed out?
    Thanks

    Rezn,
    Aha, therein lies the problem. This was what I suspected, and thus my question as to which data acquisition card you are using. The DAQCard-AI-16XE-50 has analog inputs, digital I/O, but no analog outputs at all. So your card is working as it should, but it has no analog outputs.
    If you have the 2002 National Instruments catalog, you can see this in a table on page 231 (your DAQ card is the one on the bottom), or check this pdf file:
    http://www.ni.com/pdf/products/us/2mhw254-255e.pdf
    Your card is also called the NI6012E. Check out the small table on the first page.
    Mark

  • Error 10403:AO Buffer Config (i just want to command an analog output)

    just wanna command an analog output with a little program using intermediate vi/but when i execute it an error 10403 appears/need sone to help me

    What type of DAQ device do you have? You can check the KB below about getting this error on certain boards.
    http://digital.ni.com/public.nsf/websearch/6ED30C2CBB5FF447862562C10056D61B?OpenDocument
    You might also try the simple example that ships with LabVIEW. Write N Updates.vi
    Hope this helps.

  • Using analog output in the background

    Hi,
    I need to use the analog output channel on a NI PCIe-6351 to play an audio signal, and while the signal plays i need make some changes the UI dialog box, is it possible for me to move the playing of the audio to the background and proceed with program execution?
    Here is a simple piece of code that explains what I'm trying to do: 
    #include<stdio.h>
    #include<stdlib.h>
    #include<conio.h>
    #include<math.h>
    #include<string.h>
    #include<memory.h>
    #include<wchar.h>
    #include "sndfile.h" //include file for the sound library
    #include "NIDAQmx.h"
    #define DAQmxErrChk(functionCall) { if( DAQmxFailed(error=(functionCall)) ) { goto Error; } }
    float *fWavSample;
    SNDFILE *SoundFile;
    SF_INFO SoundFileInfo;
    int iNoOfSamples=0;
    int32 error=0;
    TaskHandle AOtaskHandle = 0;
    float64* AIOSample;
    char errBuff[2048]={'\0'};
    int32 fnCreateTask(TaskHandle *AOTaskHandle)
    int32 error=0;
    DAQmxErrChk(DAQmxCreateTask("", AOTaskHandle));
    Error:
    return error;
    int ReadWavFile()
    //Open the wav file for reading
    SoundFile=sf_open("sin_10s.wav",SFM_READ,&SoundFileInfo);
    //Check if file is opened sucessfully
    if (SoundFile == NULL)
    puts("File not opened");
    return FALSE;
    //allocate memory for the buffer that is to hold the wav data&colon;
    fWavSample = new float[SoundFileInfo.channels * SoundFileInfo.frames];
    iNoOfSamples = SoundFileInfo.channels * SoundFileInfo.frames;
    //Read data into the float structure that has been copied in
    sf_readf_float(SoundFile, fWavSample, SoundFileInfo.frames);
    //Allocate memory for the structure that is to hold the sound samples
    AIOSample = new float64[iNoOfSamples+660];
    //Copy wavefile data into the new float64 array (needs to be typecasted to float64)
    int i=0;
    for(i=0;i<(SoundFileInfo.channels * SoundFileInfo.frames);i++)
    AIOSample[i] = (float64)fWavSample[i];
    //After the float64 array has been filled, release the memory used by fWavSample
    free(fWavSample);
    return 0;
    int main(int argc, char** argv)
    DAQmxErrChk(fnCreateTask(&AOtaskHandle));
    //Create an analog out channel
    DAQmxErrChk (DAQmxCreateAOVoltageChan(*(&AOtaskHandle),"Dev1/ao1","",-10.0000000,+10.00000,DAQmx_Val_Volts,NULL));
    //16 bit output resolution needed, sampling rate matched to the WAV file's
    DAQmxErrChk (DAQmxCfgSampClkTiming(AOtaskHandle,"",44100.0,DAQmx_Val_Rising,DAQmx_Val_ContSamps,1000));
    //Set the output to trigger on a rising edge on PFI6
    //DAQmxErrChk (DAQmxCfgDigEdgeStartTrig (AOtaskHandle,"PFI6",DAQmx_Val_Rising));
    //Start the task in the background
    DAQmxStartTask(AOtaskHandle);
    ReadWavFile();
    DAQmxErrChk(DAQmxWriteAnalogF64(AOtaskHandle,(SoundFileInfo.channels * SoundFileInfo.frames),true,10.0, DAQmx_Val_GroupByChannel,AIOSample,NULL,NULL));
    printf("Playing audio\n");
    Error:
    if( DAQmxFailed(error) )
    DAQmxGetExtendedErrorInfo(errBuff,2048);
    //puts(errBuff);
    puts(errBuff);
    return TRUE;//DefWindowProc(hwndmon,message,wParam,lParam);
    getch();
    The program reads a 10 seconds long 1kHz sine wave signal from a WAV file and plays it over AO0.
    I want the program to  print "Playing Audio" on the console window while the audio is still playing, i.e when DAQmxWriteAnalogF64 is executing.
    I'm using Visual Studio 2005 on Windows XP and an NI PCIe6351.
    I'd really appreciate any help I can get.
    Thanks a lot!
    RaziM

    Hi RaziM, 
    It sounds like you will need to implement some sort of multithreading to accomplish playing audio in the background and also making changes in the UI dialog box in the foreground. Since DAQmx is thread safe this should definitely be possible, but it will probably take a little more work on your part.
    You may want to take a look at this page which gives a walkthrough to Multithreading with a Background component, http://msdn.microsoft.com/en-us/library/ywkkz4s1.aspx
    Here is another forum post about how DAQmx runs multiple threads, http://forums.ni.com/t5/Measurement-Studio-for-VC/DAQmx-how-does-it-multithread/td-p/221953
    I hope some of this helps!
    Rachel M.
    Applications Engineer
    National Instruments

Maybe you are looking for

  • TV + Closed-Lid Mode?

    Is running in closed-lid mode on the MacBook using a television with the Apple Video Adapter supported? I can't get it to work properly. Brian

  • Nokia E7 - MMS Picture Issue

    I have had my Nokia E7 (US Version) for about 24 hours now & still cannot figure out if I'm doing something wrong with the MMS. I can attach & send images without a problem to the recipient, but not the other way around. I have received a few picture

  • BusinessObjects XI 3.1 Integration Kit for SAP

    Hi, Is it possible to replace BusinessObjects XI 3.0 Integration Kit for SAP with BusinessObjects XI 3.1 Integration Kit for SAP in SDN? Otherwise, one requires s-id to download it from SAP Service Marketplace which not everyone has s-id. Or, where c

  • Javascript drop-down Spry menu not working

    I downloaded the Spry UI 1.7 menu bar from the widget browser and pasted the code into DW CS4. I could not place it as you can in CS5. DW throws up javascript errors, but the styled menu bar works in live view and in the testing environment on Firefo

  • Using UML290 with 4G Router

    Has anyone tried using their UML290 with a 4G router? You don't use VZAccess Manager with a router. I'm wondering if this would solve the problems everyone seems to be having. I know CradlePoint has a beta 4G firmware update for their MBR1000 router