Program editing environment of a machine-vision system with synchronized user interface features

The program editing environment for machine vision systems addresses the complexity of part program creation by synchronizing user interface windows, enabling efficient navigation and editing through intuitive selection and evaluation of instructions and results, thereby improving program quality and reducing errors.

DE102012220759B4Active Publication Date: 2026-01-15MITUTOYO CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
DE102012220759
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2011-11-15
Filing Date
2012-11-14
Publication Date
2026-01-15
Estimated Expiration
2032-11-14

AI Technical Summary

Technical Problem

Creating and editing part programs for machine vision inspection systems is complex due to the need for simultaneous display of multiple windows and the challenge of identifying cause-and-effect relationships between instructions and results, with faulty programming often only visible in unexpected results, making navigation and editing inefficient.

Method used

A program editing environment with synchronized selection and identification features across different user interface windows, allowing users to intuitively select and evaluate part program instructions and their associated results, using markup language and substitute data to establish a valid editing context.

Benefits of technology

Enhances user interface navigation, improves program quality evaluation, and increases efficiency by clearly displaying relationships between instructions and results, reducing the risk of unpredictable outcomes and machine damage.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Machine vision inspection system comprising an imaging part (34), a stage (32, 210) for holding one or more workpieces (10) in a field of view of the imaging part (34), a control part (125), a display (16, 136) and a user interface (400), wherein the machine vision inspection system further comprises: a program run mode (157) configured to be operational for executing a previously created part program using an execution program run mode; a learning mode (156) configured to be operational to receive user input to control operations of the machine vision inspection system and to record associated part program instructions corresponding to the controlled operations in order to create a part program, wherein the learning mode (156) includes a learning mode user interface which includes the following: an editing user interface part (160ui, 176, 1500) comprising an editable part program representation (1510) of part program instructions in an editing window (176pi, 420), wherein the part program representation (1510) comprises instruction representations (421-423, 1551-1564); and a results window (196, 430) that receives and displays respective results, which include results controlled by controlled operations of the machine vision inspection system; wherein the learning mode (156) is configured (920) such that upon receiving a user input providing an initial set of controlled operations of the machine vision inspection system, comprising operations that determine an initial set of results and display them in the results window (196, 430), the learning mode (156) is operational to automatically provide operations comprising the following steps: Recording a first respective set of part program instructions corresponding to the first respective set of controlled operations, which include operations that determine the first respective set of results and display them in the results window (196, 430); Displaying the first set of results in each case in the results window (196, 430); and Define and display in the editing window (176pi, 420) a first respective set of instruction representations corresponding to the first respective set of subprogram instructions, comprising operations that determine a first respective set of results and display them in the results window (196, 430); and wherein the learning mode user interface is configured (930) such that the results window (196, 430) and the editing window (176pi, 420) operate according to a set of cross-window autoscroll operations which include the following: In response to a user selection of a member of the first respective set of results in the results window (196, 430), a cross-window autoscroll operation is initiated, which includes the following steps: Adjusting the instruction representations in the editing window (176pi, 420) so that at least one instruction representation of the first respective set of instruction representations is displayed in the editing window (176pi, 420), wherein at least one instruction representation of the first respective set of instruction representations was not displayed in the editing window (176pi, 420) at the time the user selection was made; and Marking at least one instruction representation of the first respective set of instruction representations displayed in the editing window (176pi, 420) with an indicator to indicate that it corresponds to the member of the first respective results selected by the user in the results window (196, 430).
Need to check novelty before this filing date? Find Prior Art

Description

AREA OF INVENTION

[0001] The present invention relates generally to machine-readable inspection systems and in particular to methods for creating and editing part programs on such systems. GENERAL STATE OF THE ART

[0002] German patent application DE 10 2011005 814 A1 discloses visual machine inspection systems and in particular methods, video tools and user interface features that can be used to define and program inspection procedures for such systems.

[0003] Machine vision precision inspection systems (or simply "machine vision systems") can be used to obtain precise dimensional measurements of inspected objects and to inspect various other object properties. Such systems may include a computer, a camera and optical system, and a precision stage that can be moved in multiple directions to allow the camera to scan the features of an inspected workpiece. An example of a state-of-the-art system available commercially is the QUICK VISION® series of PC-based machine vision systems and the QVPAK® software, available from Mitutoyo America Corporation (MAC), Aurora, IL.The features and operation of the QUICK VISION® series of machine vision systems and the QVPAK® software are described in general terms, for example, in the “QVPAK 3D CNC Vision Measuring Machine User's Guide”, published in January 2003, and in the “QVPAK 3D CNC Vision Measuring Machine Operation Guide”, published in September 1996, which are hereby incorporated in their entirety into the present subject matter.

[0004] This product, such as the QV-302 Pro model, is capable of using a microscope-like optical system to provide images of a workpiece at various magnifications and to move the stage as needed to traverse the workpiece surface beyond the boundaries of any single video frame. A single video frame typically covers only a portion of the observed or inspected workpiece, depending on the desired magnification, measurement resolution, and the physical size limitations of these systems.

[0005] Machine-seeing inspection systems generally employ automated video inspection. U.S. Patent No. 6,542,180 B1 teaches various aspects of such automated video inspection and is hereby incorporated in its entirety into the present subject matter. As patent '180 teaches, automated metrological video inspection instruments generally possess a programmability that allows a user to define an automated inspection event sequence for each specific workpiece configuration. This can be implemented, for example, by text-based programming, or by a recording mode that gradually "learns" the inspection event sequence by storing a sequence of machine control instructions corresponding to a sequence of inspection operations performed by a user via a graphical user interface, or by a combination of both methods.Such a recording mode is often referred to as "learning mode" or "training mode". Once the inspection event sequence is defined in "learning mode", such a sequence can then be used to automatically capture images of a workpiece in "program run mode" (and additionally analyze or inspect them).

[0006] Video tools (or simply "tools") and other graphical user interface features can be used manually to perform manual inspection and / or machine control operations (in "manual mode"). Their setup parameters and operation can also be recorded in learning mode to create automated inspection programs, or "part programs." The video tools may include, for example, edge / border detection tools, autofocus tools, shape or pattern matching tools, dimensional measurement tools, and the like. Other graphical user interface features may include dialog boxes for data analysis, programming step and repeat loops, and similar functions.For example, such tools are routinely used in various commercially available machine vision inspection systems, such as the previously discussed QUICK VISION® series of machine vision systems and the associated QVPAK® software.

[0007] The machine control instructions, which encompass the specific inspection event sequence (i.e., how each image is to be captured and how each captured image is to be analyzed / inspected), are generally stored as a "part program" or "workpiece program" specific to the particular workpiece configuration. For example, a part program defines how each image is to be captured, such as how the camera is to be positioned relative to the workpiece, the lighting level, the magnification level, and so on. Furthermore, the part program defines how a captured image is to be analyzed / inspected, for example, using one or more video tools, such as edge / border detection video tools.

[0008] Creating a part program for a machine vision inspection system is a more complex task than creating a program for a machine tool, assembly robot, or similar equipment. For example, part programs for machine vision inspection systems include subsequent parts that control operations and / or provide image-dependent measurement results, which depend at least partially on the results determined by the execution of a previous part of the program and / or on the specific instance of a workpiece used to provide the images essential for the inspection operations.Furthermore, the user interface of the learning mode for such systems (used for creating and editing part programs) can be particularly complex, requiring the simultaneous display of a real-time image window, a video toolbar display, a part program display window, a results output window (or simply results window), a graphical display window for inspection features, a position window, a lighting window, and a measuring tool display. This is necessary for the user to correctly assess the causes and effects of their programming actions in order to create high-quality part programs. In such an editing environment, simply identifying the location of all the effects associated with a part program instruction can be challenging.When a user saves a partially completed part program and later retrieves it to modify or complete the programming, it can be even more difficult for them to understand the relationship between the part program instructions and their associated effects, which are displayed in various windows. There is a need for an editing environment that can improve user interface navigation, enable rapid evaluation of program quality, and enhance the overall efficiency of creating and editing part programs for a machine vision inspection system. SUMMARY

[0009] This summary is provided to introduce, in simplified form, a number of concepts that are described in more detail below. This summary is not intended to identify the main features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.

[0010] To address the considerations discussed above, it would be desirable for a machine vision inspection system to provide an editing environment that includes features which can improve user interface navigation, rapid evaluation of program quality, and the overall efficiency of creating and editing part programs for a machine vision inspection system by specifying the relationships between part program instructions displayed in an editing window and the associated operational context and / or the results displayed in other user interface windows.In such an editing environment, the user can better recognize the cause-and-effect relationships between various part program instructions in the results and even navigate to the desired parts of the user interface and / or the desired specific part program instructions in the editing window by selecting a result that interests him and that is displayed in another window.This is particularly important when the part program is created and edited by recording active control operations entered by a user of the machine vision inspection system, by the user intuitively selecting, evaluating and / or releasing the details of their control operations and / or part program instructions based on the resulting state of the machine vision inspection system and / or the measurement results associated with these control operations and / or part program instructions.

[0011] Often, a problem or lack of robustness in the part programming instructions is indicated by an unexpected or "out-of-tolerance" result in a results window, or by a misplaced measurement function in a graphical display window, or similar, and not in the part programming instructions themselves. However, the faulty part programming instructions are only visible in the editing window in a way that allows them to be understood and reliably edited or amended. Furthermore, faulty part programming instructions linked to such a displayed result are often not visible in the editing window because the editing window has a limited size in a cluttered user interface, and a part program can contain a very large number of instructions and / or corresponding instruction representations.Until now, no universal machine-reading inspection system, and in particular no system that records active user-controlled operations to create a part program (e.g., as opposed to programming systems based on simple graphical objects or text), had provided an editing environment that reliably, robustly, and practically indicates the relationships between the instruction representations of a part program in an editing window and the associated operational context and / or the results displayed in another window of a user interface during the course of editing operations.

[0012] To support this desirable editing environment, a program editing environment of a machine-seeing system, including a method that provides synchronized selection and / or identification of associated features in a variety of different user interface windows, is disclosed hereafter. In particular, one of the windows is a part program display window, also referred to as an editing window, in which part program instruction representations are displayed for editing by a user. In one embodiment, a user may select data or another function of interest in a window that is not the editing window (e.g.,(a results window or a graphical display window of workpiece inspection features), and the associated part program instruction representation is automatically displayed and / or highlighted and / or selected in the editing window, so that machining commands can be implemented conveniently on the automatically highlighted or selected part program instruction representation. In contrast, in some embodiments, a part program instruction representation can be selected by a user in the editing window, and the associated results or features in another window can be automatically highlighted and / or selected for evaluation.Related processing features and functions, which can be used in combination with the features disclosed herein, are also disclosed in the patent application entitled “Machine Vision System Program Editing Environment Including Real Time Context Generation Features”, U.S. patent application no. 13 / 297,232 (US 2013 / 123 945 A1), filed on November 15, 2011 (hereinafter “Application '232'); “System and Method Utilizing An Editing Initialization Block In A Part Program Editing Environment In “A Machine Vision System”, U.S. patent application no. 13 / 297,182 (US 2013 / 120 567 A1), filed on November 15, 2011 (hereinafter “Application '182'); and “Machine Vision System Editing Environment For A Part Program In Which A Continuous Stream Of Image Acquisition Operations Are Performed During A Run Mode,” U.S. Patent Application No. 13 / 297,220 (US 2013 / 120 553 A1), filed Aug. 15.November 2011 (hereinafter “Application '220”), which are hereby incorporated in their entirety into the present subject matter. The features disclosed herein are particularly useful when used in combination with the context generation features disclosed in Application '232. This is because, when a user processes an arbitrary point in a part program reached by the methods disclosed herein, the machine configuration or “context” may be unknown at that point, i.e., it may be unknown whether certain types of changes have occurred with respect to the machine configuration that would be expected if the part program were executed from the beginning up to that arbitrary point in the part program (e.g., that the part has been moved on the workpiece table, etc.).Further modifications to the part program at this "arbitrary" point, without establishing the expected operating context for that point (e.g., the machine configuration, etc.), can lead to unpredictable results and / or even machine damage. Based on such considerations, it was standard practice for some of these systems to execute all instructions of a part program from the beginning, including any subsequent changes or additions to the part program instructions, to verify that the changes and / or additions were programmed based on a realistic set of conditions (i.e., the expected context) for their operation. However, executing all instructions of a part program to provide a realistic operating condition for changes or additions to the instructions is impractical for large part programs (e.g.,such as those involving numerous image acquisitions and / or feature inspections, as are particularly common for machine vision inspection systems (e.g., measurements with micrometer resolution) on macroscopic objects (e.g., objects spanning dozens or hundreds of millimeters). For this reason, jumping to an arbitrary point in a part program (e.g., by the methods disclosed herein) was not considered a critical need, as it was not particularly useful for machine vision inspection systems according to the prior art. However, application '232 discloses methods for providing an editing environment that reliably and robustly provides a valid editing context for part programming at an arbitrary point in a part program during machining operations in near real time, significantly increasing the usefulness and time savings associated with the methods disclosed herein.

[0013] Thus, in some embodiments of the present invention, as described below and in application '232, a machine vision inspection system further comprises a program run mode, a learning mode, and an editing part. The program run mode is operational to execute a previously created part program using an execution program run mode. The learning mode (sometimes referred to as the recording mode) is operational to receive user input to control operations of the machine vision inspection system and to record part program instructions corresponding to the controlled operations in order to create a part program. The learning mode also comprises an editing user interface, which includes the editing window, which comprises an editable part program representation of the part program instructions, the part program representation comprising instruction representations.The machining part is operational to process a part program and includes a machining execution part that is operational to execute previously recorded part program instructions according to an execution machining mode that is different from the execution program running mode.

[0014] In various embodiments, the learning mode is configured to automatically record substitute data associated with each set of recorded part program instructions, with at least some of the substitute data including data resulting from active control operations corresponding to the associated set of recorded instructions. Furthermore, the processing mode includes a substitute execution mode. During the substitute execution mode, for at least one set of part program instructions, at least some elements of that set are not executed if substitute data associated with that set of part program instructions has been previously recorded.In other words, the corresponding linked active control operations are not executed, and the respective substitute data are used in the subsequent substitute execution mode operation as a replacement for data that would otherwise result from these active control operations that are not executed.

[0015] In various embodiments, the learning mode can be configured to record, within each set of recorded part program instructions, an indication of whether any substitute data associated with that set of instructions has been previously recorded. In one embodiment, this indication is included in an initial instruction of the respective set of recorded part program instructions. In another embodiment, the respective set of recorded part program instructions can include instructions written in a markup language (e.g., XML or a derivative thereof). In various embodiments, the respective set of recorded part program instructions can include at least one element, a parent element, a container element, and a child element written in the markup language.In at least one embodiment, the specification can include the availability of respective substitute data contained in the respective set of recorded part program instructions. In at least one embodiment, the specification can include a respective identifier contained in the respective set of recorded part program instructions, wherein the respective identifier can be used to locate the corresponding respective substitute data in a substitute data storage part of the machine vision inspection system.

[0016] In various embodiments, the editing part includes editing commands that can be used to edit a part program, and the editing execution part is configured such that when the user uses the edited user interface to enter an editing command to edit the program at a target location specified in the editing window and / or the part program representation (e.g., an arbitrary part program location reached by the methods disclosed herein), the execution editing mode then starts at a valid context start location in the part program prior to the target location and uses the substitute execution mode to execute at least a portion of the part program instructions in order to establish a valid context for editing the part program at the target location.

[0017] Additional features associated with the provision and use of the systems and methods disclosed herein, which have been briefly discussed previously, will be understandable to the person skilled in the art based on the various drawings, descriptions and claims disclosed in this application, in particular when considered together with the reference documents included, whereby similarly depicted, described and / or referenced elements will further be understandable by cross-reference. DESCRIPTION OF THE DRAWINGS

[0018] The foregoing aspects and many of the associated advantages of the present invention will become clearer upon closer examination by referring to the following detailed description and the accompanying drawings. These show: Fig. 1 a diagram showing various typical components of a universal machine vision precision inspection system; Fig. 2. A block diagram of a control system part and a part with machine vision components of a machine vision inspection system similar to the one from Fig. 1, with features that can be used in various embodiments according to the present invention; Fig. 3 a schematic functional representation of communication routines and / or processes that can be used to implement cross-window autoscroll operations as disclosed here; Fig. 4 a scheme of a user interface comprising an editing user interface and a results window; Fig. 5 a scheme that describes user interface operations Fig. 4 depicts; Fig. 6 a scheme that describes user interface operations Fig. 4 depicts; Fig. 7 a scheme that describes user interface operations Fig. 4 depicts; Fig. 8 A scheme showing code instructions in the markup language of the subprogram, which are some of the instruction representations from Fig. 4, Fig. 5, Fig. 6 to Fig. 7 correspond; Fig. 9 a flowchart that depicts an embodiment of a routine for providing a program editing environment to a machine-seeing system; Fig. 10. A flowchart that depicts a routine which is an alternative to a part of the routine. Fig. 9 is; Fig. 11 a flowchart showing an embodiment of part of the routine Fig. 10 depicts; Fig. 12 a flowchart that represents an embodiment of another part of the routine Fig. 10 depicts; Fig. 13 a flowchart that depicts an embodiment of an additional and / or alternative routine for operating a program editing environment; Fig. 14 a block diagram showing additional components of the machining part 160 from Fig. 2 depicts; Fig. 15 a scheme of an editing interface comprising a part program representation having a variety of instruction representations; Fig. 16 a scheme of a user interface comprising an image of a workpiece on which the part program is applied according to Fig. 15 was carried out; Fig. 17A and Fig. 17B Schemas of code instructions of the subprogram in markup language, which are some of the instruction representations from Fig. 15 correspond; Fig. 18A and Fig. 18B Flowcharts illustrating an embodiment of a routine for providing an editing environment for a part program of a machine vision system, which includes features for real-time context generation; and Fig. 19 a flowchart that depicts an embodiment of a routine for executing a substitute execution mode to provide a valid editing context at a part program location specified by the representation, element or node of the part program instructions. DESCRIPTION

[0019] Fig. Figure 1 is a block diagram of an example of a machine vision inspection system 10 that can be used according to the procedures described herein. The machine vision inspection system 10 comprises a machine vision measuring machine 12, which is effectively connected to exchange data and control signals with a control computer system 14. The control computer system 14 is further effectively connected to exchange data and control signals with a screen or display 16, a printer 18, a joystick 22, a keyboard 24, a mouse 26, or the like. The screen or display 16 can display a user interface suitable for controlling and / or programming the operations of the machine vision inspection system 10.

[0020] The machine vision measuring machine 12 comprises a movable workpiece table 32 and an optical imaging system 34, which may include a zoom lens or interchangeable lenses. The zoom lens or interchangeable lenses generally provide various magnifications for the images provided by the optical imaging system 34. The machine vision inspection system 10 is generally comparable to the previously mentioned QUICK VISION® series of machine vision systems and the QVPAK® software, and similar commercially available, state-of-the-art precision machine vision inspection systems. Suitable inspection systems with machine vision 10 are also described in US patents No. US 7,454,053 B2 and US 7,324,682 B2, US patent application No. 12 / 343,383 (US 2010 / 158 343 A1), filed on December 23, 2008, and US patent application No. 12 / 608,943 (US 2011 / 103 679 A1), filed on December 29, 2011.described by the applicant in October 2009, which are hereby incorporated in their entirety into the present subject matter.

[0021] Fig. Figure 2 is a block diagram of a control system part 120 and a part with machine vision components 200 of a machine vision inspection system 100, which is similar to the machine vision inspection system from Fig. 1 is and comprises features that are usable in various embodiments according to the present invention. As described in more detail below, the control system part 120 is used to control the part with machine vision components 200. As in Fig. As shown in Figure 2, the part with machine vision components 200 comprises an optical assembly part 205, light sources 220, 230, and 240, and a workpiece table 210 with a transparent central section 212. The workpiece table 210 is controllably movable along the X and Y axes, which lie in a plane that is generally parallel to the surface of the object table on which a workpiece 20 can be positioned. The optical assembly part 205 comprises a camera system 260, an interchangeable objective lens 250, and may include a turret lens assembly 280 with lenses 286 and 288. Alternatively to the turret lens assembly, a fixed or manually interchangeable magnification-changing lens, a zoom lens configuration, or the like may be included.The optical assembly part 205 is controllable and movable along a Z-axis which is essentially orthogonal to the X- and Y-axes by using a controllable motor 294 as described below.

[0022] A workpiece 20, or a tray or fixture holding a plurality of workpieces 20 to be imaged using the machine vision inspection system 100, is placed on the workpiece table 210. The workpiece table 210 can be controlled to move relative to the optical assembly part 205 such that the interchangeable objective lens 250 moves between positions on a workpiece 20 and / or between a plurality of workpieces 20. One or more of an object table lamp 220, a coaxial lamp 230, and a surface lamp 240 can each emit a source light 222, 232, or 242 to illuminate the workpiece(s) 20. The source light is reflected or transmitted as workpiece light 255 passing through the interchangeable objective lens 250 and the turret lens assembly 280 and collected by the camera system 260. The image of the workpiece or workpiece(s) 20 is then displayed.The image of the workpiece 20, captured by the camera system 260, is output to the control system unit 120 via a signal line 262. The light sources 220, 230, and 240 can each be connected to the control system unit 120 via signal lines or buses 221, 231, and 241, respectively. To change the image magnification, the control system unit 120 can rotate the turret lens assembly 280 along the axis 284 to select a turret lens via a signal line or bus 281.

[0023] In various embodiments, the optical assembly part 205 is movable in the vertical Z-axis direction relative to the workpiece table 210 by means of a controllable motor 294, which drives an actuator, a connecting cable, or the like to move the optical assembly part 205 along the Z-axis in order to change the focal point of the image of the workpiece 20, which is captured by the camera system 260. The term Z-axis, as used here, refers to the axis intended to be used for focusing the image obtained by the optical assembly part 205. The controllable motor 294, if used, is connected to the input / output interface 130 via a signal line 296.

[0024] As in Fig. As shown in Figure 2, the control system part 120, in various embodiments, comprises a controller 125, a power supply part 128, the input / output interface 130, a memory 140, a device for generating and executing workpiece programs 150, a device for recording / translating 155, a learning mode part 156, a program run mode part 157, a processing part 160, a spare data manager 180, a program status manager 185, a node manager 190, a cross-window autoscroll part 195, and a result window part 196. Each of these components, as well as the additional components described below, can be interconnected via one or more data / control buses and / or application programming interfaces or via direct connections between the various elements.

[0025] The input / output interface 130 comprises an imaging control interface 131, a motion control interface 132, an illumination control interface 133, and a lens control interface 134. The motion control interface 132 may include a position control element 132a and a velocity / acceleration control element 132b, although such elements may be combined and / or indistinguishable. The illumination control interface 133, for example, controls the selection, power, on / off switch, and, if applicable, the fade-out pulse time for the various corresponding light sources of the machine vision inspection system 100.

[0026] Memory 140 comprises a memory section for image files 141, a memory section for workpiece programs 142, which may contain one or more part programs 142PP or the like, and a video tool section 143. Video tool section 143 comprises video tool section 143a and other video tool sections that define the GUI, image processing operation, etc., for each of the corresponding video tools. Many well-known video tools are included in commercially available machine vision inspection systems, such as the previously discussed QUICK VISION® series of machine vision systems and the associated QVPAK® software. Video tool section 143 also includes a device 143x for generating an area of ​​interest (ROI), which supports automatic, semi-automatic, and / or manual operations that define various ROIs operational in various video tools included in video tool section 143.

[0027] In general, the memory unit 140 stores data that can be used to operate the machine vision component 200 to capture or record an image of the workpiece 20, ensuring that the captured image of the workpiece 20 has the desired image properties. The memory unit 140 can also store inspection result data and can further store data that can be used to operate the machine vision inspection system 100 to perform various inspection and measurement operations on the captured images (which are, for example, partly implemented as video tools), either manually or automatically, and to output the results via the input / output interface 130. The memory unit 140 can also contain data that defines a user interface that can be operated via the input / output interface 130.The memory section 140 can also contain data that defines a user interface, which is operational via the input / output interface 130. As described below with reference to... Fig. 14, Fig. 15, Fig. 16, Fig. 17, Fig. 18 to Fig. As described in more detail in section 19, a certain context can be simulated when a subprogram is being processed by using previously stored data as substitute data, instead of having to execute all the steps of the subprogram sequentially to generate the necessary context for continued processing. Memory section 140 can also store such substitute data.

[0028] The signal lines or buses 221, 231, and 241 of the object table lamp 220, the coaxial lamp 230, and the surface lamp 240 are each connected to the input / output interface 130. The signal line 262 from the camera system 260 and the signal line 296 from the controllable motor 294 are also connected to the input / output interface 130. In addition to carrying image data, signal line 262 can carry a signal from the controller 125 that initializes image acquisition.

[0029] One or more display devices 136 (e.g. the display 16 from Fig. 1) and one or more input devices 138 (e.g. the joystick 22, the keyboard 24 and the mouse 26) Fig. 1) can also be connected to the input / output interface 130. The display devices 136 and the input devices 138 can be used to display a user interface that may include various user interface features that can be used to perform inspection operations and / or to create and / or modify part programs, to view the images captured by the camera system 260, and / or to directly control the part with machine vision components 200. In particular, according to various embodiments of the present invention, the display devices 136 and the input devices 138 are used to have various user interface features that can be used to enable efficient, intuitive, and flexible editing of part programs on the machine vision inspection system 100.

[0030] The device for generating and executing workpiece programs 150, the device for recording / translating 155, the learning mode part 156, the program run mode part 157, the machining part 160, the backup data manager 180, the program status manager 185, the node manager 190, and a cross-window autoscroll part 195 can, in one embodiment, all be considered part of a general machine controller block MC connected to the controller 125. Additionally, a client window part 197 can be connected to the controller 125. In some embodiments, a client window can be considered to be located outside the control system part 120, but connected to it for interaction. The device for generating and executing workpiece programs 150 is responsible for creating and executing part programs. It is understood that the terms "workpiece program" and "part program" may be used interchangeably here.

[0031] According to the procedures of the device for generating and executing workpiece programs 150, in various embodiments, when a user uses the machine vision inspection system 100 to create a part program for the workpiece 20, the user generates part program instructions either by explicitly coding the instructions automatically, semi-automatically, or manually using a workpiece programming language, and / or by generating the instructions by operating the machine vision inspection system 100 in a learning mode (such as controlled by the learning mode part 156) to provide a desired image acquisition training sequence. For example, a training sequence might involve positioning a specific workpiece feature in the field of view (FOV), adjusting light levels, focusing or autofocusing, acquiring an image, and providing an inspection training sequence that is applied to the image (e.g., by applying a specific inspection sequence).B. using video tools). The learning mode works by capturing or recording the sequence(s) and translating them into corresponding part program steps (i.e., instructions). When the part program is executed (such as controlled by the program run mode part 157), these part program steps cause the machine vision inspection system to repeat the learned image acquisition and inspection procedures to automatically inspect one or more parts corresponding to the part(s) used in creating the part program.

[0032] The recording / translating device 155 is used to translate machine operations into part program code. In other words, when a user performs an action (such as changing a video tool used to measure a feature on a workpiece), an instruction is generated that is translated into a machine-readable language, and a reverse translation can also be performed. As described in more detail below, in certain embodiments disclosed herein, certain instructions in a part program can also be translated into instruction representations in a user interface. In some embodiments, the part program instructions can be written in a language code similar to a markup language. In one specific embodiment, the markup language code can be MIML code. The machining part 160 provides various operations and user interface features.activates those related to editing a part program within an editing user interface part 160ui, which may include a part program display window, as described in more detail below.

[0033] The substitute data manager 180 is not strictly necessary to implement all embodiments of the present invention. However, the substitute data manager 180 can be used in combination with the present invention in some embodiments. In short, the substitute data manager 180 establishes a connection to substitute data, which, according to the present invention, may be recorded in a part program. In certain implementations, the substitute data manager 180 is responsible for obtaining the substitute data from an output where it is normally generated and providing the substitute data to be entered into the part program. The substitute data manager 180 is described in more detail below.

[0034] In one embodiment, the program status manager 185 controls whether the programs are protected or unprotected. In one implementation, an unprotected part program may include stored substitute data, while all substitute data has been removed from a protected part program. In one embodiment, protected programs are those for which the machining process has ended, so that they can be used, for example, in a factory in a program run mode. In another embodiment, a user can select a part program to be protected, and the program status manager 185 then automatically removes all substitute data, so that the part program is not burdened with unnecessary execution steps at runtime.If a program is unprotected, the program status manager 185 is also responsible for ensuring that the substitute data remains recorded in the part program, and that when a part program is retrieved again by the machining part 160, the substitute data is indicated as available.

[0035] In one embodiment, the node manager 190 is responsible for managing node numbers assigned to the nodes in a part program. In another implementation, a node number is assigned to each instruction representation within a part program representation. Certain implementations may use an organizational tree structure with parent and child nodes. In some implementations, the node manager 190 assigns a node number, a guaranteed unique identifier, or the like to each line of a part program representation generated by the record / translate device 155.As described in more detail below, in some embodiments, the cross-window autoscroll section 195 can use the node numbers assigned by the node manager 190 to simultaneously display related elements of linked part program elements and corresponding editing functions in another window. In other words, if a user wants to see which measurements of a workpiece are related to which instruction representations and coded instructions in a part program, the cross-window autoscroll section 195 automatically scrolls in the respective window to display the relevant lines of the part program representation and / or the coded instructions corresponding to the relevant node number.

[0036] The result window part 196 provides or activates various operations and user interface features related to the processing of a part program, including the display of results of measurements performed by inspection operations of the machine vision system within a result window user interface 196ui. In general, the result window part 196 and / or the result window user interface 196ui may include the various features and attributes described elsewhere in this disclosure, as well as extensions, and are alternatives that will be apparent to a person skilled in the art in this field based on the features or attributes of the cross-window autoscroll part depicted, described, and / or referenced in this disclosure.

[0037] The client window part 197 provides or activates various operations and user interface features related to the processing of a part program, including the display of features related to measurements performed by inspection operations of the machine vision system within a client window user interface 197ui. More specifically, the client window part 197 and / or the client window user interface 197ui may include the various features and attributes described elsewhere in this disclosure, as well as extensions and / or alternatives that will be apparent to a person skilled in the art based on the features or attributes of the cross-window autoscroll part depicted, described, and / or referenced in this disclosure. In some embodiments of the present invention, a client window is not required.A client window can be associated with a program or routine that is not essential for the basic operation of the machine vision inspection system, but which may provide enhanced functionality or user-friendliness. The graphic view window portion, represented by the graphic view window shown in... Fig. 4, Fig. 5, Fig. 6 to Fig. Figure 7 shows an example of a client window part 197. As shown in Fig. As shown in Figure 3, a client window can have features and attributes for a cross-window autoscroll user interface that are essentially similar to those revealed here for a results window.

[0038] Furthermore, with reference to Fig. 2 many features from Fig. 2. These are to be understood based on the descriptions of their corresponding or substantially similar counterparts, which are similarly depicted, described, and / or referenced elements in the concurrently pending applications, which have been previously included by cross-reference. The editing part 160 and / or the editing UI part 160ui, which is described in more detail below, may have numerous features that are similar to or identical with the corresponding features described in the included reference documents. The cross-window autoscroll part 195 may include the various features and attributes disclosed herein, as well as extensions and / or alternatives that will be apparent to the person skilled in the art based on the features and attributes of the cross-window autoscroll part depicted, described, and / or referenced in this disclosure.Furthermore, the cross-window autoscroll part 195 can alternatively be referred to as the autoscroll manager and may have certain features similar to those described with reference to the autoscroll manager described in the included reference documents.

[0039] It is understood that the processing part 160, the cross-window autoscroll part 195, the node manager 190, and, in some embodiments, the substitute data manager 180, work together to provide the various features disclosed herein to enhance the part program processing environment of a machine vision inspection system. In some embodiments, these various parts may alternatively be configured to be related to one another or otherwise combined and / or indistinguishable. It is thus understood that the configuration of these parts, which are described in Fig. The figure shown in 2 is purely exemplary and not limiting.

[0040] Fig. Figure 3 is a functional schematic representation 300 of an embodiment of communication routines and / or processes that can be implemented by a cross-window autoscroll part 195 (e.g., the cross-window autoscroll part 195, which is in Fig. 2 is shown), to provide the cross-window autoscroll features revealed here. Fig. Figure 3 schematically shows the cross-window autoscroll part 195, a program display window part 176pi, a result window part 196, and a client window part 197. It is understood that a "window part" can comprise a displayed user interface window as well as its associated features and the underlying routines that provide its operations. A window part can also simply be referred to as a window here. The program display window part 176pi can sometimes also be referred to here and / or in the adopted references as a program instruction display window or as an editing window.

[0041] At the in Fig. In the embodiment shown in Figure 3, the cross-window autoscroll part 195 interacts with the program display window part 176pi via a notification SE of a selection event of a program display window and via a notification AS of an autoscroll of a program display window. The cross-window autoscroll part 195 interacts with the client window part 197 via a notification SE of a selection event of a result window and via a notification AS of an autoscroll of a result window. The cross-window autoscroll part 195 interacts with the client window part 197 via a notification SE of a selection event of a client window and via a notification AS of an autoscroll of a client window. The various selection event notifications SE are triggered independently. That is to say,, that any window containing the selection of an item of a type that a linked item in another window may have, may issue a selection event notification SE in response to that selection based on a routine or operations of that window triggered by the selection event.

[0042] A selection event might consist, for example, of the user selecting an instruction representation in the program display window, a result in the results window, or a graphical element in a client window. The selection can be made using a user interface input device and a known element selection method, such as clicking the element in a user interface or the like. In various implementations, however, autoscroll notifications (AS) for each possible window are triggered in response to any selection event notification and are generally sent to all possible windows (although it is not necessary to send an autoscroll notification to the window that generated the current selection event notification).

[0043] The autoscroll notifications (AS) are based on a routine or operations of the cross-window autoscroll component, triggered by a selection event notification (SE). In response to receiving an autoscroll notification (AS), a window displays and / or highlights a feature or element within that window that is associated with the specific element selected in the window that issued the triggering selection event notification (SE), as described in more detail below. One aspect of the novelty of the systems and methods disclosed herein lies in the combination of various attributes and features disclosed here in connection with providing an environment for programming and manipulating parts of a machine-seeing system.Such a combination had not previously been considered or achieved in connection with the certain complexity involved in operating and programming a machine vision inspection system, in order to provide the features of a user interface for part programming disclosed herein.

[0044] One embodiment made of Fig. 3 can be implemented using known "publisher-subscriber" methods, sometimes implemented using XML-like languages ​​(such as those used for notifications between websites). In various embodiments, a publisher-subscriber method can be implemented by adapting the methods, such as a list-based, broadcast-based, or content-based method, to support the features disclosed herein. In a machine-viewing inspection system, the publishers and subscribers are generally in the same processing space, and it is possible that the identity of the "subscriber" window is known to the "publisher".US patent US 8 028 085 B2 (“the patent '085”), which is applicable to such cases and which is hereby incorporated in its entirety by cross-reference into the present subject matter, describes low-latency processes that can be adapted to support the features disclosed herein.

[0045] In various embodiments, linked or corresponding features can be placed in the various windows while part program instructions are created and / or recorded in learning mode. In one embodiment, for example, each of the corresponding features can be assigned or labeled with the same "identifier" in each window section as a means of establishing and recording their link. In such an embodiment, the selection event notification (SE) can include the identifier of the selected element, which can be passed on via the autoscroll notification (AS), so that the receiving window can automatically execute (e.g., display and / or highlight) the associated feature or element based on this identifier, as described in more detail below.

[0046] Fig. Figure 4 is a scheme of a learning-mode user interface 400, which includes an embodiment of an editing environment comprising a plurality of windows that can be configured and operated according to the principles disclosed herein. The editing environment includes part program instruction representations (such as the “measurement line” labeled “LINE-1” using a “box tool”), which are displayed in a part program display window 420 (which in various embodiments can be used and referred to as an editing window 420), measurement results from these part program instructions (e.g., the measurement result coordinate X = 128.1750409), which are displayed in a result window 430, and representations of various associated measured features (e.g.,including line features 441 and line 442 and a distance 443 between the lines, indicated by a double arrow), which are depicted as superimposed on a CAD model in a graphical view client window 440. This user interface 400 has equivalent elements described in the adopted references, and its various embodiments can be further understood based on the description in those references. More generally, the features or elements generated in windows 430 and 400 are generated by the learning-mode execution of recorded part program instructions, corresponding to the instruction representations shown in the part program display window 420. In the state shown in . Fig. As shown in image 4, none of the elements have been selected by a user.

[0047] The user interface 400 also includes a toolbar 450, a toolbar 460, a stage position indicator 470, and a viewport indicator 480. Toolbar 450 contains various user tools (e.g., measurement video tools) arranged horizontally in the upper part of the user interface 400. Toolbar 460 contains user tools (e.g., alignment and magnification tools) arranged vertically in the right part of the user interface. The stage position indicator 470 displays the X, Y, and Z coordinates indicating the position of the stage 32.The field of view indicator 480 displays a field of view of the machine vision inspection system 100 as depicted by the camera 260, and for informational purposes schematically shows with a dashed outline the location where a box tool area of ​​interest corresponding to the box tool instruction representation 422A would appear if defined and recorded by a user.

[0048] The part program instruction representations shown in the part program display window 420 include parent node instruction representations 421, 422, and 423. Parent node instruction representation 421 includes child node instruction representations 421A and 421B. Parent node instruction representation 421 indicates that a box tool is opened to measure the line feature 441, represented as LINE-1. Instruction representation 421A indicates that the user uses the box tool to determine edge points of LINE-1, which are then used, as specified by instruction representation 421B, to define LINE-1. Parent node instruction representation 422 includes child node instruction representations 422A and 422B.The parent node instruction representation 422 indicates that a box tool is opened to measure the line feature 442, represented as LINE-2. Instruction representation 422A indicates that the user uses the box tool to determine edge points of LINE-2, which are then used, as specified by instruction representation 422B, to define LINE-2. Instruction representation 423 indicates that a distance 443, represented as "DIST", is determined between LINE-1 and LINE-2. The results window 430 displays the measurement results 431, 432, and 433, corresponding to instruction representations 421, 422, and 423, respectively.

[0049] Fig. 5 is a scheme that describes user interface operations. Fig. Figure 4 illustrates one aspect of an embodiment according to the principles disclosed herein. In short, the part program instruction representation 422B is highlighted in the part program display window 420, the associated line measurement result LINE-2 is highlighted in the result window 430, and an associated line feature 441 is highlighted in the client window 440. In various embodiments, the other corresponding elements are advantageously highlighted or otherwise marked in the other windows (e.g., as shown) when the user selects one of these elements in one of the windows.

[0050] The procedure or procedures relating to Fig. The elements shown and described in Figure 3 can be used to provide the necessary notifications between windows, and each window can include routines or operations that provide the corresponding highlighting and / or marking. This provides the advantages discussed earlier. In one embodiment, selecting an element in the results window 430 or the client window 440 results in a transfer of control to the part program display window and / or a selection of the corresponding part program instruction display in that window as soon as it receives the associated selection event notification (e.g., as with reference to Fig. 3 described), so that processing operations are immediately facilitated.

[0051] Fig. 6 is a second scheme that describes user interface operations. Fig. 4 represents another aspect of an embodiment in accordance with the principles disclosed herein. Fig. Figure 6 shows a similar example of the relationship between corresponding elements in the various windows. In short, the part program instruction representation 423 (a distance measurement between the lines) is selected and therefore highlighted in the part program display window 420, the associated distance measurement result DIST is highlighted in the result window 430, and the associated distance 443 is highlighted in the client window 440. In some embodiments, executing a part program instruction representation 423 (e.g., to train a video tool, confirm a process result, or the like) can leave the corresponding instruction in a "selected" state, insofar as it can be highlighted along with the corresponding elements in other possible windows.

[0052] Fig. 7 is a third scheme that describes user interface operations. Fig. 4 depicts another aspect of an embodiment according to the principles disclosed herein. Fig. Figure 7 shows an example where selecting a feature in the client window 440 results in the selection of the corresponding element in the part program display window 420 (i.e., the editing window), but, unlike the embodiments described previously, does not affect the result window 430. Of course, in some embodiments, selecting an element in the result window 430 may exhibit analogous behavior, i.e., the editing window 420 may be affected, while the client window 440 may not be affected. Such an embodiment, which does not affect all windows simultaneously, may be advantageous for certain window types or programming situations. In particular, in the case described in Figure 7, the following applies: Fig. In the embodiment shown in Figure 7, the part program instruction representation 421B is highlighted in the part program display window 420 when the associated line measurement result LINE-1 is selected (and highlighted in some embodiments) in the result window 430, while the associated distance 443 is not highlighted in the client window 440 at that time.

[0053] It goes without saying that with regard to Fig. 5, Fig. 6 to Fig. 7. Each window can contain elements that are "not visible" at the time of a selection event notification (e.g., in a large part program, a workpiece CAD image, or the like). The user can preview the contents of any window individually before making a selection, and the contents of other windows do not need to be adjusted at that time. Then, in various implementations, if the corresponding element in any window is not currently in view, a routine or actions within that window automatically cause its content to jump to or preview the element corresponding to the selection event notification.Therefore, if an element in one window, related to a user-selected element in another window, is not visible in its respective window, the learning mode user interface can be configured to automatically "scroll" the display in its respective window until the related element becomes visible. While the terms "scroll" or "autoscroll" may be used here, it is understood that these terms are used for convenience only and are not restrictive. More generally, the element corresponding to the selected element can be made visible in its respective window by any known method, including simply regenerating the window with the desired content or similar means.

[0054] Fig. 8 is a Scheme 800 that includes instructions of a subprogram in markup language code, which are some of the instruction representations from Fig. 4, Fig. 5, Fig. 6 to Fig. 7 can correspond. In particular, it forms Fig. 8 an implementation of an automatically defined identifier that can be used by some embodiments to implement user interface synchronizing “autoscroll” features, which were discussed previously and are described below with reference to some or all of the Fig. 9, Fig. 10, Fig. 11, Fig. 12 to Fig. 13 will be discussed. In particular, it shows Fig. 8 a specific implementation which includes an XML-like coding language, where a “node ID” value 805 or identifier 805, corresponding to the measurement of LINE-2, is automatically generated and a part program instruction is inserted when the part program instruction is recorded.

[0055] As in Fig. Figure 8 shows a point linked to an end of LINE-2, depicted as part of data 810. In one embodiment, a node ID from the cross-window autoscroll part can be used to be assigned to linked part program instructions and their corresponding instruction representations, which are displayed in the part program display window and / or in the results window generated by the results and / or in a client window based on the execution of these instructions. Thus, related features in various windows are linked in the cross-window autoscroll part.

[0056] Alternatively, the results window and / or the client window and / or the part program display window (i.e., the editing window) can generate their own element identifiers at the time they generate their displayed elements and pass this information to the cross-window autoscroll part, which can form a link between the various identifiers in a stored identifier linking table or the like.It is understood that in some embodiments the part program instructions in the part program instruction representations can be handled within a single application or subroutine of the control software of the machine vision inspection system, so that a part program instruction or its corresponding part program instruction representation can be represented by a single identifier that can be used by the cross-window autoscroll part with reference to one or the other of these elements.

[0057] Fig. 9, Fig. 10, Fig. 11, Fig. 12 to Fig. 13 are briefly described below. Various features and attributes associated with different implementations from Fig. 9, Fig. 10, Fig. 11, Fig. 12 to Fig. 13 are linked, can be achieved by laying out Fig. 9, Fig. 10, Fig. 11, Fig. 12 to Fig. 13 taking into account the various figures and revelation contained herein, as well as the description and revelation contained in the references adopted.

[0058] Fig. Figure 9 is a block diagram illustrating an embodiment of Routine 900 for providing a program editing environment of a machine vision system that is operated according to the principles discussed above and below.

[0059] As in Fig. As shown in Figure 9, a learning mode of a machine vision inspection system is provided in block 910, which is configured to be operational to receive user input, to control operations of the machine vision inspection system, and to record associated part program instructions corresponding to the controlled operations in order to create a part program. The learning mode includes a learning mode user interface, which includes an editing user interface part comprising an editable part program representation of part program instructions in an editing window, the part program representation comprising instruction representations, and a results window that receives and displays the respective results, which include results provided by controlled operations of the machine vision inspection system.

[0060] In Block 920, the learning mode is configured such that upon receiving a user input providing an initial set of controlled operations for the machine vision inspection system, including operations that determine and display an initial set of results in the results window, the learning mode is operational to automatically provide operations that include the following: • Recording a first respective set of part program instructions that correspond to the first respective set of controlled operations, which include operations that determine the first respective set of results and display them in the results window, • Displaying the first set of results in the results window, and • Define and display a first respective set of instruction representations that correspond to the first respective set of subprogram instructions, which include operations that determine a first respective set of results and display them in the results window.

[0061] In at least one embodiment or implementation, the routine either continues with a routine part described in Block 930, or in another embodiment or implementation with an alternative Block A corresponding to a routine part described in Fig. 10 is described.

[0062] As shown in the implementation in Block 930, the learning mode is configured to provide user interface operations that operate the results window and the part program display window (the editing window) according to a set of cross-window autoscroll operations, wherein: when the user selects a member from the first respective set of results in the results window, a cross-window autoscroll operation is initiated, which includes: adjusting the instruction representations in the editing window so that at least one instruction representation of the first respective set of instruction representations is visible in the part program display window, and at least one instruction representation of the first respective set of instruction representations in the editing window is highlighted by an indicator to specify at least one instruction representation in the editing window.which corresponds to the first respective results selected by the user in the results window.

[0063] Fig. 10 is a flowchart that depicts a routine part 900A, which is an alternative to block 930 from Fig. 9, and to which a specific implementation belongs that provides a similar or identical function. If routine part 900A is used instead of block 930, then the learning mode is entered after block 920 and / or block 925, as in Fig. 9 shown in block 928, configured to differentiate between at least one member of the first respective set of results in the results window and a corresponding member of at least one of: (a) the first respective set of part program instructions; and (b) the first respective set of instruction representations to define and record a cross-window autoscroll link. The corresponding link is linked to part program instructions that, when executed, generate the first respective set of results in the results window, as discussed previously. Then, in block 930, the learning mode is configured to provide user interface operations that operate the results window and the editing window according to a set of cross-window autoscroll operations, based on the cross-window autoscroll link, wherein: when the user selects a link of the first respective set of results in the results window, a cross-window autoscroll operation is initiated that includes: adjusting the instruction representations in the editing window so that at least one instruction representation of the first respective set of instruction representations is visible in the part program display window.and at least one instruction representation of the first respective set of instruction representations in the editing window is marked by an indicator to specify at least one instruction representation in the editing window that corresponds to the first respective results selected by the user in the results window. The cross-window autoscroll operation is based on the cross-window autoscroll link. The cross-window autoscroll link can be established as discussed previously and / or as described below.

[0064] Fig. 11 is a flowchart 928', which is an embodiment of part of the routine from Fig. 10 is depicted. In particular, it shows Fig. 11 an embodiment of operations which can be used to define and record a cross-window autoscroll link so that it can be used to identify the relevant elements in the window in question.

[0065] In block 928'A, at least one first respective result identifier is automatically defined and recorded in the result window in conjunction with at least one member of the first respective set of results, wherein the first respective result identifier is unique for the at least one member of the first respective set of results.

[0066] In block 928'B, at least one of the following elements is automatically defined and recorded: (a) at least one first respective subprogram instruction identifier in association with at least one term of the first respective set of recorded subprogram instructions, wherein the at least one first respective subprogram instruction identifier is unique for that at least one term; and (b) at least one first respective instruction representation identifier in association with at least one member of the first respective set of subprogram instruction representations in the editing window, wherein the at least one first respective instruction representation identifier is unique for this at least one member.

[0067] In block 928'C, a link is established between at least one initial result identifier and at least one of: (a) the at least one first respective subprogram instruction identifier; and (b) the at least one first respective instruction representation identifier automatically defined and recorded.

[0068] In other words, according to the above with reference to Block 928 in Fig. The 10 discussed principles define and record the link between the identifier of a specific set of results in the results window and the identifier of a corresponding set of subprogram instructions that generate the first respective set of results in the results window when executed. In one embodiment, the identifier(s) can be implemented as previously described with reference to Fig. 8 discussed.

[0069] As previously stated, the results window and / or the client window and / or the part program display window (i.e., the editing window) can generate their own element identifiers at the time they generate their displayed elements and pass this information to the cross-window autoscroll part, which can form a link between the various identifiers in a stored identifier link table or the like.It is understood that in some embodiments, the part program instructions can be handled in the part program instruction representations within a single application or subroutine of the control software of the machine vision inspection system, such that a part program instruction or its corresponding part program instruction representation can be represented by a single identifier that can be used by the cross-window autoscroll part with respect to one or the other of these elements. Thus, in some embodiments, the identifier associated with the results and the identifier associated with the corresponding part program instructions can be the same identifier, and the linking process previously discussed with reference to Block 928'C is completed simply by using the same identifier to identify corresponding elements in various windows.

[0070] Fig. 12 is a flowchart 1200, which is an embodiment of a part of routines from Fig. 9 and / or 10. In particular, it shows Fig. 12 an embodiment of operations which can be used to implement the operations of blocks 930 and / or 930'.

[0071] Decision block 1210 determines whether a particular result is selected in the results window (e.g., by a user selecting the result via the user interface). If no result is selected in the results window, the routine proceeds to block 1220, where the results window is checked for selection events, and then returns to decision block 1210. If a result is selected in the results window, the routine proceeds to block 1230.

[0072] Block 1230 identifies the corresponding result identifier that is linked to the selected result.

[0073] In block 1240, the respective part program instruction (PPI) and / or the respective PPI identifier associated with the respective result identifier is identified. In one embodiment, this can be done via the intermediate step of identifying a respective identifier for a part program instruction representation associated with the respective result identifier, and then by identifying the part program instruction(s) (PPI) underlying the respective part program instruction representation.

[0074] In decision block 1250, it is determined whether the instruction representation corresponding to the respective PPI and / or PPI identifier linked to the respective result identifier in the part program display window is visible. If the instruction representation corresponding to the respective PPI and / or PPI identifier linked to the respective result identifier is visible in the part program display window, the routine continues with block 1270. If the instruction representation corresponding to the respective PPI and / or PPI identifier linked to the respective result identifier is not visible in the part program display window, the routine continues with block 1260.

[0075] In block 1260, the instruction representations in the part program display window are adjusted so that at least one instruction representation corresponding to the respective PPI and / or the PPI identifier that is or are linked to the respective result identifier is visible in the part program display window.

[0076] In block 1270, this instruction representation, which corresponds to the respective PPI and / or PPI identifier, is marked with an indicator in the user interface to indicate at least one instruction representation in the editing window that corresponds to the respective result selected by the user in the results window.

[0077] Fig. Figure 13 is a flowchart 1300 that depicts an embodiment of an additional and / or alternative routine for operating a program editing environment. In particular, it shows Fig. 13 an embodiment of operations wherein a selection event in the editing window triggers the identification of the corresponding results in a results window.

[0078] Decision block 1310 determines whether a Part Program Instruction (PPI) display is selected in the part program display window. If a PPI display is selected in the part program display window, the routine proceeds to block 1320, where the part program display window is checked for selection events, and then returns to decision block 1310. If a PPI display is selected in the editing window, the routine proceeds to block 1330.

[0079] In block 1330, the respective part program instruction and / or the respective PPI identifier that is linked to the respective selected PPI representation is identified.

[0080] Block 1340 identifies the corresponding result identifier that is linked to the respective PPI and / or PPI identifier.

[0081] In decision block 1350, it is determined whether the result identified by the corresponding result identifier is visible in the result window. If the result identified by the corresponding result identifier is visible in the result window, the routine continues with block 1370. If the result identified by the corresponding result identifier is not visible in the result window, the routine continues with block 1360.

[0082] In block 1360, the results in the results window are adjusted so that the result identified by the corresponding respective result identifier is visible in the results window.

[0083] In block 1370, this result is marked with an indicator in the user interface to indicate at least one result in the results window that corresponds to the respective PPI display selected by the user in the part program display window.

[0084] Fig. 4, Fig. 5, Fig. 6, Fig. 7 to Fig. Figure 8 shows a viewport display 480, which displays a viewport of the machine vision inspection system 100 as imaged by the camera 260, and schematically shows, with a dashed outline, the location where a box tool area of ​​interest (e.g., the box tool 482 corresponding to the box tool instruction representation 422A, and the box tool 481 corresponding to the box tool instruction representation 421A) would appear, as defined and recorded by a user. It is understood that in some embodiments, the viewport display 480 can behave like a window that is synchronized to display elements corresponding to those selected or highlighted in the part program display window (and / or other windows) in a manner similar to that described above. That is to say, when a part program instruction representation (e.g.,(a box tool instruction representation) in the machining window, the view display 480 can show the corresponding workpiece feature that is initially used to define this instruction.

[0085] In some embodiments, the displayed image may be a stored image that is recalled. The previously included application '232 discloses machining operations in which "substitute data" is stored after the execution of part program instructions in learning mode. Such substitute data may include a workpiece image that is stored so that it can be displayed in the viewport display 480 when a corresponding part program instruction representation (e.g., a box tool instruction representation) is selected in the machining window (i.e., when the workpiece feature in that image was used to initially define that instruction). Alternatively, the substitute data may provide the means to determine the spatial location, lens configuration, and lighting, etc., to expedite the active duplication of the image acquisition conditions and the image used when the instruction is initially defined.As described in application '232, this approach can save considerable time and avoid the risk of collisions, instead of requiring adjustments to the active vision machine components to acquire a new image of that workpiece feature. More precisely, the machining operations described in application '232 can advantageously be used in combination with various embodiments disclosed herein to provide the correct program machining context, either by executing the substitute mode, or by executing the active mode, or by a combination of both, optionally after an autoscroll operation described herein has been performed. Therefore, the parts of application '232 are below designated as . Fig. 14, Fig. 15, Fig. 16, Fig. 17, Fig. 18 to Fig. 19 are included for easy reference and understanding. A better understanding can be gained from application '232' and the other references adopted.

[0086] Fig. 14 is a block diagram showing additional components of the machining part 160. Fig. 2 depicts. As in Fig. As shown in Figure 14, the editing part 160 comprises an editing operations controller 174, an editing user interface part 176, an editor command part 177, and an editing execution part 178. The editing operations controller 174 controls the operations for the editing functions, and the editing user interface part 176 provides the user interface features for the editing functions. The editing user interface part 176 comprises a program display window part 176pi, which includes display user interface features 176r, which include node user interface features 176n. The program display window part 176pi provides a part program display, which includes part program instruction displays, as shown below with reference to Fig. 15 is described in more detail. In one embodiment, the part program representation can be provided in a tree structure. The representation user interface features 176r provide features such as an insertion pointer whose color can change depending on the state of the context and how the context was obtained (e.g., whether the context was generated from substitute data, through active execution, etc.). With reference to the node user interface features 176n, these can, in one embodiment, include features such as icons or broken icons, and color highlighting to indicate the activity of a node, etc.

[0087] The machining execution part 178 is responsible for various execution modes during a machining process and comprises a substitute mode part 180, an active mode part 191, and a part with user interface features for machining execution 192. The substitute mode part 180 comprises a node analyzer 181, which includes substitute data operations 181A and machine operations 181B. As described in more detail below, according to the present invention, substitute data is used to generate a context for the subsequent machining operations when the substitute mode part 180 activates a substitute execution mode. In one implementation, the node analyzer 181 determines whether the part program execution has reached the target node (where, for example, a change to the part program is to be made). The node analyzer 181 determines whether the substitute data operations 181A or the active machine operations 181B are executed according to the relevant node type.Generally, once the target node is reached, active machine operations are executed. For part program instructions prior to the target node, substitute data operations can be used to generate at least some of the context required for the subsequent machining operations. If substitute data is lacking, a user may be prompted to enable / execute active machine operations to generate the necessary context. In an implementation, each node is analyzed to determine whether substitute data operations are applicable, including whether substitute data exists, whether it is the correct node type for substitute data operations, or alternatively, whether active machine operations must be used, etc.

[0088] The active mode section 191 comprises operations that are typically performed by prior art machine vision systems. It is understood that the active mode section 191 can be called by the substitute mode section 180 to execute the machine operations 181B, if necessary. The active mode section 191 comprises machine operations 191A and data operations 191B. The machine operations 191A perform active machine operations (e.g., moving the object table as part of a video tool operation), while the data operations 191B generally output data. The machining execution user interface features 192 provide user interface features for the execution of the machining functions (e.g., information regarding the status of various execution operations, such as color codes indicating which parts of a part program have used substitute data or have been executed via active execution, etc.).

[0089] The editor commands 177 comprise a segment run part 177A, a modification part 177B, and an insertion / addition part 177C, which are described in detail in application '232. In general, the segment run part 177A executes an active program run of a selected segment of the part program. It is understood that the correct context up to the selected segment must be established in order for a selected segment of a part program to run. As described in more detail below, according to the present invention, the correct context can be established by using substitute data. If there is no substitute data for a particular part of a part program, then a segment is executed to generate the required substitute data.It is understood that, due to the need for the correct context leading up to the selected segment, it was difficult with prior art machine vision systems to execute an isolated segment of a part program without first executing all the preceding parts of the part program. For example, if the segment required the workpiece table to be lowered, but the system did not know the current XYZ position of the workpiece table, then lowering the workpiece table to an unknown position could not be advisable. Thus, the technique typically used in prior art implementations was to execute the entire part program from the beginning in order to run a segment in the middle, for which all the preceding operations could take a considerable amount of time to execute.According to the present invention, substitute data can be used to establish the correct context, to perform operations, or to run a segment of a part program without having to run the entire part program from the beginning.

[0090] The modification section 177B exhibits certain similarities to the operation of the segment execution section 177A. Generally, when an instruction representation in a part program is selected for modification, the substitute mode can be used for the parts of the part program that precede the instruction to be modified. In one embodiment, when the modification command is selected for an instruction representation in a part program, the node for the instruction representation is designated as the target node. Once the target node is reached, the editor exits the substitute mode and enters the active execution mode (e.g., under the control of the active mode section 191) and executes the first relevant part program instruction of the node. In one embodiment, if the instruction selected for modification corresponds to a child node, then active execution can be instructed to begin at the parent node.In a specific implementation, if a child node associated with a box tool needs to be modified, the parent node, which handles the image capture setup for the box tool, can be the node where the start of active execution is set. Regarding the insert / add component 177C, the parent node may also need to be executed to perform the desired insert if the insert occurs between child nodes. It is understood that in certain implementations, an add operation can generally be considered a special case of an insert operation, occurring at the end of an existing subprogram.

[0091] Fig. Figure 15 is a diagram of an editing interface 1500, which includes a representation of a part program 1510 that has a variety of initial part program instruction representations 1551 to 1564. The editing interface 1500 also includes various measurement and / or operation selection bars, such as the selection bar 1520. The operation of the specific instruction representations of the part program representation 1510 is described below with reference to Fig. 16 described in more detail.

[0092] Fig. Figure 16 is a scheme that depicts a user interface 1600, which includes an image of a viewport 1610 with a workpiece 1615 on which the part program is applied according to Fig. 15 was executed. The user interface 1600 also includes various measurement and / or process selection bars, such as selection bars 1620 and 1640, a real-time XYZ (position) coordinate window 1630, a light control window 1650, and a video tool parameter box 1660. As described in more detail below, various features on the workpiece 1615 are executed according to the associated part program instruction representations from Fig. 15 determines, such as sets of edge points PTX, PTY, PT3 and PT4, lines XLINE, YLINE, L3 and L4, a starting point XYORIGIN and an intersection point I2.

[0093] The following description refers to both the initial part program instruction representations 351 to 364 from Fig. 15 as well as the corresponding features on the workpiece 1615 from Fig. 16. In one embodiment, each of the instruction representations 351 to 364 is associated with a node and assigned a node number or identifier. In certain implementations, a tree structure is used, with some of the instruction representations associated with parent nodes and some associated with child nodes. For example, the child node instruction representations 1551A-1551D, 1553A-1553C, 1554A-1554B, 1561A-1561C, and 1562A-1562B are each associated with the parent node instruction representations 1551, 1553, 1554, 1561, and 1562, respectively. It is also understood that in one embodiment, the instruction representations 1551 to 1564, as shown in the editing interface 1500, include icons and labels derived from the markup language instructions of the part program. In one embodiment, the markup language of the part program may include XML-like code.The instruction representations 1551-1564 thus refer to corresponding code instructions that are executed as described below with reference to . Fig. 17A and Fig. 17B is described in more detail.

[0094] As in Fig. As shown in Figure 15, the part program representation 1510 begins with instruction representations 1551 and 1552, which indicate that the user manually selects a location on workpiece 1615 to serve as the approximate origin point ROP (not shown) and then aligns the origin to the approximate origin point ROP. More precisely, instruction representations 1551A, 1551B, 1551C, and 1551D indicate that the user sets up and uses a manual tool to determine the approximate origin point ROP, and instruction representation 1552 aligns the origin to the approximate origin point ROP. Instruction representation 1553 then indicates that a box tool is opened to measure the line XLINE. More precisely, instruction representations 1553A and 1553B indicate that the user sets up and uses the box tool (e.g.,(including moving the object stage to a specific location and capturing a corresponding image) to determine the edge points PTX. The functions and operations of the box tool and other edge detection video tools are well-known in the art and are described in the references adopted previously. The edge points PTX determined by the box tool are then used by Instruction 1553C to define the line XLINE. Similarly, Instruction 1554 indicates that a box tool is opened to measure the line YLINE, with Instruction 1554A indicating that the user uses the box tool to determine the edge points PTY, which are then used, as indicated by Instruction 1554B, to define the line YLINE.

[0095] Instruction representation 1555 then specifies that an intersection point XYORIGIN is determined at the intersection of lines XLINE and YLINE. Instruction representation 1556 then specifies that the machine vision system is commanded to align the origin to point XYORIGIN. Instruction representation 1557 then specifies that the machine vision system is commanded to align the X-axis for workpiece 1615 to line XLINE. As explained below with reference to Fig. As described in more detail in section 5 and as indicated by comment line 1558, the operations of instruction representations 1551 to 1557 establish the correct position and orientation of the workpiece 1615 in order to carry out additional measurements.

[0096] Instruction diagram 1561 then specifies that a box tool is opened to measure line L3. More precisely, instruction diagrams 1561A and 1561B specify that the user sets up and uses the box tool (e.g., including moving the object stage to a specific location and capturing a corresponding image) to determine the edge points PT3, which are then used, as specified by instruction diagram 1561C, to define line L3. As described in more detail below, the box tool used to measure line L3 (i.e., the one designated as box tool 1670 in Fig. 16 is shown), and the associated instruction diagrams 1561 and 1561A to 1561C in Fig. 17A and Fig. 17B is used as an example to illustrate how replacement data is generated, stored, and modified.

[0097] Returning to Fig. Instruction representation 1562 indicates that a box tool is opened to measure line L4, while instruction representation 1562A indicates that the user uses a box tool to determine the edge points PT4, which are then used, as specified by instruction representation 1562B, to define line L4. Instruction representation 1563 indicates that the user defines a selected position tolerance, and instruction representation 1564 indicates that an intersection point I2 is determined where the previously determined lines L3 and L4 intersect.

[0098] After the part program, corresponding to illustration 1510, was saved and exited, prior art implementations required that, upon re-invoking the part program for editing, the entire part program be executed from the beginning to create a valid context for continuing edits. Although prior art implementations produced accurate results and part programs by executing all instructions each time a part program was re-invoked for editing, executing all instructions could be very time-consuming (especially for instructions requiring certain time-consuming processes, such as hardware interactions, etc.).As described in more detail below, according to the present invention, instead of executing the entire part program from the beginning, previously stored data can be used as substitute data to simulate a valid context in order to continue processing the part program.

[0099] In other words, in one embodiment, it is useful to know certain parameters when performing further operations on the part program to take measurements on workpiece 1615. For example, to know the correct thresholds, size, and position for a video tool, it is necessary to have the correct video image, including information such as the correct position of the object stage, the correct lighting levels, the correct magnification, etc. In one embodiment, such information can be considered part of the "hardware context." Furthermore, to know whether a sequence is correct for continuing operations on the part program, it is useful to know what has already been done, including the features that have been measured, which part coordinate system is being used, etc.In one embodiment, this information can be considered part of the software context. In this embodiment, the context is generally assumed to establish the user interface of the machine vision inspection system in such a state that all native interface controls are ready to modify the part program. As noted earlier, the precise context is provided at the time the part program is initially recorded and also later during program execution, as all part program instructions (e.g., as shown in Figures 1551 to 1564) are generally executed sequentially. As noted earlier, this provides a valid context for continuing to modify the part program, including specifying measurements and results already generated by the part program (e.g.,the specifications of the lines XLINE, YLINE, L3, L4, and the intersection points XYORIGIN and I2, as shown with reference to the workpiece 1615 in the user interface 1600).

[0100] When a part program is being processed, as described in more detail below, it is possible to simulate a specific context to generate the required context, instead of executing all instruction representations of the part program sequentially, by using previously stored data as substitute data. In short, during the recording or runtime execution of a part program, the data needed to determine the context is stored with the part program. Then, at a later time, specific results can be simulated using the stored data as substitute data to generate the desired context. This results in significant time savings by eliminating the need to execute certain time-consuming operations (e.g., those requiring hardware interaction, such as moving the object stage, edge detection, focusing, lighting changes, pattern matching, etc.).) is avoided. The storage of data that can later be used as replacement data is described below with reference to . Fig. 17A and Fig. 17B described in more detail.

[0101] Fig. 17A and Fig. Figure 17B shows diagrams of code instructions from the subprogram in markup language, which are some of the instruction representations from Fig. 15 corresponds. Fig. 17A and Fig. 17B are diagrams 1700A and 1700B of code instructions in markup language, which are some of the instruction representations of the part program representation from Fig. 15 correspond. More precisely, they show Fig. 17A and Fig. 17B the part program instructions in an XML-like code, which correspond to the instruction representations 1561 and 1561A to 1561C from Fig. 15 to measure line L3. It is understood that in one embodiment, instruction representations 1561 and 1561A to 1561C include icons and labels derived from the XML-like code instructions. Fig. 17A and Fig. 17B are derived. The instruction representations 1561 and 1561A to 1561C are not executed themselves, but refer to corresponding code instructions from Fig. 17A and Fig. 17B, ​​which will be executed.

[0102] As in Fig. 17A and Fig. As shown in Figure 17B, the XML-like code instructions comprise the node ID numbers 1761, 1761A, 1761B and 1761C, which in one embodiment correspond to the instruction representations 1561, 1561A, 1561B and 1561C. Fig. 15. The XML-like code instructions also include certain position information 1710 for the image position and certain box tool position information 1720 for the box tool, as they appear, for example, in sections 1630 and 1660 of the user interface 1600. Fig. 16 can be displayed. As in Fig. As shown in Figure 17B, the data 1730 is stored with the part program; this data can later be used as substitute data to simulate a context. More precisely, the instruction representation 1561B from Fig. 15 indicates that the box tool 1670 is made of Fig. In step 16, to determine the set of edge points PT3, the positions of the set of edge points PT3 are stored as data 1730 in the XML-like code instructions with reference to the part coordinate system for the workpiece. Changes can be made to the part program that may lead to changes in the substitute data 1730.

[0103] Fig. 18A and Fig. 18B are flowcharts that depict an embodiment of Routine 1800 for providing a program editing environment for a machine-vision system that includes real-time context generation features. As in Fig. As shown in Figure 18A, a program run mode is provided in block 1810, configured to execute a previously created part program using an execution program run mode. Block 1820 provides a learn mode configured to receive user input for machine vision inspection system control operations and record associated part program instructions corresponding to the controlled operations to create a part program. The learn mode is also configured to include an editing user interface that provides an editable part program representation of part program instructions, with the part program representation including instruction representations. Block 1830 provides an editing part configured to edit a part program.Furthermore, the machining section includes a machining execution section that is operational to execute previously recorded part program instructions according to an execution machining mode that is different from the execution program run mode. From block 1830, the routine proceeds to point A, as described below with reference to... Fig. 18B is described in more detail.

[0104] As in Fig. As shown in Figure 18B, the routine continues from point A with block 1840. In block 1840, the learning mode is configured to automatically record substitute data associated with each set of recorded part program instructions. Furthermore, at least some of the substitute data includes data resulting from the active execution of controlled operations corresponding to the respective set of recorded part program instructions.

[0105] In block 1850, the execution editing mode is configured to include a substitute execution mode. During the substitute execution mode, for at least one set of part program instructions represented in the editable part program representation, at least some elements of that set of part program instructions are not executed. Consequently, their associated controlled operations are not actively executed if substitute data associated with that set of part program instructions was previously recorded. Furthermore, in the subsequent operation of the substitute execution mode, the respective substitute data is used as a replacement for data that would otherwise result from their associated controlled operations, which are not executed.

[0106] Fig.Figure 19 is a flowchart that depicts an embodiment of a routine 1900 for executing a substitute execution mode to provide a valid processing context at a part program location specified by a part program instruction representation, an element, or a node. The substitute execution mode is initiated at a valid context location within a block 1910.

[0107] In block 1920, the routine proceeds to the next node as the current node. In decision block 1930, it is decided whether the current node is the target node of an edit instruction. If the current node is the target node of an edit instruction, the routine proceeds to block 1940, where active execution mode is initiated on the current node. Afterward, the routine proceeds to decision block 1995, as described in more detail below. In one implementation, however, the target node can be considered a parent node associated with an instruction representation, and active execution mode can start on the parent node. This allows the physical setup for a measurement corresponding to an instruction representation to be performed to provide the correct physical context for editing the instruction representation.

[0108] If decision block 1930 determines that the current node is not the target node of an edit command, the routine proceeds to decision block 1950, which decides whether the current node requires mandatory physical system changes. For example, if the node moves the object table to represent a new part of the workpiece (e.g., using a simple "move" command or similar), this may require mandatory physical system changes in some implementations. Similarly, certain magnification changes are mandatory physical system changes, and so on. If such changes are embedded in a parent node that already has linked substitute data, and a subsequent node again requires a similar physical change (e.g., a move or resize command), the routine will require a specific physical system change.(Enlargement change), however, it is understood that this may not be mandatory, as it is ultimately replaced by a similar subsequent instruction. Various methods for analyzing whether a current node requires mandatory physical system changes can be determined by a person skilled in the art based on the teachings of this disclosure. If the current node requires mandatory physical system changes, the routine then proceeds to block 1940 in any case. If the current node does not require mandatory physical system changes, then the routine proceeds to decision block 1960.

[0109] Decision block 1960 determines whether the current node provides result data. If the current node does provide result data, the routine continues with decision block 1980, as described in more detail below. If the current node does not provide result data, the routine continues with block 1970, where the node is executed in substitute execution mode, after which the routine continues with block 1995, as described in more detail below.

[0110] Decision block 1980 determines whether substitute data exists for the current node. If substitute data does exist, the routine continues with block 1990, as described in more detail below. If no substitute data exists for the current node, the routine continues with block 1940.

[0111] In block 1990, the node is executed in substitute execution mode. In substitute execution mode, substitute data is used to replace the data that would otherwise result from the execution of control operations associated with at least some members of a set of part program instructions corresponding to the current node. These members of the part program instruction set are skipped, so that the associated control operations are actively executed.

[0112] The routine then proceeds to decision block 1995, where it decides whether there is another node available for execution in substitute execution mode. If there is another node available for execution in substitute execution mode, the routine returns to block 1920; otherwise, the routine terminates. For example, if execution has reached decision block 1995 by executing a target node and executing blocks 1930 and 1940, then in some cases there may no longer be another node available for execution in substitute execution mode because the context for processing at or within the target node may already have been established.

Claims

[1] Machine vision inspection system comprising an imaging part (34), an object table (32, 210) for holding one or more workpieces (10) in a field of view of the imaging part (34), a control part (125), a display (16, 136) and a user interface (400), wherein the machine vision inspection system further comprises: a program run mode (157) configured to be operational for executing a previously created part program using an execution program run mode; a learning mode (156) configured to be operational to receive user input to control operations of the machine vision inspection system and to record associated part program instructions corresponding to the controlled operations in order to create a part program, wherein the learning mode (156) includes a learning mode user interface which includes the following: an editing user interface part (160ui, 176, 1500) comprising an editable part program representation (1510) of part program instructions in an editing window (176pi, 420), wherein the part program representation (1510) comprises instruction representations (421-423, 1551-1564); and a results window (196, 430) that receives and displays respective results, which include results controlled by controlled operations of the machine vision inspection system; wherein the learning mode (156) is configured (920) such that upon receiving a user input providing an initial set of controlled operations of the machine vision inspection system, comprising operations that determine an initial set of results and display them in the results window (196, 430), the learning mode (156) is operational to automatically provide operations comprising the following steps: Recording a first respective set of part program instructions corresponding to the first respective set of controlled operations, which include operations that determine the first respective set of results and display them in the results window (196, 430); Displaying the first set of results in each case in the results window (196, 430); and Define and display in the editing window (176pi, 420) a first respective set of instruction representations corresponding to the first respective set of subprogram instructions, comprising operations that determine a first respective set of results and display them in the results window (196, 430); and wherein the learning mode user interface is configured (930) such that the results window (196, 430) and the editing window (176pi, 420) operate according to a set of cross-window autoscroll operations which include the following: In response to a user selection of a member of the first respective set of results in the results window (196, 430), a cross-window autoscroll operation is initiated, comprising the following steps: Adjusting the instruction representations in the editing window (176pi, 420) so that at least one instruction representation of the first respective set of instruction representations is displayed in the editing window (176pi, 420), wherein at least one instruction representation of the first respective set of instruction representations was not displayed in the editing window (176pi, 420) at the time the user selection was made; and Marking at least one instruction representation of the first respective set of instruction representations displayed in the editing window (176pi, 420) with an indicator to indicate that it corresponds to the member of the first respective results selected by the user in the results window (196, 430). [2] Machine vision inspection system according to claim 1, wherein the learning mode (156) is configured (928) to define and record a cross-window autoscroll link that is used to identify corresponding elements in a plurality of windows comprising the editing window (176pi, 420) and the result window (196, 430). [3] Machine vision inspection system according to claim 2, wherein the cross-window autoscroll linking comprises: a respective part program instruction identifier which is automatically defined and recorded in conjunction with at least one respective member of the first respective set of recorded part program instructions or their set of instruction representations (928'B); a respective result identifier, which is automatically defined and recorded (928'A) in conjunction with at least one member of the first respective set of results in the result window (196, 430), which corresponds to at least one respective member of the first respective set of recorded subprogram instructions or their set of instruction representations; and a link that is defined between the respective result identifier and the respective part program instruction identifier (928'C). [4] Machine vision inspection system according to claim 3, wherein the link defined between the respective result identifier and the respective part program instruction identifier is defined using the same identifier in each case. [5] Machine vision inspection system according to claim 3, wherein the first respective set of recorded part program instructions comprises instructions written in a markup language (1700A, 1700B), and the respective part program instruction identifier, which is automatically defined and recorded, comprises an identifier that is automatically generated and inserted into a part program instruction. [6] Machine vision inspection system according to claim 1, wherein the learning mode user interface is configured such that the result window (196, 430) and the editing window (176pi, 420) operate according to a set of cross-window autoscroll operations comprising: In response to a user selection of a member of the first respective set of instruction representations in the editing window (176pi, 420), a cross-window autoscroll operation is initiated, comprising the following steps: Adjusting the results in the results window (196, 430) so that at least one member of the first respective set of results is displayed in the results window (196, 430). will; and Marking at least one member of the first respective set of results displayed in the results window (196, 430) with an indicator to indicate that it corresponds to the member of the first respective set of instruction representations selected by the user in the editing window (176pi, 420). [7] Machine-reading inspection system according to claim 1, wherein marking the at least one instruction representation with an indicator comprises highlighting the at least one instruction representation. [8] Machine-seeing inspection system according to claim 1, wherein the window-spanning autoscroll process that is initiated further comprises transferring control to the processing window (176pi, 420) so that the processing operations are enabled immediately. [9] Machine vision inspection system according to claim 8, wherein transferring control to the processing window (176pi, 420) so that processing operations are immediately enabled comprises selecting the at least one instruction in the processing window (176pi, 420) that corresponds to the member of the first respective results selected by the user in the results window (196, 430). [10] Machine vision inspection system according to claim 1, wherein the learning mode user interface further comprises a client window (197, 440) that displays elements defined by controlled operations of the machine vision inspection system; and wherein the learning mode (156) is configured such that upon receiving a user input that provides a client-influencing set of controlled operations of the machine vision inspection system, the operations comprising those defining a first respective element displayed in the client window (197, 440), the learning mode (156) is operational to automatically provide operations that include the following Steps include: Recording a client-affecting set of part program instructions corresponding to the client-affecting set of controlled operations, which include operations that define the first respective element displayed in the client window (197, 440); and Defining and displaying in the editing window (176pi, 420) a client-affecting set of instruction representations corresponding to the client-affecting set of part program instructions that include operations defining the first respective element displayed in the client window (197, 440); and wherein the learning mode user interface is configured such that the client window (197, 440) and the editing window (176pi, 420) operate according to a set of cross-window autoscroll operations which include the following: In response to a user selection of the first respective item displayed in the client window (197, 440), a cross-window autoscroll operation is initiated, which includes the following steps: Adjusting the instruction representations in the editing window (176pi, 420) so that at least one instruction representation of the client-affecting set of instruction representations corresponding to the client-affecting set of part program instructions is displayed in the editing window (176pi, 420); and Marking at least one instruction representation of the client-affecting set of instruction representations displayed in the editing window (176pi, 420) with an indicator to indicate that it corresponds to the first respective element displayed in the client window (197, 440) selected by the user. [11] Machine vision inspection system according to claim 10, wherein the learning mode user interface is configured such that the client window (197, 440) and the editing window (176pi, 420) operate according to a set of cross-window autoscroll operations comprising: In response to a user selection of a first element of the client-influencing set of instruction representations in the editing window (176pi, 420), a cross-window autoscroll operation is initiated, comprising the following steps: Adjusting the results in the client window (197, 440) so that the first respective element corresponding to the selected first member of the set of instruction representations affecting the client is displayed in the client window (197, 440); and Marking the first respective element displayed in the client window (197, 440) with an indicator to indicate that it corresponds to the first member of the set of instruction representations affecting the client, which was selected by the user in the editing window (176pi, 420). [12] Machine-reading inspection system according to claim 11, wherein: the first respective set of instruction representations corresponding to the first respective set of part program instructions, and the client-affecting set of instruction representations corresponding to the client-affecting set of part program instructions, is the same respective set of instruction representations corresponding to the same set of part program instructions. [13] Machine vision inspection system according to claim 12, wherein the learning mode user interface is further configured such that the result window (196, 430) and the editing window (176pi, 420) operate according to a set of cross-window autoscroll operations comprising: In response to a user selection of the first element of the client-affecting set of instruction representations, which is also a first element of the first respective set of subprogram instructions, a cross-window autoscroll operation is initiated, comprising the following steps: Adjusting the results in the results window (196, 430) so that at least one member of the first respective set of results is displayed in the results window (196, 430); and Marking at least one member of the first respective set of results displayed in the results window (196, 430) with an indicator to indicate that it corresponds to the first member of the client-affecting set of instruction representations, which is also the first member of the first respective set of part program instructions selected by the user in the editing window (176pi, 420). [14] Machine vision inspection system according to claim 1, wherein the machine vision inspection system further comprises: a machining part that is configured to be operational in order to process a part program, wherein the machining part comprises a machining execution part that is operational to execute previously recorded part program instructions according to an execution machining mode that is different from the execution program run mode, wherein: the learning mode (156) is configured such that it is further capable of automatically recording respective substitute data associated with a respective set of recorded part program instructions, and includes at least some respective substitute data resulting from the active execution of controlled operations corresponding to the associated respective set of recorded part program instructions; and The execution editing mode includes a substitute execution mode, wherein during the substitute execution mode of part program instructions represented in the editable part program representation (1510), for at least one set of part program instructions, at least some members of that set of part program instructions are not executed, so that their associated controlled operations are not actively executed, if respective substitute data in connection with the set of part program instructions were previously recorded, and the respective substitute data are used in the subsequent operation of the substitute execution mode as a substitute for data that would otherwise result from their controlled operations that are not executed. [15] Machine vision inspection system according to claim 14, wherein creating a part program includes modifying a previously recorded part program instruction. [16] Machine vision inspection system according to claim 14, wherein the window-spanning autoscroll process that is initiated further comprises the following steps: Transferring control to the editing window (176pi, 420) so that editing operations are immediately possible; Select in the editing window (176pi, 420) the at least one instruction that corresponds to the member of the first respective result selected by the user in the result window (196, 430); Establishing the correct context for editing the selected at least one instruction by initiating the execution editing mode in a valid context that starts at a point in the subprogram before the selected at least one instruction; and Use the substitute execution mode to execute at least some of the part program instructions in order to establish the valid context for editing the selected at least one instruction. [17] Machine vision inspection system according to claim 16, wherein the learning mode (156) is configured such that when the valid context is established at the selected at least one instruction, the learning mode user interface is configured to display a context status indicator located near the selected at least one instruction specified in the part program representation (1510), and the context status indicator is set to indicate that a valid context has been established at the target location. [18] Machine vision inspection system according to claim 17, wherein the learning mode (156) is configured such that when the execution editing mode uses the substitute execution mode to execute at least some part of the part program instructions to establish the valid context, the state of the context status indicator is set to a state that specifically indicates that the substitute execution mode was used to establish the valid context.

Citation Information

Patent Citations

  • GRAPHIC USER INTERFACE FOR PROGRAMMING STEP-BY-STEP AND REPEAT PROCESSES IN A VISUAL MACHINE TESTING SYSTEM

    DE102011005814A1