DE102012220759A1 - Programmbearbeitungsumgebung eines maschinell sehenden Systems mit synchronisierten Benutzerschnittstellenmerkmalen - Google Patents

Programmbearbeitungsumgebung eines maschinell sehenden Systems mit synchronisierten Benutzerschnittstellenmerkmalen Download PDF

Info

Publication number
DE102012220759A1
DE102012220759A1 DE102012220759A DE102012220759A DE102012220759A1 DE 102012220759 A1 DE102012220759 A1 DE 102012220759A1 DE 102012220759 A DE102012220759 A DE 102012220759A DE 102012220759 A DE102012220759 A DE 102012220759A DE 102012220759 A1 DE102012220759 A1 DE 102012220759A1
Authority
DE
Germany
Prior art keywords
window
instruction
part program
operations
inspection system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102012220759A
Other languages
English (en)
Inventor
Barry Saylor
Ryan Northrup
Akira Takada
Kozo Ariga
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitutoyo Corp
Original Assignee
Mitutoyo Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US13/297,232 external-priority patent/US8957960B2/en
Application filed by Mitutoyo Corp filed Critical Mitutoyo Corp
Publication of DE102012220759A1 publication Critical patent/DE102012220759A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4093Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by part programming, e.g. entry of geometrical information as taken from a technical drawing, combining this with machining and material information to obtain control information, named part programme, for the NC machine
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/409Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by using manual input [MDI] or by using control panel, e.g. controlling functions with the panel; characterised by control panel details, by setting parameters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N21/00Investigating or analysing materials by the use of optical means, i.e. using sub-millimetre waves, infrared, visible or ultraviolet light
    • G01N21/84Systems specially adapted for particular applications
    • G01N21/88Investigating the presence of flaws or contamination
    • G01N21/8806Specially adapted optical and illumination features
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format
    • G05B2219/35505Display two windows, one with nc-data, other with general application data
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36143Use of icon to represent a function, part of program
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36172Select block, item, highlight, colour this block with respect to rest
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/37Measurements
    • G05B2219/37208Vision, visual inspection of workpiece
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/37Measurements
    • G05B2219/37439Computer assisted inspection, cad interactive with manual commands
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/37Measurements
    • G05B2219/37455After entering one measuring cycle, display in separate window instruction list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20092Interactive image processing based on input by user
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Abstract

Es wird eine Programmbearbeitungsumgebung eines maschinell sehenden Systems bereitgestellt, die eine synchronisierte Auswahl und/oder Identifizierung von damit verbundenen Merkmalen in einer Vielzahl von verschiedenen Benutzerschnittstellenfenstern umfasst. Insbesondere ist eines der Fenster ein Bearbeitungsfenster, in dem eine Teileprogrammdarstellung zur Bearbeitung durch einen Benutzer angezeigt wird. Bei einer Ausführungsform kann ein Benutzer Daten oder eine andere interessierende Funktion in einem Fenster auswählen, das nicht das Bearbeitungsfenster ist (z. B. einem Ergebnisfenster oder einem grafischen Anzeigefenster für Merkmale der Werkstückinspektion), und die verknüpfte Teileprogramm-Anweisungsdarstellung wird in dem Bearbeitungsfenster automatisch hervorgehoben und/oder ausgewählt. Umgekehrt kann eine Teileprogramm-Anweisungsdarstellung durch einen Benutzer in dem Bearbeitungsfenster ausgewählt werden, und die verknüpften Ergebnisse oder Merkmale in einem anderen Fenster werden automatisch hervorgehoben und/oder ausgewählt. Die Navigation in der Benutzerschnittstelle, eine schnelle Bewertung der Programmqualität und die gesamte Effizienz bei dem Erstellen und Bearbeiten von Teileprogrammen werden in einer derartigen Bearbeitungsumgebung erheblich verbessert.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Die vorliegende Anmeldung nimmt die Priorität der voläufigen US-Patentampeldung Nr. 61/560,278 , eingereicht am 15. November 2011, und der US-Patentampeldung Nr. 13/297,232 , eingereicht am 15. November 2011, in Anspruch.
  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft im Allgemeinen maschinell sehende Inspektionssysteme und insbesondere Verfahren zum Erstellen und Bearbeiten von Teileprogrammen auf derartigen Systemen.
  • ALLGEMEINER STAND DER TECHNIK
  • Maschinell sehende Präzisionsinspektionssysteme (bzw. kurz „maschinell sehende Systeme”) können verwendet werden, um präzise Dimensionsmessungen von inspizierten Objekten zu erzielen und um diverse andere Objekteigenschaften zu inspizieren. Solche Systeme können einen Computer, eine Kamera und ein optisches System und einen Präzisionsobjekttisch umfassen, der in mehreren Richtungen bewegbar ist, um es der Kamera zu ermöglichen, die Merkmale eines inspizierten Werkstücks abzutasten. Ein beispielhaftes System nach dem Stand der Technik, das im Handel erhältlich ist, ist die Reihe QUICK VISION® von PC-basierten maschinell sehenden Systemen und die Software QVPAK®, die bei Mitutoyo America Corporation (MAC), Aurora, IL, erhältlich sind. Die Merkmale und der Betrieb der Reihe QUICK VISION® von maschinell sehenden Systemen und der Software QVPAK® werden beispielsweise in „QVPAK 3D CNC Vision Measuring Machine User's Guide”, veröffentlicht im Januar 2003, und in „QVPAK 3D CNC Vision Measuring Machine Operation Guide”, veröffentlicht im September 1996, die hiermit in ihrer Gesamtheit in den vorliegenden Gegenstand mit einbezogen werden, allgemein beschrieben. Dieses Produkt, wie zum Beispiel das Modell QV-302 Pro, ist in der Lage, ein optisches System nach Art eines Mikroskops zu verwenden, um Bilder eines Werkstücks in diversen Vergrößerungen bereitzustellen und um den Objekttisch je nach Bedarf zu bewegen, um die Werkstückoberfläche über die Grenzen eines beliebigen einzelnen Videobildes hinaus zu durchqueren. Ein einzelnes Videobild umfasst typischerweise nur einen Teil des beobachteten oder inspizierten Werkstücks anhand der gewünschten Vergrößerung, der Messauflösung und der physischen Größeneinschränkungen dieser Systeme.
  • Maschinell sehende Inspektionssysteme verwenden im Allgemeinen eine automatisierte Videoinspektion. Das US-Patent Nr. 6,542,180 lehrt diverse Aspekte einer derartigen automatisierten Videoinspektion und wird hiermit in ihrer Gesamtheit in den vorliegenden Gegenstand mit einbezogen. Wie es das Patent '180 lehrt, haben automatisierte messtechnische Videoinspektionsinstrumente im Allgemeinen eine Programmierfähigkeit, die es ermöglicht, dass ein Benutzer eine automatische Inspektionsereignissequenz für jede bestimmte Werkstückkonfiguration definiert. Dies kann beispielsweise durch eine textbasierte Programmierung oder durch einen Aufzeichnungsmodus, der die Inspektionsereignissequenz nach und nach „erlernt”, indem er eine Sequenz von Maschinensteueranweisungen speichert, die einer Sequenz von Inspektionsvorgängen entspricht, die von einem Benutzer anhand einer grafischen Benutzerschnittstelle ausgeführt werden, oder durch eine Kombination der beiden Verfahren umgesetzt werden. Ein derartiger Aufzeichnungsmodus wird häufig als „Lernmodus” oder „Trainingsmodus” bezeichnet. Sobald die Inspektionsereignissequenz im „Lernmodus” definiert ist, kann eine derartige Sequenz dann verwendet werden, um im „Programmlaufmodus” automatisch Bilder eines Werkstücks zu erfassen (und zusätzlich zu analysieren oder zu inspizieren).
  • Video-WerkzeugeWerkzeugWerkzeuge (bzw. kurz „WerkzeugeWerkzeugWerkzeuge”) und andere grafische Benutzerschnittstellenmerkmale können manuell verwendet werden, um manuelle Vorgänge zur Inspektion- und/oder Maschinensteuerung (im „manuellen Modus”) vorzunehmen. Ihre Einrichtungsparameter und ihr Betrieb können auch im Lernmodus aufgezeichnet werden, um automatische Inspektionsprogramme, bzw. „Teileprogramme”, zu erstellen. Die Video-WerkzeugWerkzeugeWerkzeuge können beispielsweise WerkzeugWerkzeuge zur Kanten-/Randerkennung, Autofokus-WerkzeugWerkzeuge, WerkzeugWerkzeuge zum Form- oder Musterabgleich, WerkzeugWerkzeuge zur Dimensionsmessung und dergleichen umfassen. Andere Merkmale der grafischen Benutzerschnittstelle können Dialogfenster umfassen, die Datenanalyse, Programmierung von Schritt- und Wiederholungsschleifen und dergleichen betreffen. Beispielsweise werden derartige WerkzeugWerkzeuge routinemäßig bei diversen handelsüblichen maschinell sehenden Inspektionssystemen verwendet, wie etwa bei der zuvor erörterten Reihe der maschinell sehenden Systeme QUICK VISION® und der damit verbundenen Software QVPAK®.
  • Die Maschinensteueranweisungen, welche die spezifische Inspektionsereignissequenz umfassen (d. h. die Art und Weise, wie jedes Bild zu erfassen ist und wie jedes erfasste Bild zu analysieren/inspizieren ist), werden im Allgemeinen als „Teileprogramm” bzw. „Werkstückprogramm” gespeichert, das für die bestimmte Werkstückkonfiguration spezifisch ist. Beispielsweise definiert ein Teileprogramm, wie jedes Bild zu erfassen ist, etwa wie die Kamera im Verhältnis zum Werkstück zu positionieren ist, mit welchem Beleuchtungsniveau, mit welchem Vergrößerungsniveau usw. Ferner definiert das Teileprogramm, wie ein erfasstes Bild zu analysieren/inspizieren ist, beispielsweise unter Verwendung eines oder mehrerer Videowerkzeuge, wie etwa Videowerkzeuge zur Kanten-/Randerkennung.
  • Das Bearbeiten eines Teileprogramms für ein maschinell sehendes Inspektionssystem ist eine schwierigere Aufgabe als das Bearbeiten eines Programms für eine Werkzeugmaschine oder einen Montageroboter oder dergleichen. Beispielsweise umfassen Teileprogramme für maschinell sehende Inspektionssysteme spätere Teile, die Vorgänge steuern und/oder bildabhängige Messergebnisse bereitstellen, die mindestens teilweise von den Ergebnissen, die durch die Ausführung eines vorherigen Teils des Programms bestimmt werden, und/oder von der bestimmten Instanz eines Werkstücks, das verwendet wird, um die Bilder bereitzustellen, die für die Inspektionsvorgänge wesentlich sind, abhängen. Ferner kann die Benutzerschnittstelle des Lernmodus für solche Systeme (die zum Erstellen und Bearbeiten von Teileprogrammen verwendet wird) besonders aufwändig sein, das sie ein gleichzeitiges Anzeigen eines Echtzeitbildfensters, einer Videowerkzeug-Leistenanzeige, eines Teileprogramm-Darstellungsfensters, eines Ergebnisausgabefensters (kurz Ergebnisfenster), eines grafischen Anzeigefensters für Inspektionsmerkmale, eines Positionsfensters, eines Beleuchtungsfensters und einer Messwerkzeug-Anzeige benötigt, damit der Benutzer die Ursachen und Auswirkungen seiner Programmieraktionen richtig bewertet, um hochwertige Teileprogramme zu erstellen. Bei einer derartigen Bearbeitungsumgebung kann schon das Erkennen der Position aller Auswirkungen, die mit einer Teileprogrammanweisung verknüpft sind, schwierig sein. Wenn ein Benutzer ein teilweise fertiggestelltes Teileprogramm speichert und das Teileprogramm zu einem späteren Zeitpunkt erneut aufruft, um die Programmierung zu ändern oder zu beenden, kann es für ihn noch schwieriger sein, den richtigen Zusammenhang zwischen den Teileprogrammanweisungen und ihren verknüpften Auswirkungen, die in diversen Fenstern wiedergegeben werden, zu erkennen. Es besteht ein Bedarf an einer Bearbeitungsumgebung, welche die Benutzerschnittstellennavigation, eine schnelle Bewertung der Programmqualität und die gesamte Effizienz der Erstellung und Bearbeitung von Teileprogrammen für ein maschinell sehendes Inspektionssystem verbessern kann.
  • KURZDARSTELLUNG
  • Die vorliegende Kurzdarstellung wird bereitgestellt, um eine Reihe von Konzepten in vereinfachter Form einzuführen, die nachstehend in der ausführlichen Beschreibung näher beschrieben werden. Diese Kurzdarstellung ist nicht dazu gedacht, die Hauptmerkmale des beanspruchten Gegenstandes zu identifizieren, und ist auch nicht dazu gedacht, als Hilfe zum Bestimmen des Umfangs des beanspruchten Gegenstandes verwendet zu werden.
  • Um die zuvor erörterten Überlegungen zu behandeln, wäre es wünschenswert, dass ein maschinell sehendes Inspektionssystem eine Bearbeitungsumgebung bereitstellt, die Merkmale umfasst, welche die Benutzerschnittstellennavigation, eine schnelle Bewertung der Programmqualität und die gesamte Effizienz der Erstellung und Bearbeitung von Teileprogrammen für ein maschinell sehendes Inspektionssystem verbessern kann, indem sie die Beziehungen zwischen Teileprogrammanweisungen, die in einem Bearbeitungsfenster dargestellt werden, und dem damit verbundenen Betriebskontext und/oder den Ergebnissen, die in anderen Fenstern der Benutzerschnittstelle angezeigt werden, angibt. In einer derartigen Bearbeitungsumgebung kann der Benutzer die Beziehungen zwischen Ursache und Wirkung zwischen diversen Teileprogrammanweisungen in die Ergebnissen besser erkennen und sich sogar bis zu den gewünschten Teilen der Benutzerschnittstelle und/oder den gewünschten spezifischen Teileprogrammanweisungen in dem Bearbeitungsfenster begeben, indem er ein Ergebnis auswählt, das ihn interessiert und das in einem anderen Fenster angezeigt wird. Dies ist besonders wichtig, wenn das Teileprogramm erstellt und bearbeitet wird, indem aktive Steuervorgänge, die von einem Benutzer des maschinell sehenden Inspektionssystems eingegeben werden, aufgezeichnet werden, indem der Benutzer die Einzelheiten seiner Steuervorgänge und/oder Teileprogrammanweisungen basierend auf dem sich ergebenden Zustand des maschinell sehenden Inspektionssystems und/oder den Messergebnissen, die mit diesen Steuervorgängen und/oder Teileprogrammanweisungen verknüpft sind, intuitiv auswählt, bewertet und/oder freigibt.
  • Oft wird die Angabe eines Problems oder eine mangelnde Robustheit der Teileprogrammieranweisungen durch ein unerwartetes bzw. „Außertoleranz-” Ergebnis in einem Ergebnisfenster oder durch eine fehlplatzierte Messfunktion in einem grafischen Anzeigefenster oder dergleichen und nicht in den Teileprogrammanweisungen selber angegeben. Die fehlerhaften Teileprogrammieranweisungen sind jedoch nur in dem Bearbeitungsfenster so einsehbar, dass sie verständlich sind und zuverlässig bearbeitet oder ergänzt werden können. Ferner können häufig fehlerhafte Teileprogrammieranweisungen, die mit einem solchen angezeigten Ergebnis verknüpft sind, nicht in dem Bearbeitungsfenster zu sehen sein, weil das Bearbeitungsfenster eine eingeschränkte Größe in einer überfüllten Benutzerschnittstelle aufweist, und ein Teileprogramm sehr viele Anweisungen und/oder entsprechende Anweisungsdarstellungen aufweisen kann. Bisher hatte kein universelles maschinell sehendes Inspektionssystem, und insbesondere kein System, das aktive benutzergesteuerte Vorgänge aufzeichnet, um ein Teileprogramm zu erstellen (z. B. im Gegensatz zu Programmiersystemen, die auf einfachen grafischen Objekten oder Text basieren), eine Bearbeitungsumgebung bereitgestellt, welche die Beziehungen zwischen den Anweisungsdarstellungen eines Teileprogramms in einem Bearbeitungsfenster und den damit verbundenen Betriebskontext und/oder die Ergebnisse, die in einem anderen Fenster einer Benutzerschnittstelle angezeigt werden, im Verlauf von Bearbeitungsvorgängen zuverlässig, robust und praktisch angibt.
  • Um diese wünschenswerte Bearbeitungsumgebung zu unterstützen, wird hier eine Programmbearbeitungsumgebung eines maschinell sehenden Systems, einschließlich eines Verfahrens, das eine synchronisierte Auswahl und/oder Identifizierung von damit verbundenen Merkmalen in einer Vielzahl von verschiedenen Benutzerschnittstellen-Fenstern bereitstellt, offenbart. Insbesondere ist eines der Fenster ein Teileprogramm-Darstellungsfenster, das auch als Bearbeitungsfenster bezeichnet wird, in dem Teileprogramm-Anweisungsdarstellungen zur Bearbeitung durch einen Benutzer angezeigt werden. Bei einer Ausführungsform kann ein Benutzer Daten oder eine andere interessierende Funktion in einem Fenster auswählen, welches nicht das Bearbeitungsfenster ist (z. B. einem Ergebnisfenster oder einem grafischen Anzeigefenster von Werkstückinspektionsmerkmalen), und die dazugehörige Teileprogramm-Anweisungsdarstellung wird automatisch angezeigt und/oder hervorgehoben und/oder in dem Bearbeitungsfenster ausgewählt, so dass Bearbeitungsbefehle auf praktische Art und Weise auf der automatisch hervorgehobenen oder ausgewählten Teileprogramm-Anweisungsdarstellung umgesetzt werden können. Dagegen kann bei einigen Ausführungsformen eine Teileprogramm-Anweisungsdarstellung von einem Benutzer in dem Bearbeitungsfenster ausgewählt werden, und die dazugehörigen Ergebnisse oder Merkmale in einem anderen Fenster können zur Bewertung automatisch hervorgehoben und/oder ausgewählt werden.
  • Damit verbundenen Bearbeitungsmerkmale und -funktionen, die kombiniert mit den hier offenbarten Merkmalen verwendbar sind, werden ebenfalls in der Patentanmeldung mit dem Titel „Machine Vision System Program Editing Environment Including Real Time Context Generation Features”, der US-Patentanmeldung Nr. 13/297,232, eingereicht am 15. November 2011 (nachstehend „Anmeldung '232”); „System and Method Utilizing An Editing Initialization Block In A Part Program Editing Environment In A Machine Vision System”, der US-Patentanmeldung Nr. 13/297,182, eingereicht am 15. November 2011 (nachstehend „Anmeldung '182”); und „Machine Vision System Editing Environment For A Part Program In Which A Continuous Stream Of Image Acquisition Operations Are Performed During A Run Mode”, der US-Patentanmeldung Nr. 13/297,220, eingereicht am 15. November 2011 (nachstehend „Anmeldung '220”), beschrieben, die hiermit jeweils in ihrer Gesamtheit in den vorliegenden Gegenstand mit einbezogen werden. Die hier offenbarten Merkmale sind besonders nützlich, wenn sie kombiniert mit den Kontextgenerierungsmerkmalen verwendet werden, die in der Anmeldung '232 offenbart werden. Dies ist der Fall, weil, wenn ein Benutzer eine willkürliche Stelle in einem Teileprogramm bearbeitet, die durch die hier offenbarten Verfahren erreicht wird, die Maschinenkonfiguration bzw. der „Kontext” zu diesem Zeitpunkt unbekannt sein kann, d. h. dass es möglicherweise unbekannt ist, ob in Bezug auf die Maschinenkonfiguration, die zu erwarten wäre, wenn das Teileprogramm von Anfang an bis zu dieser willkürlichen Stelle in dem Teileprogramm ausgeführt würde, gewisse Arten von Änderung erfolgt sind (z. B. dass das Teil auf dem Objekttisch bewegt wurde usw.). Weitere Bearbeitungen an dem Teileprogramm an dieser „willkürlichen” Stelle, ohne den erwarteten Betriebskontext für diese Stelle (z. B. die Maschinenkonfiguration usw.) herzustellen, können zu unvorhersehbaren Ergebnissen und/oder sogar zu Maschinenschäden führen. Auf Grund solcher Überlegungen war es eine standardmäßige Praxis für einige dieser Systeme, alle Anweisungen eines Teileprogramme von Anfang an bis zu allen eventuellen zusätzlichen Änderungen oder Hinzufügungen zu den Teileprogrammanweisungen, und einschließlich derselben, auszuführen, um zu überprüfen, dass die Änderungen und/oder Hinzufügungen basierend auf einem realistischen Satz von Bedingungen (d. h. dem erwarteten Kontext) für ihren Betrieb programmiert werden. Die Ausführung aller Anweisungen eines Teileprogramms, um eine realistische Betriebsbedingung für Änderungen oder Hinzufügungen zu den Anweisungen bereitzustellen, ist jedoch bei großen Teileprogrammen unpraktisch (z. B. solchen, die zahlreiche Bilderfassungen und/oder Merkmalsinspektionen umfassen), wie sie für maschinell sehende Inspektionssysteme (z. B. Messungen mit Mikrometerauflösung) an makroskopischen Objekten (z. B. Objekten, die über Dutzende oder Hunderte von Millimeter reichen) besonders geläufig sind. Aus diesem Grund wurde das Springen an eine willkürliche Stelle in einem Teileprogramm (z. B. durch die hier offenbarten Verfahren) nicht als wichtiger Bedarf empfunden, weil es bei den maschinell sehenden Inspektionssystemen nach dem Stand der Technik nicht besonders nützlich war. Die Anmeldung '232 offenbart jedoch Verfahren zum Bereitstellen einer Bearbeitungsumgebung, die zuverlässig und robust einen gültigen Bearbeitungskontext für die Teileprogrammierung nahezu in Echtzeit an einer willkürlichen Stelle in einem Teileprogramm während Bearbeitungsvorgängen bereitstellt, was die Nützlichkeit und Zeitersparnisse, die mit den hier offenbarten Verfahren verknüpft sind, erheblich steigert.
  • Somit umfasst bei einigen Ausführungsformen der vorliegenden Erfindung, wie es nachstehend und in der Anmeldung '232 beschrieben wird, ein maschinell sehendes Inspektionssystem ferner einen Programmlaufmodus, einen Lernmodus und einen Bearbeitungsteil. Der Programmlaufmodus ist betriebsfähig, um ein zuvor erstelltes Teileprogramm unter Verwendung eines Ausführungs-Programmlaufmodus auszuführen. Der Lernmodus (bisweilen als Aufzeichnungsmodus bezeichnet) ist betriebsfähig, um eine Benutzereingabe zu empfangen, um Vorgänge des maschinell sehenden Inspektionssystems zu steuern und Teileprogrammanweisungen aufzuzeichnen, die den gesteuerten Vorgängen entsprechen, um ein Teileprogramm zu erstellen. Der Lernmodus umfasst auch eine Bearbeitungsbenutzerschnittstelle, die das Bearbeitungsfenster umfasst, das eine bearbeitbare Teileprogrammdarstellung der Teileprogrammanweisungen umfasst, wobei die Teileprogrammdarstellung Anweisungsdarstellungen umfasst. Der Bearbeitungsteil ist betriebsfähig, um ein Teileprogramm zu bearbeiten, und umfasst einen Bearbeitungsausführungsteil, der betriebsfähig ist, um zuvor aufgezeichnete Teileprogrammanweisungen gemäß einem Ausführungs-Bearbeitungsmodus auszuführen, der anders als der Ausführungs-Programmlaufmodus ist.
  • Bei diversen Ausführungsformen ist der Lernmodus derart konfiguriert, dass er ferner betriebsfähig ist, um automatisch jeweilige Ersatzdaten aufzuzeichnen, die mit einem jeweiligen Satz von aufgezeichneten Teileprogrammanweisungen verknüpft sind, wobei mindestens einige der Ersatzdaten Daten umfassen, die sich aus aktiven Steuervorgängen ergeben, die dem dazugehörigen Satz von aufgezeichneten Anweisungen entsprechen. Zudem umfasst der Bearbeitungsmodus einen Ersatzausführungsmodus. Während des Ersatzausführungsmodus werden für mindestens einen Satz von Teileprogrammanweisungen mindestens einige Glieder dieses Satzes von Teileprogrammanweisungen nicht ausgeführt, wenn jeweilige Ersatzdaten in Verbindung mit diesem Satz von Teileprogrammanweisungen zuvor aufgezeichnet wurden. Mit anderen Worten werden die entsprechenden verknüpften aktiven Steuervorgänge nicht ausgeführt, und die jeweiligen Ersatzdaten werden in dem nachfolgenden Vorgang des Ersatzausführungsmodus als Ersatz für Daten verwendet, die sich ansonsten aus diesen aktiven Steuervorgängen ergeben würden, die nicht ausgeführt werden.
  • Bei diversen Ausführungsformen kann der Lernmodus konfiguriert sein, um in einem jeweiligen Satz von aufgezeichneten Teileprogrammanweisungen eine Angabe darüber aufzuzeichnen, ob jeweilige Ersatzdaten in Verbindung mit dem jeweiligen Satz von Teileprogrammanweisungen zuvor aufgezeichnet wurden. Bei einer Ausführungsform ist die Angabe in einer Anfangsanweisung des jeweiligen Satzes von aufgezeichneten Teileprogrammanweisungen enthalten. Bei einer Ausführungsform kann der jeweilige Satz von aufgezeichneten Teileprogrammanweisungen Anweisungen umfassen, die in einer Auszeichnungssprache (z. B. XML oder eine Ableitung davon) geschrieben sind. Bei diversen Ausführungsformen kann der jeweilige Satz von aufgezeichneten Teileprogrammanweisungen mindestens eines von einem Element, einem Elternelement, einem Behälterelement und einem Kindelement, die in der Auszeichnungssprache geschrieben sind, umfassen. Bei mindestens einer Ausführungsform kann die Angabe das Vorliegen von jeweiligen Ersatzdaten umfassen, die in dem jeweiligen Satz von aufgezeichneten Teileprogrammanweisungen enthalten sind. Bei mindestens einer Ausführungsform kann die Angabe einen jeweiligen Identifikator umfassen, der in dem jeweiligen Satz von aufgezeichneten Teileprogrammanweisungen enthalten ist, wobei der jeweilige Identifikator verwendbar ist, um die entsprechenden jeweiligen Ersatzdaten in einem Ersatzdaten-Speicherteil des maschinell sehenden Inspektionssystems zu finden.
  • Bei diversen Ausführungsformen umfasst der Bearbeitungsteil Bearbeitungsbefehle, die verwendbar sind, um ein Teileprogramm zu bearbeiten, und der Bearbeitungsausführungsteil ist derart konfiguriert, dass, wenn der Benutzer die bearbeitete Benutzerschnittstelle verwendet, um einen Bearbeitungsbefehl einzugeben, um das Programm an einer Zielstelle zu bearbeiten, die in dem Bearbeitungsfenster und/oder der Teileprogrammdarstellung angegeben ist (z. B. eine willkürliche Teileprogrammstelle, die von den hier offenbarten Verfahren erreicht wird), der Ausführungs-Bearbeitungsmodus dann an einer gültigen Kontextstartstelle in dem Teileprogramm vor der Zielstelle beginnt und den Ersatzausführungsmodus verwendet, um mindestens einen Teil der Teileprogrammanweisungen auszuführen, um einen gültigen Kontext zur Bearbeitung des Teileprogramms an der Zielstelle herzustellen.
  • Zusätzliche Merkmale, die mit dem Bereitstellen und Verwenden der hier offenbarten Systeme und Verfahren verknüpft sind und zuvor kurz erörtert wurden, werden basierend auf den diversen Zeichnungen, Beschreibungen und Ansprüchen, die in dieser Anmeldung offenbart werden, für den Fachmann verständlich sein, insbesondere wenn sie zusammen mit den einbezogenen Referenzdokumenten betrachtet werden, wobei ähnlich dargestellte, beschriebene und/oder referenzierte Elemente ferner durch Querverweis verständlich werden.
  • BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorstehenden Aspekte und viele der damit verbundenen Vorteile der vorliegenden Erfindung werden im Zuge des besseren Verständnisses durch Bezugnahme auf die folgende ausführliche Beschreibung unter Betrachtung der beiliegenden Zeichnungen deutlicher werden. Es zeigen:
  • 1 ein Schema, das diverse typische Komponenten eines universellen maschinell sehenden Präzisionsinspektionssystem zeigt;
  • 2 ein Blockdiagramm eines Steuersystemteils und eines Teil mit Komponenten zum maschinellen Sehen eines maschinell sehenden Inspektionssystems ähnlich wie dem aus 1, mit Merkmalen, die bei diversen Ausführungsformen gemäß der vorliegenden Erfindung verwendbar sind;
  • 3 eine schematische Funktionsdarstellung von Kommunikationsroutinen und/oder Vorgängen, die verwendet werden können, um fensterübergreifende Autoscroll-Vorgänge umzusetzen, wie sie hier offenbart werden;
  • 4 ein Schema einer Benutzerschnittstelle, die eine Bearbeitungsbenutzerschnittstelle und ein Ergebnisfenster umfasst;
  • 5 ein Schema, das Vorgänge der Benutzerschnittstelle aus 4 abbildet;
  • 6 ein Schema, das Vorgänge der Benutzerschnittstelle aus 4 abbildet;
  • 7 ein Schema, das Vorgänge der Benutzerschnittstelle aus 4 abbildet;
  • 8 ein Schema, das Code-Anweisungen in Auszeichnungssprache des Teileprogramms zeigt, die einigen der Anweisungsdarstellungen aus 4 bis 7 entsprechen;
  • 9 ein Ablaufschema, das eine Ausführungsform einer Routine zum Bereitstellen einer Programmbearbeitungsumgebung eines maschinell sehenden Systems abbildet;
  • 10 ein Ablaufschema, das eine Routine abbildet, die eine Alternative zu einem Teil der Routine aus 9 ist;
  • 11 ein Ablaufschema, das eine Ausführungsform eines Teil der Routine aus 10 abbildet;
  • 12 ein Ablaufschema, das eine Ausführungsform eines anderen Teils der Routine aus 10 abbildet;
  • 13 ein Ablaufschema, das eine Ausführungsform einer zusätzlichen und/oder alternativen Routine zum Betreiben einer Programm-Bearbeitungsumgebung abbildet;
  • 14 ein Blockdiagramm, das zusätzliche Komponenten des Bearbeitungsteils 160 aus 2 abbildet;
  • 15 ein Schema einer Bearbeitungsschnittstelle, die eine Teileprogrammdarstellung umfasst, die eine Vielzahl von Anweisungsdarstellungen aufweist;
  • 16 ein Schema einer Benutzerschnittstelle, die ein Bild eines Werkstücks umfasst, an dem das Teileprogramm gemäß 15 ausgeführt wurde;
  • 17A und 17B Schemata von Code-Anweisungen des Teileprogramms in Auszeichnungssprache, die einigen der Anweisungsdarstellungen aus 15 entsprechen;
  • 18A und 18B Ablaufschemata, die eine Ausführungsform einer Routine zum Bereitstellen einer Bearbeitungsumgebung für ein Teileprogramm eines maschinell sehenden Systems, die Merkmale zur Kontexterzeugung in Echtzeit umfasst, abbilden; und
  • 19 ein Ablaufschema, das eine Ausführungsform einer Routine zum Ausführen eines Ersatzausführungsmodus abbildet, um einen gültigen Bearbeitungskontext an einer Teileprogrammstelle bereitzustellen, die von der Darstellung, dem Element oder dem Knoten der Teileprogrammanweisungen angegeben wird.
  • BESCHREIBUNG
  • 1 ist ein Blockdiagramm eines Beispiels eines maschinell sehenden Inspektionssystems 10, das gemäß den hier beschriebenen Verfahren verwendbar ist. Das maschinell sehende Inspektionssystem 10 umfasst eine Messmaschine für maschinelles Sehen 12, die wirksam verbunden ist, um Daten und Steuersignale mit einem Steuercomputersystem 14 auszutauschen. Das Steuercomputersystem 14 ist ferner wirksam verbunden, um Daten und Steuersignale mit einem Bildschirm oder Display 16, einem Drucker 18, einem Joystick 22, einer Tastatur 24 und einer Maus 26 oder dergleichen auszutauschen. Der Bildschirm oder das Display 16 kann eine Benutzerschnittstelle anzeigen, die dazu geeignet ist, die Vorgänge des maschinell sehenden Inspektionssystems 10 zu steuern und/oder zu programmieren.
  • Die Messmaschine für maschinelles Sehen 12 umfasst einen bewegbaren Werkstücktisch 32 und ein optisches Bildgebungssystem 34, das ein Zoomobjektiv oder auswechselbare Linsen umfassen kann. Das Zoomobjektiv oder die auswechselbaren Linsen stellen im Allgemeinen diverse Vergrößerungen für die Bilder bereit, die von dem optischen Bildgebungssystem 34 bereitgestellt werden. Das maschinell sehende Inspektionssystem 10 ist im Allgemeinen mit der zuvor erwähnten Reihe QUICK VISION® von maschinell sehenden Systemen und der Software QVPAK® und ähnlichen handelsüblichen maschinell sehenden Präzisionsinspektionssystemen aus dem Stand der Technik vergleichbar. Geeignete Inspektionssysteme mit maschinellem Sehen 10 werden auch in den US-Patenten Nr. 7,454,053 und 7,324,682 , der US-Patentanmeldung Nr. 12/343,383, eingereicht am 23. Dezember 2008, und der US-Patentanmeldung Nr. 12/608,943, eingereicht am 29. Oktober 2009 des Anmelders beschrieben, die hiermit jeweils in ihrer Gesamtheit in den vorliegenden Gegenstand mit einbezogen werden.
  • 2 ist ein Blockdiagramm eines Steuersystemteils 120 und eines Teils mit Komponenten zum maschinellen Sehen 200 eines maschinell sehenden Inspektionssystems 100, das ähnlich wie das maschinell sehende Inspektionssystem aus 1 ist und Merkmale umfasst, die bei diversen Ausführungsformen gemäß der vorliegenden Erfindung verwendbar sind. Wie es nachstehend ausführlicher beschrieben wird, wird der Steuersystemteil 120 verwendet, um den Teil mit Komponenten zum maschinellen Sehen 200 zu steuern. Wie in 2 gezeigt, umfasst der Teil mit Komponenten zum maschinellen Sehen 200 einen optischen Baugruppenteil 205, Lichtquellen 220, 230 und 240 und einen Werkstücktisch 210 mit einem transparenten Mittelteil 212. Der Werkstücktisch 210 ist steuerbar an den X- und Y-Achsen entlang bewegbar, die in einer Ebene liegen, die im Allgemeinen parallel zur Oberfläche des Objekttisches ist, auf dem ein Werkstück 20 positioniert sein kann. Der optische Baugruppenteil 205 umfasst ein Kamerasystem 260, eine auswechselbare Objektivlinse 250 und kann eine Revolverlinsenbaugruppe 280 mit den Linsen 286 und 288 umfassen. Alternativ zur Revolverlinsenbaugruppe kann eine feste oder manuell auswechselbare vergrößerungsändernde Linse oder eine Zoomobjektivkonfiguration oder dergleichen enthalten sein. Der optische Baugruppenteil 205 ist steuerbar an einer Z-Achse entlang bewegbar, die zu den X- und Y-Achsen im Wesentlichen orthogonal ist, indem ein steuerbarer Motor 294 verwendet wird, wie er nachstehend beschrieben wird.
  • Ein Werkstück 20 oder eine Ablage oder Befestigung, die eine Vielzahl von Werkstücken 20 hält, die unter Verwendung des maschinell sehenden 100 Inspektionssystems abzubilden sind, wird auf den Werkstücktisch 210 gelegt. Der Werkstücktisch 210 kann gesteuert werden, um sich im Verhältnis zu dem optischen Baugruppenteil 205 derart zu bewegen, dass sich die auswechselbare Objektivlinse 250 zwischen Positionen auf einem Werkstück 20 und/oder zwischen einer Vielzahl von Werkstücken 20 bewegt. Eine oder mehrere von einer Objekttischleuchte 220, einer koaxialen Leuchte 230 und einer Oberflächenleuchte 240 kann jeweils ein Quelllicht 222, 232 oder 242 emittieren, um das Werkstück bzw. die Werkstücke 20 zu beleuchten. Das Quelllicht wird als Werkstücklicht 255, das durch die auswechselbare Objektivlinse 250 und die Revolverlinsenbaugruppe 280 tritt, reflektiert oder übertragen und von dem Kamerasystem 260 gesammelt. Das Bild des Werkstücks bzw. der Werkstücke 20, das von dem Kamerasystem 260 aufgenommen wird, wird auf einer Signalleitung 262 an den Steuersystemteil 120 ausgegeben. Die Lichtquellen 220, 230 und 240 können jeweils über Signalleitungen oder Busse 221, 231 und 241 mit dem Steuersystemteil 120 verbunden sein. Um die Bildvergrößerung zu ändern, kann der Steuersystemteil 120 die Revolverlinsenbaugruppe 280 an der Achse 284 entlang drehen, um über eine Signalleitung oder einen Bus 281 eine Revolverlinse auszuwählen.
  • Bei diversen Ausführungsbeispielen ist der optische Baugruppenteil 205 in der senkrechten Z-Achsenrichtung im Verhältnis zum Werkstücktisch 210 unter Verwendung eines steuerbaren Motors 294 bewegbar, der ein Stellglied, ein Verbindungskabel oder dergleichen antreibt, um den optischen Baugruppenteil 205 an der Z-Achse entlang zu bewegen, um den Brennpunkt des Bildes des Werkstücks 20, das von dem Kamerasystem 260 aufgenommen wird, zu ändern. Der Begriff Z-Achse, wie er hier verwendet wird, bezieht sich auf die Achse, die dazu gedacht ist, zum Fokussieren des Bildes verwendet zu werden, das durch den optische Baugruppenteil 205 erzielt wird. Der gegebenenfalls verwendete steuerbare Motor 294 ist über eine Signalleitung 296 an die Ein-/Ausgangsschnittstelle 130 angeschlossen.
  • Wie in 2 gezeigt, umfasst der Steuersystemteil 120 bei diversen Ausführungsbeispielen einen Controller 125, einen Energieversorgungsteil 128, die Ein-/Ausgangsschnittstelle 130, einen Speicher 140, eine Vorrichtung zum Erzeugen und Ausführen von Werkstückprogrammen 150, eine Vorrichtung zum Aufzeichnen/Übersetzen 155 und einen Lernmodusteil 156, einen Programmlaufmodusteil 157 und einen Bearbeitungsteil 160, einen Ersatzdatenmanager 180, einen Programmstatusmanager 185, einen Knotenmanager 190, einen fensterübergreifenden Autoscroll-Teil 195 und einen Ergebnisfensterteil 196. Jede dieser Komponenten sowie die nachstehend beschriebenen zusätzlichen Komponente, können über einen oder mehrere Daten-/Steuerbusse und/oder Schnittstellen zur Anwendungsprogrammierung oder über direkte Verbindungen zwischen den diversen Elementen zusammengeschaltet sein.
  • Die Ein-/Ausgangsschnittstelle 130 umfasst eine Schnittstelle zur Bildgebungssteuerung 131, eine Schnittstelle zur Bewegungssteuerung 132, eine Schnittstelle zur Beleuchtungssteuerung 133 und eine Schnittstelle zur Linsensteuerung 134. Die Schnittstelle zur Bewegungssteuerung 132 kann ein Positionssteuerelement 132a und ein Element zum Steuern der Geschwindigkeit/Beschleunigung 132b umfassen, obwohl solche Elemente zusammengelegt und/oder nicht unterscheidbar sein können. Die Schnittstelle zur Beleuchtungssteuerung 133 steuert beispielsweise die Auswahl, die Energie, den Ein/Aus-Schalter und gegebenenfalls die Ausblendpulszeit für die diversen entsprechenden Lichtquellen des maschinell sehenden Inspektionssystems 100.
  • Der Speicher 140 umfasst einen Speicherteil für Bilddateien 141, einen Speicherteil für Werkstückprogramme 142, der ein oder mehrere Teileprogramme 142PP oder dergleichen umfassen kann, und einen Videowerkzeugteil 143. Der Videowerkzeugteil 143 umfasst den Videowerkzeugteil 143a und andere Videowerkzeugteile, welche die GUI, den Bildverarbeitungsvorgang usw. für jedes der entsprechenden Videowerkzeuge bestimmen. Viele bekannte Videowerkzeuge sind in handelsüblichen maschinell sehenden Inspektionssystemen enthalten, wie etwa bei der zuvor erörterten Serie von maschinell sehenden Systemen QUICK VISION® und der dazugehörigen Software QVPAK®. Der Videowerkzeugteil 143 umfasst auch eine Vorrichtung 143x zum Erzeugen eines interessanten Gebiets (ROI), die automatische, halbautomatische und/oder manuelle Vorgänge unterstützt, die diverse ROIs definieren, die in diversen Videowerkzeugen betriebsfähig sind, die in dem Videowerkzeugteil 143 enthalten sind.
  • Im Allgemeinen speichert der Speicherteil 140 Daten, die verwendbar sind, um den Teil mit Komponenten für maschinelles Sehen 200 zu betätigen, um ein Bild des Werkstücks 20 aufzunehmen oder zu erfassen, so dass das erfasste Bild des Werkstücks 20 gewünschte Bildeigenschaften aufweist. Der Speicherteil 140 kann auch Inspektionsergebnisdaten speichern, kann ferner Daten speichern, die verwendbar sind, um das maschinell sehende Inspektionssystem 100 zu betätigen, um diverse Inspektions- und Messvorgänge an den erfassten Bildern (die beispielsweise zum Teil als Videowerkzeuge umgesetzt sind) entweder manuell oder automatisch auszuführen, und um die Ergebnisse über die Ein-/Ausgangsschnittstelle 130 auszugeben. Der Speicherteil 140 kann auch Daten enthalten, die eine Benutzerschnittstelle definieren, die über die Ein-/Ausgangsschnittstelle 130 betätigt werden kann. Der Speicherteil 140 kann auch Daten enthalten, die eine Benutzerschnittstelle definieren, die über die Ein-/Ausgangsschnittstelle 130 betriebsfähig ist. Wie es nachstehend mit Bezug auf 14 bis 19 ausführlicher beschrieben wird, kann unter Verwendung von zuvor gespeicherten Daten als Ersatzdaten einen gewissen Kontext simuliert werden, wenn ein Teileprogramm bearbeitet wird, statt alle Schritte des Teileprogramms der Reihe nach ausführen zu müssen, um den benötigten Kontext für die fortgesetzte Bearbeitung zu generieren. Der Speicherteil 140 kann solche Ersatzdaten auch speichern.
  • Die Signalleitungen oder Busse 221, 231 und 241 der Objekttischleuchte 220, der koaxialen Leuchte 230 und der Oberflächenleuchte 240 sind jeweils alle mit der Ein-/Ausgangsschnittstelle 130 verbunden. Die Signalleitung 262 von dem Kamerasystem 260 und die Signalleitung 296 von dem steuerbaren Motor 294 sind mit der Ein-/Ausgangsschnittstelle 130 verbunden. Zusätzlich dazu, dass sie Bilddaten führt, kann die Signalleitung 262 ein Signal von dem Controller 125 führen, das die Bilderfassung initialisiert.
  • Eine oder mehrere Anzeigevorrichtungen 136 (z. B. das Display 16 aus 1) und eine oder mehrere Eingabevorrichtungen 138 (z. B. der Joystick 22, die Tastatur 24 und die Maus 26 aus 1) können ebenfalls mit der Ein-/Ausgangsschnittstelle 130 verbunden sein. Die Anzeigevorrichtungen 136 und die Eingabevorrichtungen 138 können verwendet werden, um eine Benutzerschnittstelle anzuzeigen, die diverse Benutzerschnittstellenmerkmale umfassen kann, die verwendet werden können, um Inspektionsvorgänge auszuführen und/oder um Teileprogramme zu erstellen und/oder zu ändern, um die Bilder zu sehen, die von dem Kamerasystem 260 aufgenommen werden, und/oder um den Teil mit Komponenten für maschinelles Sehen 200 direkt zu steuern. Insbesondere gemäß diversen Ausführungsbeispielen der vorliegenden Erfindung werden die Anzeigevorrichtungen 136 und die Eingabevorrichtungen 138 verwendet, um diverse Benutzerschnittstellenmerkmale aufzuweisen, die verwendbar sind, um eine effiziente, intuitive und flexible Bearbeitung von Teileprogrammen auf dem maschinell sehenden Inspektionssystem 100 zu ermöglichen.
  • Die Vorrichtung zum Generieren und Ausführen von Werkstückprogrammen 150, die Vorrichtung zum Aufzeichnen/Übersetzen 155, der Lernmodusteil 156, der Programmlaufmodusteil 157, der Bearbeitungsteil 160, der Ersatzdatenmanager 180, der Programmstatusmanager 185, der Knotenmanager 190 und ein fensterübergreifender Autoscroll-Teil 195 können bei einer Ausführungsform alle als Teil eines allgemeinen Maschinen-Controllerblocks MC angesehen werden, der mit dem Controller 125 verbunden ist. Zudem kann ein Client-Fensterteil 197 mit dem Controller 125 verbunden sein. Ein Client-Fenster kann bei einigen Ausführungsformen als außerhalb des Steuersystemteils 120 liegend, jedoch damit zur Interaktion in Verbindung stehend angesehen werden. Die Vorrichtung zum Generieren und Ausführen von Werkstückprogrammen 150 ist dafür verantwortlich, Teileprogramme zu erstellen und auszuführen. Es versteht sich, dass die Begriffe „Werkstückprogramm” und „Teileprogramm” hier austauschbar verwendet werden können.
  • Gemäß den Vorgängen der Vorrichtung zum Generieren und Ausführen von Werkstückprogrammen 150 generiert der Benutzer bei diversen Ausführungsbeispielen, wenn ein Benutzer das maschinell sehende Inspektionssystem 100 verwendet, um ein Teileprogramm für das Werkstück 20 zu erstellen, Teileprogrammanweisungen entweder, indem er die Anweisungen ausdrücklich automatisch, halbautomatisch oder manuell unter Verwendung einer Werkstück-Programmiersprache codiert, und/oder indem er die Anweisungen generiert, indem er das maschinell sehende Inspektionssystem 100 in einem Lernmodus betätigt (wie z. B. von dem Lernmodusteil 156 gesteuert), um eine gewünschte Bilderfassungs-Einlernsequenz bereitzustellen. Beispielsweise kann eine Einlernsequenz das Positionieren eines bestimmten Werkstückmerkmals im Sichtfeld (FOV), das Einstellen von Lichtpegeln, das Fokussieren oder Autofokussieren, das Erfassen eines Bildes und das Bereitstellen einer Inspektionseinlernsequenz, die auf das Bild angewendet wird (z. B. unter Verwendung von Videowerkzeugen), umfassen. Der Lernmodus funktioniert derart, dass die Sequenz(en) aufgenommen oder aufgezeichnet und in entsprechende Teileprogrammschritte (d. h. Anweisungen) umgesetzt wird bzw. werden. Wenn das Teileprogramm ausgeführt wird (wie z. B. von dem Programmlaufmodusteil 157 gesteuert), veranlassen diese Teileprogrammschritte das maschinell sehende Inspektionssystem dazu, die erlernten Vorgänge zur Bilderfassung und Inspektion wiederzugeben, um automatisch ein oder mehrere Werkstücke zu inspizieren, das bzw. die dem Werkstück entspricht bzw. entsprechen, das beim Erstellen des Teileprogramms verwendet wurde.
  • Die Vorrichtung zum Aufzeichnen/Übersetzen 155 wird verwendet, um Maschinenvorgänge in Teileprogrammcode zu übersetzen. Wenn mit anderen Worten ein Benutzer eine Aktion ausführt (wie z. B. das Ändern eines Videowerkzeugs, das verwendet wird, um ein Merkmal an einem Werkstück zu messen), wird eine Anweisung generiert, die in eine maschinenlesbare Sprache übersetzt wird, und es kann auch eine Rückübersetzung erfolgen. Wie es nachstehend ausführlicher beschrieben wird, können bei bestimmten hier offenbarten Ausführungsformen gewisse Anweisungen in einem Teileprogramm auch in Anweisungsdarstellungen in einer Benutzerschnittstelle übersetzt werden. Bei einigen Ausführungsformen können die Teileprogrammanweisungen in einem Sprachcode nach Art einer Auszeichnungssprache geschrieben sein. Bei einem spezifischen Ausführungsbeispiel kann der Auszeichnungssprachencode MIML-Code sein. Der Bearbeitungsteil 160 stellt diverse Vorgänge und Benutzerschnittstellenmerkmale bereit bzw. aktiviert diese, die mit dem Bearbeiten eines Teileprogramms innerhalb eines Bearbeitungs-Benutzerschnittstellenteils 160ui zusammenhängen, der ein Teileprogramm-Darstellungsfenster umfassen kann, wie es nachstehend ausführlicher beschrieben wird.
  • Der Ersatzdatenmanager 180 muss nicht unbedingt vorliegen, um alle Ausführungsformen der vorliegenden Erfindung in die Praxis umzusetzen. Der Ersatzdatenmanager 180 kann jedoch in Kombination mit der vorliegenden Erfindung bei einigen Ausführungsformen verwendet werden. Kurz gesagt stellt der Ersatzdatenmanager 180 eine Verbindung zu Ersatzdaten her, die gemäß der vorliegenden Erfindung in einem Teileprogramm aufgezeichnet sein können. Bei bestimmten Implementierungen ist der Ersatzdatenmanager 180 dafür verantwortlich, die Ersatzdaten von einem Ausgang zu erlangen, an dem sie normalerweise generiert werden, und die Ersatzdaten bereitzustellen, die in das Teileprogramm eingetragen werden sollen. Der Ersatzdatenmanager 180 wird nachstehend ausführlicher beschrieben.
  • Bei einer Ausführungsform steuert der Programmstatusmanager 185, ob die Programme geschützt oder ungeschützt sind. Bei einer Implementierung kann ein ungeschütztes Teileprogramm gespeicherte Ersatzdaten umfassen, während aus einem geschützten Teileprogramm alle Ersatzdaten entfernt wurden. Bei einem Ausführungsbeispiel sind geschützte Programme solche, für die der Bearbeitungsprozess beendet ist, so dass sie etwa in einem Werk in einem Programmlaufmodus verwendet werden können. Bei einer Ausführungsform kann ein Benutzer ein Teileprogramm auswählen, das geschützt werden soll, wobei der Programmstatusmanager 185 dann automatisch alle Ersatzdaten entfernt, so dass das Teileprogramm zur Laufzeit nicht mit überflüssigen Ausführungsschritten belastet ist. Wenn ein Programm ungeschützt ist, ist der Programmstatusmanager 185 auch dafür verantwortlich, dass die Ersatzdaten in dem Teileprogramm aufgezeichnet bleiben, und wenn ein Teileprogramm von dem Bearbeitungsteil 160 erneut abgerufen wird, dass die Ersatzdaten als verfügbar angegeben werden.
  • Bei einer Ausführungsform ist der Knotenmanager 190 dafür verantwortlich, Knotennummern zu verwalten, die den Knoten in einem Teileprogramm zugewiesen werden. Bei einer Implementierung wird innerhalb einer Darstellung eines Teileprogramms jeder der Anweisungsdarstellungen eine Knotennummer zugewiesen. Bei bestimmten Implementierungen kann eine Organisationsbaumstruktur verwendet werden, bei der es Elternknoten und Kindknoten gibt. Bei gewissen Implementierungen wird jeder Zeile einer Teileprogrammdarstellung, die von der Vorrichtung zum Aufzeichnen/Übersetzen 155 generiert wird, durch den Knotenmanager 190 eine Knotennummer oder ein garantierter eindeutiger Identifikator oder dergleichen zugewiesen. Wie es nachstehend ausführlicher beschrieben wird, kann der fensterübergreifende Autoscroll-Teil 195 bei einigen Ausführungsformen die Knotennummern verwenden, die von dem Knotenmanager 190 zugewiesen werden, um damit verbundene Elemente von verknüpften Teileprogrammelementen und entsprechende Bearbeitungsfunktionen gleichzeitig in einem anderen Fenster anzuzeigen. Mit anderen Worten, wenn ein Benutzer sehen möchte, welche Messungen eines Werkstücks mit welchen Anweisungsdarstellungen und codierten Anweisungen in einem Teileprogramm zusammenhängen, läuft der fensterübergreifende Autoscroll-Teil 195 automatisch in dem jeweiligen Fenster ab, um die betreffenden Zeilen der Teileprogrammdarstellung und/oder die codierten Anweisungen, die der betreffenden Knotennummer entsprechen, anzuzeigen.
  • Der Ergebnisfensterteil 196 stellt diverse Vorgänge und Benutzerschnittstellenmerkmale im Zusammenhang mit dem Bearbeiten eines Teileprogramms bereit oder aktiviert diese, wozu das Anzeigen von Ergebnissen von Messungen, die von Inspektionsvorgängen des maschinell sehenden Systems ausgeführt werden, innerhalb einer Ergebnisfenster-Benutzerschnittstelle 196ui gehört. Im Allgemeinen kann bzw. können der Ergebnisfensterteil 196 und/oder die Ergebnisfenster-Benutzerschnittstelle 196ui die diversen Merkmale und Attribute, die an anderer Stelle in dieser Offenbarung beschrieben werden, sowie Erweiterungen umfassen und sind Alternativen, die für den Fachmann auf diesem Gebiet basierend auf den Merkmalen oder Attributen des fensterübergreifenden Autoscroll-Teils, die in dieser Offenbarung abgebildet, beschrieben und/oder referenziert sind, ersichtlich sein werden.
  • Der Client-Fensterteil 197 stellt diverse Vorgänge und Benutzerschnittstellen-Merkmale, die mit der Bearbeitung eines Teileprogramms zusammenhängen, bereit oder aktiviert diese, wozu das Anzeigen von Merkmalen gehört, die mit Messungen zusammenhängen, die von Inspektionsvorgängen des Maschinenvisionssystems innerhalb einer Client-Fenster-Benutzerschnittstelle 197ui ausgeführt werden. Genauer gesagt kann bzw. können der Client-Fensterteil 197 und/oder die Client-Fenster-Benutzerschnittstelle 197ui jedoch die diversen Merkmale und Attribute, die an anderer Stelle in dieser Offenbarung beschrieben werden, sowie Erweiterungen und/oder Alternativen umfassen, die für den Fachmann auf diesem Gebiet basierend auf den Merkmalen oder Attributen des fensterübergreifenden Autoscroll-Teils, die in dieser Offenbarung abgebildet, beschrieben und/oder referenziert sind, ersichtlich sein werden. Bei einigen Ausführungsformen der vorliegenden Erfindung muss kein Client-Fenster vorhanden sein. Ein Client-Fenster kann mit einem Programm oder einer Routine verknüpft sein, das bzw. die für den grundlegenden Betrieb des maschinell sehenden Inspektionssystems nicht wesentlich ist, jedoch eine verbesserte Funktionalität oder Benutzerfreundlichkeit bereitstellen kann. Der Grafikansichtfensterteil, der durch das Grafikansichtfenster dargestellt wird, das in 4 bis 7 gezeigt wird, ist ein Beispiel eines Client-Fensterteils 197. Wie in 3 gezeigt, kann ein Client-Fenster Merkmale und Attribute für eine Benutzerschnittstelle mit fensterübergreifendem Autoscroll aufweisen, die im Wesentlichen denjenigen ähnlich sind, die hier für ein Ergebnisfenster offenbart werden.
  • Ferner können mit Bezug auf 2 viele Merkmale aus 2 basierend auf den Beschreibungen ihrer entsprechenden oder im Wesentlichen ähnlichen Gegenstücke verstanden werden, die ähnlich abgebildete, beschriebene und/oder referenzierte Elemente in den gleichzeitig anhängigen Anmeldungen sind, die hier zuvor durch Querverweis mit einbezogen wurden. Der Bearbeitungsteil 160 und/oder der Bearbeitungs-UI-Teil 160ui, der nachstehend ausführlicher beschrieben wird, kann zahlreiche Merkmale aufweisen, die entsprechenden Merkmalen, die in den einbezogenen Referenzdokumenten beschrieben werden, ähnlich oder mit diesen identisch sind. Der fensterübergreifende Autoscroll-Teil 195 kann die diversen Merkmale und Attribute, die hier offenbart werden, sowie Erweiterungen und/oder Alternativen umfassen, die für den Fachmann basierend auf den Merkmalen und Attributen des fensterübergreifenden Autoscroll-Teils, die in dieser Offenbarung abgebildet, beschrieben und/oder referenziert sind, ersichtlich sein werden. Zudem kann der fensterübergreifende Autoscroll-Teil 195 alternativ als Autoscroll-Manager bezeichnet werden und gewisse Merkmale aufweisen, die den Merkmalen ähnlich sind, die mit Bezug auf den Autoscroll-Manager beschrieben wurden, der in den einbezogenen Referenzdokumenten beschrieben wird.
  • Es versteht sich, dass der Bearbeitungsteil 160, der fensterübergreifende Autoscroll-Teil 195, der Knotenmanager 190 und bei einigen Ausführungsformen der Ersatzdatenmanager 180 zusammenwirken, um die diversen Merkmale bereitzustellen, die hier offenbart werden, um die Teileprogramm-Bearbeitungsumgebung eines maschinell sehenden Inspektionssystems zu verbessern. Bei einigen Ausführungsformen können diese diversen Teile alternativ derart konfiguriert sein, dass sie zueinander gehören oder anderweitig kombiniert und/oder nicht unterscheidbar sind. Es versteht sich somit, dass die Konfiguration dieser Teile, die in 2 gezeigt wird, rein beispielhaft und nicht einschränkend ist.
  • 3 ist eine funktionelle schematische Darstellung 300 einer Ausführungsform von Kommunikationsroutinen und/oder Vorgängen, die von einem fensterübergreifenden Autoscroll-Teil 195 umgesetzt werden können (z. B. dem fensterübergreifenden Autoscroll-Teil 195, der in 2 gezeigt wird), um die hier offenbarten fensterübergreifenden Autoscroll-Merkmale bereitzustellen. 3 zeigt schematisch den fensterübergreifenden Autoscroll-Teil 195, einen Programmdarstellungs-Fensterteil 176pi, einen Ergebnisfensterteil 196 und einen Client-Fensterteil 197. Es versteht sich, dass ein „Fensterteil” ein angezeigtes Benutzerschnittstellenfenster sowie seine verknüpften Merkmale und die zugrundeliegenden Routinen, die seine Vorgänge bereitstellen, umfassen kann. Ein Fensterteil kann hier auch einfach als Fenster bezeichnet werden. Der Programmdarstellungs-Fensterteil 176pi kann hier und/oder in den übernommenen Referenzen manchmal auch als Programmanweisungs-Darstellungsfenster oder als Bearbeitungsfenster bezeichnet werden.
  • Bei der in 3 gezeigten Ausführungsform interagiert der fensterübergreifende Autoscroll-Teil 195 mit dem Programmdarstellungs-Fensterteil 176pi über eine Benachrichtigung SE eines Auswahlereignisses eines Programmdarstellungsfensters und über eine Benachrichtigung AS eines Autoscrolls eines Programmdarstellungsfensters. Der fensterübergreifende Autoscroll-Teil 195 interagiert mit dem Client-Fensterteil 197 über eine Benachrichtigung SE eines Auswahlereignisses eines Ergebnisfensters und über eine Benachrichtigung AS eines Autoscrolls eines Ergebnisfensters. Der fensterübergreifende Autoscroll-Teil 195 interagiert mit dem Client-Fensterteil 197 über eine Benachrichtigung SE eines Auswahlereignisses eines Client-Fensters und über eine Benachrichtigung AS eines Autoscrolls eines Client-Fensters. Die diversen Auswahlereignis-Benachrichtigungen SE werden unabhängig ausgelöst. D. h., dass ein beliebiges Fenster, das die Auswahl eines Elements beherbergt, das von einer Art ist, die ein verknüpftes Element in einem anderen Fenster aufweisen kann, eine Auswahlereignis-Benachrichtigung SE als Antwort auf diese Auswahl basierend auf einer Routine oder Vorgängen dieses Fensters, die von dem Auswahlereignis ausgelöst werden, ausgeben kann.
  • Ein Auswahlereignis kann beispielsweise darin bestehen, dass der Benutzer eine Anweisungsdarstellung in dem Programmdarstellungsfenster auswählt oder ein Ergebnis in dem Ergebnisfenster auswählt oder ein grafisches Element in einem Client-Fenster auswählt. Die Auswahl kann unter Verwendung einer Benutzerschnittstellen-Eingabevorrichtung und eines bekannten Elementauswahlverfahrens, wie etwa per Mausklick auf das Element in einer Benutzerschnittstelle oder dergleichen, erfolgen. Bei diversen Ausführungsformen werden die Autoscroll-Benachrichtigungen AS für jedes mögliche Fenster dagegen als Antwort auf eine beliebige Auswahlereignis-Benachrichtigung ausgelöst und werden im Allgemeinen an alle möglichen Fenster gesendet (es ist jedoch nicht notwendig, eine Autoscroll-Benachrichtigung an das Fenster zu senden, das die derzeitige Auswahlereignis-Benachrichtigung erstellt).
  • Die Autoscroll-Benachrichtigungen AS basieren auf einer Routine oder auf Vorgängen des fensterübergreifenden Autoscroll-Teils, die von einer Auswahlereignis-Benachrichtigung SE ausgelöst werden. Als Antwort auf den Empfang einer Autoscroll-Benachrichtigung AS zeigt ein Fenster ein Merkmal oder Element in diesem Fenster an und/oder hebt es hervor, das mit dem bestimmten Element verknüpft ist, das in dem Fenster ausgewählt wurde, das die auslösende Auswahlereignis-Benachrichtigung SE ausgegeben hat, wie es nachstehend ausführlicher beschrieben wird. Ein Gesichtspunkt der Neuheit der hier offenbarten Systeme und Verfahren beruht auf der Kombination von diversen Attributen und Merkmalen, die hier in Zusammenhang mit dem Bereitstellen einer Umgebung zum Programmieren und Bearbeiten von Teilen eines maschinell sehenden Systems offenbart werden. Eine derartige Kombination wurde zuvor in Zusammenhang mit der bestimmten Komplexität bei dem Betrieb und der Programmierung eines maschinell sehenden Inspektionssystems nicht in Betracht gezogen oder erreicht, um die hier offenbarten Merkmale einer Benutzerschnittstelle zum Teileprogrammieren bereitzustellen.
  • Eine Ausführungsform aus 3 kann unter Verwendung von bekannten „Publisher-Subscriber-”Verfahren umgesetzt werden, die manchmal unter Verwendung von XML-artigen Sprachen (wie sie z. B. für Benachrichtigungen zwischen Webseiten verwendet werden) umgesetzt werden. Bei diversen Ausführungsformen kann ein Publisher-Subscriber-Verfahren umgesetzt werden, indem die Verfahren, wie etwa ein Verfahren auf Listenbasis oder ein Verfahren auf Rundsendungsbasis oder ein Verfahren auf Inhaltsbasis, angepasst werden, um die hier offenbarten Merkmale zu unterstützen. Bei einem maschinell sehenden Inspektionssystem befinden sich die Publisher und Subscriber im Allgemeinen in dem gleichen Verarbeitungsraum, und es ist möglich, dass die Identität des „Subscriber”-Fensters dem „Publisher” bekannt ist. Das US-Patent Nr. 8,028,085 („das Patent '085”), das auf solche Fälle anwendbar ist und das hiermit in seiner Gesamtheit durch Querverweis in den vorliegenden Gegenstand mit einbezogen wird, beschreibt Verfahren mit geringer Latenz, die angepasst werden können, um die hier offenbarten Merkmale zu unterstützen.
  • Bei diversen Ausführungsformen können verknüpfte oder entsprechende Merkmale in den diversen Fenstern aufgestellt werden, während Teileprogrammanweisungen im Lernmodus erstellt und/oder aufgezeichnet werden. Bei einer Ausführungsform kann beispielsweise jedem der entsprechenden Merkmale als Mittel zum Herstellen und Aufzeichnen ihrer Verknüpfung der gleiche „Identifikator” in jedem Fensterteil zugewiesen werden bzw. es kann damit gekennzeichnet werden. Bei einer derartigen Ausführungsform kann die Auswahlereignis-Benachrichtigung SE den Identifikator des ausgewählten Elements umfassen, der über die Autoscroll-Benachrichtigung AS weitergegeben werden kann, so dass das Empfangsfenster das dazugehörige Merkmal oder Element basierend auf diesem Identifikator automatisch ablaufen lassen (z. B. anzeigen und/oder hervorheben) kann, wie es nachstehend ausführlicher beschrieben wird.
  • 4 ist ein Schema einer Lernmodus-Benutzerschnittstelle 400, die eine Ausführungsform einer Bearbeitungsumgebung umfasst, die eine Vielzahl von Fenstern umfasst, die gemäß den hier offenbarten Prinzipien konfiguriert und betätigt werden können. Die Bearbeitungsumgebung umfasst Teileprogramm-Anweisungsdarstellungen (wie etwa die „Messlinie” mit der Bezeichnung „LINE-1” unter Verwendung eines „Kastenwerkzeugs”), die in einem Teileprogramm-Darstellungsfenster 420 abgebildet sind (das bei diversen Ausführungsformen als Bearbeitungsfenster 420 verwendet und bezeichnet werden kann), Messergebnisse von diesen Teileprogrammanweisungen (z. B. die Messergebnis-Koordinate X = 128,1750409), die in einem Ergebnisfenster 430 abgebildet sind, und Darstellungen von diversen damit verbundenen gemessenen Merkmalen (z. B. einschließlich der Linienmerkmale 441 und der Linie 442 und eines Abstands 443 zwischen den Linien, der durch einen Doppelpfeil angegeben ist), die abgebildet sind, wie sie einem CAD-Modell in einem Client-Fenster 440 mit grafischer Ansicht überlagert sind. Diese Benutzerschnittstelle 400 weist äquivalente Elemente auf, die in den übernommenen Referenzen beschrieben werden, und ihre diversen Ausführungsformen können auf der Grundlage der Beschreibung in diesen Referenzen weiter verständlich werden. Ganz allgemein werden die Merkmale oder Elemente, die in den Fenstern 430 und 400 generiert werden, von der Lernmodus-Ausführung von aufgezeichneten Teileprogrammanweisungen generiert, die den Anweisungsdarstellungen entsprechen, die in dem Teileprogramm-Darstellungsfenster 420 abgebildet sind. In dem Zustand, der in 4 gezeigt wird, wurde keines der Elemente von einem Benutzer ausgewählt.
  • Die Benutzerschnittstelle 400 umfasst auch eine Symbolleiste 450, eine Symbolleiste 460, eine Objekttisch-Positionsanzeige 470 und eine Sichtfeldanzeige 480. Die Symbolleiste 450 umfasst diverse Benutzerwerkzeuge (z. B. Messvideowerkzeuge), die waagerecht im oberen Teil der Benutzerschnittstelle 400 angeordnet sind. Die Symbolleiste 460 umfasst Benutzerwerkzeuge (z. B. Ausrichtungs- und Vergrößerungswerkzeuge), die senkrecht im rechten Teil der Benutzerschnittstelle angeordnet sind. Die Objekttisch-Positionsanzeige 470 zeigt die X-, Y- und Z-Koordinaten an, die eine Position des Objekttisches 32 angeben. Die Sichtfeldanzeige 480 zeigt ein Sichtfeld des maschinell sehenden Inspektionssystems 100 an, wie es von der Kamera 260 abgebildet wird, und zeigt zur Information mit einem gestrichelten Umriss schematisch die Stelle an, an der ein Kastenwerkzeug-Interessengebiet, das der Kastenwerkzeug-Anweisungsdarstellung 422A entspricht, erscheinen würde, wenn sie von einem Benutzer definiert und aufgezeichnet wird.
  • Die Teileprogramm-Anweisungsdarstellungen, die in dem Teileprogramm-Darstellungsfenster 420 abgebildet sind, umfassen Elternknoten-Anweisungsdarstellungen 421, 422 und 423. Die Elternknoten-Anweisungsdarstellung 421 umfasst die Kindknoten-Anweisungsdarstellungen 421A und 421B. Die Elternknoten-Anweisungsdarstellung 421 gibt an, dass ein Kastenwerkzeug geöffnet wird, um das Linienmerkmal 441 zu messen, das als LINE-1 dargestellt ist, wobei die Anweisungsdarstellung 421A angibt, dass der Benutzer das Kastenwerkzeug verwendet, um Kantenpunkte von LINE-1 zu bestimmen, die dann verwendet werden, wie es von der Anweisungsdarstellung 421B angegeben wird, um LINE-1 zu definieren. Die Elternknoten-Anweisungsdarstellung 422 umfasst die Kindknoten-Anweisungsdarstellungen 422A und 422B. Die Elternknoten-Anweisungsdarstellung 422 gibt an, dass ein Kastenwerkzeug geöffnet wird, um das Linienmerkmal 442 zu messen, das als LINE-2 dargestellt ist, wobei die Anweisungsdarstellung 422A angibt, dass der Benutzer das Kastenwerkzeug verwendet, um Kantenpunkte von LINE-2 zu bestimmen, die dann verwendet werden, wie es von der Anweisungsdarstellung 422B angegeben wird, um LINE-2 zu definieren. Die Anweisungsdarstellung 423 gibt an, dass ein Abstand 443, der als „DIST” dargestellt ist, zwischen LINE-1 und LINE-2 bestimmt wird. Das Ergebnisfenster 430 zeigt die Messergebnisse 431, 432 und 433 an, die jeweils den Anweisungsdarstellungen 421, 422 und 423 entsprechen.
  • 5 ist ein Schema, das Vorgänge der Benutzerschnittstelle aus 4 nach einem Aspekt einer Ausführungsform gemäß den hier offenbarten Prinzipien abbildet. Kurz gesagt wird die Teileprogramm-Anweisungsdarstellung 422B in dem Teileprogramm-Darstellungsfenster 420 hervorgehoben, und das damit verbundene Linienmessergebnis LINE-2 wird in dem Ergebnisfenster 430 hervorgehoben, und ein damit verbundenes Linienmerkmal 441 wird in dem Client-Fenster 440 hervorgehoben. Bei diversen Ausführungsformen werden die anderen entsprechenden Elemente vorteilhaft hervorgehoben oder anderweitig in den anderen Fenstern markiert (z. B. wie abgebildet), wenn der Benutzer eines dieser Elemente in einem der Fenster auswählt.
  • Das oder die Verfahren, das bzw. die mit Bezug auf 3 abgebildet und beschrieben ist bzw. sind, kann bzw. können verwendet werden, um die notwendigen Benachrichtigungen zwischen Fenstern bereitzustellen, und jedes Fenster kann Routinen oder Vorgänge umfassen, welche die entsprechende Hervorhebung und/oder Markierung bereitstellen. Dadurch werden die zuvor erörterten Vorzüge bereitgestellt. Bei einer Ausführungsform führt eine Auswahl eines Elements in dem Ergebnisfenster 430 oder dem Client-Fenster 440 zu einer Übertragung der Kontrolle auf das Teileprogramm-Darstellungsfenster und/oder eine Auswahl der entsprechenden Teileprogramm-Anweisungsdarstellung in diesem Fenster, sobald es die dazugehörige Auswahlereignis-Benachrichtigung empfängt (z. B. wie mit Bezug auf 3 beschrieben), so dass Bearbeitungsvorgänge sofort erleichtert werden.
  • 6 ist ein zweites Schema, das Vorgänge der Benutzerschnittstelle aus 4 gemäß einem anderen Aspekt einer Ausführungsform gemäß den hier offenbarten Prinzipien abbildet. 6 zeigt ein ähnliches Beispiel der Beziehung zwischen entsprechenden Elementen in den diversen Fenstern. Kurz gesagt wird die Teileprogramm-Anweisungsdarstellung 423 (eine Abstandsmessung zwischen den Linien) ausgewählt und daher in dem Teileprogramm-Darstellungsfenster 420 hervorgehoben, und das damit verbundene Abstandsmessergebnis DIST wird in dem Ergebnisfenster 430 hervorgehoben, und der damit verbundene Abstand 443 wird in dem Client-Fenster 440 hervorgehoben. Bei einigen Ausführungsformen kann die Ausführung einer Teileprogramm-Anweisungsdarstellung 423 (z. B. um ein Videowerkzeug einzulernen oder ein Vorgangsergebnis zu bestätigen oder dergleichen) die entsprechende Anweisung in einem „ausgewählten” Zustand lassen, soweit sie zusammen mit den entsprechenden Elementen in anderen möglichen Fenstern hervorgehoben sein kann.
  • 7 ist ein drittes Schema, das Vorgänge der Benutzerschnittstelle aus 4 nach einem anderen Aspekt einer Ausführungsform gemäß den hier offenbarten Prinzipien abbildet. 7 zeigt ein Beispiel, bei dem die Auswahl eines Merkmals in dem Client-Fenster 440 zum Markieren des entsprechenden Elements in dem Teileprogramm-Darstellungsfenster 420 führt (d. h. dem Bearbeitungsfenster), jedoch im Gegensatz zu den zuvor beschriebenen Ausführungsformen nicht das Ergebnisfenster 430 beeinflusst. Natürlich kann bei einigen Ausführungsformen die Auswahl eines Elements in dem Ergebnisfenster 430 ein analoges Verhalten aufweisen, d. h. das Bearbeitungsfenster 420 kann beeinflusst werden, während das Client-Fenster 440 gegebenenfalls nicht beeinflusst werden kann. Eine derartige Ausführungsform, die nicht alle Fenster gleichzeitig beeinflusst, kann für bestimmte Fensterarten oder Programmiersituationen vorteilhaft sein. Insbesondere bei der in 7 gezeigten Ausführungsform wird die Teileprogramm-Anweisungsdarstellung 421B in dem Teileprogramm-Darstellungsfenster 420 hervorgehoben, wenn das damit verbundene Linienmessergebnis LINE-1 in dem Ergebnisfenster 430 ausgewählt (und bei einigen Ausführungsformen hervorgehoben) wird, während der damit verbundene Abstand 443 in dem Client-Fenster 440 zu diesem Zeitpunkt nicht hervorgehoben wird.
  • Es versteht sich, dass mit Bezug auf 5 bis 7 jedes Fenster Elemente umfassen kann, die zum Zeitpunkt einer Auswahlereignis-Benachrichtigung „nicht zu sehen” sind (z. B. bei einem großen Teileprogramm oder einem Werkstück-CAD-Bild oder dergleichen). Der Benutzer kann den Inhalt eines beliebigen Fensters einzeln vor der Auswahl ablaufen lassen, und der Inhalt von anderen Fenstern muss zu diesem Zeitpunkt nicht angepasst werden. Dann veranlasst bzw. veranlassen bei diversen Ausführungsformen bei einer Auswahlereignis-Benachrichtigung, wenn das entsprechende Element in einem beliebigen Fenster derzeit nicht im Anzeigebereich liegt, eine Routine oder Vorgänge dieses Fensters automatisch, dass sein Inhalt zu dem Element, das der Auswahlereignis-Benachrichtigung entspricht, springt oder bis dahin abläuft. Wenn also ein Element in einem Fenster, das mit einem von einem Benutzer ausgewählten Element in einem anderen Fenster zusammenhängt, in seinem jeweiligen Fenster nicht sichtbar ist, kann die Lernmodus-Benutzerschnittstelle konfiguriert sein, um die Anzeige in ihrem jeweiligen Fenster automatisch „ablaufen” zu lassen, bis das Element, das mit dem von einem Benutzer-ausgewählten Element zusammenhängt, in seinem jeweiligen Fenster sichtbar ist. Obwohl der Begriff „Ablauf” oder „Autoscroll” hier verwendet werden kann, versteht es sich, dass diese Begriffe nur aus praktischen Gründen verwendet werden und nicht einschränkend sind. Ganz allgemein kann das Element, das dem ausgewählten Element entspricht, durch ein beliebiges und/oder bekanntes Verfahren, einschließlich durch einfaches Regenerieren des Fensters mit dem gewünschten Inhalt oder dergleichen, in seinem jeweiligen Fenster sichtbar gemacht werden.
  • 8 ist ein Schema 800, das Anweisungen eines Teileprogramms in Auszeichnungssprache-Code umfasst, die einigen der Anweisungsdarstellungen aus 4 bis 7 entsprechen können. Insbesondere bildet 8 eine Implementierung eines automatisch definierten Identifikators ab, der von einigen Ausführungsformen verwendet werden kann, um die Benutzerschnittstelle synchronisierende „Autoscroll”-Merkmale umzusetzen, die zuvor erörtert wurden und nachstehend mit Bezug auf einige oder alle der 9 bis 13 erörtert werden. Insbesondere zeigt 8 eine bestimmte Implementierung, die eine XML-artige Codesprache umfasst, wobei ein „Knoten-ID”-Wert 805 bzw. ein Identifikator 805, welcher der Messung von LINE-2 entspricht, automatisch generiert und eine Teileprogrammanweisung eingefügt wird, wenn die Teileprogrammanweisung aufgezeichnet wird.
  • Wie in 8 gezeigt, ist ein Punkt, der mit einem Ende von LINE-2 verknüpft ist, als Teil der Daten 810 abgebildet. Bei einer Ausführungsform kann eine Knoten-ID von dem fensterübergreifenden Autoscroll-Teil verwendet werden, um verknüpften Teileprogrammanweisungen und ihren entsprechenden Anweisungsdarstellungen zugewiesen zu werden, die in dem Teileprogramm-Darstellungsfenster und/oder in dem durch die Ergebnisse generierten Ergebnisfenster und/oder in einem Client-Fenster basierend auf der Ausführung dieser Anweisungen angezeigt werden. Somit werden zusammenhängende Merkmale in diversen Fenstern in dem fensterübergreifender Autoscroll-Teil verknüpft.
  • Alternativ können das Ergebnisfenster und/oder das Client-Fenster und/oder das Teileprogramm-Darstellungsfenster (d. h. das Bearbeitungsfenster) seine eigenen Elementidentifikatoren zu dem Zeitpunkt generieren, zu dem sie ihre angezeigten Elemente generieren, und diese Informationen an den fensterübergreifenden Autoscroll-Teil weitergeben, der in einer gespeicherten Identifikatorverknüpfungstabelle oder dergleichen eine Verknüpfung zwischen den diversen Identifikatoren bilden kann. Es versteht sich, dass bei einigen Ausführungsformen die Teileprogrammanweisungen in den Teileprogramm-Anweisungsdarstellungen innerhalb einer einzigen Anwendung oder Subroutine der Steuer-Software des maschinell sehenden Inspektionssystems gehandhabt werden können, so dass eine Teileprogrammanweisung oder ihre entsprechende Teileprogramm-Anweisungsdarstellung durch einen einzigen Identifikator dargestellt werden kann, der von dem fensterübergreifender Autoscroll-Teil mit Bezug auf das eine oder andere dieser Elemente verwendet werden kann.
  • 9 bis 13 werden nachstehend kurz beschrieben. Diverse Merkmale und Attribute, die mit diversen Implementierungen aus 9 bis 13 verknüpft sind, können durch Auslegen von 9 bis 13 unter Berücksichtigung der hier enthaltenen diversen Figuren und der Offenbarung sowie unter Berücksichtigung der Beschreibung und der Offenbarung, die in den übernommenen Referenzen enthalten sind, erzielt werden.
  • 9 ist ein Blockdiagramm, das eine Ausführungsform einer Routine 900 zum Bereitstellen einer Programmbearbeitungsumgebung eines maschinell sehenden Systems abbildet, das gemäß den vorstehend und nachstehend erörterten Prinzipien betrieben wirderörtert.
  • Wie in 9 gezeigt, wird in einem Block 910 ein Lernmodus eines maschinell sehenden Inspektionssystems bereitgestellt, der derart konfiguriert ist, dass er betriebsfähig ist, um eine Benutzereingabe zu empfangen, um Vorgänge des Inspektionssystems mit Maschinenvision zu steuern und dazugehörige Teileprogrammanweisungen aufzuzeichnen, die den gesteuerten Vorgängen entsprechen, um ein Teileprogramm zu erstellen, wobei der Lernmodus eine Lernmodus-Benutzerschnittstelle umfasst, die einen Bearbeitungsbenutzerschnittstellen-Teil umfasst, der eine bearbeitbare Teileprogrammdarstellung von Teileprogrammanweisungen in einem Bearbeitungsfenster umfasst, wobei die Teileprogrammdarstellung Anweisungsdarstellungen umfasst, und ein Ergebnisfenster, das die jeweiligen Ergebnisse empfängt und anzeigt, die Ergebnisse umfassen, die von gesteuerten Vorgängen des Inspektionssystems mit Maschinenvision bereitgestellt werden.
  • In Block 920 ist der Lernmodus derart konfiguriert, dass beim Empfang einer Benutzereingabe, die einen ersten jeweiligen Satz von gesteuerten Vorgängen des maschinell sehenden Inspektionssystems bereitstellt, die Vorgänge umfassen, die einen ersten jeweiligen Satz von Ergebnissen bestimmen und in dem Ergebnisfenster anzeigen, der Lernmodus betriebsfähig ist, um automatisch Vorgänge bereitzustellen, die Folgendes umfassen:
    • • Aufzeichnen eines ersten jeweiligen Satzes von Teileprogrammanweisungen, die dem ersten jeweiligen Satz von gesteuerten Vorgängen entsprechen, die Vorgänge umfassen, die den ersten jeweiligen Satz von Ergebnissen bestimmen und in dem Ergebnisfenster anzeigen,
    • • Anzeigen des ersten jeweiligen Satzes von Ergebnissen in dem Ergebnisfenster, und
    • • Definieren und Anzeigen eines ersten jeweiligen Satzes von Anweisungsdarstellungen, die dem ersten jeweiligen Satz von Teileprogrammanweisungen entsprechen, die Vorgänge umfassen, die einen ersten jeweiligen Satz von Ergebnissen bestimmen und in dem Ergebnisfenster anzeigen.
  • Bei mindestens einer Ausführungsform oder Implementierung fährt die Routine entweder mit einem Routineteil fort, der in Block 930 beschrieben wird, oder bei einer anderen Ausführungsform oder Implementierung mit einem alternativen Block A, der einem Routineteil entspricht, der in 10 beschrieben wird.
  • Wie bei der Implementierung in Block 930 gezeigt, ist der Lernmodus konfiguriert, um Benutzerschnittstellen-Vorgänge bereitzustellen, die das Ergebnisfenster und das Teileprogramm-Darstellungsfenster (das Bearbeitungsfenster) gemäß einem Satz von fensterübergreifenden Autoscroll-Vorgängen betätigen, wobei: wenn der Benutzer ein Glied aus dem ersten jeweiligen Satz von Ergebnissen in dem Ergebnisfenster auswählt, ein fensterübergreifender Autoscroll-Vorgang eingeleitet wird, der Folgendes umfasst: Anpassen der Anweisungsdarstellungen in dem Bearbeitungsfenster, so dass mindestens eine Anweisungsdarstellung des ersten jeweiligen Satzes von Anweisungsdarstellungen in dem Teileprogramm-Darstellungsfenster sichtbar ist und mindestens eine Anweisungsdarstellung des ersten jeweiligen Satzes von Anweisungsdarstellungen in dem Bearbeitungsfenster von einem Indikator markiert wird, um mindestens eine Anweisungsdarstellung in dem Bearbeitungsfenster anzugeben, die den ersten jeweiligen Ergebnissen entspricht, die von dem Benutzer in dem Ergebnisfenster ausgewählt werden.
  • 10 ist ein Ablaufschema, das einen Routineteil 900A abbildet, der eine Alternative zu Block 930 aus 9 ist, und zu dem eine bestimmte Implementierung gehört, die eine ähnliche oder identische Funktion bereitstellt. Wenn der Routineteil 900A anstelle von Block 930 verwendet wird, dann wird der Lernmodus nach Block 920 und/oder Block 925, wie in 9 bei Block 928 abgebildet, konfiguriert, um zwischen mindestens einem Glied des ersten jeweiligen Satzes von Ergebnissen in dem Ergebnisfenster und einem entsprechenden Glied von mindestens einem von:
    • (a) dem ersten jeweiligen Satz von Teileprogrammanweisungen; und
    • (b) dem ersten jeweiligen Satz von Anweisungsdarstellungen
    eine fensterübergreifende Autoscroll-Verknüpfung zu definieren und aufzuzeichnen. Das entsprechende Glied wird mit Teileprogrammanweisungen verknüpft, die den ersten jeweiligen Satz von Ergebnissen in dem Ergebnisfenster generieren, wenn sie ausgeführt werden, wie zuvor erörtert. Dann wird in Block 930 der Lernmodus konfiguriert, um Benutzerschnittstellen-Vorgänge bereitzustellen, die das Ergebnisfenster und das Bearbeitungsfenster gemäß einem Satz von fensterübergreifenden Autoscroll-Vorgängen betätigen, basierend auf der fensterübergreifenden Autoscroll-Verknüpfung, wobei: wenn der Benutzer ein Glied des ersten jeweiligen Satzes von Ergebnissen in dem Ergebnisfenster auswählt, ein fensterübergreifender Autoscroll-Vorgang eingeleitet wird, der Folgendes umfasst: Anpassen der Anweisungsdarstellungen in dem Bearbeitungsfenster, so dass mindestens eine Anweisungsdarstellung des ersten jeweiligen Satzes von Anweisungsdarstellungen in dem Teileprogramm-Darstellungsfenster sichtbar ist, und mindestens eine Anweisungsdarstellung des ersten jeweiligen Satzes von Anweisungsdarstellungen in dem Bearbeitungsfenster von einem Indikator markiert ist, um mindestens eine Anweisungsdarstellung in dem Bearbeitungsfenster anzugeben, die den ersten jeweiligen Ergebnissen entspricht, die von dem Benutzer in dem Ergebnisfenster ausgewählt werden. Der fensterübergreifende Autoscroll-Vorgang basiert auf der fensterübergreifenden Autoscroll-Verknüpfung. Die fensterübergreifende Autoscroll-Verknüpfung kann, wie zuvor erörterterörtert und/oder wie nachstehend beschrieben, hergestellt werden.
  • 11 ist ein Ablaufschema 928', das eine Ausführungsform eines Teils der Routine aus 10 abbildet. Insbesondere zeigt 11 eine Ausführungsform von Vorgängen, die verwendbar sind, um eine fensterübergreifende Autoscroll-Verknüpfung zu definieren und aufzuzeichnen, so dass sie verwendet werden kann, um die entsprechenden Elemente in dem betreffenden Fenster zu identifizieren.
  • In Block 928'A wird mindestens ein erster jeweiliger Ergebnisidentifikator automatisch definiert und in Verbindung mit mindestens einem Glied des ersten jeweiligen Satzes von Ergebnissen in dem Ergebnisfenster aufgezeichnet, wobei der erste jeweilige Ergebnisidentifikator für das mindestens eine Glied des ersten jeweiligen Satzes von Ergebnissen eindeutig ist.
  • In Block 928'B wird mindestens eines der folgenden Elemente automatisch definiert und aufgezeichnet:
    • (a) mindestens ein erster jeweiliger Teileprogramm-Anweisungsidentifikator in Verbindung mit mindestens einem Glied des ersten jeweiligen Satzes von aufgezeichneten Teileprogrammanweisungen, wobei der mindestens eine erste jeweilige Teileprogramm-Anweisungsidentifikator für dieses mindestens eine Glied eindeutig ist; und
    • (b) mindestens ein erster jeweiliger Anweisungsdarstellungsidentifikator in Verbindung mit mindestens einem Glied des ersten jeweiligen Satzes von Teileprogramm-Anweisungsdarstellungen in dem Bearbeitungsfenster, wobei der mindestens eine erste jeweilige Anweisungsdarstellungsidentifikator für dieses mindestens eine Glied eindeutig ist.
  • In Block 928'C wird eine Verknüpfung zwischen dem mindestens einen ersten jeweiligen Ergebnisidentifikator und mindestens einem von:
    • (a) dem mindestens einen ersten jeweiligen Teileprogramm-Anweisungsidentifikator; und
    • (b) dem mindestens einen ersten jeweiligen Anweisungsdarstellungsidentifikator
    automatisch definiert und aufgezeichnet.
  • Mit anderen Worten besteht gemäß den zuvor mit Bezug auf Block 928 in 10 besprochenen Prinzipien die definierte und aufgezeichnete Verknüpfung zwischen dem Identifikator eines bestimmten Satzes von Ergebnissen in dem Ergebnisfenster und dem Identifikator eines entsprechenden Satzes von Teileprogrammanweisungen, die den ersten jeweiligen Satz von Ergebnissen in dem Ergebnisfenster generieren, wenn sie ausgeführt werden. Bei einer Ausführungsform kann bzw. können der bzw. die Identifikator(en) umgesetzt werden, wie zuvor mit Bezug auf 8 besprochen.
  • Wie zuvor angegeben, können das Ergebnisfenster und/oder das Client-Fenster und/oder das Teileprogramm-Darstellungsfenster (d. h. das Bearbeitungsfenster) eigene Elementidentifikatoren zu dem Zeitpunkt generieren, zu dem sie ihre angezeigten Elemente generieren, und diese Informationen an den fensterübergreifenden Autoscroll-Teil weitergeben, der eine Verknüpfung zwischen den diversen Identifikatoren in einer gespeicherten Identifikatorverknüpfungstabelle oder dergleichen bilden kann. Es versteht sich, dass die Teileprogrammanweisungen bei einigen Ausführungsformen in den Teileprogramm-Anweisungsdarstellungen innerhalb einer einzigen Anwendung oder Subroutine der Steuer-Software des maschinell sehenden Inspektionssystems gehandhabt werden können, so dass eine Teileprogrammanweisung oder ihre entsprechende Teileprogramm-Anweisungsdarstellung durch einen einzigen Identifikator dargestellt werden kann, der von dem fensterübergreifenden Autoscroll-Teil mit Bezug auf das eine oder andere dieser Elemente verwendbar ist. Somit kann bei einigen Ausführungsformen der Identifikator, der mit den Ergebnissen verknüpft ist, und der Identifikator, der mit den entsprechenden Teileprogrammanweisungen verknüpft ist, der gleiche Identifikator sein, und der Verknüpfungsvorgang, der zuvor mit Bezug auf Block 928'C besprochen wurde, wird fertiggestellt, indem einfach der gleiche Identifikator verwendet wird, um entsprechende Elemente in diversen Fenstern zu identifizieren.
  • 12 ist ein Ablaufschema 1200, das eine Ausführungsform eines Teils von Routinen aus 9 und/oder 10 abbildet. Insbesondere zeigt 12 eine Ausführungsform von Vorgängen, die verwendbar sind, um die Vorgänge der Blöcke 930 und/oder 930 umzusetzen.
  • In einem Entscheidungsblock 1210 wird darüber entschieden, ob ein jeweiliges Ergebnis in dem Ergebnisfenster ausgewählt wird (z. B. dadurch, dass ein Benutzer das Ergebnis über die Benutzerschnittstelle auswählt). Wenn in dem Ergebnisfenster kein jeweiliges Ergebnis ausgewählt wird, fährt die Routine mit Block 1220 fort, wo das Ergebnisfenster auf Auswahlereignisse überprüft wird, und die Routine kehrt zum Entscheidungsblock 1210 zurück. Wenn ein jeweiliges Ergebnis in dem Ergebnisfenster ausgewählt wurde, fährt die Routine mit Block 1230 fort.
  • In Block 1230 wird der entsprechende jeweilige Ergebnisidentifikator identifiziert, der mit dem ausgewählten jeweiligen Ergebnis verknüpft ist.
  • In einem Block 1240 wird die jeweilige Teileprogrammanweisung (PPI) und/oder der jeweilige PPI-Identifikator, die bzw. der mit dem jeweiligen Ergebnisidentifikator verknüpft ist bzw. sind, identifiziert. Bei einer Ausführungsform kann dies über den Zwischenschritt des Identifizierens eines jeweiligen Identifikators für eine Teileprogramm-Anweisungsdarstellung erfolgen, die bzw. der mit dem jeweiligen Ergebnisidentifikator verknüpft ist bzw. sind, und dann durch Identifizieren der Teileprogrammanweisung(en) (PPI), die der jeweiligen Teileprogramm-Anweisungsdarstellung zugrundeliegt bzw. zugrundeliegen.
  • In einem Entscheidungsblock 1250 wird bestimmt, ob die Anweisungsdarstellung, die der jeweiligen PPI und/oder dem PPI-Identifikator, die bzw. der mit dem jeweiligen Ergebnisidentifikator in dem Teileprogramm-Darstellungsfenster verknüpft ist bzw. sind, entspricht, zu sehen ist. Falls die Anweisungsdarstellung, die der jeweiligen PPI und/oder dem PPI-Identifikator, die bzw. der mit dem jeweiligen Ergebnisidentifikator verknüpft ist bzw. sind, entspricht, in dem Teileprogramm-Darstellungsfenster zu sehen ist, fährt die Routine mit einem Block 1270 fort. Falls die Anweisungsdarstellung, die der jeweiligen PPI und/oder dem PPI-Identifikator, die bzw. der mit dem jeweiligen Ergebnisidentifikator verknüpft ist bzw. sind, entspricht, in dem Teileprogramm-Darstellungsfenster nicht zu sehen ist, fährt die Routine mit einem Block 1260 fort.
  • In einem Block 1260 werden die Anweisungsdarstellungen in dem Teileprogramm-Darstellungsfenster derart angepasst, dass mindestens eine Anweisungsdarstellung, die der jeweiligen PPI und/oder dem PPI-Identifikator, die bzw. der mit dem jeweiligen Ergebnisidentifikator verknüpft ist bzw. sind, entspricht, in dem Teileprogramm-Darstellungsfenster zu sehen ist.
  • In einem Block 1270 wird diese Anweisungsdarstellung, die der jeweiligen PPI und/oder dem PPI-Identifikator entspricht, mit einem Indikator in der Benutzerschnittstelle markiert, um mindestens eine Anweisungsdarstellung in dem Bearbeitungsfenster anzugeben, die dem jeweiligen Ergebnis entspricht, das von dem Benutzer in dem Ergebnisfenster ausgewählt wird.
  • 13 ist ein Ablaufschema 1300, das eine Ausführungsform einer zusätzlichen und/oder alternativen Routine zum Betätigen einer Programmbearbeitungsumgebung abbildet. Insbesondere zeigt 13 eine Ausführungsform von Vorgängen, wobei ein Auswahlereignis in dem Bearbeitungsfenster die Identifizierung der entsprechenden Ergebnisse in einem Ergebnisfenster auslöst.
  • In einem Entscheidungsblock 1310 wird darüber entschieden, ob eine Darstellung von Teileprogrammanweisungen (PPI) in dem Teileprogramm-Darstellungsfenster ausgewählt wird. Falls eine PPI-Darstellung in dem Teileprogramm-Darstellungsfenster ausgewählt wird, fährt die Routine mit Block 1320 fort, wo das Teileprogramm-Darstellungsfenster auf Auswahlereignisse überprüft wird, und die Routine kehrt zum Entscheidungsblock 1310 zurück. Falls eine PPI-Darstellung in dem Bearbeitungsfenster ausgewählt wird, fährt die Routine mit einem Block 1330 fort.
  • In einem Block 1330 wird die jeweilige Teileprogrammanweisung und/oder der jeweilige PPI-Identifikator, der mit der jeweiligen ausgewählten PPI-Darstellung verknüpft ist, identifiziert.
  • In Block 1340 wird der entsprechende jeweilige Ergebnisidentifikator identifiziert, der mit der jeweiligen PPI und/oder dem jeweiligen PPI-Identifikator verknüpft ist.
  • In einem Entscheidungsblock 1350 wird bestimmt, ob das Ergebnis, das durch den entsprechenden jeweiligen Ergebnisidentifikator identifiziert wird, im Ergebnisfenster zu sehen ist. Falls das Ergebnis, das durch den entsprechenden jeweiligen Ergebnisidentifikator identifiziert wird, in dem Ergebnisfenster zu sehen ist, fährt die Routine mit einem Block 1370 fort. Falls das Ergebnis, das durch den entsprechenden jeweiligen Ergebnisidentifikator identifiziert wird, im Ergebnisfenster nicht zu sehen ist, fährt die Routine mit Block 1360 fort.
  • In einem Block 1360 werden die Ergebnisse im Ergebnisfenster derart angepasst, dass das Ergebnis, das durch den entsprechenden jeweiligen Ergebnisidentifikator identifiziert wird, im Ergebnisfenster zu sehen ist.
  • In einem Block 1370 wird dieses Ergebnis mit einem Indikator in der Benutzerschnittstelle markiert, um mindestens ein Ergebnis im Ergebnisfenster anzugeben, das der jeweiligen PPI-Darstellung entspricht, die von dem Benutzer in dem Teileprogramm-Darstellungsfenster ausgewählt wird.
  • 4 bis 8 zeigen eine Sichtfeldanzeige 480, die ein Sichtfeld des maschinell sehenden Inspektionssystems 100 zeigt, wie es von der Kamera 260 abgebildet wird, und zeigt zur Information mit einem gestrichelten Umriss schematisch die Stelle, an der ein Kastenwerkzeug-Interessengebiet (z. B. das Kastenwerkzeug 482, das der Kastenwerkzeug-Anweisungsdarstellung 422A entspricht, und das Kastenwerkzeug 481, das der Kastenwerkzeug-Anweisungsdarstellung 421A entspricht) erscheinen würde, das von einem Benutzer definiert und aufgezeichnet wird. Es versteht sich, dass sich die Sichtfeldanzeige 480 bei einigen Ausführungsformen wie ein Fenster verhalten kann, das synchronisiert ist, um Elemente anzuzeigen, die den Elementen entsprechen, die in dem Teileprogramm-Darstellungsfenster (und/oder anderen Fenstern) auf eine ähnliche Art und Weise wie hier zuvor beschrieben ausgewählt oder hervorgehoben sind. D. h., dass bei Auswahl einer Teileprogramm-Anweisungsdarstellung (z. B. eine Kasten-Werkzeug-Anweisungsdarstellung) in dem Bearbeitungsfenster die Sichtfeldanzeige 480 das entsprechende Werkstückmerkmal anzeigen kann, das anfänglich verwendet wird, um diese Anweisung zu definieren.
  • Bei einigen Ausführungsformen kann das angezeigte Bild ein gespeichertes Bild sein, das wieder aufgerufen wird. Die zuvor einbezogene Anmeldung '232 offenbart Bearbeitungsteilvorgänge, bei denen „Ersatzdaten” nach der Ausführung von Teileprogrammanweisungen im Lernmodus gespeichert werden. Solche Ersatzdaten können ein Werkstückbild umfassen, das gespeichert wird, so dass es in der Sichtfeldanzeige 480 angezeigt werden kann, wenn eine entsprechende Teileprogramm-Anweisungsdarstellung (z. B. eine Kastenwerkzeug-Anweisungsdarstellung) in dem Bearbeitungsfenster ausgewählt wird (d. h. wenn das Werkstückmerkmal in diesem Bild verwendet wurde, um diese Anweisung anfänglich zu definieren). Alternativ können die Ersatzdaten die Mittel bereitstellen, um die räumliche Stelle, die Linsenkonfiguration und die Beleuchtung usw. zu bestimmen, um die aktive Duplizierung der Bilderfassungsbedingungen und des Bildes, das verwendet wird, wenn die Anweisung anfänglich definiert wird, zu beschleunigen. Wie es in der Anmeldung '232 beschrieben wird, kann diese Vorgehensweise viel Zeit sparen und ein Kollisionsrisiko vermeiden, statt eine Anpassung der aktiven Visionsmaschinenkomponenten zu erfordern, um ein neues Bild von diesem Werkstückmerkmal zu erfassen. Genauer gesagt können die Bearbeitungsteilvorgänge, die in der Anmeldung '232 beschrieben werden, vorteilhaft in Kombination mit diversen hier offenbarten Ausführungsformen verwendet werden, um den richtigen Programmbearbeitungskontext bereitzustellen, entweder durch die Ausführung des Ersatzmodus oder durch die Ausführung des aktiven Modus oder durch eine Kombination von beiden, und zwar gegebenenfalls, nachdem ein hier beschriebener Autoscroll-Vorgang ausgeführt wurde. Daher sind die Teile der Anmeldung '232 nachstehend mit 14 bis 19 zur einfachen Bezugnahme und zum einfachen Verständnis enthalten. Ein besseres Verständnis kann aus der Anmeldung '232 und den anderen übernommenen Referenzen erzielt werden.
  • 14 ist ein Blockdiagramm, das zusätzliche Komponenten des Bearbeitungsteils 160 aus 2 abbildet. Wie in 14 gezeigt, umfasst der Bearbeitungsteil 160 einen Controller für Bearbeitungsvorgänge 174, einen Bearbeitungsbenutzerschnittstellen-Teil 176, einen Editorbefehls-Teil 177 und einen Bearbeitungsausführungsteil 178. Der Controller für Bearbeitungsvorgänge 174 steuert die Vorgänge für die Bearbeitungsfunktionen, und der Bearbeitungsbenutzerschnittstellen-Teil 176 stellt die Benutzerschnittstellenmerkmale für die Bearbeitungsfunktionen bereit. Der Bearbeitungsbenutzerschnittstellen-Teil 176 umfasst einen Programmdarstellungs-Fensterteil 176pi, der Darstellungs-Benutzerschnittstellenmerkmale 176r umfasst, die Knoten-Benutzerschnittstellenmerkmale 176n umfassen. Der Programmdarstellungs-Fensterteil 176pi stellt eine Teileprogrammdarstellung bereit, die Teileprogramm-Anweisungsdarstellungen umfasst, wie es nachstehend mit Bezug auf 15 ausführlicher beschrieben wird. Bei einer Ausführungsform kann die Teileprogrammdarstellung in einer Baumstruktur bereitgestellt werden. Die Darstellungs-Benutzerschnittstellenmerkmale 176r stellen Merkmale bereit, wie etwa einen Einfügungszeiger, dessen Farbe sich je nach dem Zustand des Kontextes und abhängig davon, wie der Kontext erzielt wurde (z. B. ob der Kontext aus Ersatzdaten erzeugt wurde, durch eine aktive Ausführung usw.), ändern kann. Mit Bezug auf die Knoten-Benutzerschnittstellenmerkmale 176n können diese bei einer Ausführungsform Merkmale, wie etwa Icons oder gebrochene Icons, und farbliche Hervorhebungen zur Angabe der Aktivität eines Knotens usw. umfassen.
  • Der Bearbeitungsausführungsteil 178 ist für diverse Ausführungsmodi während eines Bearbeitungsprozesses verantwortlich und umfasst einen Ersatzmodusteil 180, einen Aktivmodusteil 191 und einen Teil mit Benutzerschnittstellenmerkmalen zur Bearbeitungsausführung 192. Der Ersatzmodusteil 180 umfasst einen Knotenanalysator 181, der Ersatzdatenvorgänge 181A und Maschinenvorgänge 181B umfasst. Wie es nachstehend ausführlicher beschrieben wird, werden gemäß der vorliegenden Erfindung Ersatzdaten verwendet, um einen Kontext für die weitergehenden Bearbeitungsvorgänge zu generieren, wenn der Ersatzmodusteil 180 einen Ersatzausführungsmodus betätigt. Bei einer Implementierung bestimmt der Knotenanalysator 181, ob die Teileprogrammausführung den Zielknoten erreicht hat (wo beispielsweise eine Änderung an dem Teileprogramm vorzunehmen ist). Der Knotenanalysator 181 bestimmt, ob die Ersatzdatenvorgänge 181A oder die aktiven Maschinenvorgänge 181B gemäß der betreffenden Knotenart ausgeführt werden. Im Allgemeinen werden, sobald der Zielknoten erreicht ist, aktive Maschinenvorgänge ausgeführt, wobei für Teileprogrammanweisungen vor dem Zielknoten Ersatzdatenvorgänge verwendet werden können, um mindestens einen Teil des Kontexts zu generieren, der für die weitergehenden Bearbeitungsvorgänge benötigt wird. Wenn Ersatzdaten fehlen, kann ein Benutzer dazu aufgefordert werden, aktive Maschinenvorgänge zu ermöglichen/auszuführen, um den benötigten Kontext zu generieren. Bei einer Implementierung wird jeder Knoten analysiert, um zu bestimmen, ob Ersatzdatenvorgänge anwendbar sind, darunter auch, ob Ersatzdaten vorliegen, ob es sich um die richtige Knotenart für Ersatzdatenvorgänge handelt, oder alternativ, ob aktive Maschinenvorgänge verwendet werden müssen, usw.
  • Der Aktivmodusteil 191 umfasst Vorgänge, die gewöhnlich von maschinell sehenden Systemen des Stands der Technik ausgeführt werden. Es versteht sich, dass der Aktivmodusteil 191 von dem Ersatzmodusteil 180 aufgerufen werden kann, um gegebenenfalls die Maschinenvorgänge 181B auszuführen. Der Aktivmodusteil 191 umfasst Maschinenvorgänge 191A und Datenvorgänge 191B. Die Maschinenvorgänge 191A führen aktive Maschinenvorgänge aus (z. B. das Bewegen des Objekttisches als Teil eines Videowerkzeug-Vorgangs), während die Datenvorgänge 191B im Allgemeinen Daten ausgeben. Die Bearbeitungsausführungs-Benutzerschnittstellenmerkmale 192 stellen Benutzerschnittstellenmerkmale für die Ausführung der Bearbeitungsfunktionen bereit (z. B. Angaben bezüglich des Status von diversen Ausführungsvorgängen, wie etwa Farbcodes, die angeben, welche Teile eines Teileprogramms Ersatzdaten verwendet haben oder über eine aktive Ausführung ausgeführt wurden, usw.).
  • Die Editorbefehle 177 umfassen einen Segmentlaufteil 177A, einen Änderungsteil 177B und einen Einfügungs-/Hinzufügungsteil 177C, die in der Anmeldung '232 ausführlich beschrieben werden. Im Allgemeinen führt der Segmentlaufteil 177A einen aktiven Programmlauf eines ausgewählten Segments des Teileprogramms aus. Es versteht sich, dass der richtige Kontext bis zu dem ausgewählten Segment hergestellt werden muss, damit ein ausgewähltes Segment eines Teileprogramms ablaufen kann. Wie es nachstehend ausführlicher beschrieben wird, kann gemäß der vorliegenden Erfindung der richtige Kontext dadurch hergestellt werden, dass Ersatzdaten verwendet werden. Wenn es für einen bestimmten Teil eines Teileprogramms keine Ersatzdaten gibt, dann ein Segment ausgeführt werden, um die benötigten Ersatzdaten zu generieren. Es versteht sich, dass es auf Grund der Notwendigkeit des richtigen Kontexts, der bis zu dem ausgewählten Segment führt, bei maschinell sehenden Systemen des Stands der Technik schwierig war, ein isoliertes Segment eines Teileprogramms ablaufen zu lassen, ohne alle der vorhergehenden Teile des Teileprogramms ablaufen zu lassen. Wenn beispielsweise das Segment erforderte, dass der Objekttisch abgesenkt wurde, aber das System die aktuelle XYZ-Position des Objekttisches nicht kannte, dann konnte das Absenken des Objekttisches auf eine unbekannte Position nicht empfehlenswert sein. Somit bestand die bei Implementierungen des Stands der Technik typischerweise verwendete Technik darin, das gesamte Teileprogramm von Anfang an ablaufen zu lassen, um ein Segment in der Mitte ablaufen lassen zu können, für das alle vorhergehenden Vorgänge viel Zeit zur Ausführung benötigen konnten. Gemäß der vorliegenden Erfindung dagegen können Ersatzdaten verwendet werden, um den richtigen Kontext herzustellen, um Bearbeitungen vorzunehmen oder um ein Segment eines Teileprogramms ablaufen zu lassen, ohne dass das gesamte Teileprogramm von Anfang an ablaufen muss.
  • Der Änderungsteil 177B weist gewisse Ähnlichkeiten mit dem Betrieb des Segmentlaufteils 177A auf. Im Allgemeinen kann, wenn eine Anweisungsdarstellung in einem Teileprogramm zum Ändern ausgewählt wird, der Ersatzmodus für die Teile des Teileprogramms verwendet werden, die vor der zu ändernden Anweisung liegen. Wenn bei einer Ausführungsform der Änderungsbefehl für eine Anweisungsdarstellung in einem Teileprogramm ausgewählt wird, wird der Knoten für die Anweisungsdarstellung als Zielknoten bezeichnet. Sobald der Zielknoten erreicht ist, verlässt der Editor den Ersatzmodus und geht in den aktiven Ausführungsmodus über (z. B. unter der Kontrolle des Aktivmodusteils 191) und führt die erste relevante Teileprogrammanweisung des Knotens aus. Wenn bei einer Ausführungsform die Anweisung, die zur Änderung ausgewählt wird, einem Kindknoten entspricht, dann kann die aktive Ausführung angewiesen werden, an dem Elternknoten zu beginnen. Wenn bei einem spezifischen Ausführungsbeispiel ein Kindknoten, der mit einem Kastenwerkzeug verknüpft ist, geändert werden soll, kann der Elternknoten, der das Einrichten der Bilderfassung für das Kastenwerkzeug einbezieht, der Knoten sein, an dem der Beginn der aktiven Ausführung eingestellt ist. Was den Einfügungs-/Hinzufügungs-Komponente 177C betrifft, so kann es sein, dass der Elternknoten ebenfalls ausgeführt werden muss, um die gewünschte Einfügung auszuführen, wenn die Einfügung zwischen Kindknoten erfolgt. Es versteht sich, dass bei bestimmten Implementierungen ein Hinzufügungsvorgang im Allgemeinen als Sonderfall eines Einfügungsvorgangs angesehen werden kann, der am Ende eines bestehenden Teileprogramms erfolgt.
  • 15 ist ein Schema einer Bearbeitungsschnittstelle 1500, die eine Darstellung eines Teileprogramms 1510 umfasst, das eine Vielzahl von anfänglichen Teileprogramm-Anweisungsdarstellungen 1551 bis 1564 aufweist. Die Bearbeitungsschnittstelle 1500 umfasst auch diverse Mess- und/oder Vorgangsauswahlleisten, wie etwa die Auswahlleiste 1520. Der Vorgang der spezifischen Anweisungsdarstellungen der Teileprogrammdarstellung 1510 wird nachstehend mit Bezug auf 16 ausführlicher beschrieben.
  • 16 ist ein Schema, das eine Benutzerschnittstelle 1600 abbildet, die ein Bild eines Sichtfeldfensters 1610 mit einem Werkstück 1615 umfasst, an dem das Teileprogramm gemäß 15 ausgeführt wurde. Die Benutzerschnittstelle 1600 umfasst auch diverse Mess- und/oder Vorgangsauswahlleisten, wie etwa die Auswahlleisten 1620 und 1640, ein Echtzeit-XYZ-(Position-)Koordinatenfenster 1630, ein Lichtsteuerungsfenster 1650 und einen Videowerkzeug-Parameterkasten 1660. Wie es nachstehend ausführlicher beschrieben wird, werden diverse Merkmale an dem Werkstück 1615 gemäß damit verbundenen Teileprogramm-Anweisungsdarstellungen aus 15 bestimmt, wie etwa Sätze von Kantenpunkten PTX, PTY, PT3 und PT4, Linien XLINE, YLINE, L3 und L4, ein Ausgangspunkt XYORIGIN und ein Schnittpunkt I2.
  • Die nachstehende Beschreibung erfolgt mit Bezug sowohl auf die anfänglichen Teileprogramm-Anweisungsdarstellungen 351 bis 364 aus 15 als auch auf die entsprechenden Merkmale an dem Werkstück 1615 aus 16. Bei einer Ausführungsform wird jede der Anweisungsdarstellungen 351 bis 364 mit einem Knoten verknüpft, und ihr wird eine Knotennummer oder ein Identifikator zugewiesen. Bei bestimmten Implementierungen wird eine Baumstruktur verwendet, wobei einige der Anweisungsdarstellungen mit Elternknoten verknüpft sind und einige mit Kindknoten verknüpft sind. Beispielsweise sind die Kindknoten-Anweisungsdarstellungen 1551A1551D, 1553A1553C, 1554A1554B, 1561A1561C und 1562A1562B jeweils mit den Elternknoten-Anweisungsdarstellungen 1551, 1553, 1554, 1561 und 1562 verknüpft. Es versteht sich ebenfalls, dass bei einer Ausführungsform die Anweisungsdarstellungen 1551 bis 1564 wie in der Bearbeitungsschnittstelle 1500 angezeigt, Icons und Bezeichnungen umfassen, die von den Auszeichnungssprache-Anweisungen des Teileprogramms abgeleitet werden. Bei einer Ausführungsform kann die Auszeichnungssprache des Teileprogramms einen XML-artigen Code umfassen. Die Anweisungsdarstellungen 15511564 verweisen somit auf dazugehörige Code-Anweisungen, die ausgeführt werden, wie es nachstehend mit Bezug auf 17A und 17B ausführlicher beschrieben wird.
  • Wie in 15 gezeigt, beginnt die Teileprogrammdarstellung 1510 mit den Anweisungsdarstellungen 1551 und 1552, die angeben, dass der Benutzer eine Stelle am Werkstück 1615 manuell auswählt, um als ungefährer Ursprungspunkt ROP (nicht gezeigt) zu dienen, und dann den Ursprung auf den ungefähren Ursprungspunkt ROP ausrichtet. Genauer gesagt geben die Anweisungsdarstellungen 1551A, 1551B, 1551C und 1551D an, dass der Benutzer ein manuelles Werkzeug einrichtet und verwendet, um den ungefähren Ursprungspunkt ROP zu bestimmen, und die Anweisungsdarstellung 1552 den Ursprung auf den ungefähren Ursprungspunkt ROP ausrichtet. Die Anweisungsdarstellung 1553 gibt dann an, dass ein Kastenwerkzeug geöffnet wird, um die Linie XLINE zu messen. Genauer gesagt geben die Anweisungsdarstellungen 1553A und 1553B an, dass der Benutzer das Kastenwerkzeug einrichtet und verwendet (z. B. einschließlich des Bewegens des Objekttisches bis zu einer bestimmten Stelle und des Erfassens eines entsprechenden Bildes), um die Kantenpunkte PTX zu bestimmen. Die Funktionen und Vorgänge des Kastenwerkzeugs und von anderen Kantenerkennungs-Videowerkzeugs sind in der Technik bekannt und werden in den zuvor übernommenen Referenzen beschrieben. Die Kantenpunkte PTX, die von dem Kastenwerkzeug bestimmt werden, werden dann von der Anweisungsdarstellung 1553C verwendet, um die Linie XLINE zu definieren. Ähnlich gibt die Anweisungsdarstellung 1554 an, dass ein Kastenwerkzeug geöffnet wird, um die Linie YLINE zu messen, wobei die Anweisungsdarstellung 1554A angibt, dass der Benutzer das Kastenwerkzeug verwendet, um die Kantenpunkte PTY zu bestimmen, die dann verwendet werden, wie es die Anweisungsdarstellung 1554B angibt, um die Linie YLINE zu definieren.
  • Die Anweisungsdarstellung 1555 gibt dann an, dass ein Schnittpunkt XYORIGIN am Kreuzungspunkt der Linien XLINE und YLINE bestimmt wird. Die Anweisungsdarstellung 1556 gibt dann an, dass dem maschinell sehenden System befohlen wird, den Ursprung auf den Punkt XYORIGIN auszurichten. Die Anweisungsdarstellung 1557 gibt dann an, dass dem maschinell sehenden System befohlen wird, die X-Achse für das Werkstück 1615 auf die Linie XLINE auszurichten. Wie es nachstehend mit Bezug auf 5 ausführlicher beschrieben wird und wie es durch die Kommentarzeile 1558 angegeben wird, stellen die Vorgänge der Anweisungsdarstellungen 1551 bis 1557 die richtige Position und Orientierung des Werkstücks 1615 her, um zusätzliche Messungen auszuführen.
  • Die Anweisungsdarstellung 1561 gibt dann an, dass ein Kastenwerkzeug geöffnet wird, um die Linie L3 zu messen. Genauer gesagt geben die Anweisungsdarstellungen 1561A und 1561B an, dass der Benutzer das Kastenwerkzeug einrichtet und verwendet (z. B. einschließlich des Bewegens des Objekttisches bis zu einer bestimmten Stelle und des Erfassens eines entsprechenden Bildes), um die Kantenpunkte PT3 zu bestimmen, die dann verwendet werden, wie es von der Anweisungsdarstellung 1561C angegeben wird, um die Linie L3 zu definieren. Wie es nachstehend ausführlicher beschrieben wird, werden das Kastenwerkzeug, das zum Messen der Linie L3 verwendet wird (d. h. das als Kastenwerkzeug 1670 in 16 abgebildet ist), und die dazugehörigen Anweisungsdarstellungen 1561 und 1561A bis 1561C in 17A und 17B als Beispiele verwendet, um zu erläutern, wie Ersatzdaten generiert, gespeichert und geändert werden.
  • Zurückkehrend zu 15 gibt die Anweisungsdarstellung 1562 an, dass ein Kastenwerkzeug geöffnet wird, um die Linie L4 zu messen, wobei die Anweisungsdarstellung 1562A angibt, dass der Benutzer ein Kastenwerkzeug verwendet, um die Kantenpunkte PT4 zu bestimmen, die dann verwendet werden, wie es von der Anweisungsdarstellung 1562B angegeben wird, um die Linie L4 zu definieren. Die Anweisungsdarstellung 1563 gibt an, dass der Benutzer eine ausgewählte Positionstoleranz definiert, und die Anweisungsdarstellung 1564 gibt an, dass ein Schnittpunkt I2 bestimmt wird, an dem sich die zuvor bestimmten Linien L3 und L4 kreuzen.
  • Nachdem das Teileprogramm, das der Darstellung 1510 entspricht, gespeichert und verlassen wurde, war es bei Implementierungen des Stands der Technik beim erneuten Aufrufen des Teileprogramms zur Bearbeitung notwendig, das gesamte Teileprogramm von Anfang an auszuführen, um einen gültigen Kontext zu erzeugen, um Bearbeitungen an dem Teileprogramm fortzuführen. Obwohl Implementierungen des Stands der Technik genaue Ergebnisse und Teileprogramme erzeugt haben, indem jedes Mal alle Anweisungen ausgeführt wurden, wenn ein Teileprogramm zur Bearbeitung wieder aufgerufen wurde, konnte die Ausführung aller Anweisungen viel Zeit beanspruchen (insbesondere für Anweisungen, die bestimmte zeitraubende Prozesse benötigten, wie etwa Hardware-Interaktionen usw.) Wie es nachstehend ausführlicher beschrieben wird, können gemäß der vorliegenden Erfindung, statt das ganze Teileprogramm von Anfang an auszuführen, zuvor gespeicherte Daten als Ersatzdaten verwendet werden, um einen gültigen Kontext zu simulieren, um mit der Bearbeitung des Teileprogramms fortzufahren.
  • Mit anderen Worten ist es bei einer Ausführungsform nützlich, bestimmte Parameter zu kennen, wenn weitergehende Bearbeitungen an dem Teileprogramm ausgeführt werden, um Messungen an dem Werkstück 1615 vorzunehmen. Um beispielsweise die richtigen Schwellenwerte, die richtige Größe und die richtige Position für ein Videowerkzeug zu kennen, ist es notwendig, über das richtige Videobild zu verfügen, einschließlich Informationen wie etwa der richtigen Position des Objekttisches, der richtigen Beleuchtungsniveaus, der richtigen Vergrößerung usw. Bei einer Ausführungsform können solche Informationen als Teil des „Hardware-Kontextes” angesehen werden. Um zudem zu wissen, ob eine Sequenz richtig ist, um Bearbeitungen an dem Teileprogramm fortzuführen, ist es nützlich zu wissen, was bereits erledigt wurde, einschließlich der Merkmale, die gemessen wurden, welches Teilekoordinatensystem verwendet wird, usw. Bei einer Ausführungsform können diese Informationen als Teil des Software-Kontextes angesehen werden. Bei einer Ausführungsform geht man im Allgemeinen davon aus, dass der Kontext die Benutzerschnittstelle des maschinell sehenden Inspektionssystems in einem derartigen Zustand herstellt, dass alle nativen Schnittstellen-Steuerelemente zur Änderung des Teileprogramms bereit sind. Wie zuvor angemerkt, wird der genaue Kontext zu dem Zeitpunkt bereitgestellt, zu dem das Teileprogramm anfänglich aufgezeichnet wird, und auch später bei Ausführung des Programms, indem alle Teileprogrammanweisungen (z. B. entsprechend den Darstellungen 1551 bis 1564) im Allgemeinen der Reihe nach ausgeführt werden. Wie zuvor angemerkt, stellt dies einen gültigen Kontext bereit, um Bearbeitungen an dem Teileprogramm fortzuführen, wozu das Angeben von Messungen und Ergebnissen gehört, die bereits von dem Teileprogramm erzeugt wurden (z. B. die Angaben der Linien XLINE, YLINE, L3, L4, und der Schnittpunkte XYORIGIN und I2, wie mit Bezug auf das Werkstück 1615 in der Benutzerschnittstelle 1600 dargestellt).
  • Wenn, wie es nachstehend ausführlicher beschrieben wird, ein Teileprogramm bearbeitet wird, ist es möglich, anstelle der Ausführung aller Anweisungsdarstellungen des Teileprogramms der Reihe nach zur Generierung des benötigten Kontexts einen bestimmten Kontext zu simulieren, indem zuvor gespeicherte Daten als Ersatzdaten verwendet werden. Kurz gesagt werden während der Aufzeichnung oder der Laufzeitausführung eines Teileprogramms die Daten, die benötigt werden, um den Kontext zu bestimmen, mit dem Teileprogramm gespeichert. Dann können zu einem späteren Zeitpunkt bestimmte Ergebnisse unter Verwendung der gespeicherten Daten als Ersatzdaten simuliert werden, um den gewünschten Kontext zu erzeugen. Somit werden erhebliche Zeitersparnisse dadurch erreicht, dass die Ausführung von bestimmten zeitraubenden Vorgängen (z. B. solchen, die eine Hardware-Interaktion benötigen, wie etwa das Bewegen des Objekttisches, Kantenerkennung, Fokussierung, Beleuchtungsänderungen, Musterabgleich usw.) vermieden wird. Das Speichern der Daten, die später als Ersatzdaten verwendet werden können, wird nachstehend mit Bezug auf 17A und 17B ausführlicher beschrieben.
  • 17A und 17B sind Diagramme von Code-Anweisungen des Teileprogramms in Auszeichnungssprache, die einigen der Anweisungsdarstellungen aus 15 entsprechen. 17A und 17B sind die Diagramme 1700A und 1700B von Code-Anweisungen in Auszeichnungssprache, die einigen der Anweisungsdarstellungen der Teileprogrammdarstellung aus 15 entsprechen. Genauer gesagt zeigen 17A und 17B die Teileprogrammanweisungen in einem XML-artigen Code, die den Anweisungsdarstellungen 1561 und 1561A bis 1561C aus 15 zum Messen der Linie L3 entsprechen. Es versteht sich, dass die Anweisungsdarstellungen 1561 und 1561A bis 1561C bei einer Ausführungsform Icons und Bezeichnungen umfassen, die von den XML-artigen Code-Anweisungen aus 17A und 17B abgeleitet sind. Die Anweisungsdarstellungen 1561 und 1561A bis 1561C werden nicht selber ausgeführt, sondern verweisen auf dazugehörige Code-Anweisungen aus 17A und 17B, die ausgeführt werden.
  • Wie in 17A und 17B gezeigt, umfassen die XML-artigen Code-Anweisungen die Knoten-ID-Nummern 1761, 1761A, 1761B und 1761C, die bei einer Ausführungsform den Anweisungsdarstellungen 1561, 1561A, 1561B und 1561C aus 15 entsprechen können. Die XML-artigen Code-Anweisungen umfassen auch bestimmte Positionsinformationen 1710 für die Bildposition und bestimmte Kastenwerkzeug-Positionsinformationen 1720 für das Kastenwerkzeug, wie sie etwa in den Bereichen 1630 und 1660 der Benutzerschnittstelle 1600 aus 16 angezeigt werden können. Wie in 17B gezeigt, werden mit dem Teileprogramm die Daten 1730 gespeichert, die später als Ersatzdaten verwendet werden können, um einen Kontext zu simulieren. Wenn genauer gesagt die Anweisungsdarstellung 1561B aus 15 angibt, dass das Kastenwerkzeug 1670 aus 16 läuft, um den Satz von Kantenpunkten PT3 zu bestimmen, werden die Positionen des Satzes von Kantenpunkten PT3 mit Bezug auf das Teilekoordinatensystem für das Werkstück in den XML-artigen Code-Anweisungen als Daten 1730 gespeichert. Es können Änderungen an dem Teileprogramm vorgenommen werden, die zu Änderungen an den Ersatzdaten 1730 führen können.
  • 18A und 18B sind Ablaufdiagramme, die eine Ausführungsform einer Routine 1800 zum Bereitstellen einer Programmbearbeitungsumgebung eines maschinell sehenden Systems, das Echtzeit-Kontextgenerierungsmerkmale umfasst, abbilden. Wie in 18A gezeigt, wird in einem Block 1810 ein Programmlaufmodus bereitgestellt, der derart konfiguriert ist, dass er betriebsfähig ist, um ein zuvor erstelltes Teileprogramm unter Verwendung eines Ausführungs-Programmlaufmodus auszuführen. In einem Block 1820 wird ein Lernmodus bereitgestellt, der derart konfiguriert ist, dass er betriebsfähig ist, um eine Benutzereingabe für Steuervorgänge des maschinell sehenden Inspektionssystems zu empfangen und verknüpfte Teileprogrammanweisungen aufzuzeichnen, die den gesteuerten Vorgängen entsprechen, um ein Teileprogramm zu erstellen. Zudem wird der Lernmodus dazu gebracht, eine Bearbeitungs-Benutzerschnittstelle zu enthalten, die eine bearbeitbare Teileprogrammdarstellung von Teileprogrammanweisungen umfasst, wobei die Teileprogrammdarstellung Anweisungsdarstellungen umfasst. In einem Block 1830 wird ein Bearbeitungsteil bereitgestellt, der derart konfiguriert ist, dass er betriebsfähig ist, um ein Teileprogramm zu bearbeiten. Zudem umfasst der Bearbeitungsteil einen Bearbeitungsausführungsteil, der betriebsfähig ist, um zuvor aufgezeichnete Teileprogrammanweisungen gemäß einem Ausführungs-Bearbeitungsmodus auszuführen, der anders ist als der Ausführungs-Programmlaufmodus. Von Block 1830 aus fährt die Routine mit Punkt A fort, wie es nachstehend mit Bezug auf 18B ausführlicher beschrieben wird.
  • Wie in 18B gezeigt, fährt die Routine von Punkt A aus mit einem Block 1840 fort. In Block 1840 wird der Lernmodus derart konfiguriert, dass er ferner betriebsfähig ist, um automatisch jeweilige Ersatzdaten aufzuzeichnen, die mit einem jeweiligen Satz von aufgezeichneten Teileprogrammanweisungen verknüpft sind. Zudem umfassen mindestens einige jeweilige Ersatzdaten Daten, die sich aus einer aktiven Ausführung von gesteuerten Vorgängen ergeben, die dem dazugehörigen jeweiligen Satz von aufgezeichneten Teileprogrammanweisungen entsprechen.
  • In einem Block 1850 wird der Ausführungs-Bearbeitungsmodus derart konfiguriert, dass er einen Ersatzausführungsmodus umfasst, wobei während des Ersatzausführungsmodus von Teileprogrammanweisungen, die in der bearbeitbaren Teileprogrammdarstellung dargestellt sind, für mindestens einen Satz von Teileprogrammanweisungen mindestens einige Glieder dieses Satzes von Teileprogrammanweisungen nicht ausgeführt werden, so dass ihre verknüpften gesteuerten Vorgänge nicht aktiv ausgeführt werden, falls jeweilige Ersatzdaten in Verbindung mit diesem Satz von Teileprogrammanweisungen zuvor aufgezeichnet wurden. Zudem werden die jeweiligen Ersatzdaten im darauffolgenden Betrieb des Ersatzausführungsmodus als Ersatz für Daten verwendet, die sich ansonsten aus ihren dazugehörigen gesteuerten Vorgängen ergeben würden, die nicht ausgeführt werden.
  • 19 ist ein Ablaufschema, das eine Ausführungsform einer Routine 1900 zum Ausführen eines Ersatzausführungsmodus abbildet, um einen gültigen Bearbeitungskontext an einer Teileprogrammstelle bereitzustellen, die durch eine Teileprogramm-Anweisungsdarstellung, ein Element oder einen Knoten angegeben wird. In einem Block 1910 wird mit dem Ersatzausführungsmodus an einer gültigen Kontextstelle begonnen.
  • In einem Block 1920 fährt die Routine mit dem nächsten Knoten als aktuellem Knoten fort. In einem Entscheidungsblock 1930 wird entschieden, ob der aktuelle Knoten der Zielknoten eines Bearbeitungsbefehls ist. Falls der aktuelle Knoten der Zielknoten eines Bearbeitungsbefehls ist, fährt die Routine mit einem Block 1940 fort, wo mit einem Aktivausführungsmodus an dem aktuellen Knoten begonnen wird, wonach die Routine mit einem Entscheidungsblock 1995 fortfährt, wie es nachstehend ausführlicher beschrieben wird. Bei einer Implementierung kann der Zielknoten jedoch als Elternknoten angesehen werden, der mit einer Anweisungsdarstellung verknüpft ist, und der Aktivausführungsmodus kann an dem Elternknoten starten, so dass die physische Einrichtung für eine Messung, die einer Anweisungsdarstellung entspricht, ausgeführt wird, um den richtigen physischen Kontext zur Bearbeitung an der Anweisungsdarstellung bereitzustellen.
  • Wenn im Entscheidungsblock 1930 bestimmt wird, dass der aktuelle Knoten nicht der Zielknoten eines Bearbeitungsbefehls ist, dann fährt die Routine mit einem Entscheidungsblock 1950 fort, bei dem entschieden wird, ob der aktuelle Knoten zwingende physische Systemänderungen benötigt. Falls der Knoten beispielsweise den Objekttisch bewegt, um einen neuen Teil des Werkstücks abzubilden (z. B. anhand eines einfachen Befehls „bewegen” oder dergleichen), dann kann dies bei einigen Ausführungsformen physische Systemänderungen zwingend erfordern. Ähnlich sind bestimmte Vergrößerungsänderungen zwingende physische Systemänderungen und so weiter. Wenn solche Änderungen in einem Elternknoten eingebettet sind, der bereits über verknüpfte Ersatzdaten verfügt, und ein nachfolgender Knoten wieder eine ähnliche physische Änderung erfordert (z. B. eine Bewegungs- bzw. Vergrößerungsänderung), so versteht es sich jedoch, dass diese eventuell nicht zwingend ist, da sie letztlich von einer ähnlichen nachfolgenden Anweisung ersetzt wird. Diverse Verfahren zum Analysieren, ob ein aktueller Knoten zwingende physische Systemänderungen erfordert, können vom Fachmann basierend auf den Lehren der vorliegenden Offenbarung bestimmt werden. Falls der aktuelle Knoten zwingende physische Systemänderungen benötigt, fährt die Routine dann auf jeden Fall mit Block 1940 fort. Wenn der aktuelle Knoten keine zwingenden physischen Systemänderungen benötigt, dann fährt die Routine mit einem Entscheidungsblock 1960 fort.
  • Am Entscheidungsblock 1960 wird entschieden, ob der aktuelle Knoten Ergebnisdaten bereitstellt. Wenn der aktuelle Knoten tatsächlich Ergebnisdaten bereitstellt, dann fährt die Routine mit einem Entscheidungsblock 1980 fort, wie es nachstehend ausführlicher beschrieben wird. Falls der aktuelle Knoten keine Ergebnisdaten bereitstellt, dann fährt die Routine mit einem Block 1970 fort, wo der Knoten im Ersatzausführungsmodus ausgeführt wird, wonach die Routine mit Block 1995 fortfährt, wie es nachstehend ausführlicher beschrieben wird.
  • Im Entscheidungsblock 1980 wird entschieden, ob Ersatzdaten für den aktuellen Knoten vorliegen. Falls tatsächlich Ersatzdaten für den aktuellen Knoten vorliegen, dann fährt die Routine mit einem Block 1990 fort, wie es nachstehend ausführlicher beschrieben wird. Falls keine Ersatzdaten für den aktuellen Knoten vorliegen, dann fährt die Routine mit Block 1940 fort.
  • In Block 1990 wird der Knoten im Ersatzausführungsmodus ausgeführt. Für den Ersatzausführungsmodus werden Ersatzdaten als Ersatz für die Daten verwendet, die sich ansonsten aus der Ausführung von Steuervorgängen ergeben würden, die mit mindestens einigen Gliedern eines Satzes von Teileprogrammanweisungen verknüpft sind, die dem aktuellen Knoten entsprechen, und diese Glieder des Satzes von Teileprogrammanweisungen werden übersprungen, so dass die dazugehörigen Steuervorgänge aktiv ausgeführt werden.
  • Die Routine fährt dann mit Entscheidungsblock 1995 fort, wo entschieden wird, ob es einen anderen Knoten zur Ausführung im Ersatzausführungsmodus gibt. Wenn es einen anderen Knoten zur Ausführung im Ersatzausführungsmodus gibt, dann kehrt die Routine zu Block 1920 zurück, und wenn nicht, dann ist die Routine beendet. Wenn beispielsweise die Ausführung am Entscheidungsblock 1995 angekommen ist, indem sie einen Zielknoten erreicht und die Blöcke 1930 und 1940 ausführt, dann gibt es in manchen Fällen keinen anderen im Ersatzausführungsmodus auszuführenden Knoten mehr, weil der Kontext für die Bearbeitung an oder in dem Zielknoten bereits hergestellt sein kann.
  • Obwohl diverse bevorzugte und beispielhafte Ausführungsformen der Erfindung abgebildet und beschrieben wurden, versteht es sich, dass diverse Änderungen daran vorgenommen werden können, ohne von Geist und Umfang der Erfindung abzuweichen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 61/560278 [0001]
    • US 13/297232 [0001]
    • US 6542180 [0004, 0004]
    • US 7454053 [0039]
    • US 7324682 [0039]
    • US 8028085 [0063]

Claims (18)

  1. Maschinell sehendes Inspektionssystem umfassend einen Bildgebungsteil, einen Objekttisch zum Halten eines oder mehrerer Werkstücke in einem Sichtfeld des Bildgebungsteils, einen Steuerteil, ein Display und eine Benutzerschnittstelle, wobei das maschinell sehende Inspektionssystem ferner Folgendes umfasst: einen Programmlaufmodus, der derart konfiguriert ist, dass er betriebsfähig ist, um ein zuvor erstelltes Teileprogramm unter Verwendung eines Ausführungs-Programmlaufmodus auszuführen; einen Lernmodus, der derart konfiguriert ist, dass er betriebsfähig ist, um eine Benutzereingabe zu empfangen, um Vorgänge des maschinell sehenden Inspektionssystems zu steuern und verknüpfte Teileprogrammanweisungen aufzuzeichnen, die den gesteuerten Vorgängen entsprechen, um ein Teileprogramm zu erstellen, wobei der Lernmodus eine Lernmodus-Benutzerschnittstelle umfasst, die Folgendes umfasst: einen Bearbeitungs-Benutzerschnittstellenteil, der eine bearbeitbare Teileprogrammdarstellung von Teileprogrammanweisungen in einem Bearbeitungsfenster umfasst, wobei die Teileprogrammdarstellung Anweisungsdarstellungen umfasst; und ein Ergebnisfenster, das jeweilige Ergebnisse empfängt und anzeigt, die Ergebnisse umfassen, die von gesteuerten Vorgängen des maschinell sehenden Inspektionssystems gesteuert werden; wobei der Lernmodus derart konfiguriert ist, dass bei Empfang einer Benutzereingabe, die einen ersten jeweiligen Satz von gesteuerten Vorgängen des maschinell sehenden Inspektionssystems bereitstellt, die Vorgänge umfassen, die einen ersten jeweiligen Satz von Ergebnissen bestimmen und in dem Ergebnisfenster anzeigen, der Lernmodus betriebsfähig ist, um automatisch Vorgänge bereitzustellen, die folgende Schritte umfassen: Aufzeichnen eines ersten jeweiligen Satzes von Teileprogrammanweisungen, die dem ersten jeweiligen Satz von gesteuerten Vorgängen entsprechen, die Vorgänge umfassen, die den ersten jeweiligen Satz von Ergebnissen bestimmen und in dem Ergebnisfenster anzeigen; Anzeigen des ersten jeweiligen Satzes von Ergebnissen in dem Ergebnisfenster; und Definieren und Anzeigen in dem Bearbeitungsfenster eines ersten jeweiligen Satzes von Anweisungsdarstellungen, die dem ersten jeweiligen Satz von Teileprogrammanweisungen entsprechen, die Vorgänge umfassen, die einen ersten jeweiligen Satz von Ergebnissen bestimmen und in dem Ergebnisfenster anzeigen; und wobei die Lernmodus-Benutzerschnittstelle derart konfiguriert ist, dass das Ergebnisfenster und das Bearbeitungsfenster gemäß einem Satz von fensterübergreifenden Autoscroll-Vorgängen funktionieren, die Folgendes umfassen: als Antwort auf eine Benutzerauswahl eines Glieds des ersten jeweiligen Satzes von Ergebnissen in dem Ergebnisfenster wird ein fensterübergreifender Autoscroll-Vorgang eingeleitet, der folgende Schritte umfasst: Anpassen der Anweisungsdarstellungen in dem Bearbeitungsfenster, so dass mindestens eine Anweisungsdarstellung des ersten jeweiligen Satzes von Anweisungsdarstellungen in dem Bearbeitungsfenster angezeigt wird; und Markieren mindestens einer Anweisungsdarstellung des ersten jeweiligen Satzes von Anweisungsdarstellungen, die in dem Bearbeitungsfenster angezeigt werden, mit einem Indikator, um anzugeben, dass er dem Glied der ersten jeweiligen Ergebnisse entspricht, die von dem Benutzer in dem Ergebnisfenster ausgewählt werden.
  2. Maschinell sehendes Inspektionssystem nach Anspruch 1, wobei der Lernmodus konfiguriert ist, um eine fensterübergreifende Autoscroll-Verknüpfung zu definieren und aufzuzeichnen, die verwendet wird, um entsprechende Elemente in einer Vielzahl von Fenstern zu identifizieren, die das Bearbeitungsfenster und das Ergebnisfenster umfasst.
  3. Maschinell sehendes Inspektionssystem mit Maschinenvision nach Anspruch 2, wobei die fensterübergreifende Autoscroll-Verknüpfung Folgendes umfasst: einen jeweiligen Teileprogramm-Anweisungsidentifikator, der automatisch in Verbindung mit mindestens einem jeweiligen Glied des ersten jeweiligen Satzes von aufgezeichneten Teileprogrammanweisungen oder ihres Satzes von Anweisungsdarstellungen definiert und aufgezeichnet wird; einen jeweiligen Ergebnisidentifikator, der automatisch in Verbindung mit mindestens einem Glied des ersten jeweiligen Satzes von Ergebnissen in dem Ergebnisfenster definiert und aufgezeichnet wird, das mindestens einem jeweiligen Glied des ersten jeweiligen Satzes von aufgezeichneten Teileprogrammanweisungen oder ihres Satzes von Anweisungsdarstellungen entspricht; und eine Verknüpfung, die zwischen dem jeweiligen Ergebnisidentifikator und dem jeweiligen Teileprogramm-Anweisungsidentifikator definiert ist.
  4. Maschinell sehendes Inspektionssystem nach Anspruch 3, wobei die Verknüpfung, die zwischen dem jeweiligen Ergebnisidentifikator und dem jeweiligen Teileprogramm-Anweisungsidentifikator definiert ist, jeweils unter Verwendung des gleichen Identifikators definiert wird.
  5. Maschinell sehendes Inspektionssystem nach Anspruch 3, wobei der erste jeweilige Satz von aufgezeichneten Teileprogrammanweisungen Anweisungen umfasst, die in einer Auszeichnungssprache geschrieben sind, und der jeweilige Teileprogramm-Anweisungsidentifikator, der automatisch definiert und aufgezeichnet wird, einen Identifikator umfasst, der automatisch generiert und in eine Teileprogrammanweisung eingefügt wird.
  6. Maschinell sehendes Inspektionssystem nach Anspruch 1, wobei die Lernmodus-Benutzerschnittstelle derart konfiguriert ist, dass das Ergebnisfenster und das Bearbeitungsfenster gemäß einem Satz von fensterübergreifenden Autoscroll-Vorgängen arbeiten, die Folgendes umfassen: als Antwort auf eine Benutzerauswahl eines Glieds des ersten jeweiligen Satzes von Anweisungsdarstellungen in dem Bearbeitungsfenster wird ein fensterübergreifender Autoscroll-Vorgangs eingeleitet, der folgende Schritte umfasst: Anpassen der Ergebnisse in dem Ergebnisfenster, so dass mindestens ein Glied des ersten jeweiligen Satzes von Ergebnissen in dem Ergebnisfenster angezeigt wird; und Markieren mindestens eines Glieds des ersten jeweiligen Satzes von Ergebnissen, die in dem Ergebnisfenster angezeigt werden, mit einem Indikator, um anzugeben, dass es dem Glied des ersten jeweiligen Satzes von Anweisungsdarstellungen entspricht, der von dem Benutzer in dem Bearbeitungsfenster ausgewählt wurde.
  7. Maschinell sehendes Inspektionssystem nach Anspruch 1, wobei das Markieren der mindestens einen Anweisungsdarstellung mit einem Indikator das Hervorheben der mindestens einen Anweisungsdarstellung umfasst.
  8. Maschinell sehendes Inspektionssystem nach Anspruch 1, wobei der fensterübergreifende Autoscroll-Vorgang, der eingeleitet wird, ferner das Übertragen der Kontrolle an das Bearbeitungsfenster umfasst, so dass die Bearbeitungsvorgänge sofort ermöglicht werden.
  9. Maschinell sehendes Inspektionssystem nach Anspruch 8, wobei das Übertragen der Kontrolle auf das Bearbeitungsfenster, so dass Bearbeitungsvorgänge sofort ermöglicht werden, das Auswählen der mindestens einen Anweisung in dem Bearbeitungsfenster umfasst, die dem Glied der ersten jeweiligen Ergebnisse entspricht, das von dem Benutzer in dem Ergebnisfenster ausgewählt wird.
  10. Maschinell sehendes Inspektionssystem nach Anspruch 1, wobei die Lernmodus-Benutzerschnittstelle ferner ein Client-Fenster umfasst, das Elemente anzeigt, die von gesteuerten Vorgängen des maschinell sehenden Inspektionssystems definiert werden; und wobei der Lernmodus derart konfiguriert ist, dass bei Empfang einer Benutzereingabe, die einen den Client beeinflussenden Satz von gesteuerten Vorgängen des maschinell sehenden Inspektionssystems bereitstellt, die Vorgänge umfassen, die ein erstes jeweiliges Element definieren, das in dem Client-Fenster angezeigt wird, der Lernmodus betriebsfähig ist, um automatisch Vorgänge bereitzustellen, die folgende Schritte umfassen: Aufzeichnen eines den Client beeinflussenden Satzes von Teileprogrammanweisungen, die dem den Client beeinflussenden Satz von gesteuerten Vorgängen entsprechen, die Vorgänge umfassen, die das erste jeweilige Element definieren, das in dem Client-Fenster angezeigt wird; und Definieren und Anzeigen in dem Bearbeitungsfenster eines den Client beeinflussenden Satzes von Anweisungsdarstellungen, die dem den Client beeinflussenden Satz von Teileprogrammanweisungen entsprechen, die Vorgänge umfassen, die das erste jeweilige Element definieren, das in dem Client-Fenster angezeigt wird; und wobei die Lernmodus-Benutzerschnittstelle derart konfiguriert ist, dass das Client-Fenster und das Bearbeitungsfenster gemäß einem Satz von fensterübergreifenden Autoscroll-Vorgängen arbeiten, die Folgendes umfassen: als Antwort auf eine Benutzerauswahl des ersten jeweiligen Elements, das in dem Client-Fenster angezeigt wird, wird ein fensterübergreifender Autoscroll-Vorgang eingeleitet, der folgende Schritte umfasst: Anpassen der Anweisungsdarstellungen in dem Bearbeitungsfenster, so dass mindestens eine Anweisungsdarstellung des den Client beeinflussenden Satzes von Anweisungsdarstellungen, die dem den Client beeinflussenden Satz von Teileprogrammanweisungen entsprechen, in dem Bearbeitungsfenster angezeigt wird; und Markieren mindestens einer Anweisungsdarstellung des den Client beeinflussenden Satzes von Anweisungsdarstellungen, die in dem Bearbeitungsfenster angezeigt werden, mit einem Indikator, um anzugeben, dass sie dem ersten jeweiligen Element entspricht, das in dem Client-Fenster angezeigt wird, das vom Benutzer ausgewählt wurde.
  11. Maschinell sehendes Inspektionssystem nach Anspruch 10, wobei die Lernmodus-Benutzerschnittstelle derart konfiguriert ist, dass das Client-Fenster und das Bearbeitungsfenster gemäß einem Satz von fensterübergreifenden Autoscroll-Vorgängen arbeiten, die Folgendes umfassen: als Antwort auf eine Benutzerauswahl eines ersten Glieds des den Client beeinflussenden Satzes von Anweisungsdarstellungen in dem Bearbeitungsfenster wird ein fensterübergreifender Autoscroll-Vorgang eingeleitet, der folgende Schritte umfasst: Anpassen der Ergebnisse in dem Client-Fenster, so dass das erste jeweilige Element, das dem ausgewählten ersten Glied des den Client beeinflussenden Satzes von Anweisungsdarstellungen entspricht, in dem Client-Fenster angezeigt wird; und Markieren des ersten jeweiligen Elements, das in dem Client-Fenster angezeigt wird, mit einem Indikator, um anzugeben, dass es dem ersten Glied des den Client beeinflussenden Satzes von Anweisungsdarstellungen entspricht, der von dem Benutzer in dem Bearbeitungsfenster ausgewählt wurde.
  12. Maschinell sehendes Inspektionssystem nach Anspruch 11, wobei: der erste jeweilige Satz von Anweisungsdarstellungen, der dem ersten jeweiligen Satz von Teileprogrammanweisungen entspricht, und der den Client beeinflussende Satz von Anweisungsdarstellungen, der dem den Client beeinflussenden Satz von Teileprogrammanweisungen entspricht, der gleiche jeweilige Satz von Anweisungsdarstellungen ist, der dem gleichen Satz von Teileprogrammanweisungen entspricht.
  13. Maschinell sehendes Inspektionssystem nach Anspruch 12, wobei die Lernmodus-Benutzerschnittstelle ferner derart konfiguriert ist, dass das Ergebnisfenster und das Bearbeitungsfenster gemäß einem Satz von fensterübergreifenden Autoscroll-Vorgängen arbeiten, die Folgendes umfassen: als Antwort auf eine Benutzerauswahl des ersten Glieds des den Client beeinflussenden Satzes von Anweisungsdarstellungen, das auch ein erstes Glied des ersten jeweiligen Satzes von Teileprogrammanweisungen ist, wird ein fensterübergreifender Autoscroll-Vorgang eingeleitet, der folgende Schritte umfasst: Anpassen der Ergebnisse in dem Ergebnisfenster, so dass mindestens ein Glied des ersten jeweiligen Satzes von Ergebnissen in dem Ergebnisfenster angezeigt wird; und Markieren mindestens eines Glieds des ersten jeweiligen Satzes von Ergebnissen, die in dem Ergebnisfenster angezeigt werden, mit einem Indikator, um anzugeben, dass es dem ersten Glied des den Client beeinflussenden Satzes von Anweisungsdarstellungen entspricht, das auch das erste Glied des ersten jeweiligen Satzes von Teileprogrammanweisungen ist, der von dem Benutzer in dem Bearbeitungsfenster ausgewählt wurde.
  14. Maschinell sehendes Inspektionssystem nach Anspruch 1, wobei das maschinell sehende Inspektionssystem ferner Folgendes umfasst: einen Bearbeitungsteil, der derart konfiguriert ist, dass er betriebsfähig ist, um ein Teileprogramm zu bearbeiten, wobei der Bearbeitungsteil einen Bearbeitungsausführungsteil umfasst, der betriebsfähig ist, um zuvor aufgezeichnete Teileprogrammanweisungen gemäß einem Ausführungs-Bearbeitungsmodus auszuführen, der anders als der Ausführungs-Programmlaufmodus ist, wobei: der Lernmodus derart konfiguriert ist, dass er ferner betriebsfähig ist, um automatisch jeweilige Ersatzdaten aufzuzeichnen, die mit einem jeweiligen Satz von aufgezeichneten Teileprogrammanweisungen verknüpft sind, und mindestens einige jeweilige Ersatzdaten Daten umfassen, die sich aus der aktiven Ausführung von gesteuerten Vorgängen ergeben, die dem dazugehörigen jeweiligen Satz von aufgezeichneten Teileprogrammanweisungen entsprechen; und der Ausführungs-Bearbeitungsmodus einen Ersatzausführungsmodus umfasst, wobei während des Ersatzausführungsmodus von Teileprogrammanweisungen, die in der bearbeitbaren Teileprogrammdarstellung dargestellt sind, für mindestens einen Satz von Teileprogrammanweisungen mindestens einige Glieder dieses Satzes von Teileprogrammanweisungen nicht ausgeführt werden, so dass ihre verknüpften gesteuerten Vorgänge nicht aktiv ausgeführt werden, wenn jeweilige Ersatzdaten in Verbindung mit dem Satz von Teileprogrammanweisungen zuvor aufgezeichnet wurden, und die jeweiligen Ersatzdaten im darauffolgenden Vorgang des Ersatzausführungsmodus als Ersatz für Daten verwendet werden, die sich ansonsten aus ihren gesteuerten Vorgängen, die nicht ausgeführt werden, ergeben würden.
  15. Maschinell sehendes Inspektionssystem nach Anspruch 14, wobei das Erstellen eines Teileprogramms das Ändern einer zuvor aufgezeichneten Teileprogrammanweisung umfasst.
  16. Maschinell sehendes Inspektionssystem nach Anspruch 14, wobei der fensterübergreifende Autoscroll-Vorgang, der eingeleitet wird, ferner folgende Schritte umfasst: Übertragen der Kontrolle an das Bearbeitungsfenster, so dass die Bearbeitungsvorgänge sofort ermöglicht werden; Auswählen in dem Bearbeitungsfenster der mindestens einen Anweisung, die dem Glied der ersten jeweiligen Ergebnisse entspricht, das von dem Benutzer in dem Ergebnisfenster ausgewählt wird; Herstellen des richtigen Kontexts zum Bearbeiten der ausgewählten mindestens einen Anweisung durch Beginnen des Ausführungs-Bearbeitungsmodus in einem gültigen Kontext, der an einer Stelle in dem Teileprogramm vor der ausgewählten mindestens einen Anweisung startet; und Verwenden des Ersatzausführungsmodus, um mindestens einen Teil der Teileprogrammanweisungen auszuführen, um den gültigen Kontext zum Bearbeiten der ausgewählten mindestens einen Anweisung herzustellen.
  17. Maschinell sehendes Inspektionssystem nach Anspruch 16, wobei der Lernmodus derart konfiguriert ist, dass dann, wenn der gültige Kontext an der ausgewählten mindestens einen Anweisung hergestellt ist, die Lernmodus-Benutzerschnittstelle konfiguriert ist, um einen Kontextstatusindikator anzuzeigen, der sich in der Nähe der ausgewählten mindestens einen Anweisung befindet, die in der Teileprogrammdarstellung angegeben wird, und der Kontextstatusindikator eingestellt wird, um anzugeben, dass ein gültiger Kontext an der Zielstelle hergestellt wurde.
  18. Maschinell sehendes Inspektionssystem nach Anspruch 17, wobei der Lernmodus derart konfiguriert ist, dass dann, wenn der Ausführungs-Bearbeitungsmodus den Ersatzausführungsmodus verwendet, um mindestens einen Teil der Teileprogrammanweisungen auszuführen, um den gültigen Kontext herzustellen, der Zustand des Kontextstatusindikators auf einen Zustand eingestellt wird, der spezifisch angibt, dass der Ersatzausführungsmodus verwendet wurde, um den gültigen Kontext herzustellen.
DE102012220759A 2011-11-15 2012-11-14 Programmbearbeitungsumgebung eines maschinell sehenden Systems mit synchronisierten Benutzerschnittstellenmerkmalen Pending DE102012220759A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201161560278P 2011-11-15 2011-11-15
US13/297,232 2011-11-15
US61/560,278 2011-11-15
US13/297,232 US8957960B2 (en) 2011-11-15 2011-11-15 Machine vision system program editing environment including real time context generation features

Publications (1)

Publication Number Publication Date
DE102012220759A1 true DE102012220759A1 (de) 2013-06-27

Family

ID=48575822

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012220759A Pending DE102012220759A1 (de) 2011-11-15 2012-11-14 Programmbearbeitungsumgebung eines maschinell sehenden Systems mit synchronisierten Benutzerschnittstellenmerkmalen

Country Status (2)

Country Link
CN (1) CN103176793B (de)
DE (1) DE102012220759A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3401747A1 (de) * 2017-05-10 2018-11-14 Siemens Aktiengesellschaft Verfahren zum betrieb einer numerischen gesteuerten werkzeugmaschine sowie teileprogramm dazu

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103558291B (zh) * 2013-11-13 2017-01-04 北京安铁软件技术有限公司 一种车轮检测数据的显示方法及装置
US9996366B2 (en) * 2016-07-12 2018-06-12 Visa International Service Association Method and system for an interactive user interface to dynamically validate application program interface modification requests
US10466677B2 (en) * 2016-12-15 2019-11-05 Solar Turbines Incorporated Assessment of industrial machines
WO2018154498A1 (de) * 2017-02-23 2018-08-30 Wibond Informationssysteme Gmbh System, verfahren und computerprogrammprodukt zur steuerung, erstellung und änderung von prozessabläufen
EP3535677A1 (de) * 2017-02-28 2019-09-11 Siemens Product Lifecycle Management Software Inc. System und verfahren zur visuellen rückverfolgbarkeit von anforderungen an produkte
JP6923794B2 (ja) * 2017-08-04 2021-08-25 富士通株式会社 検査装置、検査プログラム、及び検査方法
JP7069971B2 (ja) * 2018-03-30 2022-05-18 セイコーエプソン株式会社 制御装置、ロボット、およびロボットシステム
US11373015B2 (en) * 2018-07-16 2022-06-28 Dassault Systemes Solidworks Corporation Designing a 3D modeled object representing a mechanical structure
CN109283899B (zh) * 2018-09-17 2021-07-02 沈机(上海)智能系统研发设计有限公司 工件质检方法及其装置、介质、数控系统以及质检系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6542180B1 (en) 2000-01-07 2003-04-01 Mitutoyo Corporation Systems and methods for adjusting lighting of a part based on a plurality of selected regions of an image of the part
US7324682B2 (en) 2004-03-25 2008-01-29 Mitutoyo Corporation System and method for excluding extraneous features from inspection operations performed by a machine vision inspection system
US7454053B2 (en) 2004-10-29 2008-11-18 Mitutoyo Corporation System and method for automatically recovering video tools in a vision system
US8028085B2 (en) 2005-06-03 2011-09-27 Microsoft Corporation Optimizing message transmission and delivery in a publisher-subscriber model

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7359544B2 (en) * 2003-02-12 2008-04-15 Kla-Tencor Technologies Corporation Automatic supervised classifier setup tool for semiconductor defects
US8311311B2 (en) * 2005-10-31 2012-11-13 Mitutoyo Corporation Optical aberration correction for machine vision inspection systems
US8271895B2 (en) * 2010-03-22 2012-09-18 Mitutoyo Corporation GUI for programming step and repeat operations in a machine vision inspection system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6542180B1 (en) 2000-01-07 2003-04-01 Mitutoyo Corporation Systems and methods for adjusting lighting of a part based on a plurality of selected regions of an image of the part
US7324682B2 (en) 2004-03-25 2008-01-29 Mitutoyo Corporation System and method for excluding extraneous features from inspection operations performed by a machine vision inspection system
US7454053B2 (en) 2004-10-29 2008-11-18 Mitutoyo Corporation System and method for automatically recovering video tools in a vision system
US8028085B2 (en) 2005-06-03 2011-09-27 Microsoft Corporation Optimizing message transmission and delivery in a publisher-subscriber model

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3401747A1 (de) * 2017-05-10 2018-11-14 Siemens Aktiengesellschaft Verfahren zum betrieb einer numerischen gesteuerten werkzeugmaschine sowie teileprogramm dazu

Also Published As

Publication number Publication date
CN103176793B (zh) 2017-08-01
CN103176793A (zh) 2013-06-26

Similar Documents

Publication Publication Date Title
DE102012220759A1 (de) Programmbearbeitungsumgebung eines maschinell sehenden Systems mit synchronisierten Benutzerschnittstellenmerkmalen
DE112014002389B4 (de) Bearbeitungsumgebung für ein Programm für ein maschinelles Bilderkennungssystem, enthaltend ein betriebskontextbewusstes Kopier-und Einfüge-Merkmal
DE102012220884A1 (de) Maschinensichtsystemprogramm-Bearbeitungsumgebung mit Echtzeitkontexterzeugungsmerkmalen
DE102012220882B4 (de) System und Verfahren unter Verwendung eines Bearbeitungsinitialisierungsblocks in einer Teileprogramm-Bearbeitungsumgebung in einem Maschinenvisionssystem
JP6071453B2 (ja) 同期されたユーザインタフェース機能を含むマシンビジョンシステムプログラム編集環境
DE102012220875A1 (de) Maschinelle Visionssystem-Editierumgebung für ein Teilprogramm, in welchem ein kontinuierlicher Stream der Bilderfassungsoperationen während eines Ablaufmodus ausgeführt wird
DE102011005814A1 (de) Grafisohe benutzeroberfläche zum programmieren von schritt- und wiederholvorgängenin einem visuellen maschinenprüfungssystem
DE102009029478B4 (de) System und Verfahren für einen schnellen ungefähren Fokus
DE60127644T2 (de) Lehrvorrichtung für einen Roboter
DE102012216908B4 (de) Verfahren unter Verwendung einer Bildkorrelation zum Bestimmen von Positionsmessungen in einem Maschinenvisionssystem
DE102012224320A1 (de) Verbessertes Kantenfokussierungswerkzeug
DE102013217354B4 (de) Kantenmessungs-videowerkzeug und schnittstelle mit automatischen parametersatzalternativen
DE102015219495A1 (de) Verfahren zum Programmieren eines dreidimensionalen Werkstückabtastwegs für ein Metrologiesystem
EP2019283A2 (de) Verfahren und Vorrichtung zur Vermessung von Ist-Messdaten eines Bauteils
DE10122699A1 (de) Verfahren und Vorrichtung zum Erzeugen von Teileprogrammen zur Verwendung in Bildmessinstrumenten, und Bildmessinstrument und Verfahren zur Darstellung damit gemessener Ergebnisse
WO2016169589A1 (de) Verfahren und vorrichtung zum bestimmen von dimensionellen ist-eigenschaften eines messobjekts
DE102014220583A1 (de) System und verfahren zum steuern eines verfolgungsautofokus - (taf) sensors in einem system zur maschinellen sichtinspektion
DE102014225409A1 (de) Abgesetztes Hilfsgerät zum Generieren spezifisch angepasster und synchronisierter Referenznotizen für ein programmierbares Metrologiesystem
EP3403049A1 (de) Verfahren zur bestimmung von einer x-y-z-referenzkoordinate eines werkstücks und bearbeitungsmaschine
DE102012219775A1 (de) Einstelleinheit und Verfahren zum Einstellen eines Ablaufs zur automatischen Aufnahme von Bildern eines Objekts mittels einer Aufnahmevorrichtung und Aufnahmevorrichtung mit einer solchen Einstelleinheit
DE102013215791A1 (de) lnspektionssystem mit maschineller Bilderkennung, das zwei Kameras mit einem Drehversatz aufweist
DE112017002965T5 (de) Verfahren und System zum Abwinkeln einer visuellen Inspektionsvorrichtung
DE102013217347B4 (de) Verfahren und vorrichtung zur parametereinstellung für kantenmessungsvideowerkzeuge
EP3865979A1 (de) Verfahren und vorrichtung zur unterstützung einer softwarebasierten planung einer dimensionellen messung
EP3889890A1 (de) Verfahren zur messobjekterkennung auf basis von bilddaten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication