Software Design Document

 

 

 

Function/Sub-System Name : Kommunikation Puma-Auswertung

Requirements Spec.Reference :

System : BMW Räderprüfstände

Designer : Kloeckl M.

Company : AVL Graz - Austria

Date : 01. April 1999

Affected Modules :

Status :

Revision : 0.3

 

 

 

 

Distributed to :

 

 

 

 

Copyright Notice :

The contents of this document may not be reproduced in any form or communicated to any third party without prior written consent of AVL. While every effort is made to ensure its correctness, AVL assumes no responsibility for errors or omissions, which may occur in this document.

 

 

 

 

Inhaltsverzeichnis

1. Einleitung *

1.1. Zweck *

1.2. Umfang *

1.3. Abkürzungen *

1.4. Glossar *

1.5. Referenzen *

2. Überblick *

2.1. Puma-Client Schnittstelle *

2.2. Die Kommandodatei *

3. Spezifisches Design *

3.1. Start/Stop Auswertung *

3.1.1. Start Auswertung *

3.1.2. Stop Auswertung *

3.2. Statusinformation *

3.3. Warmlauf *

3.3.1. Flußdiagramme *

3.3.2. Format der Kommandodatei *

3.4. Sturzwinkeloptimierung *

3.4.1. Flußdiagramme *

3.4.2. Format der Kommandodatei *

3.5. Fehlerhandling *

4. Fehler Handling *

5. Benutzerinterface *

6. Testkonzept *

7. Anmerkungen zur Implmentation *

8. Versionsprotokoll *

  1. Einleitung
    1. Zweck
    2. In diesem Design Dokument wird die Schnittstelle zwischen Puma und der Auswertung definiert.

    3. Glossar
    4. ASAM-Datenpfad

      Standardisiertes Format zur eindeutigen Beschreibung der Position von Objekten in der Datenbank.

    5. Referenzen

    Titel

    Filename

    Version

    SRS Sturzwinkeloptimierung

    Sturzwinkeloptimierung SRS.DOC

    29.03.99 /0.4

    Auswertung Sturzwinkeloptimierung

    auswertung_sturzpoti_srs.doc

    08.03.99/1.2

    P47_API_Demo

    Demo-Applikation zur Verwendung der Puma-Client Schnittstelle

    31.03.99/0.1

         

     

  2. Überblick
  3. Folgende Kommunikationsarten zwischen Puam4.7 und der Auswertung existieren:

    Bezeichnung

    Beschreibung

    Datenrichtung

    Start/Stop Auswertung

    Puma startet die Auswertung vor Beginn des Warmlaufes.

    Puma è Auswertung

    Ausgabe von Meldungstexten

    Die Auswertung kann direkt Meldungen im Klartext am Puma ausgeben.

    Puma ç Auswertung

    Statusinformation

    Die Auswertung sendet Statusinformationen an den Puma. Diese werden Puma-intern ausgewertet oder im Messagefenster des Puma angezeigt.

    Puma ç Auswertung

    Auswertungs-Lebenssignal

    Puma kann über ein Lebenssignal der Auswertung überprüfen, ob die Auswertung noch aktiv ist und entsprechende Aktionen ausführen.

    Puma ç Auswertung

    Errorhandling

    Die Auswertung sendet Fehler an den Puma. Puma reagiert entsprechend der Fehlermeldung.

    Puma ç Auswertung

    Synchronistaion

    Puma und Auswertung synchronisieren die Abarbeitung

    Puma ç Auswertung

    Warmlauf

    Puma übergibt den Namen der Messung während des Warlaufs an die Auswertung.

    Puma è Auswertung

    Puma ç Auswertung

    Sturzwinkeloptimierung

    Puma übergibt Parameter und Messungsnamen für die STWO an Auswertung.

    Puma è Auswertung

    Puma ç Auswertung

     

    1. Puma-Client Schnittstelle
    2. Das Ausgeben der Meldungstexten, Statusinformation und Fehlerhandling bzw. das Empfangen des Auswertungs-Lebenssignals, des Status- und des Fehlerwertes wird über die Puma4.7-Client Schnittstelle abgewickelt. Zur Demonstration der Funktionsweise und der Verwendung der Puma4.7-Client Schnittstelle, wurde die Demo-Applikation P47_API_Demo von der AVL erstellt.

    3. Die Kommandodatei

Die Puma4.7-Client Schnittstelle ist lediglich eine unidirektionale Schnittstelle zum Puma: der Puma kann von externen Applikationen gesteuert werden. Für die Steuerung von externen Applikationen durch den Puma wird daher eine Schnittstelle auf Dateibasis eingeführt.

Der Puma legt im Verzeichnis %PUMA_HOME\Asf\Communication Kommandodateien an. Die Auswertung pollt ständig dieses Verzeichnis nach Kommandodateien. Falls welche vorhanden sind, wird deren Inhalt interpretiert und das Kommando ausgeführt. Nach Beendigung der Abarbeitung, wird die Kommandodatei durch die Auswertung gelöscht. Befinden sich mehrere Kommandodateien im Verzeichnis, so werden diese nach dem Erstellungsdatum abgearbeitet.

Dateiname:

Name: Puma-Auswertung

Extension: .Cmdo

Sollten sich noch andere Dateien im Verzeichnis befinden, so werden diese von der Auswertung ignoriert.

Format:

Die Kommandodatei ist eine Textdati im ASCII-Format. Die einzelnen Zeilen sind durch <LF><CR> voneinander getrennt.

Zeilen Nr.

Bezeichnung

Beschreibung

 

Kommando

Name des Kommandos

 

Parameter 1

Erster Parameter

 

Parameter 2

Zweiter Parameter

 

Parameter ...

 
 

Parameter n

 

 

  1. Spezifisches Design
    1. Start/Stop Auswertung
      1. Start Auswertung
      2. Die Auswertung wird beim Starten des Versuchs für den Warmlauf bzw. der Sturzwinkeloptimierung über den "Program-Starter" des Puma aufgerufen. Dies geschieht durch das SScript Start_Auswertung, welches zu Beginn des Prüfablaufs gestartet wird. Der Aufruf der Auswertung über das Windows-NT Command-File "Start_Auswertung.cmd".

        SScript Start_Auswertung

        sAttribute = "Start_Auswertung.cmd";

        oASTestbed = ASTestbedSystem::TheASTestbedSystem();

        oObjVar = Program_Starter::TheProgram_Starter();

        oObjVar.iRemote_Host = "localhost";

        oObjVar.iLoader_Port = "5070";

        oObjVar.iRemote_Command = sAttribute;

        oObjVar.Start();

        Falls die Auswertung bereits gestartet ist, wird dieser Befehl ignoriert. Unmittelbar nach dem Aufruf beginnt die Auswertung im Verzeichnis %PUMA_HOME%\Asf\Communication nach Kommandodateien zu pollen.

      3. Stop Auswertung

      Beendet wird die Auswertung über eine Kommandodatei. Diese Datei hat lediglich den Eintrag End.

      Beispiel:

      Dateiname: Puma-Auswertung.Cmdo

      End

    2. Meldungstexte

Die Meldungstexte werden über die Puma-Client Schnittstelle von der Auswertung am Puma ausgegeben. Die Meldungen werden nur im Meldungsfenster angezeigt – ein schreiben ins Logbuch ist nicht möglich. Der Meldungstext kann von der Auswertung frei definiert werden. Die Ausgabe von Meldungstexten wird durch die Funktion ASFMessage in P47_API_Demo demonstriert.

Parameter der Funktion ASFMessages

Parameter

Beschreibung

P7_ASF_Session *aSession

Kennzeichnung des Ports, über das sich die Auswertung zum ASF verbinden kann (wird als Parameter beim ASF angegeben).

char *aMessage

Meldungstext

long aSeverity

Kennzeichnung der Meldungsklasse:

0 Information

  1. Warning
  2. Error
  3. Fatal Error
    1. Statusinformation
    2. Das Anzeigen von Statusmeldungen wird über die Puma4.7-Client Schnittstelle durchgeführt. Die Auswertung setzt das ClientStatus-Attribut des ClientDevices im ASF. Das SScript Auswertungsstatus pollt den Wert des ClientStatus-Attributs in einer Endlosschleife. Falls dieser einen Statuscode (Wert ungleich 0) enthält, wird die entsprechende Reaktion ausgeführt. Das Setzen des ClientStatus-Attributs wird durch die Funktion SetStatus in P47_API_Demo demonstriert.

      Parameter

      Beschreibung

      P7_ASF_Session *aSession

      Kennzeichnung des Ports, über das sich die Auswertung zum ASF verbinden kann (wird als Parameter beim ASF angegeben).

      long aStatus

      Statusnummer

       

      SScript Auswertungsstatus

      object oObjVar;

      oObjVar = object ("ClientDevice", "AuswerteClient");

      while (1)

      {

      if (oObjVar.iClientStatus != 0)

      {

      if (oObjVar.iClientStatus == 1)

      {

      // Reaktion 1

      }

      if (oObjVar.iClientStatus == 2)

      {

      // Reaktion 2

      }

      ...

      }

      delay (2000);

      }

    3. Das Auswertungs-Lebenssignal
    4. Das Auswertungs-Lebenssignal wird über die Puma4.7-Client Schnittstelle an den Puma geschickt. Die Auswertung setzt das ClientWatchDog-Attribut des ClientDevices im ASF auf den Wert 0. Das SScript Auswertungs-Lebenssignal pollt den Wert des Aliveattributs in einer Endlosschleife. Falls dieses den Wert 0 hat, setzt das Script das ClientWatchDog-Attribut wieder auf 1. Ist dert über eine definierbare Zeit 1 (die Auswertung hat das Attribut nicht zurückgesetzt), wird eine entsprechende Rekation ausgeführt. Das Setzen des ClientWatchDog-Attributs wird durch die Funktion ClientAlive in P47_API_Demo demonstriert.

      Parameter

      Beschreibung

      P7_ASF_Session *aSession

      Kennzeichnung des Ports, über das sich die Auswertung zum ASF verbinden kann (wird als Parameter beim ASF angegeben).

      SScript Auswertungs-Lebenssignal

      object oObjVar;

      oObjVar = object ("ClientDevice", "AuswerteClient");

      while (1)

      {

      if (oObjVar.iClientWatchDog == 1)

      {

      oObjVar.iClientWatchDog = 0;

      }

      else

      {

      delay (5000);

      if (oObjVar.iClientWatchDog == 1)

      {

      // Reaktion ausführen

      ...

      }

      }

      delay (1000);

      }

    5. Errorhandling
    6. Das Anzeigen von Fehlermeldungen wird über die Puma4.7-Client Schnittstelle durchgeführt. Die Auswertung setzt das ClientError-Attribut des ClientDevices im ASF. Das SScript Auswertungsfehler pollt den Wert des ClientError-Attributs in einer Endlosschleife. Falls dieser einen Errorcode (Wert ungleich 0) enthält, wird die entsprechende Reaktion ausgeführt. Das Setzen des ClientError-Attributs wird durch die Funktion SetError in P47_API_Demo demonstriert.

      Parameter

      Beschreibung

      P7_ASF_Session *aSession

      Kennzeichnung des Ports, über das sich die Auswertung zum ASF verbinden kann (wird als Parameter beim ASF angegeben).

      long aError

      Fehlernummer

       

      SScript Auswertungsfehler

      object oObjVar;

      oObjVar = object ("ClientDevice", "AuswerteClient");

      while (1)

      {

      if (oObjVar.iClientError != 0)

      {

      if (oObjVar.iClientError == 1)

      {

      // Reaktion 1

      }

      if (oObjVar.iClientError == 2)

      {

      // Reaktion 2

      }

      ...

      }

      delay (2000);

      }

    7. Synchronisation
    8. Das Synchronisieren von Puma und Auswertung wird über die Puma4.7-Client Schnittstelle durchgeführt. Die Auswertung setzt das ClientSync-Attribut des ClientDevices im ASF. Das SScript Auswertungssynchronistation überprüft den Wert des ClientSync-Attributs an bestimmten Synchronisationspunkten. Die Ausführung wird erst fortgesetzt, wenn das ClientSync-Attribut einen bestimmten Wert hat (wird von der Auswertung gesetzt). Das Setzen des ClientSync-Attributs wird durch die Funktion Synchronize in P47_API_Demo demonstriert.

      Parameter

      Beschreibung

      P7_ASF_Session *aSession

      Kennzeichnung des Ports, über das sich die Auswertung zum ASF verbinden kann (wird als Parameter beim ASF angegeben).

      long aSync

      Wert für Synchronisation

       

      SScript Auswertungssynchronisation

      object oObjVar;

      oObjVar = object ("ClientDevice", "AuswerteClient");

      // warte bis ClientSync-Attribut bestimmten Wert hat

      while (oObjVar.iClientSync != 1)

      delay (100);

      oObjVar.iClientSync = 0;

      ...

      // weitere Ausführung

    9. Warmlauf
    10. Die Kommunikation wird über Kommando-Dateien abgewickelt. Der Puma legt in %PUMA_HOME%\Asf\Communication Kommandodateien an. Die Auswertung pollt ständig dieses Verzeichnis. Falls eine Kommandodatei enthalten ist, wird die entsprechende Aktion mit den enthaltenen Parametern durch die Auswertung ausgeführt.

      1. Flußdiagramme
      2. Flußdiagramm Puma

        Nachdem die Messung in die Datenbank konvertiert wurde, löscht Puma das Verzeichnis für die Kommando-Dateien. Dann wird die neue Datei angelegt.

        Flußdiagramm Auswertung

         

      3. Format der Kommandodatei

Zeilen Nr.

Bezeichnung

Beschreibung

 

Kommando

Name des auszuführenden Kommandos

 

Messung des Warmlaufs

Die Messung des Warmlaufs wird im ASAM-Pfad Format übergeben.

     

 

Beispiel

Dateiname: Puma-Asuwertung.Cmdo

Warmlauf

Versuchsreihe 213/Versuch Styling xyz/24/Radstyling_xyz.SSA

    1. Sturzwinkeloptimierung
    2. Die Kommunikation wird über Kommandodateien abgewickelt. Puma legt in %PUMA_HOME%\Asf\Communication Kommandodateien an. Die Auswertung pollt ständig dieses Verzeichnis. Falls eine Kommandodatei enthalten ist, wird die entsprechende Aktion mit den enthaltenen Parametern durch die Auswertung ausgeführt.

      1. Flußdiagramme
      2. Flußdiagramm Puma

        Am Beginn der Optimierung wird das Cmd-Verzeichnis gelöscht. Nach der Messung eines Arbeitspunktes wird die neue Cmd-Datei angelegt. Falls bereits eine Cmd-Datei vorhanden ist, so wartet Puma, bis diese von der Auswertung gelöscht wird. Falls nach Ablauf einer bestimmten Zeit, die Cmd-Datei noch nicht gelöscht wurde, wird davon ausgegangen, daß die Auswertung nicht korrekt arbeitet. Daraufhin wird eine entsprechende Reaktion ausgeführt.

        Flußdiagramm Auswertung

        Nach dem Ausführen des Kommandos in der Cmd-Datei löscht die Auswertung die Cmd-Datei.

      3. Format der Kommandodatei

Zeilen Nr.

Bezeichnung

Beschreibung

 

Kommando

Name des auszuführenden Kommandos

 

Messung des Arbeitspunktes

Die Messung des Warmlaufs wird im ASAM-Pfad Format übergeben.

 

Referenzkennfeld

Name des Referenz-Dehnungskennfeldes

 

Arbeitspunktnummer

Fortlaufende Nummer des Arbeitspunktes, welcher abgearbeitet wird. Start bei 1.

 

Gewichtungsfaktor 1

Gewichtungsfaktor an Meßstelle 1

 

Gewichtungsfaktor 2

Gewichtungsfaktor an Meßstelle 2

 

Gewichtungsfaktor 3

Gewichtungsfaktor an Meßstelle 3

 

Toleranz

Toleranz zwischen den Summendehnungen

     

 

Beispiel

Dateiname: Puma-Auswertung.Cmdo

Sturzwinkeloptimierung

Versuchsreihe 324/Versuch xyz/345/Dehnmessung_23.RDM

DehnRef.DKF

23

0,7

0,8

0,9

0,23

  1. Fehler Handling
  2. Benutzerinterface
  3.  

  4. Testkonzept
  5.  

  6. Anmerkungen zur Implementation
  7.  

  8. Versionsprotokoll

Date/Version

Change Description

Author

19.03.99/ 0.1

Initial

M. Kloeckl

29.03.99/0.2

Einarbeitungen nach 1. Review

  • ASAM-Pfad
  • Synchronisation zw. Puma und Auswertung

M. Klöckl

 

  • Einführung des ClientDevice
  • Beschreibung Messagemechanismus
  • Beispiel-Applikation

M. Klöckl

01.04.99/0.3

  • Verweise auf P47_API_Demo
  • Kapitel Synchronisation
  • Kapitel Meldungstexte

M. Klöckl