Fehlermeldungen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

Dieser Artikel beschreibt potentiell wiederkehrende Fehlermeldungen und liefert Lösungsvorschläge.

MATLAB System Error

Bei der Fehlermeldung "MATLAB has encountered an internal problem and needs to close." hat mindestens ein ausgeführtes Simulink-Modell den Dateityp einer falschen Matlab-Version. Für Skripte der CaroloCup-Software wird ausschließlich Matlab/Simulink 2013a vorgeschrieben. Zur Anpassung muss das Modell mit einer ausführbaren Matlab-Version geöffnet werden, um unter File->Export Library to->Previous Version... den Dateityp Simulink 8.1/R2013a Models (*mdl) auszuwählen. Die neue Datei muss zunächst unter einem anderen Namen gespeichert werden.

Bilder

Code Generation Errors

Sollte es bei der Erstellung eines Programm-Codes aus einem Matlab Skript oder aus einem Simulink-Modell zu Fehlermeldungen kommen, ist der ausgewählte Compiler zu überprüfen. Mit Befehl mex -setup im Command Window können die Einstellungen aufgerufen werden. Für die Computer im Labor "Autonome Systeme" wird der Compiler Microsoft Visual C++ 2010 empfohlen.

Bilder

Autor: Steffen Topp (Diskussion)

Fehlermeldungen im Online-Modell

Autor: Isaac Mpidi Bita

Debug des Modells

In dieser Aufgabe wird systematisch das komplette Modell debuggt. Wichtig ist es erstmal alle Fehlerursachen zu finden und zu versuche diese zu beseitigen. Da das erste Ziel einer kompilierfähiges Online Modell ist, werden vorerst die Richtigkeit und Plausibilität der Werte bzw. Datenfluss nicht berücksichtigt. Im Wintersemester 2019-2020 wird sich jedes Team um die Datenrichtigkeit deren Blöcke gewährleisten.

Damit das ganze System kompilierfähig ist muss nicht jeder Block kompilierbar sein. Weil es Signale, Variablen und Funktionen genutzt werden, die von anderen Blocks abhängen.

Das Online-Modell beinhaltet folgenden Blöcke:

  • Sensoren (SEN)
  • Aktoren (AKT)
  • Sensorsignalaufbereitung (SAB)
  • Objekt- und Spurerkennung (OSE)
  • Bahn und Spurführung (BSF)
  • Autonomes Einparken (AEP)
  • Fahrtmodus (FAMO)
  • Zähler und Zeitstrahl
  • SEN - Geschwindigkeit

Situation am Anfang des Sommersemester 2019


Am Anfang des SoSe 2019 ist das Online-Modell nicht mehr kompilierbar. Die mögliche Ursache dafür ist zum Beispiel die weiterentwicklung des Modells mit höheren MATLAB Revisionen oder das nicht ordentlichen Mergen des Daten in SVN. Weiteren Hintergründe sind die Nicht-Betrachtung der Warnings beim Erstellen der Bibliotheken oder den falschen Auswahl der Solver beim Implementieren. All diesen nachlässigen Fehlern haben dazu geführt, dass das Modell im Laufen der Jahren nicht mehr Kompilierfähig war.

Kenntnis

  • Der SEN-, AKT- und der AEP-Block können nicht gebuildet werden
  • Das OSE-, BSF- und FAMO-Block können nur gebuildet werden, wenn die nicht verlinkt waren.
  • Kompilierbar sind die Blöcke: SAB, Zaehler und Zeitstahl und SEN-Geschwindigkeit.

Vorgehensweise

  1. Suche eines frühere kompilierbare Online-Modell und dies auf aktuellsten Stand zu bringen
  2. Suche eines frühere nicht kompilierbare Online Modell mit wenigen Fehler, und ab dem Punkt debuggen
  3. Aktuelles Modell blockweise debuggen

Error

In dieser Abschnitt werden die gesammlten Fehlermeldungen und die vorgehensweise des Debugging erläutert.

Error Line 110: Library Failed to Build

Bedeutung

Der Fehler ist zur Stande gekommen, weil die Bibliotheken Stateflow-Diagramm enthalten. Außerdem wurde das Modell und die Bibliothek in Verschieden Umgebungen bzw. MATLAB-Versionen implementiert.

Behebung

Um diesen Fehler zu beheben müssen folgende Schritte durchgeführt werden:

  1. Geben Sie in den MATLAB Kommando matlabroot ein. Damit öffnet sich der Speicherort von MATLAB.
  2. Wechseln Sie mit dem Explorer in das Verzeichnis c:\Program Files\MATLAB\R2013a\toolbox\stateflow\stateflow\private.
  3. Ersetzen Sie die Datei infomatman.m, mit der Datei aus dem SVN-Verzeichnis: \Teams\Kom\Debug des Online-Modells\Error line 110

Im nachfolgenden wird die Problemlösung, die bereits in der infomatman.m implemntiert ist im Detail beschrieben.
Diese Schritte müssen nicht noch mal angewendet werden!!!

  1. Öffen Sie die Datei infomatman.m in MATLAB.
  2. Nehmen Sie folgenden Änderungen durch

Links ist das Dokument unverändert und Rechts ist die Veränerung, die vorgenommen werden

Änderung 1
  • Kommentieren Sie die Zeile 189 aus.
  • Kopieren Sie die eben kommentierte Zeile darunten und bennen SIe den Parameter "machineID" nach "mainMachineID" um.


Änderung 2
  • Benennen Sie die Variable "NewInstanceInfo" nach "infoStruct.chartInfo(i).instanceInfo" um.
  • Löschen Sie die darunter stehenden if-Bedingung und Variablenzuweisung.


Änderung 3
  • Löschen Sie die Funktion "mergeNewInstanceInfoWithOld"

Error Datenübergabe

Error RTI Build Error

  Starting build procedure with RTI 7.0 (RTI1104, 02-May-2013)
  Model: "AKT"
  ----------------------------------------------------------------------
  *** Using configuration set : "ModelReferencing"
  *** Working directory       : "D:\SVN\SDE_Praktikum\MTR_SDE_Praktikum\Software\CaroloCupFahrzeug"
  *** Initializing code generation
  ### Starting Simulink Coder build procedure for model: AKT
  ------------------------------------------------------------
  RTI Build Error
  Configuration Parameters dialog:
  Specification of the Fixed-step size with 'auto' is not supported in this version of RTI.
  TIP: For this option you can set a default value that applies to new models.
  To do so, open the Model Explorer and edit the Configuration Preferences of
  the Simulink Root model.
  ------------------------------------------------------------
  *** Stopped RTI build procedure for model: AKT.
  ----------------------------------------------------------------------

Bedeutung

Der konkrete Buildfehler entsteht, weil die Schrittweite (Fixed-Step size) in Ihrem Modell nicht korrekt konfiguriert ist. MATLAB bietet hier eine Funktion "auto" - diese kann aber von Echtzeitsystemen wie der DS1104 nicht genutzt werden.

Behebung

  • Simulink-Subsystem in einer neuen Simulink-Blank-Modell kopieren
  • Jede einzelnen Block des Subsystem überprüfen
  • Und Modell neu builden

Empfehlung

Hierfür empfehlt das dSPACE-Support einen fixen Wert mit einer Schrittweite von 1ms (= 0.001).

Nicht gebuildete S-Function

Bei Änderung bzw. Verlust der Dateien muss die S-Function immer neu gebuildet werden.

Behebung

  • Doppelklick auf der gewünchten S-Function
  • Klicken SIe auf Build
  • Klicken Sie auf für die Überschreibung bzw. Overwriting
  • Klicken SIe auf Close

Sie werden einen Status erhalten, ob die Bildung erfolgreich oder fehlhaft war.

Nicht definierte Variablen

   Error evaluating parameter 'Value' in 'CCF_online/BSF - Bahnplanung und Spurfuehrung/BSFVx - Bestimmung Sollgeschwindigkeit/BsfVx_VxHindernis_f64'

Bedeutung

Die Funktion oder die genannte Variable wurde nicht definiert.

Behebung

Um den Fehlher zu beheben:

 in diesem Fall "param_BSF.m"
  • Initialisieren Sie die gewünchte Parameter
 in diesem Fall "BsfVx_VxHindernis_f64"



Achtung: Wenn diese Fehlermerdung häufig auftaucht, verifizieren Sie, ob die Verlinkung richtig gemacht wurde

Verbindungsfehler zu der dSPACE-Karte

  File I/O error on file 'rti1104.tlc'
  Operation that caused an error: open

Umgang

  • Verifizieren Sie ob die dSPACE-Karte richtig angeschlossen ist.
  • Stellen Sie sich sicher, dass die dSPACE-MTLAB-Toolbox installiert ist.
  • Stellen Sie sicher, dass sie die richtige MATLAB-Version gestartet haben.

Warnings

Verlinkungswarnung

    Warning: bib_Sensoren_Aktoren_online.mdl, line 5405: 
             "bib_Sensoren_Aktoren_online/SEN - Sensoren - online/SenAbs - 
             Abstandssensorik/Infrarotsensor HR nach Hinten/MATLAB Function" 
             is a parameterized link
             To view, discard, or propagate the changes for this link, 
             use the "Library Link" menu item
   Link: bib_Sensoren_Aktoren_online/SEN - Sensoren - online/SenAbs - 
         Abstandssensorik/Infrarotsensor HR nach Hinten
   Warning: bib_Sensoren_Aktoren_online.mdl, line 5103: "bib_Sensoren_Aktoren_online/SEN 
            - Sensoren - online/SenAbs - Abstandssensorik/Infrarotsensor HR/MATLAB Function" 
            is a parameterized link. To view, discard, or propagate the changes for this
            link, use the "Library Link" menu item
   Link: bib_Sensoren_Aktoren_online/SEN - Sensoren - online/SenAbs - Abstandssensorik/Infrarotsensor HR
   Warning: bib_Sensoren_Aktoren_online.mdl, line 5707: "bib_Sensoren_Aktoren_online/SEN - 
            Sensoren - online/SenAbs - Abstandssensorik/Infrarotsensor VR/MATLAB Function" 
            is a parameterized link. To view, discard, or propagate 
            the changes for this link, use the "Library Link" menu item

Bedeutung

Diese Warnung taucht meistens vor dem Builden des Modell auf. Dies bedeutet, dass die Bibliothek im Modell nicht mehr mit dem Hyperlink überreinstimmen.

Umgang

  • Rechtsklick auf das Block
  • Wählen Sie „Library Link“
  • Klicken Sie auf „Resolve Link“. Ein Dialog-Fernster wird sich öffnen
  • Wählen SIe eine Aktion aus
Merke
  • Wählen Sie Push, wenn Sie wollen, dass die Änderungen in die Bibliothek übernommen werden.
  • Wählen SIe Restore, wenn Sie wollen, dass der Zustand aus der Bibliothek in das Model übernommen wird.

Warnings beim Start des Online Modell

     Warning: CCF_online.mdl, line 1229: "CCF_online/AKT - Aktoren - online" is a parameterized link. To view, discard, 
              or propagate the changes for this link, use the "Library Link" menu item 
          In general\private\openmdl at 13
          In open at 159
          In start at 257 
    Warning: CCF_online.mdl, line 2312: "CCF_online/SEN - Sensoren - online" is a parameterized link. 
             To view, discard, or propagate the changes for this link, use the "Library Link" menu item 
          In general\private\openmdl at 13
          In open at 159
          In start at 257

Bedeutung

Die Warnings tauchen auf, weil Änderungen in das Modell vorgenommen würden und gepeichert worden sind. Beim nächsten Start weißt MATLAB dem Programmierer darauf hin.

Umgang

  • Rechtsklick auf das Block
  • Wählen Sie „Library Link“
  • Klicken Sie auf „Resolve Link“. Ein Dialog-Fernster wird sich öffnen
  • Wählen SIe eine Aktion aus
Merke
  • Wählen Sie Push, wenn Sie wollen, dass die Änderungen in die Bibliothek übernommen werden.
  • Wählen SIe Restore, wenn Sie wollen, dass der Zustand aus der Bibliothek in das Model übernommen wird.

Warnung während des Builden des Modells

      Warning: Remapping selected signal 'AEP.Famo_Modi_Schalter_Lw_int' to 'FAMO.Famo_Modi_Schalter_Lw_int' 
               in 'CCF_online/FAMO - Fahrtmodus/Bus Selector' to match the bus hierarchy. Please save your 
               model to make this change permanent 

Umgang

  • Speichern Sie ihre Modell und builden Sie neu.

Debug des SEN - Online - Block

In diesem Abschnitt wird den Vorgang der Blockweise Debugging erläutert.

  • Öffnen und starten Sie die Datei Start.m
  • Builden Sie das Gesamt Modell

Taucht einen Fehler auf, muss dieser erst lokalisiert werden. Meistens wird der SIMULINK-Diagnostic Viewer eindeutig schreiben in welcher Block der Fehler liegt. Allerdings gibt es fälle, wo dies nicht angezeigt wird, deshalb sollte man dies Stück für Stück bzw. Block per Block suchen.

In dieser Abschnitt wird den Fehler das auto-FixedStep-Problem behandelt.

  • Isolieren Sie den Sensorblock.
    • Erstellen Sie einen neuen SIMULINK-Modell und kopieren Sie die Bibliothek rüber.
    • Verbinden Sie den Ausgang zu einen Terminator
    • Lösen Sie die Verbindung zu Parent auf.

  • Builden Sie das Modell (Strg + B bzw. Ctrl + B)
    • Die Fehlermeldung lautet:

  • Gehen Sie eine Ebene runter (siehe Bild links)
  • Builden Sie jedes einzelne Block
    • Rechtsklick auf den Block
    • Gehen Sie auf C/C++
    • Klicken Sie auf Build This Subsystem

Machen Sie es für jeden Block, bis Sie den problematischen Block gefunden haben.

  • Debuggen Sie nun den Block
Weitere Fehlermeldungen beim Debuging
Weitere Fehlermeldungen beim Debuging

Befindet man sich in der unterste Ebene, kann man mit dem Debuging anfangen. Beim Debugging kann es sein, dass noch mehreren Fehlern auftauchen. Diese sollten auch systematisch und sinnvoll behandelt werden.


  • Debuggen Sie und Builden Sie erneut bis das Gesamt Modell kompilierbar ist.
-----------------------------------------------------------------------------------------
LOADING APPLICATION "SEN_Block_Debug.sdf" ... 
[#1] ds1104 - RTLIB:	Application UUID: 29B9764D-CCF7-464C-B55C-E5980AD3F73B (0) 
[#2] ds1104 - RTI:	Initializing ... (720) 
[#3] ds1104 - RTLIB:	dSPACE slave-DSP firmware rev. 3.5 detected. (500) 
[#4] ds1104 - RTI:	Initialization completed (721) 
[#5] ds1104 - RTI:	Simulation state: RUN (700) 
LOADING FINISHED 

MAKE PROCESS SUCCEEDED 
 
### Successful completion of Simulink Coder build procedure for model: SEN_Block_Debug
*** Finished RTI build procedure for model SEN_Block_Debug 
----------------------------------------------------------------------
>>


  • Speichern Sie und verlinken Sie die Bibliothek erneut gemäß [Abschnitt 3.5.2]

Situation am Ende des Sommersemester 2019

Am Ende des SoSe 2019 ist das Online-Modell kompilierbar und wurde bereits im SVN hochgeladen.

Erkenntnis

  • Das Gesamtmodell ist kompilierbar
  • Der SEN-, FAMO- und der AKT-Block enthalten noch Warnings beim bilden des Gesamtmodells
  • Der FAMO ist allein fehlerfrei kompilierbar. Das Warning taucht nur beim builden des Gesamtmodells auf
  • Die restlichen Blöcke sing fehlerfrei und enthalten keine Warnings
  • Das OSE-, BSF- und FAMO-Block können nun gebuildet werden, wenn die nicht verlinkt waren.
  • Die Fehler wurden bereits lokalisiert
  • Ein bereits debuggtes SEN-Block liegt in der Software Bibliothek des CaroloCup Fahrzeugs. Allerding gibt es probleme bei der Rückfürung mit der Parent.

Ergebnis - Rapid Control Prototyping

  • MATLAB Ausgabe
BUILDING APPLICATION "CCF_online" (Single Timer Task Mode) 

WORK  DIRECTORY "D:\SVN\SDE_Praktikum\CaroloCupFahrzeugVersionen\CaroloCupFahrzeug - Debug Version\CaroloCupFahrzeug" 
BUILD DIRECTORY "D:\SVN\SDE_Praktikum\CaroloCupFahrzeugVersionen\CaroloCupFahrzeug - Debug Version\CaroloCupFahrzeug\CCF_online_rti1104" 
TARGET COMPILER "C:\Program Files\dSPACE RCPHIL 2013-A\Compiler\PPCTools37"  

COMPILING  "CCF_online.c"  
(W) C0223-D; "CCF_online.c", line 539 pos 19; function "dsser_transmit_fifo_level" declared implicitly 
     txFifoLevel = dsser_transmit_fifo_level(rtiDS1104SER_B1_Ser[0]); 
                   ^ 

1 Warning 
COMPILING  "CCF_online_data.c"  
COMPILING  "CCF_online_trc_ptr.c"  
COMPILING  "rtGetInf.c"  
COMPILING  "rtGetNaN.c"  
COMPILING  "rt_nonfinite.c"  
COMPILING  "C:\Program Files\dSPACE RCPHIL 2013-A\MATLAB\RTI\RTI\C\rti_sim_engine.c"  

LINKING APPLICATION ... 
LINKING FINISHED 

LOADING APPLICATION "CCF_online.sdf" ... 
[#1] ds1104 - RTLIB:	Application UUID: 796282A5-B263-4E11-B935-95FB6280AB84 (0) 
[#2] ds1104 - RTI:	Initializing ... (720) 
[#3] ds1104 - RTLIB:	dSPACE slave-DSP firmware rev. 3.5 detected. (500) 
[#4] ds1104 - RTI:	Initialization completed (721) 
[#5] ds1104 - RTI:	Simulation state: RUN (700) 
LOADING FINISHED 

MAKE PROCESS SUCCEEDED 

### Successful completion of Simulink Coder build procedure for model: CCF_online
*** Finished RTI build procedure for model CCF_online 
----------------------------------------------------------------------
>>



  • Screenshot des Ergebnis




→ zurück zum Hauptartikel: Praktikum SDE