MATLAB Command Line
Click to copy the following command line to the clipboard. Then paste it in the MATLAB Command Window:
edit hil_task_write_continuously_example.mHIL Task Write Continuously Example
This example writes continuously to analog channels 0 and 1, and digital channels 0 and 1, at a sampling rate of 1kHz. Square waves are produced on the digital outputs and sine waves at the analog outputs. It continues to write for 10 seconds.
A task is created to handle writing to the output channels in the background
using quanser.hardware.hil.task_create_writer
. Writing to the output channels is started
using the quanser.hardware.task.start
function. The data to write to the output
channels is stored in the task's internal buffer, one sample at a time, using the
quanser.hardware.task.write
function. See the
HIL Stream From Disk Example
for an example that uses double-buffering instead of writing one sample at a time.
Do NOT press Ctrl+C to stop the script or the example
will not shut down the hardware correctly!
Use the
quanser.hardware.hil.close_all
command in order to shut down the hardware if you have
pressed Ctrl+C.
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 task-based 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 analog output channels, then change the analog_channels
variable to an empty matrix, [].
Running the example
Simply type the name of the example, hil_task_write_continuously_example
,
at the Matlab command prompt to run the example. Use an oscilloscope to view the
output waveforms. The example will stop in 10 seconds. Do not press Ctrl+C.
The output in the MATLAB Command Window will look something like this:
This example writes square waves to the first two digital output channels and sine waves to the first two analog output channels continuously. This example runs for 10 seconds. Do not press Ctrl+C. The sine wave frequency is 10 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 ..................................................................................................... Write operation has been stopped.
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_task_write_continuously_example', 'win64');
The command may also be entered in this form:
qc_build_script('hil_task_write_continuously_example.rt-win64');
The qc_build_script
command generates a build script called 'hil_task_write_continuously_example_build.m'
and a main C file called 'hil_task_write_continuously_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_task_write_continuously_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_task_write_continuously_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_task_write_continuously_example.rt-win64');
The output from the executable will be seen in the QUARC Console:
Copyright ©2024 Quanser Inc. This page was generated 2024-10-17. Submit feedback to Quanser about this page.
Link to this page.