DE112014002389B4 - Bearbeitungsumgebung für ein Programm für ein maschinelles Bilderkennungssystem, enthaltend ein betriebskontextbewusstes Kopier-und Einfüge-Merkmal - Google Patents

Bearbeitungsumgebung für ein Programm für ein maschinelles Bilderkennungssystem, enthaltend ein betriebskontextbewusstes Kopier-und Einfüge-Merkmal Download PDF

Info

Publication number
DE112014002389B4
DE112014002389B4 DE112014002389.2T DE112014002389T DE112014002389B4 DE 112014002389 B4 DE112014002389 B4 DE 112014002389B4 DE 112014002389 T DE112014002389 T DE 112014002389T DE 112014002389 B4 DE112014002389 B4 DE 112014002389B4
Authority
DE
Germany
Prior art keywords
copy set
representation
operations
copy
selected instruction
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.)
Active
Application number
DE112014002389.2T
Other languages
English (en)
Other versions
DE112014002389T5 (de
Inventor
Ryan Northrup
Andy Ye
Iman Haryadi
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
Application filed by Mitutoyo Corp filed Critical Mitutoyo Corp
Publication of DE112014002389T5 publication Critical patent/DE112014002389T5/de
Application granted granted Critical
Publication of DE112014002389B4 publication Critical patent/DE112014002389B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors

Abstract

Computerlesbares Medium, enthaltend computerausführbare Anweisungen, welche so konfiguriert sind, dass sie auf einen Computer geladen werden, um den Computer zu befähigen, beim Bearbeiten eines Teileprogramms in einem Inspektionssystem mit maschineller Bilderkennung ein Verfahren zum Kopieren und Einfügen eines Satzes von Operationen eines Teileprogramms für maschinelle Bilderkennung durchzuführen, wobei das Inspektionssystem mit maschineller Bilderkennung enthält: einen Abbildungsteil, einen Tisch zum Halten eines oder mehrerer Werkstücke in einem Sichtfeld des Abbildungsteils, einen Steuerungsteil, einen Bearbeitungsteil, eine Anzeige, eine graphische Benutzeroberfläche (GUI) und einen Lernmodus, welcher so konfiguriert ist, dass er so betreibbar ist, dass er Benutzereingaben zum Steuern von Operationen des Inspektionssystems mit maschineller Bilderkennung empfängt und verknüpfte Teileprogramm-Anweisungen, welche den gesteuerten Operationen entsprechen, aufzeichnet, um ein Teileprogramm zu erstellen, wobei das durchzuführende Verfahren umfasst:
Bereitstellen eines Kopierbefehls und eines Einfügebefehls, verknüpft mit dem Bearbeitungsteil;
Bereitstellen eines Bearbeitungsschnittstellenteils des GUI, wobei der Bearbeitungsschnittstellenteil so betreibbar ist, dass er eine bearbeitbare Teileprogramm-Darstellung zugrundeliegender Teileprogramm-Anweisungen anzeigt, wobei die Teileprogramm-Darstellung Anweisungsdarstellungen enthält;
Anzeigen einer Teileprogramm-Darstellung eines zugrundeliegenden Teileprogramms im Bearbeitungsschnittstellenteil;
Anzeigen eines Bearbeitungskontext-Statusanzeigers, der dazu eingerichtet ist, einen Status eines Betriebskontexts des Inspektionssystems mit maschineller Bildererkennung an einer Stelle in der angezeigten Teileprogramm-Darstellung anzuzeigen;(siehe S. 8, Z. 24-37, insbesondere S. 8, Z. 24-27, und vorheriger Anspruch 2)
Auswählen mindestens einer ersten Anweisungsdarstellung an einer Kopierstelle in der angezeigten Teileprogramm-Darstellung, um einen mit einem zugrundeliegenden ausgewählten Anweisungs-Kopiersatz verknüpften ausgewählten Anweisungsdarstellungs-Kopiersatz festzulegen, wobei der Bearbeitungskontext-Statusanzeiger anzeigt, dass der zugrundeliegende ausgewählte Anweisungs-Kopiersatz einem gültigen Bearbeitungskontext entspricht(siehe S. 30, Z. 17-33 und S. 8, Z. 24-37);
Bedienen des Bearbeitungsschnittstellenteils, um eine Einfügestelle in der angezeigten Teileprogramm-Darstellung, wo der ausgewählte Anweisungsdarstellungs-Kopiersatz(um einheitliche Begriffe im Anspruch zu verwenden und die Klarheit dadurch zu verbessern) eingefügt werden soll, festzulegen, wobei die Einfügestelle mit einer Anweisungs-Einfügestelle im zugrundeliegenden Teileprogramm verknüpft ist;
Bedienen des Bearbeitungsteils so, dass er auf mindestens einen des ausgewählten Anweisungsdarstellungs-Kopiersatzes und des ausgewählten Anweisungs-Kopiersatzes gerichtete Kopiersatzänderungs-Operationen durchführt, wobei die Kopiersatzänderungs-Operationen das Bilden eines geänderten ausgewählten Anweisungsdarstellungs-Kopiersatzes durch Operationen enthalten, welche mindestens eine der folgenden enthalten: a) Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungsdarstellungs-Kopiersatzes, welche inkompatibel mit dem Einfügestellen-Betriebskontext sind, b) Hinzufügen von Elementen und Verknüpfungen zum ausgewählten Anweisungsdarstellungs-Kopiersatz, welche für Kompatibilität mit dem Einfügestellen-Betriebskontext erforderlich sind, oder c) Bilden des geänderten ausgewählten Anweisungsdarstellungs-Kopiersatzes auf der Grundlage eines geänderten ausgewählten Anweisungs-Kopiersatzes, gebildet durch Operationen, welche mindestens eine der folgenden enthalten: c1) Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungs-Kopiersatzes, welche inkompatibel mit dem Anweisungseinfügestellen-Betriebskontext sind, oder c2) Hinzufügen von Elementen und Verknüpfungen zum ausgewählten Anweisungs-Kopiersatz, welche für Kompatibilität mit dem Anweisungseinfügestellen-Betriebskontext erforderlich sind; und
Bedienen des Bearbeitungsteils so, dass er Einfügeoperationen, enthaltend das Einfügen des geänderten ausgewählten Anweisungsdarstellungs-Kopiersatzes in die Einfügestelle in der angezeigten Teileprogramm-Darstellung, durchführt; und
Automatisches Bedienen des Bearbeitungskontext-Statusanzeigers, in Reaktion auf das Einfügen des geänderten ausgewählten Anweisungsdarstellungs-Kopiersatzes, um anzuzeigen, dass der geänderte ausgewählte Anweisungsdarstellungs-Kopiersatz mindestens einem fragwürdigen oder ungültigem Bearbeitungskontext-Status entspricht(siehe S. 8, Z 24-37 und S. 30, Z. 16-33, insbesondere S. 8, Z. 30-34 und S. 30, Z. 17-22).

Description

  • TECHNISCHES GEBIET
  • Die Erfindung betrifft Inspektionssysteme mit maschineller Bilderkennung und in computerlesbaren Medien verkörperte Systeme, GUIs und Verfahren zum Erstellen und Bearbeiten von Teileprogrammen in solchen Systemen, enthaltend ein intelligentes Kopier- und Einfügemerkmal, welches verwendet werden kann, um vereinfachte Darstellungen zugrundeliegender „Computersprache“ - Anweisungen und/oder ihrer entsprechenden zugrundeliegenden Anweisungen zu erzeugen, um einen Benutzer, der nicht Programmierer ist, beim Erstellen eines Teileprogramms zu unterstützen.
  • HINTERGRUND
  • Präzisions-Inspektionssysteme mit maschineller Bilderkennung (oder kurz „Bilderkennungssysteme“) können verwendet werden, um präzise Größenmessungen überprüfter Objekte zu erzielen und verschiedene weitere Objekteigenschaften zu überprüfen. Solche Systeme können einen Computer, ein Kamera- und Optiksystem und einen Präzisionstisch, welcher in mehreren Richtungen beweglich ist, enthalten, um der Kamera zu ermöglichen, die Merkmale eines Werkstücks, welches gerade überprüft wird, abzutasten. Ein beispielhaftes, dem Stand der Technik entsprechendes, handelsübliches System ist die QUICK VISION®-Serie von Bilderkennungssystemen auf PC-Basis und die QVPAK®-Software, welche von der in Aurora, Illinois ansässigen Mitutoyo America Corporation (MAC) erhältlich sind. Die Merkmale und die Arbeitsweise der QUICK VISION®-Serie von Bilderkennungssystemen und der QVPAK®-Software sind zum Beispiel in der Betriebsanleitung zum QVPAK 3D-CNC-Bilderkennungs-Messgerät, veröffentlicht im Januar 2003, und der Bedienungsanleitung zum QVPAK 3D-CNC-Bilderkennungs-Messgerät, veröffentlicht im September 1996, welche hiermit jeweils in ihrer Gesamtheit durch Verweis einbezogen werden, allgemein beschrieben. Diese Produktserie ist zum Beispiel in der Lage, ein mikroskopartiges optisches System zu verwenden, um Bilder eines Werkstücks bei verschiedenen Vergrößerungen zu liefern, und den Tisch nach Bedarf zu bewegen, um die Werkstückoberfläche über den Rand irgendeines einzelnen Videobilds hinaus zu verschieben. Angesichts der gewünschten Vergrößerung, Messauflösung und physischer Größenbegrenzungen solcher Systeme umfasst ein einzelnes Videobild typischerweise nur einen Teil des beobachteten oder überprüften Werkstücks.
  • Inspektionssysteme mit maschineller Bilderkennung verwenden gewöhnlich automatisierte Videoinspektion. US-Patent Nr. 6,542,180 (das '180-Patent) lehrt verschiedene Aspekte einer solchen automatisierten Videoinspektion und wird in seiner Gesamtheit durch Verweis hierin einbezogen. Wie im '180-Patent gelehrt, verfügen automatisierte Videoinspektions-Messgeräte gewöhnlich über eine Programmierfähigkeit, welche dem Benutzer gestattet, für jede einzelne Werkstückkonfiguration einen automatischen Ablauf von Inspektionsvorgängen zu definieren. Dies kann zum Beispiel durch zeichenorientiertes Programmieren oder durch einen Aufzeichnungsmodus, welcher den Ablauf von Inspektionsvorgängen nach und nach „lernt“, indem er eine Abfolge von Maschinensteueranweisungen speichert, welche einer Abfolge von durch einen Benutzer mit Hilfe einer graphischen Benutzeroberfläche (GUI) durchgeführten Inspektionsoperationen entspricht, oder durch eine Kombination der beiden Verfahren geschehen. Ein solcher Aufzeichnungsmodus wird oft als „Lernmodus“ oder „Training-Modus“ bezeichnet. Nachdem der Ablauf von Inspektionsvorgängen im „Lernmodus“ festgelegt ist, kann eine solche Abfolge dann verwendet werden, um Bilder eines Werkstücks im „Ablaufmodus“ automatisch zu erfassen (und zusätzlich zu analysieren oder zu überprüfen).
  • Die den speziellen Ablauf von Inspektionsvorgängen (d.h. wie jedes Bild zu erfassen ist und wie jedes erfasste Bild zu analysieren/überprüfen ist) enthaltenden Maschinensteueranweisungen werden gewöhnlich als ein „Teileprogramm“ oder „Werkstückprogramm“, welches für die einzelne Werkstückkonfiguration kennzeichnend ist, gespeichert. Zum Beispiel legt ein Teileprogramm fest, wie jedes Bild zu erfassen ist, zum Beispiel wie die Kamera bezüglich des Werkstücks zu positionieren ist, bei welcher Beleuchtungsstärke, bei welcher Vergrößerung usw. Ferner legt das Teileprogramm fest, wie ein erfasstes Bild zu analysieren/überprüfen ist, zum Beispiel unter Verwendung eines oder mehrerer Videowerkzeuge wie Kanten-/Randerkennungs-Videowerkzeuge.
  • Um relativ unerfahrenen Benutzern das Programmieren zu erleichtern, können Videowerkzeuge (oder kurz „Werkzeuge“) und andere GUI-Merkmale dafür eingerichtet werden, Inspektions- und/oder andere Maschinensteuerungsoperationen zu vollbringen. Einrichtparameter und Operationen von Videowerkzeugen können im Lernmodus aufgezeichnet werden, um automatische Inspektionsprogramme oder „Teileprogramme“ zu erstellen, welche durch verschiedene Videowerkzeuge durchzuführende Mess-/Analyseoperationen enthalten. Videowerkzeuge können zum Beispiel Kanten-/Randerkennungswerkzeuge, Autofokussierwerkzeuge, Form- oder Mustervergleichswerkzeuge, Größenmesswerkzeuge und dergleichen enthalten. Weitere GUI-Merkmale können Dialogfenster bezüglich Datenanalyse, „Step-and-repeat“-Schleifen-Programmieren - wie zum Beispiel in US-Patent Nr. 8,271,895 (dem '895-Patent) offenbart, welches hiermit in seiner Gesamtheit durch Verweis hierin einbezogen wird - usw. enthalten. Zum Beispiel kommen solche Werkzeuge und GUI-Merkmale routinemäßig in einer Reihe von handelsüblichen Inspektionssystemen mit maschineller Bilderkennung wie der oben erörterten QUICK VISION®-Serie von Bilderkennungssystemen mit der zugehörigen QVPAK®-Software zum Einsatz.
  • Das Bearbeiten eines Teileprogramms durch einen relativ unerfahrenen Benutzer kann schwierig sein. Insbesondere gibt es gegenwärtig kein geeignetes Verfahren für einen unerfahrenen Benutzer, „betriebskontextfähige“ Kopier- und Einfügeoperationen durchzuführen. Das heißt, es gibt keine Kopier- und Einfügeoperationen für Teileprogramme für ein maschinelles Bilderkennungssystem oder sonstiges automatisiertes Inspektionssystem, welche zum Bearbeiten von Programmen brauchbar sind, wenn man berücksichtigt, dass Kopieranweisungen, welche für Kompatibilität mit einem Betriebskontext und/oder Bearbeitungskontext an einer Stelle in einem Teileprogramm konfiguriert sind, einer Änderung bedürfen, bevor sie Kompatibilität mit einem Betriebskontext und/oder Bearbeitungskontext an einer Einfügestelle an einer anderen Stelle im Teileprogramm bieten können. Zum Beispiel können Kopier- und Einfügeanweisungen von innerhalb nach außerhalb einer „Step-and-repeat“-Schleife oder umgekehrt für unerfahrene Benutzer besonders schwierig sein.
  • Die US 2011/0231787 A1 zeigt ein Verfahren zur Programmierung von Schritt- und Wiederholungsoperationen eines maschinellen Bildverarbeitungsprüfsystems. Das maschinelle Bildverarbeitungssystem umfasst einen Abbildungsabschnitt, einen Tisch zum Halten eines oder mehrerer Werkstücke in einem Sichtfeld (FOV) des Abbildungsabschnitts, einen Steuerabschnitt und eine grafische Benutzeroberfläche (GUI). Gemäß dem Verfahren bedient ein Benutzer das Bildverarbeitungsprüfsystem, um einen Satz von Prüfvorgängen zu definieren, die an einer ersten Konfiguration von Werkstückmerkmalen durchzuführen sind. Der Benutzer bedient auch die grafische Benutzeroberfläche, um ein Dialogfeld für Schritte und Wiederholungen anzuzeigen, in dem er eine erste Vielzahl von Parametern definiert, die einen Satz von Standard-Schritt- und Wiederholpositionen für die Durchführung des definierten Satzes von Prüfvorgängen festlegen. Der Benutzer bedient ferner die grafische Benutzeroberfläche, um einen Satz von Prüfschritt- und Wiederholungsorten zu definieren, der eine Teilmenge des definierten Satzes von Standardschritt- und Wiederholungsorten darstellt, an denen die Prüfvorgänge tatsächlich durchgeführt werden sollen.
  • Die vorliegende Erfindung zielt darauf ab, ein System, ein GUI und ein Verfahren wie in einem computerlesbaren Medium verkörpert bereitzustellen, welche die Erstellung und Verwendung intuitiver, flexibler und robuster Operationen und/oder Befehle für Kopier- und Einfüge-Bearbeitungsbefehle für Teileprogramme für Präzisions-Inspektionssysteme mit maschineller Bilderkennung gestatten.
  • KURZBESCHREIBUNG
  • Diese Kurzbeschreibung dient dazu, eine Auswahl von Konzepten in einer vereinfachten Form einzuführen, welche unten in der ausführlichen Beschreibung weiter beschrieben werden. Diese Kurzbeschreibung ist nicht dazu gedacht, Hauptmerkmale des beanspruchten Gegenstands zu identifizieren, und sie ist auch nicht dazu gedacht, als eine Unterstützung beim Ermitteln des Umfangs des beanspruchten Gegenstands verwendet zu werden.
  • In verschiedenen Ausführungsformen ist ein Inspektionssystem mit maschineller Bilderkennung vorgesehen, welches in einem Lernmodus so betreibbar ist, dass es ein Teileprogramm erstellt, und in einem Ablaufmodus, dass es ein zuvor erstelltes Teileprogramm ausführt. Das System enthält einen Abbildungsteil, einen Tisch zum Halten eines oder mehrerer Werkstücke in einem Sichtfeld des Abbildungsteils, einen Steuerungsteil und eine graphische Benutzeroberfläche (GUI). Das System enthält ferner einen Bearbeitungsteil, welcher so betreibbar ist, dass er im Lernmodus Teileprogramm-Anweisungen bearbeitet, wobei der Bearbeitungsteil einen im GUI anzeigbaren Bearbeitungsschnittstellenteil enthält.
  • Das System enthält ferner einen Kopier- und Einfügemanager-Teil, welcher in Hardware und/oder Software realisiert sein kann und so konfiguriert ist, dass er so betreibbar ist, dass er im Lernmodus Kopieroperationen und Einfügeoperationen in einem Teileprogramm erzeugt und festlegt. In einigen Ausführungsformen können die Kopier- und Einfügebefehle verwendet werden, um einen Satz von Elementen, welche wesentliche Replikationen der kopierten Elemente sind, an einer neuen Stelle in einem Teileprogramm einzufügen. Wie hierin verwendet, bedeutet der Ausdruck „wesentliche Replikation“ nicht unbedingt eine wörtliche oder genaue Replikation aller Einzelheiten der Inspektionsanweisungen oder ihrer Darstellungen, obwohl dies in einigen Ausführungsformen der Fall sein kann. Vielmehr bedeutet er eine Replikation mindestens der Merkmale der Anweisungen, welche die wesentlichen oder grundlegenden Operationen des Blocks von wiederholten Operationen replizieren.
  • Die kopierten Elemente können in einer Markup-Sprache (z.B. HTML, XML oder einer davon abgeleiteten Form) geschriebene maschinenausführbare Codeanweisungen und/oder verknüpfte bearbeitbare Anweisungsdarstellungen, welche im GUI (z.B. im Bearbeitungsteil) angezeigt werden, enthalten. Der Begriff „kopierte Elemente“ wie hierin verwendet kann gewöhnlich alle beide dieser zugehörigen Aspekte einschließen, sofern Beschreibung oder Kontext nichts anderes angeben. Genau wie andere Arten von Anweisungen und Anweisungsdarstellungen, auf welche hierin Bezug genommen wird, können in verschiedenen Ausführungsformen eindeutige Kennungen (z.B. Knotenkennungen) zugewiesen und verwendet werden, um bestimmte Betriebskontextherstellungs-Operationen und/oder Benutzerschnittstellenfenstersynchronisations-Operationen und/oder Code- und Darstellungsverknüpfungen zu unterstützen. In einer Ausführungsform können solche Verknüpfungen und Merkmale implementiert sein wie in der gleichzeitig anhängigen, gleichzeitig übertragenen US-Patentanmeldung Nr. 13/297,232 (der '232-Anmeldung), eingereicht am 15. November 2011, mit dem Titel „Machine Vision System Program Editing Environment Including Real Time Context Generation Features“, veröffentlicht als US-Anmeldung Veröffentlichungsnr. 2013/0123945 A1, und der gleichzeitig anhängigen, gleichzeitig übertragenen US-Patentanmeldung Nr. 13/676,061 (der'061-Anmeldung), eingereicht am 13. November 2012, mit dem Titel „Machine Vision System Program Editing Environment Including Synchronized User Interface Features“, veröffentlicht als US-Anmeldung Veröffentlichungsnr. 2013/0125044 A1, welche hiermit jeweils in ihrer Gesamtheit durch Verweis hierin einbezogen werden, beschrieben.
  • In einigen Ausführungsformen können eine Teileprogramm-Darstellung und/oder die kopierten Elemente (z.B. Anweisungsdarstellungen und/oder die Codeanweisungen) in einer einen oder mehrere übergeordnete Knoten mit einem oder mehreren untergeordneten Knoten enthaltenden Baumstruktur oder dergleichen angeordnet sein. Eine Benutzereingabe zum Bearbeiten von Anweisungsdarstellungen am GUI, enthaltend die kopierten Elemente, kann eines oder mehrere des Hinzufügens, Löschens und Änderns jeder der Anweisungsdarstellungen enthalten. In einigen Ausführungsformen entsprechen einige der Knoten Videowerkzeugen, jeweils enthaltend einen auf eine diskrete Operation wie eine Geometrievermessungsoperation oder eine Abbildungs- (z.B. Autofokussier-) Operation oder eine Bildverarbeitungsoperation und so weiter gerichteten Teilsatz von Anweisungen. In verschiedenen Ausführungsformen kann jedem der kopierten Elemente ein eindeutiger Knotenname, Variablenname, und/oder Codeblockname zugewiesen sein. Ein Name kann in einigen Ausführungsformen und/oder Situationen geändert werden, wenn der Knoten oder das kopierte Element bearbeitet wurde.
  • In verschiedenen Ausführungsformen ist ein computerlesbares Medium vorgesehen, welches computerausführbare Anweisungen enthält, welche so konfiguriert sind, dass sie auf einen Computer geladen werden, um den Computer zu befähigen, ein den hierin in groben Zügen dargestellten Merkmalen und Operationen entsprechendes Verfahren durchzuführen.
  • Man sollte erkennen, dass das Bearbeiten eines Teileprogramms für ein Inspektionssystem mit maschineller Bilderkennung eine komplexere Aufgabe ist als das Bearbeiten eines Programms für eine Werkzeugmaschine oder einen Montageroboter oder dergleichen. Zum Beispiel enthalten Teileprogramme für Inspektionssysteme mit maschineller Bilderkennung spätere Teile, welche Operationen steuern und/oder bildabhängige Messergebnisse liefern, welche mindestens teilweise von den durch die Ausführung eines vorausgehenden Teils des Programms ermittelten Ergebnissen und/oder von der besonderen Ausprägung eines Werkstücks, welches verwendet wird, um die Bilder zu liefern, welche für die Inspektionsoperationen wesentlich sind, abhängen. Ferner kann die erforderliche Beleuchtung und/oder die für ein bestimmtes Bild erforderliche Belichtungszeit von einer besonderen Ausprägung eines Werkstücks abhängen. Ferner ist es, wenn ein Benutzer ein teilweise fertiggestelltes Teileprogramm sichert und das Teileprogramm zu einem späteren Zeitpunkt wieder aufruft, um die Programmierung abzuändern oder fertigzustellen, möglicherweise nicht bekannt, ob in der Zwischenzeit bestimmte Arten von Veränderungen eingetreten sind (z.B. Veränderungen der Umgebungsbedingungen, versehentliches Verschieben des Teils auf dem Tisch usw.), welche sich ungünstig auf die fortlaufenden Bearbeitungen des Teileprogramms auswirken können. Wegen solcher Bedenken war es bei einigen solchen Systemen eine Standardpraxis, alle Anweisungen eines Teileprogramms vom Anfang bis zu potentiellen weiteren Änderungen an oder Ergänzungen zu den Teileprogramm-Anweisungen und einschließlich dieser tatsächlich auszuführen, um sicherzustellen, dass die Änderungen und/oder Ergänzungen auf der Grundlage eines realistischen Satzes von Bedingungen für ihren Betrieb programmiert werden. Jedoch ist die Ausführung aller Anweisungen eines Teileprogramms zwecks Herstellung eines realistischen Betriebszustands für Änderungen an oder Ergänzungen zu den Anweisungen bei großen Teileprogrammen (z.B. solchen, die eine große Anzahl von Bilderfassungen und/oder Merkmalsinspektionen enthalten) unpraktisch, was insbesondere bei Inspektionssystemen mit maschineller Bilderkennung, die eine mikroskopische Inspektion (z.B. Messungen mit einer Auflösung im Mikrometerbereich) an makroskopischen Objekten (z.B. Objekten, die sich über mehrere zehn oder hundert Millimeter erstrecken) durchführen, häufig der Fall ist.
  • Die '232-Anmeldung und die '061-Anmeldung, welche oben durch Verweis hierin einbezogen wurden, offenbaren Merkmale, die eine Bearbeitungsumgebung bereitstellen können, welche Betriebsbedingungen oder Betriebskontext während Bearbeitungsoperationen innerhalb kurzer Zeit (z.B. annähernd „Echtzeit“) zuverlässig aktualisieren kann und die eine schnellere, effizientere, intuitivere und flexiblere und robustere Erstellung und Bearbeitung von Teileprogrammen für Präzisions-Inspektionssysteme mit maschineller Bilderkennung ermöglichen. Jedoch bleibt ein Bedarf an zu einer solchen Bearbeitungsumgebung gehörigen Kopier- und Einfügeoperationen. Bekannte Kopier- und Einfügeverfahren unterstützen außerdem nicht die zu den in der '232-Anmeldung und der '061-Anmeldung offenbarten Operationen gehörigen Elemente und die dazu gehörige Funktionalität. Die Schwierigkeit liegt darin, dass Kopier- und Einfügeanweisungen in einem Teileprogramm für ein Inspektionssystem mit maschineller Bilderkennung komplexer sind als Ausschneide- und Einfügeanweisungen in einem zeichenorientierten Programm, welches physische Objekte nicht tatsächlich verschiebt, und noch komplexer sind als Ausschneide- und Einfügeanweisungen in einem Programm für eine Werkzeugmaschine oder einen Montageroboter oder dergleichen. Kopieranweisungen, welche gemäß einem passenden Betriebskontext an einer Stelle in einem Teileprogramm konfiguriert sind, und dann Einfügen an einer anderen Stelle im Teileprogramm können mittels vorher bekannter Verfahren nicht ausgeführt werden. Vorher bekannte zeichenorientierte Verfahren können, selbst wenn sie potentiell fähig sind, die erforderlichen Operationen durchzuführen, von relativ unerfahrenen Benutzern, welche nicht Computerprogrammierer sind und welche die zum Schreiben des grundlegenden Teileprogramms, welches gespeichert und zur späteren Ausführung zum Überprüfen eines Werkstücks wieder aufgerufen wird, verwendete Computersprache nicht verstehen, nicht verwendet werden. In der '232-Anmeldung und der '061 - Anmeldung in groben Zügen dargestellte Verfahren bezogen sich auf eine Bearbeitungsumgebung, welche Hochgeschwindigkeits-Betriebskontexterzeugung und -verwendung ermöglicht, um relativ unerfahrenen Programmbearbeitern ein relativ unmittelbares und realistisches Feedback über Programmerstellungs- und -bearbeitungsergebnisse zu geben, haben aber nicht die mit dem Kopieren „betriebskontextfähiger“ Programmanweisungen aus einem Teil eines Teileprogramms und Einfügen derselben in einen anderen Teil des Teileprogramms verbundenen Schwierigkeiten bedacht. Ein Mittel zum Kopieren und Einfügen in einer solchen Bearbeitungsumgebung wäre wünschenswert.
  • Gemäß den oben in groben Zügen dargestellten Betrachtungen wäre es für ein Inspektionssystem mit maschineller Bilderkennung wünschenswert, Kopier- und Einfügeoperationen bereitzustellen, welche kompatibel mit Nahezu-Echtzeit-Aktualisierungen des Betriebskontexts beim Bearbeiten eines Teileprogramms sind, um sicherzustellen, dass dann, wenn Änderungen und/oder Ergänzungen programmiert werden, ein realistischer Satz von Betriebsbedingungen als Grundlage oder Betriebskontext für die Änderungen und/oder Ergänzungen zur Verfügung steht. Dies ist, wenn das Teileprogramm durch Aufzeichnen von einem Benutzer des Inspektionssystems mit maschineller Bilderkennung eingegebener tatsächlicher Steuerungsoperationen erstellt und bearbeitet wird, insofern besonders wichtig, als der Benutzer die Einzelheiten ihrer Eingabeoperationen auf der Grundlage des Zustands des Inspektionssystems mit maschineller Bilderkennung und/oder des Aussehens und der Lage der Bilder, welche zu dem Zeitpunkt vorliegen, zu welchem sie ihre Eingabeoperationen bereitstellen, und so weiter intuitiv auswählt. Folglich kann der Benutzer eine gültige und zuverlässige Änderung eines Teileprogramms nicht an einer willkürlichen Stelle im Teileprogramm beginnen, ohne zuvor das System in im Wesentlichen den gleichen Betriebskontext an dieser Stelle, wie er durch die Ausführung der vorherigen Anweisungen des Teileprogramms während ihres automatischen Modus der Ausführung im Ablaufmodus geschaffen würde, zu versetzen. Vordem stellte kein Allzweck-Inspektionssystem mit maschineller Bilderkennung und insbesondere kein System, welches tatsächliche benutzergesteuerte Operationen aufzeichnet, um ein Teileprogramm zu erstellen (z.B. im Gegensatz zu einfachen graphikobjekt- oder zeichenorientierten Programmiersystemen), eine Bearbeitungsumgebung bereit, welche während Bearbeitungsoperationen in nahezu Echtzeit zuverlässig und robust einen gültigen Teileprogrammierungsbearbeitungs-Betriebskontext für Kopier- und Einfügeoperationen bereitstellt.
  • Die Kopier- und Einfügeoperationen sollten mindestens einige automatische Operationen enthalten, damit die Kopier- und Einfügeoperationen von relativ unerfahrenen Benutzern verwendet werden können. In verschiedenen Ausführungsformen sollten die Kopier- und Einfügeoperationen einem Benutzer so erscheinen, als wirkten sie auf einfache Darstellungen von Teileprogramm-Anweisungen, welche von einem relativ unerfahrenen Benutzer bearbeitet werden können, statt auf die zugrundeliegende zeichenorientierte Sprache, welche tatsächlich die Teileprogramm-Anweisungen bildet, die gespeichert und ausgeführt werden, um Inspektionsoperationen automatisch durchzuführen. In verschiedenen Ausführungsformen sind verschiedene Metadaten, welche mit den einfachen Darstellungen, die bearbeitet werden können, verknüpft sein können, in den zugrundeliegenden Teileprogramm-Anweisungen oder im zugrundeliegenden Code so enthalten, dass sie verborgen sind. Ihr Vorhandensein und/oder ihre Entfernung können in verschiedenen Ausführungsformen für den Benutzer unsichtbar sein, um ein Durcheinander im GUI zu vermeiden und relativ unerfahrene Benutzer nicht zu verwirren. Für einen Bearbeitungsmodus der Ausführung verwendete Ersatzdaten können eine solche Art von Metadaten sein. Ein Datenformat in der Gestalt einer für ein „Step-and-repeat“-Programm definierten Matrix kann ein weiteres Beispiel von Metadaten sein. In verschiedenen Ausführungsformen passen die Kopier- und Einfügeoperationen automatisch mit kopierten Darstellungen von Teileprogramm-Anweisungen verknüpfte Metadaten an (fügen sie hinzu, löschen, ändern sie), damit die angepassten Metadaten mit der eingefügten Stelle im Teileprogramm kompatibel sein können. In verschiedenen Ausführungsformen spiegeln die eingefügten Darstellungen an sich das Vorhandensein, das Fehlen oder die Abänderung von zugrundeliegenden verknüpften Anweisungen oder Metadaten wie den Ersatzdaten und dergleichen möglicherweise nicht wider. Vielmehr können die Kopier- und Einfügebefehle Operationen enthalten, die so aufgebaut sind, dass die Aspekte des Metadaten-Status, deren Erkennen für den Benutzer nützlich ist, in einem Statusanzeiger (z.B. einer Knotenkennung, einem codierten Cursorzustand, Einfügemarken-Zustand, dem Zustand einer „Farbleiste“, welche sich entlang des Rands eines Codeblocks erstreckt, um dessen Status zu farbcodieren, wie in der '232-Anmeldung oder dergleichen offenbart) widergespiegelt werden, welcher gewöhnlich in der Bearbeitungsschnittstelle verwendet wird, um diese Funktion durchzuführen. Somit liefern die Kopier- und Einfügeoperationen eingefügten Code, welcher mit dem Betriebskontext, in welchen er eingefügt ist, kompatibel ist und welcher sich hinsichtlich Statusangaben und Ablaufoperationen und dergleichen auf eine Weise verhält, welche viele oder die meisten Betriebseigenschaften mit anderen Programmieroperationen teilt, z.B. Erstellung neuer Operationen und dergleichen, welche der Benutzer an der Einfügestelle und/oder in diesem Betriebskontext durchführen könnte, einschließlich seines Verhaltens in Reaktion auf Bearbeitungsoperationen an der Einfügestelle und so weiter.
  • Weitere Überlegungen ergeben sich, wenn die Bearbeitungsumgebung die Teileprogramm-Anweisungen unterdrückt, da sie in einer zugrundeliegenden Programmiersprache (z.B. einer Markup-Sprache) geschrieben sind, und stattdessen vereinfachte Darstellungen der Anweisungen in einer Bearbeitungsschnittstelle verwendet, um relativ unerfahrenen Benutzern (z.B. Benutzern, welche die Markup-Sprache nicht verstehen) das Programmieren zu erleichtern. In einem solchen Fall kann es in verschiedenen Ausführungsformen für die Kopier- und Einfügebefehle vorteilhaft sein, automatisch sowohl an Anweisungsdarstellungen als auch an der zugrundeliegenden Programmiersprache zu arbeiten und dabei die zugrundeliegenden Programmkopier- und -einfügeoperationen vor dem Benutzer zu verbergen. Es kann außerdem vorteilhaft für die Kopier- und Einfügebefehle sein, übergeordnete Knoten, welche in den Anweisungsdarstellungen anfänglich komprimiert sind, automatisch zu erweitern, so dass ein Benutzer ihre untergeordneten Knoten sehen und dadurch den vollen Umfang der Kopier- und/oder Einfügeoperationen verstehen kann. Zusätzlich kann das GUI einer Bearbeitungsumgebung wie das oben in groben Zügen dargestellte einen unmittelbar bei einer Stelle in der angezeigten Teileprogramm-Darstellung angezeigten Bearbeitungskontext-Statusanzeiger enthalten, um den Bearbeitungskontext-Status (den Betriebskontext-Status) an dieser Stelle anzuzeigen. In einem solchen Fall kann es für den Kopier-und/oder Einfügebefehl vorteilhaft sein, so zu arbeiten, dass die eingefügten Elemente sich ungeachtet dessen, dass sie aus der Kopierstelle kopiert wurden, in einer neu erstellten oder eingefügten neuen Anweisungen ähnlichen Weise verhalten. In einem solchen Fall kann der Bearbeitungskontext-Statusanzeiger konservativ anzeigen, dass der Betriebskontext und/oder Bearbeitungskontext an der Einfügestelle zweifelhaft oder ungültig ist, bis die den eingefügten Elementen entsprechenden Anweisungen unter Verwendung des Bilderkennungssystems ausgeführt werden (z.B. im Ersatz-/simulierten und/oder Istausführungsmodus). In einigen Ausführungsformen kann der Bearbeitungskontext-Statusanzeiger einen Anweisungszeiger enthalten, welcher je nach einem seiner Stelle in der angezeigten Teileprogramm-Darstellung entsprechenden Bearbeitungskontext-Status die Farbe wechselt.
  • Der mit „KURZBESCHREIBUNG VON KOPIER-UND-EINFÜGEOPERATIONEN, -MERKMALEN UND -IMPLEMENTIERUNGEN“ betitelte Abschnitt unten soll, im Kontext der vorliegenden Anmeldung, einige, aber nicht alle möglichen Ausführungsformen veranschaulichen und ist nicht als beschränkend zu verstehen. Nichtsdestoweniger soll er verschiedene Ausführungsformen umfassen, welche die oben in groben Zügen dargestellten Probleme lösen und welche auch andere Vorteile bieten. Verschiedene alternative Ausführungsformen innerhalb des Umfangs dieses Anspruchs sind möglich und können von einem Durchschnittsfachmann verstanden oder realisiert werden, welcher über den Vorteil verschiedener in den Unterlagen dieser Anmeldung gelehrter oder offenbarter Grundsätze in Verbindung mit der Lehre der oben einbezogenen '232-Anmeldung und der '061-Anmeldung verfügt:
  • KURZBESCHREIBUNG VON KOPIER-UND-EINFÜGEOPERATIONEN, -MERKMALEN UND -IMPLEMENTIERUNGEN
  • Die Merkmale eines Erfindungsgemäßen Verfahrens sind den Ansprüchen 1 und 14 jeweils zu entnehmen. Die abhängigen Ansprüche stellen besondere Ausgestaltungen der Erfindung dar.
  • Im Folgenden wird beispielhaft ein computerausführbare Anweisungen enthaltendes computerlesbares Medium gezeigt:
    1. 1. Computerlesbares Medium, enthaltend computerausführbare Anweisungen, welche so konfiguriert sind, dass sie auf einen Computer geladen werden, um den Computer zu befähigen, beim Bearbeiten eines Teileprogramms in einem Inspektionssystem mit maschineller Bilderkennung ein Verfahren zum Kopieren und Einfügen eines Satzes von Operationen eines Teileprogramms für maschinelle Bilderkennung durchzuführen, wobei das Inspektionssystem mit maschineller Bilderkennung enthält: einen Abbildungsteil, einen Tisch zum Halten eines oder mehrerer Werkstücke in einem Sichtfeld des Abbildungsteils, einen Steuerungsteil, einen Bearbeitungsteil, eine Anzeige, eine graphische Benutzeroberfläche (GUI) und einen Lernmodus, welcher so konfiguriert ist, dass er so betreibbar ist, dass er Benutzereingaben zum Steuern von Operationen des Inspektionssystems mit maschineller Bilderkennung empfängt und verknüpfte Teileprogramm-Anweisungen, welche den gesteuerten Operationen entsprechen, aufzeichnet, um ein Teileprogramm zu erstellen, wobei das durchzuführende Verfahren umfasst:
      • Bereitstellen eines Kopierbefehls und eines Einfügebefehls, verknüpft mit dem Bearbeitungsteil;
      • Bereitstellen eines Bearbeitungsschnittstellenteils des GUI, wobei der Bearbeitungsschnittstellenteil so betreibbar ist, dass er eine bearbeitbare Teileprogramm-Darstellung zugrundeliegen der Teileprogramm-Anweisungen anzeigt, wobei die Teileprogramm-Darstellung Anweisungsdarstellungen enthält;
      • Anzeigen einer Teileprogramm-Darstellung eines zugrundeliegenden Teileprogramms im Bearbeitungsschnittstellenteil;
      • Auswählen mindestens einer ersten Anweisungsdarstellung an einer Kopierstelle in der angezeigten Teileprogramm-Darstellung, um einen mit einem zugrundeliegenden ausgewählten Anweisungs-Kopiersatz verknüpften ausgewählten Anweisungsdarstellungs-Kopiersatz festzulegen;
      • Bedienen des Bearbeitungsschnittstellenteils, um eine Einfügestelle in der angezeigten Teileprogramm-Darstellung, wo der ausgewählte Anweisungsdarstellungs-Satz eingefügt werden soll, festzulegen, wobei die Einfügestelle mit einer Anweisungs-Einfügestelle im zugrundeliegenden Teileprogramm verknüpft ist;
      • Bedienen des Bearbeitungsteils so, dass er auf mindestens einen des ausgewählten Anweisungsdarstellungs-Kopiersatzes und des ausgewählten Anweisungs-Kopiersatzes gerichtete Kopiersatzänderungs-Operationen durchführt, wobei die Kopiersatzänderungs-Operationen das Bilden eines geänderten ausgewählten Anweisungsdarstellungs-Kopiersatzes durch Operationen enthalten, welche mindestens eine der folgenden enthalten: a) Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungsdarstellungs-Kopiersatzes, welche mit dem Einfügestellen-Betriebskontext inkompatibel sind, b) Hinzufügen von Elementen und Verknüpfungen zum ausgewählten Anweisungsdarstellungs-Kopiersatz, welche für Kompatibilität mit dem Einfügestellen-Betriebskontext erforderlich sind, und c) Bilden des geänderten ausgewählten Anweisungsdarstellungs-Kopiersatzes auf der Grundlage eines geänderten ausgewählten Anweisungs-Kopiersatzes, gebildet durch Operationen, welche mindestens eine der folgenden enthalten: c1) Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungs-Kopiersatzes, welche inkompatibel mit dem Anweisungseinfügestellen-Betriebskontext sind, und c2) Hinzufügen von Elementen und Verknüpfungen zum ausgewählten Anweisungs-Kopiersatz, welche für Kompatibilität mit dem Anweisungseinfügestellen-Betriebskontext erforderlich sind; und
      • Bedienen des Bearbeitungsteils so, dass er Einfügeoperationen, enthaltend das Einfügen des geänderten ausgewählten Anweisungsdarstellungs-Kopiersatzes in die Einfügestelle in der angezeigten Teileprogramm-Darstellung, durchführt.
  • Der folgende Abschnitt offenbart beispielhaft und nicht einschränkend verschiedene Implementierungen und detaillierte Merkmale betreffende Einzelheiten. Wie es einem Durchschnittsfachmann auf der Grundlage der offenbarten Unterlagen und der einbezogenen Verweise einleuchten wird, können verschiedene Elemente des oben in groben Zügen dargestellten computerlesbaren Mediums die unten in groben Zügen dargestellten verschiedenen jeweiligen Merkmale und/oder Aspekte in verschiedenen jeweiligen Ausführungsformen einschließen:
    • • Mindestens einer des ausgewählten Anweisungsdarstellungs-Kopiersatzes und des verknüpften zugrundeliegenden ausgewählten Anweisungs-Kopiersatzes kann einen Programmknoten enthalten. Der Programmknoten kann einen übergeordneten Knoten enthalten, welcher untergeordnete Knoten enthält.
    • • Das Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungs-Kopiersatzes und/oder das Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungsdarstellungs-Kopiersatzes können/kann das Abändern eines mit solchen Elementen verknüpften Merkmalsnamens, Toleranznamens, Teilekoordinatensystem-Namens, „Messpunktpuffer“-Namens oder angezeigten Variablennamens oder dergleichen (z.B. in einer angezeigten Anweisungsdarstellung und/oder im zugrundeliegenden Anweisungscode) umfassen. Allgemeiner ausgedrückt, kann jeder „gespeicherte Elementname“ vor dem Einfügen einer Kopie von Anweisungen oder einer Darstellung, welche den gespeicherten Elementnamen enthält, an einer neuen Stelle abgeändert werden. Die Abänderung kann vorzugsweise eine automatische Abänderung sein oder kann eine automatisch angezeigte Abänderungsaufforderung an einen Benutzer enthalten.
    • • Das Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungs-Kopiersatzes und/oder das Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungsdarstellungs-Kopiersatzes können/kann das Abändern einer mit solchen Elementen verknüpften eindeutigen Knotenkennung (z.B. einer mit einer Anweisungsdarstellung verknüpften eindeutigen Knotenkennung, welche aber in der Teileprogramm-Darstellung nicht angezeigt wird, und/oder einer eindeutigen Knotenkennung, welche im zugrundeliegenden Anweisungscode enthalten ist) umfassen. Die Abänderung kann vorzugsweise eine automatische Abänderung sein,
    • • Wenn der ausgewählte Anweisungsdarstellungs-Kopiersatz in eine „Step-and-repeat“-Schleife eingefügt wird, können/kann das Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungs-Kopiersatzes und/oder das Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungsdarstellungs-Kopiersatzes das Abändern eines mit solchen Elementen verknüpften Merkmalsnamens, Toleranznamens, Teilekoordinatensystem-Namens, „Messpunktpuffer“-Namens oder angezeigten Variablennamens oder dergleichen (z.B. in einer angezeigten Anweisungsdarstellung und/oder im zugrundeliegenden Anweisungscode) umfassen, was das Abändern oder Hinzufügen eines mit dem Betriebskontext der „Step-and-repeat“-Schleife in Einklang stehenden Elements oder Formats umfassen kann. In einer Ausführungsform kann dies das Abändern eines angezeigten Elementnamens (z.B. eines Merkmalsnamens) zum Einschließen einer „Indexklammer“ oder dergleichen, welche ein Formatelement ist, das verwendet werden kann, um verschiedene Matrixpositions- oder Schleifeniterationsindizes oder dergleichen im Betriebskontext einer „Step-and-repeat“-Schleife aufzunehmen (z.B. um Ergebnisse einer „Schleifenoperationen“-lteration an einer bestimmten der „Step-and-repeat“-Stellen zu identifizieren oder zu benennen), umfassen. Allgemeiner ausgedrückt, kann jeder „gespeicherte Elementname“ vor dem Einfügen einer Kopie von Anweisungen oder einer Darstellung, welche den gespeicherten Elementnamen enthält, in eine neue Stelle in einer „Step-and-repeat“-Schleife abgeändert oder neu formatiert werden. Die Abänderung kann vorzugsweise eine automatische Abänderung sein oder kann eine automatisch angezeigte Abänderungsaufforderung an einen Benutzer enthalten.
    • • Wenn der ausgewählte Anweisungsdarstellungs-Kopiersatz aus einer „Step-and-repeat“-Schleife kopiert und außerhalb einer „Step-and-repeat“-Schleife eingefügt wird, können/kann das Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungs-Kopiersatzes und/oder das Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungsdarstellungs-Kopiersatzes das Abändern oder Entfernen eines Merkmalsnamens, Toleranznamens, Teilekoordinatensystem-Namens, „Messpunktpuffer“-Namens oder angezeigten Variablennamens oder dergleichen (z.B. in einer angezeigten Anweisungsdarstellung und/oder im zugrundeliegenden Anweisungscode) oder eines Formats, welches typisch für den Betriebskontext der „Step-and-repeat“-Schleife ist, umfassen. In einer Ausführungsform kann dies das Abändern eines angezeigten Elementnamens (z.B. eines Merkmalsnamens) zum Löschen einer „Indexklammer“ oder dergleichen, welche ein Formatelement ist, das verwendet werden kann, um verschiedene Matrixpositions- oder Schleifeniterationsindizes oder dergleichen im Betriebskontext einer „Step-and-repeat“-Schleife aufzunehmen (z.B. um Ergebnisse einer „Schleifenoperationen“-Iteration an einer bestimmten der „Step-and-repeat“-Stellen zu identifizieren oder zu benennen), umfassen. Allgemeiner ausgedrückt, kann jeder „gespeicherte Elementname“ vor dem Einfügen einer Kopie von Anweisungen oder einer Darstellung, welche den gespeicherten Elementnamen enthält, in eine neue Stelle außerhalb einer „Step-and-repeat“-Schleife abgeändert und/oder neu formatiert werden. Die Abänderung kann vorzugsweise eine automatische Abänderung sein oder kann eine automatisch angezeigte Abänderungsaufforderung an einen Benutzer enthalten.
    • • Das Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungs-Kopiersatzes und/oder das Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungsdarstellungs-Kopiersatzes können/kann das Entfernen solcher Elemente umfassen.
    • • Der Bearbeitungsteil kann weiter so bedient werden, dass er Einfügeoperationen durchführt, welche das Einfügen des geänderten ausgewählten Anweisungs-Kopiersatzes in die Anweisungs-Einfügestelle in der zugrundeliegenden Teileprogramm-Darstellung umfassen.
    • • Der Bearbeitungsteil kann bedient werden, um die Kopiersatzänderungs-Operationen durchzuführen, welche das Bedienen des GUI, um den Kopierbefehl so auszuführen, dass er auf den ausgewählten Anweisungsdarstellungs-Kopiersatz und/oder den verknüpften zugrundeliegenden ausgewählten Anweisungs-Kopiersatz gerichtet ist, umfassen.
    • • Mindestens einige der Kopiersatzänderungs-Operationen können in Reaktion auf die Ausführung des Kopierbefehls automatisch durchgeführt werden. In einer Ausführungsform umfassen solche Operationen das Entfernen a) dem ausgewählten Anweisungsdarstellungs-Kopiersatz entsprechender Ersatzdaten oder b) einer Verknüpfung zwischen dem ausgewählten Anweisungsdarstellungs-Kopiersatz und entsprechenden Ersatzdaten (z.B. kann die Verknüpfung in einer Ausführungsform durch eine Knotenkennung bereitgestellt werden, welche entfernt oder so abgeändert wird, dass die Verknüpfung unterbrochen wird) oder von a) und b). In einer Ausführungsform können solche Operationen das Verschieben einer Kopie mindestens eines des ausgewählten Anweisungs-Kopiersatzes und des ausgewählten Anweisungsdarstellungs-Kopiersatzes in eine Zwischenablage, nachdem die entsprechenden Ersatzdaten und/oder ihre Verknüpfung entfernt wurden, umfassen. In einer Ausführungsform kann die Funktionalität der Windows-Zwischenablage für die Zwischenablage-Operationen verwendet werden. In einer Ausführungsform kann die Funktionalität der Windows-„Privat“-Zwischenablage verwendet werden.
    • • Mindestens einige der Kopiersatzänderungs-Operationen können in Reaktion auf die Ausführung des Einfügebefehls automatisch durchgeführt werden. In einer Ausführungsform umfassen solche Operationen das Hinzufügen oder das Abändern a) einer Verknüpfung zwischen dem ausgewählten Anweisungsdarstellungs-Kopiersatz und einer entsprechenden Ersatzdaten-Speicheradresse oder -stelle (z.B. kann die Verknüpfung in einer Ausführungsform durch eine Knotenkennung bereitgestellt werden, welche hinzugefügt oder abgeändert wird, so dass die Verknüpfung erstellt wird) oder b) eines Merkmalsnamens, eines Toleranznamens, eines Teilekoordinatensystem-Namens, eines „Messpunktpuffer“-Namens oder eines angezeigten Variablen namens oder dergleichen oder von a) und b). In einer Ausführungsform können solche Operationen das Verschieben einer Kopie mindestens eines des ausgewählten Anweisungs-Kopiersatzes und des ausgewählten Anweisungsdarstellungs-Kopiersatzes aus der Zwischenablage in die Einfüge- oder Anweisungseinfügestelle umfassen. In einer Ausführungsform kann die Funktionalität der Windows-Zwischenablage für die Zwischenablage-Operationen verwendet werden. In einer Ausführungsform kann die Funktionalität der Windows-„Privat“-Zwischenablage verwendet werden.
    • • In einer Ausführungsform können die Kopier- und/oder Einfügebefehle im GUI anzeigbar sein und sind die Befehle durch einen Benutzer auswählbar und/oder ausführbar, um die entsprechenden Operationen zu aktivieren, um die auf den ausgewählten Anweisungsdarstellungs-Kopiersatz und/oder den verknüpften zugrundeliegenden ausgewählten Anweisungs-Kopiersatz gerichteten Kopiersatzänderungs-Operationen bereitzustellen.
    • • In einer Ausführungsform kann der Bearbeitungsschnittstellenteil bedient werden, um den auf den ausgewählten Anweisungsdarstellungs-Kopiersatz und/oder den verknüpften zugrundeliegenden ausgewählten Anweisungs-Kopiersatz und/oder ihre geänderten Entsprechungen gerichteten Kopierbefehl auszuwählen und/oder auszuführen durch: Auswählen des Darstellungs-Kopiersatzes und/oder des verknüpften zugrundeliegenden ausgewählten Anweisungs-Kopiersatzes im Bearbeitungsschnittstellenteil des GUI; Bedienen des GUI, um ein mindestens den dem ausgewählten Anweisungsdarstellungs-Kopiersatz und/oder dem verknüpften zugrundeliegenden ausgewählten Anweisungs-Kopiersatz entsprechenden Kopierbefehl enthaltendes Menü anzuzeigen; und Auswählen des Kopierbefehls aus dem angezeigten Menü.
    • • In einer Ausführungsform kann der Bearbeitungsschnittstellenteil bedient werden, um den auf den ausgewählten Anweisungsdarstellungs-Kopiersatz und/oder den verknüpften zugrundeliegenden ausgewählten Anweisungs-Kopiersatz und/oder ihre geänderten Entsprechungen gerichteten Einfügebefehl auszuwählen und/oder auszuführen durch: Positionieren eines Cursors oder sonstigen Bearbeitungsstellen-Anzeigers des GUI an der Einfügestelle in der Teileprogramm-Darstellung; Bedienen des GUI, um ein mindestens den dem ausgewählten Anweisungsdarstellungs-Kopiersatz und/oder dem verknüpften zugrundeliegenden ausgewählten Anweisungs-Kopiersatz oder ihren geänderten Entsprechungen in der Zwischenablage entsprechenden Einfügebefehl enthaltendes Menü anzuzeigen; und Auswählen des Einfügebefehl aus dem angezeigten Menü.
    • • Wie bei Programmen und Routinen üblich, kann die Aufteilung verschiedener Operationen zwischen den mit dem Kopierbefehl verknüpften und den mit dem Einfügebefehl verknüpften unterschiedlich ausfallen, so dass sie in verschiedenen Ausführungsformen verschiedene Formen annimmt. Solche verschiedenen Formen können jede Form sein, zu welcher ein Durchschnittsfachmann auf der Grundlage der hierin offenbarten Darlegungen gelangt, solange diese Form so betreibbar ist, dass sie die hierin offenbarten und/oder beanspruchten Merkmale bereitstellt.
    • • In einer Ausführungsform kann eine „Darstellung“ (z.B. die Teileprogramm-Darstellung(en)) so interpretiert werden, dass sie als die in einer Markup-Sprache geschriebenen zugrundeliegenden maschinenausführbaren Codeanweisungen sowie die bearbeitbaren Anweisungsdarstellungen, die im GUI angezeigt werden, welche mit ihren entsprechenden zugrundeliegenden Codeanweisungen verknüpft sind, enthaltend betrachtet wird. In einer Ausführungsform kann diese Interpretation so sein, weil die Darstellungen, zum Beispiel beim Wiederaufrufen eines zuvor erstellten und gespeicherten Teileprogramms und Anzeigen seiner Darstellung im GUI, aus den zugrundeliegenden maschinenausführbaren Codeanweisungen erzeugt werden können.
    • • Die zugrundeliegenden maschinenausführbaren Codeanweisungen können in einer Markup-Sprache geschrieben sein. Die Markup-Sprache kann eine anwenderspezifische „XML-ähnliche“ oder „HTML-ähnliche“ Sprache sein.
    • • In einer Ausführungsform kann ein mit den hierin offenbarten Kopier- und Einfügeoperationen zusammenhängendes Verfahren einen oder mehrere der folgenden Schritte enthalten:
      • o Auswählen mindestens einer ersten Anweisungsdarstellung an einer Kopierstelle in der angezeigten Teileprogramm-Darstellung, um einen mit einem zugrundeliegenden ausgewählten Anweisungs-Kopiersatz verknüpften ausgewählten Anweisungsdarstellungs-Kopiersatz festzulegen;
      • ◯ Bedienen des GUI, um Kopieroperationen einzuleiten, welche eine Kopie mindestens eines des ausgewählten Anweisungsdarstellungs-Kopiersatzes und des zugrundeliegenden ausgewählten Anweisungs-Kopiersatzes erstellen (z.B. durch Aktivieren eines auf den ausgewählten Anweisungsdarstellungs-Kopiersatz gerichteten Kopierbefehls-Widgets);
      • o automatisches Durchführen von Kopieroperationen, um einen auf mindestens einen des ausgewählten Anweisungsdarstellungs-Kopiersatzes und des ausgewählten Anweisungs-Kopiersatzes gerichteten ersten Teilsatz der Kopiersatzänderungs-Operationen durchzuführen (z.B. kann der erste Teilsatz der Kopiersatzänderungs-Operationen auf Elemente gerichtet sein, welche typisch für den Betriebskontext an der Kopierstelle sind, welcher zum Beispiel das Entfernen verknüpfter Ersatzdaten und/oder ihrer Verknüpfung mit dem Kopiersatz (den Kopiersätzen) und/oder das Bereitstellen einer neuen oder abgeänderten eindeutigen Knotenkennung und/oder dergleichen umfassen kann). Der teilweise geänderte Kopiersatz kann bzw. die teilweise geänderten Kopiersätze können in einer Zwischenablage gespeichert werden;
      • o Festlegen einer Einfügestelle in der angezeigten Teileprogramm-Darstellung, wo der ausgewählte Anweisungsdarstellungs-Satz eingefügt werden soll, wobei die Einfügestelle mit einer Anweisungs-Einfügestelle im zugrundeliegenden Teileprogramm verknüpft ist;
      • o Bedienen des GUI, um auf mindestens eine der teilweise geänderten Entsprechungen des ausgewählten Anweisungsdarstellungs-Kopiersatzes und des zugrundeliegenden ausgewählten Anweisungs-Kopiersatzes gerichtete Einfügeoperationen einzuleiten (z.B. durch Aktivieren eines auf die Einfügestelle gerichteten Einfügebefehls-Widgets);
      • o automatisches Durchführen von Einfügeoperationen, um einen auf die teilweise geänderten Entsprechungen mindestens eines des ausgewählten Anweisungsdarstellungs-Kopiersatzes und des ausgewählten Anweisungs-Kopiersatzes gerichteten zweiten Teilsatz der Kopiersatzänderungs-Operationen durchzuführen. Zum Beispiel kann der zweite Teilsatz der Kopiersatzänderungs-Operationen auf Elemente gerichtet sein, welche typisch für den Betriebskontext an der Einfügestelle sind, wobei er mindestens eine der folgenden Operationen enthält: a) Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungsdarstellungs-Kopiersatzes, welche inkompatibel mit dem Einfügestellen-Betriebskontext sind, b) Hinzufügen von Elementen und Verknüpfungen zum ausgewählten Anweisungsdarstellungs-Kopiersatz, welche für Kompatibilität mit dem Einfügestellen-Betriebskontext erforderlich sind (z.B. kann a oder b einen neuen oder abgeänderte Merkmalsnamen oder dergleichen im richtigen Format bereitstellen und so weiter), und c) Bilden des geänderten ausgewählten Anweisungsdarstellungs-Kopiersatzes auf der Grundlage eines geänderten ausgewählten Anweisungs-Kopiersatzes, gebildet durch Operationen, welche mindestens eine der folgenden enthalten: c1) Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungs-Kopiersatzes, welche inkompatibel mit dem Anweisungseinfügestellen-Betriebskontext sind, und c2) Hinzufügen von Elementen und Verknüpfungen zum ausgewählten Anweisungs-Kopiersatz, welche für Kompatibilität mit dem Anweisungseinfügestellen-Betriebskontext erforderlich sind. Der teilweise geänderte Kopiersatz kann bzw. die teilweise geänderten Kopiersätze können automatisch aus der Zwischenablage und dem zweiten Teilsatz der zum Erstellen eines (vollständig) geänderten ausgewählten Anweisungsdarstellungs-Kopiersatzes und/oder (vollständig) geänderten ausgewählten Anweisungs-Kopiersatzes durchgeführten Kopiersatzänderungs-Operationen abgerufen werden;
      • o automatisches Durchführen von Einfügeoperationen, welche den geänderten ausgewählten Anweisungsdarstellungs-Kopiersatz an der Einfügestelle in der Teileprogramm-Darstellung einfügen und/oder den geänderten ausgewählten Anweisungsdarstellungs-Kopiersatz an der Anweisungs-Einfügestelle im zugrundeliegende Teileprogramm einfügen;
      • o automatisches Durchführen von Operationen des Bearbeitungsschnittstellen-GUI, welche angeben, dass der eingefügte geänderte ausgewählte Anweisungsdarstellungs-Kopiersatz ungeachtet dessen, dass er von einer Stelle, welche möglicherweise zuvor ausgeführt wurde, kopiert wurde, den Status ähnlich demjenigen neu erstellter oder eingefügter „neuer Anweisungen“ aufweist.
    • • In einer Ausführungsform enthalten die Kopieroperationen das automatische Erweitern mindestens eines in dem ausgewählten Anweisungsdarstellungs-Kopiersatz enthaltenen übergeordneten Knotens, um alle seine in dem ausgewählten Anweisungsdarstellungs-Kopiersatz enthaltenen untergeordneten Knoten anzuzeigen. Die in dem ausgewählten Anweisungsdarstellungs-Kopiersatz enthaltenen Knoten können, als ein weiteres Zeichen ihres Umfangs, im GUI hervorgehoben werden. In einigen Ausführungsformen werden alle Knoten in dem ausgewählten Anweisungsdarstellungs-Kopiersatz angezeigt. In einer Ausführungsform geschieht dies, wenn das Kopierbefehls-Widget ausgewählt oder der Cursor darüber bewegt wird, bevor es ausgeführt wird.
    • • In einer Ausführungsform enthalten die Einfügeoperationen das automatische Erweitern mindestens eines in dem eingefügten geänderten ausgewählten Anweisungsdarstellungs-Kopiersatz enthaltenen übergeordneten Knotens, um alle seine in dem geänderten ausgewählten Anweisungsdarstellungs-Kopiersatz enthaltenen untergeordneten Knoten anzuzeigen. Die in dem eingefügten geänderten ausgewählten Anweisungsdarstellungs-Kopiersatz enthaltenen Knoten können, als ein weiteres Zeichen ihres Umfangs, im GUI hervorgehoben werden. In einigen Ausführungsformen werden alle Knoten in dem eingefügten geänderten ausgewählten Anweisungsdarstellungs-Kopiersatz angezeigt. In einer Ausführungsform geschieht dies außerdem, wenn das Einfüge-/Kopierbefehls-Widget ausgewählt oder der Cursor darüber bewegt wird, bevor es ausgeführt wird.
  • Figurenliste
    • 1 ist eine Zeichnung, welche verschiedene typische Komponenten eines Allzweck-Präzisions-Inspektionssystems mit maschineller Bilderkennung zeigt;
    • Die 2A und 2B sind Blockschaubilder eines Steuerungssystem-Teils und eines Bilderkennungskomponenten-Teils eines Inspektionssystems mit maschineller Bilderkennung ähnlich dem in 15, enthaltend in verschiedenen Ausführungsformen gemäß dieser Erfindung verwendbare Module und Merkmale.
    • Die 3A bis 19 sind eine Bearbeitungsschnittstelle oder ein GUI zeigende Abbildungen, enthaltend eine Darstellung einer Ausführungsform von Kopier- und Einfügeoperationen gemäß hierin offenbarten Grundsätzen sowie verschiedene Fenster, Menüs und Werkzeugleisten, welche so konfiguriert sind, dass sie einen Benutzer während des Bearbeitens unterstützen.
    • Die 20A bis 24E sind Abbildungen von Teileprogramm-Codeanweisungen oder Teilen davon, geschrieben in einer Markup-Sprache, welche verschiedenen in den in den 3A bis 19 dargestellten Abfolgeoperationen dargestellten Zuständen und/oder Operationsabfolgen entsprechen.
    • Die 25A und 25B zeigen einen Ablaufplan, welcher ein Beispiel einer Routine zum Kopieren und Einfügen eines Satzes von Operationen eines Teileprogramms für maschinelle Bilderkennung beim Bearbeiten eines Teileprogramms in einem Inspektionssystem mit maschineller Bilderkennung gemäß hierin offenbarten Grundsätzen veranschaulicht.
  • BESCHREIBUNG
  • Was jede der hierin offenbarten Beschreibungen und/oder Figuren anbelangt, können viele Merkmale der Figuren, einschließlich der Hardware- und Softwarekomponenten und ihrer entsprechenden Operationen, GUI-Merkmale und ihrer entsprechenden Operationen und dergleichen, auf der Grundlage der Beschreibungen ihrer im wesentlichen ähnlichen Entsprechungen in 1, welche eine Zeichnung eines in verschiedenen Ausführungsformen der vorliegenden Erfindung verwendbaren beispielhaften Inspektionssystems mit maschineller Bilderkennung 10 ist, verstanden werden. Das Inspektionssystem mit maschineller Bilderkennung 10 enthält ein Bilderkennungs-Messgerät 12, welches so betreibbar angeschlossen ist, dass es Daten und Steuersignale mit einem Steuercomputersystem 14 austauscht. Das Steuercomputersystem 14 ist ferner so betreibbar angeschlossen, dass es Daten und Steuersignale mit einem Bildschirm oder einer Anzeige 16, einem Drucker 18, einem Joystick 22, einer Tastatur 24 und einer Maus 26 austauscht. Der Bildschirm oder die Anzeige 16 kann eine zum Steuern und/oder Programmieren der Operationen des Inspektionssystems mit maschineller Bilderkennung 10 geeignete Benutzerschnittstelle wie ein GUI zum Erzeugen und Bearbeiten eines „Step-and-repeat“-Anweisungen enthaltenden Teileprogramms, enthaltend das Durchführen von Ausschneide- und Einfügeoperationen als Teil der Programmerzeugungs- und -bearbeitungsoperationen, gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung anzeigen.
  • Das Bilderkennungs-Messgerät 12 enthält einen beweglichen Werkstücktisch 32 und ein optisches Abbildungssystem 34, welches eine Zoomlinse oder auswechselbare Linsen enthalten kann. Die Zoomlinse oder die auswechselbaren Linsen stellen gewöhnlich verschiedene Vergrößerungen für die vom optischen Abbildungssystem 34 gelieferten Bilder bereit. Das Inspektionssystem mit maschineller Bilderkennung 10 ist allgemein mit der QUICK VISION®-Serie von Bilderkennungssystemen und der oben erörterten QVPAK®-Software sowie ähnlichen dem Stand der Technik entsprechenden, handelsüblichen Präzisions-Inspektionssystemen mit maschineller Bilderkennung vergleichbar. Das Inspektionssystem mit maschineller Bilderkennung 10 ist auch in den gemeinsam übertragenen US-Patenten Nr. 7,454,053, 7,324,682, 8,111,938 und 8,111,905 , welche jeweils durch Verweis hierin einbezogen werden, beschrieben.
  • Die 2A und 2B sind Blockschaubilder eines Steuerungssystem-Teils 120 und eines Bilderkennungskomponenten-Teils 200 eines Inspektionssystems mit maschineller Bilderkennung 100 ähnlich dem Inspektionssystem mit maschineller Bilderkennung 10 in 1, und der Steuerungssystem-Teil 120 enthält in verschiedenen Ausführungsformen gemäß der vorliegenden Erfindung nutzbare Merkmale. Der Steuerungssystem-Teil 120 wird verwendet, um den Bilderkennungskomponenten-Teil 200 zu steuern. Wie in 2A gezeigt, enthält der Bilderkennungskomponenten-Teil 200 einen Optikbaugruppen-Teil 205, Lichtquellen 220, 230 und 240 und einen Werkstücktisch 210 mit einem zentralen transparenten Teil 212. Der Werkstücktisch 210 ist entlang einer X- und einer Y-Achse, welche in einer Ebene liegen, die gewöhnlich parallel zur Oberfläche des Tischs, auf welchen ein Werkstück 20 gelegt werden kann, liegt, steuerbar beweglich. Der Optikbaugruppen-Teil 205 enthält ein Kamerasystem 260, eine auswechselbare Objektivlinse 250 und kann eine Revolverlinsen-Baugruppe 280 mit Linsen 286 und 288 enthalten. Alternativ zur Revolverlinsen-Baugruppe kann eine feste oder von Hand auswechselbare vergrößerungsverändernde Linse oder eine Zoomlinsenkonfiguration oder dergleichen enthalten sein. Der Optikbaugruppen-Teil 205 ist entlang einer Z-Achse, welche gewöhnlich orthogonal zur X- und zur Y-Achse liegt, unter Verwendung eines steuerbaren Motors 294 steuerbar beweglich.
  • Ein Werkstück 20 oder eine Schale oder eine Aufnahmevorrichtung, die eine Vielzahl von Werkstücken 20 enthält, welches bzw. welche mittels des Inspektionssystems mit maschineller Bilderkennung 100 abgebildet werden soll, wird auf den Werkstücktisch 210 gelegt. Der Werkstücktisch 210 kann so gesteuert werden, dass er sich relativ zum Optikbaugruppen-Teil 205 bewegt, so dass die auswechselbare Objektivlinse 250 sich zwischen Stellen auf einem Werkstück 20 und/oder einer Vielzahl von Werkstücken 20 bewegt. Ein Tischlicht 220, ein Koaxiallicht 230 oder ein Oberflächenlicht 240 oder mehrere davon kann bzw. können Quelllicht 222, 232 beziehungsweise 242 ausstrahlen, um das Werkstück oder die Werkstücke 20 zu beleuchten. Das Quelllicht wird als Werkstücklicht 255, welches die auswechselbare Objektivlinse 250 und die Revolverlinsen-Baugruppe 280 durchläuft, reflektiert oder durchgelassen, und wird vom Kamerasystem 260 aufgenommen. Das vom Kamerasystem 260 erfasste Bild des Werkstücks (der Werkstücke) 20 wird auf einer Signalleitung 262 an den Steuerungssystem-Teil 120 ausgegeben. Die Lichtquellen 220, 230 und 240 können über Signalleitungen oder Busse 221, 231 beziehungsweise 241 mit dem Steuerungssystem-Teil 120 verbunden sein. Zum Ändern der Bildvergrößerung kann der Steuerungssystem-Teil 120 über eine Signalleitung oder einen Bus 281 die Revolverlinsen-Baugruppe 280 entlang einer Achse 284 drehen, um eine Revolverlinse auszuwählen.
  • In verschiedenen beispielhaften Ausführungsformen ist der Optikbaugruppen-Teil 205 unter Verwendung eines steuerbaren Motors 294, welcher ein Stellorgan antreibt, eines Verbindungskabels oder dergleichen in der senkrechten Z-Achsen-Richtung relativ zum Werkstücktisch 210 beweglich, um den Optikbaugruppen-Teil 205 entlang der Z-Achse zu verschieben, um die Scharfeinstellung des durch das Kamerasystem 260 erfassten Bilds des Werkstücks 20 zu ändern. Der Begriff Z-Achse, wie hierin verwendet, bezeichnet die Achse, welche vorgesehen ist, zum Scharfeinstellen des durch den Optikbaugruppen-Teil 205 erhaltenen Bilds verwendet zu werden. Der steuerbare Motor 294 ist, wenn verwendet, über eine Signalleitung 296 mit der Eingabe-/Ausgabeschnittstelle 130 verbunden.
  • Wie in 2A gezeigt, enthält der Steuerungssystem-Teil 120 in verschiedenen beispielhaften Ausführungsformen eine Steuerung 125, einen Stromversorgungs-Teil 128, die Eingabe-/Ausgabeschnittstelle 130, einen Speicher 140, eine Werkstückprogramm- (Teileprogramm-) Erzeugungs- und -Ausführungsfunktion 150, eine Aufzeichnungs-/Umsetzungsfunktion 155, eine Lernmodus-Ausführungsfunktion 156, eine Ablaufmodus-Ausführungsfunktion 157, einen Bearbeitungsteil 160, einen Ersatzdatenmanager 180, einen Programmstatusmanager 185, einen Knotenmanager 190, einen Auto-Scroll-Manager 195 und einen Kopier- und Einfügemanager 169. Jede dieser Komponenten sowie die unten beschriebenen weiteren Komponenten können durch einen oder mehrere Daten-/Steuerbusse und/oder Anwendungsprogrammierungs-Schnittstellen oder durch direkte Verbindungen zwischen den verschiedenen Elementen untereinander verbunden sein. Wie für Fachleute ersichtlich, können beliebige dieser Komponenten miteinander vereinigt werden, können sie aus mehreren Unterkomponenten bestehen oder können beliebige ihrer jeweiligen Unterkomponenten miteinander vereinigt werden, je nach der jeweiligen Implementierung.
  • Die Eingabe-/Ausgabeschnittstelle 130 enthält eine Abbildungssteuerungs-Schnittstelle 131, eine Bewegungssteuerungs-Schnittstelle 132, eine Beleuchtungssteuerungs-Schnittstelle 133 und eine Linsensteuerungs-Schnittstelle 134. Die Bewegungssteuerungs-Schnittstelle 132 kann ein Positionssteuerelement 132a und ein Geschwindigkeits-/Beschleunigungssteuerelement 132b enthalten, obwohl solche Elemente vereinigt und/oder nicht voneinander unterscheidbar sein können. Die Beleuchtungssteuerungs-Schnittstelle 133 steuert zum Beispiel die Auswahl, die die Leistung (Helligkeit), den Ein/Aus-Schalter und die Ausblendimpuls-Zeitsteuerung, sofern zutreffend, für die verschiedenen entsprechenden Lichtquellen des Inspektionssystems mit maschineller Bilderkennung 100.
  • Der Speicher 140 enthält einen Bilddateien-Speicherteil 141, einen Werkstückprogramm-Speicherteil 142, welcher ein oder mehrere Teileprogramme 142PP oder dergleichen enthalten kann, einen Videowerkzeug-Teil 143 und in der veranschaulichten Ausführungsform einen Ersatzdaten-Speicherteil 144, welcher Ersatzdaten 144SD enthalten kann. Der Videowerkzeug-Teil 143 enthält verschiedene Videowerkzeuge (zusammen 143a), welche jeweils das GUI und zum Durchführen einer speziellen Funktion definierte Bildverarbeitungsoperation enthalten, wie Kanten-/Randerkennungswerkzeuge, Autofokussierwerkzeuge, Form- oder Mustervergleichswerkzeuge und Längenmesswerkzeuge. Viele bekannte Videowerkzeuge sind in handelsüblichen Inspektionssystemen mit maschineller Bilderkennung wie der QUICK VISION®-Serie von Bilderkennungssystemen und der zugehörigen oben erörterten QVPAK®-Software enthalten. Der Videowerkzeug-Teil 143 enthält außerdem eine „Region of interest“- (ROI-) Erzeugungsfunktion 143x, welche automatische, halbautomatische und/oder manuelle Operationen unterstützt, welche verschiedene ROls festlegen, welche in verschiedenen im Videowerkzeug-Teil 143 enthaltenen Videowerkzeugen betreibbar sind.
  • Der Ersatzdaten-Speicherteil 144 enthält Ersatzdaten 144SD. Gemäß einigen Ausführungsformen kann beim Bearbeiten eines Teileprogramms, statt alle Schritte des Teileprogramms von Anfang an auszuführen zu müssen, um den benötigten Betriebskontext für fortlaufende Bearbeitungen an einer bestimmten Stelle im Programm zu erzeugen, der benötigte Betriebskontext (hinsichtlich sowohl Hardwareeinstellung als auch Softwareparametern und Werten) unter Verwendung zuvor gesicherter Daten als Ersatzdaten simuliert werden wie in der '232-Anmeldung, auf welche zuvor verwiesen wurde, beschrieben.
  • Im Allgemeinen speichert der Speicherteil 140 zum Betreiben des Bilderkennungssystemkomponenten-Teils 200 verwendbare Daten, um ein Bild des Werkstücks 20 so aufzunehmen oder zu erfassen, dass das erfasste Bild des Werkstücks 20 erwünschte Bildeigenschaften aufweist. Der Speicherteil 140 kann auch Inspektionsergebnisdaten speichern und kann ferner Daten speichern, welche verwendbar sind, das Inspektionssystem mit maschineller Bilderkennung 100 zu betreiben, verschiedene (z.B. teilweise als Videowerkzeuge realisierte) Inspektions- und Messoperationen an den erfassten Bildern entweder manuell oder automatisch durchzuführen und die Messergebnisse über die Eingabe-/Ausgabeschnittstelle 130 auszugeben. Der Speicherteil 140 kann auch Daten enthalten, welche eine über die Eingabe-/Ausgabeschnittstelle 130 betreibbare Benutzerschnittstelle definieren.
  • Die Signalleitungen oder Busse 221, 231 und 241 des Tischlichts 220, des Koaxiallichts 230 beziehungsweise des Oberflächenlichts 240 sind alle mit der Eingabe-/Ausgabeschnittstelle 130 verbunden. Die Signalleitung 262 vom Kamerasystem 260 und die Signalleitung 296 vom steuerbaren Motor 294 sind mit der Eingabe-/Ausgabeschnittstelle 130 verbunden. Zusätzlich zum Übertragen von Bilddaten kann die Signalleitung 262 ein Signal von der Steuerung 125 übertragen, welches die Bilderfassung einleitet.
  • Eine oder mehrere Anzeigevorrichtungen 136 (z.B. die Anzeige 16 in 1) und eine oder mehrere Eingabevorrichtungen 138 (z.B. der Joystick 22, die Tastatur 24 und die Maus 26 in 1) können ebenfalls mit der Eingabe-/Ausgabeschnittstelle 130 verbunden sein. Die Anzeigevorrichtungen 136 und Eingabevorrichtungen 138 können verwendet werden, um eine Benutzeroberfläche anzuzeigen, welche verschiedene Merkmale einer graphischen Benutzeroberfläche enthalten kann, die verwendbar sind, um Inspektionsoperationen durchzuführen, Teileprogramme zu erstellen und/oder zu bearbeiten (zu ändern) einschließlich des Durchführens von Ausschneide- und Einfügeoperationen als Teil des Programmerstellungs- und/oder Bearbeitungsprozesses, die durch das Kamerasystem 260 erfassten Bilder anzuzeigen und/oder den Bilderkennungssystemkomponenten-Teil 200 direkt zu steuern. Insbesondere werden, gemäß verschiedenen beispielhaften Ausführungsformen der vorliegenden Erfindung, die Anzeigevorrichtungen 136 und Eingabevorrichtungen 138 verwendet, um verschiedene Benutzerschnittstellen-Merkmale darzustellen, welche verwendbar sind, um ein schnelles, effizientes, intuitives, flexibles und robustes Bearbeiten von Teileprogrammen für das Inspektionssystem mit maschineller Bilderkennung 100 einschließlich des Durchführens von Ausschneide- und Einfügeoperationen zu ermöglichen.
  • Die Werkstückprogramm-Erzeugungs- und -Ausführungsfunktion 150, die Aufzeichnungs-/Umsetzungsfunktion 155, die Lernmodus-Ausführungsfunktion 156, die Ablaufmodus-Ausführungsfunktion 157, der Bearbeitungsteil 160, der Ersatzdatenmanager 180, der Programmstatusmanager 185, der Knotenmanager 190, der Auto-Scroll-Manager 195 und ein Kopier- und Einfügemanager 169 können in einer Ausführungsform alle als Teil eines allgemeinen Maschinensteuerungsblocks MC betrachtet werden, welcher mit der Steuerung 125 verbunden ist. Die Werkstückprogramm-Erzeugungs- und -Ausführungsfunktion 150 ist für das Erstellen und Ausführen von Teileprogrammen zuständig. Man wird erkennen, dass die Begriffe „Werkstückprogramm“ und „Teileprogramm“ hierin austauschbar verwendet sein können. Auf der Grundlage der Operationen der Werkstückprogramm-Erzeugungs- und -Ausführungsfunktion 150 benutzt ein Benutzer das Inspektionssystem mit maschineller Bilderkennung 100, um entweder durch explizites Codieren der Anweisungen automatisch, halbautomatisch oder manuell unter Verwendung einer Werkstückprogrammiersprache und/oder durch Erzeugen der Anweisungen durch Bedienen des Inspektionssystems mit maschineller Bilderkennung 100 in einem Lernmodus (wie z.B. durch die Lernmodus-Ausführungsfunktion 156 gesteuert), ein Teileprogramm für das Werkstück 20 zu erstellen, um eine gewünschte Bilderfassungs-Trainingssequenz bereitzustellen. Zum Beispiel kann eine Trainingssequenz das Positionieren eines Werkstückmerkmals im Sichtfeld (FOV), das Einstellen von Helligkeiten, das Fokussieren oder Autofokussieren, das Erfassen eines Bilds und das Bereitstellen einer (z.B. unter Verwendung von Videowerkzeugen) auf das Bild angewendeten Inspektions-Trainingssequenz umfassen. Der Lernmodus arbeitet so, dass die „gelernte(n)“ Operationsabfolge(n) aufgezeichnet und in entsprechende Teileprogrammschritte (d.h. Anweisungen) umgewandelt werden. Diese Teileprogrammschritte veranlassen das Inspektionssystem mit maschineller Bilderkennung 100 bei Ausführung des Teileprogramms in einem Ablaufmodus (z.B. wie durch die Ablaufmodus-Ausführungsfunktion 157 gesteuert), die trainierten Bilderfassungs- und Inspektionsoperationen zu reproduzieren, um ein Werkstück oder Werkstücke, welches/welche mit dem beim Erstellen des Teileprogramms verwendeten Werkstück übereinstimmt/übereinstimmen, automatisch zu überprüfen.
  • Die Aufzeichnungs-/Umsetzungsfunktion 155 wird zum Umsetzen von Maschinenoperationen in Teileprogrammcode verwendet. Anders ausgedrückt, wenn ein Benutzer eine Maßnahme durchführt (wie z.B. das manuelle Abändern eines Videowerkzeugs, welches zum Vermessen eines Merkmals an einem Werkstück verwendet wird), wird eine grundlegende Anweisung erzeugt, welche in eine maschinenlesbare Sprache umgesetzt wird, um ein Teileprogramm zu bilden, und kann auch eine Rückumsetzung durchgeführt werden. Wie unten noch ausführlicher beschrieben wird, werden in verschiedenen Ausführungsformen der vorliegenden Erfindung bearbeitbare Anweisungsdarstellungen an einem Bearbeitungs-GUI angezeigt und zeigen die Anweisungsdarstellungen auf maschinenlesbare Codeanweisungen, welche zum Beispiel in einer Markup-Sprache geschrieben sind. Die Aufzeichnungs-/Umsetzungsfunktion 155 kann eine Umsetzung zwischen den bearbeitbaren Anweisungsdarstellungen und ihren entsprechenden Codeanweisungen durchführen. Der Bearbeitungsteil 160 stellt verschiedene mit dem Bearbeiten eines Teileprogramms zusammenhängende Operationen und Benutzerschnittstellen-Merkmale bereit oder aktiviert diese, wie unten anhand von 2B noch ausführlicher beschrieben wird.
  • In einigen Ausführungsformen stellt der Ersatzdatenmanager 180 eine Verbindung zu Ersatzdaten her, welche in einem Teileprogramm aufgezeichnet sein können. In bestimmten Implementierungen ist der Ersatzdatenmanager 180 dafür zuständig, die Ersatzdaten aus einem Ausgang zu beschaffen, wo sie normalerweise erzeugt würden, und die in das Teileprogramm zu schreibenden Ersatzdaten bereitzustellen. Ein Punkt im Teileprogramm, an welchem die Ersatzdaten zur Verfügung gestellt werden können, kann dann die Ersatzdaten verwenden, um einen richtigen Betriebskontext zum Zweck des Bearbeitens an diesem Punkt herzustellen, statt im Gegensatz dazu das Teileprogramm bis zu diesem Punkt tatsächlich ablaufenlassen zu müssen, um zum Zweck des Bereitstellens eines richtigen Betriebskontexts Istdaten zu sammeln. Der Programmstatusmanager 185 verwaltet in einer Ausführungsform, ob Programme geschützt oder ungeschützt sind. In einer beispielhaften Ausführungsform sind geschützte Programme Programme, für welche der Bearbeitungsprozess abgeschlossen wurde, wie sie in einer Fabrik in einem Ablaufmodus verwendet werden können. In einer Implementierung kann ein ungeschütztes Teileprogramm gespeicherte Ersatzdaten zur Verwendung beim Erzeugen des richtigen Betriebskontexts für Bearbeitungszwecke enthalten. Der Programmstatusmanager 185 ist außerdem dafür zuständig, sicherzustellen, dass, wenn ein Teileprogramm ungeschützt ist, die Ersatzdaten im Teileprogramm aufgezeichnet bleiben und, wenn das Teileprogramm durch den Bearbeitungsteil 160 wiederaufgerufen wird, die Ersatzdaten als verfügbar angegeben werden.
  • In einer Ausführungsform ist der Knotenmanager 190 dafür zuständig, Knotennummern, welche Knoten in einem Teileprogramm zugewiesen werden, zu verwalten. In einer Implementierung wird innerhalb einer Darstellung eines Teileprogramms jeder der Anweisungsdarstellungen eine Knotennummer zugewiesen. In bestimmten Implementierungen kann eine organisatorische Baumstruktur verwendet werden, welche übergeordnete Knoten und untergeordnete Knoten enthält. In bestimmten Implementierungen wird jeder Zeile einer Teileprogramm-Darstellung, welche durch die Aufzeichnungs-/Umsetzungsfunktion 155 erzeugt wird, durch den Knotenmanager 190 eine Knotennummer zugewiesen. Der Auto-Scroll-Manager 195 verwendet die durch den Knotenmanager 190 zugewiesenen Knotennummern, um zusammenhängende Elemente verknüpfter Teileprogramm-Elemente und entsprechende Bearbeitungsfunktionen in verschiedenen Fenstern gleichzeitig anzuzeigen. Zum Beispiel um einem Benutzer zu gestatten, zu sehen, welche Messungen eines Werkstücks mit welchen Anweisungsdarstellungen und/oder codierten Anweisungen in einem Teileprogramm zusammenhängen, kann der Auto-Scroll-Manager 195 in den jeweiligen Fenstern automatisch zu den jeweiligen Zeilen in der Teileprogramm-Darstellung und/oder codierten Anweisungen, welche der jeweiligen Knotennummer entsprechen, scrollen.
  • Der Kopier- und Einfügemanager 169 ist für das Erstellen/Erzeugen von Kopier- und Einfüge-Programmierelement-Anweisungen und dergleichen zuständig, welche der Beschreibung im obigen mit „KURZBESCHREIBUNG VON KOPIER-UND-EINFÜGEOPERATIONEN, -MERKMALEN UND -IMPLEMENTIERUNGEN“ betitelten Abschnitt entsprechen können und welche verwendet werden können, um einen Teil eines Werkstückprogramms zu bearbeiten/bilden. Der Kopier- und Einfügemanager 169 kann außerdem eine bearbeitbare Darstellung der kopierten und eingefügten Elemente im Bearbeitungsschnittstellenteil des GUI bereitstellen. Zu diesem Zweck kann der Kopier- und Einfügemanager 169 auf jede/jedes der durch die Werkstückprogramm-Erzeugungs- und -Ausführungsfunktion 150, die Aufzeichnungs-/Umsetzungsfunktion 155, den Bearbeitungsteil 160, den Ersatzdatenmanager 180, den Programmstatusmanager 185 und den Auto-Scroll-Manager 195 bereitgestellten Funktionen, Operationen und Benutzerschnittstellen-Merkmale zugreifen und diese verwenden. Alternative Konfigurationen sind für den Kopier- und Einfügemanager 169 möglich. Zum Beispiel können in einigen Ausführungsformen der Kopier- und Einfügemanager 169 und eine/einer oder mehrere der Werkstückprogramm-Erzeugungs- und -Ausführungsfunktion 150, der Aufzeichnungs-/Umsetzungsfunktion 155, des Bearbeitungsteils 160, des Ersatzdatenmanagers 180, des Programmstatusmanagers 185 und des Auto-Scroll-Managers 195 vereinigt und/oder nicht voneinander unterscheidbar sein. Gewöhnlich kann die Erfindung in irgendeiner jetzt bekannten oder später entwickelten Form realisiert werden, welche in Verbindung mit dem Inspektionssystem mit maschineller Bilderkennung 100 so betreibbar ist, dass sie die Benutzerschnittstellen-Merkmale und damit zusammenhängende Programmier- und sonstige Operationen wie hierin offenbart bereitstellt.
  • 2B veranschaulicht weitere Komponenten des Bearbeitungsteils 160 in 2A. Wie in 2B gezeigt, enthält der Bearbeitungsteil 160 eine Bearbeitungsoperationen-Steuerung 174, einen Bearbeitungs-Benutzerschnittstellenteil 176, einen Teil „Editorbefehle“ 177 und einen Bearbeitungs-Ausführungsteil 178. Die Bearbeitungsoperationen-Steuerung 174 steuert die Operationen für die Bearbeitungsfunktionen, und der Bearbeitungs-Benutzerschnittstellenteil 176 stellt die Benutzerschnittstellen-Merkmale für die Bearbeitungsfunktionen bereit. Der Bearbeitungs-Benutzerschnittstellenteil 176 enthält ein Programmanweisungsdarstellungs-Fenster 176pi, welches Darstellungs-Benutzerschnittstellen-Merkmale 176r enthält, welche Knoten-Benutzerschnittstellen-Merkmale 176n enthalten. Das Programmanweisungsdarstellungs-Fenster 176pi stellt eine Teileprogramm-Darstellung bereit, welche eine bearbeitbare Darstellung von Teileprogramm-Anweisungen, welche die Quelle kopierter Anweisungen enthält, und durch den Kopier- und Einfügemanager 169 erzeugte eingefügte Anweisungen enthält wie im obigen mit „KURZBESCHREIBUNG VON KOPIER-UND-EINFÜGEOPERATIONEN, -MERKMALEN UND -IMPLEMENTIERUNGEN“ betitelten Abschnitt beschrieben und in den 3A bis 19 veranschaulicht. In einer Ausführungsform kann die graphische Darstellung durch den Kopier- und Einfügemanager 169 erzeugter Anweisungen in einer Baumstruktur bereitgestellt sein, welche übergeordnete Knoten enthält, die jeweils einen oder mehrere untergeordnete Knoten enthalten. Die Darstellungs-Benutzerschnittstellen-Merkmale 176r enthalten Merkmale wie verschiedene Aufklappmenüs für einen Benutzer, um aus mehreren Bearbeitungsoptionen auszuwählen, und eine Werkzeugleiste, enthaltend verschiedene Videowerkzeuge, welche ein Benutzer auswählen und öffnen kann, um verschiedene Anweisungen, enthaltend durch den Kopier- und Einfügemanager 169 erzeugte Anweisungen, zu erstellen und zu bearbeiten, oder dergleichen. Die Knoten-Benutzerschnittstellen-Merkmale 176N können in einer Ausführungsform Merkmale wie Symbole und farbliche Hervorhebungen zum Anzeigen, ob ein einer bestimmten Anweisung oder einem bestimmten Block von Anweisungen entsprechender Knoten gerade bearbeitet wird oder bearbeitet wurde usw., enthalten, wie z.B. in der '232-Anmeldung und der '061-Anmeldung und den 3A-19 offenbart.
  • In verschiedenen Ausführungsformen ist der Bearbeitungs-Ausführungsteil 178 für verschiedene Bearbeitungs-Ausführungsmodi während eines Bearbeitungsprozesses im Lernmodus einschließlich eines Bearbeitungsmodus der Ausführung, welcher von einem Ablaufmodus der Ausführung im Ablaufmodus verschieden ist, zuständig. Gewöhnlich führt der Ablaufmodus der Ausführung ein Teileprogramm von Anfang an aus, um aus dem Abbilden eines Werkstücks gewonnene Istdaten zu erfassen und zu verarbeiten (z.B. zu überprüfen und zu analysieren). Andererseits ist der Bearbeitungsmodus der Ausführung in verschiedenen Ausführungsformen so betreibbar, dass er mindestens einige der Istdaten durch vorher aufgezeichnete „Ersatzdaten“ ersetzt, damit die Ausführung unter Verwendung der Ersatzdaten an jedem gewünschten Punkt im Teileprogramm beginnen kann, statt im Gegensatz dazu am Anfang des Teileprogramms beginnen zu müssen, um Istdaten zu erfassen. Das heißt, der Bearbeitungsmodus der Ausführung ist in verschiedenen Ausführungsformen fähig, den zum Bearbeiten eines Teils eines Teileprogramms benötigten richtigen Betriebskontext effizient zu erzeugen. Es ist zu beachten, dass das Bearbeiten eines Teileprogramms für ein Inspektionssystem mit maschineller Bilderkennung eine komplexere Aufgabe ist als das Bearbeiten eines Programms für eine Werkzeugmaschine oder einen Montageroboter oder dergleichen. Zum Beispiel enthalten Teileprogramme für Inspektionssysteme mit maschineller Bilderkennung spätere (anschließende) Teile, welche Operationen steuern und/oder bildabhängige Messergebnisse liefern, welche mindestens teilweise von den durch die Ausführung eines vorausgehenden Teils des Programms erzielten/gewonnenen Ergebnissen und/oder von der besonderen Ausprägung eines Werkstücks, welches abgebildet wird, um analysiert zu werden, abhängen. Außerdem ist zu beachten, dass das Bilderkennungssystem typischerweise aus verschiedenen mechanischen, elektrischen und optischen Elementen besteht, welche sich auf eine komplexe Weise gegenseitig beeinflussen, um Abbildungs-/Analyseoperationen auszuführen. Somit muss das Bearbeiten eines Teils eines „Step-and-repeat“-Anweisungen enthaltenden Teileprogramms im auf einem realistischen Satz von Bedingungen beruhenden, richtigen Betriebskontext, d.h. bei (auf der Grundlage realistischer Daten) richtiger Einstellung verschiedener Hardware- und Softwareelemente und Parameter des Bilderkennungssystems für diesen zu bearbeitenden Teil, erfolgen. Eine Standardpraxis zum Erreichen des richtigen Betriebskontexts zum Bearbeiten eines Teileprogramms ist, ein Bilderkennungssystem tatsächlich alle Anweisungen in einem Teileprogramm vom Anfang bis zu einem Teil der zu bearbeitenden Anweisungen und/oder einschließlich dieses Teils ausführen zu lassen, was zeitraubend und kostspielig ist und bei einem großen Teileprogramm auch unpraktisch sein kann. Eine Lösung, die eine Bilderkennungssystem-Bearbeitungsumgebung bereitstellt, welche fähig ist, den richtigen Betriebskontext für einen bestimmten Knoten eines zu bearbeitenden Teileprogramms auf der Grundlage der Verwendung von „Ersatzdaten“ zu erzeugen, ist in der '232-Anmeldung und der '061-Anmeldung offenbart.
  • In einigen Ausführungsformen enthält der Bearbeitungs-Ausführungsteil 178 einen Ersatzmodus-Teil 180, einen Istmodus-Teil 191 und einen Bearbeitungs-Ausführungsbenutzerschnittstellen-Merkmale-Teil 192. Der Ersatzmodus-Teil 180 enthält eine Knotenanalysefunktion 181, welche Ersatzdatenoperationen 181a und Maschinenoperationen 181b enthält. Wenn der Ersatzmodus-Teil 180 einen Ersatz-Ausführungsmodus betreibt, werden zum Erzeugen des Betriebskontexts für die fortlaufenden Bearbeitungsoperationen Ersatzdaten verwendet. Die Knotenanalysefunktion 181 in einer Implementierung ermittelt, ob die Teileprogramm-Ausführung einen Zielknoten erreicht hat (z.B. wo eine Änderung im Teileprogramm vorzunehmen ist). Die Knotenanalysefunktion 181 ermittelt gemäß der Art des beteiligten Knotens, ob die Ersatzdatenoperationen 181A oder die tatsächlichen Maschinenoperationen 181B durchgeführt werden. Im allgemeinen werden nach Erreichen des Zielknotens tatsächliche Maschinenoperationen durchgeführt, wohingegen für Teileprogramm-Anweisungen vor dem Zielknoten Ersatzdatenoperationen verwendet werden können, um mindestens einen Teil des Betriebskontexts, welcher für die fortlaufenden Bearbeitungsoperationen benötigt wird, zu erzeugen. Wenn Ersatzdaten fehlen, kann ein Benutzer aufgefordert werden, tatsächliche Maschinenoperationen zu gestatten/durchzuführen, um den benötigten Betriebskontext zu erzeugen. In einer Implementierung wird jeder Knoten analysiert, um zu ermitteln, ob Ersatzdaten-Operationen anwendbar sind, einschließlich ob Ersatzdaten vorliegen, wenn es sich um die richtige Art von Knoten für Ersatzdaten-Operationen handelt, oder ob tatsächliche Maschinenoperationen verwendet werden müssen usw. Zum Beispiel können einige Knoten in einem Teileprogramm tatsächliche Maschinenoperationen wie das tatsächliche Verschieben des Werkstückstischs, des Abbildungsteils usw. erfordern, um Istdaten zu erfassen, welche nicht durch Ersatzdaten ersetzt werden können.
  • Der Istmodus-Teil 191 enthält Operationen, welche durch frühere maschinelle Bilderkennungssysteme herkömmlicher durchgeführt werden. Man wird erkennen, dass der Istmodus-Teil 191, wenn angebracht, auch durch den Ersatzmodus-Teil 180 aufgerufen werden kann, um die Maschinenoperationen 181b durchzuführen. Der Istmodus-Teil 191 enthält Maschinenoperationen 191a und Datenoperationen 191b. Die Maschinenoperationen 191a führen tatsächliche Maschinenoperationen durch (z.B. Verschieben des Tischs als Teil einer Videowerkzeug-Operation), während die Datenoperationen 191b gewöhnlich Daten ausgeben. Die Bearbeitungs-Ausführungsbenutzerschnittstellen-Merkmale 192 stellen Benutzerschnittstellen-Merkmale für die Ausführung der Bearbeitungsfunktionen bereit (z.B. Angaben zum Status verschiedener Ausführungsoperationen wie Farbcodes, die angeben, welche Teile eines Teileprogramms Ersatzdaten verwendet haben oder eine Istausführung durchlaufen haben usw.). In verschiedenen Ausführungsformen können solche Merkmale wie in der '232-Anmeldung und der '061-Anmeldung offenbart implementiert sein.
  • Die Editorbefehle 177 enthalten einen Teil „Segment ablaufenlassen“ 177a, einen Teil „Ändern“ 177b, einen Teil „Einfügen/Anhängen“ 177c, einen Befehl „Kopieren“ 177d und einen Befehl „Einfügen“ 177e. Die Kopier- und Einfügebefehle können jeweilige Operationen des Kopier- und Einfügemanagers 169 und/oder verschiedene Kopier- und Einfügeoperationen und -Verfahren aktivieren wie im obigen mit „KURZBESCHREIBUNG VON KOPIER-UND-EINFÜGEOPERATIONEN, -MERKMALEN UND -IMPLEMENTIERUNGEN“ betitelten Abschnitt in groben Zügen dargestellt. Wie oben erörtert, kann der Kopier- und Einfügemanager 169 in verschiedenen Ausführungsformen auf jede/jedes der durch den die Bearbeitungsoperationen-Steuerung 174, den Bearbeitungs-Benutzerschnittstellenteil 176, den Bearbeitungs-Ausführungsteil 178 und die Editorbefehle 177 enthaltenden Bearbeitungsteil 160 bereitgestellten Funktionen und Merkmale zugreifen und diese verwenden.
  • Im Allgemeinen führt der Teil „Segment ablaufenlassen“ 177a einen tatsächlichen Ablauf eines ausgewählten Segments des Teileprogramms durch. Man wird erkennen, dass, um ein ausgewähltes Segment eines Teileprogramms ablaufenzulassen, der richtige Betriebskontext bis zu dem ausgewählten Segment hergestellt sein muss. Der richtige Betriebskontext kann durch Verwenden von Ersatzdaten hergestellt werden.
  • Der Teil „Ändern“ 177b hat bestimmte Ähnlichkeiten mit dem Betrieb des Teils „Segment ablaufenlassen“ 177a. Im allgemeinen kann, wenn eine Anweisungsdarstellung in einem Teileprogramm zur Änderung (Bearbeitung) ausgewählt wird, der Ersatzmodus für die Teile des Teileprogramms verwendet werden, welche der zu ändernden Anweisung vorangehen, um den richtigen Betriebskontext für die Bearbeitungszwecke zu erzeugen. In einer Ausführungsform wird der Knoten für die Anweisungsdarstellung, wenn der Änderungsbefehl für eine Anweisungsdarstellung in einem Teileprogramm ausgewählt wird, als ein Zielknoten bezeichnet. Nach Erreichen des Zielknoten wechselt der Editor vom Ersatzmodus in den Istausführungsmodus (z.B. wie durch den Istmodus-Teil 191 gesteuert) und führt er die erste relevante Teileprogramm-Anweisung des Zielknotens aus.
  • Die 3A und 3B sind Abbildungen von Benutzerschnittstellen-Bildschirmen, welche eine Abbildung einer Bearbeitungsschnittstelle 301 enthalten, welche eine Darstellung eines Teileprogramms enthält, welches eine Vielzahl von anfänglichen Teileprogramm-Anweisungsdarstellungen aufweist, welche an der Anzeigevorrichtung 136 (z.B. der Anzeige 16 in 1) angezeigt werden können. Die Bearbeitungsschnittstelle gestattet einem Benutzer die Erzeugung und Bearbeitung eines „Step-and-repeat“-Anweisungen enthaltenden Teileprogramms für ein Inspektionssystem mit maschineller Bilderkennung. Die Bearbeitungsschnittstelle enthält außerdem verschiedene Messungs- und/oder Operations-Auswahlleisten wie die Auswahlleisten oben und an den Seiten. 3B zeigt eine auch an der Anzeigevorrichtung 136 angezeigte Bildschnittstelle, welche ein Sichtfeld-Fenster 302 enthält, welches ein (Video-) Bild eines Werkstücks anzeigt, an welchem das Teileprogramm in 3A (in der Bearbeitungsschnittstelle 301) ausgeführt werden kann. Das maschinelle Bilderkennungssystem führt in einigen Implementierungen ein Teileprogramm an mehreren diskreten Werkstücken und in anderen Implementierungen an mehreren Werkstückmerkmalen an einem einzigen Werkstück wie mehreren durch eine Oberfläche gebildeten Löchern aus. Somit können die Begriffe „Werkstück“ und „Werkstückmerkmal“ hierin, in bestimmten Kontexten, austauschbar verwendet sein. Die Bildschnittstelle enthält verschiedene Messungs- und/oder Operations-Auswahlleisten wie die Auswahlleisten 303A, 303B und ein Echtzeit-X-Y-Z- (Positions-) Koordinaten-Fenster 304, welches die X-Y-Z-Position eines Werkstücks, das gerade auf dem Werkstücktisch abgebildet/analysiert wird, im jeweiligen Koordinatensystem angibt. Das Koordinatensystem stellt eine Referenz für Messungen bereit und ist typischerweise ein Werkstück Koordinatensystem (welches z.B. eine Ecke eines rechteckigen Werkstücks als Ursprung hat) oder ein durch die linearen Skalen des Werkstückstischs definiertes Maschinenkoordinatensystem. Die Bildschnittstelle enthält außerdem noch ein Lichtsteuerungsfenster 305.
  • Die Teileprogramm-Darstellung ist dafür eingerichtet, Merkmale eines gewöhnlich kreisrunden Werkstückmerkmals 415 wie eines durch eine Oberfläche gebildeten Lochs zu ermitteln. In einer Ausführungsform ist jede der Teileprogramm-Anweisungsdarstellungen mit einem Knoten verknüpft und wird jeder eine Knotennummer zugewiesen (z.B. wie in der '232-Anmeldung und der ‚061-Anmeldung offenbart). In bestimmten Implementierungen wird eine Baumstruktur verwendet, wobei einige der Anweisungsdarstellungen mit übergeordneten Knoten verknüpft sind und einige mit untergeordneten Knoten verknüpft sind. Zum Beispiel sind die Anweisungsdarstellungen untergeordneter Knoten jeweils mit ihren Anweisungsdarstellungen übergeordneter Knoten der 3A bis 19 verknüpft. Wie hierin verwendet, kann jede der Programmanweisungsdarstellungen wie an der Bearbeitungsschnittstelle 301 (3A) angezeigt austauschbar als ein „Knoten“ bezeichnet werden. Man wird auch erkennen, dass in einer Ausführungsform die Anweisungsdarstellungen wie an der Bearbeitungsschnittstelle angezeigt von den in Markup-Sprache geschriebenen Anweisungen (Codeanweisungen) des Teileprogramms abgeleitete Symbole und Etiketten enthalten. In einigen Ausführungsformen kann die Markup-Sprache des Teileprogramms XML-ähnlichen Code wie einen Code in einer anwenderspezifischen Markup-Sprache enthalten. Die Anweisungsdarstellungen „zeigen auf‟ oder haben somit eine Verknüpfung mit verknüpften Codeanweisungen, welche maschinenausführbar sind.
  • Wie in der Bearbeitungsschnittstelle 301 in 3A gezeigt, stellt ein Knoten „Prologue“ (= Einleitung) einen Prozess dar, welcher erforderlich ist, um ein Teileprogramm im Ablaufmodus ablaufenzulassen, welcher typischerweise beim Eintreten in den Lernmodus erzeugt wird. Der Knoten „Prologue“ ist ein übergeordneter Knoten, welcher untergeordnete Knoten enthalten kann: z.B. einen Knoten „Set Lights“ (= Beleuchtung einstellen) und einen Knoten „Move Stage“ (= Tisch verschieben). Der Knoten „Set Lights“ legt fest, welche Art von Beleuchtung mit welcher Helligkeit verwendet wird, was ein Benutzer mittels der im Lichtsteuerungsfenster 305 enthaltenen Schieberegler leicht einstellen und anpassen kann. Der Knoten „Move Stage“ legt die Position des Tischs fest, welcher das Werkstück hält, wie manuell durch den Benutzer gemäß verschiedenen Implementierungen eingestellt. In 1 arbeiten die anschließenden Anweisungen/Darstellungen („Measure Circle Circle-1“ (= Messkreis Kreis-1), „Align Origin to Circle-1“ (= Ursprung auf Kreis-1 ausrichten), „Measure Circle Circle-2“ (= Messkreis Kreis-2) und „Align X axis to Circle-2“ (= X-Achse auf Kreis-2 ausrichten)), um das Werkstückkoordinatensystem durch Ausrichten des Koordinatensystems auf die vermessenen Merkmale des kreisrunden Merkmals 415 in 3B einzustellen. Die Operationen der Anweisungsdarstellungen stellen deshalb die richtige Lage und Ausrichtung des Werkstücks im jeweiligen Koordinatensystem her, um weitere Messungen durchzuführen. 3A zeigt außerdem einen Anweisungszeiger 332. In verschiedenen Ausführungsformen kann der Anweisungszeiger 332 je nach einem seinem Ort in der angezeigten Teileprogramm-Darstellung entsprechenden Bearbeitungskontext-Status die Farbe wechseln. Das heißt, die Farbe des Anweisungszeigers kann angeben, ob ein gültiger oder zweifelhafter (oder ungültiger) Bearbeitungskontext (z.B. eine gültige und vollständige Ausführung oder Simulation des Teileprogramm-Betriebs) alle erwarteten Daten und Betriebszustände bis zu der Stelle im Teileprogramm hergestellt hat. Wie weiter unten beschrieben, kann es in verschiedenen Ausführungsformen bezüglich neu eingefügter Elemente wie hierin offenbart vorteilhaft sein, wenn der Bearbeitungskontext-Statusanzeiger konservativ automatisch anzeigt, dass neu eingefügte Elemente (z.B. ein geänderter ausgewählter Anweisungsdarstellungs-Kopiersatz) einem Bearbeitungskontext-Status ähnlich demjenigen neu erstellter oder eingefügter neuer Anweisungen entsprechen, ungeachtet dessen, dass sie aus einer Kopierstelle kopiert wurden, wo der ursprüngliche Kopiersatz einem gültigen Bearbeitungskontext-Status entsprach. In manchen Fällen kann der Anweisungszeiger als Einfügemarke bezeichnet sein. Jedoch werden in verschiedenen Ausführungsformen Einfügungen und Kopier- und Einfügestellen und dergleichen bezüglich ausgewählter und/oder hervorgehobener Anweisungsdarstellungen, welche sich nicht an derselben Stelle wie der Anweisungszeiger zu befinden brauchen, ermittelt.
  • Wie in 4 gezeigt, kann ein Benutzer gemäß Ausführungsformen der vorliegenden Erfindung „Step-and-repeat“-Anweisungen unter Verwendung verschiedener GUI-Merkmale festlegen. Speziell wenn ein Benutzer ein Auswahlelement (z.B. einen Cursor) über eine Option „Program“ (= Programm) 306 bewegt, kann ein Aufklappmenü 307 erscheinen, welches eine Option „Step and Repeat“ 308 enthält. Die Auswahl der Option „Step and Repeat“ durch den Benutzer öffnet ein weiteres Aufklappmenü, welches eine Option „Array“ (= Matrix) enthält. Der Benutzer kann die Option „Array“ auswählen, um das Festlegen der Anweisungen eines „Step-and-repeat“ - Programmierelements zu beginnen, wie z.B. in US-Patent Nr. 8,271,895 , welches hiermit in seiner Gesamtheit durch Verweis hierin einbezogen wird, offenbart.
  • Wie in 5 gezeigt, kann in der veranschaulichten Ausführungsform bei Auswahl der Option „Array“ durch den Benutzer wie oben beschrieben ein Fenster „Array Step and Repeat“ (= Matrix Step-and-repeat) 310 am Anzeigebildschirm erscheinen, um den Benutzer aufzufordern, die Gesamtanordnung und den Aufbau einer Matrix festzulegen. In einigen Ausführungsformen kann der Benutzer den Namen der Matrix in ein Namensfeld eingeben, in welches der Benutzer im gezeigten Beispiel „MyLoop“ eingegeben hat. Der Benutzer legt ferner die Anzahl entlang einer Achse (z.B. der X-Achse) durchzuführender Wiederholungen in einem ersten Feld „Repeats“ (= Wiederholungen) fest und legt den Intervallabstand zwischen den Wiederholungen entlang derselben Achse in einem Feld „DX“ fest. Entsprechend legt der Benutzer die Anzahl entlang einer weiteren Achse (z.B. der Y-Achse) durchzuführender Wiederholungen in einem zweiten Feld „Repeats“ fest und legt er den Intervallabstand zwischen den Wiederholungen entlang dieser Achse in einem Feld „DY“ fest. Im gezeigten Beispiel hat der Benutzer festgelegt, dass ein grundlegender Satz von „Step-and-repeat“-Anweisungen 4-mal entlang der X-Achse mit dem Intervall 1,5875 wiederholt werden soll und 4-mal entlang der Y-Achse mit dem Intervall 1,5875 wiederholt werden soll, wie durch Symbole, welche jeweils mit [X,Y] nummeriert sind, graphisch dargestellt. Wenn der Benutzer das Festlegen der Stellen der Matrix beendet hat, wählt der Benutzer eine Schaltfläche „OK“ aus, um die festgelegten Stellen zu sichern.
  • 6 zeigt die die mit den zuvor in groben Zügen dargestellten „Array Step and Repeat Loop“- (= Matrix Step-and-repeat-Schleife) Operationen verknüpfte Teileprogramm-Anweisungsdarstellung enthaltende Bearbeitungsschnittstelle 301. Die Teileprogramm-Anweisungsdarstellung enthält nun einen Knoten „Array Step and Repeat Loop“ 311, welcher einen untergeordneten Knoten „End of Loop“ (= Ende der Schleife) 312 enthält.
  • 7A zeigt die Bearbeitungsschnittstelle 301, enthaltend die mit einer Ausführungsform eines Befehls „KOPIEREN“ 314 verknüpfte Teileprogramm-Anweisungsdarstellung, welche Operationen wie im obigen mit „KURZBESCHREIBUNG VON KOPIER-UND-EINFÜGEOPERATIONEN, -MERKMALEN UND -IMPLEMENTIERUNGEN“ betitelten Abschnitt in groben Zügen dargestellt durchführt. Zum Beispiel kann der Befehl „KOPIEREN“ 314 in Verbindung mit den folgenden nicht beschränkenden Beispielen von Operationen verwendet werden:
    • o Auswählen mindestens einer ersten Anweisungsdarstellung an einer Kopierstelle in der angezeigten Teileprogramm-Darstellung, um einen mit einem zugrundeliegenden ausgewählten Anweisungs-Kopiersatz verknüpften ausgewählten Anweisungsdarstellungs-Kopiersatz festzulegen;
    • o Bedienen des GUI, um Kopieroperationen einzuleiten, welche eine Kopie mindestens eines des ausgewählten Anweisungsdarstellungs-Kopiersatzes und des zugrundeliegenden ausgewählten Anweisungs-Kopiersatzes erstellen (z.B. durch Aktivieren eines auf den ausgewählten Anweisungsdarstellungs-Kopiersatz gerichteten Kopierbefehls-Widgets 314); und
    • o automatisches Durchführen von Kopieroperationen, um einen auf mindestens einen des ausgewählten Anweisungsdarstellungs-Kopiersatzes und des ausgewählten Anweisungs-Kopiersatzes gerichteten ersten Teilsatz der Kopiersatzänderungs-Operationen durchzuführen (z.B. kann der erste Teilsatz der Kopiersatzänderungs-Operationen auf Elemente gerichtet sein, welche typisch für den Betriebskontext an der Kopierstelle sind, welche zum Beispiel das Entfernen verknüpfter Ersatzdaten und/oder ihrer Verknüpfung mit dem Kopiersatz (den Kopiersätzen) und/oder das Bereitstellen einer neuen oder abgeänderten eindeutigen Knotenkennung, eines neuen oder abgeänderten Merkmalsnamens, Toleranznamens, Teilekoordinatensystem-Namens, Messpunktpuffer-Namens, angezeigten Variablen namens oder dergleichen umfassen können). Der teilweise geänderte Kopiersatz kann bzw. die teilweise geänderten Kopiersätze können in einer Zwischenablage gespeichert werden.
  • Im gezeigten Beispiel hat der Benutzer die Darstellung „Measure Circle Circle-2“ ausgewählt.
  • 7B zeigt den Schnittstellenstatus für ein Fenster oder einen Fensterbereich, welches/welcher mit 7A synchronisierte „Messergebnisse“ 316 enthält, wobei die dem ausgewählten (kopierten) „Measure Circle Circle-2“ entsprechenden Messergebnisse 318 hervorgehoben sind, wie in der '061-Anmeldung offenbart. In einer Ausführungsform kann der Benutzer, wenn im Bearbeitungsschnittstellenteil des GUI eine Darstellung angezeigt wird, diese Darstellung auswählen (z.B. indem er in der Bearbeitungsschnittstelle einen Cursor darüber bewegt) und/oder auf die ausgewählte Darstellung rechtsklicken, woraufhin ein verschiedene auf die ausgewählte Darstellung gerichtete Optionen/Auswahlen wie eine Befehlsoption „KOPIEREN“ 314, welche eine Ausführungsform eines verschiedene Operationen enthaltenden Kopierbefehls wie hierin offenbart ist, enthaltendes Menüfenster 315 erscheinen kann. Wenn der Benutzer die Befehlsoption „Kopieren“ 314 auswählt und/oder ausführt, führt der Kopier- und Einfügemanager 169 im Steuerungssystem-Teil 120 (siehe 2A) Operationen dieses Befehls aus wie im obigen mit „KURZBESCHREIBUNG VON KOPIER-UND-EINFÜGEOPERATIONEN, -MERKMALEN UND -IMPLEMENTIERUNGEN“ betitelten Abschnitt in groben Zügen dargestellt. In verschiedenen Ausführungsformen führt der Kopier- und Einfügemanager 169 auch Operationen dieses Befehls aus, welche automatisch eine Elementlöschung und/oder -änderung durchführen wie im mit „KURZBESCHREIBUNG VON KOPIER-UND-EINFÜGEOPERATIONEN, -MERKMALEN UND -IMPLEMENTIERUNGEN“ betitelten Abschnitt groben Zügen dargestellt, um Elemente zu entfernen, welche typisch für den Betriebskontext an der Stelle der ausgewählten und kopierten Darstellungen sind. In verschiedenen Ausführungsformen führt der Kopier- und Einfügemanager 169 Operationen dieses Befehls aus, welche eine Ersatzdaten-Kopie von Anweisungen entfernen, welche den ausgewählten und kopierten Darstellungen zugrundeliegen und welche, zum Einfügen zu einem späteren Zeitpunkt, in einer Zwischenablage abgelegt werden. In verschiedenen Ausführungsformen erweitert der Befehl „KOPIEREN“ 314 einen komprimierten übergeordneten Knoten in einer kopierten Darstellung automatisch, um seine untergeordneten Knoten anzuzeigen, wie in 8 gezeigt, wo alle 3 der untergeordneten Knoten des ausgewählten Knotens „Measure Circle Circle-2“ angezeigt werden wie in 320 angegeben. 8 zeigt außerdem die Hervorhebung der kopierten und erweiterten Knoten.
  • 9 zeigt die Bearbeitungsschnittstelle 301, enthaltend die mit einer Ausführungsform eines Befehls „EINFÜGEN“ 322 verknüpfte Teileprogramm-Anweisungsdarstellung, welche Operationen wie im obigen mit „KURZBESCHREIBUNG VON KOPIER-UND-EINFÜGEOPERATIONEN, -MERKMALEN UND -IMPLEMENTIERUNGEN“ betitelten Abschnitt in groben Zügen dargestellt durchführt. Zum Beispiel kann der Befehl „EINFÜGEN“ 322 in Verbindung mit den folgenden nicht beschränkenden Beispielen von Operationen verwendet werden:
    • o Festlegen einer Einfügestelle in der angezeigten Teileprogramm-Darstellung, wo der ausgewählte Anweisungsdarstellungs-Satz eingefügt werden soll, wobei die Einfügestelle mit einer Anweisungs-Einfügestelle im zugrundeliegenden Teileprogramm verknüpft ist;
    • o Bedienen des GUI, um auf mindestens eine der teilweise geänderten Entsprechungen des ausgewählten Anweisungsdarstellungs-Kopiersatzes und des zugrundeliegenden ausgewählten Anweisungs-Kopiersatzes gerichtete Einfügeoperationen einzuleiten (z.B. durch Aktivieren eines auf die Einfügestelle gerichteten Einfügebefehls-Widgets 322);
    • o automatisches Durchführen von Einfügeoperationen, um einen auf die teilweise geänderten Entsprechungen mindestens eines des ausgewählten Anweisungsdarstellungs-Kopiersatzes und des ausgewählten Anweisungs-Kopiersatzes gerichteten zweiten Teilsatz der Kopiersatzänderungs-Operationen durchzuführen. Zum Beispiel kann der zweite Teilsatz der Kopiersatzänderungs-Operationen auf Elemente gerichtet sein, welche typisch für den Betriebskontext an der Einfügestelle sind, wobei er mindestens eine der folgenden Operationen enthält: a) Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungsdarstellungs-Kopiersatzes, welche inkompatibel mit dem Einfügestellen-Betriebskontext sind, b) Hinzufügen von Elementen und Verknüpfungen zum ausgewählten Anweisungsdarstellungs-Kopiersatz, welche für Kompatibilität mit dem Einfügestellen-Betriebskontext erforderlich sind (z.B. kann a oder b einen neuen oder abgeänderten Merkmalsnamen oder dergleichen im richtigen Format bereitstellen und so weiter) und c) Bilden des geänderten ausgewählten Anweisungsdarstellungs-Kopiersatzes auf der Grundlage eines geänderten ausgewählten Anweisungs-Kopiersatzes, gebildet durch Operationen, welche mindestens eine der folgenden enthalten: c1) Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungs-Kopiersatzes, welche inkompatibel mit dem Anweisungseinfügestellen-Betriebskontext sind, und c2) Hinzufügen von Elementen und Verknüpfungen zum ausgewählten Anweisungs-Kopiersatz, welche für Kompatibilität mit dem Anweisungseinfügestellen-Betriebskontext erforderlich sind. Der teilweise geänderte Kopiersatz kann bzw. die teilweise geänderten Kopiersätze können automatisch aus der Zwischenablage und dem zweiten Teilsatz der zum Erstellen eines (vollständig) geänderten ausgewählten Anweisungsdarstellungs-Kopiersatzes und/oder (vollständig) geänderten ausgewählten Anweisungs-Kopiersatzes durchgeführten Kopiersatzänderungs-Operationen abgerufen werden; und
    • o automatisches Durchführen von Einfügeoperationen, welche den geänderten ausgewählten Anweisungsdarstellungs-Kopiersatz an der Einfügestelle in der Teileprogramm-Darstellung einfügen, und/oder Einfügen des geänderten ausgewählten Anweisungsdarstellungs-Kopiersatzes an der Anweisungs-Einfügestelle im zugrundeliegenden Teileprogramm.
  • Im in 9 gezeigten Beispiel hat der Benutzer den Cursor/die Einfügemarke unter (innerhalb) der „Array Step and Repeat Loop“-Darstellung positioniert (im gezeigten Beispiel auf dem Knoten „End of Loop“ 312). In einer Ausführungsform kann der Benutzer dann rechtsklicken, woraufhin ein verschiedene auf die ausgewählte Stelle gerichtete Optionen/Auswahlen wie die Befehlsoption „EINFÜGEN“ 322, welche eine Ausführungsform eines verschiedene Operationen enthaltenden Einfügebefehls wie hierin offenbart ist, enthaltendes Menüfenster 323 erscheinen kann. Wenn der Benutzer die Befehlsoption „Einfügen“ 322 auswählt und/oder ausführt, führt der Kopier- und Einfügemanager 169 im Steuerungssystem-Teil 120 (siehe 2A) Operationen dieses Befehls aus wie im obigen mit „KURZBESCHREIBUNG VON KOPIER-UND-EINFÜGEOPERATIONEN, -MERKMALEN UND -IMPLEMENTIERUNGEN“ betitelten Abschnitt in groben Zügen dargestellt. In verschiedenen Ausführungsformen führt der Kopier- und Einfügemanager 169 auch Operationen dieses Befehls aus, welche automatisch eine Elementergänzung und/oder -änderung durchführen wie im mit „KURZBESCHREIBUNG VON KOPIER-UND-EINFÜGEOPERATIONEN, -MERKMALEN UND -IMPLEMENTIERUNGEN“ betitelten Abschnitt in groben Zügen dargestellt, um Elemente bereitzustellen, welche für den Betriebskontext an der Stelle der eingefügten Darstellungen erforderlich sind. In verschiedenen Ausführungsformen führt der Kopier- und Einfügemanager 169 Operationen dieses Befehls aus, welcher die eingefügte Darstellung automatisch erweitert, um ihre untergeordneten Knoten anzuzeigen, wie in 10 gezeigt, wo der kopierte und eingefügte Knoten „Measure Circle Circle-2“ 320' erweitert ist, um alle 3 seiner untergeordneten Knoten zu zeigen. 10 zeigt außerdem, dass die Kopier- und/oder Einfügeoperationen Operationen enthalten, so dass ein Merkmalsname in der eingefügten Darstellung geändert wurde, um ihn von dem Merkmal in der kopierten Quellendarstellung zu unterscheiden und außerdem die Einfügeelemente kompatibel mit der Einfügestelle zu machen. In dem Beispiel geben die hinzugefügten Klammern [ ,] im Merkmalsnamen „Measure Circle Circle-2_1[ ,]‟ in 320' an/machen sie ihn kompatibel mit seinem Betriebskontext in der „Step-and-repeat“-Schleife, wo er eingefügt wurde, und „_1“ (Unterstrich 1) im Merkmalsnamen unterscheidet ihn von dem kopierten Quellenmerkmal in 320.
  • 11 zeigt, dass der Benutzer sich entschieden hat, eine weitere Einfügeoperation der kopierten Elemente einzuleiten, aber diesmal außerhalb der „Step-and-repeat“-Schleife (z.B. wurde die Darstellung „End Part Program“ (= Ende Teileprogramm) 325 ausgewählt und wird die Einfügeoperation vor diesem ausgewählten Knoten, welcher sich unter der Darstellung „End of Loop“ befindet, erfolgen). Wie zuvor kann der Benutzer in einer Ausführungsform nach der Auswahl des Einfügepunkts rechtsklicken, woraufhin ein verschiedene auf die ausgewählte Stelle gerichtete Optionen/Auswahlen wie die Befehlsoption „EINFÜGEN“ 322 enthaltendes Menüfenster 323 erscheinen kann. Wenn der Benutzer die „Einfügen“-Befehlsoption auswählt und/oder ausführt, führt der Kopier- und Einfügemanager 169 im Steuerungssystem-Teil 120 (siehe 2A) Operationen dieses Befehls aus wie im mit „KURZBESCHREIBUNG VON KOPIER-UND-EINFÜGEOPERATIONEN, -MERKMALEN UND -IMPLEMENTIERUNGEN“ betitelten Abschnitt in groben Zügen dargestellt. In verschiedenen Ausführungsformen führt der Kopier- und Einfügemanager 169 außerdem Operationen dieses Befehl aus, welche automatisch eine Elementergänzung und/oder -änderung durchführen wie im mit „KURZBESCHREIBUNG VON KOPIER-UND-EINFÜGEOPERATIONEN, -MERKMALEN UND -IMPLEMENTIERUNGEN“ betitelten Abschnitt in groben Zügen dargestellt, um Elemente bereitzustellen, welche typisch für den Betriebskontext an der Stelle der eingefügten Darstellungen sind. In verschiedenen Ausführungsformen führt der Kopier- und Einfügemanager 169 Operationen dieses Befehls aus, welcher die eingefügte Darstellung automatisch erweitert, um ihre untergeordneten Knoten anzuzeigen, wie in 12 gezeigt, wo eine zweite Instanz des kopierten und eingefügten Knotens „Measure Circle Circle-2“ 320" erweitert ist, um alle 3 seiner untergeordneten Knoten zu zeigen. 12 zeigt außerdem, dass die Kopier- und/oder Einfügeoperationen Operationen enthalten, so dass ein Merkmalsname in der eingefügten Darstellung geändert wurde, um ihn von dem Merkmal in der kopierten Quellendarstellung 320 sowie der zuvor eingefügten Instanz der kopierten Elemente, welche einen ähnlichen Merkmalsnamen 320' enthalten, zu unterscheiden und außerdem die Einfügeelemente kompatibel mit der Einfügestelle zu machen. In dem Beispiel gibt es keine hinzugefügten Klammern im Merkmalsnamen „Measure Circle Circle-2_2“ in 320", welcher anders als die zuvor eingefügte Instanz der kopierten Elemente 320' ist, da Klammern [,] inkompatibel mit einem Betriebskontext außerhalb einer „Step-and-repeat“-Schleife (z.B. wo sie vorher eingefügt wurde) wären. Außerdem unterscheidet „_2“ (Unterstrich 2) im Merkmalsnamen 320" diesen vom kopierten Quellen-Merkmalsnamen 320 und vom Merkmalsnamen 320' in der zuvor eingefügten Instanz der kopierten Elemente.
  • 13A zeigt übrigens, dass mehrere Attribute der eingefügten Kopie des „Circle Tool“ (= Kreiswerkzeugs) 327 die Werte des kopierten Quellenelements beibehalten wie durch eine Liste von Attributen/Parametern 329 angegeben, welche das „Circle Tool“ 327 als in der zweiten Instanz der kopierten Elemente 320" enthalten definieren, sofern diese Elemente nicht inkompatibel (in einem Programmiersinn) mit der Einfügestelle sind. Man sollte erkennen, dass „inkompatibel“ im Programmiersinn nicht das gleiche wie „ungeeignet“ gemäß dem gewünschten Teileprogramm-Verhalten ist. Zum Beispiel können die beibehaltenen Attribute (z.B. die Kreiswerkzeug-Lageparameter) insofern ungeeignet sein, als der Benutzer erwartet, sie zu bearbeiten (z.B. wie durch den hervorgehobenen Befehl „Modify“ (= Ändern) 330 in 13A angegeben), aber sind sie nicht „inkompatibel“ in dem Sinne, dass sie sich in unerwarteter Weise auf die Bearbeitungsoperationen auswirkten oder das resultierende Teileprogramm veranlassten, abzustürzen oder sich unerwartet zu verhalten. Vielleicht am wichtigsten in verschiedenen Ausführungsformen ist, dass sie nicht in dem Sinn inkompatibel sind, dass ein Benutzer das Bearbeiten der zugrundeliegenden Anweisungen, welche in einer Computersprache geschrieben sind, durchführen muss, um die eingefügten Darstellungen oder ihre zugrundeliegenden Anweisungen in dem Teileprogramm und/oder der Bearbeitungsumgebung funktionsfähig zu machen. Der Kopier- und/oder Einfügebefehl wird alle kontextabhängigen Operationen, welche für Kompatibilität erforderlich sind, automatisch durchführen, so dass der Benutzer das Teileprogramm unter Verwendung der Kopier- und Einfügeoperationen auf der Ebene der Teileprogramm-Darstellung, welche in mindestens einigen Ausführungsformen im Bearbeitungsteil des GUI (z.B. in der Bearbeitungsschnittstelle 301) und/oder in zugehörigen GUI-Fenstern und -Menüs angezeigt wird, bearbeiten kann. In einigen Ausführungsformen wird, wenn der Kopier- und Einfügebefehl solche Operationen in einem bestimmten Fall kopierter und/oder eingefügter Darstellungen/Anweisungen nicht automatisch durchführen kann, eine entsprechende Fehlermeldung angezeigt. In 13A wurde der Befehl „Modify“ in Bezug auf die ausgewählte Anweisungsdarstellung „Circle Tool“ unter dem Knoten „Measure Circle Circle -2_2“ ausgewählt. Die Parameter dieses Kreiswerkzeugs, welche zur Änderung zur Verfügung stehen, werden im Attribute/Parameter-Fensterbereich 329 angezeigt. In diesem speziellen Beispiel ändert der Benutzer die „kopierten“ Parameter „Scan Interval (= Abtastintervall) = 20“ und „Scan Interval Type (= Abtastintervall-Art) = Degrees (= Grad)“ zu einem Abtastintervall „1“ und einer Abtastintervall-Art „Pixels“ (= Pixel), wie in den 17 und 18 unten gezeigt.
  • 13B zeigt den Schnittstellenstatus für ein Fenster oder einen Fensterbereich, welches/welcher mit 13A synchronisierte „Messergebnisse“ 316 enthält, wobei das Fenster „Messergebnisse“ 316 die Messergebnisse der Quelle „Measure Circle Circle-2“ 320 und der ersten eingefügten Instanz „Measure Circle Circle-2_1 [1,1]“ 320', aber nicht der zweiten eingefügten Instanz „Measure Circle Circle-2_2“ 320", welche im gezeigten Beispiel zu ändern ist, angibt.
  • 14 zeigt, dass in Vorbereitung auf die Änderung des ausgewählten/hervorgehobenen, durch Benutzereingabe zu ändernden Kreiswerkzeugs 327 der richtige Maschinen- und/oder Bearbeitungs-Betriebskontext an dieser Stelle im Teileprogramm hergestellt werden muss (wie z.B. in der '232-Anmeldung offenbart), und die erforderlichen Operationen werden automatisch durchgeführt (wie z.B. in der ‚232-Anmeldung offenbart), wie durch die Veränderung der Einfügemarke (und des Bearbeitungskontext-Statusanzeigers) 332/332‘ (als 332' während der Ausführung der erforderlichen Operationen unterdrückt, im Gegensatz zur gültigen und sichtbaren Darstellung in 13A) und die grau überblendete Darstellung von Anweisungen in der Bearbeitungsschnittstelle 301 und dem Synchronisierungs-Meldungsfenster 333 angezeigt, was angibt, dass das System dabei ist, mindestens einen Teil des Teileprogramms zu analysieren und/oder auszuführen, um den richtigen Maschinen-Betriebskontext herzustellen.
  • 15 zeigt den GUI-Zustand bei Abschluss der Synchronisieroperationen in 14, an welchem Punkt ein gültiges Bedien- oder Bearbeitungskontext zum Zweck des Änderns (Bearbeitens) des Teileprogramms hergestellt ist.
  • 16 spiegelt Änderungsoperationen wider, welche nach den in den vorherigen 13A bis 15 beschriebenen Operationen folgen. Beachten Sie das Dialogfenster „Modify Circle Tool“ (= Kreiswerkzeug ändern) 335, welches erscheint, nachdem der Benutzer den Befehl „Modify“ 330 in 13A gewählt und die „kopierten“ Parameter „Scan Interval = 20“ und „Scan Interval Type = Degrees“ zu einem Abtastintervall „1“ und einer Abtastintervall-Art „Pixels“ geändert hat, wie oben in groben Zügen dargestellt. Man beachte den roten Statusanzeiger „Record“ (= Aufzeichnen) 337, welcher besagt, dass das Inspektionssystem mit maschineller Bilderkennung sich im „Aufzeich-nungs“- oder Lernmodus befindet, um ein Teileprogramm zu erzeugen und aufzuzeichnen. Der Befehl „Run“ (= Ablaufenlassen) 339, welcher einer der auswählbaren Befehle im Dialogfenster „Modify Circle Tool“ 335 ist, wurde noch nicht ausgeführt. Zum Validieren der vorangehenden Parameteränderungen kann das Kreiswerkzeug ablaufengelassen werden. 16 zeigt außerdem den die „Messergebnisse“ 316 der ersten eingefügte Instanz von „Measure Circle Circle-2_1“ bei [3,4], [4,1], [4,2], [4,3], [4,4], welche leicht auf- und abwärts gescrollt werden können, enthaltenden Schnittstellenstatus.
  • 17 zeigt das GUI nach Ausführen des Befehls „Run“ 339 zum Ablaufenlassen des geänderten Kreiswerkzeugs. Infolge des Ablaufenlassens des geänderten Kreiswerkzeugs gibt das Dialogfenster „Modify Circle Tool“ 335 an, dass 639 Kantenpunkte gefunden wurden (siehe 340), und die gefundenen Kantenpunkte werden innerhalb des Videowerkzeugs im Videoanzeigefenster (Sichtfeldfenster) 302 angezeigt.
  • 18 zeigt aktualisierte Parameter in der Liste von Attributen/Parametern 329, welche aus dem Ausführen des Befehls „Run“ für das geänderte Kreiswerkzeug resultieren, einschließlich der Darstellung der validierten geänderten Parameter: eines Abtastintervalls „1“ und einer Abtastintervall-Art „Pixels“ gegenüber den vorherigen Parametern des Kreiswerkzeugs wie in 15 aufgeführt.
  • 19 zeigt den Schnittstellenstatus für ein Fenster oder einen Fensterbereich, welches/welcher mit 18 synchronisierte „Messergebnisse“ 316 enthält, welches/welcher ein zusätzliches Dialogfenster 342 enthält, das verwendet werden kann, um (durch Klicken auf „Done“ (= Fertig)) die Ergebnisse und die Konfiguration des Kreiswerkzeugs zu akzeptieren, welche eingefügt und geändert wurden, um das mit den gefundenen Kantenpunkten, am besten in 17 sichtbar, und die Ergebnis-Kreisvermessung und Parameter, gezeigt in 18, zu produzieren.
  • Die 20A bis 24E sind Abbildungen in einer Markup-Sprache geschriebener Codeanweisungen, welche verschiedenen in den in den 3A bis 19 dargestellten Abfolgeoperationen dargestellten Zuständen und/oder Operationsabfolgen entsprechen. Die Übereinstimmung zwischen Zuständen kann ein Fachmann herausfinden, indem er die in den 20A bis 24E veranschaulichten Anweisungen in Bezug auf die in den 3A bis 19 gezeigten Darstellungen in Verbindung mit dem Verständnis auf der Grundlage der hierin beschriebenen offenbarten Merkmale und Operationen einschließlich der '232-Anmeldung und der '061-Anmeldung sowie der eingeschlossenen Verweise sorgfältig untersucht. In etwa zeigen die 20A bis 20H aus den bezüglich der 3A bis 3B beschriebenen oder implizierten Operationen resultierende Teileprogramm-Anweisungen. Verschiedene Anweisungen sind mit Referenzbezeichnungen versehen, um dem Leser das Verstehen der Beziehung von Anweisungen zu ihren entsprechenden Anweisungsdarstellungen in den vorangehenden Figuren zu erleichtern. Zum Beispiel kommen PS und PE dem Beginn beziehungsweise dem Ende mit der Anweisungsdarstellung „Prologue“ zusammenhängender Anweisungen nahe. MCIRC1S und MCIRC1E kommen dem Beginn beziehungsweise dem Ende mit der Anweisungsdarstellung „Measure Circle Circle-1“ zusammenhängender Anweisungen nahe. DCIRC1S und DCIRC1E kommen dem Beginn beziehungsweise dem Ende mit einer Anweisungsdarstellung „Define Circle“ (= Kreis definieren) für Circle-1 zusammenhängender Anweisungen nahe. ALIGNOS und ALIGNOE kommen dem Beginn beziehungsweise dem Ende mit der Anweisungsdarstellung „Align Origin“ (= Ursprung ausrichten) zusammenhängender Anweisungen nahe. MCIRC2S und MCIRC2E kommen dem Beginn beziehungsweise dem Ende mit der Anweisungsdarstellung „Measure Circle Circle-2“ zusammenhängender Anweisungen nahe. DCIRC2S und DCIRC2E kommen dem Beginn beziehungsweise dem Ende mit einer Anweisungsdarstellung „Define Circle“ für „Circle-2“ zusammenhängender Anweisungen nahe. ALIGNXS und ALIGNXE kommen dem Beginn beziehungsweise dem Ende mit der Anweisungsdarstellung „Align X Axis“ (= X-Achse ausrichten) zusammenhängender Anweisungen nahe. EPP bezieht sich auf die Anweisungsdarstellung „End Part Program“ . Diese Anmerkungen stehen mit denjenigen in den 21 bis 24 in Einklang, so dass die Stellen der Programmsegmente in diesen Figuren dorthin bezogen werden können, wo sie sich bezüglich des in 20 gezeigten Teileprogramms befänden (z.B. eingefügt wären).
  • In etwa zeigt 21 aus den bezüglich der 4 bis 6 beschriebenen oder implizierten Operationen resultierende Teileprogramm-Anweisungen. Man kann sehen, dass LOOPS und LOOPE dem Beginn beziehungsweise dem Ende mit der in 6 gezeigten Anweisungsdarstellung „Array Step and Repeat Loop“ zusammenhängender Anweisungen nahekommen. In etwa zeigen die 22A bis 22C aus den bezüglich der 7A bis 10 beschriebenen oder implizierten Operationen resultierende Teileprogramm-Anweisungen. Man kann sehen, dass MCIRC2_1S und MCIRC2_1E dem Beginn beziehungsweise dem Ende mit der Anweisungsdarstellung „Measure Circle Circle-2_1[.]“, in 10 in „MyLoop“ eingefügt gezeigt, zusammenhängender Anweisungen nahekommen. Entsprechend kommen DCIRC2_1S und DCIRC2_1E dem Beginn beziehungsweise dem Ende mit der entsprechenden Anweisungsdarstellung „Define Circle“ zusammenhängender Anweisungen nahe. In etwa zeigen die 23A bis 23C aus den bezüglich der 11 bis 12 beschriebenen oder implizierten Operationen resultierende Teileprogramm-Anweisungen. Man kann sehen, dass MCIRC2_2S und MCIRC2_2E dem Beginn beziehungsweise dem Ende mit der Anweisungsdarstellung „Measure Circle Circle-2_2“, in 12 nach „End of Loop“ eingefügt gezeigt, zusammenhängender Anweisungen nahekommen. Entsprechend kommen DCIRC2_2S und DCIRC2_2E dem Beginn beziehungsweise dem Ende mit der entsprechenden Anweisungsdarstellung „Define Circle“ zusammenhängender Anweisungen nahe. In etwa zeigen die 24A bis 24E aus den bezüglich der 13A bis 19 beschriebenen oder implizierten Operationen resultierende Teileprogramm-Anweisungen und Daten. Zum Beispiel kann man in 24C sehen, dass MOD1 die in 18 gezeigten geänderten Parameter „Scan Interval“ und „Scan Interval Type“ enthält. CIRC2_2-SURROS und CIRC2_2-SURROE kommen dem Beginn beziehungsweise dem Ende mit zur Darstellung „Measure Circle Circle-2_2“ gehörigen Ausführungsanweisungen auf der Bilderkennungsmaschine zusammenhängender neuer Daten nahe (z.B. innerhalb der Anmerkungen MCIRC2_2S und MCIRC2_2E, welche dem Beginn beziehungsweise dem Ende mit der Anweisungsdarstellung „Measure Circle Circle-2_2“ zusammenhängender Anweisungen nahekommen). Diese Daten liefern die Grundlage für den in 18 durch das Element 332 dargestellten Betriebs-Bearbeitungskontext-Status (im Gegensatz zum Beispiel zu 15, wo noch kein Betriebs-Bearbeitungskontext-Status für die eingefügten und geänderten, mit „Measure Circle Circle-2_2“ zusammenhängenden Elemente erstellt wurde.
  • Insgesamt kann man sehen, dass die 1 bis 25B eine Ausführungsform darstellen, welche viele der Merkmale, Operationen und Entsprechungen wie im obigen mit „KURZBESCHREIBUNG VON KOPIER-UND-EINFÜGEOPERATIONEN, -MERKMALEN UND -IMPLEMENTIERUNGEN“ betitelten Abschnitt und/oder in den unten folgenden Ansprüchen in groben Zügen dargestellt aufweist.
  • Es versteht sich, dass im Gegensatz zu bekannten Kopier- und Einfüge-Programmbearbeitungsoperationen, wie sie in einer zeichenorientierten Programmbearbeitungsumgebung durchgeführt werden können, oder sogar einer Programmbearbeitung, die sich des Kontexts bewusst ist, welcher in Programmiersprachen-Merkmalen oder dergleichen angegeben ist, welche das Eingeben und/oder die Programmbearbeitung durch einen in einer Programmiersprache erfahrenen Benutzer beschleunigen kann, die hierin offenbarten Kopier- und/oder Einfügebefehle in einem von einem relativ unerfahrenen Benutzer zu bedienenden GUI zur Verfügung stehen (z.B. für den Zweck des Bearbeitens, Verbesserns, Ersetzens oder Löschens von Operationen an einzelnen Stellen). Im Gegensatz zu bekannten Kopier- und Einfügeoperationen können die hierin offenbarten Befehlsoperationen die für die Ziel-Programmierelemente in den zugrundeliegenden Programmiersprachen-Anweisungen erforderlichen Kontextanpassungsoperationen vollständig automatisieren, so dass der Benutzer in mindestens einigen Ausführungsformen das Teileprogramm unter Verwendung der Kopier- und Einfügeoperationen auf der Ebene der Teileprogramm-Darstellung, welche im Bearbeitungsteil des GUI angezeigt wird, und/oder zugehöriger GUI-Fenster und -Menüs zuverlässig bearbeiten und/oder ablaufenlassen kann.
  • In verschiedenen beispielhaften Ausführungsformen ist, wie zuvor in groben Zügen dargestellt, ein kopierte und eingefügte Anweisungen und/oder die durch den Kopier- und Einfügemanager 169 erzeugten Anweisungen enthaltendes Teileprogramm in einer Markup-Sprache wie der Extensible Markup Language (XML) oder einer ähnlichen anwenderspezifischen Markup-Sprache geschrieben. Das heißt, die in der Bearbeitungsschnittstelle 301 angezeigten bearbeitbaren Anweisungsdarstellungen zeigen auf entsprechende in einer Markup-Sprache geschriebene Codeanweisungen (maschinenausführbare Anweisungen).
  • Die 25A und 25B stellen einen Ablaufplan dar, welcher ein Verfahren zum Kopieren und Einfügen eines Satzes von Operationen eines Teileprogramms für maschinelle Bilderkennung beim Bearbeiten eines Teileprogramms in einem Inspektionssystem mit maschineller Bilderkennung zeigt, wobei das Inspektionssystem mit maschineller Bilderkennung enthält: einen Abbildungsteil, einen Tisch zum Halten eines oder mehrerer Werkstücke in einem Sichtfeld des Abbildungsteils, einen Steuerungsteil, einen Bearbeitungsteil, eine Anzeige, eine graphische Benutzeroberfläche (GUI) und einen Lernmodus, welcher so konfiguriert ist, dass er so betreibbar ist, dass er Benutzereingaben zum Steuern von Operationen des Inspektionssystems mit maschineller Bilderkennung empfängt und verknüpfte Teileprogramm-Anweisungen, welche den gesteuerten Operationen entsprechen, aufzeichnet, um ein Teileprogramm zu erstellen. In einem Block 2710 wird ein Inspektionssystem mit maschineller Bilderkennung bereitgestellt, enthaltend: einen Abbildungsteil, einen Tisch zum Halten eines oder mehrerer Werkstücke in einem Sichtfeld des Abbildungsteils, einen Steuerungsteil, einen Bearbeitungsteil, eine Anzeige, eine graphische Benutzeroberfläche (GUI) und einen Lernmodus, welcher so konfiguriert ist, dass er so betreibbar ist, dass er Benutzereingaben zum Steuern von Operationen des Inspektionssystems mit maschineller Bilderkennung empfängt und verknüpfte Teileprogramm-Anweisungen, welche den gesteuerten Operationen entsprechen, aufzeichnet, um ein Teileprogramm zu erstellen. In einem Block 2720 werden ein Kopierbefehl und ein Einfügebefehl, welche mit dem Bearbeitungsteil verknüpft sind, bereitgestellt. In einem Block 2730 wird ein Bearbeitungsschnittstellenteil des GUI bereitgestellt, wobei der Bearbeitungsschnittstellenteil so betreibbar ist, dass er eine bearbeitbare Teileprogramm-Darstellung zugrundeliegender Teileprogramm-Anweisungen anzeigt, wobei die Teileprogramm-Darstellung Anweisungsdarstellungen enthält. In einem Block 2740 wird eine Teileprogramm-Darstellung eines zugrundeliegenden Teileprogramms im Bearbeitungsschnittstellenteil angezeigt. In einem Block 2750 wird mindestens eine erste Anweisungsdarstellung an einer Kopierstelle in der angezeigten Teileprogramm-Darstellung ausgewählt, um einen mit einem zugrundeliegenden ausgewählten Anweisungs-Kopiersatz verknüpften ausgewählten Anweisungsdarstellungs-Kopiersatz festzulegen. In einem Block 2760 wird der Bearbeitungsteil so bedient, dass er auf mindestens einen des ausgewählten Anweisungsdarstellungs-Kopiersatzes und des ausgewählten Anweisungs-Kopiersatzes gerichtete Kopiersatzänderungs-Operationen durchführt, wobei die Kopiersatzänderungs-Operationen das Bilden eines geänderten ausgewählten Anweisungsdarstellungs-Kopiersatzes durch Operationen enthalten, welche mindestens eine der folgenden enthalten: a) Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungsdarstellungs-Kopiersatzes, welche inkompatibel mit dem Einfügestellen-Betriebskontext sind, b) Hinzufügen von Elementen und Verknüpfungen zum ausgewählten Anweisungsdarstellungs-Kopiersatz, welche für Kompatibilität mit dem Einfügestellen-Betriebskontext erforderlich sind, und c) Bilden des geänderten ausgewählten Anweisungsdarstellungs-Kopiersatzes auf der Grundlage eines geänderten ausgewählten Anweisungs-Kopiersatzes, gebildet durch Operationen, welche mindestens eine der folgenden enthalten: c1) Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungs-Kopiersatzes, welche inkompatibel mit dem Anweisungseinfügestellen-Betriebskontext sind, und c2) Hinzufügen von Elementen und Verknüpfungen zum ausgewählten Anweisungs-Kopiersatz, welche für Kompatibilität mit dem Anweisungseinfügestellen-Betriebskontext erforderlich sind. In einem Block 2770 wird der Bearbeitungsschnittstellenteil bedient, um eine Einfügestelle in der angezeigten Teileprogramm-Darstellung, wo der ausgewählte Anweisungsdarstellungs-Satz eingefügt werden soll, festzulegen, wobei die Einfügestelle mit einer Anweisungs-Einfügestelle im zugrundeliegenden Teileprogramm verknüpft ist. In einem Block 2780 wird der Bearbeitungsschnittstellenteil bedient, um eine Einfügestelle in der angezeigten Teileprogramm-Darstellung, wo der ausgewählte Anweisungsdarstellungs-Satz eingefügt werden soll, festzulegen, wobei die Einfügestelle mit einer Anweisungs-Einfügestelle im zugrundeliegenden Teileprogramm verknüpft ist. Nach dem Block 2780 endet das Verfahren.
  • Die oben beschriebenen verschiedenen Ausführungsformen können kombiniert werden, um weitere Ausführungsformen bereitzustellen. Alle in dieser Beschreibung herangezogenen und/oder im Anmeldungs-Datenblatt aufgeführten US-Patente, US-Patentanmeldungsveröffentlichungen, US-Patentanmeldungen, ausländischen Patente, ausländischen Patentanmeldungen und Nicht-Patent-Veröffentlichungen einschließlich, ohne darauf beschränkt zu sein, US-Patentanmeldung Nr. 61/822,822 , eingereicht am 13. Mai 2013, werden in ihrer Gesamtheit durch Verweis hierin einbezogen. Aspekte der Ausführungsformen können geändert werden, wenn es erforderlich ist, um Konzepte der verschiedenen Patente und Anmeldungen anzuwenden, um noch weitere Ausführungsformen bereitzustellen.
  • Diese und weitere Veränderungen können unter Berücksichtigung der oben gegebenen Beschreibung an den Ausführungsformen vorgenommen werden. Im allgemeinen sind in den folgenden Ansprüchen die verwendeten Begriffe nicht als die Ansprüche auf die in der Beschreibung und den Ansprüchen offenbarten konkreten Ausführungsformen beschränkend aufzufassen, sondern sind sie als neben dem vollen Umfang von Äquivalenten, zu welchen solche Ansprüche berechtigt sind, alle möglichen Ausführungsformen einschließend aufzufassen.

Claims (14)

  1. Computerlesbares Medium, enthaltend computerausführbare Anweisungen, welche so konfiguriert sind, dass sie auf einen Computer geladen werden, um den Computer zu befähigen, beim Bearbeiten eines Teileprogramms in einem Inspektionssystem mit maschineller Bilderkennung ein Verfahren zum Kopieren und Einfügen eines Satzes von Operationen eines Teileprogramms für maschinelle Bilderkennung durchzuführen, wobei das Inspektionssystem mit maschineller Bilderkennung enthält: einen Abbildungsteil, einen Tisch zum Halten eines oder mehrerer Werkstücke in einem Sichtfeld des Abbildungsteils, einen Steuerungsteil, einen Bearbeitungsteil, eine Anzeige, eine graphische Benutzeroberfläche (GUI) und einen Lernmodus, welcher so konfiguriert ist, dass er so betreibbar ist, dass er Benutzereingaben zum Steuern von Operationen des Inspektionssystems mit maschineller Bilderkennung empfängt und verknüpfte Teileprogramm-Anweisungen, welche den gesteuerten Operationen entsprechen, aufzeichnet, um ein Teileprogramm zu erstellen, wobei das durchzuführende Verfahren umfasst: Bereitstellen eines Kopierbefehls und eines Einfügebefehls, verknüpft mit dem Bearbeitungsteil; Bereitstellen eines Bearbeitungsschnittstellenteils des GUI, wobei der Bearbeitungsschnittstellenteil so betreibbar ist, dass er eine bearbeitbare Teileprogramm-Darstellung zugrundeliegender Teileprogramm-Anweisungen anzeigt, wobei die Teileprogramm-Darstellung Anweisungsdarstellungen enthält; Anzeigen einer Teileprogramm-Darstellung eines zugrundeliegenden Teileprogramms im Bearbeitungsschnittstellenteil; Anzeigen eines Bearbeitungskontext-Statusanzeigers, der dazu eingerichtet ist, einen Status eines Betriebskontexts des Inspektionssystems mit maschineller Bildererkennung an einer Stelle in der angezeigten Teileprogramm-Darstellung anzuzeigen;(siehe S. 8, Z. 24-37, insbesondere S. 8, Z. 24-27, und vorheriger Anspruch 2) Auswählen mindestens einer ersten Anweisungsdarstellung an einer Kopierstelle in der angezeigten Teileprogramm-Darstellung, um einen mit einem zugrundeliegenden ausgewählten Anweisungs-Kopiersatz verknüpften ausgewählten Anweisungsdarstellungs-Kopiersatz festzulegen, wobei der Bearbeitungskontext-Statusanzeiger anzeigt, dass der zugrundeliegende ausgewählte Anweisungs-Kopiersatz einem gültigen Bearbeitungskontext entspricht(siehe S. 30, Z. 17-33 und S. 8, Z. 24-37); Bedienen des Bearbeitungsschnittstellenteils, um eine Einfügestelle in der angezeigten Teileprogramm-Darstellung, wo der ausgewählte Anweisungsdarstellungs-Kopiersatz(um einheitliche Begriffe im Anspruch zu verwenden und die Klarheit dadurch zu verbessern) eingefügt werden soll, festzulegen, wobei die Einfügestelle mit einer Anweisungs-Einfügestelle im zugrundeliegenden Teileprogramm verknüpft ist; Bedienen des Bearbeitungsteils so, dass er auf mindestens einen des ausgewählten Anweisungsdarstellungs-Kopiersatzes und des ausgewählten Anweisungs-Kopiersatzes gerichtete Kopiersatzänderungs-Operationen durchführt, wobei die Kopiersatzänderungs-Operationen das Bilden eines geänderten ausgewählten Anweisungsdarstellungs-Kopiersatzes durch Operationen enthalten, welche mindestens eine der folgenden enthalten: a) Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungsdarstellungs-Kopiersatzes, welche inkompatibel mit dem Einfügestellen-Betriebskontext sind, b) Hinzufügen von Elementen und Verknüpfungen zum ausgewählten Anweisungsdarstellungs-Kopiersatz, welche für Kompatibilität mit dem Einfügestellen-Betriebskontext erforderlich sind, oder c) Bilden des geänderten ausgewählten Anweisungsdarstellungs-Kopiersatzes auf der Grundlage eines geänderten ausgewählten Anweisungs-Kopiersatzes, gebildet durch Operationen, welche mindestens eine der folgenden enthalten: c1) Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungs-Kopiersatzes, welche inkompatibel mit dem Anweisungseinfügestellen-Betriebskontext sind, oder c2) Hinzufügen von Elementen und Verknüpfungen zum ausgewählten Anweisungs-Kopiersatz, welche für Kompatibilität mit dem Anweisungseinfügestellen-Betriebskontext erforderlich sind; und Bedienen des Bearbeitungsteils so, dass er Einfügeoperationen, enthaltend das Einfügen des geänderten ausgewählten Anweisungsdarstellungs-Kopiersatzes in die Einfügestelle in der angezeigten Teileprogramm-Darstellung, durchführt; und Automatisches Bedienen des Bearbeitungskontext-Statusanzeigers, in Reaktion auf das Einfügen des geänderten ausgewählten Anweisungsdarstellungs-Kopiersatzes, um anzuzeigen, dass der geänderte ausgewählte Anweisungsdarstellungs-Kopiersatz mindestens einem fragwürdigen oder ungültigem Bearbeitungskontext-Status entspricht(siehe S. 8, Z 24-37 und S. 30, Z. 16-33, insbesondere S. 8, Z. 30-34 und S. 30, Z. 17-22).
  2. Computerlesbares Medium nach Anspruch 1, wobei der Bearbeitungskontext-Statusanzeiger einen Anweisungszeiger enthält, welcher je nach einem seiner Stelle in der angezeigten Teileprogramm-Darstellung entsprechenden Bearbeitungskontext-Status die Farbe wechselt.
  3. Computerlesbares Medium nach Anspruch 1, wobei der Kopierbefehl Operationen enthält, welche mindestens einen in dem ausgewählten Anweisungsdarstellungs-Kopiersatz enthaltenen übergeordneten Knoten automatisch erweitern, um alle seine in dem ausgewählten Anweisungsdarstellungs-Kopiersatz enthaltenen untergeordneten Knoten anzuzeigen.
  4. Computerlesbares Medium nach Anspruch 3, wobei die angezeigten, in dem ausgewählten Anweisungsdarstellungs-Kopiersatz enthaltenen untergeordneten Knoten an der Kopierstelle angezeigt werden, a) während der Cursor im GUI über ein Kopierbefehls-GUI-Element bewegt wird oder b) während der Kopierbefehl ausgeführt wird oder während a) und b) gleichzeitig erfüllt sind.
  5. Computerlesbares Medium nach Anspruch 1, wobei das Einfügen des geänderten, ausgewählten Anweisungsdarstellungs-Kopiersatzes in die Einfügestelle Operationen umfasst, welche mindestens einen in dem eingefügten geänderten ausgewählten Anweisungsdarstellungs-Kopiersatz enthaltenen übergeordneten Knoten automatisch erweitern, um alle seine in dem geänderten, ausgewählten Anweisungsdarstellungs-Kopiersatz enthaltenen untergeordneten Knoten anzuzeigen.
  6. Computerlesbares Medium nach Anspruch 1, wobei: mindestens einige der Kopiersatzänderungs-Operationen in Reaktion auf die Ausführung des Kopierbefehls automatisch durchgeführt werden; und die Kopiersatzänderungs-Operationen das Entfernen a) dem ausgewählten Anweisungsdarstellungs-Kopiersatz entsprechender Ersatzdaten oder b) einer Verknüpfung zwischen dem ausgewählten Anweisungsdarstellungs-Kopiersatz und entsprechenden Ersatzdaten oder von a) und b) umfassen.
  7. Computerlesbares Medium nach Anspruch 6, wobei die Kopiersatzänderungs-Operationen das Verschieben einer Kopie mindestens eines des ausgewählten Anweisungs-Kopiersatzes und des ausgewählten Anweisungsdarstellungs-Kopiersatzes in eine Zwischenablage, nachdem die entsprechenden Ersatzdaten und/oder ihre Verknüpfung entfernt wurden, umfassen.
  8. Computerlesbares Medium nach Anspruch 1, wobei: die Kopiersatzänderungs-Operationen das Bilden eines geänderten ausgewählten Anweisungsdarstellungs-Kopiersatzes durch Operationen enthalten, welche mindestens einen der folgenden Schritte umfassen: Schritt c1) das Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungs-Kopiersatzes oder Schritt a) das Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungsdarstellungs-Kopiersatzes, wobei der mindestens eine enthaltene Schritt c1) oder Schritt a) das Abändern eines mit solchen Elementen verknüpften Merkmalsnamens, Toleranznamens, Teilekoordinatensystem-Namens, Messpunktpuffer-Namens oder angezeigten Variablennamens in zumindest einem zugrundeliegenden Anweisungscode oder einer angezeigten Anweisungsdarstellung umfasst; und die Abänderung eine automatische Abänderung ist oder eine automatisch angezeigte Abänderungsaufforderung an einen Benutzer enthält.
  9. Computerlesbares Medium nach Anspruch 1, wobei Schritt c1) des Änderns von Elementen und Verknüpfungen des ausgewählten Anweisungs-Kopiersatzes und/oder Schritt a) des Änderns von Elementen und Verknüpfungen des ausgewählten Anweisungsdarstellungs-Kopiersatzes das Abändern einer mit solchen Elementen verknüpften eindeutigen Knotenkennung umfassen/umfasst.
  10. Computerlesbares Medium nach Anspruch 1, wobei die Kopiersatzänderungs-Operationen das Bilden eines geänderten ausgewählten Anweisungsdarstellungs-Kopiersatzes durch Operationen enthalten, welche mindestens einen der folgenden Schritte umfassen: Schritt c1) das Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungs-Kopiersatzes oder Schritt a) das Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungsdarstellungs-Kopiersatzes, wobei, wenn der ausgewählte Anweisungsdarstellungs-Kopiersatz in eine „Step-and-repeat“-Schleife eingefügt wird, der mindestens eine enthaltene Schritt c1) oder Schritt a) das Abändern eines mit solchen Elementen verknüpften Merkmalsnamens, Toleranznamens, Teilekoordinatensystem-Namens, Messpunktpuffer-Namens oder angezeigten Variablennamens in zumindest einem zugrundeliegenden Anweisungscode oder einer angezeigten Anweisungsdarstellung umfasst, wobei das Abändern außerdem das Abändern oder Hinzufügen eines mit einem Betriebskontext der „Step-and-repeat“-Schleife in Einklang stehenden Elements oder Formats umfasst.
  11. Computerlesbares Medium nach Anspruch 1, wobei die Kopiersatzänderungs-Operationen das Bilden eines geänderten ausgewählten Anweisungsdarstellungs-Kopiersatzes durch Operationen enthalten, welche mindestens einen der folgenden Schritte umfassen: Schritt c1) das Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungs-Kopiersatzes oder Schritt a) das Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungsdarstellungs-Kopiersatzes, wobei, wenn der ausgewählte Anweisungsdarstellungs-Kopiersatz aus einer „Step-and-repeat“-Schleife kopiert und außerhalb einer „Step-and-repeat“-Schleife eingefügt wird, der mindestens eine enthaltene Schritt c1) oder Schritt a) das Abändern oder Entfernen eines mit solchen Elementen verknüpften Merkmalsnamens, Toleranznamens, Teilekoordinatensystem-Namens, Messpunktpuffer-Namens oder angezeigten Variablennamens oder eines Formats, welches typisch für den Betriebskontext der „Step-and-repeat“-Schleife ist, in einem zugrundeliegenden Anweisungscode und/oder in einer angezeigten Anweisungsdarstellungumfasst.
  12. Computerlesbares Medium nach Anspruch 1, wobei die Kopiersatzänderungs-Operationen das Bilden eines geänderten ausgewählten Anweisungsdarstellungs-Kopiersatzes durch Operationen enthalten, welche mindestens einen der folgenden Schritte umfassen: Schritt c1) das Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungs-Kopiersatzes oder Schritt a) das Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungsdarstellungs-Kopiersatzes, wobei der mindestens eine enthaltene Schritt c1) oder Schritt a) das Entfernen solcher Elemente umfasst.
  13. Computerlesbares Medium nach Anspruch 1, wobei: mindestens einige der Kopiersatzänderungs-Operationen in Reaktion auf die Ausführung des Einfügebefehls automatisch durchgeführt werden; und die Kopiersatzänderungs-Operationen das Hinzufügen oder Abändern a) einer Verknüpfung zwischen dem ausgewählten Anweisungsdarstellungs-Kopiersatz und einer entsprechenden Ersatzdaten-Speicheradresse oder -stelle oder b) eines Merkmalsnamens, eines Toleranznamens, eines Teilekoordinatensystem-Namens, eines Messpunktpuffer-Namens oder eines angezeigten Variablennamens oder von a) und b) umfassen.
  14. Ein Verfahren zum Kopieren und Einfügen eines Satzes von Operationen eines Teileprogramms für maschinelle Bilderkennung beim Bearbeiten eines Teileprogramms in einem Inspektionssystem mit maschineller Bilderkennung, wobei das Inspektionssystem mit maschineller Bilderkennung enthält: einen Abbildungsteil, einen Tisch zum Halten eines oder mehrerer Werkstücke in einem Sichtfeld des Abbildungsteils, einen Steuerungsteil, einen Bearbeitungsteil, eine Anzeige, eine graphische Benutzeroberfläche (GUI) und einen Lernmodus, welcher so konfiguriert ist, dass er so betreibbar ist, dass er Benutzereingaben zum Steuern von Operationen des Inspektionssystems mit maschineller Bilderkennung empfängt und verknüpfte Teileprogramm-Anweisungen, welche den gesteuerten Operationen entsprechen, aufzeichnet, um ein Teileprogramm zu erstellen, die graphische Benutzeroberfläche (GUI) beinhaltet einen Bearbeitungskontext-Statusanzeiger, der dazu eingerichtet ist, einen Status eines Betriebskontexts des Inspektionssystems mit maschineller Bildererkennung an einer Stelle in der angezeigten Teileprogramm-Darstellung anzuzeigen, wobei das Verfahren die Schritte umfasst: Auswählen mindestens einer ersten Anweisungsdarstellung an einer Kopierstelle in der angezeigten Teileprogramm-Darstellung, um einen mit einem zugrundeliegenden ausgewählten Anweisungs-Kopiersatz verknüpften ausgewählten Anweisungsdarstellungs-Kopiersatz festzulegen, wobei der Bearbeitungskontext-Statusanzeiger anzeigt, dass der zugrundeliegende ausgewählte Anweisungs-Kopiersatz einem gültigen Bearbeitungskontext entspricht; Bedienen der GUI, um Kopieroperationen einzuleiten, welche eine Kopie mindestens eines des ausgewählten Anweisungsdarstellungs-Kopiersatzes oder des zugrundeliegenden ausgewählten Anweisungs-Kopiersatzes erstellen; automatisches Durchführen von Kopieroperationen, um einen auf mindestens einen des ausgewählten Anweisungsdarstellungs-Kopiersatzes oder des ausgewählten Anweisungs-Kopiersatzes gerichteten ersten Teilsatz der Kopiersatzänderungs-Operationen durchzuführen, um dadurch teilweise geänderte Entsprechungen des mindestens einen ausgewählten Anweisungsdarstellungs-Kopiersatzes oder des zugrundeliegenden ausgewählten Anweisungs-Kopiersatzes zu erzeugen, wobei der erste Teilsatz der Kopiersatzänderungs-Operationen auf Elemente, welche typisch für einen ersten Betriebskontext an der Kopierstelle sind, gerichtet ist und mindestens eine der folgenden Operationen enthält: a) Entfernen mindestens eines verknüpften Ersatzdatensatzes oder ihrer Verknüpfung mit mindestens einem der Kopiersätze, oder b) Bereitstellen einer neuen oder abgeänderten eindeutigen Knotenkennung; Festlegen einer Einfügestelle in der angezeigten Teileprogramm-Darstellung, wo der ausgewählte Anweisungsdarstellungs-Satz eingefügt werden soll, wobei die Einfügestelle mit einer Anweisungs-Einfügestelle im zugrundeliegenden Teileprogramm verknüpft ist; Bedienen der GUI, um auf mindestens eine der teilweise geänderten Entsprechungen des ausgewählten Anweisungsdarstellungs-Kopiersatzes oder des zugrundeliegenden ausgewählten Anweisungs-Kopiersatzes gerichtete Einfügeoperationen einzuleiten; und automatisches Durchführen von Einfügeoperationen, um einen auf die teilweise geänderten Entsprechungen mindestens eines des ausgewählten Anweisungsdarstellungs-Kopiersatzes oder des ausgewählten Anweisungs-Kopiersatzes gerichteten zweiten Teilsatz der Kopiersatzänderungs-Operationen durchzuführen, um dadurch einen vollständig geänderten ausgewählten Anweisungsdarstellungs-Kopiersatz oder einen vollständig geänderten ausgewählten Anweisungs-Kopiersatz zu erzeugen, wobei der zweite Teilsatz der Kopiersatzänderungs-Operationen auf Elemente, welche typisch für einen zweiten Betriebskontext an der Einfügestelle sind, gerichtet ist und mindestens eine der folgenden Operationen enthält: a) Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungsdarstellungs-Kopiersatzes, welche inkompatibel mit dem Einfügestellen-Betriebskontext sind, b) Hinzufügen von Elementen und Verknüpfungen zum ausgewählten Anweisungsdarstellungs-Kopiersatz, welche für Kompatibilität mit dem Einfügestellen-Betriebskontext erforderlich sind, und c) Bilden des geänderten ausgewählten Anweisungsdarstellungs-Kopiersatzes auf der Grundlage eines geänderten ausgewählten Anweisungs-Kopiersatzes, gebildet durch Operationen, welche mindestens eine der folgenden enthalten: c1) Ändern von Elementen und Verknüpfungen des ausgewählten Anweisungs-Kopiersatzes, welche inkompatibel mit dem Anweisungseinfügestellen-Betriebskontext sind, oder c2) Hinzufügen von Elementen und Verknüpfungen zum ausgewählten Anweisungs-Kopiersatz, welche für Kompatibilität mit dem Anweisungseinfügestellen-Betriebskontext erforderlich sind; und Automatisches Bedienen des Bearbeitungskontext-Statusanzeigers, in Reaktion auf das Einfügen des geänderten ausgewählten Anweisungsdarstellungs-Kopiersatzes, um anzuzeigen, dass der geänderte ausgewählte Anweisungsdarstellungs-Kopiersatz mindestens einem fragwürdigen oder ungültigem Bearbeitungskontext-Status entspricht.
DE112014002389.2T 2013-05-13 2014-05-13 Bearbeitungsumgebung für ein Programm für ein maschinelles Bilderkennungssystem, enthaltend ein betriebskontextbewusstes Kopier-und Einfüge-Merkmal Active DE112014002389B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361822822P 2013-05-13 2013-05-13
US61/822,822 2013-05-13
PCT/US2014/037931 WO2014186419A1 (en) 2013-05-13 2014-05-13 Machine vision system program editing environment including operating context aware copy and paste feature

Publications (2)

Publication Number Publication Date
DE112014002389T5 DE112014002389T5 (de) 2016-02-18
DE112014002389B4 true DE112014002389B4 (de) 2022-08-04

Family

ID=51865779

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112014002389.2T Active DE112014002389B4 (de) 2013-05-13 2014-05-13 Bearbeitungsumgebung für ein Programm für ein maschinelles Bilderkennungssystem, enthaltend ein betriebskontextbewusstes Kopier-und Einfüge-Merkmal

Country Status (5)

Country Link
US (1) US9733902B2 (de)
JP (1) JP6386540B2 (de)
CN (1) CN105264474B (de)
DE (1) DE112014002389B4 (de)
WO (1) WO2014186419A1 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170206064A1 (en) * 2013-03-15 2017-07-20 JIBO, Inc. Persistent companion device configuration and deployment platform
US9235337B2 (en) * 2013-05-09 2016-01-12 Mitutoyo Corporation System, GUI and method for editing step and repeat operation instructions in a machine vision inspection system
US10192283B2 (en) * 2014-12-22 2019-01-29 Cognex Corporation System and method for determining clutter in an acquired image
US10203850B2 (en) * 2015-02-27 2019-02-12 Mitsubishi Electric Corporation Data editing apparatus, data editing method, and data editing program
CN107368465B (zh) * 2016-05-13 2020-03-03 北京京东尚科信息技术有限公司 一种用于流式文档的截图类笔记处理的系统及方法
KR102645817B1 (ko) * 2016-12-06 2024-03-08 한화로보틱스 주식회사 로봇의 비헤이비어 관리 방법 및 장치
CN106776070A (zh) * 2016-12-15 2017-05-31 北京小米移动软件有限公司 执行粘贴操作的方法及装置
CN108509103A (zh) * 2017-02-27 2018-09-07 华为技术有限公司 文本复制方法和触屏设备
JP6564431B2 (ja) * 2017-08-28 2019-08-21 ファナック株式会社 工作機械および軸移動制御方法
US10782963B2 (en) * 2017-09-11 2020-09-22 Siemens Industry Software GmbH Introducing artifact information system and method
US20190213249A1 (en) * 2018-01-05 2019-07-11 International Business Machines Corporation Intelligent Copy and Paste
US11562505B2 (en) 2018-03-25 2023-01-24 Cognex Corporation System and method for representing and displaying color accuracy in pattern matching by a vision system
CN110609891B (zh) * 2019-09-18 2021-06-08 合肥工业大学 一种基于上下文感知图神经网络的视觉对话生成方法
US20210141503A1 (en) * 2019-11-07 2021-05-13 Baker Hughes Oilfield Operations Llc Human machine interface generation for industrial monitoring
CN113238686B (zh) * 2021-04-20 2023-11-03 维沃移动通信(杭州)有限公司 文档处理方法、装置和电子设备
CN113238742B (zh) * 2021-06-17 2024-04-12 南方电网科学研究院有限责任公司 一种直流控保页面程序修改回放方法、装置、终端及介质
CN113312885B (zh) * 2021-07-30 2021-09-28 腾讯科技(深圳)有限公司 协同操作处理方法、装置、设备以及介质

Citations (7)

* 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
US20110231787A1 (en) 2010-03-22 2011-09-22 Mitutoyo Corporation Gui for programming step and repeat operations in a machine vision inspection system
US8111938B2 (en) 2008-12-23 2012-02-07 Mitutoyo Corporation System and method for fast approximate focus
US8111905B2 (en) 2009-10-29 2012-02-07 Mitutoyo Corporation Autofocus video tool and method for precise dimensional inspection
US20130123945A1 (en) 2011-11-15 2013-05-16 Mitutoyo Corporation Machine vision system program editing environment including real time context generation features

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5121498A (en) 1988-05-11 1992-06-09 Massachusetts Institute Of Technology Translator for translating source code for selective unrolling of loops in the source code
JPH04102926A (ja) 1990-08-22 1992-04-03 Nec Corp 繰り返しループの展開最適化方式
US5481712A (en) 1993-04-06 1996-01-02 Cognex Corporation Method and apparatus for interactively generating a computer program for machine vision analysis of an object
US5797013A (en) 1995-11-29 1998-08-18 Hewlett-Packard Company Intelligent loop unrolling
ES2165582T3 (es) * 1996-02-05 2002-03-16 Decamps Viviane Renee Procedimiento de explotacion de un ordenador que administra unos intercambios de informaciones y procedimiento de establecimiento de formularios.
US6026240A (en) 1996-02-29 2000-02-15 Sun Microsystems, Inc. Method and apparatus for optimizing program loops containing omega-invariant statements
US6035125A (en) 1997-07-25 2000-03-07 International Business Machines Corporation Method and system for generating compact code for the loop unrolling transformation
US6466240B1 (en) * 1998-07-08 2002-10-15 Vadim Maslov Method for visually writing programs or scripts that transform structured text presented as a tree
US6311320B1 (en) * 1998-12-07 2001-10-30 Lsi Logic Corporation Alterable scripting tool and method
US6668053B1 (en) * 1999-09-21 2003-12-23 Verizon Laboratories Inc. Process for generating recent change commands for various stored program telephone switches
US6944821B1 (en) 1999-12-07 2005-09-13 International Business Machines Corporation Copy/paste mechanism and paste buffer that includes source information for copied data
JP2003015884A (ja) * 2001-07-04 2003-01-17 Denso Corp 重複定義チェック装置及びプログラム
WO2003029967A1 (en) * 2001-09-28 2003-04-10 Crystal Decisions, Inc. Apparatus and method for combining discrete logic visual icons to form a data transformation block
GB0206285D0 (en) * 2002-03-16 2002-05-01 Ibm Apparatus method and computer program for providing a GUI representation of relationships between a set of resources of a data processing system
US7526347B2 (en) * 2003-02-18 2009-04-28 Fisher-Rosemount Systems, Inc. Security for objects in a process plant configuration system
US7779356B2 (en) * 2003-11-26 2010-08-17 Griesmer James P Enhanced data tip system and method
US7464370B2 (en) * 2003-12-04 2008-12-09 International Business Machines Corporation Creating a method from a block of code
US20050229113A1 (en) * 2004-04-09 2005-10-13 Alcatel Highlighted objects window
US7590276B2 (en) 2004-12-20 2009-09-15 Mitutoyo Corporation System and method for programming interrupting operations during moving image acquisition sequences in a vision system
US8042065B2 (en) 2005-11-17 2011-10-18 Microsoft Corporation Smart copy/paste of graphical nodes
US20070156775A1 (en) * 2005-12-29 2007-07-05 Fischer Iija Metadata transformation in copy and paste scenarios between heterogeneous applications
US20070234278A1 (en) * 2006-03-02 2007-10-04 Microsoft Corporation Managing source code in a model-based development environment
CN101529351A (zh) * 2006-08-24 2009-09-09 西门子能量及自动化公司 用于配置可编程逻辑控制器的设备、系统和方法
US7668608B2 (en) * 2006-09-01 2010-02-23 Fisher-Rosemount Systems, Inc. Graphical programming language object editing and reporting tool
US7769222B2 (en) * 2006-10-27 2010-08-03 Mitutoyo Corporation Arc tool user interface
US8429551B2 (en) 2007-02-15 2013-04-23 Microsoft Corporation Application-based copy and paste operations
US8312427B2 (en) * 2007-05-15 2012-11-13 International Business Machines Corporation Selecting a set of candidate code expressions from a section of program code for copying
US8392830B2 (en) * 2007-07-04 2013-03-05 International Business Machines Corporation Method and system for code editing
US8245186B2 (en) * 2008-04-03 2012-08-14 Microsoft Corporation Techniques for offering and applying code modifications
US9292478B2 (en) * 2008-12-22 2016-03-22 International Business Machines Corporation Visual editor for editing complex expressions
US8392380B2 (en) 2009-07-30 2013-03-05 Microsoft Corporation Load-balancing and scaling for analytics data
JP2011059918A (ja) * 2009-09-09 2011-03-24 Mitsubishi Electric Corp バージョン管理装置及びバージョン管理方法
US8910113B2 (en) * 2009-09-22 2014-12-09 Adobe Systems Incorporated Methods and systems for visual code refactoring
US8843892B2 (en) * 2010-12-03 2014-09-23 Adobe Systems Incorporated Visual representations of code in application development environments
US8806430B1 (en) * 2011-06-08 2014-08-12 The Mathworks, Inc. Renaming instances of an entity in a coding environment
US9013574B2 (en) 2011-11-15 2015-04-21 Mitutoyo Corporation Machine vision system program editing environment including synchronized user interface features
US9081595B1 (en) * 2011-12-06 2015-07-14 The Mathworks, Inc. Displaying violated coding rules in source code
US9710234B2 (en) * 2013-12-26 2017-07-18 International Business Machines Corporation Generating software code

Patent Citations (8)

* 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
US8111938B2 (en) 2008-12-23 2012-02-07 Mitutoyo Corporation System and method for fast approximate focus
US8111905B2 (en) 2009-10-29 2012-02-07 Mitutoyo Corporation Autofocus video tool and method for precise dimensional inspection
US20110231787A1 (en) 2010-03-22 2011-09-22 Mitutoyo Corporation Gui for programming step and repeat operations in a machine vision inspection system
US8271895B2 (en) 2010-03-22 2012-09-18 Mitutoyo Corporation GUI for programming step and repeat operations in a machine vision inspection system
US20130123945A1 (en) 2011-11-15 2013-05-16 Mitutoyo Corporation Machine vision system program editing environment including real time context generation features

Also Published As

Publication number Publication date
WO2014186419A1 (en) 2014-11-20
US9733902B2 (en) 2017-08-15
CN105264474B (zh) 2018-10-09
JP2016521369A (ja) 2016-07-21
DE112014002389T5 (de) 2016-02-18
US20140337775A1 (en) 2014-11-13
CN105264474A (zh) 2016-01-20
JP6386540B2 (ja) 2018-09-05

Similar Documents

Publication Publication Date Title
DE112014002389B4 (de) Bearbeitungsumgebung für ein Programm für ein maschinelles Bilderkennungssystem, enthaltend ein betriebskontextbewusstes Kopier-und Einfüge-Merkmal
DE69233037T2 (de) Automatisiertes neues Layout mit dimensionaler Verknüpfung
DE102012220884A1 (de) Maschinensichtsystemprogramm-Bearbeitungsumgebung mit Echtzeitkontexterzeugungsmerkmalen
DE102012220882B4 (de) System und Verfahren unter Verwendung eines Bearbeitungsinitialisierungsblocks in einer Teileprogramm-Bearbeitungsumgebung in einem Maschinenvisionssystem
DE102012220759A1 (de) Programmbearbeitungsumgebung eines maschinell sehenden Systems mit synchronisierten Benutzerschnittstellenmerkmalen
DE102012220875A1 (de) Maschinelle Visionssystem-Editierumgebung für ein Teilprogramm, in welchem ein kontinuierlicher Stream der Bilderfassungsoperationen während eines Ablaufmodus ausgeführt wird
DE69725346T2 (de) Gerät und verfahren zur erzeugung eines blechbiegemodells
DE60008264T2 (de) Datenaustausch zwischen cad-systemen
DE102012110508A1 (de) Roboter Einstellvorrichtung mit 3-D Display
DE102014206309B4 (de) System und Verfahren zum Erhalten von Bildern mit Versatz zur Verwendung für verbesserte Kantenauflösung
DE102011005814A1 (de) Grafisohe benutzeroberfläche zum programmieren von schritt- und wiederholvorgängenin einem visuellen maschinenprüfungssystem
DE102017005933B4 (de) Bearbeitungsprogrammeditiervorrichtung, Verfahren und Speichermedium
DE102012216908B4 (de) Verfahren unter Verwendung einer Bildkorrelation zum Bestimmen von Positionsmessungen in einem Maschinenvisionssystem
DE19960050A1 (de) Grafische Benutzerschnittstelle zur Entwicklung von Anwendungsbeispielen unter Verwendung einer Testobjektbibliothek
DE10122699A1 (de) Verfahren und Vorrichtung zum Erzeugen von Teileprogrammen zur Verwendung in Bildmessinstrumenten, und Bildmessinstrument und Verfahren zur Darstellung damit gemessener Ergebnisse
US9235337B2 (en) System, GUI and method for editing step and repeat operation instructions in a machine vision inspection system
DE112012007233T5 (de) Numerische-Steuerung-Vorrichtung
DE102014225409A1 (de) Abgesetztes Hilfsgerät zum Generieren spezifisch angepasster und synchronisierter Referenznotizen für ein programmierbares Metrologiesystem
DE112019000345T5 (de) Eine Methode zur Verbesserung der Modellierungsgeschwindigkeit eines digitalen Schnittscanners
DE102015203465A1 (de) Berührungsgesten zur verbindung von datenströmen in einem fliessplansimulator
DE102013217347B4 (de) Verfahren und vorrichtung zur parametereinstellung für kantenmessungsvideowerkzeuge
EP3874315A1 (de) Mikroskopsystem zur abbildung eines probenbereichs und entsprechendes verfahren
DE102017203530A1 (de) Vorrichtung zum Generieren eines Teileprogramms eines Geräts zum Messen einer Oberflächenbeschaffenheit
EP2043005B1 (de) Verfahren und Vorrichtung zum Messen und Simulieren von Abläufen in einem Mikroskopsystem
EP2942678B1 (de) Zuweisungsrevolver

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: MERH-IP MATIAS ERNY REICHL HOFFMANN PATENTANWA, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final