Table of Contents > QUARC > Release Notes
QUARC 2.1
These release notes describe the new features and changes introduced in QUARC 2.1. They are divided into the sections enumerated below.
New Software Compatibility
QUARC 2.1 has introduced compatibility with the following third-party software.
New Features
The new features introduced in QUARC 2.1 are mentioned below.
QUARC now provides support for adaptive partition scheduling on its QNX target. Partition scheduling allows the CPU time allotted by the system to a model to be guaranteed - a key feature in safety-critical applications. Refer to the Partition Scheduling section in the QUARC Targets User's Guide for more details.
The Computation Time block now provides the option of measuring the computation time of the model itself, rather than just the time to execute a Function Call Subsystem. Only the computation time of the model's base rate task is measured.
Added qc_get_expression_parts helper function to split vector or matrix strings into their constituent parts. This can be used when you want to evaluate a user's entry without losing the formatting or variables entered by the user.
Interfaces have been added to support hardware interrupts, including HIL C API, MATLAB, .NET and ActiveX functions as well as two new Simulink blocks: the HIL Poll Interrupt block and the HIL Asynchronous Interrupt block.
The multitude of MATLAB functions provided by QUARC are now available through the MATLAB Function Browser in MATLAB R2010a and above. Simply click on the button on the left edge of the MATLAB Command Window and browser the MATLAB functions under the QUARC Targets category. Double-clicking on a function inserts it into the MATLAB Command Window. The MATLAB Function Browser can also be accessed from the MATLAB Editor toolbar (look for the same icon).
New functions have been introduced in the MATLAB Stream API, including stream_get/set_character_format, stream_send_array and stream_receive_array. The MATLAB Stream API is now capable of sending and receiving any data type, including structure arrays and cell arrays.
Information can now be logged automatically for every run of the model, including the date and time at which the model was run, when block parameters were changed, and user-defined log messages. For an overview of the new model logging feature, refer to Model Logging in the section on streaming data to disk. User-defined messages are logged using the new Log Message block.
In addition to the various blocks provided by QUARC to measure computation time, sampling period jitter and other performance measures, QUARC now supplies the ability to monitor the amount of data traversing a signal wire in the diagram in bytes per second, elements per second or samples per second. Refer to the Performance Meter block for details.
QUARC now provides support for using the powerful Quanser Stream API in Java. The Quanser Stream API has been augmented with Java support and can now also be used to create communication channels between Java-based applications and the QUARC real-time code generated for a Simulink model. Blocking and non-blocking I/O communication modes are supported as well as using the Java InputStream and OutputStream classes for communication. Refer to the QUARC External Interfaces section in the QUARC Targets User's Guide for more details.
A new suite of blocks have been added to support strings. These blocks allow strings to be manipulated in various ways, including formatting strings via the String Print block and selecting strings from a list using the String Select block.
A new QUARC Target dialog for details.
menu item has been added to the menu that opens a dialog for managing QUARC targets. See the models that have been downloaded to the target, as well as the models currently loaded and those configured to load at boot. Download new models or remove old ones from the target. Load models or configure models to load at boot. Determine the version of QUARC running on a remote target and more. See theImproved Features
Some of the features improved in QUARC 2.1 are enumerated below. There a great many miscellaneous bug fixes and improvements that have not been listed. Only some of the highlights are listed below.
Support for 3ds Max 2011 has been added, and the x3d file exporter for 3ds Max 2008-2011 now supports exporting scene files. The scene file will preserve parent-child hierarchies setup in 3ds Max and omni-directional light sources will be exported as light sources for the scene file. Cameras, helper objects, and light sources other than omni-directional will be exported as dummy actors to preserve hierarchical relationships. The exporter also now supports the Edit Normals modifier to allow the creation of continuous surfaces spanning multiple meshes and explicit normal control. See the 3ds Max X3D Plugin page for more details.
The x3d file exporter for Blender now works on a more general set of meshes. It also now works with the built-in Python functionality and the full version of Python is no longer required to be installed on your system.
Comprehensive function reference help pages for the C Stream API have been added to the Quanser C Libraries standalone help module, available, for example, from the QUARC External Interfaces page in the QUARC documentation.
The GPS NMEA block has been improved by adding the following outputs: true heading, magnetic heading, and ground speed. These additional outputs provide more information from GPS NMEA devices.
The semantics of the MATLAB stream_send and stream_receive functions has changed. These functions no longer send and receive bytes, but will send or receive any data type, including cell arrays and structures. The arguments to the stream_receive function have changed accordingly.
The hardware clocks on the Q4 data acquisition card did not reflect the actual functionality of these timebases. HARDWARE_CLOCK_0 is now referred to as the Watchdog Counter and HARDWARE_CLOCK_1 is now called the General Purpose Counter.
Issues with the QUARC Console that sometimes arose if the Console was opened or closed while a model was printing a large volume of data to stdout/stderr were resolved.
The Stream Client, Stream Server, Stream Connect, Stream Listen, Stream Call and Stream Answer blocks now allow the URI to be specified as a dialog parameter, as a MATLAB expression or as an external input port. Hence, a MATLAB workspace variable may now be used for the URI.
Format specifiers are now supported if the URI is specified as a dialog parameter. For example, "%h" may be used to extract the hostname from the model URI so that communications refer to the same host that is running the model.
When the URI is specified as a dialog parameter the URI is now configuration-dependent. A separate URI may be entered for each model configuration as well as for normal simulation. Thus, it is possible to employ a different URI for each target, without making a new diagram.
Support for strings in QUARC has changed. Strings are now represented using the uint8 data type instead of the custom achar_t type that was used previously. This change makes it easier to use strings. For example, strings may now be passed into referenced models. All the QUARC blocks which supported strings, such as String Constant, String Display, Stream Print, Stream Scan, Stream Formatted Read, Stream Formatted Write, Print and Scan have been modified accordingly.
The String blocks have been moved into a "Strings" subsystem in the QUARC Targets library since more String blocks have been added, such as the String Print block. See the New Blocks section for details.
The To Host File block now supports many more file formats. The full list of formats is now: MAT-file v.4, MAT-file v.5, M-file, CSV-file, Text file and Raw binary file. The CSV-file format is useful for importing into spreadsheets. The text file format may be used to write custom text files, and the raw binary format is useful for interfacing with the user's own applications since it is easy to read.
The To Host File block now allows UNC filenames to be used so that the data may be written to any accessible location on the local network. The filename may also include a path. The To Host File block will now create any directories that are missing in the path when saving the file.
In order to facilitate more sophisticated data logging, the To Host File block has been enhanced to support format specifiers in the filename and variable name. Format specifiers allow things like the date and time to be automatically inserted in the filename or variable name so that a unique data file can be generated on each run of the model.
The block parameters dialog for the To Host File block has also been enhanced to support browsing for files and appending format specifiers.
New Cards Supported
The full list of all the data acquisition cards supported by QUARC 2.1 is given by the following link. QUARC 2.1 may now also interface to the cards listed below.
The Quanser Q2-USB is our new low-cost H.I.L data acquisition device capable of running closed-loop control from PC to DAQ over 1kHz via a USB port. This is an industry first! The Q2-USB has two 12-bit analog inputs, two 12-bit analog outputs, two encoders, 8 configurable digital I/O with two of the digital I/O also configurable as PWM channels, and watchdog support. All power is supplied by the USB port for a single-cable, self-contained, portable data acquisition device. Please refer to the Quanser Q2-USB help page for details.
The Quanser Q8-USB is our new eight-channel, high resolution, H.I.L data acquisition device capable of running closed-loop control from PC to DAQ over 1kHz via a USB port. This is an industry first! The Q8-USB has eight 16-bit analog inputs, eight 16-bit analog outputs, eight encoders, eight digital inputs and eight digital outputs that are optionally configurable as PWM channels, and watchdog support. Please refer to the Quanser Q8-USB help page for details.
The Quanser QPID card is an innovative H.I.L. control board based on the NI PCI-7831R RIO PCI card, with an extensive range of input and output support, including eight 16-bit analog inputs and outputs, eight encoders with hardware velocities, eight PWM outputs, 56 digital I/O, specialized I/O, counters, watchdog and an SPI master. Please refer to the Quanser QPID help page for details.
The Quanser QPIDe card is an innovative H.I.L. control board based on the NI PCI-7841R RIO PCIe card, with an extensive range of input and output support, including eight 16-bit analog inputs and outputs, eight encoders with hardware velocities, eight PWM outputs, 56 digital I/O, specialized I/O, counters, watchdog and an SPI master. Please refer to the Quanser QPIDe help page for details.
New Devices Supported
QUARC 2.1 may now interface to the devices listed below.
The 6-DOF Denso VP6242F robot is now supported as an open-architecture robot. The Denso Read block reads the Denso joint positions and robto status while the Denso Write block sends joint position or velocity commands and controller gains to the robot.
The Denso blocks may be found under the
MATLAB Command Line
Click to copy the following command line to the clipboard. Then paste it in the MATLAB Command Window:
qc_open_library('quarc_library/Devices/Third-Party/Denso/Robots/VP6242F')The PTI Visualeyez vision tracking system is now supported. The PTI Visualeyez block can be used to read marker positions that are setup as targets in the PTI VZSoft tracking software, as well as positions and orientations of rigid body objects that are setup in the PTI VZAnalyzer tracking software.
The PTI Visualeyez block may be found under the
MATLAB Command Line
Click to copy the following command line to the clipboard. Then paste it in the MATLAB Command Window:
qc_open_library('quarc_library/Devices/Third-Party/PhoeniX Technologies Inc./Interface')The Vicon DataStream API is now supported. The Vicon block uses the Vicon DataStream API and Tracker software to read translation and rotation measurements from the Vicon tracking system. Segments and named markers setup for tracking in the Vicon Tracker software can be referenced by name in the Vicon block. Unlabeled markers are referenced by index value.
The Vicon block may be found under the
MATLAB Command Line
Click to copy the following command line to the clipboard. Then paste it in the MATLAB Command Window:
qc_open_library('quarc_library/Devices/Third-Party/Vicon')New Demonstrations
The QUARC demonstrations added in QUARC 2.1 are listed below.
Quanser/QUARC/Quanser C Communications Examples
under
the Start menu to access the examples.
Quanser/QUARC/Quanser Java Communications Examples
under
the Start menu to access the examples.
Quanser/QUARC/Socket C Communications Examples
under the Start menu to access the examples.
New Blocks
New blocks have been added to the QUARC Targets library in QUARC 2.1. The new blocks are listed below.
Continuous Blocks
The Second-Order Low-Pass Filter block models, in the continuous-time domain, a second-order low-pass filter characterized by a cut-off frequency and a damping ratio.
Discrete Blocks
The Bias Removal block calculates the initial bias (using a simple moving average algorithm) of the input signal and removes the estimated bias from the input signal.
The Discrete Second-Order Low-Pass Filter block models, in the discrete-time domain, a second-order low-pass filter characterized by a cut-off frequency and a damping ratio.
The Enabled Moving Average block implements a moving average (a.k.a., running average, or rolling average) computation. The moving average is only calculated while the input received at the Enable port is greater than zero.
Diagnostic Blocks
The Log Message block allows user-defined messages to be added to the log file for the model, if any. It takes a format string akin to the C printf function and formats the data at its inputs accordingly.
The Performance Meter block measures the rate at which data traverses a signal wire in the diagram.
Hardware Blocks
The HIL Poll Interrupt block queries the status of interrupt sources on a data acquisition card.
The HIL Asynchronous Interrupt block invokes a Function-Call Subsystem whenever an interrupt occurs, independent of the sample time of the model.
NEES Blocks
The NEES Initialize block establishes a connection between the Simulink model in QUARC and the Quanser NEES Daemon to send and receive signals to and from the RBNB.
The NEES Get Signals block receives signals from the Quanser NEES Daemon, and makes them accessible in the Simulink model.
The NEES Set Signals block sends the signals at its input to the Quanser NEES Daemon.
String Blocks
The String Accumulate block accumulates a series of strings into one concatenated string.
The String Concatenate block concatenates a number of strings together.
The String Error block outputs a string corresponding to a standard QUARC error code.
The String Print
block allows data to be formatted as a text string, much like the sprintf
function in C.
The String Select block selects a string from a list based on its input.
New Functions
New MATLAB functions have been added to the QUARC MATLAB functions in QUARC 2.1. The new functions are listed below.
Miscellaneous Functions
The qc_get_expression_parts function takes a string representing vector or matrix in typical MATLAB notation and breaks it into a cell array of strings representing the individual elements of the vector or matrix.
Copyright ©2024 Quanser Inc. This page was generated 2024-10-17. Submit feedback to Quanser about this page.
Link to this page.