-
Die
vorliegende Erfindung betrifft ein Laser-Strichcode-(Barcode-) Lesersystem
zum Lesen eines Strichcodes (Barcodes) auf einem Brennstoffstab
eines Siedewasser-Kernreaktors und insbesondere ein Laser-Strichcodelesersystem
und -verfahren, das eine schnelle und genaue Leistungsfähigkeit des
Lesers ermöglicht.
-
In
einem Laser-Strichcodemarkierungsprozess ruft der Laser im Allgemeinen
auf der Oberfläche
des Stabs eine beträchtliche
Metallverformung hervor, die, wenn der Stab Reaktorumgebungen ausgesetzt
ist, zu einem inakzeptablen Abbau des Brennstoffstabs führt. Es
ist möglich,
die Dunkelheit des Strichcodes zu reduzieren, um eine derartige
beträchtliche
Metallverformung zu vermeiden, wobei jedoch eine derartige Reduktion
gewöhnlich
Fehllesungen und ausbleibende Lesungen des Strichcodes zur Folge
hat. Darüber
hinaus unterstützen
Lesersysteme, die in bisherigen Vorrichtungen eingesetzt wurden,
keine schnelle, genaue Lesefähigkeit,
die für eine
Verwendung mit einem kontrastarmen oder hellen Strichcode erforderlich
ist.
-
Die
Möglichkeit,
eine helle Markierung nutzbar zu machen und zu verwenden, hängt von
einem Lesersystem ab, das auf eine schnelle und zuverlässige Weise
die helle Markierung mit höchster
Genauigkeit lesen kann. Konventionelle Systeme erfordern eine sehr
dunkle Markierung, die eine Verschlechterung oder einen Abbau des
Brennstoffstabs ergibt. Außerdem
verwenden herkömmliche
Systeme keine Prüfsumme,
um die Genauigkeit des Strichcodelesers zu verbessern.
-
US-A-5
514 858 beschreibt ein Verfahren und eine Vorrichtung zum Lesen
von Standardstrichcodes, während
US-A-5 524 068 ein System beschreibt, das dazu dient, auf statistische
oder dynamische Weise in zweidimensionalen Grauwertbildern Strichcodesymbole
aufzufinden.
-
Somit
besteht ein Bedarf, einen Laser-Strichcodeleser zu schaffen, der
eine helle Markierung mit höchster
Genauigkeit schnell und zuverlässig
lesen kann.
-
Es
ist eine Aufgabe der Erfindung, ein Laser-Strichcodelesersystem
und ein Verfahren zum Lesen eines Strichcodes auf einem Brennstoffstab
eines Siedewasser-Kernreaktors zu schaffen, das die Probleme der
herkömmlichen
Systeme überwindet. Eine
weitere Aufgabe der Erfindung ist es, einen Strichcode bereitzustellen,
der eine Prüfsumme
enthält,
um die Genauigkeit des Lesersystems zu verbessern. Es ist eine noch
weitere Aufgabe der Erfindung, ein Lesersystem zu schaffen, das
in der Lage ist, eine hellere, kontrastärmere Markierung genau und
zuverlässig
zu lesen.
-
Gemäß einem
ersten Aspekt der Erfindung ist ein Verfahren zum Lesen eines Strichcodes
auf einem Brennstoffstab für
einen Siedewasser-Kernreaktor gemäß Anspruch 1 geschaffen.
-
Falls
das Muster nicht mit einem binären Muster übereinstimmt,
das einem Anfangszeichen entspricht, kann das Verfahren ferner umfassen, dass
die Schwellenwerte wiederholt angepasst werden und die Schritte
(d) und (e) wiederholt werden, bis das Muster mit dem binären Muster übereinstimmt,
das dem Anfangszeichen entspricht.
-
Falls
die Schwellenwerte in dem Schwellenwert-Ein stellschritt auf einen
Wert eingestellt werden, der einer Differenz zwischen dem maximalen
und minimalen Spitzenwerten entspricht, kann das Verfahren eine
Rückgabe
einer Lesefehler-Zeichenkette aufweisen.
-
Eine
Lesefehler-Zeichenkette kann zurückgegeben
werden, falls der Schwellenwert in dem Schwellenwert-Einstellschritt
auf einen Wert eingestellt wird, der einer Differenz zwischen dem
maximalen und minimalen Spitzenwert entspricht. Falls das Muster
mit dem binären
Muster übereinstimmt,
das dem Anfangszeichen entspricht, können die Schritte (d) und (e)
wiederholt werden, bis das Muster mit einem zweiten binären Muster übereinstimmt,
das einem Endzeichen entspricht. Darüber hinaus kann eine Lesefehler-Zeichenkette zurückgegeben
werden, falls ein beliebiges der Muster nicht decodiert wird oder
falls ein Ende des Signals erreicht worden ist. In ähnlicher
Weise kann eine Lesefehler-Zeichenkette zurückgegeben werden, falls ein
Ende des Signals erreicht worden ist, ohne dass das Endzeichen decodiert
worden ist. Das Verfahren kann ferner enthalten, dass die Schritte
(d) und (e) wiederholt werden, bis eine Zeichenkette mit mehreren
Zeichen decodiert und die Zeichenkette validiert ist. Zu dem Validierungsschritt
kann gehören,
dass eine erste Prüfsumme
entsprechend einer bezeichneten Anzahl von Zeichen berechnet und
die erste Prüfsumme
mit einer zweiten Prüfsumme
verglichen wird, die an der Zeichenkette angehängt ist. Das Abtasten kann
umfassen, dass ein interessierender Bereich (AOI, Area of Interest)
bestimmt und aus dem AOI ein einziger Prüfbereich ausgewählt wird.
Schließlich
kann das Verfahren ferner enthalten, dass ein Rauschpegel des Signals
reduziert wird.
-
Gemäß einem
zweiten Aspekt der Erfindung ist ein Strichcodeleser zum Lesen von
Strichcodes auf einem Brenn stoffstab eines Siedewasser-Kernreaktors
gemäß Anspruch
11 geschaffen.
-
Diese
und weitere Aspekte und Vorteile der vorliegenden Erfindung erschließen sich
aus der folgenden detaillierten Beschreibung bevorzugter Ausführungsformen
in Verbindung mit den beigefügten Zeichnungen,
in denen zeigen:
-
1 ein
Blockschaltbild des Lesersystems gemäß der vorliegenden Erfindung;
und
-
2 ein
Flussdiagramm unter Veranschaulichung des Prozesses, das durch die
CPU des Lesersystems gemäß der Erfindung
durchgeführt
wird.
-
1 zeigt
ein Blockschaltbild des Lesersystems 20 gemäß der vorliegenden
Erfindung. Das Lesersystem 20 enthält einen Universalcomputer, der
mit einem RS-232 Ausgang ausgestattet ist, der mit einer hoch auflösenden Videokamera 22 in
Datenverbindung steht. Der Universalrechner oder -computer enthält eine
CPU 24, die die Bilder von der Kamera 22 über einen
bekannten Video-Frame-Grabber (Bildabtaster) 26 empfängt. Ein
bevorzugter Frame-Grabber ist der Scorpion-Echtzeit-VGA-Frame-Grabber,
wie er von Univision Technologies, Inc. aus Burlington, Massachusetts
erhältlich
ist. Der Computer enthält
ferner ein RAM 28 sowie ein ROM 30, das eine Videobildverarbeitungssoftware
enthält.
-
Die
Einheit bleibt ortsfest, während
ein Brennstoffstab oder -rohr horizontal in das Sichtfeld der TV-Kamera
eingeführt
wird, in dem ein Bild gescannt und analysiert wird, um den Strichcode
(Barcode) zu decodieren. Die verwendete Kamera ist vorzugsweise
eine standardgemäße Video-TV-Kamera mit einem
RS-170 Ausgang. Das Bild wird zur Scharfstellung und Darstellung
des Prozesses auf einem Videomonitor angezeigt. Das Bild wird decodiert
und auf dem Monitor angezeigt sowie zu dem Computerport RS-232 gesandt,
um zu weiteren Systemen übermittelt
zu werden. Jeder gewöhnliche
Fachmann wird alternative Strukturen zum Lesen der Strichcodes von
den Brennstoffstäben
in Erwägung
ziehen, so dass die Erfindung nicht auf das System beschränkt sein
soll, das hier veranschaulicht und beschrieben ist.
-
Das
System kann in zwei unterschiedlichen Detektionsmodi betrieben werden.
In dem manuell ausgelösten
Modus wird ein Signal entweder von einer Tastatur oder von dem RS-232
Port übermittelt, um
ein Bild zur Verarbeitung einzufrieren und zu akquirieren. Dieser
Modus kann verwendet werden, wenn es bekannt ist, wann sich der
Strichcode in dem TV-Sichtfeld zur Verarbeitung befindet. Falls
das System es nicht schafft, einen Strichcode in diesem Modus zu
lesen, gibt es eine Lesefehler-Meldung zu dem Monitor und dem RS-232
Port zurück.
In dem automatischen Modus scannt der Computer kontinuierlich das
aktuelle Bild ab und berichtet, wenn ein neuer Strichcode aufgefunden
wurde. Jedes Mal, wenn ein unterschiedlicher Strichcode aufgefunden wurde,
wird dieser zu dem Monitor und dem RS-232-Port gesandt. Sämtliche
doppelte Auffindungen eines Strichcodes werden ignoriert. Dieser
Modus wird verwendet, um einen durch einen Prozess bewegten Stab
kontinuierlich zu überwachen
und jedes Auftreten jedes einzelnen detektierten Strichcodes zu
melden.
-
Der
Strichcode ist vorzugsweise mit einer Prüfsumme versehen, die dazu dient,
die Lesegenauigkeit innerhalb des Vorgangs des Lesens selbst zu
validieren. Die Prüfsumme
wird ermittelt, indem zunächst
die Gesamtsumme der ersten sechs Zeichen des Strichcodes jeweils
multipliziert mit einem von seiner Position in dem Strichcode abhängigen Wert
bestimmt wird. Dieses Produkt wird bis auf die letzten beiden Zeichen
gekürzt,
wobei Strichcodezeichen, die diesen Wert kennzeichnen, an den Strichcode
angehängt
werden. Während
des Leseprozesses liest das Lesersystem den Strichcode und führt denselben
Algorithmus durch. Der Leser liest anschließend die beiden Endzeichen
und ermittelt, ob die Prüfsumme
mit dem richtigen Produkt übereinstimmt.
Falls die Endzeichen nicht mit dem übereinstimmen, was der Algorithmus
berechnet, wird der Lesevorgang verworfen, und es werden keine Daten übergeben.
Wenn die Prüfsumme
getroffen wird, wird das Lesen akzeptiert. Der in diesem Prozess
verwendete Strichcode ist vorzugsweise durch eine 3-aus-9-Konfiguration
gebildet, die Zeichen verwendet, die in dem Basissatz mit 34 Strichcodezeichen, 0–9 sowie
a–z, vorkommen.
Eine Auswahl von Zeichen, wie beispielsweise *, i, o, „Leerzeichen" etc. wurde aus dem
Markierungssatz entfernt, um die Zuverlässigkeit der Systeme, das bei
der Fertigung den Strichcode verwenden, zu verbessern und um mit den
Strichcodes verbundene Fehler auf ein Minimum zu reduzieren.
-
2 veranschaulicht
ein Flussdiagramm mit den Operationen, die durch die CPU in dem
Leseprozess gemäß der vorliegenden
Erfindung durchgeführt
werden. In Schritt S101 wird das Videobild von der Videokamera gewonnen
und durch den Frame-Grabber des Computers in ein Grauwertbild mit einer
Breite von acht Bit digitalisiert, das aus 480 Zeilen mit 640 Pixeln/Zeile
besteht. Innerhalb des Rasters wird ein interessierender Bereich
(AOI, Area of Interest) zur Verarbeitung bestimmt (Schritt S102). Dies
wird unter Verwendung einer von zwei Methoden erreicht. Der Computer
kann durch Abscannen nach der Stabstelle suchen, oder es kann ein
vorbestimmter Bereich des Rasters verwendet werden. Wenn abgetastet
wird, um den Stab zu finden, wird von der Mitte des Rasters eine
vertikale Pixellinie erhalten. Die Linie wird von beiden Enden aus
abgetastet, bis in jeder Richtung ein vorbestimmter Schwellenwert
erreicht worden ist. Die beiden Punkte auf der Linie, die den Schwellenwert übersteigen,
repräsentieren
die Stelle des oberen und unteren Endes des Stabs. Falls der Schwellenwert
nicht erreicht wird, wird ein Stellungsfehler zurückgegeben.
Der Computer erkennt den Schwellenwert auf Grund der Kontraständerung
in dem Bild des Brennstoffstabs.
-
Wenn
der AOI festgestellt worden ist, wird von dem AOI in Schritt S103
ein einziger Prüfbereich ausgewählt. Dies
wird dadurch bewerkstelligt, dass mehrere horizontale Pixelzeilen
von dem Anfang des AOI, vorzugsweise drei Pixelzeilen, akquiriert
und die Pixelzeilen gemeinsam gemittelt werden, um eine repräsentative
Abtastlinie für
den AOI zu erhalten. Dieses Pixelfeld wird aufgezeichnet und den
Decodierfunktionen zur Bestimmung des Strichcodes übergeben.
-
In
Schritt S104 bestimmt die CPU, ob ein eindeutiger Prüfbereich
gefunden worden ist, d.h. einer, der den Strichcode enthält, und
falls dies nicht der Fall ist, schreitet die CPU zu Schritt 105
fort, wobei sie eine Lesefehler-Zeichenkette über den RS-232 Port zurückgibt und
das Display aktualisiert. Falls ein eindeutiger Prüfbereich,
der den Strichcode enthält, lokalisiert
worden ist („ja" in Schritt S104),
wird der Rauschpegel des Signals in Schritt S106 reduziert. Dies
wird erreicht, indem ein beweglicher Mittelwert an dem Pixelfeld
gebildet wird. Die Anzahl der Pixel, über die gemittelt wird, ist
von der Strichcode-Bildgröße unmittelbar
abhängig.
Bei der Bildgröße für den Brennstoffstab
und der Kameraauflösung
gemäß einer
bevorzugten Anordnung beträgt
dieser Wert gewöhnlich zwei
oder drei, abhängig
von dem Zoomfaktor des Bildes. Wenn der Rauschpegel reduziert ist, wird
das Pixelfeld nach allen positiven und negativen Spitzenwerten durchsucht,
wobei ihre Positionen in einem gesonderten Feld aufgezeichnet werden (Schritt
S107). Jeder Spitzenwert kennzeichnet entweder einen weißen Strich
(positiver Spitzenwert) oder einen schwarzen Strich (negativer Spitzenwert). Die
vordere Kante des Strichcodes wird ermittelt, indem durch das Spitzenwertfeld
gescannt und nach der ersten großen Änderung der Intensität von hell
zu dunkel gesucht wird. Es wird angenommen, dass dies der erste
schwarze Strich zu Beginn des Strichcodes ist, obwohl sonstige Markierungen,
die dem Strichcode vorausgehen, ebenfalls interpretiert und gleichfalls
zu einer falschen Startposition führen könnten. Die ersten zehn Spitzenwertsätze ausgehend
von der Startposition werden in Schritt S108 nach einem Anfangszeichen
durchsucht. Das Anfangszeichen ist beispielsweise „*". Falls das Anfangszeichen
nicht aufgefunden worden ist („nein" in Schritt S109),
wird die Startposition inkrementiert (Schritt S110), und es wird
ermittelt, ob noch zehn Spitzenwerte übrig bleiben (Schritt S111).
Falls dies der Fall ist, schreitet das System zu Schritt S108 weiter,
und die nächsten
zehn Spitzenwertsätze
werden geprüft,
um das Anfangszeichen aufzufinden. Falls dort keine zehn Spitzenwerte
mehr verbleiben („nein" in Schritt S111),
kehrt das System zu Schritt S103 zurück, um einen weiteren einzigen
Prüfbereich
aus dem AOI auszuwählen.
-
Gemäß der vorliegenden
Erfindung wird das Minimum und das Maximum sämtlicher positiver und negativer
Spitzenwerte für
die Darstellung eines einzigen Zeichens (zehn positive und zehn
negative Spitzenwerte) ausgehend von dem Startpunkt des Strichcodes
aufgezeichnet. Ein anfänglicher
erster Stellenwert wird für
den weißen
Streifen durch das po sitive Maximum minus beispielsweise 10% der
Differenz zwischen dem positiven Maximum und Minimum berechnet.
In gleicher Weise wird ein zweiter Schwellenwert für den schwarzen
Streifen durch das negative Minimum plus beispielsweise 10% der
Differenz zwischen dem negativen Maximum und Minimum bestimmt. Sämtliche
Spitzenwerte werden mit dem Schwellenwert verglichen, und es wird
ein binäres
Muster errichtet. Alle positiven Spitzenwertintensitäten, die
größer sind
als der Schwellenwert, werden als breiter weißer Streifen (00) aufgezeichnet, während sämtliche
Spitzenwerte, die kleiner sind als der Schwellenwert, als ein schmaler
weißer
Streifen (0) aufgezeichnet werden. In ähnlicher Weise werden alle
negativen Spitzenwertintensitäten,
die kleiner sind als der Schwellenwert, als ein breiter schwarzer Streifen
(11) aufgezeichnet, während
alle negativen Spitzenwertintensitäten, die größer als der Schwellenwert sind,
als ein schmaler schwarzer Streifen (1) aufgezeichnet werden.
-
Wenn
ein Muster für
die erforderliche Anzahl von Streifen, um ein Zeichen zu bilden,
aufgezeichnet worden ist, wird das Muster mit einem gespeicherten
Satz binärer
Muster verglichen, die die 39 Muster des Codes repräsentieren.
Falls das Muster nicht mit dem Muster übereinstimmt, das für das bestimmte
Anfangszeichen, beispielsweise „*", abgespeichert ist, wird der Schwellenwert
angepasst, und der Prozess zur Bestimmung des Musters wird nochmal
gestartet. Dieser Prozess wird fortgeführt, bis es entweder zu einer
Musterübereinstimmung
kommt oder der Schwellenwert auf 100% des Deltawertes entweder der
positiven oder negativen Spitzenwertintensitäten eingestellt ist. Falls
es zu keiner Musterübereinstimmung
kommt, wird ein Fehler zurückgegeben,
wobei die Startposition des Strichcodes in dem Spitzenwertfeld zu
dem nächsten
negativen Spitzenwert inkrementiert und der Mustererkennungsprozess
erneut gestar tet wird. Der Prozess zur Bildung des Musters wird
wiederholt, bis entweder das Anfangszeichen („*") decodiert wird oder das Ende des Spitzenwertfeldes
erreicht worden ist. Falls das Ende des Spitzenwertfeldes erreicht
worden ist, ohne dass das Anfangszeichen decodiert wird, wird für diesen AOI
ein Lesefehler zurückgegeben.
Falls das Anfangszeichen erfolgreich decodiert worden ist, wird der
nächste
Satz Spitzenwerte in dem Feld verarbeitet, um alle weiteren Zeichen
in dem Strichcode zu bestimmen (Schritt S112). Dieser Prozess dauert
fort, bis ein Endzeichen, beispielsweise ein weiteres „*" decodiert wird oder
das Ende des Spitzenwertfeldes erreicht worden ist. Falls irgendein
der Zeichenmuster nicht decodiert wird oder das Ende des Feldes
erreicht worden ist, ohne das Endzeichen zu decodieren, wird für diesen
AOI ein Lesefehler zurückgegeben.
-
Wenn
die Zeichenkette decodiert worden ist, muss sie mehrere Prüfungen (Schritte
S116 und S117) bestehen, um als ein gültiges Leseergebnis betrachtet
zu werden. Zuerst wird die (oben beschriebene) Prüfsumme überprüft, die übereinstimmen muss,
wenn sie decodiert ist. Zu weiteren Überprüfungen gehört, dass eine bekannte Anzahl
von Zeichen in dem Strichcode überprüft wird
und mehrere aufeinander folgende Lesungen übereinstimmen müssen, bevor
eine erfolgreiche Lesung aufgezeichnet wird.
-
Falls
der Strichcode aus einem beliebigen Grund nicht decodiert wird,
wird das Bild erneut abgetastet, wobei ein weiterer Bereich des
AOI für
den Decodierungsprozess verwendet wird. Dieser Prozess wird fortgeführt, bis
entweder ein erfolgreicher Lesevorgang erzielt worden ist oder alle
Abschnitte des AOI ausgeschöpft
worden sind. Die endgültige Rückgabe von
der Sequenz ist entweder der decodierte Strichcode in Schritt S118
oder ein Lesefehler in Schritt S105.
-
Die
Strichcodenummer wird durch die CPU entsprechend einem zentralen
Datenbankinformationssystem zugewiesen. Das zentrale Datenbankinformationssystem überwacht
und führt
den Herstellungsprozess. Der Strichcode wird dazu verwendet, den
Stab oder das Rohr zu markieren, um eine Spur für Prozess- und Qualitätsdaten
in Bezug auf einen speziellen Stab oder ein spezielles Rohr bereitzustellen
und um das zentrale Datenbankinformationssystem zu unterstützen.
-
Das
Lesersystem 20 gemäß der Erfindung lässt sich
in dem Markierungsprozess, um eine ordnungsgemäße und lesbare Strichcodemarkierung des
Brennstoffstabes zu bestätigen,
wie auch zum ausgangsseitigen Lesen des Strichcodes verwenden. In
einem Markierungsprozess, nachdem ein erster Strichcode gekennzeichnet
worden ist, liest das Lesersystem diesen, um den Strichcode, vorzugsweise
unter Verwendung der Prüfsumme,
zu bestätigen,
eine Stabzuführeinrichtung
dreht den Brennstoffstab, das Markierungssystem markiert den Brennstoffstab
ein zweites Mal, das Lesersystem 20 liest und bestätigt die
Markierung, die Stabzuführeinrichtung
verdreht den Brennstoffstab ein letztes Mal, das Markierungssystem
markiert den Strichcode ein letztes Mal, das Lesersystem 20 liest
den Strichcode ein drittes und letztes Mal ein und bestätigt diesen, und
der Stab wird herausgeholt.