hil_write_buffer_example.m
Open this M-file

MATLAB Command Line

Click to copy the following command line to the clipboard. Then paste it in the MATLAB Command Window:

edit hil_write_buffer_example.m

HIL Write Buffer Example

This example writes 10,000 samples to analog output channels 0 and 1, and to digital I/O channels 0 and 1, at a sampling rate 1kHz. The samples consist of two 100 Hz sine waves of differing amplitudes to the analog channels and two square waves of differing frequencies to the digital channels.

System Requirements

This example requires hardware supported by the HIL command set, such as the Q4 or Q8 hardware-in-the-loop card. Furthermore, the card must support buffered writes to multiple types of channels.

Configuring the example

To set up the example for your data acquisition card, edit the M-file and change the board_type to the type of board being used. If you have more than one of these data acquisition cards in your machine, then also change the board_identifier variable to refer to desire board. Board identifiers are typically equal to the board number, with the first board being board '0', the next board being board '1', etc.

If your board does not support two analog output channels, then change the channels variable to a vector of the appropriate number of channels. Use an empty matrix if the board does not support analog channels at all. Do likewise for the other channel types.

Running the example

Simply type the name of the example, hil_write_buffer_example, at the Matlab command prompt to run the example. The sine waves at the analog outputs and the square waves at the digital outputs must be viewed with an oscilloscope. The output from the example looks like:

This example writes square waves to the first two digital output channels
sine waves to the first two analog output channels for 10 seconds.

The sine wave frequency is 100 and the sinewave amplitudes are:
    DAC[0] =  7.0 Vpp (4.95 Vrms)
    DAC[1] =  8.0 Vpp (5.66 Vrms)
The square wave frequencies are:
    DIG[0] = 500.0 Hz
    DIG[1] = 333.3 Hz

Building code from the example

To build real-time code from the example for the QUARC Win64 target, execute the following command in the MATLAB Command Window:

qc_build_script('hil_write_buffer_example', 'win64');

The command may also be entered in this form:

qc_build_script('hil_write_buffer_example.rt-win64');

The qc_build_script command generates a build script called 'hil_write_buffer_example_build.m' and a main C file called 'hil_write_buffer_example_main.c'. It then invokes the build script to generate C code for the MATLAB script and to compile and link it into a QUARC executable called 'hil_write_buffer_example.rt-win64'. Running qc_build_script again will not overwrite the generated files, so they may be modified and the changes will be incorporated when qc_build_script is run again.

Running the generated executable

Before running the generated executable, open a QUARC Console so that the output of the executable may be seen. The QUARC Console need only be opened once. Use the command:

qc_script_console('hil_write_buffer_example.rt-win64', 'all');

The QUARC Console shows the standard output from any QUARC executable that is run on the target (since the 'all' option was specified).

To run the generated executable, type the following command in the MATLAB Command Window:

qc_run_script('hil_write_buffer_example.rt-win64');

The output from the executable will be seen in the QUARC Console:

QUARC Console output