-
GEBIET DER ERFINDUNG
-
Diese Erfindung betrifft Bildverarbeitungssysteme zum Einsatz bei der Prüfung von Teilen, Objekten und Oberflächen, und genauer Mehrkamerabildverarbeitungssysteme.
-
HINTERGRUND DER ERFINDUNG
-
Der Einsatz von fortschrittlichen Bildverarbeitungssystemen (auch „Machine Vision“ genannt) und der zugrundeliegenden Software wird zunehmend bei einer Reihe von Herstellungs- und Qualitätskontrollprozessen verwendet. Bildverarbeitung ermöglicht schnellere, genauere und reproduzierbare Ergebnisse bei der Herstellung sowohl von Massenprodukten als auch von Sonderanfertigungen. Typische Bildverarbeitungssysteme schließen eine oder mehrere Kameras ein (typischerweise mit kontaktlosen, ladungsgekoppelten Vorrichtungen (CCD) oder CMOSbasierten Bildelementen), die auf einen in Frage kommenden Bereich gerichtet sind, Bildfangschaltungs-/Bildverarbeitungselemente, die CCD-Bilder erfassen und übermitteln, eine oder mehrere Computer oder ntegrierte Verarbeitungsvorrichtungen, und eine Benutzeroberfläche zum Abspielen der Bildverarbeitungssoftwareanwendung und Handhabung der erfassten Bilder, und geeignete Beleuchtung des in Frage kommenden Bereichs.
-
Die Druckschriften
WO 2007/110822 A1 und
US 6970183 B1 zeigen Verfahren zum Synchronisieren von Ergebnissen einer Vielzahl von Bildbearbeitungsprozessoren, die erfasste Bilder verarbeiten, um daraus Ergebnisse zu erstellen.
-
Der Einsatz von mehreren Kameras (auch „Sensoren“ genannt) wird bei vielen Bildverarbeitungssystemanwendungen gewünscht. Mit einer solchen Anordnung von mehreren Kameras in einem Bildverabeitungssystem kann ein Teil oder Objekt auf einer beweglichen Linie gleichzeitig oder der Reihe nach aus verschiedenen Blickwinkeln abgebildet werden, wobei sich die Zuverlässigkeit des Prüfprozesses erhöht, wenn man Merkmale bei bestimmten Ansichten berücksichtigt, die in anderen Ansichten verdeckt sein können. So kann der Einsatz von mehreren Bildverarbeitungsvorrichtungen, oft eine pro Kamera, höhere Bandgeschwindigkeiten ermöglichen, da mehrere Verarbeitungsvorrichtungen gleichzeitig arbeiten können, um ein einzelnes Teil oder Gruppe von Teilen zu prüfen. Die Verarbeitungsvorrichtungen können im physikalischen Sinne nebeneinander liegen oder sie können weit getrennt und über ein Netzwerk oder einen anderen Kommunikationskanal miteinander verbunden sein. Das ist als dezentrales System oder dezentrale Anwendung bekannt, da die Verarbeitungskapazität physikalisch über mehrere Vorrichtungen verteilt ist. Höhere Bandgeschwindigkeiten sind möglich, wenn zusätzliche Verarbeitungsvorrichtungen eingesetzt werden, so dass jede Vorrichtung oder Gruppe von Vorrichtungen eines von einer Vielzahl von benachbarten Objekten bei jedem Prüfzyklus prüft (typischerweise geregelt durch ein Takt- und Auslösesignal). So bildet beispielsweise bei einem gegebenen Prüfzyklus eine erste Kamera oder Gruppe von Kameras einen ersten Teil ab (ein einzelnes Objekt oder einen Bereich eines Objektes oder einer Oberfläche), eine zweite Kamera/Gruppe von Kameras bildet gleichzeitig das nächste benachbarte Teil auf dem Band ab und eine dritte Kamera/Gruppe von Kameras bildet gleichzeitig ein drittes benachbartes Teil auf dem Band ab. Mehrere Verarbeitungsvorrichtungen, typischerweise eine pro Kamera oder eine pro Kameragruppe, arbeiten gleichzeitig, um alle drei Teile auf einmal zu prüfen. Das ist als ein Mehrphasensystem bekannt, wobei in diesem Beispiel drei Prüfphasen gleichzeitig innerhalb eines einzigen Prüfzyklus ausgeführt werden.
-
Im Allgemeinen erfassen und verarbeiten bei einer dezentralen Bildverarbeitungsanwendung mehrere Verarbeitungsteilsysteme jeweils mehrere Bilder, die einen einzelnen Teil oder Prüfzyklus betreffen, und kommunizieren diese Ergebnisse über ein Netzwerk oder einen anderen Kommunikatioskanal. Um ein gültiges Gesamtergebnis für einen gegebenen Prüfzyklus zu erzeugen, werden die Ergebnisse, die von allen Prozessoren im dezentralen System erzeugt werden, so kombiniert, dass sichergestellt ist, dass alle Ergebniswerte den gleichen Prüzzyklus betreffen. Da jedes Prüfergebnis eine unvorhersehbare Verarbeitungszeit aufweisen kann, ist es manchmal schwierig, zu bestimmen, ob ein gegebenes Ergebnis einen speziellen Prüfzyklus oder einen anderen Prüfzyklus betrifft. Das System als Ganzes muß ein Mittel aufweisen, um vorübergehende Probleme, wie etwa versäumte oder zusätzliche Auslösersignale, vorübergehende Stromunterbrechung zu einem oder mehreren Teilsystemen und unzuverlässige Kommunikationskanäle, automatisch festzustellen und den alten Zustand wiederherzustellen. Bei Anwendungen, die erhebliche Verarbeitungsenergie erfordern, kann es notwendig sein, eine einzelne Prüfaufgabe auf mehrere Prozessoren zu verteilen, was die Synchronisierung der Ergebnisse zu einer noch größeren Herausforderung macht.
-
Informationshalber bieten viele Hersteller von Machine Vision-Technologie Mehrkamerasysteme im wörtlichen Sinn an – mehrere Kameras, die alle eine einzige Prozessorbox versorgen, die normalerweise von einem PC definiert wird, oder eine unabhängige Verarbeitungseinheit. Die zentrale Verarbeitungseinheit (Central Processing Unit CPU) bei solchen Mehrkamerasystemen steuert es, wenn die Kameras ausgelöst werden, um ein Bild zu erfassen, und speichert die erfassten Bilder im Speicher, wobei die Anwendung die entsprechenden Bilder mit der Anwendung in Verbindung bringen kann.
-
Viele dezentrale Mehrkameraanwendungen verwenden einen programmierbaren Logikcontroller (PLC), um Ergebnisse aus einzelnen Bildverarbeitungssystemen in der Gesamtanordnung zu synchronisieren und zu kombinieren. Wenn die Synchronisierungsfähigkeit innerhalb der Bildverarbeitungssysteme selber fehlt, ist das die Standardlösung für das Problem der Synchronisierung.
-
Bestimmte Bildverarbeitungssysteme, wie etwa das In-Sight®-Produkt, das über die Firma Cognex Corporation in Natwick, Massachussetts, USA, bezogen werden kann, schließen einen WriteResult- und ReadResult-Steuerbefehl innerhalb ihrer Bildverarbeitungssystemanwendung ein. In-Sight ist eine abgeschlossene Kameraanordnung mit einer integrierten Verarbeitungsvorrichtung, die in der Lage ist, mit einem Netzwerk über entsprechende Netzwerkprotokolle, wie etwa Ethernet, zu kommunizieren. Die WriteResult- und ReadResult-Steuerbefehle machen es möglich, dass einzelne, miteinander verbundene Verarbeitungssysteme Daten über ein Netzwerk gemeinsam benutzen. Auf diese Weise kann ein Bildverarbeitungssystem als Masterprozessor agieren, und eins oder mehrere andere können als Slaveprozessoren agieren. Wenn eines der Bildverarbeitungssysteme eine Masterkamera ist, kann sie dazu verwendet werden, die Slavekamera(s) über Ethernet auf eine Art auszulösen, die sicherstellt, dass die erhaltenen Ergebnisse aus der/den Slavekamera(s) als Teil des gegenwärtigen Prüfzyklus identifiziert werden. Bei typischen Anordnungen werden die kombinierten Ergebnisse des Bildverarbeitungssystems für den Prüfzyklus im Allgemeinen aus der Masterkamera zu einem PLC kommuniziert, wo sie analysiert werden und ein Endergebnis oder Endergebnisse bestimmt wird/werden.
-
Wie oben beschrieben, um mehr Verarbeitungsenergie anzuwenden, haben bestehende Bildverarbeitungssystemanwendungen das Problem dadurch gelöst, dass sie verdoppelte Systeme, die in aufeinanderfolgenden Phasen ausgelöst werden, verwenden. Das kann hier als „Mehrphasen“-Ansatz bezeichnet werden. Das einfachste Beispiel setzt zwei Kameras und zwei Prozessoren ein, wobei jedes System jedes zweite Teil prüft. Komplexere Anwendungen können mehrere Banken von Kameras einsetzen, zum Beispiel drei Banken von Kameras und Prozessoren, die jeweils jedes dritte Teil prüfen, mit beliebiger Anzahl von Kameras in jeder Bank. Es ist möglich, die Ergebnisse extern in einem PLC oder, was schwierig ist, mit Hilfe von Netzwerkdatenfunktionen innerhalb des Bildverarbeitungssystems, wie etwa WriteResult und ReadResult, zu synchronisieren und zu serialisieren.
-
Es erweist sich trotzdem als aufwändig und zeitintensiv, eine verlässliche PLC-Anwendung zur Verfügung zu stellen, die Ergebnisse bei hoher Geschwindigkeit korrekt synchronisiert und sich bei vielen Arten von vorübergehenden Problemen, die die Synchronisierung der Ergebnisse eines gegebenen Prüfzyklus beeinträchtigen können, den alten Zustand wiederherstellt. Außerdem kommen zusätzlich Kosten und Komplexität zur Anwendung hinzu, wenn die Last der Synchronisierung auf den PLC geladen wird, und die Wartung wird schwieriger entsprechend der „Bildverarbeitungslogik“ im PLC-Programm, die normalerweise auch die Verarbeitungsgeräte steuert.
-
Ein Ansatz, um die Synchronisierung sicher zu stellen, ist, einen zentralen Prozessor für alle Bildverarbeitungsaufgaben zur Verfügung zu stellen, der mit mehreren einfachen Kameras (d. h. Kameras, die einfach Bilder erfasssen) in Verbindung steht. Allerdings leidet dieser Ansatz an einem Mangel an Skalierbarkeit. Werden mehr Kameras hinzugefügt, wird dem Prozessor zusätzlich Last aufgebürdet, der gleichzeitig eine Vielzahl von Bildern für BildVerarbeitung erhält. In einigen Fällen ist es möglich, Co-Prozessoren hinzuzunehmen, um die Verabeitungskapazität der Bildverarbeitung zu erhöhen, aber das bietet eine sehr eingeschränkte Skalierbarkeit im Vergleich zu einem dezentralen System auf einem Netzwerk, und ist schierig bei einem Mehrphasenansatz einzusetzen.
-
Im Handel erhältliche Funktionen für vernetzte Bildverarbeitungssysteme, wie etwa WriteResult and ReadResult, haben die Neigung nur dann verlässliche Ergebnisse zu liefern, wenn ein Mastersystem das Slavesystem über Ethernet-/Netzwerk-Verbindungen und -protokolle auslöst. Das heisst, solche Funktionen synchronisieren nicht Ergebnisse, wenn sie externe, fest verdrahtete Auslösersignale verwenden. Der Einsatz von externen Auslösern ist gebräuchlich, wenn Impulsgeber, Anwesenheitssensoren (z. B. Photodetektoren) und dergleichen eingesetzt werden, um der Bewegung und Position von Teilen entlang eines sich bewegenden Bandes und/oder interessierenden Bereichen auf einer Oberfläche, wie etwa einer laufenden Bahn, zu folgen. Jedes Systen wird ausgelöst, wenn vorherbestimmte Bewegung aufgetreten ist. Eine Besonderheit tritt auf, wenn ein Sensor einen Auslöser ausläßt, (beispielsweise wegen eines unzuverlässigen Photodetektors), dann erscheint das Ergebnis für dieses System nicht, und das gesamte System wird danach die Synchronität verlieren, da man annehmen kann, dass der nächste Auslöser für dieses System das Ergebnis für den vorhergegangenen Zyklus produziert. Diese Eingrenzung begrenzt ganz erheblich die Geschwindigkeit, mit der solch ein Master-/Slavesystem arbeiten kann, und macht es für viele Anwendungen nutzlos. Auch machen es diese Systemfunktionen schwierig, die Anwendung aufrecht zu erhalten, da jeder Slaveauftrag eine WriteResult-Funktion erhalten muß, die genau zu der Abfolge von Ergebnissen passt, die vom Master erwartet werden, und wenn die Abfolge nicht korrekt ist, gibt es keinen verlässlichen Weg, diesen Fehler zu entdecken. Darüberhinaus begrenzen solche netzwerkbasierten Systemfunktionen Skalierbarkeit, weil es unpraktisch ist, sie über eine Vielzahl von miteinander verbundenen Untersystemen aufrecht zu erhalten. Allgemeiner gesprochen, können vernetzte Näherungen zu langsam für einen Einsatz bei Hochgeschwindigkeits-, Vielphasen-, Mehrkameraanordnungen sein, weil frühere Anwendungen dieser Näherungen besser für Auslöser, die im Millisekundenbereich auftreten, geeignet waren, als die Mikrosekundenzeitbasis, die für eine Hochgeschwindigkeitsarbeit wünschenswert ist.
-
Bei einem Mehrphasensystem, das eine Vielzahl von Banken von Prozessoren einsetzt, die jeweils jede N-te Teil untersuchen, ist es extrem schwierig und oft unpraktisch, die Ergebnisse in einem PLC oder direkt zwischen Prozessoren zu synchronisieren. Das Überwinden dieser Einschränkungen bestand bisher aus dem Einsatz einer stärkeren Prozessors, wenn vorhanden und kosteneffektiv, wobei die Tatsache akzeptiert wurde, dass die Leistung nicht optimal sein wird, oder anderweitig, aus der Vermeidung des Einsatzes einer Mehrphasenanordnung.
-
Deshalb ist es Aufgabe der Erfindung, ein System und ein Verfahren vorzusehen, um Prüfungen bei einem gegebenen Zyklus zu synchronisieren, und die Ergebnisse aus den vielen dezentralen Prozessoren auf verlässliche Weise zu einem einzigen Prozessor zu kombinieren. Dieses System und dieses Verfahren sollen das Herstellen des alten Zustands bei den meisten Typen von zwischenzeitlichen Signalproblemen und anderen temporären Problemen (ausgelassene Auslöser, verlorene Teile, usw.), ermöglichen. Es ist ferner die Aufgabe, dass die Anordnung unvorhergesehene Netzwerkverzögerungen toleriert und in der Lage ist, Hochgeschwindigkeitsoperationen mit einer Reihe von Auslöserverfahren, einschließlich verdrahtete, externe Auslösung, auszuführen. Das System und das Verfahren sollen auch die Möglichkeit zur Skalierungsanwendung zu noch höheren Geschwindigkeiten durch eine Mehrphasensynchronisierung zulassen, in einer Art, die für den Benutzer transparent ist, und die die externe Kommunikation ermöglicht.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Diese Erfindung löst die Aufgabe durch ein fehlertolerantes System und Verfahren zur Synchronisierung der Prüfergebnisse einer skalierbaren Vielzahl von Bildverarbeitungssystemprozessoren, das eine schnelle Wiederherstellung des alten Zustands bei einer Reihe von Problemen zuläßt, wie etwa versäumte Auslöser, Extraauslöser und Stromausfall bei einem oder mehreren Systemprozessoren. Die Erfindung stellt ein System und Verfahren zur Synchronisierung der Ergebnisse einer Bildverarbeitungssystemprüfung zur Verfügung, die jeweils von einer Vielzahl von Prozessoren geliefert werden, die eine erste Bank umfasst (dabei kann es sich um die „Master“-Bank handeln), die einen Masterbildverarbeitungs-systemprozessor und mindestens einen Slavebildverarbeitungssystemprozessor enthält. Mindestens eine zweite Bank (dabei kann es sich um eine Mehrzahl von „Slave“-Banken handeln) enthält einen Masterbildverarbeitungssystemprozessor und mindestens einen Slavebildverarbeitungssystem-prozessor. Jeder Bildverarbeitungssystemprozessor in jeder Bank erzeugt Ergebnisse aus einem oder mehreren Bildern, die bei einem vorgegebenen Prüfzyklus erfasst und verarbeitet werden. Bei einer Ausführungsform werden Prozessoren mit jeweils einer vorgegebenen Kamera in Verbindung gebracht. Bei anderen Ausführungsformen werden die Prozessoren in einer oder mehreren Prozessorbank/en mit einer oder mehreren gemeinsam benutzten Kameras in Verbindung gebracht. Der Prüfzyklus kann auf einem externen Auslöser oder einem anderen Auslösersignal beruhen, und er kann einige oder alle Prozessoren/Banken in die Lage versetzen, Bilder zu einer vorgebenen Zeit/einem vorgebenen Zyklus zu erfassen und zu verarbeiten. Bei einem vorgebenen Zyklus kann jede der vielen Banken positioniert werden, um ein Bild eines betreffenden Bereiches einer Vielzahl von aufeinanderfolgenden Bereichen auf einer sich bewegenden Bahn zu erfassen. Der nächste Zyklus erfasst und verarbeitet Bilder einer nächsten Gruppierung von Objekten oder Bereichen längs der Bahn – und liefert dabei die Verarbeitungszeit zwischen jeder Bewegung der Gruppe von Teilen in das Blickfeld jeder Kamera. Ein Synchronisierungsprozess (a) erzeugt eine eindeutige Kennung und dieser gibt ein Auslösersignal mit der eindeutigen Kennung, die dem Masterprozessor in der ersten Bank zugeordnet ist, an jeden Slaveprozessore in der Masterbank und an jeden Master- und Slaveprozessore weiter, und (b) erhält konsolidierte Ergebnisse über den Masterprozessor der zweiten Bank, die die eindeutige Kennung und die konsolidierten Ergebnisse aus den Ergebnissen aus der ersten Bank haben. Dann (c) konsolidiert der Prozess die Ergebnisse für die Übertragung an ein Ziel, wenn die Ergebnisse vollständig sind und die eindeutige Kennung für alle Ergebnisse das Gleiche ist.
-
Bei einem Ausführungsbeispiel kann sich ein Synchronisierungsprozess in der Masterverarbeitungsvorrichtung der ersten oder „Master“-Bank befinden. Alternativ kann eine Gesamtkonsolidierung von Ergebnissen zur Synchronisierung durch einen vernetzten Prozessor erreicht werden, der Ergebnisse aus dem Masterbildverarbeitungssystemprozessor jeder Bank erhält. Kommunikation zwischen Banken und mit dem Synchronisierungsprozess kann mit Hilfe einer Netzwerkverbindung, wie etwa Ethernet, erreicht werden. Jede Verarbeitungsvorrichtung erfasst eine Zeitmarke, wenn jedes Ergebnis erzeugt ist oder jedes Bild erfasst ist. Solche Zeitmarken bieten eine Hilfestellung bei der Versicherung, dass empfangenene Ergebnisse während der Konsolidierung Teil des gleichen Prüfzyklus sind – insbesondere, wenn unabhängige Auslöser bei verschiedenen Prozessoren und/oder Prozessorbanken eingesetzt werden. Die Zeitmarken können einfach erzeugt werden, was auf der relativen Zeit beruht, bei der eine Nachricht durch einen Master gesendet wird und durch Slavevorrichtungen empfangen wird. Um die Zeitgenauigkeit zu verbessern, können die verschiedenen Verarbeitungsvorrichtun-gen im gesamten System durch eine Referenzuhreneinrichtung miteinander verbunden werden, die auf einer Masteruhr beruht, die Signale an die anderen Uhren über das Netzwerk übermittelt. Die kompletten, konsolidierten Ergebnisse (oder ein Fehler, wenn die Ergebnisse nicht korrekt oder unvollständig sind) werden an ein Ziel übermittelt, wie etwa einem Band-Controller. Der Controller kann dazu verwendet werden, ein Bewegungssteuersystem oder -vorrichtung, Teileauswurf, eine Abschaltung des Bandes oder einen Alarm zu betätigen, der eine Prüfsituation anzeigt, die einen solchen Vorgang erforderlich macht (z. B. ein fehlerhaftes Teil, das ausgeworfen werden muß, oder ein fehlerhafter Netzabschnitt, der Markierung und Entfernung notwendig macht). Im Allgemeinen sind Bildverarbeitungssystemprozessoren mit Kameras verbunden, die so positioniert sind, dass sie Bilder verschiedener Stellen auf dem Band erfassen oder sie sind durch eine Bewegungssteuervorrichtung positioniert – in diesem Falle kann eine einzige Kamera verschiedene Stellen abbilden.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die Beschreibung der Erfindung unten bezieht sich auf die beigefügten Zeichnungen, von denen:
-
1 ein Blockschema eines Beispiels einer Anordnung von Bildverarbeitungssystemkameras und -prozessoren ist, mit Bezug auf Teile oder andere interessierende Bereiche auf einem sich bewegenden Band, gemäß eines Ausführungsbeispiels;
-
2 ein Blockschema ist, das die Anwendungen zeigt, die sich in einem beispielhaften Slaveprozessorsystem der 1 befinden;
-
3 ein Blockschema ist, das die Anwendungen zeigt, die sich in einem beispielhaften Masterprozessorsystem der 1 befinden;
-
4 ein Flussdiagramm ist, das die Arbeit eines Masterprozessors während eines Beispiels eines Prüfzyklus zeigt;
-
5 ein Flussdiagramm ist, das die Arbeit eines Slaveprozessors während eines Beispiels eines Prüfzyklus zeigt; und
-
6 ein Blockschema einer Anordnung von Bildverarbeitungssystemprozessoren gemäß einer alternativen Ausführungsform zeigt, bei der ein einzelner Mastersynchronisierungsprozessor konsolidierte Ergebnisse aus einer Vielzahl von Mehrfachbildverarbeitungssystemprozessorenbanken erhält.
-
GENAUE BESCHREIBUNG
-
1 ist ein schematisches Diagramm eines Beispiels einer Anordnung eines mehrphasigen, Mehrprozessorbildverarbeitungssystems 100 entsprechend eines Ausführungsbeispiels. Diese Anordnung 100 ist ein Beispiel einer breiten Variation von möglichen Kameraanordnungen gemäß der Ausführungsbeispiele. Die Anzahl der Kameras und ihre Platzierung ist sehr variabel. In diesem Beispiel wird angenommen, dass jede Kamera eine unabhängige Verarbeitungsvorrichtung enthält. Bei anderen Anordnungen können die Verarbeitungsvorrichtungen physikalisch von den Kameras getrennt sein, und jede mögliche Verarbeitungsvorrichtung kann Bilder aus einer oder mehreren Kameras verarbeiten. Ebenso können Kameras physikalisch oder optoelektronisch durch eine Bewegungssteuerungsvorrichtung (Block 202 in 2 und Block 302 in 3) manipuliert werden, um eine variable Erfassung von Bildern aus mehreren oder verschiedenen Positionen zu ermöglichen. Wie gezeigt, schließt das Beispiel einer Anordnung drei Bildverarbeitungs-systemprozessorenbanken 110, 120, 130 ein. Bei diesem Beispiel einer Anordnung sind die Prozessoren jeweils einer Kamera/einem Sensor zugeordnet. Bei anderen Ausführungen können die Prozessoren und/oder Prozessorbanken eine/n oder mehrere Kameras/Sensoren gemeinsam benutzen. Wenn ein vorgebener Prozessor eine vorgebenene Kamera mitbenutzt, kann ein Multiplexer (nicht gezeigt) bei einer herkömmlichen Anordnung eingesetzt werden, damit erfasste Bilder zu jedem Prozessor, wie jeweils passend, gelenkt werden können. Wenn Banken jeweils eine vorgebenene Kamera oder vorgebenene Kameras mitbenutzen, kann der Zugang zu einer Kamera sequentiell sein, wobei ein passender Controller (ebenfalls nicht gezeigt) eingesetzt wird. Bei diesem Ausführungsbeispiel sind jeder Bank 110, 120, 130 jeweils drei diskrete, besondere Bildverarbeitungssystemkameras (112, 114, 116), (122, 124, 126) und (132, 134, 136) zugeordnet. Die Kameras sind so positioniert, dass sie Stellen entlang eines sich bewegenden Bandes 140 aufnehmen, das Teile/Objekte (Pfeil 142) in Transportrichtung durch das Blickfeld jeder Kamerabank transportiert. Bei einem Ausführungsbeispiel, kann das Band 140 wirksam mit einem Impulsgeber 144 oder einer anderen Bewegungsmessungsvorrichtung verbunden sein. Eine Reihe von Anwesenheitsdetektoren 146, 147, 148 kann bei Ausführungsbeispielen mit Bezug auf die Banken 110, 120 130 vorgesehen sein. Die Detektoren 146, 147, 148 können bei einer Ausführungsform herkömmliche Photodetektoren sein. Sie entdecken den Durchlauf jedes Teils oder Objekts, Teil N (150), Teil N + 1 (152), Teil N + 2 (154) in das Sichtfeld der jeweiligen Bank 110, 120, 130. Es muss bemerkt werden, dass der Begriff „Objekt“, wie er hier benutzt wird, einzelne Teile oder einen einzelnen Bereich eines Gesamtteils oder einer Oberfläche einschliessen kann. Beispielsweise, kann ein „Objekt“, wie hier definiert, einen Bereich eines fortlaufenden Netzes umfassen, das sich durch das Sichtfeld jeder Bank bewegt.
-
Beispielsweise liefern der Impulsgeber 144 und/oder Detektoren 146, 147, 148 ein Signal an eine Auslösererzeugungsschaltung mit herkömmlichem Aufbau. Die Auslösererzeugungsschaltung kann einen externen Auslöser an jede der Banken und/oder Kameras in verschiedenen Ausführungsformen liefern. Bei einem grundlegenden Beispiel einer Auslöseranordnung wird der externe Auslöser auf jede Kamera gleichzeitig auf jedes dritte Teil, das das Sichtfeld jeder Bank passiert, angewendet. Zu diesem Zeitpunkt wird ein Bild des betreffenden Teils oder Objekts innerhalb des Sichtfeldes jeder Kamera erfasst. Der Einsatz von mehreren Verarbeitungsvorrichtungen in einer Bank hilft, sicher zu stellen, dass ein sich schnell bewegendes Teil vom Bilderfassungssystem durch einen oder mehrere Prozessoren (im Ganzen oder teilweise durch jeden Prozessor) vor dem nächsten Prüfzyklus voll aufgenommen und verarbeitet wird. Beispielsweise kann jede Kamera, die einer Bank zugeordnet ist, ein besonderes Merkmal (Deckel, Barcode, Etikett) usw, prüfen, und der Master kombiniert diese Ergebnisse, um festzustellen, ob die Prüfung vollständig und gültig ist. Es sollte wiederum klar sein, dass die Anzahl und die Anordnung von einzelnen Kameras und/oder Prozessoren höchst variabel ist, und die Anzahl der Kameras oder Prozessoren, die einer Bank zugeordnet ist, kann sich von der einer anderen unterscheiden. Ebenso können, während bei diesem Beispiel der Prüfzyklus auf einem gleichzeitigen Auslöserereignis beruht, Bilder auf der Basis von unabhängigen Auslöserereignissen oder anderen Faktoren (wie etwa einem selbstauslösenden Bildverarbeitungssystemprozess innerhalb eines oder mehrerer Prozessoren) erfasst und verarbeitet werden. Es muss angemerkt werden, dass der nächste Prüfzyklus bei diesem Beispiel so arbeiten würde, dass Bank 110 Teil N + 3 (nicht gezeigt) prüft, während die Banken 120, beziehungsweise 130, die Teile N + 4 und N + 5 prüfen (nicht gezeigt).
-
Die Prozessoren in den verschiedenen Banken sind miteinander verbunden, wobei ein gemeinsames Ethernet-Netzwerk eingesetzt wird, das durch die Verbindungen zwischen Prozessoren und zugeordneten Kameras in den Banken, wie gezeigt, dargestellt wird. Es wird ausdrücklich in Betracht gezogen, dass andere Netzwerk- oder Kommunikationstopologien bei alternativen Ausführungsformen eingesetzt werden können. Wie beispielsweise gezeigt, wird die am weitesten links dargestellte bank 110 als „Master“-Bank bezeichnet und die mittleren und die am weitesten rechts gelegenen Banken 120, 130 sind „Slave“-Banken. Ebenso ist innerhalb jeder Bank ein Prozessor „M“ ein Master 112, 122, 132 und zwei miteinander verbundene Prozessoren sind Slaves „S“ 114, 116, 124, 126, 134, 136 innerhalb der speziellen Bank. Die Verbindungen 160, 162 und 164 definieren den Fluss der Ergebnisse SR1, SR2, SR3 von den Slaves zum Mastersystem innerhalb jeder Bank. Die Verbindungen 170, 172 stellen den Fluss der konsolidierten Ergebnisse CR1, CR2 für die Prüfung jedes Teils 152, 154 dar, die zum Gesamtsystemmaster 112 in Bank 110 gesendet werden. Dieser Master 112 kann wiederum einen vollständigen Ergebnissatz für alle drei Teile 150, 152, 154 an einen externen Controller 180 senden. Der externe Controller 180 (zum Beispiel ein PLC) koordiniert die Ergebnisse aller Prozessoren und kann dazu verwendet werden, Alarm auszusenden, ein Bewegungssteuersystem oder einen Teileauswurf zu betätigen, das Band zu stoppen oder ein gutes/fehlerhaftes Teil oder einen Oberflächenbereich zu identifizieren. Er kann eine Anwendung umfassen, die Ergebnisse interpretiert oder kann eine elementare Eingabe/Ausgabevorrichtung sein (zum Beispiel einen Teileauswurf/Kicker betätigen). Bei einigen Ausführungs-beispielen kann der Gesamtsystemmaster 112 Geräte direkt steuern, wie etwa einen Teileauswurf, ohne dass ein externer Controller 180 nötig ist. Es sollte klar sein, dass der Systemdurchsatz beinahe linear anwachsen kann, wenn mehr Banken von Kameras und Verarbeitungsvorrichtungen zur Gesamtvorrichtung hinzugefügt werden, unter der Annahme, dass die Konsolidierung der Ergebnisse sehr viel weniger Verarbeitungsresourcen erfordert als die Prüfverarbeitung, was naturbedingt bei jeder Verarbeitungsvorrichtung auftritt. Prinzipiell kann diese Art von Hierarchie unendlich ausgedehnt werden, aber in der Praxis liefern zwei Ebenen, wie dargestellt, überragende Ergebnisse für ein weites Anwendungsgebiet.
-
Wenn der Controller 180 über einen einzigen Master 112 verbunden wird, ist der PLC oder ein anderer externer Controller frei von Mehrfacheingaben, die eine externe Synchronisierung erfordern, was ansonsten den Verarbeitungs-durchsatz des Controllers erhöhen würde. Es wird eher ein synchronisiertes und konsolidiertes Ergebnis für jeden Prüfzyklus geliefert. Dieses konsolidierte Ergebnis kann nicht alle der zugrunde liegenden Systemergebnisse einschließen (aufgrund eines versäumten Auslösers bei einem oder mehreren Prozessoren, usw.), doch der nächste Zyklus, der alle erforderlichen Ergebnisse enthält, umfasst eine Systemrückversetzung in den alten Zustand, bei der volle Synchronisierung der Ergebnisse in diesem zurückversetzten Zyklus sichergestellt ist).
-
Nun wird auf 2 Bezug genommen, die schematisch die verallgemeinerten Anwendungen 210, die sich in jedem Slaveprozessorsystem 200 befinden, darstellt. Diese Anordnung ist eine Darstellung einer großen Vielfalt von möglichen Organisationformen, die als Hardware, Software oder eine Kombination aus Hardware und Software implementiert werden können. Das System 200 schließt einen Bilderfassungsprozess (oder -prozesse) 220 ein, die externe Auslösersignale 222 von einer geeigneten Quelle, wie oben beschrieben, empfängt. Die Auslösesignale können auch interne Auslöseranweisungen umfassen, die von anderen Anwendungen innerhalb des Systems oder über das Netzwek empfangen werden. Der/die Bilderfassungsprozess(e) 220 sind verantwortlich für die Abbildung des Teils, Objekts oder des in Frage kommenden Bereiches zur geeigneten Zeit. Jedes erfasste Bild wird durch den/die Bildverarbeitungssystemprozess(e) 230 gespeichert und analysiert/verarbeitet. Die Bildverarbeitungssystemprozesse setzen jede annehmbare Prüf- oder Bildverarbeitungsanwendung ein, einschließlich derer, die trainierte Abbildungen eines Modellteils, -objektes oder -oberfläche (Subjekt) verwenden. Der Prozess kann das Bestehen/Verfehlen einer Prüfung, Position von Merkmalen in bis zu vier Dimensionen (d. h. die Position von Objekten in drei physikalischen Dimensionen plus die vierte Dimension – Position des Objekts zu dem Zeitpunkt), Lesen von Charakter- oder Symbolkodes, Messung der Dimensionen, Farbe usw. einschließen. Die Bildverarbeitungs-systemprozesse legen fest, ob ein vorgegebenes Subjekt den vorher festgelegten Prüfregeln folgt und einen absoluten Wert (bestanden/verfehlt), ein Ergebnis oder andere Information in Bezug auf jedes geprüfte Subjekt erzeugt.
-
Das Slavesystem 200 schließt weiter Netzwerkprozesse 240 ein, die Kommunikation mit anderen Vorrichtungen ermöglichen, einschließlich anderer Master- oder Slaveprozessorsysteme. Die Netzwerkprozesse können konventionelles Ethernet oder andere physikalische Kommunikationskanäle einsetzen, und sie können TCP/IP oder jedes andere annehmbare Protokoll wie etwa UDP verwenden, um Kommunikation herzustellen. Die Daten, die von den Bildverarbeitungssystemprozessen 230 erzeugt werden, einschließlich der Prüfergebnisse 242, sind über das Netzwek unter Verwendung der Netzwerkprozesse 240 gerichtet. Die Ergebnisse 242 sind an ein BankMmasterprozessorsystem adressiert. Wie unten beschrieben, liefert die Slaveanwendung 250 Synchronisierungsinformation (Zeitmarken, sequentielle Kennungen usw.) an die Prüfergebnisse 242. Die Slaveanwendung kann alternatierend als eine Reihe von Sendeanwendungen definiert werden, die Informationen an einen Master übermitteln und Empfangsanwendungen, die Informationen von einem Master empfangen, wie sie gebraucht werden, um hierin beschriebene Funktionen auszuführen. Das Timing der verschiedenen Vorrichtungen wird mit Hilfe einer Uhrenschaltung 260, die als gemeinsame Zeitreferenz dient, aufrechterhalten und synchronisiert, wie auch weiter unten beschrieben. Die Uhr 260 kann entsprechend IEEE 1588 bei einem Ausführungsbeispiel implementiert werden, obwohl andere Standards ausdrücklich in Betracht gezogen werden. Im Allgemeinen sendet eine Masteruhr innerhalb einer Vorrichtung (beispielsweise der Systemmaster 112) die aktuelle Zeit an die Slavebanken und zugeordnete Prozessoren. Die anderen Prozessoren verwenden ihre Uhr, um den relativen Versatz zwischen ihren Uhren und der Masteruhr festzustellen. Meldungen werden entsprechend dem Standardprotokoll ausgetauscht, um die korrekte Zeit bei jeder Vorrichtung festzustellen.
-
3 zeigt ein Beispiel eines Masterprozessorsystems 300 mit einem Anwendungsstapel 310. Im Allgemeinen ist der Aufbau und die Funktion des Masterprozessors ähnlich dem/den Slaveprozessor(en) mit einigen Unterschieden, die ihn in die Lage versetzen als Bankmaster oder Gesamtsystemmaster in der Anordnung von Prozessoren zu arbeiten. Der/die Bilderfassungsprozess(e) arbeiten ähnlich wie der/die Prozess(e) 220 des oben beschriebenen Slaveprozessors 200. Sie wirken auf interne und/oder externe Auslöser 222, um Abbildungen von Subjekten zu erzeugen und zu speichern. Bildverarbeitungssystemprozess(e) 330 arbeiten auch ähnlich wie die (230) oben beschriebenen. Netzwerkprozesse (340) für den Master 300 werden angepasst, um konsolidierte Ergebnisse 342, die aus den Ergebnissen für den Master selber und allen Slaveergebnissen, die an den Master adressiert sind, bestehen, zu übermitteln. Der Empfang von Slaveergebnissen 242 wird von den Netzwerkprozessen 340 bearbeitet und zur Mastersynchronisierungsanwendung weitergeleitet, die die Funktionen der Slaveanwendung 250, die oben beschrieben ist, zur Bearbeitung der selbsterzeugten Ergebnisse einschließen kann, aber auch die Organisation der empfangenen Slaveergebnisse von anderen Prozessoren, wie oben beschrieben, bearbeitet. Die Anwendung 350 wirkt mit der gemeinsamen Referenzuhr 360 zusammen, die auf dem IEEE 1588 Standard oder einer anderen Zeitreferenz arbeitet, um Synchronisierung zwischen den miteinander verbundenen Prozessorsystemen zu liefern. Wenn die Uhr 360 sich im Master (112) befindet, kann die Uhr als Systemmasteruhr arbeiten. Ebenso, wenn ein spezielles System 300 als Gesamtsystemmaster (112) handelt, kann die Synchronisierungsanwendung 350 Masterbanksynchronisierungsprozesse 352 (gestrichelt gezwichnet), die geeignet sind, die konsolidierten Ergebnissse 370 von anderen Slaveebanken (120, 130) zu bearbeiten, einschließen. Im Allgemeinen können Masteranwendungen und Synchronisierungsprozesse verschiedene Sende- und Empfangsanwendungen einschließen, die Daten, die sie von den Slaveprozessoren und Slavebanken erhalten haben, bearbeiten, und die Daten auf Auslösern und Uhren an die Slaves übermitteln, und konsolidierte Ergebnisse an einen Controller übermitteln. Diese konsolidierten Ergebnisse 370 bestehen aus einem Bankmaster und Slaveergebnissen, die vom Bankmaster (122, 132) über das Netzwerk übertragen werden. Die übertragenen, konsolidierten Ergebnisse 342 schließen dann alle Prozessorergebnisse aus allen Banken ein, und diese Ergebnisse werden an den Prozessor (Block 380) übertragen.
-
Nun wird die Arbeit jedes Slaveprozessorsystems und Masterprozessorsystems bei einem Prüfzyklus genauer beschrieben mit Bezug auf die Flussdiagramme der 4, beziehungsweise 5. Wenn man zuerst den Mastervorgang 400 (4) betrachtet, so beginnt der Zyklus (Schritt 410) damit, dass das System auf ein Auslösersignal (Entscheidungsschritt 412) wartet. Nach Empfang eines Auslösers (über Entscheidungsschritt 412) beginnt das Mastersystem ein Bild zu erfassen (Schritt 414). Das System erzeugt auch eine eindeutige Kennung (Schritt 416) und sendet eine Auslösermeldung an ein oder mehrere Slavesysteme (Schritt 418). Die Meldung enthält die erzeugte Kennung, so dass der Prüfzyklus eindeutig identifiziert wird. Die Meldung kann auch eine Zeitmarke vom Mastersystem enthalten, wenn Master und Slave(s) eine gemeinsame Zeitreferenz benutzen, wie etwa die oben beschriebene IEEE 1588 Uhrenanordnung. Sie kann auch eine Positionsreferenz enthalten, wie etwa eine Impulsgeberposition oder Bewegungssteuerungskoordinaten. Die Erzeugung und Weiterleitung der Meldung über das Netzwerk geschieht, während lokale Bilderfassung und -verarbeitung im Master weiterlaufen. Es wird angemerkt, dass eine Zeitmarke und/oder eine Positionsreferenz vorteilhaft sind, wenn verschiedene Kameras unabhängig oder in einer bekannten Reihenfolge ausgelöst werden. Wenn die Ergebnisse nicht mit der richtigen Zeitmarke oder Positionsreihenfolge eingehen, kann ein Ergebnis zurückgewiesen werden – egal, wann die Ergebnisse tatsächlich über das Netzwerk empfangen wurden.
-
Wie in 5 gezeigt, startet der Slavesystemprozess 510 nach Erwarten und Empfang einer Auslösermeldung oder eines externen oder internen Auslösersignals (Entscheidungsschritt 512). Der Slave beginnt dann die Bilderfassung (Schritt 514). Der Prozess 500 nimmt die Zeitmarke und/oder Positionsreferenz auf, entweder als Inhalt der Auslösermeldung oder von der eigenen internen Uhr des Slave. Die Bilderfassung des Slave kann direkt durch die Meldung oder durch ein externes oder internes Signal ausgelöst werden, und sie ist ebenfalls zeitlich markiert. Wenn die Bilderfassung des Slave fertig ist, bestimmt er, ob eine Auslösermeldung empfangen wurde und ob ihre Zeitmarke innerhalb des vorbestimmten Zeit- oder Positionsfenster im Verhältnis zur Auslösezeit oder -position des Slave fällt (Entscheidungsschritte 516 und 518). Das Zeit-/Positionsfenster kann benutzerspezifizisch oder beliebig festgelegt sein, und es kann in jede Richtung unbegrenzt sein, um verschiedene Auslösereihen zuzulassen. Wenn keine solche Meldung innerhalb des spezifizischen Zeit-/Positionsfensters empfangen wird, wird ein Fehler erzeugt (Schritt 520). Ansonsten verarbeitet der Slave das Bild (Schritt 522) und sendet Ergebnisse zurück zum Mastersystem einschließlich der eindeutigen Kennung des Prüfzyklus von der Auslösermeldung des Master (Schritt 530). Das vervollständigt den speziellen Prüfzyklus für dieses Slavesystem, das nun die nächste Auslösermeldung erwartet (Schritte 510, 512).
-
Nun wird wieder der Masterprozess 400 der 4 betrachtet, wobei Schritt 418 verfolgt wird, bei dem eine Auslösermeldung zu jedem Slavesystem geschickt wird. Der Master beendet seine eigene Bilderfassung (Schritt 420) und verarbeitet das Bild mit Hilfe von geeigneten Bildverarbeitungssystemprozessen. Der Prozess 400 kann auf dem Masterbankmaster geschehen (Systemmaster) oder auf dem Master der Slavebank, wie weiter unten beschrieben, wobei der Unterschied in der Anzahl der konsolidierten Ergebnisse und dem letztendlichen Ziel der Ergebnisse besteht. Beim Prozess 400 wird ein Ergebnis aus diesem Prozessschritt 422 erzeugt. Das Ergebnis schließt die eindeutige Prüfkennung ein und kann eine Zeitmarke, die von der Masteruhr erzeugt wird, einschließen. Wenn der Master bereit ist die Ergebnisse seiner eigenen Prüfung mit Ergebnissen eines oder mehrerer Slavesysteme zu kombinieren, legt er zuerst fest, ob alle erforderlichen Ergebnisse empfangen wurden (Entscheidungsschritt 430). Er wartet auf den Empfang solcher Ergebnisse bis zu einer spezifizischen Zeitüberschreitung oder Position. Wenn erforderliche Ergebnisse vor der Zeitüberschreitung oder innerhalb der Position empfangen werden (Entscheidungsschritt 430), bestätigt der Prozess 400, dass die eindeutige Prüfkennung von dem/den Slave(s) mit der Prüfkennung des Master (aus Schritt 416) für den gegenwärtigen Prüfzyklus (Entscheidungsschritt 440) übereinstimmt. Wenn die Prüfkennungen übereinstimmen, werden die Ergebnisse akzeptiert und kombinierte Ergebnisse werden durch den Master im Schritt 450 erzeugt. Diese Kombination kann die Form eines Datenpackets haben, das auf jede akzeptable Art formatiert ist, damit die Informationen durch eine angschlossene Vorrichtung entschlüsselt werden können. Sie kann entsprechende Kopfzeilen, Enden oder andere formatierte Datenfelder einschließen. Wenn der Prozess 400 auf einem Slavebankmaster läuft, werden die kombinierten Ergebnisse zum Masterbankmaster übertragen (Schritt 460) und gemäß Schritt 450 auf dem Masterbankmaster kombiniert. Die Etgebnisse der gesamten Systemkombination können dann an den Controller gemäß Schritt 460 übertragen werden (laufen auf dem Masterbankmaster). Bei einigen Ausführungsformen kann der gesamte Systemmaster direkt externe Vorrichtungen steuern, wie etwa Mechanismen zum Teileauswurf, die auf den kombinierten Ergebnissen beruhen, ohne dass es erforderlich wäre, diese an einen externen Controller zu kommunizieren. Der spezielle Prüfzyklus ist dann vollständig (Schritt 470).
-
Die Prozesse 400, 500 ermöglichen automatische Erkennung und Rückgewinnung versäumter und unechter Auslöser zum Master und/oder den Slaves. Wenn ein Slave einen Auslöser versäumt hat oder eine Stromunterbrechung oder den Verlust eines Netzwerkpacketes als Ergebnis der Meldung erleidet, unterbricht der Master das Warten auf eine Antwort, die nie kommt (Schritt 432) und erzeugt einen Fehler (Schritt 480). Ein Fehler, der in einer Slavebank auftritt, wird von einem Slavebankmaster zum Masterbankmaster übermittelt (Systemmaster). Er wird dann über den Schritt 460 an den Controller weitergeleitet. Wenn der Fehler durch den Masterbankmaster (Systemmaster) erzeugt wurde, wird der Fehler direkt über den Schritt 460 an den Controller weitergeleitet. Wenn ein Slave einen Extraauslöser empfängt oder der Master eine Stromunterbrechung oder Verlust des Netzwerkpackets der Auslösermeldung hat, dann erkennt der Slave das Problem sofort, wenn er feststellt, dass innerhalb eines festgelegten Auslösefensters keine Meldung erhalten wurde, und erzeugt einen Fehler. In jedem Fall nimmt das System die normale Arbeit automatisch innerhalb von ein oder zwei Prüfzyklen wieder auf.
-
Allgemeiner gesprochen wird Mehrphasensynchronisierung erreicht, wenn jedes Mastersystem innerhalb einer Phasenbank abwechselnd ein Slave eines Master einer höheren Ebene ist. Es wird ausdrücklich in Betracht gezogen, dass drei oder mehr Ebenen von Master- und Slavevorrichtungen zusammen arrangiert werden können. Ebenfalls wird ausdrücklich in Betracht gezogen, dass der Gesamtsystemmaster ein separater Controller sein kann oder dass diese Funktion von dem Mastersystem einer Bank von Prozessoren wahrgenommen werden kann, wie in 1 gezeigt.
-
Nun wird 6 betrachtet, die eine alternative Ausführungsform einer Mehrfachbildverarbeitungssystem-prozessors-(und zugeordneter Kamera)Vorrichtung 600 darstellt. Bei diesem Ausführungsbeispiel sind eine Masterbank 610 und mindestens eine Slavebank 620 vorgesehen. Die Ergebnisse jedes Slaveprozessors 612, 622 werden mit denen des Bankmaster 614, 624 konsolidiert. Die konsolidierten Ergebnisse jeder Masterbank wird dann mit einem diskreten Masterprozessor 630 kombiniert, der den Synchronisierungsprozess 640 auf den kombinierten Ergebnissen in gleicher Weise wie der Masterprozess 400 in 4, bearbeitet. Bei einem weitern Ausführungsbeispiel können alle Ergebnisse zum Master 614 der Masterbank geleitet werden, aber weiter an den Prozessor 630 zur letzten Synchronisierung gegeben werden. Die kombinierten Ergebnisse oder jede Fehlerbedingung werden vom Masterprozessor 630 zum externen Controller 650 weitergegeben, wie allgemein oben beschrieben. Der diskrete Prozessor kann auch die eindeutige Kennung des Prüfzyklus und eine Zeitmarke, die auf einer internen Referenzuhr beruht, erzeugen.
-
Es sollte klar sein, dass die oben beschriebene Anordnung ein hoch skalierbares und allgemein fehlertolerantes System und Verfahren zur Implementierung eines Mehrfachkameraprüfsystems zur Verfügung stellt. Die Anzahl einzelner Bildverarbeitungssystemkameras ist ausgesprochen variabel und die Anzahl der Ebenen der Master- und Slavehierarchie ist ebenso variabel. Im Gegensatz zu früheren Näherungen, die einen externen PLC einsetzen, um Prüfungen zu synchronisieren, ermöglicht es diese Erfindung, dass dezentrale Bildverarbeitungsuntersysteme sich untereinander mit Hilfe eines Kommunikationskanals, wie etwa Ethernet, koordinieren. Ebenso liefern die Ausführungsbeispiele, im Gegensatz zu früheren Näherungen, wie etwa der Einsatz von WriteResult- und ReadResult-Funktionstypen, fehlertolerante Kommunikation egal wie Prüfungen ausgelöst werden, und können wesentlich schneller Fehler entdecken und sich davon erholen. Ausserdem liefert das Ausführungsbeispiel eine eindeutige und neue Technik für Mehrphasensynchronisierung von Prüfergebnissen.
-
Das Obige stellt eine genaue Beschreibung der Ausführungsbeispiele der Erfindung dar. Verschieden Änderungen und Ergänzungen können ohne Abweichung vom Sinn und Umfang dieser Erfindung gemacht werden. Jedes der verschiedenen oben beschriebenen Ausführungsbeispiele kann mit anderen beschriebenen Ausführungsbeispielen kombiniert werden um mehrere Merkmale zu liefern. Weiterhin, während das oben Gesagte eine Anzahl von separaten Ausführungsformen der Vorrichtung und des Verfahrens der vorliegenden Erfindung beschreibt, ist das, was hier beschrieben wurde, lediglich eine Erläuterung der Anwendung der Grundlagen der vorliegenden Erfindung dar. Beispielsweise dienen die Begriffe „Master“, „Slave“, „Bank“ und verwandte Begriffe zur Erläuterung von verschiedenen hierarchischen und organisatorischen Anordnungen der Kommunikation zwischen einer Vielzahl Bildverarbeitungssystemprozessoren, und können nicht als absolute Definitionen einer besonderen baulichen Anordnung herangezogen werden. Darüberhinaus können die hier beschriebenen verschiedenen Vorgänge und Prozesse mit Hilfe von Hardware, Software einschließlich computerlesbarer Programmanweisungen, oder einer Kombination von Hardware und Software implementiert werden. Dementsprechend ist diese Beschreibung nur als Beispiel zu sehen und nicht als anderweitige Einschränkung des Umfangs der Erfindung.