US-Tauchtechnik-Applikation

 

 

Anlagenbild


Technische Dokumentation

Stand: 1.2 
 

Das Programm US-Tauchtechnik dient der Meßwertaufnahme und Auswertung von Ultraschall-Messungen (Fehlergröße). Dazu wird ein mit einem Ultraschallprüfkopf bestückter Arm eines Roboters (Van Dongen Prüfportal) über das Material geführt und die von einer im PC befindlichen Ultraschall-Messkarte (Socomate USPC-7100) aufgenommenen Werte (Reflexionsgröße und Echotiefe) einer Matrix zugeordnet und angezeigt. Ausserdem werden die A-Bilder der ermittelten Fehlerstellen mit angezeigt und abgelegt. Anschließend wird eine Auswertung (C-Bild) generiert und die Fehleranzahl, -größe etc. bestimmt. Diese Ergebniswerte werden dann dem PROSE-System zugeführt. In dem Messablauf können durch eine vorherige Bestimmung der Proben zweier Probenwagen mehrere Prüfstücke hintereinander abgearbeitet werden. Der Roboterarm dient sowohl dem Materialtransport als auch der Führung des Prüfkopfes. Es kann zwischen zwei Prüfköpfen gewählt werden.


Ausführung:

Die Prüf-Hardware besteht aus einem Standard-PC, der unter Windows-XP betrieben wird und einem Microcontroller-Board. Die Software ist bis auf die Messwert-Aufnahme (aus Geschwindigkeitsgründen) und die Microcontroller-Firmware komplett in der Skriptsprache TCL geschrieben. Die TCL-Version z.Zt. der Dokumentationserstellung ist 8.5.9.


Der Hardware-Aufbau gliedert sich wie folgt:
US-Tauchbecken-AufbauDer SESAM-PC gibt die Fahr-Befehle per Netzwerk an den VanDongen Steuerungs-PC, der die Befehle in der Lenze-Steuerung umsetzt und bekommt nach Erledigung eine Antwort zurück. Während der Fahrt der X- bzw. R-Achse werden die Impulse der Drehwinkelgeber per RS485 an den SESAM-µController übergeben, der daraus TTL-Impulse pro 1/10mm generiert und an die Socomate-Messkarte weitergibt. Pro TTL-Impuls wird ein (negativer) Messimpuls auf den entsprechend geschalteten Prüfkopf per Koax-Kabel gegeben und das zurückkommende Echo aufgenommen und ausgewertet. Für die Impuls-Umrechnung und die Prüfkopf-Umschaltung werden Kommandos an die SESAM-µC-Platine per USB-Schnittstelle gegeben. Der KVR-Switch wird per Taste unterhalb des Monitors bedient und schaltet die USB- und VGA-Signal der beiden PCs auf Tastatur/Maus und Monitor.

Das Microcontroller-Board trägt einen Microcontroller AVR ATmega88 der Firma Atmel®. Das Board beinhaltet zwei 10-polige Phoenix-Klemmleisten für die RS485-Anschlüsse der beiden Drehwinkelgeber, einen 26-poligen Flachbandstecker für den digitalen Anschluss an die Socomate-Messkarte, 3 BNC-Stecker zur Umschaltung zwischen zwei Prüfköpfen, einen 6-poligen USB-TTL-Anschluss zur Kopplung mit dem PC und eine 6-polige Stiftleiste zur Programmierung. Die Platine wird über den USB-Anschluss mit Strom versorgt.


Programmablauf:
 
Das Programm US-Tauchtechnik startet mit einer leeren Scanbild-Anzeige:

USTauch-leer

Zu sehen sind (von oben nach unten):

  • das Programm-Menü,
  • die Anzeige für die aktuellen Scan-Einstellungen (Auflösung, Größe, etc.),
  • die Werte unter dem Mauszeiger,
  • eine scrollbare, leere Anzeige (umschaltbar zwischen Echohöhe und Anzeigentiefe) mit
  • Skalendarstellung für die Werte unter dem Mauszeiger,
  • Bedienelemente
    • Zoom-Tasten (Standard-Auflösung, Vergrößerung und Verkleinerung)
    • Anzeige des aktuellen Auftrags mit Start-Knopf
    • Umschaltung zwischen Farb- und Graudarstellung der Fehlerwerte und
    • Einstellung der Hintergrundfarbe (helles, mittleres und dunkles Grau)
  • der Scan-Status, d.h. die aktuelle Roboterposition mit den aktuellen Analogwerten und der resultierenden Scan-Zelle

Ausserdem wird standardmässig eine A-Bild-Anzeige aufgeblendet, die das Echogramm (Echohöhe über die Laufzeit bzw. die Tiefe) anzeigt:

A-Scan-Anzeige
Das Fenster bleibt immer oben und verdeckt somit einen Teil des Hauptfensters, ist aber natürlich verschiebbar.

Zu Beginn ist der Probenwagen zu bestücken. Dazu kann die eigenständige Applikation Probenwagen.exe über das Menü Datei -> Probenwagen füllen aufgerufen werden (siehe Bestückung-Probenwagen).

Ist nun mindestens ein Probenwagen bestückt, kann dieser in die zu prüfende Prüflingsliste eingelesen werden. Zu dem Zweck ruft man mit dem Menüpunkt Scannen -> Prüfaufträge den Dialog zum Bearbeiten der Pruefauftragsliste auf. Es erscheint eine Erfassungsmaske für die Prüflinge:
 
Pruefauftragsliste
Hier muss neben der Prüflingserfassung auch noch der Prüfkopf angegeben werden. Mit der Auswahl des Prüfkopfes werden Blende, Verstärkung und Frequenz aus den Stammdaten übernommen (s. Prüfkopferfassung). Die Registriergrenze muß separat eingegeben werden. Alle zugefügten Prüflinge werden mit dem ausgewählten Prüfkopf geprüft. Das Hinzufügen geschieht am einfachsten über den Button Proben-Wagen laden. Es erscheint dann ein Auswahl-Fenster:

Probenwagen-Auswahl
Hier muss der Wagen ausgewählt werden und über den Button Wagen laden wird dann die Prüflingsliste, wie oben angezeigt, gefüllt. Für jede zu prüfende Seite wird ein eigener Eintrag erzeugt. Wie oben zu sehen ist, erscheint jede der Vierkant-Proben vierfach mit den Ziffern 1..4 an der zweiten Stelle im Index.
 
In der Prüflingsliste sind die auftragsrelevanten Daten und eine kurze Zusammenfassung der Prüfungsdaten zu sehen. Ein Doppelklick auf einen der angezeigten Prüflinge oder die Anwahl des Knopfes "Prüfling bearbeiten" blendet dessen Prüflingserfassungsfenster auf. Mit dem Knopf "Neuer Prüfling" wird ein leeres Erfassungsfenster aufgeblendet. Das Prüflingserfassungsfenster stellt sich wie folgt dar:  

Einstell-Dialog
Je nach Anwahl der Prüfart (Mäander oder Abwicklung) verändert sich das Aussehen des Dialoges und es erscheinen im Mittelteil die entsprechend relevanten Eingabefelder.
 
Mit der Taste "Einzelbefehl senden" können über einen Dialog einzelne Roboter-Kommandos abgesendet werden (siehe Roboter-Kommandos).
 

Wird in der Prüflingserfassung "Prüfling löschen" oder "alle Prüflinge löschen" angewählt, so wird nach einer Nachfrage entsprechendes ausgeführt:
 
Pruefling-loeschen   Prueflinge-loeschen

Nachdem alle Prüflinge gescannt wurden, kann über die Taste "KSR-Wert eingeben" der beim Einrichten abgelesene Kreisscheiben-Reflektor-Wert über eine Eingabe ermittelt werden:

Eingabe-KSR-Wert
Mit der Taste "Scan laden " kann ein bereits gescannter Prüfling wieder geladen werden. Die Scandaten erscheinen dann im Hauptfenster.  
 
Wurden alle Prüflinge erfaßt, so muß mit der Taste "Speichern" gespeichert werden. Ein "Abbrechen" führt zum Verlust der eingegebenen Daten. Wurde gespeichert, so wird der Dialog geschlossen und im Hauptfenster ist der Knopf "Start Scan" (und ebenfalls der Menüpunkt "Scannen->Start Scan") aktiv. Wird dieser nun betätigt, so beginnt das System mit der Prüfung und arbeitet in der in der Prüflingserfassung vorgegebenen Reihenfolge die einzelnen Prüfungen ab. Dabei kann im Hauptfenster online beobachtet werden, wo sich der Prüfkopf befindet und ob Fehler angezeigt werden. ACHTUNG: Es ist darauf zu achten, dass vor dem Start der Prüfung die Robotersteuerung auf "Automatik" steht! (Die grüne Kontroll-Lampe muss leuchten!)

Eine mögliche Online-Fehler-Anzeige sieht z.B. wie folgt aus:

Scanvorgang
Will man das Prüfgeschehen genauer analysieren, um z.B. die Roboter-Kommandos oder die USPC-7100er Kommunikation mit zu verfolgen, so kann man in dem Check-Button "Log" die Log-Ausgabe aktivieren (siehe Anhang-D (Scan-Log)).
 
Ist der Prüfvorgang beendet, erscheint ein Meldungsfenster mit einer Zusammenfassung der Ergebnisse der einzelnen Prüfungen:

Meldungen
Will man sich nun eine der Prüfungen anschauen, kann man das Meldungsfenster schliessen und erneut die Prüfauftragsliste aufblenden. Man wählt den entsprechenden Prüfling aus und betätigt den Button "Scan laden". Der entsprechende C-Scan wird im Hauptfenster angezeigt:

USTauch-Anzeige
Fahrt man mit dem Maus-Cursor an eine Fehlerstelle (wie im Bild auf x=55,5 und y=22.344 mm), so kann man auf den Amplituden- und Tiefen-Skalen die Werte der Fehlerstelle bequem ablesen.

Mit den Zoom-Tasten kann nun die Anzeige gesteuert werden:

  • btn-zoom Wahl der Standard-Anzeige, so daß die gesamte Graphik in das Fenster paßt
  • btn-zoom-in Wählt die doppelte Vergrößerungsstufe
  • btn-zoom-out Wählt die halbe Vergrößerungsstufe

Zusätzlich kann die Auswahl über ein Zoom-Rechteck, das mit der Maus aufgezogen werden muss, erfolgen. Dabei müssen mindestens 10x10 Scan-Pixel ausgewählt werden.
Will man sich die A-Scans von bereits geprüften Proben ansehen, so kann man bei geladenem C-Scan im A-Scan-Dialog die Lupen-Taste btn-lupe. Danach muss man in den C-Scan klicken, um das Fenster zu aktivieren. Fährt man nun über die Fehlerstellen (siehe Bild), so erscheint der dazugehörige A-Scan. Achtung: Teilweise scheinen A-Scans zu fehlen, wenn man über manche Stellen fährt, obwohl die Stelle farblich markiert ist. Das liegt aber daran, dass nur diejenigen A-Scans gespeichert werden, die überhaupt einen Amplituden-Wert über der Blende aufweisen. Zudem wird in X-Scan-Richtung mit 1/10mm Auflösung gescannt. D.h. es kann Punkte innerhalb eines Millimeters zwischen den vorhanden A-Scans geben, die kein A-Scan beinhalten. Bei einer Fehleranzeige sollte man die Maus in dem betroffenen (horizontalen) Millimeter-Raster-Punkt also etwas hin und her bewegen, um alle A-Scans anzuzeigen.

Fehlersuche mit A-Scan

Im "Scannen"-Menü befindet sich der Menüpunkt "Beschneiden" mit denen eine nachträgliche Bildmanipulation erfolgen kann:

Menüpunkt "Beschneiden":

Scan-Beschnitt

Die Beschnittfunktion ermöglicht das Entfernen von Randbereichen des Scan-Bildes unter Angabe der Beschnitt-Breite (in mm) der zu trimmenden Seite(n). Wird im Scan-Bereich des Hauptfensters die rechte Maustaste gedrückt, so erscheint ein Kontextmenü, in dem man mit dem Menüpunkt "X/Y-Position merken" den angewählten Punkt temporär speichert. Die gemerkten Punkt-Koordinaten können hier wieder eingesetzt werden. Dazu kann man einen der Knöpfe "links-oben", "rechts-oben", "rechts-unten" oder "links-unten" auswählen. Die Koordinaten erscheinen in den entsprechenden Feldern. Soll nur der X- bzw. Y-Wert verwendet werden, kann der andere Wert natürlich manuell auf Null gesetzt werden. Nach Anwahl des Knopfes "Schneiden F4" wird die Beschnittfunktion ausgeführt.

Über das Menü "Einstellungen" können die folgenden Stammdaten modifiziert werden:

Menüpunkt "Prüfköpfe erfassen":
Pruefkopf-ErfassungDie Werte (Name des Prüfkopfes, Blende, Verstärkung, Frequenz, Durchmesser, Winkel und der Prüfkopfplatz 1 oder 2) können einfach in die Tabelle eingegeben werden. Zur Auswahl der USPC-Einstelldatei muss der Button "Einstelldatei" betätigt werden. Nach Angabe des Durchmessers wird der Winkel aus der Frequenz automatisch berechnet (Korrektur ist möglich).

Spaltenname Einheit Erklärung
Prüfkopf   Eindeutiger Name des Prüfkopfes
Blende von mm Blenden-Startwert
Blende bis mm Blenden-Endwert
Verstärkung dB Verstärkungseinstellung
Frequenz MHz Meßfrequenz
Durchmesser mm Durchmesser des US-Schwingers
Winkel Grad Streuwinkel (bei 10dB-Abfall)
Platz Nr Prüfkopfplatz (1 = links, 2 = Mitte)
Einstelldatei   Name der USPC-Einstelldatei

 

Soll ein neuer Prüfkopf angelegt werden, so ist mit der Taste "Neu" eine neue Zeile einzufügen und dann auszufüllen. Mit der Taste "Speichern" werden die Prüfköpfe in der Datei "pruefkoepfe.ini" gesichert.
 
Menüpunkt "Farbwerte bearbeiten":
Farbwerte-erfassen
Die Liste der Farbwerte kann durch Eingabe der korrespondierenden Prozentzahl (% BSH vom Ultraschallgerät) und anklicken der gewünschten Farbe ausgewählt werden. Alternativ kann auch in der Spalte Farbwert ein Farb-Name eingegeben werden (leider nur in englischer Sprache). Soll ein neuer Prozentwert zugeordnet werden, so kann mit der Taste "Neu" eine neue Zeile erzeugt und danach ausgefüllt werden. Mit der Taste "Speichern" werden alle Farbwerte in der Datei "colors.ini" gesichert. Soll eine Palette unter einem anderen Namen gespeichert werden, um sie später wiederzuverwenden, kann man dies mit der Taste "Speichern unter" tun. Der neue Dateiname wird dann abgefragt. Mit dem "Laden"-Knopf kann man dann diese Datei wieder einlesen, um sie danach mit dem "Speichern"-Knopf zu aktivieren.
 
Menüpunkt "Prüfklassen setzen":
Pruefklassen
Mit der Prüfklassen-Erfassung werden die Klassen für die Auswertung spezifiziert. Dabei können bis zu zehn verschiedene Klassen angegeben werden. Eingegeben werden muß der Wert «Prozent Bildschirmhöhe» (BSH bezogen auf den aktuellen Blendenbereich). Alle Werte über diesem Prozentwert fallen dann in diese Klasse. Die Klasse, für die ein C-Bild generiert werden soll, muß in der Spalte "Standardklasse für Auswertungen" angewählt werden. Die erfassten Werte werden in der Datei "klassen.ini" gespeichert.
 
Menüpunkt "Roboter-Kommando senden":
Hier wird der bereits beschriebene Roboter-Kommando-Dialog aufgerufen, in dem man Einzelpositionierungen an den Roboter senden kann.
Mit dem Menüpunkt  "Scannen -> C-Bild" kann von den aktuell geladenen Scan-Daten das C-Bild (Fehler-Klassifizierung an Hand der maximalen Fehlerlänge in einem zusammenhängenden Bereich) angezeigt werden, das z.B. so aussehen kann:

C-Bild
Es werden die Fehlergrößen und die dazu passenden Fehlertiefen angezeigt.
 
Mit dem Menüpunkt "Scannen -> Auswertung" kann nachträglich nochmals eine Druckausgabe (als PDF-Datei) generiert werden, wie sie beim automatischen Ablauf selbsttätig generiert und im PROSE-Archiv-System abgelegt wird. Hier sind neben den Auftrags- und Prüfdaten auch das o.g. C-Bild mit Fehlerflächen-Zusammenfassung enthalten:

Auswertung
Mit dem Menüpunkt "Datei -> Öffnen" können auch ältere Scans wieder geladen und ausgewertet werden. Zudem kann man sich die Scandatei unter einem neuen Namen separat abspeichern ("Datei -> Speichern").


Roboter-Kommandos:

Mit dem Menüpunkt "Roboter-Kommando senden"können alle Steuerbefehle per Hand an das Van Dongen-Prüfportal einzeln abgesendet werden. Folgende Auswahl erscheint:

Roboter-Kommandos
Will man per Hand Material in den Prüfplatz bewegen, so ist zuerst die Wagenbelegung zu löschen (W 0), um dann die in der Prüfauftragsliste vorhandene Belegung zu setzen (W 1). Damit weiss der VanDongen-Steuerungsrechner nun, welches Material sich auf den Wagen befindet (s. VanDongen-Bildschirm). Nun kann der Materialtransport (M 1) vom Wagen ins Becken stattfinden. Dazu ist natürlich die richtige Position auf dem Wagen anzugeben. Z.B. ist 11 die Position links hinten und 15 die Position links vorne auf dem ersten Probenwagen (s. Bestückung Probenwagen).
Achtung: Vor Eingabe eines Roboter-Kommandos sollte man immer abwarten, bis das vorherige Kommando eine Rückmeldung erzeugt hat (bei den meisten Kommandos OK oder bei Fehlern ERROR).

VanDongen-Bildschirm

Mit dem hellen Umschaltknopf unter dem Bildschirm kann man Tastatur, Maus und Monitor auf den VanDongen Steuerungs-PC umschalten. Hier ist die aktuelle Wagenbelegung und die Bewegungswerte (Position und Geschwindigkeit) zu sehen:
VanDongen-Bildschirm
Weite Erläuterungen sind der VanDongen-Dokumentation (siehe Anhang-F) zu entnehmen.


Bestückung Probenwagen:

Die datentechnische Bestückung der Probenwagen kann entweder über den Aufruf des Programms Probenwagen.exe oder im Menü "Datei -> Probenwagen füllen" aufgerufen werden. Die Bestückung ist unabhängig von der laufenden US-Applikation, da die dem Probenwagen zugeordneten Proben nur im Prüfauftrags-Dialog in die Prüflingsliste einkopiert werden.
 
Jeder der beiden Probenwagen kann bis zu sechs Rund-, Flach- oder Vierkant-Proben aufnehmen. Die Positionen sind folgendem Bild zu entnehmen:

Probenwagen
Der Aufruf des Menüpunktes "Datei->Probenwagen füllen"liefert einen Dialog, in dem man nun die einzelnen Positionen des Probenwagens bestücken kann:

ProbenwagenDialog
Sind bereits Proben bestückt (wie im Bild zu sehen ist), kann man durch Anklicken einer Probe deren Daten aufblenden.
 
Zuerst sollte die korrekte Wagen-Nummer ausgewäht werden, da sich ja die nun folgende Bestückung auf diesen Wagen bezieht.
 
Standardmäßig wird in das Feld Ident+Pos. die PROSE-Ident plus -Positionsnummer (4-stellig) eingegeben bzw. mit einem Barcode-Leser eingescannt. Danach erscheint ein Auswahldialog:

Proben-Auswahl-Dialog
Man kann nun eine einzelne Probe auswählen oder automatisch "Alle Proben verteilen". Bei Auswahl einer bestimmten Probe bzw. aller Proben muss deren Größe angeben werden:

Probe-platzieren-DialogAlle-Proben-platzieren-DialogRundprobe-platzieren


Wird nur eine einzelne Probe platziert, muss natürlich der Platz (1..6) ausgewählt werden. Bei Rundproben (3. Bild) kan man zusätzlich die Option "Mit Schrägeinschallung" anwählen. Dabei wird dann später in der Prüflingsliste ein zweiter Eintrag für die Schrägeinschallung generiert (analog zu den vier zu prüfenden Seiten einer Vierkantprobe).


Dateiaufbau:
 
Das Dateisystem gliedert sich wie folgt:

Pfad enthaltene Dateien Bedeutung
D:\SESAM\us-ttwit1 US-Tauchtechnik.exe US-Tauchtechnik-Applikation
  app Applikationsverzeichnis
D:\SESAM\us-ttwit1\app US-Tauchtechnik.tcl Start-Skript mit Übergabe diverser Initial-Parameter
  ustauch.tcl Programm-Skript
  ustauch.ini enthält die Schrift- und Farbeinstellungen für das Programm
  wagen.ini enthält die Wagen-Belegung
  auftraege.ini enthält die eingegebene Prüflingsliste (s.o.)
  colors.ini enthält die eingegebenen Farbwerte (s.o.)
  klassen.ini enthält die eingegebenen Prüfklassen (s.o.)
  param.ini enthält die aktuell eingestellten Prüfparameter (s.o.)
  pruefkoepfe.ini enthält die eingegebenen Prüfköpfe (s.o.)
  *.us Socomate USPC-7100 Einstelldateien
(für die einzelnen Prüfköpfe kalibriert)
  data Ergebnisdaten-Verzeichnis
  pdfs Auswertedaten-Verzeichnis
  scans Rohdaten-Verzeichnis
D:\SESAM\us-ttwit1\app\bin *.exe Hilfs-Programme
D:\SESAM\us-ttwit1\app\lib *.tcl alle Library-Module, die die Applikation benötigt
D:\SESAM\us-ttwit1\app\data *.data Ergebnisdaten-Verzeichnis
D:\SESAM\us-ttwit1\app\pdfs *.pdf Auswertedaten-Verzeichnis
D:\SESAM\us-ttwit1\app\scans *.scan, *.ascan Verzeichnis für C- und A-Scans
\\prose\labordaten\ustbw1 *.data, *.pdf, *.scan, *.ascan nach PROSE exportierte Roh-, Auswerte- und Ergebnisdaten
(über Samba von PROSE gemountetes Verzeichnis)

 

Die Dateinamen der Roh-, Auswerte- und Ergebnisdaten haben alle den gleichen Aufbau:

ustb-<Ident>-<Identpos.>-<Prüflingsnr.>.<Anhang>

z.B.:

ustb-629818-9-63.data
ustb-629818-9-63.pdf
ustb-629818-9-63.scan
ustb-629818-9-63.ascan

Die Prüflingsnummer ist die zweistellige Nummer, die auch für den Probenwagen verwendet wird. Die erste Ziffer kennzeichnet die Position auf dem Wagen und die zweite Ziffer die Seite des Prüflings. Bei Rundmaterial wird eine Null angehängt, also 60 für Position 6. Findet eine Schrägeinschallung statt, so wird eine 9 angehängt, also 69 für Position 6.
 
Innerhalb der Verzeichnisse data, scans und pdfs werden für Dateien, die älter als 30 Tage sind, automatisch Unterverzeichnisse im Format JJJJ-MM, also z.B. "2012-02" für Februar 2012 angelegt und die entsprechenden Dateien dorthin verschoben. Diese Verfahren begrenzt die Anzahl der Dateien in einem Verzeichnis erheblich.

Aufbau der Ergebnisdaten:
 
Die Ergebnisdaten dienen dem Import der Ergebniswerte in die PROSE-Datenbank. Es wird eine Datei pro Prüfling geschrieben. Die Datei besteht aus zeilenorientiertem ASCII-Text (ISO-8859-1 Kodierung). Jede Zeile enthält einen Token und Daten. Enthalten die Daten Leerzeichen, so sind sie in geschweifte Klammern gesetzt (TCL-Syntax). Z.B.:

ident 629818
ident_pos 9
sessionid 1096630938
stueckid 24
pruefkopf 3-1504R
blendevon 3.0
blendebis 15
verstaerkung 67
frequenz 15
registriergrenze 0.2
pruefmethode Maeander-yx
scanaufloesung 1
startpos_x 446.75
startpos_y 263.40
startpos_z -70.00
startpos_u 0.00
endpos_x 540.47
endpos_y 366.98
endpos_z -70.00
endpos_u {}
durchmesser 49.5
fahrabstand {}
klasse 5
scanflaeche 9707.51760000001
scanvolumen 0.1164902112
ksrwert {}
kl1schwelle 80
kl1fehleranzahl 0
kl1sumfehlerlng 0
kl1mtlfehlerlng 0
kl1fehlerprovol 0.0
kl1lngprovol 0.0
kl2schwelle 65
kl2fehleranzahl 0
kl2sumfehlerlng 0
kl2mtlfehlerlng 0
kl2fehlerprovol 0.0
kl2lngprovol 0.0
kl3schwelle 50
kl3fehleranzahl 0
kl3sumfehlerlng 0
kl3mtlfehlerlng 0
kl3fehlerprovol 0.0
kl3lngprovol 0.0
kl4schwelle 30
kl4fehleranzahl 0
kl4sumfehlerlng 0
kl4mtlfehlerlng 0
kl4fehlerprovol 0.0
kl4lngprovol 0.0
kl5schwelle 17
kl5fehleranzahl 1
kl5sumfehlerlng 3
kl5mtlfehlerlng 3.0
kl5fehlerprovol 8.58441228407696
kl5lngprovol 25.7532368522309
kl5fehler1 {25 23 3 23 25 25 25 30.5 3 74.6 74.2}

Die Namen der Token entsprechen den Datenbanknamen.
 
Aufbau der Rohdaten (C-Scans):
 
Die Scans beinhalten die Rohdaten eines Prüfablaufes. Sie enthalten einen 6-zeiligen Header gefolgt von den gzip-komprimierten Daten (2 * X/Y-Byte-Array). Der Header ist wie folgt aufgebaut:

Beispiel-Inhalt Bedeutung
ustbshm 1.0 Typ und Versions-Kennung
size=100,104 Array-Größe (Weite,Höhe)
scan=1,100,103.58,445,263.4,545,366.98,2 Scan-Auflösung, -Weite, -Höhe,  X-Start, Y-Start, X-Ende, Y-Ende, Scan-Art
params=winkeloffset {}  verstaerkung 67  charge_nr 490040
 gummielasti 0.2  rollendurchmesser 75.0  pruefart maeander
 pruefkopf 3-1504R  start,x 445  frquenz 15  start,y 263.40
 ident 629818  blende_von 3.0  maeanderart yx  start,z -70.00
 ident_pos 9  ende,u {}  fahrabstand {}  gummidicke 2.825
 ksr 0.2  ende,x 545  auftrag_nr 002-004109-01  ende,y 366.98
 fertlog_nr 95967  ende,z -70.00  werkstoff 3537  nullpos 0
 durchmesser 49.5  pr_fremd 33  kunde {FAG Kugelfischer AG}
 blende_bis 15  scanres 1  start,u 0.00
Parameter-Array als Name/Wert-Paare (s. Datei param.ini)
info={3-1504R 3.0 15 67 15 0.2} {629818 9 33 002-004109-01
 95967 490040 3537 {FAG Kugelfischer AG}}
{1096880964 1096881225}
Info-Liste bestehend aus Prüfkopf-Info, Auftragsdaten und Scanzeit (Start+Stop)
data: (gzip compressed) Informatios-Text (hinter dem Newline beginnen die Daten)

 

Aufbau der A-Scans:

Die A-Scan-Datei hat folgenden Header:
    #pragma pack(1)
    typedef struct {
      char file_identity[16];    // "ustb_ascan 1.0\0"
      ULONG ascan_size;          // = sizeof(ascan_file_header_t)
      BYTE threshold;            // Gate-1 Level [%]
      double scan_res;           // X-Scan-Resolution [mm]
      double scan_step;          // Y-Step-Size [mm]
      double gate1_position;     // Gate-1 Position [mm]
      double gate1_width;        // Gate-1 Width [mm]
      double gate2_position;     // Gate-2 Position [mm]
      double gate2_width;        // Gate-2 Width [mm]
    } ascan_file_header_t;
 
Danach folgen A-Scan-Records:
    #define FILE_MAX_POINTS 512  // max. 512 A-Scan Points

    typedef struct {
      short  recordsize;         // sizeof(ascan_file_buffer_t) -1 + (compressed data size)
      double x_pos;              // relative X-Position [mm]
      double y_pos;              // relative Y-Position [mm]
      double time_per_point;     // Time per A-Scan-Pixel [ns]
      ULONG  col_idx;            // X-Index
      ULONG  row_idx;            // Y-Index
      BYTE   amplitude1;         // Max. Amplitude Gate 1
      BYTE   amplitude2;         // Max. Amplitude Gate 2
      double depth1;             // Depth of Amplitude 1 [mm]
      double depth2;             // Depth of Amplitude 2 [mm]
      BYTE   ascan[];            // Compressed A-Scan Data
    } ascan_file_buffer_t;
 
Die Daten werden on-the-fly auf dem PC beim Scannen mitgeschrieben. Die A-Scan-Daten (ascan_file_buffer_t.ascan) werden mittels ZLib-compress (siehe http://zlib.net/) komprimiert. Über das Feld recordsize, das die Anzahl Bytes der Struktur ascan_file_buffer_t inklusiv der komprimierten Daten enthält, kann man zur Bildung eines Indexes von A-Scan zu A-Scan über die Daten springen, ohne die A-Scans wirklich einlesen zu müssen.