DE102012220884A1 - Maschinensichtsystemprogramm-Bearbeitungsumgebung mit Echtzeitkontexterzeugungsmerkmalen - Google Patents

Maschinensichtsystemprogramm-Bearbeitungsumgebung mit Echtzeitkontexterzeugungsmerkmalen Download PDF

Info

Publication number
DE102012220884A1
DE102012220884A1 DE102012220884A DE102012220884A DE102012220884A1 DE 102012220884 A1 DE102012220884 A1 DE 102012220884A1 DE 102012220884 A DE102012220884 A DE 102012220884A DE 102012220884 A DE102012220884 A DE 102012220884A DE 102012220884 A1 DE102012220884 A1 DE 102012220884A1
Authority
DE
Germany
Prior art keywords
part program
machine vision
inspection system
vision inspection
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102012220884A
Other languages
English (en)
Inventor
Barry Saylor
Dahai Yu
Ryan Northrup
Gyokubu Cho
Akira Takada
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 DE102012220884A1 publication Critical patent/DE102012220884A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/409Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by using manual data input [MDI] or by using control panel, e.g. controlling functions with the panel; characterised by control panel details or by setting parameters
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4093Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by part programming, e.g. entry of geometrical information as taken from a technical drawing, combining this with machining and material information to obtain control information, named part programme, for the NC machine
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N21/00Investigating or analysing materials by the use of optical means, i.e. using sub-millimetre waves, infrared, visible or ultraviolet light
    • G01N21/84Systems specially adapted for particular applications
    • G01N21/88Investigating the presence of flaws or contamination
    • G01N21/8851Scan or image signal processing specially adapted therefor, e.g. for scan signal adjustment, for detecting different kinds of defects, for compensating for structures, markings, edges
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format
    • G05B2219/35505Display two windows, one with nc-data, other with general application data
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36143Use of icon to represent a function, part of program
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36172Select block, item, highlight, colour this block with respect to rest
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/37Measurements
    • G05B2219/37208Vision, visual inspection of workpiece
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/37Measurements
    • G05B2219/37439Computer assisted inspection, cad interactive with manual commands
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/37Measurements
    • G05B2219/37455After entering one measuring cycle, display in separate window instruction list
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S715/00Data processing: presentation processing of document, operator interface processing, and screen saver display processing
    • Y10S715/961Operator interface with visual structure or function dictated by intended use
    • Y10S715/964CAD or CAM, e.g. interactive design tools
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S715/00Data processing: presentation processing of document, operator interface processing, and screen saver display processing
    • Y10S715/961Operator interface with visual structure or function dictated by intended use
    • Y10S715/965Operator interface with visual structure or function dictated by intended use for process control and configuration
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S715/00Data processing: presentation processing of document, operator interface processing, and screen saver display processing
    • Y10S715/961Operator interface with visual structure or function dictated by intended use
    • Y10S715/965Operator interface with visual structure or function dictated by intended use for process control and configuration
    • Y10S715/97Instrumentation and component modelling, e.g. interactive control panel

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Automation & Control Theory (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Image Processing (AREA)

Abstract

Eine Maschinensichtprüfungssystemprogramm-Bearbeitungsumgebung weist eine Kontexterzeugung nahezu in Echtzeit auf. Anstelle der Notwendigkeit, alle vorhergehenden Anweisungen eines Teileprogramms auszuführen, um einen realistischen Kontext für anschließende Bearbeitungen zu erzeugen, ersetzen Surrogatdatenvorgänge unter Verwendung zuvor gespeicherter Daten die Ausführung bestimmter Sätze von Anweisungen. Die Surrogatdaten können während der tatsächlichen Ausführung von Vorgängen gespeichert werden, die in einem Teileprogramm aufgezeichnet werden. Ein Bearbeitungsmodus der Ausführung ersetzt die Daten als ein Surrogat für die Ausführung von Vorgängen, die anderenfalls diese Daten erzeugen würden. Für die Kontexterzeugung können signifikante Zeiteinsparungen erreicht werden, derart, dass eine Bearbeitung innerhalb eines Betriebskontext stattfindet, der bezüglich seiner Genauigkeit nahezu in Echtzeit wiederholt aktualisiert werden kann. Dies ermöglicht eine bequeme Programmmodifikation auch durch relativ wenig geschulte Benutzer mithilfe der nativen Benutzeroberfläche des Maschinensichtsystems anstelle der Verwendung einer schwierig zu benutzenden textbasierten oder auf grafischen Objekten beruhenden Bearbeitungsumgebung.

Description

  • GEBIET DER ERFINDUNG
  • Die Erfindung betrifft allgemein Maschinensichtprüfungssysteme und insbesondere Verfahren zum Erstellen und Bearbeiten von Teileprogrammen in solchen Systemen.
  • ALLGEMEINER STAND DER TECHNIK
  • Präzisionsmaschinensichtprüfungssysteme (oder kurz „Sichtsysteme”) können dazu benutzt werden, präzise dimensionale Messungen geprüfter Objekte zu erlangen und verschiedene andere Objekteigenschaften zu prüfen. Solche Systeme können einen Computer, eine Kamera und ein optisches System sowie ein Präzisionsgestell aufweisen, das in einer Vielzahl von Richtungen bewegbar ist, damit die Kamera die Merkmale eines geprüften Werkstücks abtasten kann. Ein beispielhaftes System des Stands der Technik, das im Handel erhältlich ist, ist die Modellreihe QUICK VISION® PC-basierter Sichtsystem und die Software QVPAK®, erhältlich von der Mitutoyo America Corporation (MAC), ansässig in Aurora, Illinois, USA. Die Merkmale und der Betrieb der Sichtsystemmodellreihe QUICK VISION® und der Software QVPAK® werden beispielsweise im QVPAK 3D CNC Vision Measuring Machine User's Guide, veröffentlicht im Januar 2003, und im QVPAK 3D CNC Vision Measuring Machine Operation Guide, veröffentlicht im September 1996, allgemein beschrieben, wobei beide Schriften hiermit in ihrer Gesamtheit in den vorliegenden Gegenstand mit einbezogen werden. Dieses Produkt, beispielhaft vertreten durch das Modell QV302 Pro, ist dazu in der Lage, ein optisches System des Mikroskoptyps zu benutzen, um Bilder eines Werkstücks mit unterschiedlicher Vergrößerung bereitzustellen, und das Gestell nach Bedarf zu bewegen, um über die Grenze eines einzelnen Videobilds hinaus über die Werkstückoberfläche zu fahren. Ein einzelnes Videobild umfasst typischerweise nur einen Abschnitt des beobachteten oder geprüften Werkstücks, je nach gewünschter Vergrößerung, Messauflösung und den physischen Größeneinschränkungen solcher Systeme.
  • Maschinensichtprüfungssysteme verwenden im Allgemeinen automatische Videoprüfung. US-Patentschrift Nr. 6,542,180 lehrt verschiedene Aspekte einer solchen automatischen Videoprüfung und wird hiermit in ihrer Gesamtheit in den vorliegenden Gegenstand mit einbezogen. Gemäß der Lehre des Patents '180 weisen automatische Videoprüfmetrologieinstrumente allgemein eine Programmierfunktion auf, die es dem Benutzer erlaubt, für eine jeweilige Werkstückkonfiguration eine automatische Prüfereignisabfolge zu definieren. Diese kann beispielsweise durch textbasierte Programmierung implementiert werden, oder durch einen Aufzeichnungsmodus, der nach und nach die Prüfereignisabfolge „erlernt”, indem eine Abfolge von Maschinensteueranweisungen gespeichert wird, die einer Abfolge von Prüfvorgängen entsprechen, die von einem Benutzer mithilfe einer grafischen Benutzeroberfläche durchgeführt werden, oder durch eine Kombination beider Verfahren. Ein solcher Aufzeichnungsmodus wird häufig als „Einlernmodus” oder „Trainingsmodus” bezeichnet. Nachdem die Prüfereignisabfolge im „Einlernmodus” definiert wurde, kann diese Abfolge dazu benutzt werden, im „Durchlaufmodus” Bilder eines Werkstücks automatisch zu erfassen (und zusätzlich zu analysieren oder zu prüfen).
  • Videowerkzeuge (oder kurz „Werkzeuge”) und andere Funktionen der grafischen Benutzeroberfläche können manuell benutzt werden, um eine manuelle Prüfung und/oder Maschinensteuervorgänge zu erreichen (im „manuellen Modus”). Ihre Einrichtungsparameter und ihr Betrieb können ebenfalls im Einlernmodus aufgezeichnet werden, um automatische Prüfungsprogramme oder „Teileprogramme” zu erstellen. Zu Videowerkzeugen können beispielsweise Kanten-/Grenzerkennungswerkzeuge, Autofokuswerkzeuge, Form- oder Musterzuordnungswerkzeuge, Dimensionsmesswerkzeuge und dergleichen gehören. Zu anderen Funktionen der grafischen Benutzeroberfläche können Dialogkästen im Zusammenhang mit der Datenanalyse, der Schritt- und Wiederholungsschleifenprogrammierung und dergleichen gehören. Beispielsweise werden solche Werkzeuge routinemäßig in verschiedenen handelsüblichen Maschinensichtprüfungssystemen wie der oben erörterten Sichtsystemmodellreihe QUICK VISION® und der zugehörigen Software QVPAK® benutzt.
  • Die Maschinensteueranweisungen, die die spezifische Prüfereignisabfolge enthalten (d. h. wie die einzelnen Bilder zu erfassen sind und wie die erfassten Bilder jeweils zu analysieren/zu prüfen sind), werden allgemein als ein „Teileprogramm” oder „Werkstückprogramm” gespeichert, das für die jeweilige Werkstückkonfiguration spezifisch ist. Beispielsweise definiert ein Teileprogramm, wie die einzelnen Bilder zu erfassen sind, d. h. wie und bei welcher Beleuchtung, Vergrößerung usw. die Kamera relativ zum Werkstück zu positionieren ist. Außerdem definiert das Teileprogramm, wie ein erfasstes Bild zu analysieren/zu prüfen ist, beispielsweise durch Verwendung eines oder mehrerer Videowerkzeuge wie etwa der Kanten-/Grenzerkennungsvideowerkzeuge.
  • Das Bearbeiten eines Teileprogramms für ein Maschinensichtprüfungssystem ist eine komplexere Aufgabe als das Bearbeiten eines Programms für ein Maschinenwerkzeug oder einen Montageroboter oder dergleichen. Beispielsweise weisen Teileprogramme für Maschinensichtprüfungssysteme spätere Abschnitte auf, die Vorgänge steuern und/oder bildabhängige Messergebnisse bereitstellen, die wenigstens teilweise von den Ergebnissen abhängig sind, die durch das Ausführen eines vorhergehenden Abschnitts des Programms bestimmt werden, oder von der jeweiligen Instanz eines Werkstücks, das dazu benutzt wird, die Bilder bereitzustellen, die für die Prüfungsvorgänge entscheidend sind. Ferner können die erforderliche Beleuchtung und/oder Belichtungsdauer für ein bestimmtes Bild von einer bestimmten Instanz eines Werkstücks abhängen. Wenn ein Benutzer ferner ein teilweise abgeschlossenes Teileprogramm speichert und das Teileprogramm zu einem späteren Zeitpunkt wieder aufruft, um die Programmierung zu ändern oder fertigzustellen, ist möglicherweise nicht bekannt, ob in der Zwischenzeit bestimmte Arten von Änderungen aufgetreten sind (z. B. Änderungen der Umgebungsbedingungen, versehentliches Bewegen des Teils auf dem Gestell usw.), die die anschließenden Bearbeitungen des Teileprogramms negativ beeinflussen können. Aufgrund solcher Probleme war es bei einigen solcher Systeme standardmäßige Praxis, alle Anweisungen eines Teilprogramms vom Anfang bis zu etwaigen zusätzlichen Modifikationen oder Ergänzungen zu den Teileprogrammanweisungen und einschließlich derselben auszuführen, um zu prüfen, ob die Modifikationen und/oder Ergänzungen auf Grundlage eines für ihren Betrieb realistischen Satzes von Bedingungen programmiert werden. Die Ausführung aller Anweisungen eines Teileprogramms zur Bereitstellung einer realistischen Betriebsbedingung für Modifikationen oder Ergänzungen der Anweisungen ist bei einem großen Teileprogramm allerdings unpraktisch (z. B. bei einem Teileprogramm mit einer großen Anzahl von Bilderfassungen und/oder Merkmalprüfungen), was häufig auf Maschinensichtprüfungssysteme zutrifft, die eine mikroskopische Prüfung (z. B. Messungen in Mikrometerauflösung) an makroskopischen Objekten (z. B. Objekten, die sich über mehrere zehn oder hunderte von Millimeter erstrecken) bereitstellen. Es besteht Bedarf an einer Bearbeitungsumgebung, die während der Bearbeitungsvorgänge Betriebsbedingungen in kurzer Zeit (z. B. nahezu in „Echtzeit”) auf zuverlässige Weise aktualisieren kann und eine schnellere, effizientere, intuitivere sowie flexiblere und robustere Erstellung und Bearbeitung von Teileprogrammen für Präzisionsmaschinensichtprüfungssysteme ermöglicht.
  • KURZDARSTELLUNG
  • Diese Kurzdarstellung soll eine Auswahl von Konzepten in vereinfachter Form vorstellen, die an späterer Stelle in der detaillierten Beschreibung weiter beschrieben werden. Diese Kurzdarstellung soll keine Hauptmerkmale des beanspruchten Gegenstands identifizieren und soll auch nicht als Hilfestellung bei der Bestimmung des Umfangs des beanspruchten Gegenstands herangezogen werden.
  • Gemäß den oben umrissenen Überlegungen wäre es wünschenswert, wenn ein Maschinensichtprüfungssystem Aktualisierungen am Betriebskontext beim Bearbeiten eines Teileprogramms nahezu in Echtzeit bereitstellt, um zu prüfen, dass zum Zeitpunkt des Programmierens von Modifikationen und/oder Ergänzungen ein realistischer Satz von Betriebsbedingungen als Grundlage oder Kontext für die Modifikationen und/oder Ergänzungen verfügbar ist. Dies ist insbesondere dann wichtig, wenn das Teileprogramm durch das Aufzeichnen tatsächlicher Steuervorgänge erstellt und bearbeitet wird, die von einem Benutzer des Maschinensichtprüfungssystems eingegeben werden, da der Benutzer die Einzelheiten seiner Eingabevorgänge auf Grundlage des Zustands des Maschinensichtprüfungssystems und/oder des Erscheinens und der Position der Bilder, die zum Zeitpunkt der Bereitstellung der Eingabevorgänge vorliegen, intuitiv auswählt usw. Auf diese Weise kann der Benutzer nicht an einer beliebigen Stelle in einem Teileprogramm mit einer gültigen und zuverlässigen Modifikation des Teileprogramms beginnen, ohne zunächst das System im Wesentlichen im gleichen Betriebskontext an dem Standort einzurichten, der auch bei der Ausführung der vorhergehenden Anweisungen des Teileprogramms in deren automatischem Modus der Ausführung im Durchlaufmodus bereitgestellt würde. Bislang hat kein universelles Maschinensichtprüfungssystem und insbesondere kein System, das tatsächliche benutzergesteuerte Vorgänge aufzeichnet, um ein Teileprogramm zu erstellen (im Gegensatz etwa zu einfachen Programmiersystemen auf Grundlage grafischer Objekte oder Text), eine Bearbeitungsumgebung bereitgestellt, die während der Bearbeitungsvorgänge auf zuverlässige und robuste Weise einen gültigen Teileprogrammierungsbearbeitungskontext nahezu in Echtzeit bereitstellt.
  • Um diese wünschenswerte Bearbeitungsumgebung zu ermöglichen, wird hier eine Maschinensichtprüfungssystem-Bearbeitungsumgebung mit Echtzeitkontexterzeugungsfunktionen offenbart. Das Maschinensichtprüfungssystem weist einen Bildgebungsabschnitt, ein Gestell zum Halten von einem oder mehreren Werkstücken in einem Sichtkasten (SF) des Bildgebungsabschnitts, einen Steuerabschnitt, eine Anzeige und eine Benutzeroberfläche auf.
  • In verschiedenen Ausführungsformen umfasst das Maschinensichtprüfungssystem ferner einen Durchlaufmodus, einen Einlernmodus und einen Bearbeitungsabschnitt. Der Durchlaufmodus ist betriebsfähig, um ein zuvor erstelltes Teileprogramm anhand eines Durchlaufmodus der Ausführung auszuführen. Der Einlernmodus ist betriebsfähig, um Benutzereingaben zum Steuern von Vorgängen des Maschinensichtprüfungssystems zu empfangen und Teileprogrammanweisungen aufzuzeichnen, die den gesteuerten Vorgängen entsprechen, um ein Teileprogramm zu erstellen. Der Einlernmodus weist außerdem eine Bearbeitungsbenutzeroberfläche auf, die eine bearbeitbare Programmdarstellung von Teileprogrammanweisungen umfasst, wobei die Teileprogrammdarstellung Anweisungsdarstellungen umfasst. Der Bearbeitungsabschnitt ist betriebsfähig, um ein Teileprogramm zu bearbeiten, und weist einen Bearbeitungsausführungsabschnitt auf, der betriebsfähig ist, um zuvor aufgezeichnete Teileprogrammanweisungen gemäß einem Bearbeitungsmodus der Ausführung auszuführen, der sich vom Durchlaufmodus der Ausführung unterscheidet.
  • In verschiedenen Ausführungsformen ist der Einlernmodus derart konfiguriert, dass er ferner betriebsfähig ist, um automatisch jeweilige Surrogatdaten aufzuzeichnen, die einem jeweiligen Satz aufgezeichneter Teileprogrammanweisungen zugeordnet sind, wobei wenigstens einige dieser Surrogatdaten Daten aufweisen, die sich aus tatsächlichen Steuervorgängen ergeben, die dem zugeordneten Satz aufgezeichneter Anweisungen entsprechen. Außerdem weist der Bearbeitungsmodus der Ausführung einen Surrogatausführungsmodus auf. Wenn während des Surrogatausführungsmodus für wenigstens einen Satz von Teileprogrammanweisungen zuvor jeweilige Surrogatdaten im Zusammenhang mit diesem Satz von Teileprogrammanweisungen aufgezeichnet wurden, werden wenigstens einige Bestandteile dieses Satzes von Teileprogrammanweisungen nicht ausgeführt. Mit anderen Worten, die entsprechenden zugeordneten tatsächlichen Steuervorgänge werden nicht ausgeführt, und die jeweiligen Surrogatdaten werden im nachfolgenden Betrieb des Surrogatausführungsmodus als Ersatz für Daten benutzt, die sich anderenfalls aus diesen nicht ausgeführten tatsächlichen Steuervorgängen ergeben würden.
  • In verschiedenen Ausführungsformen kann das Erstellen eines Teileprogramms das Modifizieren einer zuvor aufgezeichneten Teileprogrammanweisung umfassen.
  • In verschiedenen Ausführungsformen können jeweilige Surrogatdaten Daten umfassen, die sich aus der tatsächlichen Ausführung von gesteuerten Vorgängen ergeben, die auf Grundlage einer empfangenen Benutzereingabe gesteuert werden, und diese gesteuerten Vorgänge werden aufgezeichnet, um den zugeordneten jeweiligen Satz aufgezeichneter Teileprogrammanweisungen bereitzustellen.
  • In verschiedenen Ausführungsformen umfasst der Bearbeitungsmodus der Ausführung einen tatsächlichen Ausführungsmodus, und wenigstens einige jeweilige Surrogatdaten umfassen Daten, die sich aus der tatsächlichen Ausführung gesteuerter Vorgänge ergeben, die auf Grundlage der Ausführung eines zuvor aufgezeichneten zugeordneten jeweiligen Satzes aufgezeichneter Teileprogrammanweisungen mithilfe des tatsächlichen Ausführungsmodus gesteuert werden.
  • In verschiedenen Ausführungsformen kann das Maschinensichtprüfungssystem einen Programmstatusverwaltungsabschnitt umfassen, der betriebsfähig ist, um die aufgezeichneten Teileprogrammanweisungen in einer bearbeitbaren Teileprogrammdatei zu speichern, und wenn die aufgezeichneten Teileprogrammanweisungen als eine bearbeitbare Teileprogrammdatei gespeichert werden, werden auch jeweilige Surrogatdaten gespeichert, die einem jeweiligen Satz aufgezeichneter Teileprogrammanweisungen in der bearbeitbaren Teileprogrammdatei zugeordnet sind. In einigen Ausführungsformen ist das Maschinensichtprüfungssystem betriebsfähig, um die gespeicherte bearbeitbare Teileprogrammdatei zum Bearbeiten zu laden, und das Maschinensichtprüfungssystem ist derart konfiguriert, dass dann, wenn das gespeicherte bearbeitbare Teileprogrammdatei zum Bearbeiten geladen wird, die zugeordneten gespeicherten jeweiligen Surrogatdaten automatisch zur Benutzung im Surrogatausführungsmodus verfügbar gemacht werden. In einer Implementierung ist der Programmstatusverwaltungsabschnitt ferner betriebsfähig, um die aufgezeichneten Teileprogrammanweisungen in einer geschützten Teileprogrammdatei zu speichern, die mithilfe des Durchlaufmodus der Ausführung ausführbar ist, wobei wenigstens eins von dem Durchlaufmodus der Ausführung und der geschützten Teileprogrammdatei derart konfiguriert ist, dass die Ergebnisse des Durchlaufmodus der Ausführung nicht von zuvor aufgezeichneten Surrogatdaten, die der geschützten Teileprogrammdatei entsprechen, beeinflusst werden. In einigen Ausführungsformen ist der Einlernmodus dazu konfiguriert, in einem jeweiligen Satz aufgezeichneter Teileprogrammanweisungen eine Angabe dazu aufzuzeichnen, ob jeweilige Surrogatdaten zuvor im Zusammenhang mit diesem jeweiligen Satz aufgezeichneter Teileprogrammanweisungen aufgezeichnet wurden, und der Programmstatusverwaltungsabschnitt ist dazu konfiguriert, Angaben dazu, ob jeweilige Surrogatdaten zuvor im Zusammenhang mit einem jeweiligen Satz aufgezeichneter Teileprogrammanweisungen aufgezeichnet wurden, zu entfernen, bevor die aufgezeichneten Teileprogrammanweisungen in der geschützten Teileprogrammdatei gespeichert werden.
  • In verschiedenen Ausführungsformen kann der Einlernmodus dazu konfiguriert sein, in einem jeweiligen Satz aufgezeichneter Teileprogrammanweisungen eine Angabe dazu aufzuzeichnen, ob jeweilige Surrogatdaten zuvor im Zusammenhang mit dem jeweiligen Satz von Teileprogrammanweisungen aufgezeichnet wurden. In einer Ausführungsform ist die Angabe in einer ersten Anweisung des jeweiligen Satzes von aufgezeichneten Teileprogrammanweisungen enthalten. In einer Ausführungsform kann der jeweilige Satz von aufgezeichneten Teileprogrammanweisungen Anweisungen umfassen, die in einer Mark-up-Sprache (z. B. XML oder einer Ableitung davon) geschrieben sind. In verschiedenen Ausführungsformen kann der jeweilige Satz von aufgezeichneten Teileprogrammanweisungen Anweisungen wenigstens eins von einem Element, einem übergeordneten Element, einem Behälter-Element und einem untergeordneten Element umfassen, die in der Mark-up-Sprache geschrieben sind. In einer Ausführungsform kann die Angabe das Vorhandensein jeweiliger Surrogatdaten umfassen, die in dem jeweiligen Satz von aufgezeichneten Teileprogrammanweisungen Anweisungen enthalten sind. In einer Ausführungsform kann die Angabe einen jeweiligen Identifikator umfassen, der im jeweiligen Satz von aufgezeichneten Teileprogrammanweisungen enthalten ist, wobei der jeweilige Identifikator dazu verwendbar ist, die entsprechenden jeweiligen Surrogatdaten in einem Surrogatdatenspeicherabschnitt des Maschinensichtprüfungssystems aufzufinden.
  • In verschiedenen Ausführungsformen umfasst der Bearbeitungsabschnitt Bearbeitungsanweisungen, die dazu verwendbar sind, ein Teileprogramm zu bearbeiten, und der Bearbeitungsausführungsabschnitt ist derart konfiguriert, dass der Bearbeitungsmodus der Ausführung dann, wenn der Benutzer die Bearbeitungsbenutzeroberfläche zum Eingeben einer Bearbeitungsanweisung für die Bearbeitung des Programms an einer Zielposition eingibt, die in der Teileprogrammdarstellung angegeben wird, an einer gültigen Kontextstartposition im Teileprogramm vor der Zielposition beginnt und den Surrogatausführungsmodus zum Ausführen von wenigstens einen Teil der Teileprogrammanweisungen benutzt, um einen gültigen Kontext zum Bearbeiten des Teileprogramms an der Zielposition herzustellen.
  • In verschiedenen Ausführungsformen kann es sich bei einem eingegebenen Bearbeitungsbefehl um einen Befehl zum Modifizieren eines Teileprogramms an der Zielposition handeln, und bei der Teileprogrammanweisung an der Zielposition kann es sich um eine zuvor aufgezeichnete Teileprogrammanweisung handeln, die modifiziert werden soll. In einer Ausführungsformen kann es sich bei dem eingegebenen Bearbeitungsbefehl um einen Befehl zum Einfügen oder Anhängen von Anweisungen in bzw. an das Teileprogramm an der Zielposition handeln, und bei der Teileprogrammanweisung an der Zielposition kann es sich um eine Teileprogrammanweisung handeln, die erstellt und an der Zielposition eingefügt oder daran angehängt werden soll. In einer Ausführungsform beinhaltet das Aufstellen des gültigen Kontexts an einer Zielposition das Herstellen des Hardware-Zustands des Maschinensichtprüfungssystems in einem erwarteten oder geeigneten Zustand für die Ausführung von Steuervorgängen, die einer Teileprogrammanweisung an der Zielposition entsprechen. In einer Ausführungsform umfasst die gültige Kontextstartposition im Teileprogramm eins von (a) dem Beginn der Teileprogrammanweisungen und (b) der nächsten Anweisung nach einem zuvor ausgeführten Bearbeitungsinitialisierungsblock, der Teileprogrammanweisungen umfasst. Ein solcher Bearbeitungsinitialisierungsblock ist in der gleichzeitig eingereichten „System and Method Utilizing An Editing Initalization Block In A Part Program Editing Environment In A Machine Vision System” (Anwaltsaktenzeichen Nr. MEIP137678) offenbart, die hiermit in den vorliegenden Gegenstand mit einbezogen wird. Zur weiteren Verdeutlichung der Bedeutung einer „gültigen Kontext”-Startposition in einem Teileprogramm bedeutet dies beispielsweise, aber nicht einschränkend, dass die Ausführung des Programms an dieser bestimmten Position mit der Maschinensichtprüfung in einem erwarteten oder geeigneten Zustand zum Ausführen des nächsten Steuervorgangs und/oder einer entsprechenden Teileprogrammanweisung an oder nach der bestimmten Position beginnen kann. Beispielsweise und nicht einschränkend kann eine andere Art gültiger Kontextstartposition in einigen Fällen unmittelbar vor einem ausführbaren Satz von Teileprogrammanweisungen liegen, die einen vollständigen Satz zuvor gespeicherter Systemsoftware- und Hardwarezustandsparameter oder -variablen enthalten, die der Position in den Teileprogrammanweisungen entsprechen, wobei dieser Satz von Teileprogrammanweisungen dann ausgeführt werden kann, um an dieser Position der von Teileprogrammanweisungen einen wirksam äquivalenten Software- und Hardwarezustand herzustellen oder erneut herzustellen. Eine andere Art gültiger Kontextstartposition kann in einigen Fällen unmittelbar nach der Halteposition des tatsächlichen Ausführens der Teileprogrammanweisungen nach dem Beginn ab einer gültigen Kontextstartposition liegen. Eine andere Art gültiger Kontextstartposition kann in einigen Fällen unmittelbar nach der Halteposition des Ausführens der Teileprogrammanweisungen im Surrogatausführungsmodus, wie hierin offenbart, nach dem Beginn ab einer gültigen Kontextstartposition liegen.
  • In einer Ausführungsform ist der Einlernmodus derart konfiguriert, dass die Einlernmodusbenutzeroberfläche dann, wenn der Bearbeitungsausführungsmodus einen gültigen Kontext an einer Zielposition herstellt, dazu konfiguriert ist, Einlernmodusbenutzeroberflächenelemente anzuzeigen, die von einem Benutzer bedienbar sind, um Teileprogrammanweisungen an der Zielposition zu bearbeiten und einzufügen, und diese Einlernmodusbenutzeroberflächenelemente umfassen Videowerkzeugauswahlelemente. In einer Ausführungsform ist der Einlernmodus derart konfiguriert, dass dann, wenn der gültige Kontext an der Zielposition hergestellt wurde, die Einlernmodusbenutzeroberfläche dazu konfiguriert ist, eine Kontextstatusangabe in der Nähe der Angabe der Zielposition anzuzeigen, die in der Teileprogrammdarstellung angegeben ist, und die Kontextstatusangabe dazu eingestellt ist, anzugeben, dass ein gültiger Kontext an der Zielposition hergestellt wurde. In einer Ausführungsform ist der Einlernmodus derart konfiguriert, dass dann, wenn der Bearbeitungsmodus der Ausführung den Surrogatausführungsmodus zum Ausführen wenigstens eines Teils der Teileprogrammanweisungen benutzt, um den gültigen Kontext herzustellen, der Zustand der Kontextstatusangabe auf einen Zustand eingestellt wird, der spezifisch angibt, dass der Surrogatausführungsmodus zum Herstellen des gültigen Kontexts benutzt wurde. In einer Ausführungsform ist die Kontextstatusangabe ein Anweisungszeiger, der in der Nähe der bearbeitbaren Teileprogrammdarstellung enthalten ist. In einer Ausführungsform umfasst der Bearbeitungsmodus der Ausführung einen tatsächlichen Ausführungsmodus, der die tatsächliche Ausführung gesteuerter Vorgänge bereitstellt, die auf Grundlage der Ausführung eines zuvor aufgezeichneten Satzes von Teileprogrammanweisungen gesteuert werden, und die Bearbeitungsbenutzeroberfläche weist ein Steuerelement auf, das vom Benutzer bedienbar ist, um den tatsächlichen Ausführungsmodus zum Ausführen eines Satzes von Teileprogrammanweisungen zu benutzen, die ausreichend sind, um einen gültigen Kontext zum Bearbeiten des Teileprogramms an einer Zielposition herzustellen. In einer Ausführungsform ist der Einlernmodus derart konfiguriert, dass dann, wenn der Bearbeitungsmodus der Ausführung ausschließlich den tatsächlichen Ausführungsmodus zum Ausführen der Teileprogrammanweisungen benutzt, die ausreichen, um den gültigen Kontext herzustellen, die Kontextstatusangabe auf einen Zustand eingestellt wird, der spezifisch angibt, dass der tatsächliche Ausführungsmodus zum Herstellen des gültigen Kontexts benutzt wurde. In einer Ausführungsform ist der Einlernmodus derart konfiguriert, dass dann, wenn kein gültiger Kontext an der Zielposition hergestellt wurde, der Zustand der Kontextstatusangabe dazu eingestellt wird, anzugeben, dass der Kontext wenigstens eins von unbekannt oder nicht gültig ist. In einer Ausführungsform beginnt der Bearbeitungsmodus der Ausführung standardmäßig automatisch an der Kontextstartposition. In einer Ausführungsform verwendet der Bearbeitungsmodus der Ausführung standardmäßig automatisch den Surrogatausführungsmodus zum Ausführen von wenigstens einem Teil der Teileprogrammanweisungen. In einer Ausführungsform umfasst der Bearbeitungsmodus der Ausführung einen tatsächlichen Ausführungsmodus, der die tatsächliche Ausführung gesteuerter Vorgänge bereitstellt, die auf Grundlage der Ausführung eines zuvor aufgezeichneten Satzes von Teileprogrammanweisungen gesteuert werden, und wenn die Zielposition innerhalb eines übergeordneten Zielelements dargestellt wird, das in der bearbeitbaren Teileprogrammdarstellung dargestellt wird, so umfasst der Surrogatausführungsmodus ein Umschalten in den tatsächlichen Ausführungsmodus an einer Startposition von Teileprogrammanweisungen, die dem übergeordneten Zielelement entsprechen. In einer Ausführungsform umfasst die Zielposition eine Anweisung, die einen Vorgang steuert, der einem Videowerkzeug entspricht, das ein erfasstes Bild analysiert, und das übergeordnete Zielelement umfasst eine Anweisung, die einen Vorgang des Maschinensichtprüfungssystems steuert, um die Bilderfassungsbedingungen für das erfasste Bild einzurichten. In einer Ausführungsform umfasst der Bearbeitungsmodus der Ausführung einen tatsächlichen Ausführungsmodus, der eine tatsächliche Ausführung gesteuerter Vorgänge bereitstellt, die auf Grundlage eines zuvor aufgezeichneten Satzes von Teileprogrammanweisungen gesteuert werden, und der Surrogatausführungsmodus umfasst ein Umschalten in den tatsächlichen Ausführungsmodus der Teileprogrammanweisungen für Anweisungen, die zwingend physische Systemänderungen erfordern, um den gültigen Kontext herzustellen. In einer Ausführungsform umfasst der Bearbeitungsmodus der Ausführung einen tatsächlichen Ausführungsmodus, der eine tatsächliche Ausführung gesteuerter Vorgänge bereitstellt, die auf Grundlage eines zuvor aufgezeichneten Satzes von Teileprogrammanweisungen gesteuert werden, und der Surrogatausführungsmodus umfasst ein Umschalten in den tatsächlichen Ausführungsmodus für einen Satz von Teileprogrammanweisungen, die während der Durchlaufmodusausführung Ergebnisdaten bereitstellen und für die die entsprechenden Surrogatdaten gegenwärtig nicht zur Verwendung als ein Ersatz für die Ergebnisdaten aufgezeichnet sind, die sich anderenfalls aus den ihnen zugeordneten gesteuerten Vorgängen ergeben würden. In einer Ausführungsform umfasst der Bearbeitungsmodus der Ausführung einen tatsächlichen Ausführungsmodus, der eine tatsächliche Ausführung gesteuerter Vorgänge bereitstellt, die auf Grundlage eines zuvor aufgezeichneten Satzes von Teileprogrammanweisungen gesteuert werden, und der Surrogatausführungsmodus umfasst ein Umschalten in den tatsächlichen Ausführungsmodus für wenigstens einige Teileprogrammanweisungen, die Vorgänge steuern, die die physische Position des Gestells relativ zum Bildgebungsabschnitt ändern, und die Einlernmodusbenutzeroberfläche umfasst einen Abfragekasten, der fragt, ob der Benutzer die Vorgänge des tatsächlichen Ausführungsmodus akzeptiert, einschließlich einer Bewegung des physischen Positionsgestells vor der tatsächlichen Ausführung der Bewegung.
  • In verschiedenen Ausführungsformen ist der Bearbeitungsmodus der Ausführung derart konfiguriert, dass dann, wenn wenigstens eine der zuvor aufgezeichneten Teileprogrammanweisungen dazu modifiziert wird, mithilfe von Bearbeitungsbefehlen eine modifiziert Teileprogrammanweisung bereitzustellen, und die modifizierte Teileprogrammanweisung zum Aufzeichnen im Teileprogramm akzeptiert wird, die zugeordneten Steuervorgängen tatsächlich ausgeführt werden und die zugeordneten Surrogatdaten erzeugt und gespeichert werden. In einer Ausführungsform werden die Surrogatdaten aus einer Analyse von Werkstückbildern eines tatsächlichen Werkstücks hergeleitet, das auf dem Gestell angeordnet ist, wobei die Bilder während eines Zeitraums erfasst werden, der der Modifikation und Aufzeichnung der modifizierten Teileprogrammanweisung entspricht.
  • In verschiedenen Ausführungsformen weist der Satz von Teileprogrammanweisungen Anweisungen auf, die Bilderfassungsvorgänge durchführen, und ein Kantenerkennungsvideowerkzeug, das Kantenerkennungsvorgänge umfasst, die im Falle ihrer Ausführung die Kantenpunktpositionen identifizieren, die an einer erkannten Kante im erfassten Bild angeordnet sind, und die Surrogatdaten umfassen Kantenpunktpositionen. In einer Ausführungsform werden während des Surrogatausführungsmodus wenigstens die Bilderfassungsvorgänge und die Kantenerkennungsvorgänge nicht ausgeführt.
  • In verschiedenen Ausführungsformen ist das Maschinensichtprüfungssystem ein Softwareemulator eines tatsächlichen Maschinensichtprüfungssystems, der die gesteuerte Hardware des tatsächlichen Maschinensichtprüfungssystems emuliert, derart, dass es einen virtuellen Betrieb durch Teileprogrammanweisungen, die am tatsächlichen Maschinensichtprüfungssystem benutzbar sind, und durch gesteuerte Vorgänge ermöglicht, die von einem Benutzer über die Benutzeroberfläche des Maschinensichtprüfungssystems eingegeben werden. In einer Ausführungsform umfasst das Werkstück Werkstückdaten, die dazu konfiguriert sind, ein virtuelles Werkstück bereitzustellen, das in Verbindung mit dem Softwareemulator des tatsächlichen Maschinensichtprüfungssystems arbeitet.
  • In einigen Ausführungsformen umfasst der Einlernmodus eine Einlernmodusbenutzeroberfläche mit einem Ergebnisfenster, das Ergebnisse aufgrund der Ausführung von Teileprogrammanweisungen anzeigt, und der Einlernmodus ist derart konfiguriert, dass dann, wenn die betreffenden Ergebnisse Surrogatdatenergebnisse auf Grundlage der Verwendung des Surrogatausführungsmodus zur Ausführung von Teileprogrammanweisungen sind, die Einlernmodusbenutzeroberfläche dazu konfiguriert ist, eine Ergebnisstatusangabe in der Nähe der Surrogatdatenergebnisse anzuzeigen, und die Ergebnisstatusangabe dazu eingestellt wird, anzugeben, dass die betreffenden Ergebnisse auf Surrogatdaten beruhen. In einer Ausführungsform kann das Ergebnisfenster etwa so erscheinen, wie es in einer Patentanmeldung namens „Machine Vision System Program Editing Environment Including Synchronized User Interface Features” (Anwaltsaktenzeichen Nr. MEIP138244) offenbart ist, die gleichzeitig eingereicht wurde und hiermit in den vorliegenden Gegenstand mit einbezogen wird. In verschiedenen Ausführungsformen umfasst die Ergebnisstatusangabe jedes Mal dann, wenn ein Ergebnis auf Surrogatdaten beruht und im Ergebnisfenster angezeigt wird, das des auf Surrogatdaten- beruhenden Ergebnisses mit einer bestimmten Schriftfarbe oder einer bestimmten Texthervorhebungsfarbe oder dergleichen darstellt.
  • Um hinsichtlich des Kontexts die Bedeutung eines „Kontexts” oder Betriebskontexts in Zusammenhang mit einer Bearbeitungsumgebung weiter zu verdeutlichen, so ist es beispielsweise, aber nicht einschränkend wünschenswert, bestimmte Parameter an bestimmten Bearbeitungspositionen im Teileprogramm zu kennen, wenn fortgesetzte Bearbeitungen an einem Teileprogramm in einer Benutzeroberfläche vorgenommen werden. Um beispielsweise die richtigen Schwellenwerte, Größe und Position für ein Videowerkzeug einzustellen, muss das erwartete Videobild Informationen wie die richtige Gestellposition, Beleuchtungspegel, Vergrößerung usw. aufweisen. In einer Ausführungsform kann der „Hardwarekontext” als diese Art von Informationen umfassend definiert sein. Um zu erfahren, ob eine Sequenz für fortgesetzte Bearbeitungen des Teileprogramms richtig ist, ist es außerdem zu nützlich, zu wissen, was bereits getan wurde, darunter auch, welche Merkmale gemessen wurden, welcher Teil des Koordinatensystems genutzt wird usw. In einer Ausführungsform kann der „Softwarekontext” als diese Art von Informationen umfassend definiert sein. Man wird verstehen, dass gemäß verschiedenen oben aufgeführten und hier offenbarten Merkmalen ein genauer Kontext bereitgestellt werden kann, wenn ein Teileprogramm zu Beginn aufgezeichnet wird, und ebenso später im Durchlaufmodus unter Bedingungen, in denen alle Anweisungen der Reihe nach ausgeführt wurden. Dies stellt einen gültigen Kontext für fortgesetzte Bearbeitungen des Teileprogramms bereit, darunter das Angeben von etwaigen Messungen und Ergebnissen, die bereits vom Teileprogramm erzeugt wurden.
  • Man wird verstehen, dass das Bereitstellen einer einfachen, zeiteffizienten und robusten Bearbeitungsumgebung für Maschinensichtteileprogramme wesentlich schwieriger ist als das Bereitstellen einer angemessenen Bearbeitungsumgebung für die Bearbeitung einfacher Computerprogramme, da während des Programmbearbeitungsprozesses potenziell gefährliche Bewegungen und mechanische Zusammenstöße ermittelt und berücksichtigt werden müssen. Außerdem ist das Bereitstellen einer einfachen, zeiteffizienten und robusten Bearbeitungsumgebung für Maschinensichtteileprogramme wesentlich schwieriger als das Bereitstellen einer angemessenen Bearbeitungsumgebung zum Bearbeiten von Montageroboterprogrammen und dergleichen (z. B. Programmen, die die geometrischen Bewegungen und Stellglieder und dergleichen eines Roboters steuern), da einzigartige Werkstückgeometrien und Oberflächenbeschaffenheiten erfordern, dass während des Programmbearbeitungsprozesses nicht vorhersehbare und subtile Beleuchtungs- und Bildgebungseffekte ermittelt und berücksichtigt werden. Außerdem müssen Maschinensichtprüfungssysteme Vorgänge ausführen, die die Beziehung zwischen Merkmalen bestimmen, die von jeweiligen Vorgängen, die über ein Teileprogramm verteilt sein können, an unterschiedlichen Positionen eines Werkstücks und zu unterschiedlichen Zeitpunkten gemessen und geprüft werden. Daher ist das Bereitstellen einer robusten Bearbeitungsumgebung, die es auch einem relativ wenig geschulten Benutzer erlaubt, ein existierendes Teileprogramm ab einem beliebigen Punkt innerhalb des Programms zu bearbeiten, eine schwierige Aufgabe. Anhand der vorliegenden Offenbarung wird man verstehen, dass der Surrogatausführungsmodus und die Verfahren, die hier offenbart sind, von besonderer Nützlichkeit als Beitrag für eine Lösung der Kombination der oben aufgeführten Probleme sind (z. B. die Notwendigkeit, eine rasche Ausführung zum Herstellen des Bearbeitungskontexts bereitzustellen usw.), die spezifisch für die Bereitstellung einer zeiteffizienten und robusten Bearbeitungsumgebung für Teileprogramme für ein universelles Maschinensichtprüfungssystem sind.
  • Die Verfahren der vorliegenden Erfindung sind insofern vorteilhaft, als beim Bearbeiten eines Teileprogramm anstelle der Notwendigkeit, alle vorhergehenden Anweisungen eines Teileprogramms auszuführen, um einen realistischen Kontext für anschließende Bearbeitungen zu erzeugen, Surrogatdatenvorgänge unter Verwendung zuvor gespeicherter Daten die Ausführung bestimmter Sätze von Anweisungen ersetzen. Die Surrogatdaten können während der tatsächlichen Ausführung von Vorgängen gespeichert werden, die in einem Teileprogramm aufgezeichnet werden. Der hier offenbarte Bearbeitungsmodus der Ausführung ersetzt die Daten als ein Surrogat für die Ausführung von Vorgängen, die anderenfalls im Zuge zeitaufwändiger Vorgänge diese Daten erzeugen würden. Für die Kontexterzeugung können signifikante Zeiteinsparungen erreicht werden, derart, dass eine Bearbeitung innerhalb eines Betriebskontext stattfinden kann, der bezüglich seiner Genauigkeit nahezu in Echtzeit wiederholt aktualisiert werden kann. Dies ermöglicht eine bequeme Programmmodifikation auch durch relativ wenig geschulte Benutzer mithilfe der nativen Benutzeroberfläche des Maschinensichtsystems anstelle der Verwendung einer schwierig zu benutzenden textbasierten oder auf grafischen Objekten beruhenden Bearbeitungsumgebung, ohne einen zuverlässig realistischen Betriebskontext zu bieten.
  • Es ist zu beachten, dass sich der hier offenbarte Surrogatausführungsmodus von bereits bekannten Simulationsverfahren zum Erstellen und Bearbeiten verschiedener Arten von Programmen unterscheidet, da die Ausführung verschiedener Vorgänge nicht nur simuliert wird (z. B. mithilfe eines simulierten Werkstücks oder dergleichen), sondern tatsächlich unterdrückt wird, und zwar mithilfe der Surrogatdaten anstelle der tatsächlichen Ausführung. Ferner können die Surrogatdaten außergewöhnlich realistisch sein, da sie sich in verschiedenen Ausführungsformen aus tatsächlichen Prüfungsvorgängen an einem tatsächlichen Werkstück ergeben können. Dies ist bei einigen Maschinensichtprüfungssystemen besonders vorteilhaft und auch notwendig. Das hier offenbarte Verfahren kann eine besonders schnelle und besonders realistische und genaue Bearbeitungsumgebung bereitstellen, die speziell für Maschinensichtprüfungssysteme notwendig und geeignet ist.
  • BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorstehenden Aspekte und zahlreiche der begleitenden Vorteile dieser Erfindung werden bei besserem Verständnis durch Bezugnahme auf die folgende detaillierte Beschreibung in Verbindung mit den begleitenden Zeichnungen deutlicher werden; es zeigen:
  • 1 ein Diagramm, das verschiedene typische Komponenten eines universellen Präzisionsmaschinensichtprüfungssystems darstellt;
  • 2A und 2B Blockdiagramme eines Steuersystemabschnitts und eines Sichtkomponentenabschnitts eines Maschinensichtprüfungssystems ähnlich wie dem aus 1, und weisen Merkmale auf, die in verschiedenen Ausführungsformen gemäß dieser Erfindung verwendbar sind;
  • 3 ein Diagramm einer Bearbeitungsoberfläche mit einer Teileprogrammdarstellung, die mehrere Anweisungsdarstellungen aufweist;
  • 4 ein Diagramm einer Benutzeroberfläche mit einem Bild eines Werkstücks, an dem das Teileprogramm gemäß 3 ausgeführt wurde;
  • 5A und 5B Diagramme von Mark-up-Sprachcode-Anweisungen des Teileprogramms, die einigen der Anweisungsdarstellungen aus 3 entsprechen;
  • 6 ein Diagramm einer Bearbeitungsoberfläche mit der Teileprogrammdarstellung aus 3 und ferner mit einem Aufklappmenü zum Durchführen von Bearbeitungsmodusbefehlen oder Funktionen wie dem Einfügen von Anweisungen in das Teileprogramm;
  • 7 ein Diagramm einer Bearbeitungsoberfläche mit der Teileprogrammdarstellung aus 3 und ferner mit zusätzlichen Teileprogrammanweisungsdarstellungen, die am Ende der Teileprogrammdarstellung eingefügt oder angehängt wurden;
  • 8 ein Diagramm einer Benutzeroberfläche mit einem Bild eines Werkstücks, an dem das Teileprogramm gemäß 7 ausgeführt wurde;
  • 9 ein Diagramm einer Bearbeitungsoberfläche mit der Teileprogrammdarstellung aus 7 und ferner mit einem Aufklappmenü zum Durchführen von Bearbeitungsmodusbefehlen oder Funktionen wie dem Modifizieren von Anweisungen im Teileprogramm, und einem Anfragekasten, der fragt, ob der Benutzer eine entsprechende Bewegung des Gestells genehmigt;
  • 10A und 10B Diagramme der Benutzeroberfläche aus 8, wobei ein „Kastenwerkzeug”-Videowerkzeug durch Bearbeiten modifiziert wurde;
  • 11A und 11B Diagramme von Mark-up-Sprachcode-Anweisungen, die Surrogatdaten aufweisen, die entsprechend der Modifikation aus 10A und 10B geändert wurden;
  • 12A und 12B Ablaufdiagramme, die eine Ausführungsform eines Dienstprogramms zum Bereitstellen einer Maschinensichtsystemprogramm-Bearbeitungsumgebung darstellen, die Echtzeit-Kontexterzeugungsfunktionen aufweist; und
  • 13 ein Ablaufdiagramm, das eine Ausführungsform eines Dienstprogramms zum Durchführen eines Surrogatausführungsmodus darstellt, um einen gültigen Bearbeitungskontext an einer Teileprogrammposition bereitzustellen, die durch eine Teileprogrammanweisungsdarstellung, ein Teileprogrammanweisungselement oder einen Teileprogrammanweisungsknoten angegeben wird.
  • DETAILLIERTE BESCHREIBUNG
  • 1 ist ein Blockdiagramm eines beispielhaften Maschinensichtprüfungssystems 10, das gemäß den hier beschriebenen Verfahren verwendbar ist. Das Maschinensichtprüfungssystem 10 weist eine Sichtmessmaschine 12 auf, die wirksam mit einem steuernden Computersystem 14 zum Austauschen von Daten und Steuersignalen verbunden ist. Das steuernde Computersystem 14 ist ferner zum Austauschen von Daten und Steuersignalen wirksam mit einem Monitor oder einer Anzeige 16, einem Drucker 18, einem Joystick 22, einer Tastatur 24 und einer Maus 26 verbunden. Der Monitor oder die Anzeige 16 kann eine Benutzeroberfläche anzeigen, die zum Steuern und/oder Programmieren der Vorgänge des Maschinensichtprüfungssystems 10 geeignet ist.
  • Die Sichtmessmaschine 12 weist ein bewegliches Werkstückgestell 32 und ein optisches Bildgebungssystem 34 auf, das ein Zoomobjektiv oder Wechselobjektive aufweisen kann. Das Zoomobjektiv oder die Wechselobjektive stellen allgemein verschiedene Vergrößerungen für die Bilder bereit, die vom optischen Bildgebungssystem 34 bereitgestellt werden. Das Maschinensichtprüfungssystem 10 ist allgemein mit der Sichtsystemmodellreihe QUICK VISION® und der Software QVPAK® vergleichbar, die oben erörtert wurden, sowie mit ähnlichen handelsüblichen Präzisionsmaschinensichtprüfungssystemen des Stands der Technik. Das Maschinensichtprüfungssystem 10 wird auch in den gemeinschaftlich erteilten US-Patenten Nr. 7,454,053 und 7,324,682 sowie in den US-Patentveröffentlichungen Nr. 2010/0158343 und 2011/0103679 beschrieben, die hiermit in ihrer Gesamtheit in den vorliegenden Gegenstand mit einbezogen werden.
  • 2A und 2B sind Blockdiagramme eines Steuersystemabschnitts 120 und eines Sichtkomponentenabschnitts 200 eines Maschinensichtprüfungssystems 100 ähnlich wie dem aus 1 und weisen Merkmale auf, die in verschiedenen Ausführungsformen gemäß der vorliegenden Erfindung verwendbar sind. Wie später detaillierter beschrieben werden soll, dient der Steuersystemabschnitt 120 dazu, den Sichtkomponentenabschnitt 200 zu steuern. Wie in 2A gezeigt, weist der Sichtkomponentenabschnitt 200 einen optischen Montageabschnitt 205, Lichtquellen 220, 230, und 240 und ein Werkstückgestell 210 mit einem zentralen transparenten Abschnitt 212 auf. Das Werkstückgestell 210 ist steuerbar an einer X- und einer Y-Achse beweglich, die in einer Ebene liegen, die allgemein parallel zur Fläche des Gestells sind, auf der ein Werkstück 20 angeordnet sein kann. Der optische Montageabschnitt 205 weist ein Kamerasystem 260 und eine Wechselobjektivlinse 250 auf und kann eine Schwenklinsenbaugruppe 280 mit Linsen 286 und 288 aufweisen. Alternativ zur Schwenklinsenbaugruppe kann eine fest angeordnete oder manuell auswechselbare Vergrößerungsänderungslinse oder eine Zoomlinsenkonfiguration oder dergleichen vorgesehen sein. Der optische Montageabschnitt 205 ist mithilfe eines steuerbaren Motors 294 steuerbar an einer Z-Achse beweglich, die allgemein orthogonal zur X- und Y-Achse ist, wie unten beschrieben.
  • Ein Werkstück 20 oder eine Platte oder Halterung, die mehrere Werkstücke 20 hält, die vom Maschinensichtprüfungssystem 100 erfasst werden sollen, ist auf dem Werkstückgestell 210 angeordnet. Das Werkstückgestell 210 kann so gesteuert werden, dass es sich relativ zum optischen Montageabschnitt 205 bewegt, derart, dass die Wechselobjektivlinse 250 sich zwischen Positionen an einem Werkstück 20 und/oder zwischen mehreren Werkstücken 20 bewegt. Eins oder mehrere eines Gestelllichts 220, eines Koaxiallichts 230 und eines Oberflächenlichts 240 können jeweils Quelllicht 222, 232 oder 242 abstrahlen, um das Werkstück oder die Werkstücke 20 zu beleuchten. Das Quelllicht wird reflektiert oder als Werkstücklicht 255 durchgelassen, das durch die Wechselobjektivlinse 250 und die Schwenklinsenbaugruppe 280 tritt und vom Kamerasystem 260 aufgenommen wird. Das vom Kamerasystem 260 erfasste Bild des oder der Werkstücke 20 wird auf einer Signalleitung 262 an den Steuersystemabschnitt 120 ausgegeben. Die Lichtquellen 220, 230 und 240 können jeweils über Signalleitungen oder Busse 221, 231 und 241 mit dem Steuersystemabschnitt 120 verbunden sein. Um die Bildvergrößerung zu ändern, kann der Steuersystemabschnitt 120 die Schwenklinsenbaugruppe 280 über eine Signalleitung oder einen Bus 281 an einer Achse 284 drehen, um eine Schwenklinse auszuwählen.
  • In verschiedenen Ausführungsbeispielen ist der optische Montageabschnitt 205 mithilfe eines steuerbaren Motors 294, der ein Stellglied, ein Verbindungskabel oder dergleichen antreibt, in der vertikalen Z-Achsrichtung relativ zum Werkstückgestell 210 beweglich, um den optischen Montageabschnitt 205 an der Z-Achse zu bewegen und den Fokus des vom Kamerasystem 260 erfassten Bildes des Werkstücks 20 zu ändern. Der Begriff Z-Achse im hier verwendeten Sinne bezeichnet die Achse, die zum Fokussieren des Bildes benutzt werden soll, das vom optischen Montageabschnitt 205 erlangt wird. Der steuerbare Motor 294 ist bei Verwendung über eine Signalleitung 296 mit der Eingabe-/Ausgabe-Schnittstelle 130 verbunden.
  • Wie in 2A gezeigt, weist der Steuersystemabschnitt 120 in verschiedenen Ausführungsbeispielen eine Steuereinrichtung 125, einen Stromversorgungsabschnitt 128, die Eingabe-/Ausgabe-Schnittstelle 130, einen Speicher 140, einen Werkstückprogrammgenerator und -ausführer 150, einen Aufzeichnungsübersetzer 155 und eine Einlernmoduskomponente 156, eine Durchlaufmoduskomponente 157, einen Bearbeitungsabschnitt 160, einen Surrogatdatenmanager 180, einen Programmstatusmanager 185, einen Knotenmanager 190 und einen Scrollautomatikmanager 195 auf. Die einzelnen Komponenten sowie weitere unten beschriebenen Komponenten können durch einen oder mehrere Daten-/Steuerbusse und/oder eine oder mehrere Anwendungsprogrammierungsschnittstellen oder durch direkte Verbindungen zwischen den verschiedenen Elementen miteinander verbunden sein.
  • Die Eingabe-/Ausgabeschnittstelle 130 weist Bildgebungssteuerschnittstelle 131, eine Bewegungssteuerschnittstelle 132, eine Beleuchtungssteuerschnittstelle 133 und eine Linsensteuerschnittstelle 134 auf. Die Bewegungssteuerschnittstelle 132 kann ein Positionssteuerelement 132a und ein Geschwindigkeits-/Beschleunigungssteuerelement 132b aufweisen, auch wenn diese Elemente zusammengeführt und/oder nicht voneinander unterscheidbar sein können. Die Beleuchtungssteuerschnittstelle 133 steuert beispielsweise die Auswahl, die Stromversorgung, den Betriebsschalter und die Strobe-Impulstaktung, falls zutreffend, der verschiedenen entsprechenden Lichtquellen des Maschinensichtprüfungssystems 100.
  • Der Speicher 140 weist einen Bilddateispeicherabschnitt 141, einen Werkstückprogrammspeicherabschnitt 142, der eine oder mehrere Teileprogramms 142PP oder dergleichen aufweisen kann, einen Videowerkzeugabschnitt 143 und einen Surrogatdatenspeicherabschnitt 144 auf. Der Videowerkzeugabschnitt 143 weist einen Videowerkzeugabschnitt 143a und andere Videowerkzeugabschnitte auf, die die GUI (grafische Benutzeroberfläche), den Bildverarbeitungsbetrieb usw. für jedes der entsprechenden Videowerkzeuge bestimmen. Viele bekannte Videowerkzeuge sind in den handelsüblichen Maschinensichtprüfungssystem wie der Sichtsystemmodellreihe QUICK VISION® und der zugehörigen Software QVPAK®, wie erörtert, enthalten. Der Videowerkzeugabschnitt 143 weist auch einen ROI-Generator 143x (ROI: Region of interest, interessierende Region) auf, der automatische, halb-automatische und/oder manuelle Vorgänge ermöglicht, die verschiedene ROIs definieren, die in verschiedenen Videowerkzeugen des Videowerkzeugabschnitts 143 ausführbar sind. Der Surrogatdatenspeicherabschnitt 144 weist Surrogatdaten 144SD auf. Wie detaillierter unten beschrieben, kann gemäß der vorliegenden Erfindung beim Bearbeiten eines Teileprogramms anstelle der Notwendigkeit, alle Schritte des Teileprogramms auszuführen, um den benötigten Kontext für fortgesetzte Bearbeitungen zu erzeugen, ein bestimmter Kontext unter Verwendung zuvor gespeicherter Daten als Surrogatdaten simuliert werden.
  • Im Allgemeinen speichert der Speicherabschnitt 140 Daten, die verwendbar sind, um die Sichtsystemkomponentenabschnitt 200 zu betätigen und ein Bild des Werkstück 20 zu erfassen oder zu erlangen, derart, dass das erlangte Bild des Werkstücks 20 gewünschte Bildeigenschaften aufweist. Der Speicherabschnitt 140 kann auch Prüfergebnisdaten speichern, kann ferner Daten speichern, die zum Betätigen des Maschinensichtprüfungssystems 100 verwendbar sind, um manuell oder automatisch verschiedene Prüf- und Messvorgänge an den erlangten Bildern durchzuführen (teilweise z. B. als Videowerkzeuge implementiert) und die Ergebnisse durch die Eingabe-/Ausgabeschnittstelle 130 auszugeben. Der Speicherabschnitt 140 kann auch Daten enthalten, die eine Benutzeroberfläche definieren, die über die Eingabe-/Ausgabeschnittstelle 130 bedienbar ist.
  • Die Signalleitungen oder Busse 221, 231, und 241 des Gestelllichts 220, des Koaxiallichts 230 und des Oberflächenlichts 240 sind jeweils 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. Außer dem Befördern von Bilddaten kann die Signalleitung 262 ein Signal von der Steuerung 125 befördern, das eine Bilderlangung einleitet.
  • Eine oder mehrere Anzeigevorrichtungen 136 (z. B. die Anzeige 16 aus 1) und eine oder mehrere Eingabevorrichtungen 138 (z. B. der Joystick 22, die Tastatur 24 und die Maus 26 aus 1) können ebenfalls mit der Eingabe-/Ausgabeschnittstelle 130 verbunden sein. Die Anzeigevorrichtungen 136 und Eingabevorrichtungen 138 können dazu benutzt werden, eine Benutzeroberfläche, anzuzeigen, die verschiedene Benutzeroberflächenfunktionen aufweisen kann, die verwendbar sind, um Teileprogramme zu erstellen und/oder zu modifizieren, die vom Kamerasystem 260 erfassten Bilder aufzurufen und/oder den Sichtsystemkomponentenabschnitt 200 direkt zu steuern. Insbesondere werden gemäß verschiedenen Ausführungsbeispielen der vorliegenden Erfindung die Anzeigevorrichtungen 136 und Eingabevorrichtungen 138 dazu benutzt, verschiedene Benutzeroberflächefunktionen zu präsentieren, die dazu verwendbar sind, eine rasche, effiziente, intuitive und flexible Bearbeitung von Teileprogrammen auf dem Maschinensichtprüfungssystem 100 zu ermöglichen.
  • Der Werkstückgenerator und -ausführer 150, der Aufzeichnungsübersetzer 155, der Einlernmodusausführer 156, der Durchlaufmodusausführer 157, der Bearbeitungsabschnitt 160, der Surrogatdatenmanager 180, der Programmstatusmanager 185, der Knotenmanager 190 und der Scrollautomatikmanager 195 können in einer Ausführungsform alle als Teil eines allgemeinen Maschinensteuerungsblocks MC gelten, der mit der Steuereinrichtung 125 verknüpft ist. Der Werkstückprogrammgenerator- und -ausführer 150 ist für das Erstellen und Ausführen von Teileprogrammen zuständig. Man wird verstehen, dass die Begriffe „Werkstückprogramm” und „Teileprogramm” in diesen Ausführungen austauschbar verwendet werden können. Wenn gemäß den Betriebsvorgängen des Werkstückprogrammgenerators und -ausführers 150, in verschiedenen Ausführungsbeispielen ein Benutzer das Maschinensichtprüfungssystem 100 benutzt, um ein Teileprogramm für das Werkstück 20 zu erstellen, generiert der Benutzer Teileprogrammanweisungen entweder durch explizites automatisches, halbautomatisches oder manuelles Codieren der Anweisungen mithilfe einer Werkstückprogrammiersprache, und/oder durch Generieren der Anweisungen, indem er das Maschinensichtprüfungssystem 100 in einem Einlernmodus betreibt (wie z. B. durch den Einlernmodusabschnitt 156 gesteuert), um eine gewünschte Bilderlangungseinlernsequenz bereitzustellen. Beispielsweise kann eine Einlernsequenz umfassen, ein Werkstückmerkmal im Sichtkasten (SK) zu positionieren, die Lichtpegel einzustellen, zu fokussieren oder automatisch zu fokussieren, ein Bild zu erlangen und eine Prüfungseinlernsequenz bereitzustellen, die auf das Bild angewandt wird (z. B. mithilfe von Videowerkzeugen). Der Einlernmodus arbeitet derart, dass die Sequenz(en) erfasst oder aufgezeichnet und in entsprechende Teileprogrammschritte (d. h. Anweisungen) umgewandelt werden. Wenn das Teileprogramm in einem Durchlaufmodus ausgeführt wird (wie z. B. durch den Durchlaufmodusabschnitt 157 gesteuert), veranlassen diese Teileprogrammschritte das Maschinensichtprüfungssystem, die eingelernten Bilderlangungs- und Prüfungsvorgänge zu reproduzieren, um ein oder mehrere Werkstücke, die mit dem Werkstück übereinstimmen, das beim Erstellen des Teileprogramms verwendet wurde, automatisch zu prüfen.
  • Der Aufzeichnungsübersetzer 155 dient dazu, Maschinenvorgänge in Teileprogrammcode zu übersetzen. Mit anderen Worten, wenn ein Benutzer eine Aktion ausführt (z. B. das Ändern des Videowerkzeugs, das zum Messen eines Merkmals des Werkstücks verwendet wird), wird eine einfache Anweisung erzeugt, die in eine maschinenlesbare Sprache übersetzt wird, und es kann auch eine umgekehrte Übersetzung durchgeführt werden. Wie an späterer Stelle detailliert beschrieben, können in bestimmten Ausführungsformen der vorliegenden Erfindung bestimmte Mark-up-Sprachenanweisungen in einem Teileprogramm auch in Anweisungsdarstellungen in einer Benutzeroberfläche übersetzt werden. In einem bestimmten Ausführungsbeispiel kann es sich bei dem Mark-up-Sprachencode um XML-artigen Code handeln. Der Bearbeitungsabschnitt 160 stellt verschiedene Vorgänge und Benutzeroberflächenfunktionen im Zusammenhang mit dem Bearbeiten eines Teileprogramms bereit oder aktiviert diese, wie an späterer Stelle unter Bezugnahme auf 2B detailliert beschrieben werden soll.
  • Der Surrogatdatenmanager 180 ist mit Surrogatdaten verknüpft, die gemäß der vorliegenden Erfindung in einem Teileprogramm aufgezeichnet werden können. In bestimmten Implementierungen ist der Surrogatdatenmanager 180 dafür zuständig, die Surrogatdaten von einem Ausgang zu erlangen, wo diese normalerweise generiert würden, und dafür zu sorgen, dass die Surrogatdaten in das Teileprogramm geschrieben werden. Der Programmstatusmanager 185 verwaltet in einer Ausführungsform, ob Programme geschützt oder ungeschützt sind. In einer Implementierung kann ein ungeschütztes Teileprogramm gespeicherte Surrogatdaten aufweisen, während aus einem geschützten Teileprogramm alle Surrogatdaten entfernt wurden. In einem Ausführungsbeispiel sind geschützte Programme solche Programme, für die der Bearbeitungsvorgang abgeschlossen wurde, so dass sie in einem Werk in einem Durchlaufmodus benutzt werden können. In einer Ausführungsform kann ein Benutzer ein Teileprogramm auswählen, das geschützt werden soll, wobei der Programmstatusmanager 185 zu diesem Zeitpunkt automatisch alle Surrogatdaten entfernt, so dass das Teileprogramm während der Betriebszeit nicht durch zusätzliche Ausführungsschritte belastet wird. Der Programmstatusmanager 185 ist auch zuständig, wenn ein Programm ungeschützt ist, derart, dass die Surrogatdaten im Teileprogramm aufgezeichnet bleiben, und wenn ein Teileprogramm durch den Bearbeitungsabschnitt 160 aufgerufen wird, werden die Surrogatdaten als verfügbar angegeben.
  • In einer Ausführungsform ist der Knotenmanager 190 für das Verwalten von Knotennummern zuständig, die Knoten in einem Teileprogramm zugewiesen werden. In einer Implementierung wird innerhalb einer Darstellung eines Teileprogramms jeder der einzelnen Anweisungsdarstellungen eine Knotennummer zugewiesen. In bestimmten Implementierungen kann eine Baumdiagrammstruktur benutzt werden, die übergeordnete und untergeordnete Knoten aufweist. In bestimmten Implementierungen wird jeder Linie einer Teileprogrammdarstellung, die durch einen Aufzeichnungsübersetzer 155 erzeugt wird, vom Knotenmanager 190 eine Knotennummer zugewiesen. Der Scrollautomatikmanager 195 benutzt die vom Knotenmanager 190 zugewiesenen Knotennummern, um zugehörige Elemente von zugeordneten Teileprogrammelementen und entsprechenden Bearbeitungsfunktionen gleichzeitig in unterschiedlichen Fenstern anzuzeigen. Mit anderen Worten, wenn ein Benutzer sehen möchte, welche Messungen eines Werkstücks zu welchen Anweisungsdarstellungen und codierten Anweisungen in einem Teileprogramm gehören, durchläuft der Scrollautomatikmanager 195 automatisch die jeweiligen Fenster bis zu den relevanten Zeilen in der Teileprogrammdarstellung und/oder den codierten Anweisungen, die der relevanten Knotennummer entsprechen.
  • Verwandte Bearbeitungsmerkmale und -funktionen werden auch in den Patentanmeldungen namens „Machine Vision System Program Editing Environment Including Synchronized User Interface Features” (Anwaltsaktenzeichen Nr. MEIP138244), „System and Method Utilizing An Editing Initialization Block In A Part Program Editing Environment In A Machine Vision System” (Anwaltsaktenzeichen Nr. MEIP137678) und „Machine Vision System Editing Environment For A Part Program In Which A Continuous Stream Of Image Acquisition Operation Are Performed During A Run Mode” (Anwaltsaktenzeichen Nr. MEIP137944) beschrieben, die jeweils gleichzeitig mit dem vorliegenden Dokument eingereicht wurden und hiermit in den vorliegenden Gegenstand mit einbezogen werden.
  • 2B zeigt weitere Komponenten des Bearbeitungsabschnitts 160 aus 2A. Wie in 2B gezeigt, weist der Bearbeitungsabschnitt 160 eine Bearbeitungsvorgangssteuerung 174, einen Bearbeitungsbenutzeroberflächenabschnitt 176, einen Editorbefehlsabschnitt 177 und einen Bearbeitungsausführungsabschnitt 178 auf. Die Bearbeitungsvorgangssteuerung 174 steuert die Vorgänge für die Bearbeitungsfunktionen, und der Bearbeitungsbenutzeroberflächenabschnitt 176 stellt die Benutzeroberflächenmerkmale für die Bearbeitungsfunktionen bereit. Der Bearbeitungsbenutzeroberflächenabschnitt 176 weist ein Programmanweisungsdarstellungsfenster 176PI auf, das Darstellungsbenutzeroberflächenmerkmale 176R aufweist, die Knotenbenutzeroberflächenmerkmale 176N aufweisen. Das Programmanweisungsdarstellungsfenster 176PI stellt eine Teileprogrammdarstellung bereit, wie detaillierter unter Bezugnahme auf 3 beschrieben werden soll. In einer Ausführungsform kann die Teileprogrammdarstellung in einer Baumstruktur bereitgestellt werden Die Darstellungsbenutzeroberflächenmerkmale 176R stellen Merkmale wie einen Einfügezeiger bereit, der je nach Zustand des Kontextes und je nach Art der Erlangung des Kontextes (ob der Kontext z. B. anhand von Surrogatdaten, durch einen tatsächlichen Betriebsdurchlauf usw. produziert wurde) seine Farbe ändern kann. Bezüglich der Knotenbenutzeroberflächenmerkmale 176N können diese in einer Ausführungsform Merkmale wie Symbole oder zerbrochene Symbole und Farbhervorhebungen aufweisen, um anzugeben, ob ein Knoten aktiv ist, usw.
  • Der Bearbeitungsausführungsabschnitt 178 ist für verschiedene Ausführungsmodi während eines Bearbeitungsprozesses zuständig und weist einen Surrogatmodusabschnitt 180, einen tatsächlichen Modusabschnitt 191 und einen Bearbeitungsausführungsbenutzeroberflächenmerkmalabschnitt 192 auf. Der Surrogatmodusabschnitt 180 weist einen Knotenanalysator 181 auf, der Surrogatdatenvorgänge 181A und Maschinenvorgänge 181B aufweist. Wie im Folgenden detaillierter beschrieben werden soll, werden gemäß der vorliegenden Erfindung Surrogatdaten zum Generieren von Kontext für die fortgesetzten Bearbeitungsvorgänge benutzt, wenn der Surrogatmodusabschnitt 180 in einem Surrogatausführungsmodus arbeitet. Der Knotenanalysator 181 bestimmt in einer Implementierung, ob die Teileprogrammausführung den Zielknoten erreicht hat (wo z. B. eine Modifikation am Teileprogramm vorgenommen werden soll). Der Knotenanalysator 181 bestimmt anhand des betreffenden Knotentyps, ob die Surrogatdatenvorgänge 181A oder tatsächliche Maschinenvorgänge 181B durchgeführt werden. Im Allgemeinen werden nach dem Erreichen des Zielknotens tatsächliche Maschinenvorgänge durchgeführt, wobei für Teileprogrammanweisungen vor dem Zielknoten Surrogatdatenvorgänge benutzt werden können, um wenigstens einen Teil des Kontextes zu generieren, der für fortgesetzte Bearbeitungsvorgänge benötigt wird. Wenn Surrogatdaten fehlen, kann ein Benutzer dazu aufgefordert werden, tatsächliche Maschinenvorgänge zuzulassen/durchzuführen, um den benötigten Kontext zu generieren. In einer Implementierung wird jeder Knoten analysiert, um zu bestimmen, ob Surrogatdatenvorgänge anwendbar sind, einschließlich dessen, ob Surrogatdaten existieren, falls es sich um den richtigen Knotentyp für Surrogatdatenvorgänge handelt, oder alternativ, ob tatsächliche Maschinenvorgänge benutzt werden müssen usw.
  • Der tatsächliche Modusabschnitt 191 weist Vorgänge auf, die traditionellerweise eher von Maschinensichtsystemen des Stands der Technik durchgeführt werden. Man wird verstehen, dass der tatsächliche Modusabschnitt 191 bei Bedarf auch vom Surrogatmodusabschnitt 180 aufgerufen werden kann, um die Maschinenvorgänge 181B auszuführen. Der tatsächliche Modusabschnitt 191 weist Maschinenvorgänge 191A und Datenvorgänge 191B auf. Die Maschinenvorgänge 191A führen tatsächliche Maschinenvorgänge durch (z. B. das Bewegen des Gestells als Teil eines Videowerkzeugvorgangs), während die Datenvorgänge 191B im Allgemeinen Daten ausgeben. Die Bearbeitungsausführungsbenutzeroberflächenmerkmale 192 stellen Benutzeroberflächenmerkmale für die Ausführung von Bearbeitungsfunktionen bereit (z. B. Angaben zum Status verschiedener Ausführungsvorgänge wie etwa Farbcodes, die angeben, welche Teile eines Teileprogramms Surrogatdaten benutzt haben oder durch eine tatsächliche Ausführung usw. ausgeführt wurden).
  • Die Editorbefehle 177 weisen einen Betriebssegmentabschnitt 177A, einen Modifikationsabschnitt 177B und einen Einfüge-/Anhängungsabschnitt 177C auf. Die Vorgänge des Einfüge-/Anhängungsabschnitts 177C sollen nun unter Bezugnahme auf 68 detaillierter beschrieben werden, während der Betrieb des Modifikationsabschnitts 177B unter Bezugnahme auf 911B detaillierter beschrieben wird. Im Allgemeinen führt der Durchlaufsegmentabschnitt 177A einen tatsächlichen Durchlauf eines ausgewählten Segments des Teileprogramms durch. Man wird verstehen, dass zum Durchführen eines ausgewählten Segments des Teileprogramms der richtige Kontext bis zum ausgewählten Segment hergestellt werden muss. Wie im Folgenden detaillierter beschrieben werden soll, kann der richtige Kontext gemäß der vorliegenden Erfindung mithilfe von Surrogatdaten hergestellt werden. Wenn keine Surrogatdaten für einen bestimmten Abschnitt eines Teileprogramms vorliegen, kann ein Segment ausgeführt werden, um die benötigten Surrogatdaten zu generieren. Man wird verstehen, dass es bei Maschinensichtsystemen des Stands der Technik schwierig war, ein isoliertes Segment eines Teileprogramms durchzuführen, ohne alle vorhergehenden Abschnitte des Teileprogramms auszuführen, da der richtige Kontext bis zum ausgewählten Segment benötigt wurde. Wenn das Segment beispielsweise ein Absenken des Gestells erforderte, das System aber die X-Y-Z-Position des Gestells nicht kannte, war das Absenken des Gestells in eine unbekannte Position unter Umständen nicht ratsam. Das bei Implementierungen des Stands der Technik angewandte Verfahren bestand deshalb darin, das gesamte Teileprogramm von Anfang an auszuführen, um ein Segment in der Mitte durchführen zu können, wobei das Ausführen aller vorhergehenden Vorgänge viel Zeit in Anspruch nehmen konnte. Gemäß der vorliegenden Erfindung dagegen können Surrogatdaten benutzt werden, um einen richtigen Kontext zum Vornehmen von Bearbeitungen an einem Segment eines Teileprogramms oder zum Ausführen desselben herzustellen, ohne dass das gesamte Teileprogramm von Anfang an ausgeführt werden muss.
  • Der Modifikationsabschnitt 177B weist bestimmte Ähnlichkeiten zum Betrieb des Durchlaufsegmentabschnitts 177A auf. Wenn eine Anweisungsdarstellung in einem Teileprogramm zum Modifizieren ausgewählt wird, kann im Allgemeinen der Surrogatmodus für die Abschnitte des Teileprogramms benutzt werden, die der zu modifizierenden Anweisung vorausgehen. Wenn der Modifikationsbefehl für eine Anweisungsdarstellung in einem Teileprogramm ausgewählt wird, wird in einer Ausführungsform der Knoten für die Anweisungsdarstellung als Zielknoten bestimmt. Sobald der Zielknoten erreicht wird, schaltet der Editor aus dem Surrogatmodus in den tatsächlichen Ausführungsmodus um (wie z. B. vom tatsächlichen Modusabschnitt 191 gesteuert) und führt die erste relevante Teileprogrammanweisung des Knotens aus. Wenn die zur Modifikation ausgewählte Anweisung einem untergeordneten Knoten entspricht, kann bestimmt werden, dass die tatsächliche Ausführung in einer Ausführungsform am übergeordneten Knoten beginnt. Wenn ein untergeordneter Knoten im Zusammenhang mit einem Kastenwerkzeug modifiziert werden soll, kann in einem bestimmten Ausführungsbeispiel der übergeordnete Knoten, der das Einrichten der Bilderlangung für das Kastenwerkzeug beinhaltet, derjenige Knoten sein, an dem der Beginn der Ausführung eingestellt wird. Was die Einfüge-/Anhängungskomponente 177C betrifft, so kann es sein, dass auch der übergeordnete Knoten ausgeführt werden muss, um die gewünschte Einfügung durchzuführen, falls die Einfügung zwischen untergeordneten Knoten stattfindet. Man wird verstehen, dass in bestimmten Implementierungen ein Anhängevorgang allgemein als ein Sonderfall eines Einfügevorgangs betrachtet werden kann, der am Ende eines existierenden Teileprogramms stattfindet.
  • 3 ist ein Diagramm einer Bearbeitungsoberfläche 300 mit einer Darstellung eines Teileprogramms 310, das mehrere anfängliche Teileprogrammanweisungsdarstellungen 351364 aufweist. Die Bearbeitungsoberfläche 300 weist auch verschiedene Mess- und/oder Vorgangsauswahlleisten wie etwa die Auswahlleiste 320 auf. Der Betrieb der spezifischen Anweisungsdarstellungen der Teileprogrammdarstellung 310 soll unter Bezugnahme auf 4 detaillierter beschrieben werden.
  • 4 ist ein Diagramm einer Benutzeroberfläche 400 mit einem Bild eines Sichtkastenfensters 410 mit einem Werkstück 415, an dem das Teileprogramm aus 3 durchgeführt wurde. Die Benutzeroberfläche 400 weist auch verschiedene Mess- und/oder Vorgangsauswahlleisten wie etwa die Auswahlleisten 420 und 440, ein Echtzeit-X-Y-Z-(Positions-)koordinatenfenster 430, ein Lichtsteuerungsfenster 450 und ein Videowerkzeugparameterkasten 460 auf. Wie an späterer Stelle detaillierter beschrieben werden soll, werden verschiedene Merkmale am Werkstück 415 gemäß den zugehörigen Teileprogrammanweisungsdarstellungen aus 3 bestimmt, etwa Sätze von Kantenpunkten PTX, PTY, PT3 und PT4, Linien XLINE, YLINE, L3 und L4, ein Ausgangspunkt XYORIGIN und ein Schnittpunkt I2.
  • Die nachfolgende Beschreibung bezieht sich sowohl auf die ersten Teileprogrammanweisungsdarstellungen 351364 aus 3 als auch auf die entsprechenden Merkmale am Werkstück 415 aus 4. In einer Ausführungsform sind die einzelnen Anweisungsdarstellungen 351364 einem Knoten zugeordnet, und ihnen wird eine Knotennummer zugewiesen. In bestimmten Implementierungen wird eine Baumstruktur benutzt, wobei einige Anweisungsdarstellungen übergeordneten Knoten zugeordnet sind, während andere untergeordneten Knoten zugeordnet sind. Beispielsweise sind die untergeordneten Knotenanweisungsdarstellungen 351A351D, 353A353C, 354A354B, 361A361C und 362A362B jeweils übergeordneten Knotenanweisungsdarstellungen 351, 353, 354, 361 bzw. 362 zugeordnet. Man wird auch verstehen, dass in einer Ausführungsform die Anweisungsdarstellungen 351364, wie sie auf der Bearbeitungsoberfläche 300 dargestellt sind, Symbole und Kennzeichnungen umfassen, die von Mark-up-Sprachanweisungen des Teileprogramms hergeleitet werden. In einer Ausführungsform kann die Mark-up-Sprache des Teileprogramms XML-artigen Code umfassen. Die Anweisungsdarstellungen 351364 verweisen somit auf zugeordnete Codeanweisungen, die ausgeführt werden, wie an späterer Stelle unter Bezugnahme auf 5A und 5B detaillierter beschrieben werden soll.
  • Wie in 3 beginnt die Teileprogrammdarstellung 310 mit den Anweisungsdarstellungen 351 und 352, die angeben, dass der Benutzer manuell eine Position am Werkstück 415 auswählt, die als grober Ausgangspunkt GAP (nicht dargestellt) dient, und dann den Ausgangspunkt mit dem groben Ausgangspunkt GAP in Übereinstimmung bringt. Genauer ausgedrückt geben die Anweisungsdarstellungen 351A, 351B, 351C, und 351D an, dass der Benutzer ein manuelles Werkzeug einrichtet und nutzt, um den groben Ausgangspunkt GAP zu definieren, und die Anweisungsdarstellung 352 bringt den Ausgangspunkt mit dem groben Ausgangspunkt GAP in Übereinstimmung. Die Anweisungsdarstellung 353 gibt dann an, dass ein Kastenwerkzeug zum Messen der Linie XLINE geöffnet wird. Genauer ausgedrückt geben die Anweisungsdarstellungen 353A und 353B an, dass der Benutzer das Kastenwerkzeug einrichtet (was z. B. das Bewegen des Gestells in eine vorgegebene Position und das Erfassen eines entsprechendes Bildes beinhaltet) und dazu benutzt, die Kantenpunkte PTX zu bestimmen. Die Funktionen und Vorgänge von Kastenwerkzeugen und anderen Kantenerkennungsvideowerkzeugen sind im Stand der Technik bekannt und werden in der einbezogenen Referenzliteratur detaillierter beschrieben. Die Kantenpunkte PTX, die vom Kastenwerkzeug bestimmt wurden, werden dann von der Anweisungsdarstellung 353C zum Definieren der Linie XLINE benutzt. Ebenso gibt die Anweisungsdarstellung 354 an, dass ein Kastenwerkzeug zum Messen der Linie YLINE geöffnet wird, wobei die Anweisungsdarstellung 354A angibt, dass der Benutzer das Kastenwerkzeug benutzt, um die Kantenpunkte PTY zu bestimmen, die wiederum zum Definieren der Linie YLINE benutzt werden, wie durch die Anweisungsdarstellung 354B angegeben.
  • Die Anweisungsdarstellung 355 gibt dann an, dass am Schnittpunkt der Linien XLINE und YLINE ein Schnittpunkt XYORIGIN bestimmt wird. Die Anweisungsdarstellung 356 gibt dann an, dass das Maschinensichtsystem angewiesen wird, den Ausgangspunkt am Punkt XYORIGIN auszurichten. Die Anweisungsdarstellung 357 gibt dann an, dass das Maschinensichtsystem angewiesen wird, die X-Achse für das Werkstück 415 an der Linie XLINE auszurichten. Wie an späterer Stelle unter Bezugnahme auf 5 detaillierter beschrieben werden soll und wie durch die Kommentarzeile 358 angegeben, stellen die Betriebsvorgänge der Anweisungsdarstellungen 351357 die richtige Position und Ausrichtung des Werkstücks 415 zum Durchführen weiterer Messungen her.
  • Die Anweisungsdarstellung 361 gibt dann an, dass ein Kastenwerkzeug zum Messen der Linie L3 geöffnet wird. Genauer ausgedrückt geben die Anweisungsdarstellungen 361A und 361B an, dass der Benutzer das Kastenwerkzeug einrichtet (was z. B. das Bewegen des Gestells in eine vorgegebene Position und das Erfassen eines entsprechendes Bildes beinhaltet) und dazu benutzt, die Kantenpunkte PT3 zu bestimmen, die wiederum benutzt werden, um die Linie L3 zu definieren, wie von der Anweisungsdarstellung 361C angegeben. Wie an späterer Stelle detaillierter beschrieben werden soll, werden das Kastenwerkzeug zum Messen der Linie L3 (d. h., dargestellt als Kastenwerkzeug 470 in 4) und die zugeordneten Anweisungsdarstellungen 361 und 361A361C in 5A und 5B und 911B als Beispiele verwendet, um darzustellen, wie Surrogatdaten generiert, gespeichert und modifiziert werden.
  • Zurückkehrend zu 3 gibt die Anweisungsdarstellung 362 an, dass ein Kastenwerkzeug zum Messen der Linie L4 geöffnet wird, wobei die Anweisungsdarstellung 362A angibt, dass der Benutzer ein Kastenwerkzeug benutzt, um die Kantenpunkte PT4 zu bestimmen, die wiederum zum Definieren der Linie L4 benutzt werden, wie durch die Anweisungsdarstellung 362B angegeben. Die Anweisungsdarstellung 363 gibt an, dass der Benutzer eine ausgewählte Positionstoleranz definiert, und die Anweisungsdarstellung 364, dass dort, wo sich die zuvor bestimmten Linien L3 und L4 schneiden, ein Schnittpunkt I2 bestimmt wird.
  • Wenn das Teileprogramm, das der Darstellung 310 entspricht, gespeichert und beendet wurde und das Teileprogramm zum Bearbeiten erneut aufgerufen wird, war es bei Implementierungen des Stands der Technik notwendig, das gesamte Teileprogramm von Anfang an auszuführen, um einen gültigen Kontext für fortgesetzte Bearbeitungen des Teileprogramms zu schaffen. Obwohl Implementierungen des Stands der Technik korrekte Ergebnisse und Teileprogramme erzielt haben, indem bei jedem Aufrufen eines Teileprogramms zur Bearbeitung alle Anweisungen ausgeführt wurden, kann die Ausführung aller Anweisungen viel Zeit in Anspruch nehmen (insbesondere von Anweisungen, für die bestimmte zeitaufwändige Prozesse wie etwa Hardware-Interaktionen usw. notwendig sind). Wie später detaillierter beschrieben werden soll, können gemäß der vorliegenden Erfindung zuvor gespeicherte Daten als Surrogatdaten zum Simulieren eines gültigen Kontextes für fortgesetzte Bearbeitungen des Teileprogramms benutzt werden, anstatt das gesamte Teileprogramm von Anfang an auszuführen.
  • Mit anderen Worten, wenn in einer Ausführungsform fortgesetzte Bearbeitungen an dem Teileprogramm zum Vornehmen von Messungen am Werkstück 415 vorgenommen werden, ist es nützlich, bestimmte Parameter zu kennen. Um beispielsweise die richtigen Schwellenwerte, Größe und Position für ein Videowerkzeug zu kennen, muss das richtige Videobild mit Informationen wie der richtigen Gestellposition, den richtigen Beleuchtungspegeln, der richtigen Vergrößerung usw. vorliegen. In einer Ausführungsform können diese Informationen als Teil des „Hardwarekontextes” betrachtet werden. Um zu erfahren, ob eine Sequenz für fortgesetzte Bearbeitungen des Teileprogramms richtig ist, ist es außerdem zu nützlich, zu wissen, was bereits getan wurde, darunter auch, welche Merkmale gemessen wurden, welcher Teil des Koordinatensystems genutzt wird usw. In einer Ausführungsform können diese Informationen als Teil des „Softwarekontextes” betrachtet werden. In einer Ausführungsform gilt als Kontext allgemein das Herstellen der Benutzeroberfläche des Maschinensichtprüfungssystems in einem derartigen Zustand, dass alle native Benutzeroberflächenbedienungselemente zum Modifizieren des Teileprogramms bereitstehen. Wie oben erörtert, wird der richtige Kontext zu dem Zeitpunkt bereitgestellt, wenn das Teileprogramm erstmalig aufgezeichnet wird, und außerdem später während des Betriebsdurchlaufs, indem alle Teileprogrammanweisungen (die z. B. den Darstellungen 351364 entsprechen) allgemein der Reihe nach ausgeführt werden. Wie oben erörtert, stellt dies einen gültigen Kontext für fortgesetzte Bearbeitungen des Teileprogramms bereit, darunter die Angabe etwaiger Messungen und Ergebnisse, die bereits vom Teileprogramm produziert wurden (z. B. die Angaben der Linien XLINE, YLINE, L3, L4 und Schnittpunkte XYORIGIN und I2, wie in Bezug auf das Werkstück 415 in der Benutzeroberfläche 400 dargestellt).
  • Wie detaillierter unten beschrieben, kann gemäß der vorliegenden Erfindung beim Bearbeiten eines Teileprogramms anstelle der Notwendigkeit, alle Anweisungsdarstellungen des Teileprogramms auszuführen, um den benötigten Kontext zu erzeugen, ein bestimmter Kontext unter Verwendung zuvor gespeicherter Daten als Surrogatdaten simuliert werden. Kurz gesagt, während der Aufzeichnungs- oder Betriebsdurchlaufausführung eines Teileprogramms werden die zum Bestimmen des Kontextes benötigten Daten im Teileprogramm gespeichert. Dann können bestimmte Ergebnisse zu einem späteren Zeitpunkt unter Verwendung der gespeicherten Daten als Surrogatdaten simuliert werden, um den gewünschten Kontext zu erzeugen. Indem also die Ausführung bestimmter zeitaufwändiger Vorgänge vermieden wird (z. B. solcher, die Hardware-Interaktion verlangen, etwa das Bewegen des Gestells, Kantenerkennung, Fokussieren, Beleuchtungsänderungen, Musterzuordnung usw.), können wesentliche Zeiteinsparungen erreicht werden. Das Speichern von Daten, die später als Surrogatdaten benutzt werden können, soll unter Bezugnahme auf 5A und 5B detaillierter beschrieben werden.
  • 5A und 5B sind Diagramme 500A und 500B von Mark-up-Sprachcodeanweisungen, die den Anweisungsdarstellungen der Teileprogrammdarstellung aus 3 entsprechen. Insbesondere zeigen 5A und 5B die Teileprogrammanweisungen in XML-artigem Code, der den Anweisungsdarstellungen 361 und 361A361C aus 3 zum Messen der Linie L3 entspricht. Man wird verstehen, dass die Anweisungsdarstellungen 361 und 361A361C in einer Ausführungsform Symbole und Kennzeichnungen umfassen, die aus den XML-artigen Codeanweisungen aus 5A und 5B hergeleitet wurden. Die Anweisungsdarstellungen 361 und 361A361C werden nicht selbst ausgeführt, sondern verweisen stattdessen auf zugeordnete Codeanweisungen aus 5A und 5B, die ausgeführt werden.
  • Wie in 5A und 5B gezeigt, weisen die XML-artigen Codeanweisungen Knotenkennnummern 561, 561A, 561B und 561C auf, die in einer Ausführungsform den Anweisungsdarstellungen 361, 361A, 361B und 361C aus 3 entsprechen können. Die XML-artigen Codeanweisungen weisen auch bestimmte Positionsinformationen 510 für die Bildposition und bestimmte Kastenwerkzeugpositionsinformationen 520 für das Kastenwerkzeug auf, wie sie etwa in den Bereichen 430 und 460 der Benutzeroberfläche 400 aus 4 angezeigt werden können. Wie in 5B gezeigt, werden Daten 530 im Teileprogramm gespeichert, die zu einem späteren Zeitpunkt als Surrogatdaten zum Simulieren von Kontext benutzt werden können (wie z. B. später detaillierter unter Bezugnahme auf 68 beschrieben werden soll). Genauer gesagt, wenn die Anweisungsdarstellung 361B aus 3 angibt, dass das Kastenwerkzeug 470 aus 4 ausgeführt wird, um den Satz Kantenpunkte PT3 zu bestimmen, werden die Positionen des Satzes Kantenpunkte PT3 relativ zum Teilkoordinatensystem für das Werkstück in den XML-artigen Codeanweisungen als die Daten 530 gespeichert. Wie detaillierter unter Bezugnahme auf 11A und 11B beschrieben werden soll, können Modifikationen am Teileprogramm vorgenommen werden, die zu Modifikationen an den Surrogatdaten 530 führen.
  • 6 ist ein Diagramm einer Bearbeitungsoberfläche 600 mit der Teileprogrammdarstellung 310 aus 3 und ferner mit einem Aufklappmenü 620 zum Durchführen von Bearbeitungsmodusbefehlen oder Funktionen wie dem Einfügen von Anweisungen in das Teileprogramm. Wie in 6 gezeigt, weist das Aufklappmenü 620 eine Auswahl 621 zum Durchführen eines Einfügevorgangs, eine Auswahl 622 zum Durchführen eines Modifikationsvorgangs, eine Auswahl 623 zum Durchführen eines Löschvorgangs, eine Auswahl 624 zum Durchführen eines Auswahldurchlaufvorgangs, eine Auswahl 625 zum Durchführen eines Durchlauf-bis-Auswahl-Vorgangs, eine Auswahl 626 zum Durchführen eines Umschaltpunktvorgangs, eine Auswahl 627 zum Durchführen eines Bearbeitungsinitialisierungsblockmarker-Einstellvorgangs, eine Auswahl 628 zum Durchführen eines Bearbeitungsinitialisierungsblockmarker-Löschvorgangs und eine Auswahl 629 zum Durchführen eines Förderschrittschleifenvorgangs auf. In einer Ausführungsform kann das Aufklappmenü 620 bereitgestellt werden, wenn ein Benutzer eine bestimmte Anweisungsdarstellung wählt (in der Darstellung aus 6 etwa hat der Benutzer die letzte Anweisungsdarstellung 364 mithilfe einer Maus ausgewählt, um einen Selektor über die Anweisungsdarstellung 364 zu bewegen und dann rechts anzuklicken). Die ausgewählte Anweisungsdarstellung (z. B. Anweisungsdarstellung 364) kann durch einen Auswahlkasten (z. B. einen Auswahlkasten 640, wie er in 6 dargestellt ist) oder durch Hervorheben oder ein anderes Angabeverfahren angegeben werden. Wie an späterer Stelle unter Bezugnahme auf 7 und 8 detaillierter beschrieben werden soll, können zuvor gespeicherte Daten (z. B. die Daten 530 aus 5B) als Surrogatdaten zum Herstellen eines gültigen Kontextes für die ausgewählten Bearbeitungen am Teileprogramm benutzt werden, sobald ein Benutzer eine Anweisungsdarstellung (z. B. Anweisungsdarstellung 364) und einen Bearbeitungsvorgang aus dem Aufklappmenü 620 auswählt (z. B. die Auswahl 621 für einen Einfügevorgang). Zusätzlich zur Auswahl aus dem Aufklappmenü 620 für Bearbeitungsvorgänge kann die Auswahl 627 dazu benutzt werden, einen Bearbeitungsinitialisierungsblock herzustellen, der dazu beitragen kann, die Genauigkeit des mithilfe der Surrogatdaten simulierten Kontextes sicherzustellen.
  • Wie in der gleichzeitig eingereichten und gemeinschaftlich erteilten Anmeldung „System and Method Utilizing an Editing Initialization Block in a Teileprogramm Editing Environment in a Machine Vision System”, Anwaltsaktenzeichen Nr. MEIP137678, die bereits in den vorliegenden Gegenstand mit einbezogen wurde, beschrieben, kann der Benutzer eine der Anweisungsdarstellungen (z. B. Anweisungsdarstellung 357) als einen Bearbeitungsinitialisierungsblockmarker bezeichnen. Wenn der Benutzer die Anweisungsdarstellung 357 mit dem Bearbeitungsinitialisierungsblockmarker bezeichnet hat, gibt dies an, dass alle Anweisungsdarstellungen vor und bis zu der Anweisungsdarstellung 357 (d. h. Anweisungsdarstellungen 351357) Bearbeitungsinitialisierungs-Anweisungsdarstellungen sind, die einen Bearbeitungsinitialisierungsblock 650 bilden. Die Anweisungsdarstellung 357 wird damit als die letzte anfängliche Teileprogrammanweisungsdarstellung bestimmt, bei der es sich um einen Bearbeitungsinitialisierungsschritt handelt. In einer Ausführungsform kann eine Bearbeitungsinitialisierungsangabe in der Bearbeitungsoberfläche 600 vorgesehen sein, die angibt, dass die einzelnen Anweisungsdarstellungen 351357 Bearbeitungsinitialisierungsschritte sind. In der spezifischen beispielhaften Darstellung aus 6 ist ein Farbbalken 655 (schraffiert dargestellt) neben den Anweisungsdarstellungen 351357 vorgesehen, um anzugeben, dass sie sich im Bearbeitungsinitialisierungsblock 650 befinden. In alternativen Ausführungsformen können andere Bearbeitungsinitialisierungsangaben benutzt werden, um die Bearbeitungsinitialisierungs-Anweisungsdarstellungen anzugeben (z. B. ein Begrenzungszeiger, Begrenzungsmarker, Hervorhebung der eigentlichen Anweisungsdarstellungen anstelle eines Balkens neben den Schritten usw.). Wenn das Teileprogramm gespeichert wird, wird in einer Ausführungsform auch die Angabe dazu, welche Anweisungsdarstellungen Bearbeitungsinitialisierungs-Anweisungsdarstellungen sind, gespeichert.
  • Man wird verstehen, dass die verbleibenden anfänglichen Teileprogrammanweisungsdarstellungen 361364, die auf den Bearbeitungsinitialisierungsblock 650 folgen und die daher nicht im Bearbeitungsinitialisierungsblock enthalten sind, nicht in der gleichen Weise ausgeführt werden können, wenn der Bearbeitungsinitialisierungsblock ausgeführt wird, wie im Folgenden detaillierter beschrieben werden soll. In einer Ausführungsform werden die Anweisungsdarstellungen 361364 als in einem verbleibenden Anweisungsdarstellungsblock 660 befindlich gekennzeichnet.
  • Wie später detaillierter beschrieben werden soll, kann der Bearbeitungsinitialisierungsblock 650 in einer Ausführungsform dazu benutzt werden, bestimmte Änderungen der Bedingungen zu handhaben, die während der Bearbeitungsprozesses eines Teileprogramms auftreten können. Wenn ein Benutzer beispielsweise ein Teileprogramm speichert, den Arbeitsplatzrechner verlässt und später zurückkehrt, können in der Zwischenzeit bestimmte Änderungen aufgetreten sein (z. B. kann das Teil versehentlich auf dem Gestell verschoben worden sein), die sich auf die Bearbeitung des Teileprogramms auswirken können. Da es jedoch viel Zeit in Anspruch nehmen kann, alle vorhergehenden Anweisungen eines Teileprogramms (insbesondere solche Anweisungen, die bestimmte zeitaufwändige Prozesse erfordern, wie etwa Hardwareinteraktionen usw.) auszuführen, kann es sein, dass ein Benutzer nur bestimmte Anweisungen erneut ausführen möchte, die mithilfe von Surrogatdaten die Genauigkeit des simulierten Kontextes sicherstellen. Die Bearbeitungsinitialisierungs-Anweisungsdarstellungen des Bearbeitungsinitialisierungsblocks 650 stellen anfängliche Teileprogrammanweisungen dar, die ein Teilkoordinatensystem für das betreffende Teil wiederherstellen, um eine versehentliche Verschiebung des Teils auf dem Gestell zu kompensieren, seit die letzten Teileprogrammanweisungen durchgeführt wurden.
  • 7 ist ein Diagramm einer Bearbeitungsoberfläche 700 mit der Teileprogrammdarstellung 310 aus 3 und ferner mit einem weiteren Anweisungsdarstellungsblock 770. Der weitere Block 770 weist weitere Teileprogrammanweisungsdarstellungen 771774 auf, die mithilfe des Einfügevorgangs 621 nach dem Ausführen des Bearbeitungsinitialisierungsblocks 650 in das Teileprogramm eingefügt (oder daran angehängt) wurden. Die spezifischen Aspekte des Einfügevorgangs 621 sollen unter Bezugnahme auf 8 detaillierter beschrieben werden.
  • 8 ist ein Diagramm einer Benutzeroberfläche 800 mit einem Bild des Werkstücks 415, an dem die entsprechenden Teileprogrammanweisungen aus 7 durchgeführt werden. Wie in 8 gezeigt, hat das Ausführen des Bearbeitungsinitialisierungsblocks 650 die Positionen der Linien XLINE und YLINE und des Punktes XYORIGIN am Werkstück 415 erneut ermittelt. Genauer ausgedrückt wurden die entsprechenden Anweisungen ausgeführt, um Kastenwerkzeuge zum erneuten Ermitteln der Positionen der Kantenpunkte PTX und PTY am Werkstück 415 zu benutzen, aus denen die Positionen der Linien XLINE und YLINE und der Punkt XYORIGIN erneut bestimmt wurden. Gemäß den anfänglichen Teileprogramm-Anweisungsdarstellungen 351357 stellt die richtige Bestimmung der Positionen dieser Merkmale die Genauigkeit der Position und der Ausrichtung des Werkstücks 415 sicher, um das Teilkoordinatensystem erneut mit Genauigkeit zu bestimmen. Mit anderen Worten, wenn das Werkstück 415 seit dem letzten Speichern des Werkstückprogramms 310 versehentlich auf dem Gestell bewegt wurde, stellt das Ausführen des Bearbeitungsinitialisierungsblocks 650 die richtige Position und Ausrichtung des Werkstücks 415 wieder her, um dazu beizutragen, die Genauigkeit von simuliertem Kontext sicherzustellen, der anhand von Surrogatdaten generiert wird, die sich auf das Teilkoordinatensystem beziehen.
  • Im Gegensatz dazu werden die anfänglichen Teileprogrammanweisungsdarstellungen 361364 im verbleibenden Anweisungsdarstellungsblock 660, die keine Bearbeitungsinitialisierungsschritte sind, in einer Ausführungsform nicht in derselben Weise ausgeführt. Stattdessen können in bestimmten Implementierungen die gespeicherten Positionsdaten (z. B. die Daten 530 aus 5B) als Surrogatdaten zum Bestimmen der Positionen der Punktesätze PT3' und PT4' benutzt werden. Mit anderen Worten, die Positionen der Punktesätze PT3' und PT4' können auf Grundlage der relativen Positionen dieser Punkte bereitgestellt werden, wie sie anhand der anfänglichen Durchführung der Teileprogrammanweisungsdarstellungen 351364 bestimmt wurden, wie in 4 dargestellt (z. B. als die Daten 530 aus 5B gespeichert). Mit anderen Worten, die relativen Positionen der Punkte PT3 und PT4 in 4 (z. B. unter Bezugnahme auf das Teilkoordinatensystem mit dem Punkt XYORIGIN) werden gespeichert, wenn das Teileprogramm zuerst durchgeführt und gespeichert wird. Wenn das Teileprogramm 310 anschließend zum Bearbeiten aufgerufen wird und der Bearbeitungsinitialisierungsblock 650 ausgeführt wird, um die Position des Punktes XYORIGIN erneut zu ermitteln, wie in 8, anstatt auch die Positionen der Punkte PT3 und PT4 erneut zu ermitteln, werden die zuvor gespeicherten relativen Positionen zum Punkt XYORIGIN als Surrogatdaten benutzt, um die Positionen der Punkte PT3' und PT4' zu bestimmen.
  • Mit anderen Worten, die Positionen der Punkte PT3' und PT4' müssen nicht auf der Ausführung der Anweisungen im Zusammenhang mit den Darstellungen 361A, 361B und 362A beruhen, die alle eine Hardwareinteraktion und Kantenerkennung verlangen und deren Ausführung relativ viel Zeit in Anspruch nehmen würde. In einer Ausführungsform werden Anweisungen, die sich nicht im Bearbeitungsinitialisierungsblock befinden und die im Allgemeinen bestimmte festgelegte zeitaufwändige Vorgänge verlangen würden (z. B. Hardware-Interaktionen, etwa das Bewegen des Gestells, Kantenerkennung, Fokussieren, Beleuchtungsänderungen, Musterzuordnung usw.), nicht durchgeführt. Stattdessen würden etwaige resultierende Daten (z. B. erneut ermittelten Kantenpunkten usw.), die bereitgestellt worden wären, auf Surrogatdaten beruhen (z. B. Positionen der Punkte PT3' und PT4' relativ zum Punkt XYORIGIN). Wie oben erwähnt, ist die Ausrichtung des Teilkoordinatensystems einschließlich der richtigen Position des Punktes XYORIGIN durch Ausführen des Bearbeitungsinitialisierungsblocks 650 erneut ermittelt worden, um dazu beizutragen, die Genauigkeit etwaiger zugehöriger verwendeter Surrogatdaten sicherzustellen.
  • Man wird verstehen, dass durch das Nicht-Ausführen bestimmter festgelegter zeitaufwändiger Vorgänge wesentliche Zeiteinsparungen erreicht werden können. Der Grund hierfür ist, dass die Ausführung solcher Vorgänge relativ viel Zeit in Anspruch nehmen kann, insbesondere im Vergleich zu Vorgängen, für die nur Berechnungen durch die Steuereinrichtung des Maschinensichtsystems erforderlich sind. Man wird verstehen, dass in dem Beispiel aus 7 zwar nur einige wenige derartige Anweisungsdarstellungen (z. B. Anweisungsdarstellungen 361A, 361B und 362A) dieser Art dargestellt wurden, aber in einem detaillierteren Teileprogramm wesentlich mehr Anweisungsdarstellungen dieser Art benutzt werden können, für die die Zeiteinsparungen signifikant sein können.
  • In einer Ausführungsform können die Anweisungen im Zusammenhang mit den Darstellungen 361C und 362B (die keine relativ zeitaufwändigen Vorgängen verlangen und nur die relativ schnelle Verarbeitung der Steuereinrichtung des Maschinensichtsystems benötigen, um die Punkte PT3' und PT4' zum Ermitteln der Positionen der Linien L3' und L4' benötigen) ausgeführt werden, um Kontext zu generieren. Ebenso können die weiteren Anweisungen im Zusammenhang mit der Darstellung 364 (die nur die relativ schnelle Verarbeitung der Steuereinrichtung benötigen) ausgeführt werden, um den Kontext einschließlich des Schnittpunktes I2' am Schnittpunkt der Linien L3' und L4' zu bestimmen. Man wird verstehen, dass die Berechnungen, die von den Anweisungen im Zusammenhang mit den Darstellungen 361C, 362B und 364 durchgeführt werden, alle derart sind, dass sie sich an den geschätzten Kantenpunkten PT3' und PT4', die anhand der Surrogatdaten bestimmt werden, relativ rasch durchführen lassen, ohne viel Zeit in Anspruch zu nehmen oder Eingaben vom Benutzer zu benötigen. Auf diese Weise können bestimmte Anweisungen im Zusammenhang mit den anfänglichen Teileprogrammanweisungsdarstellungen 361364 im verbleibenden Anweisungsdarstellungsblock 660 ebenfalls ausgeführt werden, um Kontext zu generieren.
  • Hinsichtlich der weiteren Teileprogrammanweisungsdarstellungen 771774, die durch den Einfügevorgang 621 hinzugefügt werden, sollen die spezifischen Vorgänge im Zusammenhang mit den Anweisungsdarstellungen ebenfalls unter Bezugnahme auf 8 beschrieben werden. Ähnlich wie die Anweisungsdarstellungen 351364 sind auch die weiteren Teileprogrammanweisungsdarstellungen 771774 in einer Baumstruktur geordnet, wobei untergeordnete Knotenanweisungsdarstellungen 771A771C und 772A772B jeweils übergeordneten Knotenanweisungsdarstellungen 771 bzw. 772 zugeordnet sind. Wie in 8 gezeigt, gibt die Anweisungsdarstellung 771 an, dass ein Kastenwerkzeug zum Messen einer Linie L1 geöffnet wird. Genauer ausgedrückt geben die Anweisungsdarstellungen 771A und 771B an, dass ein Benutzer das Kastenwerkzeug einrichtet (was z. B. das Bewegen des Gestells in eine gewünschte Position und das Erfassen eines entsprechendes Bildes beinhaltet) und dazu benutzt, die Kantenpunkte PT1 zu bestimmen, die wiederum benutzt werden, um die Linie L1 zu definieren, wie von der Anweisungsdarstellung 771C angegeben. Ebenso gibt die Anweisungsdarstellung 772 an, dass ein Kastenwerkzeug zum Messen einer Linie L2 geöffnet wird, wobei die Anweisungsdarstellung 772A angibt, dass das Kastenwerkzeug benutzt wird, um die Kantenpunkte PT2 zu bestimmen, die wiederum zum Definieren der Linie L2 benutzt werden, wie durch die Anweisungsdarstellung 772B angegeben.
  • Die Anweisungsdarstellung 773 gibt an, dass am Schnittpunkt der Linien L1 und L2 ein Schnittpunkt I1 bestimmt wird. Die Anweisungsdarstellung 774 gibt an, dass ein Abstand D1 zwischen dem Schnittpunkt I1 und dem Schnittpunkt I2' bestimmt wird, der bei der Anweisungsdarstellung 364 bestimmt wurde. Man wird verstehen, dass die Anweisungsdarstellung 774 auf diese Weise veranschaulicht, wie eine neue Messung des Abstands zwischen dem Schnittpunkt I1 und dem Schnittpunkt I2' auf dem Kontext beruhen kann, der durch die Verwendung von Surrogatdaten generiert wurde. Insbesondere konnte die Position des Schnittpunkts I2', bei dem es sich, wie oben beschrieben, um Kontext handelt, der relativ rasch und mit ausreichender Gewissheit auf Grundlage der Ausführung des Bearbeitungsinitialisierungsblocks 650 bestimmt werden konnte, für die neue Abstandsmessung D1 zum Schnittpunkt I1 benutzt werden.
  • 9 ist ein Diagramm einer Bearbeitungsoberfläche 900 mit der Teileprogrammdarstellung aus 7 und ferner mit einem Aufklappmenü 620 zum Durchführen von Bearbeitungsmodusbefehlen oder Funktionen wie dem Modifizieren von Anweisungen im Teileprogramm, und einem Anfragekasten 920, der fragt, ob der Benutzer eine entsprechende Bewegung des Gestells genehmigt. Man wird verstehen, dass das Aufklappmenü 620 demjenigen gleicht, das oben unter Bezugnahme auf 6 beschrieben wurde. Wie in 9 gezeigt, wurde das Aufklappmenü 620 bereitgestellt, da ein Benutzer eine Anweisungsdarstellung ausgewählt hat (in der Darstellung aus 9 z. B. hat der Benutzer mithilfe einer Maus die Anweisungsdarstellung 361B ausgewählt, indem er den Selektor über die Anweisungsdarstellung 361B bewegt und diese rechts angeklickt hat). Die Anweisungsdarstellung 361B ist als diejenige angegeben, die von einem Auswahlkasten ausgewählt wurde (z. B. einem Auswahlkasten 640, wie er in 9 dargestellt ist), oder durch Hervorheben oder ein anderes Angabeverfahren.
  • Wenn der Benutzer die Anweisungsdarstellung 361B ausgewählt hat, wird als Ergebnis das Aufklappmenü 620 bereitgestellt, in dem der Benutzer den Modifikationsvorgang 622 ausgewählt hat. Wie später detaillierter beschrieben werden soll, erfolgt, sobald der Benutzer einen Modifikationsvorgang 622 ausgewählt hat, eine Bestimmung dazu, dass das Gestell bewegt werden muss. Daher wird ein Angabe kästen 910 bereitgestellt, das angibt, dass das System synchronisiert werden muss, und ein Anfragekasten 920 wird bereitgestellt, der den Benutzer auffordert, die entsprechende Bewegung des Gestells zu genehmigen.
  • Wie später detaillierter beschrieben werden soll, wird die ausgewählte Anweisungsdarstellung (z. B. die Anweisungsdarstellung 361B) zum Festlegen eines Zielknotens benutzt. Bei bestimmten Anweisungsdarstellungen, die dem Zielknoten vorausgehen, können Surrogatdaten zum Bestimmen des gültigen Kontextes benutzt werden. Sobald der Zielknoten erreicht wurde, können die tatsächlichen Ausführungsvorgänge beginnen, für die bestimmte physische Vorgänge durchgeführt werden müssen, etwa die Bewegung des Gestells.
  • 10A und 10B sind Diagramme von Benutzeroberflächen 1000A und 1000B, die eine Modifikation der Größe des Kastenwerkzeugs entsprechend der Anweisungsdarstellung 361B aus 9 veranschaulichen. Die Benutzeroberfläche 1000A aus 10A zeigt die gespeicherte Konfiguration des Kastenwerkzeugs 470 entsprechend der Anweisungsdarstellung 361B (wie z. B. im XML-artigen Code aus 5A und 5B und wie in 4 gezeigt. Außerdem wird ein Anfragekasten 1015 für das „Kastenwerkzeugmodifikation”-Vorgänge bereitgestellt. Wie in der Benutzeroberfläche 1000B aus 10B gezeigt, hat der Benutzer Modifikationen vorgenommen, die ein modifiziertes Kastenwerkzeug 470X ergeben. Das modifizierte Kastenwerkzeug 470X weist eine andere Größe auf und bestimmt dementsprechend einen anderen Satz von Kantenpunkten PT3X, was zu einer anderen Bestimmung einer Linie L3X sowie eines Schnittpunkts I2X und eines Abstands D1X führt. Da die Länge (d. h. die Höhe) des Kastenwerkzeugs verringert wurde, ist der Satz der bestimmten Kantenpunkte PT3X kleiner als der Satz zuvor bestimmter Kantenpunkte PT3. Insbesondere ist gezeigt, dass der Satz Kantenpunkte PT3X drei Kantenpunkte aufweist, während der vorherige Satz Kantenpunkte PT3 vier Kantenpunkte aufwies. Die reduzierte Länge (d. h. Höhe) des Kastenwerkzeug wird auch durch den Höhenindikator 460 der Benutzeroberfläche 1000B angegeben, der eine Höhe von 0,32536 gegenüber der Höhe von 0,57428 zeigt, die im Bereich 460 der Benutzeroberfläche 400 aus 4 angegeben ist. Die Modifikationen, die einen kleineren Satz von Kantenpunkten PT3X ergeben, bewirken auch Änderungen an den entsprechenden Surrogatdaten, wie detaillierter unter Bezugnahme auf 11A und 11B beschrieben werden soll.
  • 11A und 11B Diagramme 1100A und 1100B von Mark-up-Sprachcode-Anweisung, die Surrogatdaten aufweisen, die entsprechend der Modifikation des Teileprogramms aus 10A und 10B geändert wurden. Man wird verstehen, dass die XML-artigen Codeanweisungen aus 11A und 11B denen aus 5A und 5B gleichen. Wie in 11A gezeigt, ist die Reduzierung der Länge (d. h. Höhe) als Teil der Daten 1120 dargestellt, deren Höhe als auf 0,32536 reduziert dargestellt ist (d. h. gegenüber der Höhe von 0,57428 wie in 5A). Wie in 11B gezeigt, weisen die Daten 1130 nur drei erkannte Kantenpunkte (d. h. gegenüber den vier erkannten Kantenpunkte aus den gespeicherten Daten 530 aus 5B). Man wird auch verstehen, dass die Positionen der drei erkannten Kantenpunkte in den Daten 1130 sich geringfügig von den Positionen der ersten drei erkannten Kantenpunkte in den Daten 530 unterscheiden. In bestimmten Implementierungen ergibt sich dies daraus, dass die ausgegebenen Messdaten während der tatsächlichen Durchlaufmodusausführung bei erneuter Ausführung eines Teileprogramms geringfügig von anderen Ausführungen abweichen können.
  • 12A und 12B sind Ablaufdiagramme, die eine Ausführungsform eines Dienstprogramms 1200 zum Bereitstellen einer Maschinensichtsystemprogramm-Bearbeitungsumgebung darstellen, die Echtzeit-Kontexterzeugungsfunktionen aufweist. Wie in 12A gezeigt, wird an einem Block 1210 ein Durchlaufmodus bereitgestellt, der derart konfiguriert ist, dass er betriebsfähig ist, um ein zuvor erstelltes Teileprogramm mithilfe eines Durchlaufmodus der Ausführung auszuführen. An einem Block 1220 wird ein Einlernmodus bereitgestellt, der derart konfiguriert, dass er betriebsfähig ist, um Benutzereingaben für Steuervorgänge des Maschinensichtprüfungssystems zu empfangen und zugehörige Teileprogrammanweisungen entsprechend den gesteuerten Vorgängen aufzuzeichnen und auf diese Weise ein Teileprogramm zu erstellen. Außerdem weist der Einlernmodus eine Bearbeitungsbenutzeroberfläche auf, die eine bearbeitbare Programmdarstellung von Teileprogrammanweisungen umfasst, wobei die Teileprogrammdarstellung Anweisungsdarstellungen umfasst. An einem Block 1230 wird ein Bearbeitungsabschnitt bereitgestellt, der derart konfiguriert ist, dass er betriebsfähig ist, um ein Teileprogramm zu bearbeiten. Außerdem umfasst der Bearbeitungsabschnitt einen Bearbeitungsausführungsabschnitt auf, der betriebsfähig ist, um zuvor aufgezeichnete Teileprogrammanweisungen gemäß einem Bearbeitungsmodus der Ausführung auszuführen, der sich vom Durchlaufmodus der Ausführung unterscheidet. Ab dem Block 1230 fährt das Dienstprogramm bis zu einem Block A fort, wie detaillierter unter Bezugnahme auf 12B beschrieben werden soll.
  • Wie in 12B gezeigt, fährt das Dienstprogramm von dem Punkt A bis zu einem Block 1240 fort. An Block 1240 ist der Einlernmodus derart konfiguriert ist, dass er ferner betriebsfähig ist, um automatisch jeweilige Surrogatdaten aufzuzeichnen, die einem jeweiligen Satz aufgezeichneter Teileprogrammanweisungen zugeordnet sind. Außerdem umfassen wenigstens einige jeweilige Surrogatdaten Daten, die sich aus der tatsächlichen Ausführung gesteuerter Vorgänge ergeben, die dem zugeordneten jeweiligen Satz aufgezeichneter Teileprogrammanweisungen entsprechen. An einem Block 1250 ist der Bearbeitungsmodus der Ausführung derart konfiguriert, dass er einen Surrogatausführungsmodus umfasst, wobei während des Surrogatausführungsmodus der Teileprogrammanweisungen, die in der bearbeitbaren Teileprogrammdarstellung dargestellt sind, für wenigstens einen Satz von Teileprogrammanweisungen dann, wenn zuvor jeweilige Surrogatdaten im Zusammenhang mit dem Satz von Teileprogrammanweisungen aufgezeichnet wurden, die wenigstens einigen Mitglieder dieses Satzes von Teileprogrammanweisungen nicht ausgeführt werden, derart, dass ihre zugeordneten gesteuerten Vorgänge nicht tatsächlich ausgeführt werden. Außerdem werden die jeweiligen Surrogatdaten im nachfolgenden Betrieb des Surrogatausführungsmodus als Ersatz für Daten benutzt, die sich anderenfalls aus ihren zugeordneten Steuervorgängen ergeben würden, die nicht ausgeführt werden.
  • 13 ist ein Ablaufdiagramm, das eine Ausführungsform eines Dienstprogramms 1300 zum Durchführen eines Surrogatausführungsmodus darstellt, um einen gültigen Bearbeitungskontext an einer Teileprogrammposition bereitzustellen, die durch eine Teileprogrammanweisungsdarstellung, ein Teileprogrammanweisungselement oder einen Teileprogrammanweisungsknoten angegeben wird. An einem Block 1310 wird der Surrogatausführungsmodus an einer gültigen Kontextposition gestartet. Als spezifisches Beispiel einer gültigen Kontextposition würde sich in der Ausführungsform aus 7 und 8 eine gültige Kontextposition bei der Anweisungsdarstellung 361 befinden, unmittelbar nach der Ausführung des Bearbeitungsinitialisierungsblocks 650. Mit anderen Worten, der soeben ausgeführte Bearbeitungsinitialisierungsblock 650 erzeugt einen Kontext, von dem bekannt ist, dass er gültig ist, derart, dass der Surrogatausführungsmodus unmittelbar danach beginnen kann. In einer alternativen Ausführungsform, in der kein Bearbeitungsinitialisierungsblock 650 vorhanden ist, kann eine gültige Kontextposition in einer Beispielimplementierung vor allem am Beginn des Teileprogramms vorliegen.
  • An einem Block 1320 fährt das Dienstprogramm am nächsten Knoten als aktuellem Knoten fort. An einem Entscheidungsblock 1330 wird bestimmt, ob der aktuelle Knoten der Zielknoten eines Bearbeitungsbefehls ist. Wenn der aktuelle Knoten der Zielknoten eines Bearbeitungsbefehls ist, fährt das Dienstprogramm an einem Block 1340 fort, wo ein tatsächlicher Ausführungsmodus am aktuellen Knoten gestartet wird, woraufhin das Dienstprogramm an einem Entscheidungsblock 1395 fortfährt, wie später detaillierter beschrieben werden soll. Als ein spezifisches Beispiel eines aktuellen Knotens als Zielknoten eines Bearbeitungsbefehls ist in der Ausführungsform aus 911B die Anweisungsdarstellung 361B diejenige, die zum Bearbeiten mit dem Modifikationsbefehl 622 ausgewählt wurde. Da allerdings die Anweisungsdarstellung 361B als ein untergeordneter Knoten des übergeordneten Knotens für die Anweisungsdarstellung 361 gekennzeichnet ist, kann der tatsächliche Ausführungsmodus am übergeordneten Knoten beginnen, der der Anweisungsdarstellung 361 entspricht. Auf diese Weise kann der Zielknoten in einer Implementierung als der übergeordnete Knoten betrachtet werden, der der Anweisungsdarstellung 361 zugeordnet ist, und der tatsächliche Ausführungsmodus kann am übergeordneten Knoten beginnen, derart, dass die physische Einrichtung, die der Anweisungsdarstellung 361A entspricht, durchgeführt wird, um den richtigen physischen Kontext zur Bearbeitung am Anweisungsdarstellung 361B bereitzustellen.
  • Wenn am Entscheidungsblock 1330 bestimmt wird, dass der aktuelle Knoten nicht der Zielknoten eines Bearbeitungsbefehls ist, fährt das Dienstprogramm an einem Entscheidungsblock 1350 fort, wo bestimmt wird, ob der aktuelle Knoten zwingend physische Systemänderungen erfordert. Wenn der Knoten beispielsweise das Gestell bewegt, um einen neuen Abschnitt des Werkstücks abzubilden (z. B. durch einen einfachen Bewegungsbefehl oder dergleichen), kann dies in einigen Ausführungsformen zwingend physische Systemänderungen erfordern. Ebenso sind bestimmte Vergrößerungsänderungen zwingende physische Systemänderungen usw. Man wird jedoch verstehen, dass in einigen Ausführungsformen dann, wenn diese Änderungen in einem übergeordneten Knoten eingebettet sind, dem bereits Surrogatdaten zugeordnet wurden, und ein nachfolgender Knoten erneut eine ähnliche physische Änderung erfordert (z. B. eine Bewegung bzw. eine Vergrößerungsänderung), keine zwingende Notwendigkeit vorliegen muss, da sie letztlich von der ähnlichen nachfolgenden Anweisung ersetzt wird. Fachleute können anhand der Lehren dieser Offenbarung verschiedene Verfahren bestimmen, um zu analysieren, ob ein aktueller Knoten zwingend physische Systemänderungen erfordert. Wenn der aktuelle Knoten zwingend physische Systemänderungen erfordert, fährt das Dienstprogramm in jedem Fall an Block 1340 fort. Wenn der aktuelle Knoten keine zwingenden physischen Systemänderungen erfordert, fährt das Dienstprogramm in jedem Fall an einem Entscheidungsblock 1360 fort.
  • An dem Entscheidungsblock 1360 wird bestimmt, ob der aktuelle Knoten Ergebnisdaten bereitstellt. Wenn der aktuelle Knoten Ergebnisdaten bereitstellt, fährt das Dienstprogramm an einem Entscheidungsblock 1380 fort, wie später detaillierter, beschrieben werden soll. Wenn der aktuelle Knoten keine Ergebnisdaten bereitstellt, fährt das Dienstprogramm an einem Entscheidungsblock 1370 fort, wo der Knoten im Surrogatausführungsmodus ausgeführt wird, woraufhin das Dienstprogramm am Block 1395 fortfährt, wie später detaillierter beschrieben werden soll.
  • Am Entscheidungsblock 1380 wird bestimmt, ob Surrogatdaten für den aktuellen Knoten existieren. Wenn Surrogatdaten für den aktuellen Knoten existieren, fährt das Dienstprogramm an einem Block 1390 fort, wie später detaillierter beschrieben werden soll. Wenn keine Surrogatdaten für den aktuellen Knoten existieren, fährt das Dienstprogramm an Block 1340 fort
  • An Block 1390 wird der Knoten im Surrogatausführungsmodus ausgeführt. Für den Surrogatausführungsmodus werden Surrogatdaten als Ersatz für Daten benutzt, die sich anderenfalls aus der Ausführung von Steuervorgängen ergeben würden, die wenigstens einigen Mitgliedern eines Satzes von Teileprogrammanweisungen zugeordnet sind, die dem aktuellen Knoten entsprechen, und diese Mitglieder des Satzes von Teileprogrammanweisungen werden derart übersprungen, dass die zugeordneten Steuervorgänge nicht tatsächlich durchgeführt werden. Als ein spezifisches Beispiel werden die Surrogatdaten (z. B. Daten 530 aus 5B) in der Ausführungsform aus 7 und 8 als Ersatz für die Daten benutzt, die sich anderenfalls aus der Ausführung der Steuervorgänge ergeben würden, die den Anweisungsdarstellungen 361, 361A und 361B zugeordnet sind, derart, dass die zugeordneten Anweisungen und Steuervorgänge übersprungen und nicht tatsächlich durchgeführt werden. Ebenso werden Surrogatdaten werden auch in Bezug auf die Vorgänge benutzt, die den Anweisungsdarstellungen 362 und 362A zugeordnet sind, derart, dass die zugeordneten Anweisungen und Steuervorgänge übersprungen und nicht tatsächlich durchgeführt werden. Im Gegensatz dazu werden die Anweisungen, die den Anweisungsdarstellungen 361C (d. h. zum Definieren der Linie L3' anhand der Surrogatdatenkantenpunkte), der Anweisungsdarstellung 362B (d. h. zum Definieren der Linie L4' anhand der Surrogatdatenkantenpunkte) und der Anweisungsdarstellung 364 zugeordnet sind (d. h. zum Definieren der Linie I2' zwischen den Linien L3' und L4') alle ausgeführt, um den zugeordneten Kontext zu generieren. Mit anderen Worten, das Erzeugen der Linien L3' und L4' und des Schnittpunkts I2', wie in der Benutzeroberfläche 800 aus 8 dargestellt, demonstriert, wie Surrogatdaten benutzt werden können, um Kontext für fortgesetzte Bearbeitungen des Teileprogramms zu erzeugen.
  • Das Dienstprogramm fährt dann am Entscheidungsblock 1395 fort, wo bestimmt wird, ob ein weiterer Knoten für die Ausführung im Surrogatausführungsmodus vorliegt. Wenn ein weiterer Knoten für die Ausführung im Surrogatausführungsmodus vorliegt, kehrt das Dienstprogramm zu Block 1320 zurück, und wenn nicht, so endet das Dienstprogramm. Wenn die Ausführung beispielsweise an Block 1395 angekommen ist, indem ein Zielknoten erreicht wurde und die Blöcke 1330 und 1340 ausgeführt wurden, liegt in einigen Fällen kein weiterer Knoten zum Ausführen im Surrogatausführungsmodus vor, da der Kontext zum Bearbeiten am oder im Zielknoten möglicherweise bereits hergestellt wurde.
  • Obwohl verschiedene bevorzugte Ausführungsformen und Ausführungsbeispiele dargestellt und beschrieben wurden, wird man verstehen, dass verschiedene Änderungen daran vorgenommen werden können, ohne vom Geist und Umfang der Erfindung abzuweichen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 6542180 [0003]
    • US 7454053 [0043]
    • US 2010/0158343 [0043]

Claims (41)

  1. Die Ausführungsformen der Erfindung, in denen eine exklusive Eigenschaft oder ein ausschließliches Recht beansprucht wird, sind wie folgt definiert: 1. Maschinensichtprüfungssystem, umfassend einen Bildgebungsabschnitt, ein Gestell zum Halten von einem oder mehreren Werkstücken in einem Sichtkasten (SK) des Bildgebungsabschnitts, einen Steuerabschnitt, eine Anzeige und eine Benutzeroberfläche, wobei das Maschinensichtprüfungssystem ferner Folgendes umfasst: einen Durchlaufmodus, der derart konfiguriert ist, dass er betriebsfähig ist, um ein zuvor erstelltes Teileprogramm anhand eines Durchlaufmodus der Ausführung auszuführen; einen Einlernmodus, der derart konfiguriert ist, dass er betriebsfähig ist, um eine Benutzereingabe zum Steuern von Vorgängen des Maschinensichtprüfungssystems zu empfangen und zugeordnete Teileprogrammanweisungen aufzuzeichnen, die den gesteuerten Vorgängen entsprechen, um ein Teileprogramm zu erstellen, wobei der Einlernmodus eine Bearbeitungsbenutzeroberfläche aufweist, die eine bearbeitbare Teileprogrammdarstellung von Teileprogrammanweisungen umfasst, wobei die Teileprogrammdarstellung Anweisungsdarstellungen umfasst; und einen Bearbeitungsabschnitt, der derart konfiguriert ist, dass er betriebsfähig, um ein Teileprogramm zu bearbeiten, wobei der Bearbeitungsabschnitt einen Bearbeitungsausführungsabschnitt umfasst, der betriebsfähig ist, um zuvor aufgezeichnete Teileprogrammanweisungen gemäß einem Bearbeitungsmodus der Ausführung auszuführen, der sich vom Durchlaufmodus der Ausführung unterscheidet, wobei: der Einlernmodus derart konfiguriert ist, dass er ferner betriebsfähig ist, um automatisch jeweilige Surrogatdaten aufzuzeichnen, die einem jeweiligen Satz aufgezeichneter Teileprogrammanweisungen zugeordnet sind, und wenigstens einige jeweilige Surrogatdaten Daten umfassen, die sich aus der tatsächlichen Ausführung von gesteuerten Vorgängen ergeben, die dem zugeordneten jeweiligen Satz aufgezeichneter Anweisungen entsprechen; und der Bearbeitungsmodus der Ausführung einen Surrogatausführungsmodus umfasst, wobei während des Surrogatausführungsmodus der Teileprogrammanweisungen, die in der bearbeitbaren Teileprogrammdarstellung dargestellt sind, für wenigstens einen Satz von Teileprogrammanweisungen dann, wenn jeweilige Surrogatdaten zuvor im Zusammenhang mit dem Satz von Teileprogrammanweisungen aufgezeichnet wurden, wenigstens einige Mitglieder dieses Satzes von Teileprogrammanweisungen nicht ausgeführt werden, derart, dass ihre zugeordneten gesteuerten Vorgänge nicht tatsächlich ausgeführt werden, und die jeweiligen Surrogatdaten in einem nachfolgenden Vorgang des Surrogatausführungsmodus als ein Ersatz für Daten benutzt werden, die sich anderenfalls aus ihren zugeordneten gesteuerten Vorgänge ergeben würden, die nicht ausgeführt werden.
  2. Maschinensichtprüfungssystem nach Anspruch 1, wobei das Erstellen eines Teileprogramms ein Modifizieren einer zuvor aufgezeichneten Teileprogrammanweisung umfasst.
  3. Maschinensichtprüfungssystem nach Anspruch 1, wobei die wenigstens einigen jeweiligen Surrogatdaten Daten umfassen, die sich aus der tatsächlichen Ausführung von gesteuerten Vorgängen ergeben, die auf Grundlage einer empfangenen Benutzereingabe gesteuert werden, und diese gesteuerten Vorgänge aufgezeichnet werden, um den zugeordneten jeweiligen Satz aufgezeichneter Teileprogrammanweisungen bereitzustellen.
  4. Maschinensichtprüfungssystem nach Anspruch 1, wobei der Bearbeitungsmodus der Ausführung einen tatsächlichen Ausführungsmodus umfasst, und die wenigstens einigen jeweiligen Surrogatdaten Daten umfassen, die sich aus der tatsächlichen Ausführung gesteuerter Vorgänge ergeben, die auf Grundlage der Ausführung eines zuvor aufgezeichneten zugeordneten jeweiligen Satzes aufgezeichneter Teileprogrammanweisungen mithilfe des tatsächlichen Ausführungsmodus gesteuert werden.
  5. Maschinensichtprüfungssystem nach Anspruch 1, wobei das Maschinensichtprüfungssystem einen Programmstatusverwaltungsabschnitt umfasst, der betriebsfähig ist, um die aufgezeichneten Teileprogrammanweisungen in einer bearbeitbaren Teileprogrammdatei zu speichern, und wenn die aufgezeichneten Teileprogrammanweisungen als eine bearbeitbare Teileprogrammdatei gespeichert werden, auch jeweilige Surrogatdaten gespeichert werden, die einem jeweiligen Satz aufgezeichneter Teileprogrammanweisungen in der bearbeitbaren Teileprogrammdatei zugeordnet sind.
  6. Maschinensichtprüfungssystem nach Anspruch 5, wobei das Maschinensichtprüfungssystem betriebsfähig ist, um die gespeicherte bearbeitbare Teileprogrammdatei zum Bearbeiten zu laden, und das Maschinensichtprüfungssystem derart konfiguriert ist, dass dann, wenn das gespeicherte bearbeitbare Teileprogrammdatei zum Bearbeiten geladen wird, die zugeordneten gespeicherten jeweiligen Surrogatdaten automatisch zur Benutzung im Surrogatausführungsmodus verfügbar gemacht werden.
  7. Maschinensichtprüfungssystem nach Anspruch 5, wobei der Programmstatusverwaltungsabschnitt ferner betriebsfähig ist, um die aufgezeichneten Teileprogrammanweisungen in einer geschützten Teileprogrammdatei zu speichern, die mithilfe des Durchlaufmodus der Ausführung ausführbar ist, wobei wenigstens eins von dem Durchlaufmodus der Ausführung und der geschützten Teileprogrammdatei derart konfiguriert ist, dass die Ergebnisse des Durchlaufmodus der Ausführung nicht von zuvor aufgezeichneten Surrogatdaten, die der geschützten Teileprogrammdatei entsprechen, beeinflusst werden.
  8. Maschinensichtprüfungssystem nach Anspruch 7, wobei: der Einlernmodus dazu konfiguriert ist, in einem jeweiligen Satz aufgezeichneter Teileprogrammanweisungen eine Angabe dazu aufzuzeichnen, ob jeweilige Surrogatdaten zuvor im Zusammenhang mit dem jeweiligen Satz von Teileprogrammanweisungen aufgezeichnet wurden; und der Programmstatusverwaltungsabschnitt dazu konfiguriert ist, Angaben dazu zu entfernen, ob jeweilige Surrogatdaten zuvor im Zusammenhang mit einem jeweiligen Satz von Teileprogrammanweisungen aufgezeichnet wurden, bevor die aufgezeichneten Teileprogrammanweisungen in der geschützten Teileprogrammdatei gespeichert werden.
  9. Maschinensichtprüfungssystem nach Anspruch 1, wobei der Einlernmodus dazu konfiguriert ist, in einem jeweiligen Satz aufgezeichneter Teileprogrammanweisungen eine Angabe dazu aufzuzeichnen, ob jeweilige Surrogatdaten zuvor im Zusammenhang mit dem jeweiligen Satz von Teileprogrammanweisungen aufgezeichnet wurden.
  10. Maschinensichtprüfungssystem nach Anspruch 9, wobei die Angabe in einer ersten Anweisung des jeweiligen Satzes von aufgezeichneten Teileprogrammanweisungen enthalten ist.
  11. Maschinensichtprüfungssystem nach Anspruch 10, wobei der jeweilige Satz aufgezeichneter Teileprogrammanweisungen Anweisungen umfasst, die in einer Mark-up-Sprache geschrieben sind.
  12. Maschinensichtprüfungssystem nach Anspruch 10, wobei der jeweilige Satz von aufgezeichneten Teileprogrammanweisungen Anweisungen wenigstens eins von einem Element, einem übergeordneten Element, einem Behälter-Element und einem untergeordneten Element umfasst, die in einer Mark-up-Sprache geschrieben sind.
  13. Maschinensichtprüfungssystem nach Anspruch 12, wobei dann, wenn der jeweilige Satz aufgezeichneter Teileprogrammanweisungen ein übergeordnetes Element ist, ein beliebiges untergeordnetes Element innerhalb dieses übergeordneten Elements nicht ausgeführt wird.
  14. Maschinensichtprüfungssystem nach Anspruch 9, wobei die Angabe das Vorhandensein von jeweiligen Surrogatdaten umfasst, die in diesem jeweiligen Satz aufgezeichneter Teileprogrammanweisungen enthalten sind.
  15. Maschinensichtprüfungssystem nach Anspruch 9, wobei die Angabe einen jeweiligen Identifikator umfasst, der in dem jeweiligen Satz von aufgezeichneten Teileprogrammanweisungen enthalten ist, wobei der jeweilige Identifikator dazu verwendbar ist, die entsprechenden jeweiligen Surrogatdaten in einem Surrogatdatenspeicherabschnitt des Maschinensichtprüfungssystems aufzufinden.
  16. Maschinensichtprüfungssystem nach Anspruch 1, wobei der Bearbeitungsabschnitt Bearbeitungsanweisungen umfasst, die dazu verwendbar sind, ein Teileprogramm zu bearbeiten, und der Bearbeitungsausführungsabschnitt derart konfiguriert ist, dass der Bearbeitungsmodus der Ausführung dann, wenn der Benutzer die Bearbeitungsbenutzeroberfläche zum Eingeben einer Bearbeitungsanweisung für die Bearbeitung des Programms an einer Zielposition eingibt, die in der Teileprogrammdarstellung angegeben wird, an einer gültigen Kontextstartposition im Teileprogramm vor der Zielposition beginnt und den Surrogatausführungsmodus zum Ausführen von wenigstens einen Teil der Teileprogrammanweisungen benutzt, um einen gültigen Kontext zum Bearbeiten des Teileprogramms an der Zielposition herzustellen.
  17. Maschinensichtprüfungssystem nach Anspruch 16, wobei es sich bei einem eingegebenen Bearbeitungsbefehl um einen Befehl zum Modifizieren eines Teileprogramms an der Zielposition handelt, und es sich bei der Teileprogrammanweisung an der Zielposition um eine zuvor aufgezeichnete Teileprogrammanweisung handelt, die modifiziert werden soll.
  18. Maschinensichtprüfungssystem nach Anspruch 16, wobei es sich bei dem eingegebenen Bearbeitungsbefehl um einen Befehl zum Einfügen oder Anhängen von Anweisungen in bzw. an das Teileprogramm an der Zielposition handelt, und es sich bei der Teileprogrammanweisung an der Zielposition um eine Teileprogrammanweisung handelt, die erstellt und an der Zielposition eingefügt oder daran angehängt werden soll.
  19. Maschinensichtprüfungssystem nach Anspruch 16, wobei das Aufstellen des gültigen Kontexts an einer Zielposition das Herstellen des Hardware-Zustands des Maschinensichtprüfungssystems in einem erwarteten oder geeigneten Zustand für die Ausführung von Steuervorgängen beinhaltet, die einer Teileprogrammanweisung an der Zielposition entsprechen.
  20. Maschinensichtprüfungssystem nach Anspruch 19, wobei die gültige Kontextstartposition im Teileprogramm eins umfasst von (a) dem Beginn der Teileprogrammanweisungen und (b) der nächsten Anweisung nach einem Bearbeitungsinitialisierungsblock, der Teileprogrammanweisungen umfasst.
  21. Maschinensichtprüfungssystem nach Anspruch 16, wobei die Einlernmodusbenutzeroberfläche dann, wenn der gültige Kontext an einer Zielposition hergestellt wird, dazu konfiguriert ist, Einlernmodusbenutzeroberflächenelemente anzuzeigen, die von einem Benutzer bedienbar sind, um Teileprogrammanweisungen an der Zielposition zu bearbeiten und einzufügen, wobei diese Einlernmodusbenutzeroberflächenelemente Videowerkzeugauswahlelemente umfassen.
  22. Maschinensichtprüfungssystem nach Anspruch 16, wobei der Einlernmodus derart konfiguriert ist, dass dann, wenn der gültige Kontext an der Zielposition hergestellt wird, die Einlernmodusbenutzeroberfläche dazu konfiguriert ist, eine Kontextstatusangabe in der Nähe der Angabe der Zielposition anzuzeigen, die in der Teileprogrammdarstellung angegeben ist, und die Kontextstatusangabe dazu eingestellt ist, anzugeben, dass ein gültiger Kontext an der Zielposition hergestellt wurde.
  23. Maschinensichtprüfungssystem nach Anspruch 22, wobei der Einlernmodus derart konfiguriert, dass dann, wenn der Bearbeitungsmodus der Ausführung den Surrogatausführungsmodus zum Ausführen wenigstens eines Teils der Teileprogrammanweisungen benutzt, um den gültigen Kontext herzustellen, der Zustand der Kontextstatusangabe auf einen Zustand eingestellt wird, der spezifisch angibt, dass der Surrogatausführungsmodus zum Herstellen des gültigen Kontexts benutzt wurde.
  24. Maschinensichtprüfungssystem nach Anspruch 23, wobei die Kontextstatusangabe ein Anweisungszeiger ist, der in der Nähe der bearbeitbaren Teileprogrammdarstellung enthalten ist.
  25. Maschinensichtprüfungssystem nach Anspruch 23, wobei der Bearbeitungsmodus der Ausführung einen tatsächlichen Ausführungsmodus umfasst, der die tatsächliche Ausführung gesteuerter Vorgänge bereitstellt, die auf Grundlage der Ausführung eines zuvor aufgezeichneten Satzes von Teileprogrammanweisungen gesteuert werden, und die Bearbeitungsbenutzeroberfläche ein Steuerelement aufweist, das vom Benutzer bedienbar ist, um den tatsächlichen Ausführungsmodus zum Ausführen eines Satzes von Teileprogrammanweisungen zu benutzen, die ausreichend sind, um einen gültigen Kontext zum Bearbeiten des Teileprogramms an einer Zielposition herzustellen.
  26. Maschinensichtprüfungssystem nach Anspruch 25, wobei der Einlernmodus derart konfiguriert ist, dass dann, wenn der Bearbeitungsmodus der Ausführung ausschließlich den tatsächlichen Ausführungsmodus zum Ausführen der Teileprogrammanweisungen benutzt, die ausreichen, um den gültigen Kontext herzustellen, die Kontextstatusangabe auf einen Zustand eingestellt wird, der spezifisch angibt, dass der tatsächliche Ausführungsmodus zum Herstellen des gültigen Kontextes benutzt wurde.
  27. Maschinensichtprüfungssystem nach Anspruch 26, wobei der Einlernmodus derart konfiguriert ist, dass dann, wenn kein gültiger Kontext an der Zielposition hergestellt wurde, der Zustand der Kontextstatusangabe dazu eingestellt wird, anzugeben, dass der Kontext wenigstens eins von unbekannt oder nicht gültig ist.
  28. Maschinensichtprüfungssystem nach Anspruch 16, wobei der Bearbeitungsmodus der Ausführung standardmäßig automatisch an der Kontextstartposition beginnt.
  29. Maschinensichtprüfungssystem nach Anspruch 16, wobei der Bearbeitungsmodus der Ausführung standardmäßig automatisch den Surrogatausführungsmodus zum Ausführen von wenigstens einem Teil der Teileprogrammanweisungen verwendet.
  30. Maschinensichtprüfungssystem nach Anspruch 16, wobei der Bearbeitungsmodus der Ausführung einen tatsächlichen Ausführungsmodus umfasst, der die tatsächliche Ausführung gesteuerter Vorgänge bereitstellt, die auf Grundlage der Ausführung eines zuvor aufgezeichneten Satzes von Teileprogrammanweisungen gesteuert werden, und der Surrogatausführungsmodus dann, wenn die Zielposition innerhalb eines übergeordneten Zielelements dargestellt wird, das in der bearbeitbaren Teileprogrammdarstellung dargestellt wird, ein Umschalten in den tatsächlichen Ausführungsmodus an einer Startposition von Teileprogrammanweisungen umfasst, die dem übergeordneten Zielelement entsprechen.
  31. Maschinensichtprüfungssystem nach Anspruch 30, wobei die Zielposition eine Anweisung umfasst, die einen Vorgang steuert, der einem Videowerkzeug entspricht, das ein erfasstes Bild analysiert, und das übergeordnete Zielelement eine Anweisung umfasst, die einen Vorgang des Maschinensichtprüfungssystems steuert, um die Bilderfassungsbedingungen für das erfasste Bild einzurichten.
  32. Maschinensichtprüfungssystem nach Anspruch 16, wobei der Bearbeitungsmodus der Ausführung einen tatsächlichen Ausführungsmodus umfasst, der eine tatsächliche Ausführung gesteuerter Vorgänge bereitstellt, die auf Grundlage eines zuvor aufgezeichneten Satzes von Teileprogrammanweisungen gesteuert werden, und der Surrogatausführungsmodus ein Umschalten in den tatsächlichen Ausführungsmodus der Teileprogrammanweisungen für Anweisungen umfasst, die zwingend physische Systemänderungen erfordern, um den gültigen Kontext herzustellen.
  33. Maschinensichtprüfungssystem nach Anspruch 16, wobei der Bearbeitungsmodus der Ausführung einen tatsächlichen Ausführungsmodus umfasst, der eine tatsächliche Ausführung gesteuerter Vorgänge bereitstellt, die auf Grundlage eines zuvor aufgezeichneten Satzes von Teileprogrammanweisungen gesteuert werden, und der Surrogatausführungsmodus ein Umschalten in den tatsächlichen Ausführungsmodus für einen Satz von Teileprogrammanweisungen umfasst, die während der Durchlaufmodusausführung Ergebnisdaten bereitstellen und für die die entsprechenden Surrogatdaten gegenwärtig nicht zur Verwendung als ein Ersatz für die Ergebnisdaten aufgezeichnet sind, die sich anderenfalls aus den ihnen zugeordneten gesteuerten Vorgängen ergeben würden.
  34. Maschinensichtprüfungssystem nach Anspruch 16, wobei der Bearbeitungsmodus der Ausführung einen tatsächlichen Ausführungsmodus umfasst, der eine tatsächliche Ausführung gesteuerter Vorgänge bereitstellt, die auf Grundlage eines zuvor aufgezeichneten Satzes von Teileprogrammanweisungen gesteuert werden, und der Surrogatausführungsmodus ein Umschalten in den tatsächlichen Ausführungsmodus für wenigstens einige Teileprogrammanweisungen umfasst, die Vorgänge steuern, die die physische Position des Gestells relativ zum Bildgebungsabschnitt ändern, und die Einlernmodusbenutzeroberfläche einen Abfragekasten umfasst, der fragt, ob der Benutzer die Vorgänge des tatsächlichen Ausführungsmodus bestätigt, einschließlich einer Bewegung des physischen Positionsgestells vor der tatsächlichen Ausführung der Bewegung.
  35. Maschinensichtprüfungssystem nach Anspruch 1, wobei der Bearbeitungsmodus der Ausführung derart konfiguriert ist, dass dann, wenn wenigstens eine der zuvor aufgezeichneten Teileprogrammanweisungen dazu modifiziert wird, mithilfe von Bearbeitungsbefehlen eine modifiziert Teileprogrammanweisung bereitzustellen, und die modifizierte Teileprogrammanweisung zum Aufzeichnen im Teileprogramm akzeptiert wird, die zugeordneten Steuervorgänge tatsächlich ausgeführt werden und die zugeordneten Surrogatdaten erzeugt und gespeichert werden.
  36. Maschinensichtprüfungssystem nach Anspruch 35, wobei die Surrogatdaten aus einer Analyse von Werkstückbildern eines tatsächlichen Werkstücks hergeleitet werden, das auf dem Gestell angeordnet ist, wobei die Bilder während eines Zeitraums erfasst werden, der der Modifikation und Aufzeichnung der modifizierten Teileprogrammanweisung entspricht.
  37. Maschinensichtprüfungssystem nach Anspruch 1, wobei der Satz von Teileprogrammanweisungen Anweisungen aufweist, die Bilderfassungsvorgänge durchführen, und ein Kantenerkennungsvideowerkzeug, das Kantenerkennungsvorgänge umfasst, die im Falle ihrer Ausführung die Kantenpunktpositionen identifizieren, die an einer erkannten Kante im erfassten Bild angeordnet sind, und die Surrogatdaten Kantenpunktpositionen umfassen.
  38. Maschinensichtprüfungssystem nach Anspruch 37, wobei während des Surrogatausführungsmodus wenigstens die Bilderfassungsvorgänge und die Kantenerkennungsvorgänge nicht ausgeführt werden.
  39. Maschinensichtprüfungssystem nach Anspruch 1, wobei das Maschinensichtprüfungssystem ein Softwareemulator eines tatsächlichen Maschinensichtprüfungssystems ist, der die gesteuerte Hardware des tatsächlichen Maschinensichtprüfungssystems emuliert, derart, dass es einen virtuellen Betrieb durch Teileprogrammanweisungen, die am tatsächlichen Maschinensichtprüfungssystem benutzbar sind, und durch gesteuerte Vorgänge ermöglicht, die von einem Benutzer über die Benutzeroberfläche des Maschinensichtprüfungssystems eingegeben werden.
  40. Maschinensichtprüfungssystem nach Anspruch 39, wobei das Werkstück Werkstückdaten umfasst, die dazu konfiguriert sind, ein virtuelles Werkstück bereitzustellen, das in Verbindung mit dem Softwareemulator des tatsächlichen Maschinensichtprüfungssystems arbeitet.
  41. Maschinensichtprüfungssystem nach Anspruch 1, wobei der Einlernmodus eine Einlernmodusbenutzeroberfläche mit einem Ergebnisfenster umfasst, das Ergebnisse aufgrund der Ausführung von Teileprogrammanweisungen anzeigt, und der Einlernmodus derart konfiguriert ist, dass dann, wenn die betreffenden Ergebnisse Surrogatdatenergebnisse auf Grundlage der Verwendung des Surrogatausführungsmodus zur Ausführung von Teileprogrammanweisungen sind, die Einlernmodusbenutzeroberfläche dazu konfiguriert wird, eine Ergebnisstatusangabe in der Nähe der Surrogatdatenergebnisse anzuzeigen, und die Ergebnisstatusangabe dazu eingestellt wird, anzugeben, dass die betreffenden Ergebnisse auf Surrogatdaten beruhen.
DE102012220884A 2011-11-15 2012-11-15 Maschinensichtsystemprogramm-Bearbeitungsumgebung mit Echtzeitkontexterzeugungsmerkmalen Pending DE102012220884A1 (de)

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
DE102012220884A1 true DE102012220884A1 (de) 2013-05-16

Family

ID=48145422

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012220884A Pending DE102012220884A1 (de) 2011-11-15 2012-11-15 Maschinensichtsystemprogramm-Bearbeitungsumgebung mit Echtzeitkontexterzeugungsmerkmalen

Country Status (4)

Country Link
US (1) US8957960B2 (de)
JP (1) JP6122282B2 (de)
CN (1) CN103106077B (de)
DE (1) DE102012220884A1 (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9223306B2 (en) 2011-11-15 2015-12-29 Mitutoyo Corporation System and method utilizing an editing initialization block in a part program editing environment in a machine vision system
US9167215B2 (en) 2011-11-15 2015-10-20 Mitutoyo Corporation Machine vision system editing environment for a part program in which a continuous stream of image acquisition operations are performed during a run mode
US8902307B2 (en) 2011-11-15 2014-12-02 Mitutoyo Corporation Machine vision system editing environment for a part program in which a continuous stream of image acquisition operations are performed during a run mode
US9511988B2 (en) * 2012-12-27 2016-12-06 Lancer Corporation Touch screen for a beverage dispensing system
CN103970773B (zh) * 2013-01-30 2019-03-15 腾讯科技(深圳)有限公司 一种网页的页面更新方法及装置
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
DE112014002389B4 (de) 2013-05-13 2022-08-04 Mitutoyo Corporation Bearbeitungsumgebung für ein Programm für ein maschinelles Bilderkennungssystem, enthaltend ein betriebskontextbewusstes Kopier-und Einfüge-Merkmal
DE102015208337A1 (de) 2014-06-17 2015-12-17 Mitutoyo Corp. Bearbeitungsumgebung eines maschinellen sichtsystems für ein teileprogramm, in dem ein durchgehender datenstrom von bilderfassungsvorgängen in einem laufmodus ausgeführt wird
US9740190B2 (en) 2014-10-09 2017-08-22 Mitutoyo Corporation Method for programming a three-dimensional workpiece scan path for a metrology system
US10414051B2 (en) 2014-11-18 2019-09-17 Ged Integrated Solutions, Inc. File translator system
US9933256B2 (en) 2015-04-09 2018-04-03 Mitutoyo Corporation Inspection program editing environment including real-time feedback related to throughput
US9646425B2 (en) 2015-04-09 2017-05-09 Mitutoyo Corporation Inspection program editing environment with editing environment automatically globally responsive to editing operations in any of its portions
US9952586B2 (en) 2015-04-09 2018-04-24 Mitutoyo Corporation Inspection program editing environment with simulation status and control continually responsive to selection operations
US9602715B2 (en) 2015-07-09 2017-03-21 Mitutoyo Corporation Adaptable operating frequency of a variable focal length lens in an adjustable magnification optical system
US9830694B2 (en) 2015-08-31 2017-11-28 Mitutoyo Corporation Multi-level image focus using a tunable lens in a machine vision inspection system
US9774765B2 (en) 2015-09-15 2017-09-26 Mitutoyo Corporation Chromatic aberration correction in imaging system including variable focal length lens
CN108463717B (zh) 2016-01-26 2021-05-25 富士胶片株式会社 龟裂信息检测装置、龟裂信息检测方法及存储介质
JP6647094B2 (ja) * 2016-03-16 2020-02-14 株式会社ミツトヨ 表面性状測定機用のパートプログラム生成装置
CN105988404B (zh) * 2016-06-30 2018-12-04 深圳市优必选科技有限公司 一种伺服器控制系统
GB2552717B (en) * 2016-08-05 2018-09-05 Arm Ip Ltd Management of control parameters in electronic systems
EP3373231A1 (de) * 2017-03-07 2018-09-12 Siemens Aktiengesellschaft Betrieb von industrieanlagenmaschinen zur vermeidung von kollisionen
US20190001497A1 (en) * 2017-06-28 2019-01-03 Honda Motor Co., Ltd. Robotic system and method of assembling an apparatus
IT201700085336A1 (it) * 2017-07-26 2019-01-26 Comau Spa "Dispositivo programmabile di assistenza ad un operatore in un ambiente di produzione"
JP6923794B2 (ja) * 2017-08-04 2021-08-25 富士通株式会社 検査装置、検査プログラム、及び検査方法
US10809378B1 (en) 2019-09-06 2020-10-20 Mitutoyo Corporation Triangulation sensing system and method with triangulation light extended focus range using variable focus lens
US11119214B2 (en) 2019-09-06 2021-09-14 Mitutoyo Corporation Triangulation sensing system and method with triangulation light extended focus range using variable focus lens
CN112782414B (zh) * 2019-11-11 2024-01-23 深圳迈瑞生物医疗电子股份有限公司 一种样本分析系统及其设置方法

Citations (3)

* 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
US7454053B2 (en) 2004-10-29 2008-11-18 Mitutoyo Corporation System and method for automatically recovering video tools in a vision system
US20100158343A1 (en) 2008-12-23 2010-06-24 Mitutoyo Corporation System and method for fast approximate focus

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4835730A (en) 1987-02-27 1989-05-30 Adept Technology, Inc. Database driven robot programming system and method
FR2690260B1 (fr) 1992-04-17 1997-01-03 Bull Sa Utilisation d'un protocole bidirectionnel de tres haut niveau pour la communication entre un systeme hypermedia et une pluralite d'editeurs.
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
US6016467A (en) 1997-05-27 2000-01-18 Digital Equipment Corporation Method and apparatus for program development using a grammar-sensitive editor
US7376904B2 (en) 2000-06-13 2008-05-20 National Instruments Corporation Automatic generation of programs with GUI controls for interactively setting or viewing values
US6636211B2 (en) 2000-12-15 2003-10-21 Dassault Systemes CAD/CAM feature tree with manipulatable 3D miniatures
US7055092B2 (en) 2001-12-05 2006-05-30 Canon Kabushiki Kaisha Directory for multi-page SVG document
US9092841B2 (en) * 2004-06-09 2015-07-28 Cognex Technology And Investment Llc Method and apparatus for visual detection and inspection of objects
JP2004163296A (ja) * 2002-11-14 2004-06-10 Mitsutoyo Corp パートプログラム編集時の座標系再現方法及びその装置
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
US7207017B1 (en) 2004-06-10 2007-04-17 Advanced Micro Devices, Inc. Method and system for metrology recipe generation and review and analysis of design, simulation and metrology results
GB0414649D0 (en) 2004-06-30 2004-08-04 Renishaw Plc Generation of a CNC machine tool control program
US9766953B2 (en) 2004-12-16 2017-09-19 Openspan, Inc. System and method for non-programmatically constructing software solutions
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
US7643907B2 (en) 2005-02-10 2010-01-05 Abb Research Ltd. Method and apparatus for developing a metadata-infused software program for controlling a robot
US8028085B2 (en) 2005-06-03 2011-09-27 Microsoft Corporation Optimizing message transmission and delivery in a publisher-subscriber model
US7689634B2 (en) 2005-09-16 2010-03-30 Oracle International Corporation Flexible approach to store attribute information (META-DATA) related to files of a file system
US7765184B2 (en) 2005-09-22 2010-07-27 Nokia Corporation Metadata triggered notification for content searching
US7864178B2 (en) 2005-11-09 2011-01-04 National Instruments Corporation Creating machine vision inspections using a state diagram representation
US20070150102A1 (en) 2005-12-09 2007-06-28 Joong Ki Park Method of supporting robot application programming and programming tool for the same
ES2685250T3 (es) 2006-05-11 2018-10-08 Abb Schweiz Ag Sincronización de un programa gráfico y un programa de robot
KR200437242Y1 (ko) 2007-03-06 2007-11-16 광성전기산업(주) 교류 전원용 발광 다이오드 램프
WO2009062527A1 (en) 2007-11-13 2009-05-22 Telefonaktiebogalet Lm Ericsson (Publ) Technique for automatically generating software in a software development environment
US8111905B2 (en) 2009-10-29 2012-02-07 Mitutoyo Corporation Autofocus video tool and method for precise dimensional inspection
US8271895B2 (en) * 2010-03-22 2012-09-18 Mitutoyo Corporation GUI for programming step and repeat operations in a machine vision inspection system
US9223306B2 (en) 2011-11-15 2015-12-29 Mitutoyo Corporation System and method utilizing an editing initialization block in a part program editing environment in a machine vision system
US8902307B2 (en) 2011-11-15 2014-12-02 Mitutoyo Corporation Machine vision system editing environment for a part program in which a continuous stream of image acquisition operations are performed during a run mode

Patent Citations (3)

* 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
US7454053B2 (en) 2004-10-29 2008-11-18 Mitutoyo Corporation System and method for automatically recovering video tools in a vision system
US20100158343A1 (en) 2008-12-23 2010-06-24 Mitutoyo Corporation System and method for fast approximate focus

Also Published As

Publication number Publication date
US8957960B2 (en) 2015-02-17
CN103106077B (zh) 2017-07-28
US20130123945A1 (en) 2013-05-16
JP6122282B2 (ja) 2017-04-26
CN103106077A (zh) 2013-05-15
JP2013104877A (ja) 2013-05-30

Similar Documents

Publication Publication Date Title
DE102012220884A1 (de) Maschinensichtsystemprogramm-Bearbeitungsumgebung mit Echtzeitkontexterzeugungsmerkmalen
DE102012220882B4 (de) System und Verfahren unter Verwendung eines Bearbeitungsinitialisierungsblocks in einer Teileprogramm-Bearbeitungsumgebung in einem Maschinenvisionssystem
DE112014002389B4 (de) Bearbeitungsumgebung für ein Programm für ein maschinelles Bilderkennungssystem, enthaltend ein betriebskontextbewusstes Kopier-und Einfüge-Merkmal
DE102012220875A1 (de) Maschinelle Visionssystem-Editierumgebung für ein Teilprogramm, in welchem ein kontinuierlicher Stream der Bilderfassungsoperationen während eines Ablaufmodus ausgeführt wird
DE102014206309B4 (de) System und Verfahren zum Erhalten von Bildern mit Versatz zur Verwendung für verbesserte Kantenauflösung
DE102012220759A1 (de) Programmbearbeitungsumgebung eines maschinell sehenden Systems mit synchronisierten Benutzerschnittstellenmerkmalen
DE102012216908B4 (de) Verfahren unter Verwendung einer Bildkorrelation zum Bestimmen von Positionsmessungen in einem Maschinenvisionssystem
DE102009029478B4 (de) System und Verfahren für einen schnellen ungefähren Fokus
US9013574B2 (en) Machine vision system program editing environment including synchronized user interface features
DE102011005814A1 (de) Grafisohe benutzeroberfläche zum programmieren von schritt- und wiederholvorgängenin einem visuellen maschinenprüfungssystem
DE10122699A1 (de) Verfahren und Vorrichtung zum Erzeugen von Teileprogrammen zur Verwendung in Bildmessinstrumenten, und Bildmessinstrument und Verfahren zur Darstellung damit gemessener Ergebnisse
DE102015219495A1 (de) Verfahren zum Programmieren eines dreidimensionalen Werkstückabtastwegs für ein Metrologiesystem
EP2115538B1 (de) Steuerung eines betriebes eines koordinatenmessgerätes
EP3794311B1 (de) Verfahren, vorrichtung sowie computerprogrammprodukt zum erzeugen eines prüfplans für die prüfung eines messobjekts, verfahren und vorrichtung zum prüfen eines messobjekts
DE19626889A1 (de) Verfahren und Vorrichtung zur Erfassung von Geometriedaten aus unterschiedlichen Beobachtungspositionen
DE19821372A1 (de) Koordinatenmeßgerät und Verfahren zur Steuerung eines solchen
DE102020003992A1 (de) Augmented-reality-brillenvorrichtung und anzeigeprogramm
DE102013217347A1 (de) Benutzeroberfläche zur parametereinstellung für kantenmessungs- videowerkzeuge
EP3494391B1 (de) Verfahren zur bedienung eines röntgen-systems
DE102017122627B4 (de) Optisches Messsystem und Messverfahren
DE102007057887A1 (de) Verfahren und Vorrichtung zum Anzeigen und Verändern einer Darstellung eines mehrdimensionalen Raums und/oder Objekts
DE102019133757A1 (de) Dreidimensionale rekonstruktion automatis ierter beleuchtungskörper und einsatzfähigkeiten derselben
DE102015208337A1 (de) Bearbeitungsumgebung eines maschinellen sichtsystems für ein teileprogramm, in dem ein durchgehender datenstrom von bilderfassungsvorgängen in einem laufmodus ausgeführt wird
EP3875899B1 (de) Verfahren, computerprogrammprodukt und vorrichtung zur unterstützung eines benutzers bei einer erstellung eines messplans und/oder bei einer steuerung einer durchzuführenden messung
DE102014105109A1 (de) Verfahren und Vorrichtung zum Erzeugen und Abarbeiten von Testfällen

Legal Events

Date Code Title Description
R012 Request for examination validly filed