Generate Signals in the Background Continuously
This example shows how to continuously generate signals. A
            continuous background generation depends on callbacks to enable continuous queuing of
            data and to react to any errors as they occur. In this example, you generate from an NI
            9263 device with ID cDAQ1Mod2.
A callback function is configured to run when a certain number of scans are required.
Create an NI DataAcquisition object and add an analog output voltage channel on
                  cDAQ1Mod2:
d = daq("ni"); addoutput(d,"cDAQ1Mod2","ao0","Voltage");
Specify the channel ID on NI devices using a terminal name, like
                  'ao1', or a numeric equivalent like
               1.
Queue a column of output data.
preload(d,linspace(1,10,1000)');
Create a simple callback function to load data 1000 samples at a time. Save the
               function file as loadMoreData.m in your working folder:
function loadMoreData(obj,evt) % obj is the DataAcquisition object passed in. evt is not used. write(obj,linspace(1,10,1000)'); end
Define the ScansRequiredFcn to call your function
                  loadMoreData:
d.ScansRequiredFcn = @loadMoreData;
This callback is executed whenever the number of queued scans falls below the
               threshold defined by the property ScansRequiredFcnCount. The
               default threshold is defined at 0.5 seconds of data at the default scan rate. In
               other words, with a default Rate at 1000 scans per second, the
               default ScansRequiredFcnCount value is 500. As your device
               generates an output signal, when the queued data falls below 500 scans, it triggers
               the ScansRequiredFcn.
d.ScansRequiredFcnCount
ans = 
    500Generate the continuous output signal:
start(d,"Continuous")You can execute other MATLAB® commands while the generation is in progress. In this example, issue a
                  pause, which causes the MATLAB command line to wait for you to press any key.
pause
Tip
If you want to continuously generate a repeating or periodic output, preload the waveform data, and use
start(d,"RepeatOutput")