VDI-Buch Identifikationssysteme und Automatisierung Bearbeitet von Michael Hompel, Hubert Büchter, Ulrich Franzke 1. Auflage 2007. Buch. x, 310 S. Hardcover ISBN 978 3 540 75880 8 Format (B x L): 15,5 x 23,5 cm Gewicht: 1380 g Wirtschaft > Spezielle Betriebswirtschaft > Produktionswirtschaft Zu Inhaltsverzeichnis schnell und portofrei erhältlich bei Die Online-Fachbuchhandlung beck-shop.de ist spezialisiert auf Fachbücher, insbesondere Recht, Steuern und Wirtschaft. Im Sortiment finden Sie alle Medien (Bücher, Zeitschriften, CDs, ebooks, etc.) aller Verlage. Ergänzt wird das Programm durch Services wie Neuerscheinungsdienst oder Zusammenstellungen von Büchern zu Sonderpreisen. Der Shop führt mehr als 8 Millionen Produkte.
Vorwort An die operative Ebene logistischer Systeme werden besondere Anforderungen gestellt. Sie müssen zuverlässig arbeiten und alle Anforderungen an Durchsatz und Antwortzeitverhalten erfüllen. Dabei sollten sie mit minimalem Personaleinsatz zu betreiben sein. Die Bedienung sollte sich im Idealfall auf die Überwachung, Fehlerbehebung und auf die Einstellung von Betriebsparametern beschränken. Damit kommt der Automatisierung, der selbsttätigen, zielgerichteten Beeinflussung logistischer Prozesse, eine besondere Bedeutung zu. Entwurf, Implementierung und Inbetriebnahme von automatisierten Prozessen erfordern die Beherrschung von Methoden und die Kenntnis der grundlegenden Funktionsweise von Geräten. Dieses Buch gibt eine Einführung in das Gebiet der Automatisierung logistischer Prozesse. Die vermittelten Grundlagen ermöglichen der Logistikerin und dem Logistiker, sich mit Lieferanten von Materialflusssystemen und automatischen Lagersystemen auf technischer Ebene auseinanderzusetzen. Darüber hinaus können mit diesem Wissen auch einfache Automatisierungsaufgaben gelöst werden. In der Automatisierung von Stückgutprozessen hat die Identifikation logistischer Objekte eine lange Tradition. Ein Durchbruch für die Massenanwendung kam mit der Einführung des Barcodes, der auch heute noch die Identifikation in der Logistik dominiert und auch in den nächsten Jahren nicht wegzudenken ist. Nicht nur aus diesem Grund wird der Barcode ausführlich behandelt. An seinem Beispiel werden grundsätzliche Aufgabenstellungen und deren Lösungen aufgezeigt. Das betrifft beispielsweise die Darstellung und Bedeutung eines Codes sowie die Zuverlässigkeit eines Identifizierungssystems. Der abschließende Teil behandelt die neueren Techniken, die auf der Radio Frequency Identification basieren. Ziel ist es, ein tieferes Verständnis für die Risiken und Chancen der automatischen Identifikation zu schaffen und damit auch eine Grundlage für Entscheidungsprozesse zu legen. Durch die gemeinsame Darstellung in einem Buch soll auch die Bedeutung der Identifikationstechnik für automatisierte Logistikprozesse verdeutlicht werden. Für das Verständnis dieses Buches werden elementare Kenntnisse der Logistik, insbesondere der Lager- und der Materialflusstechnik - wie sie etwa in [24] dargestellt sind, vorausgesetzt.
IV Vorwor t An dieser Stelle danken wir Thomas Albrecht, unter dessen Mitwirkung das einführende Kapitel über Anwendungen der Automatisierungstechnik in der Logistik verfasst wurde. Ebenso gilt unser Dank allen Lektoren für die kritische Durchsicht des Manuskriptes. Insbesondere danken wir Susanne Grau, Volkmar Pontow, Sabine Priebs, Arkadius Schier und Stefan Walter. Dortmund, im Sommer 2007 Michael ten Hompel Hubert Büchter Ulrich Franzke Die Intralogistik als identitätsstiftende und inhaltliche Klammer dieser Buchreihe spannt das Feld von der Organisation, Durchführung und Optimierung innerbetrieblicher Materialflüsse, die zwischen den unterschiedlichsten Logistikknoten stattfinden, über die dazugehörigen Informationsströme bis hin zum Warenumschlag in Industrie, Handel und öffentlichen Einrichtungen auf. Dabei steuert sie im Rahmen des Supply Chain Managements den gesamten Materialfluss entlang der Wertschöpfungskette. Innerhalb dieses Spektrums präsentieren und bearbeiten die Buchtitel der Reihe Intralogistik als eigenständige Grundlagenwerke thematisch fokussiert und eng verzahnt die zahlreichen Facetten dieser eigenständigen Disziplin und technischen Seite der Logistik.
2.7 Fehlerkorrektur 85 Abbildung 2.57. Dot Code A Beispiel Der Dot Code A besteht aus einer quadratischen Anordnung von 6 6 bis 12 12 Punkten (dots). Hiermit können bis zu 42 Milliarden Objekte unterschieden werden. Er besitzt Suchpunkte (Suchelemente) und kann daher omnidirektional und aus großem Abstand zuverlässig gelesen werden. Anwendungen existieren in der Kennzeichnung von Halbzeugen, Chips und Platinen, in der Identifikation von Laborgläsern und in der Markierung von Wäsche in Wäschereien, aber auch in der Verarbeitung von Alurohlingen und Achsen (auf der Stirnseite) mit eingeschlagenen Dot Codes (vgl. [29]). Da der Dot Code in den meisten Fällen direkt auf das Objekt aufgetragen wird, wird er weniger häufig gedruckt, sondern viel öfter gebohrt, geätzt, gefräst oder eingeschlagen. Schließlich seien noch die so genannten 3D-Codes erwähnt, die auf den 2D- Codes aufbauen und farbliche Komponenten als dritte Dimension benutzen. 2.7 Fehlerkorrektur Bei selbstüberprüfenden Barcodes, wie etwa beim Code 2/5, erkennt das Lesegerät durch die integrierte Software in vielen Fällen einen Fehler im Barcode dadurch, dass eine erwartete Struktur nicht eingehalten wurde. So muss beim Code 2/5 beispielsweise ein Barcodezeichen, das aus fünf Balken besteht, zwei breite und drei schmale Balken enthalten. Ein selbstüberprüfender Code wird auch EDC oder Error Detecting Code genannt. 2.7.1 Zwei aus Drei Während die Methoden des EDC Fehler aufzeigen können, kann mit ECC, den Error Checking and Correction Algorithms, der Fehler nach dem Auffinden gleich korrigiert werden. ECC-Verfahren basieren auf Redundanz. Das zu codierende Worte wird erweitert und nicht selten wird es auch verändert. Ein bekanntes und sehr einfaches ECC besteht im Zwei aus Drei -Verfahren, bei dem das Wort ω dreifach geschrieben wird: 3 ω = ω 1 ω 2 ω 3 mit ω i = ω j für i,j {1,2,3}. Beim Lesen können dann die drei folgenden Fälle eintreten:
86 2. Automatische Identifikation ω i = ω j für i,j {1,2,3}, das heißt dass alle drei Wörter sind gleich. In diesem Fall ist kein Fehler aufgetreten. 76 ω i ω j = ω k für i,j,k {1,2,3} und i j k i, was bedeutet, dass zwei Wörter gleich sind und sich vom verbleibenden dritten Wort unterscheiden. In diesem Fall findet die Korrektur dadurch statt, dass den zwei gleichen Wörtern vertraut und das ungleiche verworfen wird. ω i ω j ω k für i,j,k {1,2,3} und i j k i. In diesem Fall, in dem alle Wörter verschieden sind, ist eine Korrektur nicht möglich und der Fehler muss geeignet behandelt werden. Das Zwei aus Drei -Verfahren ist zwar in der Fehlerkorrektur ein durchaus probates Mittel, dennoch kann die Effizienz durch andere Verfahren deutlich gesteigert werden, die mehr Wert auf ein ausgeglichenes Verhältnis zwischen hoher Fehlertoleranz und geringerer Redundanz legen. Das Zwei aus Drei -Verfahren bildet allerdings die Basis zum Beispiel für die im folgenden Abschnitt aufgezeigten RS-Codes. Das Zwei aus Drei -Verfahren kann auch als n aus m -Verfahren zur Anwendung kommen. 2.7.2 RS-Codes Die Reed-Solomon-Codes, auch RS-Codes genannt, sind Codierungsverfahren, die ein Erkennen und Korrigieren von Lesefehlern möglich machen. Neben 2D-Codes, wie zum Beispiel dem Data Matrix Code, finden RS-Codierungen auch bei der DVD und der CD zur Korrektur von Lesefehlern Anwendung. Die RS-Codes wurden von Irving S. Reed und Gustave Solomon im Jahre 1960 vorgestellt [34]. Die RS-Codes arbeiten nach der Methode, die Elemente a i (mit i {1...n}) der n stelligen Nachrichtenwörter ω = a n a n 1... a 1 in Koeffizienten eines Polynoms p(x) vom Grad n 1 umzuwandeln: p(x) = a n x n 1 + a n 1 x n 2 +... + a 2 x 1 + a 1 Danach werden zu m (mit m n) festgelegten und paarweise verschiedenen Stützstellen s 1...s m die Funktionswerte von p(s 1 )...p(s m ) ermittelt. Diese Daten stellen die RS-Codierung der Ursprungsmenge dar und werden abgebildet. Über Polynominterpolation, hier insbesondere über die Lagrange-Interpolation, lässt sich aus n der paarweise verschiedenen Tupel (s j,p(s j )), j {1...m} genau ein Polynom p vom Grade n 1 bestimmen. An m wurde die Bedingung m n gestellt; würde m mit m = n gewählt, ließe sich das Polynom p aus den m Tupeln (s j,p(s j )) auf genau eine Art berechnen. Würde dagegen m > n gewählt, gäbe es mehrere Möglichkeiten zur Bildung des einen Polynoms p, was bei Ausfällen von einem oder mehreren Werten (je nach Wahl von m) eine Rekonstruktion des Polynoms und damit 76 Oder es ist dreimal der gleiche Fehler aufgetreten, was allerdings recht unwahrscheinlich ist.
2.7 Fehlerkorrektur 87 der das Nachrichtenwort ω bildenden Koeffizienten a 1...a n des Polynoms p immer noch gestattet. Wurden einzelne Werte der Tupel (s j,p(s j )), hier insbesondere Werte von p(s j ), verändert, kann das durch mindestens zweifache Bildung des Polynoms p mit unterschiedlichen p(s j ) aufgezeigt werden. Der fehlerhafte Wert kann bei dreifacher Bildung des Polynoms p durch das Zwei aus Drei -Verfahren 77 identifiziert und korrigiert werden. 2.7.3 Hamming-Codes Während bei RS-Codes die Fehlertoleranz über Parameter verbessert und in gleichem Maße die Redundanz verschlechtert werden kann 78, sie aber zugleich sehr komplex und zeitaufwändig in der Berechnung sind 79, existieren andere Verfahren, die mit geringer Fehlertoleranz einfacher berechnet werden können. Ein solches ECC-Verfahren nach Hamming 80 funktioniert mit binären Codes. Ein Hamming-Code ist ein binärer Code mit einem Hamming-Abstand von mindestens 3. Der Hamming-Abstand ist das Hamming-Gewicht des Ergebnisses der XOR-Verknüpfung zweier binärer Zahlen. Das Hamming-Gewicht ist die Zahl, die sich bei der Auszählung der Einsen in einer binären Codierung ergibt. Sei beispielsweise z 0 = 110 10 = 01101110 2 eine Zahl, dann hat sie das Hamming-Gewicht von 5, weil sie in ihrer binären Darstellung genau fünf Einsen besitzt. Der Hamming-Abstand zweier Zahlen kann damit auch einfacher als die Anzahl der Stellen bezeichnet werden, an denen sich die beiden Zahlen in ihrer binären Darstellung unterscheiden, denn genau das entspricht der Anzahl der Einsen der XOR-Verknüpfung der beiden Zahlen. Sei beispielsweise z 1 = 42 10 = 101010 2 und z 2 = 24 10 = 11000 2, dann ist das Ergebnis der XOR-Verknüpfung: 101010 2 XOR 011000 2 = 110010 2 Der Hamming-Abstand der beiden Zahlen z 1 = 42 und z 2 = 24 entspricht damit dem Wert 3. Würde ein binärer Code nun aus genau diesen beiden Zahlen (Wörtern) bestehen, wäre er ein Hamming-Code. Der Hamming-Abstand eines Codes C mit n Codewörtern ω i, i {1...n} entspricht dem minimalen 77 Siehe Abschnitt 2.7.1. 78 Das Erhöhen der festgelegten Stützstellen erhöht zwar die Redundanz, schafft aber größere Sicherheit. 79 RS-Codes arbeiten auf endlichen Körpern, die oftmals eine aufwändige eigene Arithmetik besitzen. 80 Richard Wesley Hamming, *1915 1998. Gedanken zur Hammingcodierung finden sich in Error-detecting and error-correcting codes [19], der Artikel ist im Internet verfügbar [18].
88 2. Automatische Identifikation Hamming-Abstand des paarweisen Vergleiches aller Wörter ω i und ω j (mit i,j {1...n} und i j) des Codes. Ein (n,m)-code mit n > m 3 ist ein Hamming-Code mit einer Länge von n Bit und einem Hamming-Abstand von mindestens m von einem beliebigen Wort des Codes zu einem anderen, also mit einem Hamming-Abstand des binären Codes von m. Hamming-Codes, die binäre Zahlen codieren, lassen sich auf verschiedene Arten erzeugen. Nach der Festlegung auf einen Algorithmus kann für ein gelesenes Wort überprüft werden, ob es ein Element des Hamming-Codes ist, der durch den Algorithmus erzeugt wurde. 81 Falls es kein Element des Hamming- Codes ist, könnte es bei einer Aufnahme in den Code den Hamming-Abstand des gesamten Codes senken. Durch die Änderung von genau einem Bit in einem Wort würde der Hamming-Abstand des geänderten Wortes zu seinem Original den Wert eins haben und damit der Hamming-Abstand des gesamten Codes auf eins sinken. Zugleich würde aber der Hamming-Abstand des fehlerhaften Wortes zu den anderen Wörtern des Codes immer noch einen Hamming-Abstand von mindestens zwei haben. Bei einem Hamming-Abstand von Eins kann das fehlerhafte Wort und die Fehlerposition angegeben werden. Bei einer Senkung des Hamming-Abstandes um einen anderen Wert würde, je nach Verhältnis von n zu m des (n,m)-codes, eine Fehlerposition noch gefunden oder der Fehler wenigstens entdeckt werden können. Wird ein Hamming-Code mit einem höheren Hamming-Abstand gewählt, können wesentlich mehr Fehler gefunden und korrigiert werden, allerdings wird durch diese Redundanzerhöhung auch die Datenmenge drastisch ansteigen. Sei beispielsweise A = {0,...,7} und H = {000000 2, 110001 2, 100110 2, 010111 2, 011100 2, 101101 2, 111010 2, 001011 2 } ein (6,3)-Hamming-Code mit einem Hamming-Abstand von drei und sei h : A H eine Abbildung mit 000000 2 falls x = 0 110001 2 falls x = 1 100110 2 falls x = 2 010111 h(x) = 2 falls x = 3, 011100 2 falls x = 4 101101 2 falls x = 5 111010 2 falls x = 6 001011 2 falls x = 7 81 Es können in einem Wort mehrere Bit-Drehungen auftreten, so dass ein verändertes Wort wieder gültig werden würde. Bei einem Hamming-Code mit Hamming- Abstand von 3 könnte das mit drei sinnvollen Bit-Veränderungen geschehen. Auch könnten mehrere Veränderungen eine Ähnlichkeit zu einem anderen Wort größer machen als zu seinem Original. Solche Fälle müssen mit geeigneten, vielleicht kontextsensitiven Verfahren aufgefangen werden.
2.7 Fehlerkorrektur 89 dann kann für ein binäres Wort mit der Länge 6 durch Vergleich überprüft werden, ob es ein Element des Codes H ist. Würde nun das Wort ω = 111010 2 gelesen, würde der direkte Vergleich zeigen, dass es ein Wort des Hamming- Codes ist, in diesem Fall das, welches mit der Abbildung von h(6) erzeugt würde. Würde in ω ein Bit fehlerhaft erkannt werden und würde durch diesen Fehler zum Beispiel aus ω das Wort ω f = 111110 2 werden, hätte es zu allen Wörtern aus H einen Hamming-Abstand von mindestens zwei, zu dem Wort h(6) aber nur einen Abstand von eins und könnte korrigiert werden. Würde ein zweites Bit falsch gelesen, würde etwa aus ω f das Wort ω f2 = 111111 2, hätte es zu allen Wörtern einen Hamming-Abstand von mindestens zwei und könnte nicht mehr korrigiert werden. Allerdings hätten auch zwei andere Bit fehlerhaft gelesen werden können. Formal sieht die Bildung des obigen Beispielcodes H wie folgt aus: Auf sechs durchnummerierten Bit-Positionen 1 2 3 4 5 6 werden die Binärdarstellungen der Zahlen 0,...,7 so verteilt, dass die Positionen eins, zwei und vier frei bleiben. 000 2 0 00 2 001 2 0 01 2 010 2 0 10 2 011 2 0 11 2 100 2 1 00 2 101 2 1 01 2 110 2 1 10 2 111 2 1 11 2 Dann werden für jede Zahl die Positionen ermittelt, an denen eine 1 steht, und diese Positionen der einzelnen Wörter werden XOR-verknüpft: 000 2 0 00 2 ; 0 = 000 2 001 2 0 01 2 ; 6 = 110 2 010 2 0 10 2 ; 5 = 101 2 011 2 0 11 2 ; 5 XOR 6 = 011 2 100 2 1 00 2 ; 3 = 011 2 101 2 1 01 2 ; 3 XOR 6 = 101 2 110 2 1 10 2 ; 3 XOR 5 = 110 2 111 2 1 11 2 ; 3 XOR 5 XOR 6 = 000 2 Im letzten Schritt werden die Ergebnisse der XOR-Verknüpfung nun auf die freien Plätze übertragen. Es ergibt sich der oben dargestellte Hamming-Code
90 2. Automatische Identifikation H mit 000 2 000000 2 001 2 110001 2 010 2 100110 2 011 2 010111 2 100 2 011100 2 101 2 101101 2 110 2 111010 2 111 2 001011 2 Wird ein Hamming-Code als Matrix dargestellt, kann über die Spalten permutiert werden und es entsteht wieder ein Hamming-Code mit gleichem Hamming-Abstand wie der Vorherige. Wird beispielsweise der obige Hamming-Code als Matrix H O geschrieben mit 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 1 1 H O =, 0 1 1 1 0 0 1 0 1 1 0 1 1 1 1 0 1 0 0 0 1 0 1 1 dann erzeugt ein Vertauschen der ersten mit der sechsten Spalte den Hamming- Code H 1,6 mit 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 1 1 1 0 1 1 0 H 1,6 =, 0 1 1 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 0 1 0 wobei H 1,6 wieder ein Hamming-Code mit gleichem Hamming-Abstand wie H O ist. Zwar erreichen Hamming-Codes nicht die Sicherheit der Reed-Solomon- Codes, sie sind aber wesentlich einfacher und schneller zu berechnen und in vielen Fällen ausreichend. 2.8 Technologie der Barcodeleser Die Wahl der geeigneten Barcodesymbologie für eine Anwendung, das Erzeugen des Codes und die Anbringung auf einem Objekt ist eine Aufgabe. Das