MATLAB Command Line
Click to copy the following command line to the clipboard. Then paste it in the MATLAB Command Window:
edit hil_task_read_example.mHIL Task Read Example
This example reads from analog channels 0 and 1, and encoder channels 0 and 1, every 0.5 seconds. It stops reading when 20 samples have been read.
A task is created to handle the data collection using quanser.hardware.hil.task_create_reader
.
Data collection is started using the quanser.hardware.task.start
function.
The data is then read from the task's internal buffer in half second
intervals, one sample at a time, using the quanser.hardware.task.read
function.
The example stops after 20 samples have been read. Do not press Ctrl+C.
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 reads from 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 encoder channels, then change the encoder_channels
variable to an empty matrix, [].
Running the example
Simply type the name of the example, hil_task_read_example
,
at the Matlab command prompt to run the example. It prints the current values of the
analog inputs and encoder inputs in the MATLAB command window every 0.5 seconds. It
is best to have an encoder connected to one or both encoder inputs so that you can
see the change in encoder counts as the encoder shaft is rotated. The example stops
after reading 20 samples. Do not press Ctrl+C.
Typical output from the example looks like:
This example reads the first two analog input channels and encoder channels two times a second for 10 seconds. This example runs for 20 samples. Do not press Ctrl+C. ADC #0: 0.006 ADC #1: 0.005 ENC #0: -433 ENC #1: 0 ADC #0: 0.007 ADC #1: 0.005 ENC #0: -431 ENC #1: 0 ADC #0: 0.007 ADC #1: 0.006 ENC #0: -159 ENC #1: 0 ADC #0: 0.006 ADC #1: 0.005 ENC #0: 20 ENC #1: 0 ADC #0: 0.006 ADC #1: 0.006 ENC #0: 564 ENC #1: 0 ADC #0: 0.009 ADC #1: 0.006 ENC #0: 802 ENC #1: 0 ADC #0: 0.006 ADC #1: 0.006 ENC #0: 941 ENC #1: 0 ADC #0: 0.007 ADC #1: 0.006 ENC #0: 941 ENC #1: 0 ADC #0: 0.007 ADC #1: 0.005 ENC #0: 727 ENC #1: 0 ADC #0: 0.007 ADC #1: 0.006 ENC #0: 548 ENC #1: 0 ADC #0: 0.010 ADC #1: 0.007 ENC #0: 354 ENC #1: 0 ADC #0: 0.009 ADC #1: 0.006 ENC #0: 143 ENC #1: 0 ADC #0: 0.007 ADC #1: 0.005 ENC #0: -86 ENC #1: 0 ADC #0: 0.007 ADC #1: 0.006 ENC #0: -170 ENC #1: 0 ADC #0: 0.007 ADC #1: 0.005 ENC #0: -628 ENC #1: 0 ADC #0: 0.007 ADC #1: 0.006 ENC #0: -670 ENC #1: 0 ADC #0: 0.006 ADC #1: 0.005 ENC #0: -276 ENC #1: 0 ADC #0: 0.007 ADC #1: 0.005 ENC #0: -27 ENC #1: 0 ADC #0: 0.007 ADC #1: 0.006 ENC #0: 235 ENC #1: 0 ADC #0: 0.007 ADC #1: 0.006 ENC #0: 274 ENC #1: 0 Read 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_read_example', 'win64');
The command may also be entered in this form:
qc_build_script('hil_task_read_example.rt-win64');
The qc_build_script
command generates a build script called 'hil_task_read_example_build.m'
and a main C file called 'hil_task_read_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_read_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_read_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_read_example.rt-win64');
The output from the executable will be seen in the QUARC Console:
Building code for a different target
Before building the code for a new target, change the board type to suit the board connected to the new target.
In this case, a QUARC Linux Pi 3 target is used, so a Q2-USB (q2_usb
) may be used. Since the Q2-USB
supports two analog input and two encoder input channels, the channel vectors do not have to be changed.
To build real-time code from the example for the QUARC Linux Pi 3 target, execute the following command in the MATLAB Command Window:
qc_build_script('hil_task_read_example', 'linux_pi_3', 'update');
The command may also be entered in this form:
qc_build_script('hil_task_read_example.rt-linux_pi_3', 'update');
The 'update' option causes the qc_build_script
command to update the
target type in the build script without rewriting the rest of the script. Hence, even if the script
has been modified, the changes will be preserved. Only the target type will be changed. The command
will then generate the C code for the MATLAB script and compile and link it for the new target type
to produce the executable 'hil_task_read_example.rt-linux_pi_3'.
Running the generated executable on the new target
Before running the generated executable, open a QUARC Console so that the output of the executable may be seen. The QUARC Console for this new target need only be opened once. Use the command:
qc_script_console('hil_task_read_example.rt-linux_pi_3', 'all');
The QUARC Console shows the standard output from any QUARC executable that is run on the target (since the 'all' option was specified). Note that even though the QUARC Console is running on the host PC, it will be showing the standard output from QUARC executables run on the QUARC Linux Pi 3 target!
To run the generated executable, type the following command in the MATLAB Command Window:
qc_run_script('hil_task_read_example.rt-linux_pi_3');
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.