Real-Time Windows Target User`s Guide

Real-Time
Windows Target
For Use with Real-Time Workshop
®
Modeling
Simulation
Implementation
User’s Guide
Version 2
How to Contact The MathWorks:
508-647-7000
Phone
508-647-7001
Fax
The MathWorks, Inc.
3 Apple Hill Drive
Natick, MA 01760-2098
Mail
http://www.mathworks.com
Web
Anonymous FTP server
Newsgroup
ftp.mathworks.com
comp.soft-sys.matlab
support@mathworks.com
suggest@mathworks.com
bugs@mathworks.com
doc@mathworks.com
subscribe@mathworks.com
service@mathworks.com
info@mathworks.com
Technical support
Product enhancement suggestions
Bug reports
Documentation error reports
Subscribing user registration
Order status, license renewals, passcodes
Sales, pricing, and general information
Real-Time Windows Target User’s Guide
 COPYRIGHT 1999 - 2000 by The MathWorks, Inc.
The software described in this document is furnished under a license agreement. The software may be used
or copied only under the terms of the license agreement. No part of this manual may be photocopied or reproduced in any form without prior written consent from The MathWorks, Inc.
FEDERAL ACQUISITION: This provision applies to all acquisitions of the Program and Documentation by
or for the federal government of the United States. By accepting delivery of the Program, the government
hereby agrees that this software qualifies as "commercial" computer software within the meaning of FAR
Part 12.212, DFARS Part 227.7202-1, DFARS Part 227.7202-3, DFARS Part 252.227-7013, and DFARS Part
252.227-7014. The terms and conditions of The MathWorks, Inc. Software License Agreement shall pertain
to the government’s use and disclosure of the Program and Documentation, and shall supersede any
conflicting contractual terms or conditions. If this license fails to meet the government’s minimum needs or
is inconsistent in any respect with federal procurement law, the government agrees to return the Program
and Documentation, unused, to MathWorks.
MATLAB, Simulink, Stateflow, Handle Graphics, and Real-Time Workshop are registered trademarks, and
Target Language Compiler is a trademark of The MathWorks, Inc.
Other product or brand names are trademarks or registered trademarks of their respective holders.
Printing History: January 1999
First printing
New for Version 1.0 (Release 11.0)
January 2000
Second printing Revised for Version 1.5 (Release 11.1+)
September 2000 Third printing Revised for Version 2.0 (Release R12)
Preface
Required Products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
Real-Time Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x
C Compiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Related Products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stateflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stateflow Coder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dials &Gauges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DSP Blockset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fixed-Point Blockset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xii
xii
xii
xiii
xiii
xiii
Using This Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Introduction
1
What Is Real-Time Windows Target? . . . . . . . . . . . . . . . . . . . . 1-3
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Real-Time Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Real-Time Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Signal Acquisition and Analysis . . . . . . . . . . . . . . . . . . . . . . . . .
Parameter Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-4
1-4
1-5
1-6
1-7
Hardware Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8
PC Compatible Computer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8
Input/Output Driver Support . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8
i
Software Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Nonreal-Time Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Real-Time Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Development Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-10
1-10
1-10
1-11
System Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12
Simulink External Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12
Data Buffers and Transferring Data . . . . . . . . . . . . . . . . . . . . 1-13
Installation and Configuration
2
System Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3
Hardware Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3
Software Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
Real-Time Windows Target . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Getting or Updating Your License . . . . . . . . . . . . . . . . . . . . . . .
Installing from a CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installing from the Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Files on the Your Computer . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-5
2-5
2-6
2-7
2-8
Initial Working Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-10
Setting the Working Directory from the Desktop Icon . . . . . . 2-10
Setting the Working Directory from Within MATLAB . . . . . . 2-10
Third Party C Compiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11
Real-Time Windows Target Kernel . . . . . . . . . . . . . . . . . . . . . 2-13
Installing the Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-13
Uninstalling the Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-15
Testing the Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Running the Model rtvdp.mdl . . . . . . . . . . . . . . . . . . . . . . . . . .
Displaying Status Information . . . . . . . . . . . . . . . . . . . . . . . . .
Detecting Excessive Sample Rates . . . . . . . . . . . . . . . . . . . . . .
Demo Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-16
2-16
2-19
2-20
2-20
ii
Basic Procedures
3
Simulink Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3
Creating a Simulink Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3
Entering Simulation Parameters for Simulink . . . . . . . . . . . . . 3-7
Entering Scope Properties for Signal Tracing . . . . . . . . . . . . . . 3-9
Running a Nonreal-Time Simulation . . . . . . . . . . . . . . . . . . . . 3-12
Real-Time Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Entering Simulation Parameters for
Real-Time Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Entering Scope Properties for Signal Tracing . . . . . . . . . . . . .
Creating a Real-Time Application . . . . . . . . . . . . . . . . . . . . . . .
Entering Additional Scope Properties for Signal Tracing . . . .
Running a Real-Time Application . . . . . . . . . . . . . . . . . . . . . . .
3-14
Signal Logging to the MATLAB Workspace . . . . . . . . . . . . .
Entering Scope Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Entering Signal and Triggering Properties . . . . . . . . . . . . . . .
Plotting Logged Signal Data . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-27
3-27
3-30
3-33
Signal Logging to a Disk Drive . . . . . . . . . . . . . . . . . . . . . . . .
Entering Scope Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Entering Signal and Triggering Properties . . . . . . . . . . . . . . .
Entering Data Archiving Parameters . . . . . . . . . . . . . . . . . . . .
Plotting Logged Signal Data . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-35
3-35
3-38
3-41
3-44
3-14
3-17
3-20
3-21
3-24
Parameter Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-46
Types of Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-46
Changing Model Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-47
iii
Advanced Procedures
4
I/O Boards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
I/O Board Dialog Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ISA-Bus Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PCI-Bus Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Compact PCI Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PCMCIA Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-3
4-3
4-5
4-6
4-6
4-6
I/O Driver Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-7
Real-Time Windows Target Library . . . . . . . . . . . . . . . . . . . . . . 4-7
Simulink Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-9
Analog Input Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-10
Analog Output Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-12
Digital Input Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-15
Digital Output Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-17
Output Signals from an I/O Block . . . . . . . . . . . . . . . . . . . . . . . 4-20
Variations with Channel Selection . . . . . . . . . . . . . . . . . . . . . . 4-22
Using Analog I/O Drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-25
I/O Driver Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-25
Normalized Scaling for Analog Inputs . . . . . . . . . . . . . . . . . . . 4-26
Troubleshooting
5
Plots Not Visible in Simulink Scope Block . . . . . . . . . . . . . . . . .
Compiler Error Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Failure to Connect to Target . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sample Time Too Fast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
S-Functions Using Math Functions . . . . . . . . . . . . . . . . . . . . . .
5-2
5-3
5-3
5-4
5-5
iv
Supported I/O Boards
A
ISA Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PCMCIA Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PCI Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Compact PCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Standard Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A-2
A-6
A-7
A-8
A-9
Custom I/O Driver Blocks
B
Source Code for DOS Target Drivers . . . . . . . . . . . . . . . . . . . . .
Incompatibility with Win32 API Calls . . . . . . . . . . . . . . . . . . . .
Nonsupported C Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Supported C Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
B-2
B-3
B-3
B-4
v
vi
Contents
Preface
Required Products
MATLAB . . . . .
Simulink . . . . .
Real-Time Workshop
C Compiler . . . .
.
.
.
.
. .
.
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
.
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. ix
. ix
. x
. xi
. xi
Related Products .
Stateflow . . . . .
Stateflow Coder . .
Dials &Gauges . . .
DSP Blockset . . .
Fixed-Point Blockset
.
.
.
.
.
. .
.
.
.
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
.
.
.
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
.xii
.xii
.xii
xiii
xiii
xiv
Using This Guide xv
Expected Background . . . . . . . . . . . . . . . . . . xv
Organization . . . . . . . . . . . . . . . . . . . . xvi
Conventions . . . . . . . . . . . . . . . . . . . xvii
Terminology . . . . . . . . . . . . . . . . . . . . . xvii
Typographical Conventions . . . . . . . . . . . . . . xix
Preface
Real-Time Windows Target is part of a family of software products that you use
to create real-time control systems. Some of these products are required while
others you use for special applications.
This chapter includes the following sections:
• Required Products - MATLAB®, Simulink®, Real-Time Workshop®,
Real-Time Windows Target, and a C compiler
• Related Products - Stateflow®, Stateflow Coder, Dials & Gauges, DSP
Blockset, and Fixed-Point Blockset
• Using This Guide - Suggestions for learning about Real-Time Windows
Target, finding information, and a description of the chapters
• Conventions - Terms that may have various meanings and text formats in
this guide
viii
Required Products
Required Products
Real-Time Windows Target is a self-targeting system where the host and the
target computer are the same computer. You can install it on a PC-compatible
computer running Microsoft Windows 95, Windows 98, or Windows NT.
Note Real-Time Windows Target does not currently support Windows 2000.
Please see The MathWorks Web site for the latest news on support for
Windows 2000.
Real-Time Windows Target requires the following products:
• MATLAB - Command line interface for Real-Time Windows Target
• Simulink - Environment to model physical systems and controllers using
block diagrams
• Real-Time Workshop - Converts Simulink blocks and code from Stateflow
Coder into C code
• C Compiler - Converts C code from Real-Time Workshop into executable
code. Choose either Microsoft Visual C/C++ or Watcom C/C++
MATLAB
MATLAB provides the design and analysis tools that you use when creating
Simulink block diagrams.
Note Version 2.0 of Real-Time Windows Target requires MATLAB Version
6.0 on the Release 12 CD.
MATLAB documentation - For information on using MATLAB, see the
Getting Started with MATLAB manual. It explains how to work with data and
how to use the functions supplied with MATLAB. For a reference describing
the functions supplied with MATLAB, see the online MATLAB Function
Reference.
ix
Preface
Simulink
Simulink provides an environment where you model your physical system and
controller as a block diagram. You create the block diagram by using a mouse
to connect blocks and a keyboard to edit block parameters.
Nonsupported Simulink blocks - You can use Real-Time Windows Target
with most Simulink blocks including discrete-time and continuous-time
systems. Real-Time Windows Target does not support blocks that do not run in
real-time and the following blocks: Display, To Workspace, To File, and Graph
blocks other than the Scope block.
Limitations with Real-Time Workshop - When you use a continuous-time
system and generate code with Real-Time Workshop, you must use a fixed-step
integration algorithm. C-code S-functions are supported by Real-Time
Workshop. However, M-code S-functions are not supported.
Real-Time Windows Target I/O driver blocks - With Real-Time Windows
Target, you can remove the physical system model and replace it with I/O
driver blocks connected to your sensors and actuators. The Real-Time Windows
Target I/O library supports more than 100 boards.
Note Some of the functions on a board may not be supported by Real-Time
Windows Target. Check The MathWorks Web site for an updated list of
supported boards and functions at: http://www.mathworks.com/products/
rtwt/ioboards.shtml.
Note Version 2.0 of Real-Time Windows Target requires Simulink Version
4.0 on the Release 12 CD.
Simulink documentation - For information on using Simulink, see the Using
Simulink manual. It explains how to connect blocks to build models and change
block parameters. It also provides a reference that describes each block in the
standard Simulink library.
x
Required Products
Real-Time Workshop
Real-Time Workshop provides the utilities to convert your Simulink models
into C code, and then with a third-party C compiler, compile the code into a
real-time executable.
Real-Time Windows Target is designed for maximum flexibility during rapid
prototyping. This flexibility allows parameter tuning and signal tracing during
a real-time run, but increases the size of the generated code. However,
Real-Time Workshop has other code formats that generate the more compact
code needed for embedded applications.
Note Version 2.0 of Real-Time Windows Target requires Real-Time
Workshop Version 4.0 on the Release 12 CD.
More information about Real-Time Workshop - For information on code
generation, see the Real-Time Workshop User’s Guide.
C Compiler
The C compiler creates executable code from the C code generated from
Real-Time Workshop and the C-code S-functions you have created.
In addition to the products from The MathWorks, you need to install a
C compiler. Real-Time Workshop and Real-Time Windows Target support the
following C compilers:
• Microsoft Visual C/C++ - Version 2.0 of Real-Time Windows Target requires
the Professional Edition of Microsoft Visual C/C++ Version 5.0 or 6.0. The
Standard Edition does not include all of the features needed to work with
Real-Time Windows Target.
• Watcom C/C++ - Version 2.0 of Real-Time Windows Target requires Watcom
C/C++ Version 10.6 or 11.0.
xi
Preface
Related Products
In addition to the required products from The MathWorks, the following
products are compatible with Real-Time Windows Target:
• Stateflow - Model complex systems and logic using flow and state transition
diagrams.
• Stateflow Coder - Convert Stateflow blocks into code used by Real-Time
Workshop
• Dials &Gauges - Create an instrument control panel
• DSP Blockset - Add digital signal processing functions
• Fixed-Point Blockset - Simulate fixed-point behavior in your application
Stateflow
Stateflow provides a graphical design and development tool for complex control
and supervisory logic problems. It uses flow diagram notation and state
transition notation to model complex system behavior.
Note Version 2.0 of Real-Time Windows Target requires Stateflow Version
4.0 on the Release 12 CD.
Stateflow documentation - For information on creating state flow diagrams,
see the Stateflow User’s Guide.
Stateflow Coder
Stateflow Coder provides the utilities to convert Stateflow blocks into code used
by Real-Time Workshop.
Note Version 2.0 of Real-Time Windows Target requires Stateflow Version
4.0 on the Release 12 CD.
Stateflow Coder documentation - For information on state flow diagrams
and the Stateflow Coder, see the Stateflow User’s Guide.
xii
Related Products
Dials &Gauges
Dials and Gauges provides the Simulink blocks to create an instrument control
panel. This instrument control panel acts as an interface to your real-time
application.
Note Version 2.0 of Real-Time Windows Target requires Dials & Gauges
Version 1.1 on the Release 12 CD.
Dials & Gauges documentation - For information on creating a Dials &
Gauges model, see the Dials & Gauges User’s Guide.
DSP Blockset
DSP Blockset provides the Simulink blocks to add digital signal processing
functions to your Simulink model.
It includes operations such as classical, multirate, adaptive filtering, matrix
manipulation and linear algebra, statistics, and time -frequency transforms.
Note Version 2.0 of Real-Time Windows Target requires DSP Blockset
Version 4.0 on the Release 12 CD.
DSP Blockset documentation. For information on adding DSP blocks to your
Simulink model, see the DSP Blockset User’s Guide.
xiii
Preface
Fixed-Point Blockset
The Fixed-Point Blockset is designed to model dynamic systems using any
word size up to 128 bits, and to automatically scale the binary point location
and bias.
You can emulate fixed-point behavior using Real-Time Windows Target to gain
an understanding of bit-true performance before your control or DSP algorithm
is implemented for production using a fixed-point microcontroller or DSP.
Note Version 2.0 of Real-Time Windows Target requires Fixed-Point Blockset
Version 3.0 on the Release 12 CD.
xiv
Using This Guide
Using This Guide
To help you effectively read and use this guide, we have provided a brief
description of the chapters and a suggested reading path.
This section includes the following topics:
• Expected Background
• Organization
Expected Background
To benefit from reading this book, you should be familiar with:
• Using Simulink and Stateflow to create models as block diagrams, and
simulating those models in Simulink
• The concepts and use of Real-Time Workshop to generate executable code
When using Real-Time Workshop and Real-Time Windows Target, you do not
need to program in C or other low-level programming languages to create and
test real-time systems.
If You Are a New User - Begin with Chapter 1, “Introduction.” This chapter
gives you an overview of the Real-Time Windows Target features and the
development environment. Next, read and try the examples in Chapter 3,
“Basic Procedures.”
If You Are an Experienced Real-Time Window Target User - We suggest you
review the sections on signal tracing and signal logging in Chapter 3, “Basic
Procedures.” After you are familiar with using Real-Time Windows Target,
read how to add I/O drivers to your Simulink model in Chapter 4, “Advanced
Procedures.”
xv
Preface
Organization
The following table lists the organization of the Real-Time Windows Target
User’s Guide.
xvi
Chapter or Appendix
Description
1 “Introduction”
Overview of the functions and features of
Real-Time Windows Target
2 “Installation and
Configuration”
Procedures to install Real-Time Windows
Target on your computer
3 “Basic Procedures”
Procedures to help you become familiar with
using Real-Time Window Target
4 “Advanced Procedures”
Procedures for using I/O drivers with
Real-Time Windows Target
5 “Troubleshooting”
Solutions to some common problems
A “Supported I/O Boards”
List of I/O boards supported by Real-Time
Windows Target with Simulink driver
blocks
B “Custom I/O Driver
Blocks”
Procedures and notes for creating your own
Simulink blocks using C-code S-functions
Conventions
Conventions
To help you effectively read this guide, we use some conventions. Conventions
are the ways of consistently formatting the text and graphics.
This section includes the following topics:
• Terminology
• Typographical Conventions
Terminology
The following table lists some of the terms we use in the Real-Time Windows
Target User’s Guide.
Term
Definition
application
See real-time application.
build process
Process of generating C code from your Simulink
model, compiling and inlining the generated code to
create a real-time executable.
execution
Running the executable code on the target PC in
real-time.
executable code
See real-time application.
external mode
Simulink mode that uses a Simulink block diagram
as a graphical user interface to a real-time
executable. This interface provides parameter
downloading and signal uploading for display using
Scope blocks.
kernel
Software component that handles system
interrupts and regulates time interrupts when
model code is stepped.
parameter tuning
Process of changing block parameters and
downloading the new values to a real-time
executable while it is running.
xvii
Preface
xviii
Term
Definition
real-time
application
Code ready to run in real-time with the kernel.
sample rate
Inverse of the sample time given as samples/
second.
sample time
Length of time, in seconds, between each interrupt
that the model is stepped.
self-targeting
system
A system where both the development environment
and real-time environment use the same processor.
signal logging
Acquire and save signal data created during a
real-time execution.
signal tracing
Acquire and display of a sequence of bursts of
signal data created during real-time execution. The
burst length corresponds with the time axis at the
Scope block.
Conventions
Typographical Conventions
Typographical conventions are ways of formatting the text to indicate terms,
objects, and dialog between the user and the computer. The following table lists
the notational conventions used in the Real-Time Windows Target User’s
Guide.
Item
Convention to Use
Example
Keys
Boldface with an
initial capital
letter
Press Return.
MATLAB output
and code
Monospace font
MATLAB displays the message
Menu names,
menu items, and
command buttons
Boldface with an
initial capital
letter
From the File menu, click
New. Click the Apply button.
New terms
Italics
A real-time application is
created during the build
process.
model rtwindemo loaded
xix
Preface
xx
1
Introduction
What Is Real-Time Windows Target?
. . . . . . . .
Features of Real-Time Windows Target
Real-Time Kernel . . . . . . . . . .
Real-Time Application . . . . . . . .
Signal Acquisition and Analysis . . . .
Parameter Tuning . . . . . . . . . .
.
.
.
.
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
.
.
.
.
.
1-3
1-4
1-4
1-5
1-6
1-7
Hardware Environment . . . . . . . . . . . . . . 1-8
PC Compatible Computer . . . . . . . . . . . . . . . 1-8
Input/Output Driver Support . . . . . . . . . . . . . . 1-8
Software Environment .
Nonreal-Time Simulation
Real-Time Execution . .
Development Process . .
. . . .
. . . . .
. . . . .
. . . . .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
.
.
.
.
. 1-10
. 1-10
. 1-10
. 1-11
System Concepts . . . . . . . . . . . . . . . . . 1-12
Description of Simulink External Mode . . . . . . . . . 1-12
Data Buffers and Transferring Data . . . . . . . . . . . 1-13
1
Introduction
Real-Time Windows Target has many features. An introduction to these
features and the Real-Time Windows Target software environment will help
you develop a model for working with xPC Target.
This chapter includes the following sections:
• What Is Real-Time Windows Target? - A PC solution for prototyping and
testing real-time systems
• Features - Real-time kernel, real-time application, signal acquisition and
analysis, and parameter tuning
• Hardware Environment - PC compatible computer and I/O support boards
• Software Environment - Nonreal-time simulation of Simulink models and
real-time execution of applications
• System Concepts - Simulink external mode and data buffers
1-2
What Is Real-Time Windows Target?
What Is Real-Time Windows Target?
Real-Time Windows Target is a PC solution for prototyping and testing
real-time systems. It is an environment where you use a single computer as a
host and target.
In this environment you use your desktop or laptop PC with MATLAB ®,
Simulink®, and Stateflow® (optional) to create models using Simulink blocks
and Stateflow diagrams.
After creating a model and simulating it with Simulink in normal mode, you
can generate executable code with Real-Time Workshop®, Stateflow Coder
(optional) and a C compiler. Then, you can run your application in real time
with Simulink external mode.
Integration between Simulink external mode and Real-Time Windows Target
allows you to use your Simulink model as a graphical user interface for:
• Signal visualization - Use the same Simulink Scope blocks, that you use to
visualize signals during a nonreal-time simulation, to visualize signals while
running a real-time application.
• Parameter tuning - Use the Block Parameter dialog boxes to change
parameters in your application while it is running in real time.
Typical applications for Real-Time Windows Target include:
• Real-time control - Prototype automotive, computer peripheral, and
instrumentation control systems.
• Real-time hardware-in-the-loop simulation - Prototype controllers
connected to a physical plant. For example, the physical plant could be an
automotive engine. Prototype plants connected to an actual controller. For
example, the prototyped plant could be an aircraft engine.
• Education - Teach concepts and procedures for modeling, simulating,
testing real-time systems, and iterating designs.
1-3
1
Introduction
Features
The Real-Time Windows Target software environment includes many features
to help you prototype and test real-time applications.
This section includes the following topics:
• Real-Time Kernel
• Real-Time Application
• Signal Acquisition and Analysis
• Parameter Tuning
Real-Time Kernel
Real-Time Windows Target uses a small real-time kernel to ensure the
real-time application runs in real time. The real-time kernel runs at CPU ring
zero (privileged or kernel mode) and uses the built-in PC clock as its primary
source of time:
• Timer interrupt - The kernel intercepts the interrupt from the PC clock
before the Windows operating system receives it. This blocks any calls to the
Windows operating system. Because of this, you cannot use Win32 calls in
your C-code S-function.
The kernel then uses the interrupt to trigger the execution of the compiled
model. As a result, the kernel is able to give the real-time application the
highest priority available.
To achieve precise sampling, the kernel reprograms the PC clock to a higher
frequency. Because the PC clock is also the primary source of time for the
Windows operating system, the kernel sends a timer interrupt to the
operating system at the original interrupt rate.
Technically, the kernel is provided as a VxD on Windows 95 and
Windows 98, and as a kernel-mode driver on Windows 2000 and Windows
NT.
• Scheduler - The timer interrupt clocks a simple scheduler that runs the
executable. The number of tasks is equal to the number of sampling periods
in the model with multitasking mode. With single-tasking mode, there is
only one task. The maximum number of tasks is 32 and faster tasks have
1-4
Features
higher priorities than slower tasks. For example, a faster task can interrupt
a slower task.
During execution, the executable stores data in buffers. Later, the data in
these buffers is retrieved by the Scope block. The scheduling, data storing,
data transferring, and running the executable all run at CPU ring zero.
• Communication with hardware - The kernel interfaces and communicates
with I/O hardware using I/O driver blocks, and it checks for proper
installation of the I/O board. If the board has been properly installed, the
drivers allow your real-time application to run.
The Analog Input, Analog Output, Digital Input, and Digital Output blocks
call the drivers for input and output. You can choose to have a driver block
use values equal to voltage, normalize values from 0 to +1, normalize values
from -1 to +1, or use the raw integer values from the A/D or D/A conversion
press. Drivers also run at CPU ring zero.
• Simulink external mode - Communication between Simulink and the
real-time application is through the Simulink external mode interface
module. This module talks directly to the real-time kernel, and is used to
start the real-time application, change parameters, and retrieve scope data.
Real-Time Application
The real-time application runs in real time on your PC computer and has the
following characteristics:
• Compiled code - Created from the generated C code using either a Microsoft
Visual C/C++ compiler or a Watcom C/C++ compiler.
• Relation to your Simulink model - The executable contains a binary form
of all Simulink model components, connections between blocks, time
dependencies, and variables in the Simulink blocks.
• Relation to the kernel - The executable must be loaded and executed
directly by the Real-Time Windows Target kernel. It cannot be executed
without the kernel.
1-5
1
Introduction
The kernel runs as a VxD or kernel-mode driver, intercepts timer interrupts
from the PC clock, maintains clock signals for the Windows operating
system, and ensures real-time execution of the real-time application. As a
result, both the kernel and the real-time application run at CPU ring zero.
• Checksum - The Simulink model and the executable contain a checksum
value. The kernel uses this checksum value to determine if the Simulink
model structure, at the time of code generation, is consistent with the
real-time application structure during execution. This ensures that when
you change parameters during an execution, the mapping of Simulink model
parameters to the correct memory locations in the real-time application is
correct.
If you make structural changes to your Simulink model, the Simulink
checksum value will not match the executable checksum value. You will have
to rebuild your executable before you can connect it to your Simulink model.
Signal Acquisition and Analysis
Signals may be acquired, displayed, and saved by using Simulink Scope blocks
and Simulink external mode. This lets you observe the behavior of your model
during a simulation or your application while it runs in real time.
You can acquire signal data while running your real-time application using:
• Signal Tracing - This is the process of acquiring and visualizing signals
during a real-time run. It allows you to acquire signal data and visualize it
on your computer while the executable is running.
• Signal Logging - This is the process for acquiring signal data during a
real-time run. After the run reaches its final time or you manually stop the
run, you can plot and analyze the data.
You can save (log) data to variables in the MATLAB workspace or save data
to your disk drive with MAT-files.
Signal logging differs from signal tracing. With signal logging you can only look
at a signal after a run is finished.
For more information, see the sections “Signal Logging to the MATLAB
Workspace” on page 3-27 and “Signal Logging to a Disk Drive” on page 3-35.
1-6
Features
Parameter Tuning
Change the parameters in your Simulink model and observe the effect of those
changes during a simulation or while running an application in real time.
Simulink external mode - You use Simulink external mode to connect your
Simulink block diagram to your real-time application. The block diagram
becomes a graphical user interface (GUI) to that executable.
Simulink external mode allows you to change parameters by editing the block
diagram while running Simulink in external mode. New parameter values are
automatically transferred to the real-time application while it is running.
Changing parameters - There are different types of model parameters that
you can change while running your real-time application. For example,
parameters include the amplitude of a gain and the frequency of a sine wave.
After you connect your real-time application to your Simulink model, you can
change parameters. These parameters can be changed before or while your
real-time application is running by using one of the following methods:
• Block parameters - Change values in the dialog boxes associated with the
Simulink blocks.
• Block parameters for masked subsystems - Change values in user-created
dialog boxes associated with a subsystem.
• MATLAB variables - Create MATLAB variables that represent Simulink
block parameters, and then change parameter values by entering the
changes through the MATLAB command line.
For more information about parameter tuning, see the section “Parameter
Tuning” on page 3-46.
1-7
1
Introduction
Hardware Environment
The hardware environment consists of a PC compatible computer and I/O
boards.
This section includes the following topics:
• PC Compatible Computer
• Input/Output Driver Support
PC Compatible Computer
You can use any PC compatible computer that runs Windows 95, Windows 98,
or Windows NT.
Your computer can be a desktop, laptop, or notebook PC.
Input/Output Driver Support
Real-Time Windows Target uses standard and inexpensive I/O boards for PC
compatible computers. When running your models in real time, Real-Time
Windows Target captures the sampled data from one or more input channels,
uses the data as inputs to your block diagram model, immediately processes
the data, and sends it back to the outside world through an output channel on
your I/O board.
I/O boards - Real-Time Windows Target supports a wide range of I/O boards.
The list of supported I/O boards includes ISA, PCI, and PCMCIA boards. This
includes analog-to-digital (A/D), digital-to-analog (D/A), digital inputs, digital
outputs, and encoder inputs. In total, over 100 I/O boards are currently
supported.
For a list of supported boards, see Appendix A, “Supported I/O Boards.”
Note Some of the functions on a board may not be supported by Real-Time
Windows Target. Check The MathWorks Web site for an updated list of
supported boards and functions at: http://www.mathworks.com/products/
rtwt/ioboards.shtml.
1-8
Hardware Environment
I/O driver block library - Real-Time Windows Target provides a custom
Simulink block library. The I/O driver block library contains universal drivers
for supported I/O boards. These universal blocks are configured to operate with
the library of supported drivers. This allows easy location of driver blocks and
easy configuration of I/O boards.
You drag-and-drop a universal I/O driver block from the I/O library the same
way as you would from a standard Simulink block library. And you connect
an I/O driver block to your model just as you would connect any standard
Simulink block.
You create a real-time application in the same way as you create any other
Simulink model by using standard blocks and C-code S-functions. You can add
input and output devices to your Simulink model by:
• Using the I/O driver blocks from the rtwinlib library provided with
Real-Time Windows Target. This library contains the blocks: Analog Input,
Analog Output, Digital Input, and Digital Output.
• Using I/O driver blocks from the DOSLIB library provided with Real-Time
Workshop.Use these drivers, for Keithley Metrabyte’s DAS-1600 board, as a
starting point to create you own custom drivers.
Real-Time Windows Target provides driver blocks written as C-code
S-functions for more than 100 I/O boards. These driver blocks connect the
physical world to your real-time application:
• Sensors and actuators are connected to I/O boards
• I/O boards convert voltages to numerical values and numerical values to
voltages
• Numerical values are read from or written to I/O boards by the I/O drivers
Writing your own custom I/O drivers - If you need to write your own drivers,
you can use the DOS Target drivers provided with Real-Time Workshop as a
starting point. See Appendix B, “Custom I/O Driver Blocks.”
1-9
1
Introduction
Software Environment
The software environment is a place to design, build, and test an application in
nonreal-time and real time.
This section includes the following topics:
• Nonreal-Time Simulation
• Real-Time Execution
• Development Process
Nonreal-Time Simulation
You create a Simulink model and use Simulink in normal mode for
nonreal-time simulation on your PC computer.
Simulink model - Create block diagrams in Simulink using simple
drag-and-drop operations, and then enter values for the block parameters and
select a sample rate.
Nonreal-time simulation - Simulink uses a computed time vector to step your
Simulink model. After the outputs are computed for a given time value,
Simulink immediately repeats the computations for the next time value. This
process is repeated until it reaches the stop time.
Because this computed time vector is not connected to a hardware clock, the
outputs are calculated in nonreal-time as fast as your computer can run. The
time to run a simulation can differ significantly from real time.
Real-Time Execution
For real-time execution on your PC computer, create a real-time application
and use Simulink in external mode.
Real-time application - Real-Time Workshop, Real-Time Windows Target,
and your C compiler produce an executable that the kernel can run in real time.
This real-time application uses the initial parameters available from your
Simulink model at the time of code generation.
If you use continuous-time components in your model and generate code with
Real-Time Workshop, you must use a fixed-step integration algorithm.
1-10
Software Environment
Real-time execution - Real-Time Windows Target provides the necessary
software that uses the real-time resources on your computer hardware. Based
on your selected sample rate, Real-Time Windows Target uses interrupts to
step your application in real time at the proper rate. With each new interrupt,
the executable computes all of the block outputs from your model.
Development Process
In the Real-Time Windows Target environment, you use your desktop PC with
MATLAB, Simulink, Real-Time Workshop, and Real-Time Windows Target to:
1 Design a control system - Use MATLAB and the Control System Toolbox
to design and select the system coefficients for your controller.
2 Create a Simulink model - Use Simulink blocks to graphically model your
physical system.
3 Run a simulation in nonreal time - Check the behavior of your model
before you create a real-time application. For example, you can check the
stability of your model.
4 Create a real-time application - Real-Time Workshop generates C code
from your Simulink model. A third-party C compiler compiles the C code to
an executable that runs with the Real-Time Windows Target kernel.
5 Run an application in real time - Your desktop PC is the target computer
to run the real-time application.
6 Analyze and visualize signal data - Use MATLAB functions to plot data
saved to the MATLAB workspace or a disk.
1-11
1
Introduction
System Concepts
A more detailed understanding of Real-Time Workshop and Real-Time
Windows Target can help you when creating and running your real-time
applications.
This section includes the following topics:
• Simulink External Mode
• Data Buffers and Transferring Data
Simulink External Mode
External mode requires a communications interface to pass parameters
external to Simulink, and on the receiving end, the same communications
protocol must be used to accept new parameter values and insert them in the
proper memory locations for use by the real-time application. In some
Real-Time Workshop targets such as Tornado/VME targets, the
communications interface uses TCP/IP protocol. In the case of Real-Time
Windows Target, the host computer also serves as the target computer.
Therefore, only a virtual device driver is needed to exchange parameters
between MATLAB and Simulink memory space and memory that is accessible
by the real-time application.
Signal acquisition - You can capture and display signals from your real-time
application while it is running. Signal data is retrieved from the real-time
application and displayed in the same Simulink Scope blocks you used for
simulating your model.
Parameter tuning - You can change parameters in your Simulink block
diagram and have the new parameters passed automatically to the real-time
application. Simulink’s external mode changes parameters in your real-time
application while it is running in real time.
As a user of Real-Time Windows Target, you will find that the requirements for
setup are minimal. You start by enabling external mode and specifying the
correct name for the MEX-file interface. Then, after you have built the
real-time application, you are ready for external mode operation.
1-12
System Concepts
Data Buffers and Transferring Data
At each sample interval of the real-time application, Simulink stores
contiguous data points in memory until filling a data buffer. Once the data
buffer is filled, Simulink suspends data capture while the data is transferred
back to MATLAB through Simulink external mode. Your real-time application,
however, continues to run. Transfer of data is less critical than maintaining
deterministic real-time updates at the selected sample interval. Therefore,
data transfer runs at a lower priority in the remaining CPU time after model
computations are performed while waiting for another interrupt to trigger the
next model update.
Data captured within one buffer is contiguous. When a buffer of data has been
transferred to Simulink, it is immediately plotted in a Simulink Scope block, or
it can be saved directly to a MAT-file using the data archiving feature of
Simulink’s external mode.
With data archiving, each buffer of data can be saved to its own MAT-file. The
MAT-filenames can be automatically incremented, allowing you to capture and
automatically store many data buffers. Although points within a buffer are
contiguous, the time required to transfer data back to Simulink forces an
intermission for data collection until the entire buffer has been transferred and
may result in lost sample points between data buffers.
1-13
1
Introduction
1-14
2
Installation and
Configuration
System Requirements . . . . . . . . . . . . . . . 2-3
Hardware Requirements . . . . . . . . . . . . . . . 2-3
Software Requirements . . . . . . . . . . . . . . . . 2-4
Real-Time Windows Target . . .
Getting or Updating Your License . .
CD Installation . . . . . . . . .
Web Download Installation . . . .
Files on the Your Computer . . . .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
2-5
2-5
2-6
2-7
2-8
Initial Working Directory . . . . . . . . . . . . . 2-10
Setting the Working Directory from the Desktop Icon . . . . 2-10
Setting the Working Directory from Within MATLAB . . . . 2-10
Third Party C Compiler . . . . . . . . . . . . . . 2-11
Selecting a Defult C Compiler . . . . . . . . . . . . . 2-11
Real-Time Windows Target Kernel . . . . . . . . . 2-13
Installing the Kernel . . . . . . . . . . . . . . . . . 2-13
Uninstalling the Kernel . . . . . . . . . . . . . . . . 2-15
Testing the Installation . . . .
Running the Model rtvdp.mdl . . .
Displaying Status Information . . .
Detecting Excessive Sample Rates .
Demo Library . . . . . . . . . .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
.
.
.
.
.
. 2-16
. 2-16
. 2-19
. 2-20
. 2-21
2
Installation and Configuration
Real-Time Windows Target requires the installation of MATLAB, Simulink,
Real-Time Workshop, a C compiler, and the Real-Time Window Target kernel.
Also, make sure you set your working directory outside of the MATLAB root
directory.
This chapter includes the following sections:
• System Requirements - Use any PC compatible computer with MATLAB,
Simulink, Real-Time Workshop, Real-Time Windows Target, and a C
compiler
• Real-Time Windows Target - Install from a CD or download from the Web
• Initial Working Directory - Select a directory outside of the MATLAB root
directory
• Third Party C Compiler - Install Microsoft Visual C/C++ or Watcom C/C++
to convert the C code from Real-Time Workshop to a real-time application
• Real-Time Windows Target Kernel - Install the kernel after installing
Real-Time Windows Target
• Testing the Installation - Use the Simulink model rtvdp.mdl to test the
build process and a real-time application
2-2
System Requirements
System Requirements
Real-Time Windows Target requires a PC compatible computer.
This section includes the following topics:
• Hardware Requirements
• Software Requirements
Hardware Requirements
The following table lists the minimum hardware resources Real-Time Windows
Target (Version 2.0) requires on your computer.
Table 2-1: Hardware Requirements
Hardware
Description
CPU
Pentium or higher in a desktop, laptop, or compact PCI
industrial computer
Note Real-Time Windows Target does not support
computers with duel Pentium processors or DEC alpha
computers.
Peripherals
Hard disk drive with 16 megabytes of free space
CD-ROM drive
RAM
32 megabytes or more
When using a laptop computer, Real-Time Windows Target is a portable
environment where your computer uses PCMCIA cards to interface to real
world devices.
2-3
2
Installation and Configuration
Software Requirements
The Real-Time Windows Target (Version 2.0) has certain product prerequisites
that must be met for proper installation and execution.
The following table lists the software you need to install on your computer to
run Real-Time Windows Target.
Table 2-2: Software Requirements
Software
Description
Operating system
Windows 95, Windows 98, or Windows NT 4.0.
Note Real-Time Windows Target does not currently
support Windows 2000. Please see The MathWorks
Web site for the latest news on support for Windows
2000.
C compiler
Microsoft Visual C/C++ (Version 5.0 or 6.0)
Professional Edition
Watcom C/C++ (Version 10.6 or 11.0)
2-4
MATLAB 6.0
On the Release12 CD. Allows installation of
Simulink
Simulink 4.0
On the Release 12 CD
Real-Time
Workshop 4.0
On the Release 12 CD. Allows installation of
Real-Time Windows Target
Real-Time
Windows Target 2.0
On the Release 12 CD or downloaded from the Web
Real-Time Windows Target
Real-Time Windows Target
Real-Time Windows Target (Version 2.0) is available on CD or as a Web
downloadable.
If you installed Real-Time Windows Target (Version 1.0 or 1.5) and the
kernel - You need to uninstall the kernel before you can install Real-Time
Windows Target (Version 2.0). This removes the old version of the kernel.
If you did not install Real-Time Windows Target (Version 1.0 or 1.5) - You
only need to install Real-Time Windows Target (Version 2.0).
This section includes the following topics:
• Getting or Updating Your License
• Uninstalling the Kernel
• Installing from a CD
• Installing from the Web
Getting or Updating Your License
Before you install Real-Time Windows Target, you must have a valid Personal
License Password (PLP) for each of the products you purchased.
When you purchase a product, The MathWorks sends you a Personal License
Password (PLP) in an e-mail message. If you have not received a PLP number,
contact the MathWorks.
Internet
http://www.mathworks.com/mla
Log into MATLAB Access using your last name and Access
number. Follow the license links to determine your PLP
number.
E-mail
mailto:service@mathworks.com. Include your license
number.
Telephone
508-647-7000. Ask for Customer Service.
Fax
508-647-7001. Include your license number.
2-5
2
Installation and Configuration
Installing from a CD
Real-Time Windows Target (Version 2.0) is distributed on the MathWorks
Release 12 CD with the general installation program.
After you get a valid Personal License Password (PLP), you can install the
Real-Time Windows Target software. For detailed information about the
installation process, see the MATLAB Installation Guide for PC:
1 Insert the Release 12 CD into your host CD drive.
The installation program starts automatically after a few seconds. If the
installation program does not start automatically, run setup.exe on the CD.
During the installation process a screen similar to the one shown below
allows you to select which products to install.
2 Follow the instructions on each dialog box.
The Real-Time Windows Target installation is now complete.
Your next task is to install the Real-Time Windows Target kernel. See
“Installing the Kernel” on page 2-13.
2-6
Real-Time Windows Target
Installing from the Web
We distribute Real-Time Windows Target Version 2.0 as a single,
self-extracting file. This file is not an update, but a complete product, and does
not require you to install Real-Time Windows Target Version 1.0 or 1.5. Also,
this file includes the Real-Time Windows Target User’s Guide as a PDF file.
After you get a valid Personal License Password (PLP), you can install the
Real-Time Windows Target on your computer:
1 In the Web browser window, enter the following address
http://www.mathworks.com
2 On the right side of the page, click the link labeled Downloads. On the
Downloads Web page, click the link labeled download products.
The MATLAB Access Web page opens.
3 Enter your last name and your MATLAB Access number. Click the Login
button.
The Downloads Web page opens.
4 From the left list, select the PC Windows check box, and then click the
Continue button. From the Select Your Products list, select the
Real-Time Windows Target 2.0 check box, and then click the Continue
button.
5 On the next Web page, click the Real-Time Windows Target All link. In
the File Download dialog box, select Save this file to disk, and select the
directory where you installed MATLAB.
Your browser downloads the file Real-Time_Windows_Target.exe to your
computer.
6 Double-click the self-extracting file Real-Time_Windows_Target.exe.
The install program copies extracted files to a temporary directory and
starts the MATLAB installation program.
2-7
2
Installation and Configuration
7 Follow the instructions on each dialog box.
After MATLAB finishes the installation, the install program deletes all of
the files from the temporary directory.
The Real-Time Windows Target installation is now complete.
Note A PDF version of the Real-Time Windows Target User’s Guide is located
at MATLABROOT\help\pdf_doc\rtwin\rtwin_target_ug.pdf. You need Adobe
Acrobat Reader to view and print this document. You can download Acrobat
Reader from the Web at http://www.adobe.com.
Your next task is to install the Real-Time Windows Target kernel. See
“Real-Time Windows Target Kernel” on page 2-13.
Files on the Your Computer
When using Real-Time Windows Target, you may find it helpful to know where
files are located:
• MATLAB working directory - Simulink models (model.mdl) and
Real-Time Windows Target executable (model.rwd)
Note Select a working directory outside of the MATLAB root. See “Initial
Working Directory” on page 2-10
• RTW project directory - The RTW C-code files (model.c, model.h) are in a
subdirectory called model_rtwin.
Real-Time Windows Target Files - The files included with the Real-Time
Windows Target are located in the directory
matlabroot\toolbox\rtw\targets\rtwin
2-8
Real-Time Windows Target
Real-Time Windows Target provides files to help Real-Time Workshop
generate C code from your Simulink model, and compile that code to a real-time
executable.
• System Target File (rtwin.tlc) - Defines the process of generating C code
for Real-Time Windows Target.
• Template Makefile and Makefile (rtwintmf.m, model_name.mk) - The
template makefile serves as a template for generating the real makefile,
which the make utility uses during model compilation. During the automatic
build procedure, the make command extracts information from the template
makefile rtwintmf.m and generates the makefile model_name.mk.
• Make Command (make_rtw.m) - The standard make command supplied with
the Real-Time Workshop.
Other files provided with Real-Time Windows Target include:
• I/O drivers (*rwd) - Binaries for I/O device drivers. Real-Time Windows
Target does not link the driver object files with your real-time executable.
The drivers are loaded into memory and run by the kernel separately.
• Simulink external mode interface (rtwinext.dll) - MEX-file for
communicating between Simulink’s external mode and the Real-Time
Windows Target kernel.
Simulink external mode uses the MEX-file interface module to download
new parameter values to the real-time model and to retrieve signals from the
real-time model. You can display these signals in Simulink Scope blocks.
• Kernel install and uninstall commands (rtwintgt.m, rtwho.m) - M-file
scripts to install and uninstall Real-Time Windows Target kernel and check
installation.
2-9
2
Installation and Configuration
Initial Working Directory
You should set your MATLAB working directory outside of the MATLAB root
directory. The default MATLAB root directory is c:\matlab.
If your MATLAB working directory is below or inside the MATLAB root, files
created by Simulink, Real-Time Workshop, and Real-Time Windows Target
are mixed with the MATLAB directories. This mixing of files could cause you
file management problems when deleting unwanted files.
This section includes the following topics:
• Setting the Working Directory from the Desktop Icon
• Setting the Working Directory from Within MATLAB
Setting the Working Directory from the Desktop
Icon
Your initial working directory is specified in the shortcut file you use to start
MATLAB. To change this initial directory, use the following procedure:
1 Right-click the MATLAB desktop icon, or from the program menu,
right-click the MATLAB shortcut.
2 Click Properties. In the Start in text box, enter the directory path you want
MATLAB to initially use outside of the MATLAB root directory.
3 Click OK, and then start MATLAB. To check your working directory, type
pwd or cd
Setting the Working Directory from Within MATLAB
An alternative, but temporary, procedure for setting your MATLAB working
directory is:
1 In the MATLAB command window, type
cd c:\mwd
2 To check your working directory, type
pwd or cd
2-10
Third Party C Compiler
Third Party C Compiler
Real-Time Windows Target requires one of the following C compilers not
included with Real-Time Windows Target:
• Microsoft Visual C/C++ compiler - Version 5.0 or 6.0.
• Watcom C/C++ compiler - Version 10.6 and 11.0. During installation of your
Watcom C/C++ compiler, be sure to specify DOS target in addition to
Windows target to have the necessary libraries available for linking.
After installation run the MEX utility to select your compiler as the default
compiler for building real-time applications.
Selecting a Default C Compiler
Real-Time Workshop uses the default C compiler to generate executable code,
and the MEX utility uses this compiler to create MEX-files.
Use this procedure to select either a Microsoft Visual C/C++ compiler or a
Watcom C/C++ compiler before you build an application. Note, the LCC
compiler is not supported:
1 In the MATLAB window, type
mex -setup
MATLAB displays the following message.
Please choose your compiler for building external interface
(MEX) files. Would you like mex to locate installed
compilers?([y]/n):
2 Type
y
MATLAB displays the following message.
Select a compiler:
[1] : WATCOM compiler in c:\watcom
[2] : Microsoft compiler in c:\visual
[0] : None
Compiler:
2-11
2
Installation and Configuration
3 Type a number. For example, to select the Microsoft compiler, type
2
MATLAB displays the message.
Please verify your choices:
Compiler: Microsoft 5.0
Location: c:\visual
Are these correct?([y]/n)
4 Type
y
MATLAB resets the default compiler and displays the message.
The default options file:
“C:\WINNT\Profiles\username\Application
Data\MathWorks\MATLAB\mexopts.bat” is being updated.
2-12
Real-Time Windows Target Kernel
Real-Time Windows Target Kernel
A key component of the Real-Time Windows Target is a real-time kernel that
interfaces with the Windows operating system in a way that allows your
real-time executable to run at your selected sample rate. The kernel assigns
the highest priority of execution to your real-time executable.
This section includes the following topics:
• Installing the Kernel
• Uninstalling the Kernel
Installing the Kernel
During installation, all software for Real-Time Windows Target is copied onto
your hard drive. The kernel, although copied to the hard drive, is not
automatically installed. Installing the kernel sets up the kernel to start
running in the background each time you start your computer.
After you install Real-Time Windows Target (version 2.0), you can install the
kernel. You need to install the kernel before you can run a Real-Time Windows
Target executable:
1 In the MATLAB command window, type
rtwintgt -install
MATLAB displays the message
You are going to install the Real-Time Windows Target kernel.
Do you want to proceed? [y] :
2 Continue installing the kernel. Type
y
MATLAB installs the kernel and displays the message
The Real-Time Windows Target kernel has been successfully
installed.
If a message is displayed asking you to restart your computer, you need to
restart your computer before the kernel runs correctly.
2-13
2
Installation and Configuration
3 Check that the kernel was correctly installed. Type
rtwho
MATLAB should display the message
Real-Time Windows Target version 2.0 (C) The MathWorks, Inc.
1994-2000
MATLAB performance = 100.0%
Kernel timeslice period = 1 ms
Once the kernel is installed, you can leave it installed. After you have installed
the kernel, it remains idle, which allows Windows to control the execution of
any standard Windows application. Standard Windows applications include
internet browsers, word processors, and MATLAB.
It is only during real-time execution of your model that the kernel intervenes
to ensure that your model is given priority to use the CPU to execute each
model update at the prescribed sample intervals. Once the model update at a
particular sample interval completes, the kernel releases the CPU to run any
other Windows application that may need servicing.
2-14
Real-Time Windows Target Kernel
Uninstalling the Kernel
If you encounter any problems with the Real-Time Windows Target, you can
uninstall the kernel. The kernel executable file remains on your hard drive so
that you can reinstall it:
1 In the MATLAB command window, type
rtwintgt -uninstall
MATLAB displays the message
You are going to uninstall the Real-Time Windows Target kernel.
Do you want to proceed? [y] :
2 To continue uninstalling the kernel, type
y
MATLAB uninstalls the kernel by removing it from memory and displays
the message.
The Real-Time Windows Target kernel has been successfully
uninstalled.
3 To check that the kernel was correctly uninstalled, type
rtwho
MATLAB should displays the following message
If you are running Windows 95 or Windows 98, you need to reboot your
computer before the uninstall is complete.
Once uninstalled, the kernel is no longer active, and has no impact on the
operation of your computer.
2-15
2
Installation and Configuration
Testing the Installation
Real-Time Widows Target includes several demo models. You can use one of
the demo models to test your installation. Demo models simplify testing of your
installation since they are configured with settings that include the correct
target, scope settings, sample time, and integration algorithm.
Once you have completed the installation of Real-Time Windows Target and
the kernel, we recommend a quick test by at least running the model
rtvdp.mdl. If you change your installation or compiler, we also recommend
doing this test as a quick check to confirm that Real-Time Windows Target is
still working.
This section includes the following topics:
• Running the Model rtvdp.mdl
• Displaying Status Information
• Detecting Excessive Sample Rates
• Demo Library
Running the Model rtvdp.mdl
The model rtvdp.mdl does not have any I/O blocks so that you can run this
model regardless of the I/O boards in your computer. Running this model will
test the installation by running Real-Time Workshop, your third-party
C compiler, Real-Time Windows Target, and the Real-Time Windows Target
kernel.
After you have installed the Real-Time Windows Target kernel, you can test
the entire installation by building and running a real-time application.
Real-Time Windows Target includes the model rtvdp.mdl which already has
the correct Real-Time Workshop options selected for you:
1 In the MATLAB command window, type
rtvdp
2-16
Testing the Installation
The Simulink model rtvdp.mdl window opens.
2 From the Tools menu, point to Real-Time Workshop, and then click Build
Model.
The MATLAB command window displays the following messages.
###
###
. .
###
. .
###
###
for
Starting Real-Time Workshop build for model: rtvdp
Invoking Target Language Compiler on rtvdp.rtw
.
Compiling rtvdp.c
.
Created Real-Time Windows Target module rtvdp.rwd.
Successful completion of Real-Time Workshop build procedure
model: rtvdp
3 From the Simulation menu, click External, and then click Connect to
target.
The MATLAB command window displays the following message.
Model rtvdp loaded
2-17
2
Installation and Configuration
4 From Simulation menu, click Start real-time code.
The Scope window displays the output signals. If your Scope window looks
like the figure shown below, then you have successfully installed Real-Time
Windows Target and have run a real-time application.
5 From Simulation menu, click Stop real-time code.
The real-time application stops running, and the Scope window stops
displaying the output signals.
2-18
Testing the Installation
Displaying Status Information
Real-Time Windows Target provides the command rtwho for accessing the
kernel and displaying status information. It lists information about the version
number, kernel performance, and history variables. Also, you can determine
whether or not the Real-Time Windows kernel is presently installed:
1 In the MATLAB command window, type
rtwho
MATLAB displays messages similar to those shown below.
Real-Time Windows Target version 2.00 (C) The MathWorks, Inc.
1994-2000
MATLAB performance = 100.0%
Kernel timeslice period = 1 ms
DRIVERS:
Name
Humusoft AD512
Address
Parameters
0x300
[]
2 Interpret the message.
This message indicates that MATLAB and other nonreal-time applications
(for example, a word processor) are able to run at 100% performance because
no real-time applications are currently executing on your PC.
When a real-time application is executing, the MATLAB performance is at
a value below 100%. For example, if the MATLAB performance = 90.0%,
then the real-time application is using 10% of the CPU time.
We recommend that you select a sample rate so that rtwho returns a
MATLAB performance of at least 80%.
The kernel time slice period is the current frequency of the hardware timer
interrupt. One millisecond is the maximum value for models with large
sample times (slow sampling rate) or when an application has not been built.
This value changes when you select sampling times less then one
millisecond.
2-19
2
Installation and Configuration
Detecting Excessive Sample Rates
If your specified sample rate is too fast, Real-Time Windows Target detects and
reports this during real-time execution. Sampling rates exceeding 10 kHz can
be achieved on Pentium computers. Once the model is running, the rtwho
command can be issued in the MATLAB command line to observe the system
performance. As indicated, MATLAB performance decreases as the system
becomes overloaded.
Real-Time Windows Target version 2.0 (C) The MathWorks, Inc.
1999-2000
MATLAB performance = 99.1%
Kernel timeslice period = 0.0999 ms
TIMERS:
Number
1
DRIVERS:
Period
0.01
Name
Humusoft AD512
ecg
Running
Yes
Address
0x300
0
Parameters
[]
[]
Demo Library
The demo library includes models with preset values and dialog boxes. These
models include a configuration of examples that use: no I/O, A/D only, A/D and
D/A in a simple signal processing demo as well as in a simple control demo.
Examples that use I/O blocks require you to configure the Adapter block to
match the I/O board installed in your computer.
1 In the MATLAB command window, type
rtwtdemo
The rtwtdemo window opens and displays the demo models provided with
Real-Time Windows Target.
2-20
Testing the Installation
2 Double-click a demo block to open the model.
2-21
2
Installation and Configuration
2-22
3
Basic Procedures
Simulink Model . . . . . . . . . . . .
Creating a Simulink Model . . . . . . . .
Entering Simulation Parameters for Simulink .
Entering Scope Properties for Signal Tracing .
Running a Nonreal-Time Simulation . . . .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
.
.
.
.
.
. 3-3
. 3-3
. 3-7
. 3-9
. 3-12
Real-Time Application . . . . . . . . . . . . .
Entering Simulation Parameters for
Real-Time Workshop . . . . . . . . . . . . .
Entering Scope Properties for Signal Tracing . . . . .
Creating a Real-Time Application . . . . . . . . . .
Entering Additional Scope Properties for Signal Tracing
Running a Real-Time Application . . . . . . . . . .
. . 3-14
Signal Logging to the MATLAB Workspace
Entering Scope Properties . . . . . . . . .
Entering Signal and Triggering Properties . .
Plotting Logged Signal Data . . . . . . . .
. .
. .
. .
. .
. .
. .
. .
. .
. . 3-27
. . 3-27
. . 3-30
. . 3-33
Signal Logging to a Disk Drive . . .
Entering the Scope Properties . . . . .
Entering Signal and Triggering Properties
Entering Data Archiving Parameters . .
Plotting Logged Signal Data . . . . . .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. . 3-35
. . 3-35
. . 3-38
. . 3-41
. . 3-44
. .
. .
. .
. .
. .
.
.
.
.
.
. 3-14
. 3-17
. 3-20
. 3-21
. 3-24
Parameter Tuning . . . . . . . . . . . . . . . . 3-46
Types of Parameters . . . . . . . . . . . . . . . . . 3-46
Changing Model Parameters . . . . . . . . . . . . . . 3-47
3 Basic Procedures
The basic procedures explain how to create a Simulink or real-time application,
and how to run a simulation or execution.
This chapter includes the following sections:
• Simulink Model - Create a Simulink model and run a nonreal-time
simulation
• Real-Time Application - Create a real-time application, generate code
from that model, and run a real-time execution
• Signal Logging to the MATLAB Workspace - Save data from a
simulation or execution, and then analyze or visualize that data
• Signal Logging to a Disk Drive - Save data from a real-time execution,
and then analyze or visualize that data
• Parameter Tuning - Change parameters in your application while it is
running in real time
3-2
Simulink Model
Simulink Model
A Simulink model is a graphical representation of your physical system. You
create a Simulink model for nonreal-time simulation of your system, and then
you use the Simulink model to create a real-time application.
This section includes the following topics:
• Creating a Simulink Model
• Entering Simulation Parameters for Simulink
• Entering Scope Properties for Signal Tracing
• Running a Nonreal-Time Simulation
Creating a Simulink Model
This procedure explains how to create a simple Simulink model. You use this
model as an example to learn other procedures in Real-Time Windows Target.
You need to create a Simulink model before you can run a simulation, or create
a real-time application:
1 In the MATLAB command window, type
simulink
The Simulink Library Browser window opens.
2 From the toolbar, click the Create a new model button.
3-3
3 Basic Procedures
An empty Simulink window opens.
3 In the Simulink Library Browser window, double-click Simulink, and then
double-click Sources. Click-and-drag Signal Generator to the Simulink
window.
Double-click Continuous. Click-and-drag Transfer Fcn to the Simulink
window.
Double-click Sinks. Click-and-drag Scope to the Simulink window.
4 Connect the Signal Generator output to the Transfer Fcn input by
clicking-and-dragging a line between the blocks. Likewise, connect the
Transfer Fcn output to the Scope input.
5 Double-click the Transfer Fcn block. The Block Parameters dialog box
opens. In the Numerator text box, enter
[10000]
In the Denominator text box, enter
[1 70 10000]
3-4
Simulink Model
Your Block Parameters dialog box will look similar to the figure shown
below.
6 Click OK.
7 Double-click the Signal Generator block. The Block Parameters dialog box
opens. From the Wave form list, select Square.
In the Amplitude text box, enter
1
In the Frequency text box, enter
20
From the Units list, select rad/sec.
3-5
3 Basic Procedures
Your Block Parameters dialog box will look similar to the figure shown
below.
8 Click OK.
The completed Simulink block diagram is shown below.
3-6
Simulink Model
9 From the File menu, click Save As. The Save As dialog box opens. In the
File name text box, enter a filename for your Simulink model and click
Save. For example, type
rtwin_model
Simulink saves your model in the file rtwin_model.mdl.
Entering Simulation Parameters for Simulink
The simulation parameters give information to Simulink for running a
simulation.
After you create a Simulink model, you can enter the simulation parameters
for Simulink. This procedure uses the Simulink model rtwin_model.mdl as an
example and assumes you have already loaded that model:
1 In the Simulink window, and from the Simulation menu, click Parameters.
In the Simulation Parameters dialog box, click the Solver tab.
The Solver page opens.
2 In the Start time box, enter 0.0. In the Stop time box, enter the amount of
time you want your model to run. For example, enter 10.0 seconds.
3 From the Type list, choose Fixed-step. Real-Time Workshop does not
support variable step solvers.
4 From the integration algorithm list, choose a solver. For example, choose the
general purpose solver ode5 (Dormand-Prince).
5 In the Fixed step size box, enter a sample time. For example, enter 0.001
second for a sample rate of 1000 samples/second.
6 From the Mode list, choose SingleTasking. For models with blocks that
have different sample times, choose MultiTasking.
3-7
3 Basic Procedures
Your Solver page will look similar to the figure shown below.
7 Do one of the following:
- Click Apply to apply the changes to your model and leave the dialog box
open.
- Click OK to apply the changes to your model and close the Simulation
Parameters dialog box.
3-8
Simulink Model
Entering Scope Properties for Signal Tracing
You enter or change scope properties to specify the x-axis and y-axis in a Scope
window. Other properties include the number of graphs in one Scope window
and the sample time for models with discrete blocks.
After you add a Scope block to your Simulink model, you can enter the scope
properties for signal tracing:
1 In the Simulink window, double-click the Scope block.
A Scope window opens.
2 Click the Properties button.
A Scope properties dialog box opens.
3 Click the General tab. In the Number of axes box, enter the number of
graphs you want in one Scope window. For example, enter 1 for a single
graph. Do not select the floating scope check box.
In the Time range box, enter the upper value for the time range. For
example, enter 1 second. From the Tick labels list, choose all.
From the Sampling list, choose Sample time and enter 0 in the text box.
Entering 0 indicates that Simulink evaluates this block as a continuous time
block. If you have discrete blocks in your model, enter the Fixed step size
you entered in the Simulation Parameters dialog box.
3-9
3 Basic Procedures
Your Scope properties dialog box will look similar to the figure shown
below.
4 Do one of the following:
- Click Apply to apply the changes to your model and leave the dialog box
open.
- Click OK to apply the changes to your model and close the Simulation
Parameters dialog box.
5 In the Scope window, point to the y-axis shown in the figure below, and
right-click.
3-10
Simulink Model
6 From the pop-up menu, click Axis Properties.
7 The Scope properties: axis 1 dialog box opens. In the Y-min and Y-max
text boxes, enter the range for the y-axis in the Scope window. For example,
enter -2 and 2 as shown in the figure below.
8 Do one of the following:
- Click Apply to apply the changes to your model and leave the dialog box
open.
- Click OK to apply the changes to your model and close the Simulation
Parameters dialog box.
3-11
3 Basic Procedures
Running a Nonreal-Time Simulation
You use Simulink in normal mode to run a nonreal-time simulation. Running
a simulation lets you observe the behavior of your model in nonreal-time.
After you load your Simulink model into the MATLAB workspace, you can run
a simulation. This procedure uses the Simulink model rtwin_model.mdl as an
example and assumes you have loaded that model:
1 In the Simulink window, double-click the Scope block.
Simulink opens a Scope window with an empty graph.
2 From the Simulation menu, click Normal, and then click Start.
Simulink runs the simulation and plots the signal data in the Scope window.
3-12
Simulink Model
During the simulation, the Scope window displays the samples for one time
range, increases the time offset, and then displays the samples for the next
time range.
3 Do one of the following:
- Let the simulation run to the stop time.
- From the Simulation menu, click Stop.
The simulation stops. MATLAB does not display any messages.
3-13
3 Basic Procedures
Real-Time Application
You create a real-time application to let your system run while synchronized to
a real-time clock. This allows your system to control or interact with an
external system. This is necessary if you use your system to stabilize a physical
plant.
The process of creating and running a real-time application includes the
creation of a Simulink Model from the previous section:
• “Creating a Simulink Model” on page 3-3
• “Entering Simulation Parameters for Simulink” on page 3-7
This section includes the following topics:
• Entering Simulation Parameters for Real-Time Workshop
• Entering Scope Properties for Signal Tracing
• Creating a Real-Time Application
• Entering Additional Scope Properties for Signal Tracing
• Running a Real-Time Application
Entering Simulation Parameters for
Real-Time Workshop
The simulation parameters are used by Real-Time Workshop for generating
C code and building a real-time application.
After you create a Simulink model, you can enter the simulation parameters
for Real-Time Workshop. This procedure uses the Simulink model
rtwin_model.mdl as an example and assumes you have already loaded that
model:
1 In the Simulink window, and from the Simulation menu, click Simulation
parameters. In the Simulation Parameters dialog box, click the
Real-Time Workshop tab.
The Real-Time Workshop page opens.
2 Click the Browse button.
The System Target File Browser opens.
3-14
Real-Time Application
3 Select the system target file for Real-Time Windows Target.
4 Click OK.
The system target file rtwin.tlc, the template makefile rtwintmf, and the
make command make_rtw are automatically entered into the Real-Time
Workshop page.
Although not visible in the Real-Time Workshop page, the external target
interface MEX file rtwinext is also configured after you click OK. This
allows external mode to pass new parameters to the real-time application
and to return signal data from the real-time application. The data is
displayed in Scope blocks or saved with signal logging.
3-15
3 Basic Procedures
Your Real-Time Workshop page will look similar to the figure shown below.
Do not select the Inline parameters check box. Inlining parameters is used
for custom targets when you want to reduce the amount of RAM or ROM
with embedded systems. Also, if you select inlining parameters, the
parameter tuning feature is disabled. Since PCs have more memory than
embedded systems, we recommend that you do not inline parameters.
5 Do one of the following:
- Click Apply to apply the changes to your model and leave the dialog box
open.
- Click OK to apply the changes to your model and close the Simulation
Parameters dialog box.
3-16
Real-Time Application
Entering Scope Properties for Signal Tracing
You enter or change scope properties to format the x-axis and y-axis in a Scope
window. Other properties include the number of graphs in a one Scope window
and whether the scope is connected to a continuous or discrete model.
If you entered the scope properties for running a simulation, you can skip this
procedure. This information is repeated here if you did not run a simulation.
After you add a Scope block to your Simulink model, you can enter the scope
properties for signal tracing:
1 In the Simulink window, double-click the Scope block.
A Scope window opens.
2 Click the Properties button.
A Scope properties dialog box opens.
3 Click the General tab. In the Number of axes box, enter the number of
graphs you want in one Scope window. For example, enter 1 for a single
graph. Do not select the floating scope check box.
In the Time range box, enter the upper value for the time range. For
example, enter 1 second. From the Tick labels list, choose all.
From the Sampling list, choose Sample time and enter 0 in the text box.
Entering 0 indicates that Simulink evaluates this block as a continuous time
block. If you have discrete blocks in your model, enter the Fixed step size
you entered in the Simulation Parameters dialog box.
3-17
3 Basic Procedures
Your Scope properties dialog box will look similar to the figure shown
below.
4 Do one of the following:
- Click Apply to apply the changes to your model and leave the dialog box
open.
- Click OK to apply the changes to your model and close the Simulation
Parameters dialog box.
5 In the Scope window, point to the y-axis and right-click. From the menu,
click Axis Properties.
The Scope properties: axis 1 dialog box opens.
3-18
Real-Time Application
6 In the Y-min and Y-max text boxes enter the range for the y-axis in the
Scope window. For example, enter -2 and 2.
7 Do one of the following:
- Click Apply to apply the changes to your model and leave the dialog box
open.
- Click OK to apply the changes to your model and close the Simulation
Parameters dialog box.
3-19
3 Basic Procedures
Creating a Real-Time Application
Real-Time Workshop generates C code from your Simulink model, then a
third-party C compiler compiles and links that C code into a real-time
application.
After you enter parameters into the Simulation Parameters dialog box for
Real-Time Workshop, you can build a real-time application. This procedure
uses the Simulink model rtwin_model.mdl as an example, and assumes you
have loaded that model:
1 In the Simulink window, and from the Tools menu, point to Real-Time
Workshop, and then click Build Model.
The build process does the following:
- Real-Time Workshop creates the C code source files rtwin_model.c and
rtwin_model.h.
- The make utility make_rtw.execreates the makefile rtwin_model.mk
from the template makefile rtwintmf.
- The make utility make_rtw.exe builds the real-time application
rtwin_model.rwd using the makefile rtwin_model.mk created above. The
file rtwin_model.rwd is a binary file that we refer to as your real-time
application. You can run the real-time application with the Real-Time
Windows Target kernel.
2 Connect your Simulink model to your real-time application. See “Entering
Additional Scope Properties for Signal Tracing” on page 3-21.
After you create a real-time application, you can exit MATLAB, start MATLAB
again, and then connect and run the executable without having to rebuild.
3-20
Real-Time Application
Entering Additional Scope Properties for Signal
Tracing
Simulink external mode connects your Simulink model to your real-time
application. This connection allows you to use the Simulink block diagram as a
graphical user interface to your real-time application.
After you have created a real-time application, you can enter scope properties
for signal tracing with Simulink external mode:
1 In the Simulation window, and from the Tools menu, click External Mode
Control Panel.
The External Mode Control Panel dialog box opens.
2 Click the Target Interface button.
3-21
3 Basic Procedures
The External Target Interface dialog box opens.
3 In the MEX-file for external interface box, enter rtwinext.
The MEX-file, rtwinext.dll, is supplied with Real-Time Windows Target to
work with Simulink external mode and support uploading signal data and
downloading parameter values.
4 Click OK.
5 Click the Signal & Triggering button.
The External Signal & Triggering dialog box opens.
6 Click the Select all button. From the Source list, choose Manual. From the
Mode list, choose Normal.
The X under Signal selection designates that a signal has been tagged for
data collection, and T designates that the signal has been tagged as a trigger
signal.
7 In the Duration box, enter the number of sample points in a data buffer. For
example, if you have a sample rate of 1000 samples/second and a stop time
of 10 seconds, you could enter
10000
3-22
Real-Time Application
8 Select the Arm when connect to target check box.
Note If you do not select this check box, data is not displayed in the scope
window.
The Signal & Triggering dialog box will look similar to the figure below.
9 Do one of the following:
- Click Apply to apply the changes to your model and leave the dialog box
open.
- Click Close to apply the changes to your model and close the Simulation
Parameters dialog box.
Note You must click the Apply or Close button on the Signal and
Triggering dialog box for the changes you made to take effect. Generally it
is not necessary to rebuild your real-time application.
3-23
3 Basic Procedures
Running a Real-Time Application
Running your real-time application lets your observe the behavior of your
model in real time with the generated code.
The process of connecting consists of:
• Establishing a connection between your Simulink model and the kernel to
allow exchange of commands, parameters, and logged data.
• Running the application in real time.
After you build the real-time application, you can run your model in real time.
This procedure uses the Simulink model rtwin_model.mdl as an example, and
assumes you have created a real-time application for that model:
1 From the Simulation menu, click External, and then click Connect to
target. Also, you can connect to the target from the toolbar by clicking
MATLAB displays the message
Model rtwin_model loaded
3-24
.
Real-Time Application
2 In the Simulation window, and from the Simulation menu, click Start
real-time code. Also, you can start the execution from the toolbar by
clicking
.
Simulink runs the execution and plots the signal data in the Scope window.
In this example, the Scope window displays 1000 samples in 1 second,
increases the time offset, and then displays the samples for the next 1
second.
Note Transfer of data is less critical than calculating the signal outputs at
the selected sample interval. Therefore, data transfer runs at a lower
priority in the remaining CPU time after real-time application computations
are performed while waiting for another interrupt to trigger the next
real-time application update. The result may be a loss of data points
displayed in the Scope window.
3-25
3 Basic Procedures
3 Do one of the following:
- Let the execution run until it reaches the stop time.
- From the Simulation menu, click Stop real-time code.
The real-time application stops, and MATLAB displays the message
Model rtwin_model unloaded
3-26
Signal Logging to the MATLAB Workspace
Signal Logging to the MATLAB Workspace
Signal logging is the process of saving (logging) data to a variable in your
MATLAB workspace or to a MAT-file on your disk drive. This allows you to use
MATLAB functions for data analysis and MATLAB plotting functions for
visualization. You can save data to a variable during a simulation or during an
execution.
To use signal logging with Real-Time Windows Target, you must add a Scope
block to your Simulink model.
This section includes the following topics:
• Entering Scope Properties
• Entering Signal and Triggering Properties
• Plotting Logged Signal Data
Simulink external mode does not support data logging with Outport blocks in
your Simulink model. This means you do not enter or select parameters on the
Workspace I/O page in the Simulation Parameters dialog box.
Entering Scope Properties
Data is saved to the MATLAB workspace through a Simulink Scope block.
Scope block properties need to be set for data to be saved.
After you create a Simulink model and add a Scope block, you can enter the
scope properties for signal logging to the MATLAB workspace. This procedure
uses the Simulink model rtwin_model.mdl as an example and assumes you
have already loaded that model.
Note If you entered the scope properties for running a simulation, you may
want to look over this procedure because the Scope Properties dialog box is
related to the External Signal and Triggering dialog box.
1 In the Simulink window, double-click the Scope block.
A Scope window opens.
3-27
3 Basic Procedures
2 On the toolbar, click the Properties button.
A Scope Properties dialog box opens.
3 Click the Data history tab.
4 Do one of the following:
- If you are running a simulation, you can select the Limit rows to last
check box, and enter the number of sample points to save.
- If you are running an execution, do not select the Limit rows to last check
box.
Note The Limit rows to last check box is related to the Duration value in
the External Signal and Triggering dialog box. The smaller of either value
limits the number of sample points saved to the MATLAB workspace. When
using Real-Time Windows Target, we recommend that you use the
Duration value to set the number of sample points you save.
To set the Duration value, see “Entering Signal and Triggering Properties”
on page 3-30
5 Select the Save data to workspace check box. In the Variable name text
box, enter the name of a MATLAB variable. The default name is ScopeData.
6 From the Format list, choose either Structure with time, Structure, or
Matrix (compatible with V2.0-2.2). For example, to save the sample times
and signal values at those times, choose Structure with time.
3-28
Signal Logging to the MATLAB Workspace
Your Data history page will look similar to the figure shown below.
7 Do one of the following:
- Click Apply to apply the changes to your model and leave the dialog box
open.
- Click OK to apply the changes to your model and close the Scope
Properties dialog box.
Note When you modify anything in the Scope Properties dialog box, you
must click the Apply or OK button for the changes to take effect, and you
must rebuild your real-time application before connecting and starting it. If
you do not rebuild, an error dialog box will open. If you do not click Apply,
your executable will run, but it will use the old settings.
The reason why you need to rebuild is because the model checksum includes
settings from the Scope block used for signal logging. If the model checksum
does not match the checksum in the generated code, the real-time
application cannot run. Always rebuild your real-time application after
changing Scope properties.
3-29
3 Basic Procedures
Entering Signal and Triggering Properties
Data is saved to the MATLAB workspace through a Simulink Scope block.
Signal and triggering properties need to be set only when running a real-time
application. If you are running a simulation, you can skip this procedure.
After you create a Simulink model and add a Scope block, you can enter the
signal and triggering properties for logging to the MATLAB workspace. This
procedure uses the Simulink model rtwin_model.mdl as an example and
assumes you have already loaded that model:
1 In the Simulink window, and from the Tools menu, click External Mode
Control Panel.
The External Mode control Panel dialog box opens.
2 Click the Signal & Triggering button.
The External Signal & Triggering dialog box opens.
3 Click the Select all button. From the Source list, choose Manual. From the
Mode list, choose Normal.
The X under Signal selection designates that a signal has been tagged for
data collection, and T designates that the signal has been tagged as a trigger
signal.
4 In the Duration box, enter the number of sample points in a data buffer. For
example, if you have a sample rate of 1000 samples/second and a stop time
of 10 seconds, you could enter
10000
Note The Duration value is related to the Limit rows to last value in the
Scope Properties dialog box. The smaller of either value limits the number
of sample points saved to the MATLAB workspace. We recommend that you
do not select the Limit rows to last check box, and use the Duration value
to set the number of sample points saved.
3-30
Signal Logging to the MATLAB Workspace
To deselect the Limit rows to last check box, see “Entering Scope
Properties” on page 3-27.
The Duration value specifies the number of contiguous points of data to be
collected in each buffer of data. We recommend that you enter a Duration
value equal to the total number of sample points that you need to collect
rather then relying on a series of buffers to be continuous.
If you enter a value less than the total number of sample points, you will lose
sample points during the time needed to transfer values from the data buffer
to the MATLAB workspace. Real-Time Windows Target ensures that points
are continuous only within one buffer. Between buffers, due to transfer time,
some samples will be omitted.
We also recommend setting the time axis for Simulink Scope blocks equal to
the sample interval (in seconds) times the number of points in each data
buffer. This setting will display one buffer of data across the entire Simulink
Scope plot.
3-31
3 Basic Procedures
The Signal & Triggering dialog box will look similar to the figure below.
5 Do one of the following:
- Click Apply to apply the changes to your model and leave the dialog box
open.
- Click Close to apply the changes to your model and close the Simulation
Parameters dialog box.
Note You must click the Apply or Close button on the Signal and
Triggering dialog box for the changes you made to take effect. Generally it
is not necessary to rebuild your real-time application.
3-32
Signal Logging to the MATLAB Workspace
Plotting Logged Signal Data
You can use the MATLAB plotting functions for visualizing nonreal-time
simulated data or real-time application data.
After running your real-time application and logging data to the MATLAB
workspace, you can plot the data. This procedure uses the Simulink model
rtwin_model.mdl as an example, and assumes you saved your data to the
variable ScopeData:
1 In the MATLAB command window, type
ScopeData
MATLAB lists the structure of the variable ScopeData. The variable
ScopeData is a MATLAB structure containing the fields time vector, signal
structure, and a string containing the block name.
ScopeData =
time: [10000x1 double]
signals: [1x1 struct]
blockName: ’rtwin_model/Scope’
To list the contents of the structure signals, type
ScopeData.signals
MATLAB lists the structure of the variable ScopeData.signals. This
structure contains one or more vectors of signal data depending on the
number of signal inputs to the Scope block.
ans =
values:
label:
title:
plotStyle:
[10000x1 double]
’’
’’
1
2 To plot the first 1000 points, type
plot(ScopeData.time(1:1000), ScopeData.signals.values(1:1000))
3-33
3 Basic Procedures
MATLAB plots the first 1000 samples from 0.0000 to 0.9990 second.
3 The variable ScopeData is not automatically saved to your hard disk. To
save the variable ScopeData, type
save ScopeData
MATLAB saves the scope data to the file ScopeData.mat.
3-34
Signal Logging to a Disk Drive
Signal Logging to a Disk Drive
Signal logging is the process of saving (logging) data to a variable in your
MATLAB workspace and then saving that data to a MAT-file on your disk
drive. This allows you to use MATLAB functions for data analysis and
MATLAB plotting functions for visualization. Using the data archiving feature
provide in the External Mode Control Panel, you can save data to a file
during an execution. You cannot save data to a disk drive during a simulation.
To use the data archiving feature with Real-Time Windows Target, you must
add a Scope block to your Simulink model, and you must run an execution of a
real-time application.
This section includes the following topics:
• Entering Scope Properties
• Entering Signal and Triggering Properties
• Entering Data Archiving Parameters
• Plotting Logged Signal Data
Simulink external mode does not support data logging with Outport blocks in
your Simulink model. This means you do not enter or select parameters on the
Workspace I/O page in the Simulation Parameters dialog box.
Entering Scope Properties
Data is saved to a disk drive by first saving the data to the MATLAB workspace
through a Simulink Scope block. Scope block parameters need to be set for data
to be saved.
After you create a Simulink model and add a Scope block, you can enter the
scope properties for signal logging to a disk drive. This procedure uses the
Simulink model rtwin_model.mdl as an example and assumes you have
already loaded that model.
Note If you entered the scope properties for running a simulation, you may
want to look over this procedure because the Scope Properties dialog box is
related to the External Signal and Triggering dialog box and the Data
Archiving dialog box.
3-35
3 Basic Procedures
1 In the Simulink window, double-click the Scope block.
A Scope window opens.
2 On the toolbar, click the Properties button.
A Scope Properties dialog box opens.
3 Click the Data history tab.
4 Do one of the following:
- If you are running a simulation, you can select the Limit rows to last
check box, and enter the number of sample points to save.
- If you are running an execution, do not select the select the Limit rows to
last check box.
Note The Limit rows to last check box is related to the Duration value in
the External Signal and Triggering dialog box. The smaller of either value
limits the number of sample points saved to the MATLAB workspace. When
using Real-Time Windows Target, we recommend that you use the
Duration value to set the number of sample points you save.
To set the Duration value, see “Entering Signal and Triggering Properties”
on page 3-38.
5 Select the Save data to workspace check box. In the Variable name text
box, enter the name of a MATLAB variable. The default name is ScopeData.
3-36
Signal Logging to a Disk Drive
Note The Scope Properties dialog box is related to the Data Archiving
dialog box. In the Scope Properties dialog box, you must select the Save
data to workspace check box to be able to save data to a disk drive for two
reasons:
- The data is first transferred from the data buffer to the MATLAB
workspace before being written to a MAT-file.
- The Variable name entered in the Scope Properties dialog box is the
same variable in the MATLAB workspace and the variable in the
MAT-file.
If you do not select the Save data to workspace check box, the MAT-files
for data logging will be created, but they will be empty.
6 From the Format list, choose either Structure with time, Structure, or
Matrix (compatible with V2.0-2.2). For example, to save the sample times
and signal values at those times, choose Structure with time.
Your Data history page will look similar to the figure shown below.
3-37
3 Basic Procedures
7 Do one of the following:
- Click Apply to apply the changes to your model and leave the dialog box
open.
- Click OK to apply the changes to your model and close the Scope
Properties dialog box.
Note When you modify anything in the Scope Properties dialog box, you
must click the Apply or OK button for the changes to take effect. Also, you
must rebuild your real-time application before connecting and stating a
real-time application.
If you do not rebuild, an error dialog box will open. If you do not click Apply,
your executable will run, but it will use the old settings.
Entering Signal and Triggering Properties
Data is saved to a disk drive by first saving the data to the MATLAB workspace
through a Simulink Scope block. Signal and triggering properties need to be set
when running a real-time application.
After you create a Simulink model and add a Scope block, you can enter the
signal and triggering properties for data logging to a disk drive. This procedure
uses the Simulink model rtwin_model.mdl as an example and assumes you
have already loaded that model:
1 In the Simulink window, and from the Tools menu, click External Mode
Control Panel.
The External Mode Control Panel dialog box opens.
2 Click the Signal & Triggering button.
The External Signal & Triggering dialog box opens.
3 Click the Select all button. From the Source list, choose Manual. From the
Mode list, choose Normal.
The X under Signal selection designates that a signal has been tagged for
data collection, and T designates that the signal has been tagged as a trigger
signal.
3-38
Signal Logging to a Disk Drive
4 In the Duration box, enter the number of sample points in a data buffer. For
example, if you have a sample rate of 1000 samples/second and a stop time
of 10 seconds, then enter
10000
Note The Duration value is related to the Limit rows to last value in the
Scope Properties dialog box. The smaller of either value limits the number
of sample points saved to the MATLAB workspace. We recommend that you
do not select the Limit rows to last check box, and use the Duration value
to set the number of sample points saved.
The Duration value specifies the number of contiguous points of data to be
collected in each buffer of data. We recommend that you enter a Duration
value equal to the total number of sample points you need to collect for a run.
If you enter a value much less than the total number of sample points, you
may lose logging sample points due to the time needed to transfer values
from the data buffer to the MATLAB workspace.
We also recommend setting the time axis for Simulink Scope blocks equal to
the sample interval (in seconds) times the number of points in each data
buffer. This setting will display one buffer of data across the entire Simulink
Scope plot.
3-39
3 Basic Procedures
The External Signal & Triggering dialog box will look similar to the figure
shown below.
5 Do one of the following:
- Click Apply to apply the changes to your model and leave the dialog box
open.
- Click Close to apply the changes to your model and close the Simulation
Parameters dialog box.
Note You must click the Apply or Close button on the Signal and
Triggering dialog box for the changes you made to take effect, but you do
not have to rebuild your real-time application.
3-40
Signal Logging to a Disk Drive
Entering Data Archiving Parameters
The Data Archiving dialog box is related to the Scope Properties dialog box.
In the Scope Properties dialog box, you must select the Save data to
workspace check box to be able to save data to a disk drive for two reasons:
• The data is first transferred from the scope data buffer to the MATLAB
workspace before being written to a MAT-file.
• The Variable name entered in the Scope Properties dialog box is the same
variable in the MATLAB workspace and the variable in the MAT-file.
If you do not select the Save data to workspace check box in the Scope
properties dialog box, the MAT-files for data logging will be created, but they
will be empty.
After you create a Simulink model, you can enter the Data Archiving
Parameters for data logging to a disk drive:
1 In the Simulation window, and from the Tools menu, click External Mode
Control Panel.
The External Mode Control Panel dialog box opens.
3-41
3 Basic Procedures
2 Click the Data archiving button.
The External Data Archiving dialog box opens. This dialog box allows you
to specify data archiving options.
3 Select the Enable archiving check box.
4 In the Directory text box, enter the path to a directory on your disk drive.
For example, if your MATLAB working directory is named mwd, enter
c:\mwd
5 In the File text box, enter the filename prefix for the data files to be saved.
For example, enter
data
MATLAB names the files data_0.mat, data_1.mat . . . The Number of files
= Total sample points / Duration. For example, if you set the Duration =
Total sample points - 1, then only one file is created.
6 Select the Append file suffix to variable names check box.
Within each MAT-file, a variable is saved with the same name you entered
in the Variable name text box (Data History page on the Scope Properties
dialog box). By selecting the Append file suffix to variable names check
box, the same suffix that is added to the MAT-file is added to the variable
name. For example, if you entered the variable name ScopeData, then
within the file data_0.mat will be a variable ScopeData_0.
3-42
Signal Logging to a Disk Drive
Your External Data Archiving dialog box will look similar to the figure
shown below.
7 Click the Close button.
The parameters you entered are applied to your model.
Note There is no Apply button with this dialog box. You must click the
Close button for the changes you make to take effect.
3-43
3 Basic Procedures
Plotting Logged Signal Data
You can use the MATLAB plotting functions for visualization of your
nonreal-time simulated data or your real-time executed data.
After running your real-time application and logging data to a disk drive, you
can plot the data. This procedure uses the Simulink model rtwin_model.mdl
as an example, and assumes you saved your data to the variable ScopeData:
1 In the MATLAB command window, type
ScopeData
MATLAB lists the structure of the variable ScopeData. The variable
ScopeData is a MATLAB structure containing the fields time vector, signal
structure, and a string containing the block name.
ScopeData =
time: [10000x1 double]
signals: [1x1 struct]
blockName: ’rtwin_model/Scope’
2 To list the MAT-files saved to your disk drive, type
dir *.mat
MATLAB displays the MAT-files in your current working directory.
data_0.mat
3 To clear the MATLAB workspace and load the scope data, type
clear
load data_0
who
MATLAB displays
Your variables are:
ScopeData_0
3-44
Signal Logging to a Disk Drive
4 To plot the first 1000 points, type
plot(ScopeData_0.time(1:1000),ScopeData_0.signals.values(1:1000))
MATLAB plots the first 1000 samples from 0.0000 to 0.9990 second.
3-45
3 Basic Procedures
Parameter Tuning
Simulink external mode connects your Simulink model to your real-time
application. The block diagram becomes a graphical user interface to the
real-time application.
This section includes the following topics:
• Types of Parameters
• Changing Model Parameters
Types of Parameters
You can change parameter values while running the real-time application by
changing the values in:
• Block parameters - Change block parameters by changing the values in the
dialog boxes associated with the Simulink blocks. Once you change a value,
and click Apply or OK, the new value immediately replaces the existing
parameter while the real-time application continues to run.
• Block parameters for masked subsystems - Change block parameters in
the user-created dialog boxes associated with a subsystem.
• MATLAB variables - Change MATLAB variables by entering the changes
through the MATLAB command line, and then press Ctrl+D for the changes
to be downloaded to your executable. An alternative method to download
parameters is to click Update Diagram from the Edit menu in your
Simulink window. Simply changing the value of the MATLAB variable at the
MATLAB command line is not sufficient for Simulink to know that the value
has changed.
Simulink external mode also supports side-effects functions. For example,
given an expression in a Gain block of 2*a+b, the expression is evaluated and
the resulting value is exported to the real-time application during execution.
When a parameter in a Simulink model is changed, the communication module
rtwinext.dll transfers the data to the external real-time application and
changes the model parameters. Only the parameters that do not result in
model structure modification can be changed. If the structure is modified, you
must recompile the model. Model structure changes are detected automatically
using model checksum and reported to the MATLAB command window to
avoid conflicts.
3-46
Parameter Tuning
Changing Model Parameters
You must use Simulink external mode to change model parameters. While
external mode is running, you can open any Simulink block and change a
parameter value. External mode will automatically transfer the new value to
the real-time application during execution.
After you start running a your real-time application, you can change
parameters and observe the changes to the signals. To start a real-time
application, see “Running a Real-Time Application” on page 3-24. This
procedure uses the Simulink model rtwin_model.mdl as an example. It
assumes you have created a real-time application and are running an
execution:
1 From the Simulation menu, click Start Real-Time code.
The real-time execution starts running and signal data is displayed in the
Scope window.
2 From the Simulink block diagram, click the Transfer Function block.
The Block Parameters: Transfer Function dialog box opens.
3-47
3 Basic Procedures
3 In the Denominator box, change 70 to 50. Click OK. The effect of changing
a block parameter is shown in the Scope window.
3-48
4
Advanced Procedures
I/O Boards . . . .
I/O Board Dialog Box
ISA-Bus Board . . .
PCI-Bus Board . .
Compact PCI Board
PCMCIA Board . .
.
.
.
.
.
. .
.
.
.
.
.
.
.
.
.
.
. . .
. . .
. . .
. . .
. . .
. . .
. .
. .
. .
. .
. .
. .
I/O Driver Blocks . . . . . . .
Real-Time Windows Target Library .
Simulink Library . . . . . . . . .
Analog Input Block . . . . . . . .
Analog Output Block . . . . . . .
Digital Input Block . . . . . . . .
Digital Output Block . . . . . . .
Output Signals from an I/O Block . .
Variations with Channel Selection .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
.
.
.
.
.
.
4-3
4-3
4-5
4-6
4-6
4-6
. . 4-7
. . 4-7
. . 4-9
. . 4-10
. . 4-12
. . 4-15
. . 4-17
. . 4-20
. . 4-22
Using Analog I/O Drivers . . . . . . . . . . . . . . 4-25
I/O Driver Characteristics . . . . . . . . . . . . . . . 4-25
Normalized Scaling for Analog Inputs . . . . . . . . . . 4-26
4 Advanced Procedures
Real-Time Windows Target provides driver blocks written as C-code
S-functions for more than 100 I/O boards. These driver blocks connect the
physical world to your real-time application.
This chapter includes the following sections:
• I/O Boards - Install I/O boards and enter hardware information
• I/O Driver Blocks - Select analog and digital driver blocks from the
Simulink library and add to your Simulink model
• Using Analog I/O Drivers - Convert normalized I/O signals to more
meaningful model parameters
4-2
I/O Boards
I/O Boards
Typically I/O boards are preset from the factory for certain base addresses,
voltage levels, and unipolar or bipolar modes of operation. Boards often include
switches or jumpers that allow you to change many of these initial settings. For
information about setting up and installing any I/O board, read the board
manufacturer’s documentation.
This section includes the following topics:
• I/O Board Dialog Box- Select the physical boards installed in your
computer, and enter board settings
• ISA-Bus Board - Enter base address
• PCI-Bus Board - Enter or determine slot number and install drivers from
the board manufacturer
• Compact PCI Board - Enter or determine slot number and install drivers
from the board manufacturer
• PCMCIA Board - Install drivers from the board manufacturer
I/O Board Dialog Box
Usually, the drivers with Real-Time Windows Target provide the same
flexibility of settings offered by the board manufacturer. You enter the I/O
board settings in the I/O board dialog box. There are three types of settings:
• Software selectable - Select check boxes in the I/O board dialog box. The
driver writes the settings you selected to the board. Examples include A/D
gain inputs, and selecting unipolar or bipolar D/A outputs.
• Jumper selectable and software readable - Set jumpers or switches on the
physical board. The driver reads the settings you selected.
• Jumper selectable, but not software readable - Set jumpers or switches on
the physical board, and then manually enter the same settings in the I/O
board dialog box. These entries must match the hardware switches or
jumpers you set on the board. This is necessary because some manufacturers
do not provide a means for the I/O driver to read all of the board settings with
software. Examples include base address, D/A gain, and differential or
single-ended A/D inputs.
4-3
4 Advanced Procedures
After you add an I/O driver block to your Simulink model, you can select and
configure the I/O board installed in your computer. This procedure uses the
AD512 I/O board from Humusoft as an example:
1 Double-click an I/O driver block.
The Block Parameters dialog box opens.
2 Click the Install new board button. From the list, point to a manufacture,
and then click a board name. For example, point to Humusoft, and then click
AD512.
The I/O board dialog box opens. The name of this dialog box depends on
which I/O board you selected. The dialog box for the Humusoft AD512 board
is shown below.
3 Select one of the following:
- For an ISA-bus board, enter a base address. This value must match the
base address switches or jumpers set on the physical board. For example,
to enter a base address of 0x300 in the address box, type
300
You can also select the base address by selecting check boxes A9 through
A3.
- For a PCI-bus board, enter the PCI slot or select the Auto-detect check
box.
4-4
I/O Boards
4 Click the Test button.
Real-Time Windows Target tries to connect to the selected board, and if
successful, displays the following message.
5 On the message box, click OK, and then on the I/O board dialog box, click OK
again.
The I/O driver Block Parameters dialog box closes, and the parameter
values are saved with your Simulink model.
The I/O board information is included with each I/O driver block. You only
install and enter the board information once with the first I/O driver block you
add to your model. When you add another I/O driver block, choose the I/O board
from the list of installed boards. You do not need to enter any board
information.
ISA-Bus Board
Most ISA-bus I/O boards are preset with a base address of 0x300. If you are
using multiple I/O boards or other boards (for example, network cards) that
already use the address 0x300, you must set your board with another base
address.
In the I/O board dialog box, enter the same base address that you set on the
physical board. You open the I/O board dialog box from any I/O driver Block
Parameters dialog box.
4-5
4 Advanced Procedures
PCI-Bus Board
You do not have to set a base address with a PCI board.
The plug-and-play feature of Microsoft Windows assigns a PCI slot number.
You can enter the slot number into the I/O board dialog box, or you can let the
driver determine the slot number for you. You open the I/O board dialog box
from any I/O driver Block Parameters dialog box.
We recommend that before you use a PCI or PCMCIA board, you install the
drivers supplied by the board manufacturer. Real-Time Windows Target does
not use these manufacturer supplied drivers. However, they sometimes initiate
the plug-and-play recognition of the board. Without these drivers installed, the
board may be invisible to your computer and Real-Time Window Target.
Compact PCI Board
Using a compact-PCI board requires that you use a compact PC (industrial
PC). In addition, you need to install Windows, MATLAB, Simulink, Real-Time
Windows Target, and a C compiler on the compact PC.
PCMCIA Board
The plug-and-play feature of Microsoft Windows assigns a base address
automatically. You can enter this address into the I/O board dialog box, or you
can let the driver determine the address for you. You open the I/O board dialog
box from any I/O driver Block Parameters dialog box.
We recommend that before you use a PCI or PCMCIA board, you install the
drivers supplied by the board manufacturer. Real-Time Windows Target does
not use these manufacture supplied drivers. However, they sometimes initiate
the plug-and-play recognition of the board. Without these drivers installed, the
board may be invisible to your computer and Real-Time Window Target.
4-6
I/O Driver Blocks
I/O Driver Blocks
The Analog Input, Analog Output, Digital Input, and Digital Output blocks
provide an interface to your physical I/O boards and your real-time application.
They ensure that the C code generated with Real-Time Workshop correctly
maps block diagram signals to the appropriate I/O channels.
You can have multiple blocks associated with each type of I/O block and board.
For example, you can have one Analog Input block for channels 1-4 and another
block for channels 5-8.
This section includes the following topics:
• Real-Time Windows Target Library - Add an Analog Input block to your
Simulink model from the Real-Time Windows Target block library
• Simulink Library - Add an Analog Input block to your Simulink model from
the Simulink block library
• Analog Input Block - Select analog input channels and voltage range
• Analog Output Block - Select analog output channels, voltage range, initial
values, and final values
• Digital Input Block - Select digital lines or channels
• Digital Output Block - Select digital lines or channels, initial values, and
final values
Real-Time Windows Target Library
Real-Time Windows Target I/O driver blocks allow you to select and connect
specific analog channels and digital lines to your Simulink model through I/O
driver blocks.
After you create a Simulink model, you can add an I/O block. This procedure
adds an Analog Input block and uses the Simulink model rtwin_model.mdl as
an example:
1 In the MATLAB command window, type
rtwinlib
4-7
4 Advanced Procedures
The Real-Time Windows Target block library window opens.
2 Click-and drag the Analog Input block to your Simulink model. Connect the
Analog Input block to the Transfer Function block.
Your Simulink model will look similar to the figure show below.
You next task to enter parameters for the Analog Input block. See “Analog
Input Block” on page 4-10.
4-8
I/O Driver Blocks
Simulink Library
Real-Time Windows Target I/O driver blocks allow you to select and connect
specific analog channels and digital lines to your Simulink model through I/O
driver blocks.
After you create a Simulink model, you can add an I/O block. This procedure
adds and Analog Input block and uses the Simulink model rtwin_model.mdl
as an example:
1 In the Simulink window, and from the View menu, click Show Library
Browser.
The Simulink Library Browser opens.
2 In the left column, double-click Real-Time Windows Target. Click and drag
the Analog Input block to your Simulink model. Connect the Analog Input
block to the Transfer Function block.
Your Simulink model will look similar to the figure show below.
You next task is to enter parameters for the Analog Input block. See “Analog
Input Block” on page 4-10.
4-9
4 Advanced Procedures
Analog Input Block
Real-Time Windows Target I/O blocks allow you to select and connect specific
analog channels to your Simulink model.
After you add an Analog Input block to your Simulink model, you can enter the
parameters for this I/O driver. This procedure uses Humusoft’s AD512 I/O
board as an example:
1 Double-click the Analog Input block.
The Block Parameters: Analog Input dialog box opens.
2 In the Sample time box, enter the same value you entered in the Fixed step
size box from the Simulation Parameters dialog box. For example, enter
0.001
3 In the Input channels box, enter a channel vector that selects the analog
input channels you are using on this board. The vector can be any valid
MATLAB vector form. For example, to select all eight analog input channels
on the AD512 board, enter
[1,2,3,4,5,6,7,8] or [1:8]
If you want to use the first three analog input channels, enter
[1,2,3]
4 From the Input range list, choose the input range for all of the analog input
channels you entered in the Input channels box. For example, with the
AD512 board, choose -5 to 5 V.
Note If you want the input range to be different for different analog
channels, you need to add a I/O block for each different input range.
5 From the Block output signal list, choose from the following options:
- Volts - Returns a value equal to the analog voltage
- Normalized unipolar - Returns a full range value of 0 to +1 regardless of
the input voltage range. For example, an analog input range of 0 to +5
volts and -5 to +5 volts would both be converted to 0 to +1.
- Normalized bipolar - Returns a full range value of -1 to +1 regardless of
the input voltage range.
4-10
I/O Driver Blocks
- Raw - Returns a value of 0 to 2n -1. For example, a 12-bit A/D converter
would return values of 0 to 212 -1 (0 to 4095). The advantage of this method
is the returned value is always an integer with no round-off errors.
If you chose Volts, Your dialog box will look similar to the figure shown
below.
6 Select one of the following:
- Click the Apply button to apply the changes to your model and leave the
dialog box open.
- Click the OK button to apply the changes to your model and close the
Block Parameters: Analog Input dialog box.
4-11
4 Advanced Procedures
Analog Output Block
Real-Time Windows Target I/O blocks allow you to select and connect specific
analog channels to your Simulink model.
After you add an Analog Output block to your Simulink model, you can enter
the parameters for this I/O driver. This procedure uses Humusoft’s AD512 I/O
board as an example:
1 Double-click the Analog Output block.
The Block Parameters: Analog Output dialog box opens.
2 In the Sample time box, enter the same value you entered in the Fixed step
size box from the Simulation Parameters dialog box. For example, enter
0.001
3 In the Output channels box, enter a channel vector that selects the analog
input channels you are using on this board. The vector can be any valid
MATLAB vector form. For example, to select both analog output channels on
the AD512 board, enter
[1,2] or [1:2]
4 From the Output range list, choose the input range for all of the analog
input channels you entered in the Input channels box. For example, with the
AD512 board, choose -5 to 5 V.
Note If you want the input range to be different for different analog
channels, you need to add a I/O block for each different input range.
4-12
I/O Driver Blocks
5 From the Block input signal list, choose from the following options:
- Volts - Expects a value equal to the analog output voltage
- Normalized unipolar - Expects a value between 0 to +1 that is converted
to the full range of the output voltage regardless of the output voltage
range. For example, an analog output range of 0 to +5 volts and -5 to +5
volts would both be converted from values between 0 and +1.
- Normalized bipolar - Expects a value between -1 to +1 that is converted
to the full range of the output voltage regardless of the output voltage
range.
- Raw - Expects a value of 0 to 2n -1. For example, a 12-bit A/D converter
would expect a value between 0 and 212 -1 (0 to 4095). The advantage of
this method is the expected value is always an integer with no round-off
errors.
6 Enter the initial value for each analog output channels you entered in the
Output channels box. For example, if you entered [1,2] in the Output
channels box, and you want an initial value of 0 volts, enter [0,0].
7 Enter a final value for each analog channel you entered in the Output
channels box. For example, if you entered [1,2] in the Output channels
box, and you want final values of 0 volts, enter [0,0].
4-13
4 Advanced Procedures
If you chose Volts, your dialog box will look similar to the figure shown
below.
8 Do one of the following:
- Click Apply to apply the changes to your model and leave the dialog box
open.
- Click OK to apply the changes to your model and close the Block
Parameters: Analog Output dialog box.
4-14
I/O Driver Blocks
Digital Input Block
Real-Time Windows Target I/O blocks allow you to select and connect specific
digital lines or digital channels to your Simulink model.
After you have added and Digital Input block to your Simulink model, you can
enter the parameters for this I/O driver. This procedure uses Humusoft’s
AD512 I/O board as an example:
1 Double-click the Digital Input block.
The Block Parameters: Digital Input dialog box opens.
2 In the Sample time box, enter the same value you entered in the Fixed step
size box from the Simulation Parameters dialog box. For example, enter
0.001
3 In the Input channels box, enter a channel vector that selects the analog
input channels you are using on this board. The vector can be any valid
MATLAB vector form. For example, to select all eight analog input channels
on the AD512 board, enter
[1,2,3,4,5,6,7,8] or [1:8]
If you want to use the first four digital input lines, enter
[1,2,3,4]
If you have one 8-bit digital channel, enter [1]. If you have two 8-bit digital
channels, enter [1 9], and from the Channels mode list, choose Byte.
4-15
4 Advanced Procedures
4 From the Channel mode list, choose one of the following options:
- Bit - Returns a value of 0 or 1
- Byte - Groups eight digital lines into one digital channel and returns a
value of 0 to 255.
If you chose Bit, your dialog box will look similar to the figure shown below.
5 Do one of the following:
- Click Apply to apply the changes to your model and leave the dialog box
open.
- Click OK to apply the changes to your model and close the Block
Parameters: Digital Input dialog box.
4-16
I/O Driver Blocks
Digital Output Block
Real-Time Windows Target I/O blocks allow you to select and connect specific
digital lines or digital channels to your Simulink model.
After you have added and Digital Output block to your Simulink model, you can
enter the parameters for this I/O driver. This procedure uses Humusoft’s
AD512 I/O board as an example:
1 Double-click the Digital Output block.
The Block Parameters: Digital Output dialog box opens.
2 In the Sample time box, enter the same value you entered in the Fixed step
size box from the Simulation Parameters dialog box. For example, enter
0.001
3 In the Output channels box, enter a channel vector that selects the analog
input channels you are using on this board. The vector can be any valid
MATLAB vector form. For example, to select all eight analog input channels
on the AD512 board, enter
[1,2,3,4,5,6,7,8] or [1:8]
If you want to use the first four digital input lines, enter
[1,2,3,4]
If you have one 8-bit digital channel, enter [1]. If you have two 8-bit digital
channels, enter [1 9], and from the Channels mode list, choose Byte.
4 From the Channel mode list, choose from one of the following:
- Bit - Expects a value of 0 or 1
- Byte - Expects a value of 0 to 255 that is converted to one digital channel
of eight digital lines
4-17
4 Advanced Procedures
5 Enter the initial values for each digital output line or channel you entered
in the Output channels box. For example, if you entered [1,2,3,4] in the
Output channels box, and you want initial values of 0 and 1, enter
[0,0,1,1]
If from the Channel mode list, you choose Byte, then enter a value between
0 and 255 for each digital output channel. For example, for one byte
(8 digital lines) with an initial value of 25, enter [25]. For two bytes
(16 digital lines) with initial values of 25 and 50, enter [25 50].
6 Enter a final value for each digital output channel you entered in the
Output channels box. For example, if you entered [1,2,3,4] in the Output
channels box, and you want final values of 0, enter
[0,0,0,0]
If from the Channel mode list, you choose Byte, then enter a value between
0 and 255 for each digital output channel.
4-18
I/O Driver Blocks
If you chose Bit, your dialog box will look similar to the figure shown below.
7 Do one of the following:
- Click Apply to apply the changes to your model and leave the dialog box
open.
- Click OK to apply the changes to your model and close the Block
Parameters: Digital Output dialog box.
4-19
4 Advanced Procedures
Output Signals from an I/O Block
I/O driver blocks output multiple signals as a vector instead of individual
channels or lines. To connect the individual channels and lines to parts of your
Simulink model, you need to separate the vector with a Demux block.
After you add and configure an I/O driver block in your Simulink model, you
can separate and connect the output signals from the blocks:
1 In the Simulink window, and from the View menu, click Show Library
Browser.
The Simulink Library Browser opens.
2 Double-click Signals and Systems. From the list in the right column,
click-and-drag Demux to your Simulink model.
3 Double-click the Demux block. The Block Parameters: Demux dialog box
opens. Enter the number of lines leaving the Demux block. For example, if
you entered three channels in the Analog Input driver block, enter 3 in the
Number of outputs box.
4 Click OK.
4-20
I/O Driver Blocks
5 Finish making connections and selecting display options.
- Connect the Analog Input block to the Demux block input.
- Connect each of the Demux block output lines to the input of other blocks.
- In the Simulink window, and from the Format menu, click Wide
Nonscalar Lines, and click Signal Dimensions.
Your model will look similar to the figure shown below. In this simple
example, inputs 1 and 2 are not connected, but they could be connected to
other Simulink blocks.
4-21
4 Advanced Procedures
Variations with Channel Selection
For a better understanding of how to specify device settings when using both
analog and digital signals, this section uses the I/O board DAS-1601 from
Keithley-Metrabyte as an example. The following is a specification summary of
the DAS-1601 board:
• Analog input (A/D) - 16 single-ended or 8 differential analog inputs (12-bit),
polarity is switch configured as either unipolar (0 to 10 volts) or bipolar
(+/- 10 volts). Gain is software configured to 1, 10, 100, and 500.
• Digital input - Four unidirectional digital inputs
• Analog output (D/A) - Two analog outputs (12-bit). Gain is switch configured
as 0 to 5 volts, 0 to 10 volts, +/- 5 volts, or +/- 10 volts
• Digital output - Four unidirectional digital outputs
• Base address - Switch configured base address
This section explores different configurations for input signals.
Once an Analog Input block has been placed in the model and the I/O board
selected and configured, you can set up the Analog Input block to handle input
signals.
Single analog input - The most basic case is for a single analog input signal
that will be physically connected to the first analog input channel on the board.
In the Block Parameter: Analog Input dialog box, and the Input channels
box, enter
1 or [1]
The use of brackets is optional for a single input.
Input vector with differential analog - Analog channels are numbered
starting with channel 1 and continue until you reach a number corresponding
to the maximum number of analog signals supported by the I/O board.
In the case of the DAS-1601, when configured as differential inputs, eight
analog channels are supported. The analog input lines are numbered 1 through
8. The complete input vector is
[1 2 3 4 5 6 7 8] or [1:8]
If you wanted to use the first four differential analog channels, enter
[1 2 3 4]
4-22
I/O Driver Blocks
Input vector with single-ended analog - Now, assume your DAS-1601 board
is configured to be single-ended analog input. In this case, 16 analog input
channels are supported. The complete input vector is
[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16] or [1:16]
To use the first four single-ended analog input channels, enter
[1 2 3 4] or [1:4]
This illustration shows the resulting block diagram.
Channel
1
2
3
4
We do not recommend specifying more channels than you actually use in your
block diagram. This results in additional overhead for the processor with A/D
or D/A conversions. In this case, for example, even though some channels are
not actually used in the block diagram, these channels are still converted.
You could attach terminator blocks to channels 4 and 5 inside your block
diagram after passing the Analog Input block vector into a Demux block.
Adding terminator blocks provides you with graphical information in your
block diagram to clearly indicate which channels you connected or are
available. The penalty is that even the terminated channels are converted,
adding some computational overhead.
4-23
4 Advanced Procedures
This illustration shows the block implementation.
Depending on the board and the number of channels used, I/O conversion time
can affect the maximum sample rate that can be achieved on your system.
Rather than converting unused channels, we recommend specifying only the
set of channels that are actually needed for your model.
4-24
Using Analog I/O Drivers
Using Analog I/O Drivers
Control systems have unique requirements for I/O devices that Real-Time
Windows Target supports.
This section includes the following topics:
• I/O Driver Characteristics
• Normalized Scaling for Analog Inputs
I/O Driver Characteristics
Real-Time Windows Target uses off-the-shelf I/O boards provided by many
hardware vendors. These boards are often used for data acquisition
independently of Real-Time Windows Target. In such environments, board
manufacturers usually provide their own I/O device drivers for data acquisition
purposes. This use differs significantly from the behavior of drivers provided
with Real-Time Windows Target.
In data acquisition applications, data is often collected in a burst or frame
consisting of many points, perhaps 1,000 or possibly more. The burst of data
becomes available once the final point is available. This approach is not
suitable for use in automatic control applications since it results in latencies
equal to 1000 * Tsample for each point of data.
In contrast, drivers used by Real-Time Windows Target capture a single point
of data at each sample interval and considerable effort is made to minimize the
latency between collecting a data point and using the data in the control system
algorithm. This is the reason why a board that specifies a maximum sample
rate (for data acquisition) may be stated to achieve sample rates well in excess
of the rates that are achievable in Real-Time Windows Target. For data
acquisition, such boards are usually acquiring data in bursts and not in a
point-by-point fashion which is more appropriate for stable control systems.
4-25
4 Advanced Procedures
Normalized Scaling for Analog Inputs
Real-Time Windows Target allows you to normalize I/O signals internal to the
block diagram. Generally, inputs represent real-world values such as angular
velocity, position, temperature, pressure, and so on. This ability to choose
normalized signals allows you to:
• Apply your own scale factors
• Work with meaningful units without having to convert from voltages
When using an Analog Input block, you select the range of the external
voltages that are received by the board, and you choose the block output signal.
For example, the voltage range could be set to 0 to +5 V, and the block output
signal could be chosen as Normalized unipolar, Normalized bipolar, Volts,
or Raw.
If you prefer to work with units of voltage within your Simulink block diagram,
you can choose Volts.
If you prefer to apply your own scaling factor, you can choose Normalized
unipolar or Normalized bipolar, add a Gain block, and add an offset to
convert to a meaningful value in your model.
If you prefer unrounded integer values from the analog-to-digital conversion
process, you can choose Raw.
Choose 0 to +5 Volts and Normalized Bipolar
From the Input range list, choose 0 to +5 V, and from the Block output signal
list, choose Normalized bipolar. This example converts a normalized bipolar
value to volts, but you could also easily convert directly to another parameter
in your model.
0 to 5 volts --> ([-1 to 1] normalized + 1) * 2.5
4-26
Using Analog I/O Drivers
In your block diagram, you can do this as follows.
Choose 0 to +5 Volts and Normalized Unipolar
From the Input range list, choose 0 to +5 V, and from the Block output signal
list, choose Normalized unipolar. This example converts a normalized
unipolar value to volts, but you could also easily convert directly to another
parameter in your model.
0 to 5 volts --> ([0 to 1] normalized * 5.0
In your block diagram, you can do this as follows.
0 to 5 volts
0 to +1
0 to +1
0 to 5 volts
5
Choose -10 to +10 Volts and Normalized Bipolar
From the Input range list, choose -10 to +10 V, and from the Block output
signal list, choose Normalized bipolar. This example converts a normalized
bipolar value to volts, but you could also easily convert directly to another
parameter in your model.
-10 to 10 volts --> [-1 to +1] normalized * 10
4-27
4 Advanced Procedures
In your block diagram, you can do this as follows.
Choose -10 to +10 Volts and Normalized Unipolar
From the Input range list, choose -10 to +10 V, and from the Block output
signal list, choose Normalized unipolar. This example converts a normalized
bipolar value to volts, but you could also easily convert directly to another
parameter in your model.
-10 to 10 volts --> ([0 to 1] normalized - 0.5) * 20
In your block diagram, do this as follows.
-10 to 10 volts
0 to +1
20
-10 to 10 volts
-0.5
Normalized Scaling for Analog Outputs
Analog outputs are treated in an equivalent manner to analog inputs.
If the voltage range on the D/A converter is set to 0 to +5 volts, and the Block
input signal is chosen as Normalized bipolar, then a Simulink signal of
amplitude -1 results in an output voltage of 0 volts. Similarly, a Simulink
signal of amplitude +1 results in an output voltage of +5 volts.
4-28
Using Analog I/O Drivers
A voltage range on the D/A converter is set to -10 to +10 volts, and the Block
input signal is chosen as Normalized bipolar, then a Simulink signal of
amplitude -1 results in an output voltage of -10 volts. Similarly, a Simulink
signal of amplitude +1 results in an output voltage of +10 volts.
This may require that you adjust your signal amplitudes in Simulink using a
Gain block, Constant block, and Summer block depending on the selected
voltage range.
4-29
4 Advanced Procedures
4-30
5
Troubleshooting
Plots Not Visible in Simulink Scope Block
Compiler Error Message . . . . . . . .
Failure to Connect to Target . . . . . .
Sample Time Too Fast . . . . . . . .
S-Functions Using Math Functions . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5-2
5-3
5-3
5-4
5-5
5
Troubleshooting
Solutions have been worked out for some common errors and problems that can
occur when using Real-Time Windows Target.
This chapter includes the following topics:
• Plots Not Visible in Simulink Scope Block
• Compiler Error Message
• Failure to Connect to Target
• Sample Time Too Fast
Plots Not Visible in Simulink Scope Block
For data to plot correctly in a Simulink Scope block, you must specify the
following:
• rtwinext as the MEX-File for external interface on the External Target
Interface dialog box
• External selected from the Simulation menu
• Connect to target selected from the Simulation menu
• Select one or more signals for capture (designated with “X”) in the External
Signal and Triggering dialog box
• Duration * Fixed Step Size close to or less than the X range in the Scope
block
• Correct mode (one-shot vs. normal)
• Appropriate signal levels to allow triggering
• Y range on Simulink Scope block axes large enough to span the signal
amplitude
• X range
• Arm when connect to target in the External Data Logging Configuration
dialog box or arm in the External Data Logging Control Panel
• start real-time code selected from the Simulation menu
If you are unable to see signals plotted in your Simulink Scope blocks after all
of the above items have been carefully selected, it is possible that failure to
obtain time responses in Scope blocks is due to insufficient CPU time. To
determine CPU utilization, type rtwho. The rtwho command returns
information about MATLAB performance. The value returned is an indicator
of how much loading your model places on the CPU. If Scope blocks fail to plot,
5-2
this may be an indication that insufficient time is available between sample
intervals to allow data to be transferred back to the MATLAB environment
where the plotting is performed. To test for this condition, you can run one of
the demonstration models, or you can try running your model at a significantly
slower rate to determine whether this is the cause. We recommend that
MATLAB performance does not fall below 80%.
Compiler Error Message
Possible problem - During the build phase of your model, the Simulation
Errors dialog box displays
incorrect compiler installation
Solution - During the installation of the Watcom 10.6 or 11.0 compiler, select
the DOS target check box in addition to selecting the Windows target
checkbox.
Failure to Connect to Target
Possible Problem - When trying to connect to the target, the Simulation
Errors dialog box displays the following message
Checksum mismatch. Target code needs to be rebuilt
Solution - This indicates that the model structure has changed since the last
time code was generated. You must rebuild the real-time application. If your
model fails to successfully build, we recommend that you delete .mk and .obj
files from the RTW project directory, and then select Build from the Tools
menu.
Possible Problem - When trying to connect to the target, the Simulink
diagnostic dialog box displays the following message.
External mode MEX-file ‘win_tgt” does not exist or is not on the
MATLAB path
Solution - Real-Time Windows Target Versions 1.0 and 1.5 used the MEX-file
win_tgt. For Real-Time Windows Target Version 2.0, the MEX-file name was
changed to rtwinext. If you create a new Simulink model, the new filename is
entered correctly. If you have Simulink models where you used Real-Time
Windows Target 1.0 or 1.5, you need to change the filename using the following
procedure:
5-3
5
Troubleshooting
1 In the Simulink window, and from the Tools menu, click External mode
control panel.
2 On the External Mode Control Panel dialog box, click the Target
interface button.
3 In the External Target Interface dialog box, and in the MEX-file for
external mode text box, enter
rtwinext
4 Click Ok.
Sample Time Too Fast
During a run, you may not see any output in the Scope window. This could
indicate that the sample time is too small. In the MATLAB command window,
type
rtwho
Check the value for MATLAB performance. A value less than 80% indicates
that your sample time may be too small.
In general, we recommend that you start by choosing a slow sample rate. For
example, select a sample time of 0.01 second, and confirm your system runs
correctly and plots are displayed. Should you select a sample rate that exceeds
the capability of your computer, an error message is displayed and real-time
execution is terminated. If this occurs, select a slower sample rate. Then
rebuild the model, connect to the target, and start the real-time application
again. You must rebuild the real-time application after changing the sample
time.
Check the MATLAB performance value returned when typing rtwho. If
MATLAB performance is in the range of 98% or so, then consider decreasing
your sample time by one order of magnitude.
If you notice either slow updates of Scope blocks or a complete failure to plot
data in the Scope blocks, you may be reaching the upper threshold for the
sample rate on your hardware. Plotting data has a lower priority than
execution of your real-time application.
5-4
S-Functions Using Math Functions
Possible problem - When creating your own S-functions that include math
functions, the S-functions compile okay, but you cannot build the application.
Solution - Add the Real-Time Windows Target header to your S-function. For
example, add
#include<math.h>
#include”rtwintgt.h”
The header #include<math.h> must precede the header
#include”rtwintgt.h”.
5-5
5
Troubleshooting
5-6
A
Supported I/O Boards
ISA Bus . . . .
PCMCIA Bus . .
PCI Bus. . . . .
Compact PCI . .
Standard Devices
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
A-2
A-6
A-7
A-8
A-9
A
Supported I/O Boards
The Real-Time Windows Target includes support for more than 80 I/O boards.
Multiple boards may be used as I/O for a model provided they have
nonoverlapping base addresses. If you have a board that is not listed here, you
can support it by adding your own I/O driver.
This appendix includes the following topics:
• “ISA Bus”
• “PCMCIA Bus”
• “PCI Bus”
• “Compact PCI”
• “Standard Devices”
Note Some of the functions on a board may not be supported by Real-Time
Windows Target. Check The MathWorks Web site for an updated list of
supported boards and functions at: http://www.mathworks.com/products/
rtwt/ioboards.shtml.
ISA Bus
This table lists the ISA-bus I/O boards supported by the Real-Time Windows
Target.
Table A-1: ISA Bus Supported I/O Boards
Manufacturer
Board Name
Advantech
PCL-1800
PCL-711B
PCL-712
PCL-714
PCL-726
PCL-727
PCL-728
A-2
Table A-1: ISA Bus Supported I/O Boards
Manufacturer
Board Name
PCL-812
PCL-812PG
PCL-814B
PCL-816
PCL-818
PCL-818H
PCL-818HD
PCL-818HG
PCL-818L
Analog Devices
RTI-800
RTI-800-A
RTI-800-F
RTI-815
RTI-815-A
RTI-815-F
RTI-2100-D
RTI-2100-DA
RTI-2100-DS
RTI-2100-DS4
RTI-2100-LC
RTI-2100-PGH
RTI-2100-PGL
A-3
A
Supported I/O Boards
Table A-1: ISA Bus Supported I/O Boards
Manufacturer
Board Name
RTI-2100-PGSH
RTI-2100-PGSL
Axiom
AX5412-H
AX5412-L
AX5611C-H
AX5611C-L
Computer Boards
CIO-DAS08/Jr
CIO-DAS08/Jr-AO
CIO-DAS-1601/12
CIO-DAS-1602/12
CIO-DAS-1602/16
CIO-QUAD02
CIO-QUAD04
Data Translation
DT2801
DT2801-A
DT2801/5716
DT2805
DT2805/5716
DT-2809
DT2811-PGH
DT2811-PGL
A-4
Table A-1: ISA Bus Supported I/O Boards
Manufacturer
Board Name
Humusoft
AD1216
AD512
MF604
Keithley-Metrabyte
ADC-16
DAS-1401
DAS-1402
DAS-8
DAS-8/AO
DAS-8PGA
DAS-16G1
DAS-16G2
DAS-1601
DAS-1602
DDA-06
National Instruments
AT-MIO-16E-1
AT-MIO-16E-2
AT-MIO-64E-3
AT-MIO-16E-10
AT-MIO-16DE-10
AT-AI-16XE-10
AT-MIO-16XE-10
AT-MIO-16XE-50
A-5
A
Supported I/O Boards
Table A-1: ISA Bus Supported I/O Boards
Manufacturer
Board Name
Lab-PC
Lab-PC+
Lab-PC-1200
Lab-PC-1200AI
PCMCIA Bus
This table lists the PCMCIA-bus I/O boards supported by the Real-Time
Windows Target.
Table A-2: PCMCIA Bus Supported I/O Boards
Manufacturer
Board Name
Computer Boards
PCM-DAC08
PCM-DAS16S/330
PCM-DAS16D/12
PCM-DAS16S/12
PCM-DAS16D/16
PCM-DAS16S/16
National Instruments
DAQCard-AI-16E-4
DAQCard-AI-16XE-50
DAQCard-1200
A-6
PCI Bus
This table lists the PCI-bus I/O boards supported by the Real-Time Windows
Target.
Table A-3: PCI Bus Supported I/O Boards
Manufacturer
Board Name
Computer Boards
PCI-DAS1000
PCI-DAS1001
PCI-DAS1002
PCI-DAS1200
PCI-DAS1200/JR
PCI-DAS1602/12
PCI-DAS1602/16
PCI-DAS1602/16/JR
Intelligent Instrumentation
PCI-20377W
National Instruments
PCI-1200
PCI-6023E
PCI-6024E
PCI-6025E
PCI-6031E
PCI-6032E
PCI-6033E
PCI-6034E
PCI-6035E
PCI-6052E
A-7
A
Supported I/O Boards
Table A-3: PCI Bus Supported I/O Boards
Manufacturer
Board Name
PCI-6071E
PCI-MIO-16E-1
PCI-MIO-16E-4
PCI-MIO-16XE-10
PCI-MIO-16XE-50
Scientific Solutions
LabMaster DMA-PGH
LabMaster DMA-PGL
Compact PCI
This table lists the compact PCI I/O boards supported by the Real-Time
Windows Target.
Table A-4: Compact PC Supported Boards
Manufacturer
Board Name
National Instruments
PXI-6025E
PXI-6030E
PXI-6031E
PXI-6035E
PXI-6040E
PXI-6052E
PXI-6070E
PXI-6071E
A-8
Standard Devices
This table lists standard I/O devices supported by the Real-Time Windows
Target.
Table A-5: Standard Devices Supported
Manufacturer
Board Name
Other
Microsoft Windows Joystick
Microsoft Windows Mouse
Microsoft Windows Parallel
Port
A-9
A
Supported I/O Boards
A-10
B
Custom I/O Driver Blocks
Source Code for DOS Target Drivers .
Incompatibility with Win32 API Calls
Nonsupported C Functions . . . . .
Supported C Functions . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
B-2
B-3
B-3
B-4
B
Custom I/O Driver Blocks
Custom I/O device drivers can be used in combination with the Real-Time
Windows Target. Due to the additional complexity of device drivers supplied
with Real-Time Windows Target, we recommend that device drivers be written
in the same style as the device drivers that are provided with the DOS target
support included with Real-Time Workshop.
We do not recommend using Analog Input, Analog Output, Digital Input, or
Digital Output drivers as a starting point for creating custom device drivers.
This appendix includes the following topics:
• “Source Code for DOS Target Drivers”
• “Incompatibility with Win32 API Calls”
• “Nonsupported C Functions”
• “Supported C Functions”
Source Code for DOS Target Drivers
Source code for the DOS target device drivers is located in
matlabroot\rtw\c\dos\devices. This table lists the available DOS device
drivers.
Table B-1: DOS Device Drivers Included with the Real-Time Workshop
B-2
Type of Device Driver
Filename
Analog to Digital
das16ad.c
das16ad.h
das16ad.tlc
Digital to Analog
das16da.c
das16da.h
das16da.tlc
Digital Input
das16di.c
das16di.h
das16di.tlc
Digital Output
das16do.c
das16do.h
das16do.tlc
Device drivers written in this style (that is, as inlined S-functions) are
compatible with Real-Time Windows Target. They may be used in combination
with the device drivers provided with Real-Time Windows Target.
See “Targeting DOS for Real-Time Applications” for more information on these
I/O device drivers and “Targeting Real-Time Systems” for information about
writing custom device drivers; both these chapters are in the Real-Time
Workshop User’s Guide.
Incompatibility with Win32 API Calls
The Real-Time Windows Target kernel intercepts the interrupt from the
system clock. It then reprograms the system clock to operate at a higher
frequency for running your real-time application. At the original clock
frequency, it sends an interrupt to the Windows operating system to allow
Windows applications or any software using the Win32 API to run.
As a result, software that uses the Win32 API may not be executed as a
component of your real-time application. Any software you use to write I/O
drivers must not have any calls to the Win32 API.
Nonsupported C Functions
If you create your own custom I/O driver blocks, you should first check for C
functions that are supported by Real-Time Windows Target.
Functions that use the Windows operating system are not supported with
Real-Time Windows Target. This is because the kernel intercepts the system
clock and first runs the real-time application. If there is time left before the
next sample time, the kernel may allow a Windows application or function to
run.
The following list includes many, but not all of the nonsupported functions:
• File I/O - fopen freopen, fclose, fread, fwrite, fputs, fputc,
fgets, fgetc, gets, getc, getchar, puts, putc, putchar, fflush,
setbuf, setvbuf
• Console I/O - printf, fprintf, sprintf, vfprintf, vprintf,
vsprintf, fscanf, scanf, sscanf
• Process management - spawn, exit, abort, atexit
• Signals and exceptions - signal, longimp, raise
B-3
B
Custom I/O Driver Blocks
• Time functions - clock, time, difftime, asctime, ctime, difftime,
gmtime, localtime, mktime, strftime
• Win32 API functions. No Windows API functions are supported.
Supported C Functions
You can use ANSI C functions that do not use the Windows operating system
in your custom blocks or I/O drivers. The following includes a partial list of
supported functions:
• Data conversion functions - abs, atof, atoi, atol, itoa, labs, ltoa,
strtod, strtol, strtoul, ultoa
• Memory allocation functions - calloc, free, malloc
• Memory manipulation functions - _memccpy, memcpy, memchr, memcmp,
_memicmp, memmove, memset
• String manipulation functions - strcat, strchr, strcmp, strcpy,
strcspn, _strdup, _stricmp, strlen, _strlwr, strncat, strncmp,
strncpy, _strnset, strpbrk, strrchr, _strrev, _strset, strspn,
strstr, strtok, strupr
• Mathematical functions - acos, asin, atan, atan2, ceil, cos, cosh,
div, exp, fabs, floor, fmod, frexp, ldexp,ldiv, log, log10, max,
min, modf, pow, rand, sin, sinh, sqrt, srand, tan,tanh,uldiv
• Character class tests and conversion - isalnum, isalpha, _isascii,
iscntrl, isdigit, isgraph, islower, isprint, ispunct, isspace,
isupper, isxdigit, isxupper, isxlower, _toascii, tolower, toupper
• Searching and sorting - bsearch, qsort
• Dummy functions - exit, fprintf, prinf
B-4
Index
A
A/D, see analog-to-digital
adding
Analog Input block 4-7, 4-9
I/O driver blocks 4-7
input blocks 4-7, 4-9
analog input
normalized scaling 4-26
Analog Input block
configuring 4-10
Analog Output block
configuring 4-12
analog-to-digital
channel selection 4-22
application
Real-Time Windows Target 1-3, 1-5
B
before you install
obtaining a valid license 2-5
build process xvii
C
C compiler
required product xi
third party 2-11
capturing and displaying signals 1-3
CD
installation 2-6
changing parameters
parameter tuning 1-7
channel selection
entering configurations 4-22
compact PCI
installing 4-6
compact PCI bus
supported boards A-8
compatibility
with MATLAB ix
with Real-Time Workshop x
with Simulink ix
with Stateflow xii
with the MathWorks software 1-4
compiler
error message 5-3
Microsoft Visual C/C++ xi, 2-11
required xi
selecting 2-11
third party 2-11
Watcom C/C++ xi, 2-11
computer
PC compatible 1-8
configuring
Analog Input block 4-10
Analog Output block 4-12
Digital Input block 4-15
Digital Output block 4-17
I/O boards 4-3
connecting
real-time application 3-21
Simulink model 3-21
contacting The MathWorks
for valid license 2-5
conventions
in this guide xvii
typographical xvii
creating
real-time application 3-20
Simulink model 1-11
I-1
Index
custom I/O drivers
creating B-2
DOS target drivers B-2
incompatible with Win32 B-3
overview B-2
source code B-2
D
D/A, see digital-to-analog
data archiving parameters
entering 3-41
logging data to disk drive 3-41
data buffers 1-13
definitions, terms xvii
demo library
opening 2-20
Real-Time Windows Target 2-20
demux block
separating I/O signals 4-20
description
Simulink external mode 1-12
device drivers
channel selection 4-22
custom I/O 4-29
writing custom B-2
Digital Input block
configuring 4-15
Digital Output block
configuring 4-17
digital-to-analog
channel selection 4-22
directories
installed 2-8
MATLAB working 2-8
Real-Time Workshop working 2-8
working 2-8
xpc 2-8
xpcdemo 2-8
disk drive
plotting logged data 3-44
signal logging 3-35
documentation
notational conventions xvii
terminology conventions xvii
DOS target drivers
use for custom drivers B-2
DSP Blockset
compatible software 1-4
E
education
control engineers 1-3
signal processing engineers 1-3
entering
data archiving parameters 3-41
scope properties 3-35
signal and triggering properties 3-38
simulation parameters 3-7, 3-14
error message
with compiler 5-3
execution
real-time 1-10
running in real time 1-11
expected background
experienced users xv
new users xv
external interface MEX-file
rtwinext 5-3
win_tgt 5-3
external mode
description 1-12
parameter tuning 1-7
I-2
Index
F
failure to connect
troubleshooting 5-3
features
signal logging 1-6
signal tracing 1-6
files
application 2-8
external mode interface 2-8
I/O drivers 2-8
installed 2-8
kernel install command 2-8
make command 2-8
makefile 2-8
project directory 2-8
system target 2-8
system target file 2-9
template makefile 2-8, 2-9
working directory 2-8
xpc directory 2-8
xpcdemos directory 2-8
Fixed-Point Blockset
compatible software 1-4
H
hardware
requirements 2-3
system requirements 2-3
I
I/O blocks
Analog Input block 4-10
Analog Output block 4-12
Digital Input block 4-15
Digital Output block 4-17
input and output 4-7
separating signals 4-20
with Simulink ix
I/O boards
compact PCI boards 4-6
configuring 4-3
installing 4-3
ISA-bus 4-5
list of supported A-2
overview 4-3
PCI-bus 4-6
PCMCIA 4-6
I/O drivers
characteristics 4-25
custom B-2
using 4-25
input blocks
adding Analog Input blocks 4-7, 4-9
overview 4-7
input/output
support 1-8
installation
CD 2-6
from Web downloadable 2-7
installing
compact PCI 4-6
I/O boards 4-3
kernel overview 2-13
Real-Time Windows Target 2-5
testing installation 2-16
ISA-bus
installing 4-5
supported boards A-2
I-3
Index
J
joystick
supported device A-9
K
kernel
communication with hardware 1-4
installing 2-13
scheduler 1-4
timer interrupt 1-4
uninstalling 2-15
MATLAB workspace
signal logging 3-27
MEX utility
selecting compiler 2-11
Microsoft
Visual C/C++ compiler xi, 2-11
Microsoft Visual C/C++
compatible versions xi
model parameters
changing 3-47
parameter tuning 3-47
mouse
supported device A-9
L
licenses
getting or updating 2-5
system requirements 2-5
list
supported I/O boards A-2
logging
data to disk drive 3-41
data to workspace 3-27
M
makefile 2-9
MathWorks
compatible software 1-4
DSP Blockset 1-4
Fixed-Point Blockset 1-4
Simulink blocks 1-4
Stateflow/Stateflow Coder 1-4
MATLAB
compatibility ix
required product ix
N
nonreal-time
simulation 1-10, 3-12
normalized scaling
analog input 4-26
O
opening
demo library 2-20
organization
of this document xvi
output blocks
overview 4-7
overview
custom I/O drivers B-2
I/O boards 4-3
input blocks 4-7
installing kernel 2-13
output blocks 4-7
parameter tuning 3-46
real-time application 3-14
I-4
Index
Real-Time Windows Target 1-3
system concepts 1-12
system requirements 2-3
testing installation 2-16
P
parallel port
supported device A-9
parameter tuning
changing model parameters 3-47
changing parameters 1-7
external mode 1-7
feature 1-7
overview 3-46
PCI-bus
installing 4-6
supported boards A-7
PCMCIA bus
installing 4-6
supported boards A-6
plots not visible
troubleshooting 5-2
plotting
logged data from disk 3-44
logged data from workspace 3-33
R
real-time
control 1-3
execution 1-10
hardware-in-the-loop 1-3
signal processing 1-3
real-time application
and the development process 1-11
connecting to Simulink model 3-21
creating 1-11, 3-20
overview 3-14
Real-Time Windows Target 1-5
Real-Time Workshop parameters 3-14
scope properties for signal tracing 3-17
simulation parameters for Real-Time Workshop 3-14
software environment 1-5
starting 3-24
stopping 3-24
real-time kernel
Real-Time Windows Target 1-4
scheduler 1-4
software environment 1-4
timer interrupt 1-4
Real-Time Windows Target
application 1-3, 1-5
custom I/O device drivers 4-29
demo library 2-20
development process 1-11
files 2-8
I/O board support A-2
installing kernel 2-13
overview 1-3
overview of install 2-5
real-time application 1-5
real-time kernel 1-4
required products ix
software environment 1-10
uninstalling kernel 2-15
what is it? 1-3
Real-Time Workshop
compatibility x
entering simulation parameters 3-14
required product x
I-5
Index
required products
C language compiler xi
MATLAB ix
overview ix
Real-Time Workshop x
Simulink ix
Stateflow xii
requirements
hardware 2-3
software 2-4
rtvdp.mdl
Simulink model 2-16
rtwinext
external interface MEX-file 5-3
running
execution in real time 1-11
real-time application 1-10, 3-24
simulation in nonreal time 1-11, 3-12
S
sample rates
excessive 2-20
sample time
too fast 5-4
scope properties
entering 3-35
entering for signal tracing 3-17
for signal logging to disk drive 3-35
for signal logging to workspace 3-27
selecting
C compiler 2-11
separating
I/O signals 4-20
setting
initial working directory 2-10
working directory 2-10
signal and triggering
entering properties 3-30
properties 3-38
signal archiving, see signal logging, disk drive
signal data
plotting from disk drive 3-44
plotting from workspace 3-33
signal logging
entering scope properties 3-27
feature 1-6
plotting data 3-33
signal and triggering properties 3-38
to disk drive 3-35
to MATLAB workspace 3-27
signal logging to disk drive
data archiving parameters 3-41
signal and triggering properties 3-38
signal logging to workspace
scope properties 3-27
signal and triggering properties 3-30
signal processing
DSP Blockset 1-4
signal tracing
feature 1-6
scope properties 3-17
signals, capturing and displaying 1-3
simulation
nonreal-time 1-10, 3-12
running in nonreal time 1-11
simulation parameters
entering 3-7
for Real-Time Workshop 3-14
Simulink
compatibility ix
compatible software 1-4
required product ix
running a simulation 3-12
I-6
Index
Simulink external mode
description 1-12
parameter tuning 1-7
Simulink model
and the development process 1-11
connect to real-time application 3-21
creating 1-11
rtvdp.mdl 2-16
software
system requirements 2-4
software environment
overview 1-10
real-time application 1-5
real-time kernel 1-4
requirements 2-4
standard devices
joystick A-9
mouse A-9
parallel port A-9
starting
real-time application 3-24
Stateflow
compatibility xii
compatible software 1-4
required product xii
stopping
real-time application 3-24
support
input/output 1-8
supported I/O boards
compact PCI bus A-8
ISA bus A-2
list A-2
PCI bus A-7
PCMCIA bus A-6
system concepts
data buffers 1-13
overview 1-12
transferring data 1-13
system requirements
hardware 2-3
licenses 2-5
overview 2-3
software 2-4
software environemnt 2-4
updating licenses 2-5
system target file 2-9
T
template makefile 2-9
terms
definitions xvii
testing installation
overview 2-16
third-party
C compiler 2-11
transferring data 1-13
troubleshooting
compiler error message 5-3
failure to connect 5-3
incorrect MEX-file 5-3
plots not visible 5-2
sample time too fast 5-4
U
uninstalling
kernel 2-15
using
I/O device drivers 4-25
using this guide
conventions xvii
organization xvi
I-7
Index
V
valid license
obtaining 2-5
Visual C/C++
compatible versions xi
compiler 2-11
W
Watcom
C/C++ compiler xi, 2-11
Web downloadable
installing from 2-7
Win32
incompatible with I/O drivers B-3
Windows Target, see Real-Time Windows Target
working directory
initial 2-10
setting 2-10
setting initial 2-10
writing customized device drivers B-2
I-8