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
*In diesem Design Dokument wird die Schnittstelle zwischen Puma und der Auswertung definiert.
ASAM-Datenpfad
Standardisiertes Format zur eindeutigen Beschreibung der Position von Objekten in der Datenbank.
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 |
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 |
Puma-Client Schnittstelle
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.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-AuswertungExtension:
.CmdoSollten 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 |
Spezifisches Design Start/Stop Auswertung Start Auswertung
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_AuswertungsAttribute = "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.Beendet wird die Auswertung über eine Kommandodatei. Diese Datei hat lediglich den Eintrag
End.Beispiel:
Dateiname:
Puma-Auswertung.CmdoEnd
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
|
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
Auswertungsstatusobject 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);
}
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);
}
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
Auswertungsfehlerobject 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);
}
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
Auswertungssynchronisationobject oObjVar;
oObjVar = object ("ClientDevice", "AuswerteClient");
// warte bis ClientSync-Attribut bestimmten Wert hat
while (oObjVar.iClientSync != 1)
delay (100);
oObjVar.iClientSync = 0;
...
// weitere Ausführung
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. FlußdiagrammeFluß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
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.CmdoWarmlauf
Versuchsreihe 213/Versuch Styling xyz/24/Radstyling_xyz.SSA
SturzwinkeloptimierungDie 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. FlußdiagrammeFluß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.
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.CmdoSturzwinkeloptimierung
Versuchsreihe 324/Versuch xyz/345/Dehnmessung_23.RDM
DehnRef.DKF
23
0,7
0,8
0,9
0,23
Fehler Handling
Date/Version |
Change Description |
Author |
19.03.99/ 0.1 |
Initial |
M. Kloeckl |
29.03.99/0.2 |
Einarbeitungen nach 1. Review
|
M. Klöckl |
|
M. Klöckl |
|
01.04.99/0.3 |
|
M. Klöckl |