IPG_CarMaker Programmers Guide

Download IPG_CarMaker Programmers Guide

Post on 16-Nov-2014

2.441 views

Category:

Documents

82 download

Embed Size (px)

DESCRIPTION

IPG_CarMaker

TRANSCRIPT

<p>CarMaker</p> <p>Cover</p> <p>Programmers GuideVersion 2.1</p> <p>2</p> <p>The information in this document is furnished for informational use only, may be revised from time to time, and should not be construed as a commitment by IPG Automotive GmbH. IPG Automotive GmbH assumes no responsibility or liability for any errors or inaccuracies that may appear in this document. This document contains proprietary and copyrighted information and may not be copied, reproduced, translated, or reduced to any electronic medium without prior consent, in writing, from IPG Automotive GmbH. 1999 - 2006 by IPG Automotive GmbH www.ipg-automotive.com All rights reserved. FailSafeTester, IPG-CAR, IPG-CONTROL, IPG-DRIVER, IPG-ENGINE, IPG-GRAPH, IPGKINEMATICS, IPG-LOCK, IPG-MOTORCYCLE, IPG-MOVIE, IPG-ROAD, IPG-ROADDATA, IPG-TIRE, IPG-TRAILER, IPG-TRUCK are trademarks of IPG Automotive GmbH. CarMaker, TruckMaker, MotorcycleMaker, MESA VERDE are registered trademarks of IPG Automotive GmbH. All other product names are trademarks of their respective companies.</p> <p>CarMaker Programmers Guide</p> <p>Version 2.1.6</p> <p>3</p> <p>Contents</p> <p>1</p> <p>The CarMaker Environment1.1</p> <p>10</p> <p>CarMaker architectural breakdown . . . . . . . . . . . . . . . . . . . . . . 10 CarMaker user interface programs . . . . . . . . . . . . . . . . . . . . . . 10 CarMaker simulation program . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Data le organisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Program interaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Interaction of HIL systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12</p> <p>1.2 1.3 1.4</p> <p>Inside the CarMaker simulation program . . . . . . . . . . . . . . . . . 14 User accessible modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 CarMaker Flow Process Charts . . . . . . . . . . . . . . . . . . . . . . . . 17 Modied Cycle Clock Generation if Oversampling is used . . . . 18 The main cycle explained . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 An pseudo code excerpt from HilMain.c . . . . . . . . . . . . . . . . . . 22 Basic tasks of the main routine . . . . . . . . . . . . . . . . . . . . . . . . . 23 The event loop of the main routine . . . . . . . . . . . . . . . . . . . . . . 23</p> <p>1.5 1.6 1.7 1.8</p> <p>A stripped down CM_Main.c . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Main Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 SimStart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 SimStop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29</p> <p>2</p> <p>Logging Module2.1 2.2</p> <p>30</p> <p>General information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Recommended use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 List of functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31</p> <p>CarMaker Programmers Guide</p> <p>Version 2.1.6</p> <p>4</p> <p>3</p> <p>Infole Module3.1 3.2 3.3 3.4</p> <p>33</p> <p>Infole format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Access functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Error handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 C Function List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 General Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Read Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Write Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Add/Move Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Help Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Additional Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48</p> <p>3.5</p> <p>Tcl/Tk Procedure List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 ile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49</p> <p>4</p> <p>Data Dictionary4.1</p> <p>53</p> <p>Dening DataDict Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . 53</p> <p>5</p> <p>Integrating Simulink models5.1 5.2</p> <p>57</p> <p>Starting Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Step-by-step: Integrating a Simulink model . . . . . . . . . . . . . . . . 59 Creating the Simulink model . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Setting simulation parameters . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Generating and compiling the model C code . . . . . . . . . . . . . . 62 Integrating the model into CarMaker . . . . . . . . . . . . . . . . . . . . . 62 Running the model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63</p> <p>5.3</p> <p>The CarMaker interface blockset . . . . . . . . . . . . . . . . . . . . . . . 65 Accessing the CarMaker dictionary . . . . . . . . . . . . . . . . . . . . . . 65 Dening CarMaker dictionary variables . . . . . . . . . . . . . . . . . . 66 Accessing C variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68</p> <p>5.4</p> <p>The CarMaker target for Real-Time Workshop . . . . . . . . . . . . . 70 Code generation with the CarMaker target . . . . . . . . . . . . . . . . 70 Choosing the right model wrapper . . . . . . . . . . . . . . . . . . . . . . 70 Customizing the wrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Integrating the model library . . . . . . . . . . . . . . . . . . . . . . . . . . . 72</p> <p>5.5</p> <p>CarMakers tunable parameter interface . . . . . . . . . . . . . . . . . . 74 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Enabling tunable parameters in a Simulink model . . . . . . . . . . 75</p> <p>CarMaker Programmers Guide</p> <p>Version 2.1.6</p> <p>5</p> <p>Modifying tunable parameters in the model wrapper . . . . . . . . 76 Parameter values in Infoles . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Adding tunable parameters to the CarMaker dictionary . . . . . . 78 Known limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Tunable parameter interface functions . . . . . . . . . . . . . . . . . . . 80 5.6 Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Upgrading to a new CarMaker version . . . . . . . . . . . . . . . . . . . 87 Integration of more than one model . . . . . . . . . . . . . . . . . . . . . 87 Using blocks from the CarMaker for Simulink blockset . . . . . . . 87 CarMaker and Matlab installed on different computers . . . . . . . 87 Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 5.7 Demonstration examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Contents of the examples directory . . . . . . . . . . . . . . . . . . . . . . 90 Preparing the examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Rebuilding an example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91</p> <p>6</p> <p>CarMaker for Simulink6.1</p> <p>92</p> <p>CarMaker for Simulink basics . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Creating a new CarMaker project directory . . . . . . . . . . . . . . . . 93 Starting Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Creating a new model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Starting the CarMaker GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Running a simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Switching between several Simulink models . . . . . . . . . . . . . . . 96 Switching between several CarMaker project directories . . . . . 96 Dealing with the start values of your model . . . . . . . . . . . . . . . 96 Working in a non-default model directory . . . . . . . . . . . . . . . . . 97 Upgrading to a new CarMaker version . . . . . . . . . . . . . . . . . . . 97 Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97</p> <p>6.2</p> <p>Using the C language interface . . . . . . . . . . . . . . . . . . . . . . . . . 99 Rebuilding the model library . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Identifying which model library you are using . . . . . . . . . . . . . . 99 Integrating model C code built with Real-Time Workshop . . . 100</p> <p>6.3</p> <p>The CarMaker for Simulink blockset . . . . . . . . . . . . . . . . . . . . 101 General information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Utility blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 CarMaker dictionary blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 General purpose blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106</p> <p>CarMaker Programmers Guide</p> <p>Version 2.1.6</p> <p>6</p> <p>CarMaker subsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 6.4 Demonstration examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 ABSdemo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 BodyCtrl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 ESPTemplate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 SoftABS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 TractCtrl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 UserBrake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 UserPowerTrain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 UserSteer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 UserSteerTorque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 UserTire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129</p> <p>7</p> <p>CarMaker utilities for Matlab7.1 7.2</p> <p>130</p> <p>Importing simulation results with cmread . . . . . . . . . . . . . . . . 130 Accessing CarMaker Infoles . . . . . . . . . . . . . . . . . . . . . . . . . 132</p> <p>8</p> <p>MIO M-Module Input/Output8.1</p> <p>133</p> <p>Supported M-Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 M3 / M27 / M43: Binary / Relay Outputs (8/16 channels) . . . . 133 M4: Analog Outputs (4 channels) . . . . . . . . . . . . . . . . . . . . . . 134 M15: Frequency Generator (2 channels) . . . . . . . . . . . . . . . . 135 M31 / M32: Binary Inputs (16 channels) . . . . . . . . . . . . . . . . . 136 M5 / M34 / M35 / M35N: Analog Inputs (16/8 channels) . . . . . 137 M51: Quadruple CAN Interface . . . . . . . . . . . . . . . . . . . . . . . . 138 M62: Analog Outputs (4 channels) . . . . . . . . . . . . . . . . . . . . . 140 M72: Motion Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 M77: Quadruple RS232/423 - RS422/485 UART . . . . . . . . . . 142 M392 / M393: Analog Inputs (16/8 channels) . . . . . . . . . . . . . 143 M461/3: Pulse Width and Angle Measurement (4 channels) . 144</p> <p>8.2</p> <p>Programming M-Module I/O . . . . . . . . . . . . . . . . . . . . . . . . . . 145 MIO Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 M-Module Carrier Board Conguration . . . . . . . . . . . . . . . . . . 147 M-Module Conguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149</p> <p>8.3</p> <p>Administrative Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Initialization and M-Module Conguration . . . . . . . . . . . . . . . . 152 MIO and M-Module Information . . . . . . . . . . . . . . . . . . . . . . . 154 VME Bus Interrupt Handling . . . . . . . . . . . . . . . . . . . . . . . . . . 155</p> <p>CarMaker Programmers Guide</p> <p>Version 2.1.6</p> <p>7</p> <p>Shared Memory Management . . . . . . . . . . . . . . . . . . . . . . . . 156 Error Handling Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 8.4 M-Module Function Description . . . . . . . . . . . . . . . . . . . . . . . 159 M3: Binary Outputs (16 channels) . . . . . . . . . . . . . . . . . . . . . 159 M4: Analog Outputs (4 channels) . . . . . . . . . . . . . . . . . . . . . . 159 M5: Analog Inputs (16/8 channels) . . . . . . . . . . . . . . . . . . . . . 161 M15: Frequency Generator (2 channels) . . . . . . . . . . . . . . . . 162 M27: Binary Output (16 channels) . . . . . . . . . . . . . . . . . . . . . 164 M31: Binary Inputs (16 channels) . . . . . . . . . . . . . . . . . . . . . . 165 M32: Binary Inputs (16 channels) . . . . . . . . . . . . . . . . . . . . . . 165 M34: Analog Inputs (16/8 channels) . . . . . . . . . . . . . . . . . . . . 166 M35/M35N: Analog Inputs (16/8 channels) . . . . . . . . . . . . . . . 167 M43: Relay Outputs (8 channels) . . . . . . . . . . . . . . . . . . . . . . 168 M51: Quadruple CAN Interface . . . . . . . . . . . . . . . . . . . . . . . . 169 M62: Analog Outputs (4 channels) . . . . . . . . . . . . . . . . . . . . . 181 M72: Motion Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 M77: Quadruple RS232/423 - RS422/485 UART . . . . . . . . . . 188 M392: Analog Inputs (16 channels) . . . . . . . . . . . . . . . . . . . . 192 M393: Analog Inputs (8 channels) . . . . . . . . . . . . . . . . . . . . . 196 M461/3: Pulse Width and Angle Measurement (4 channels) . 198 8.5 mioutil - MIO conguration utility . . . . . . . . . . . . . . . . . . . . . . . 203 Version History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204</p> <p>9</p> <p>CANiogen CANdb import tool9.1</p> <p>207</p> <p>Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 Basic information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209</p> <p>9.2</p> <p>Using CANiogen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 The CANiogen Command Line . . . . . . . . . . . . . . . . . . . . . . . . 211 Importing Electronic Control Units (ECU) . . . . . . . . . . . . . . . . 213 Receiving CAN messages and signals of special interest . . . 214 Sending arbitrary CAN messages . . . . . . . . . . . . . . . . . . . . . . 214 Suppressing of I/O variables in the Data Dictionary . . . . . . . . 215 Optimizing the output of CANiogen . . . . . . . . . . . . . . . . ....</p>