Spreadsheet-Based Visual Programming for Machine Vision Workflows

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Machine vision systems require programming expertise, limiting their usability for users without programming knowledge, and existing visual program development environments lack flexibility for complex operations, as they often rely on limited node types and require scripting skills.

Innovation Solution

Incorporating a spreadsheet node in the visual program development environment that allows users to specify operations through a spreadsheet, enabling easy programming and customization without requiring extensive programming knowledge, by associating input and output terminals with cells and generating human-readable files for execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If a traditional programming interface is used for machine vision systems, then programming precision and control are improved, but ease of operation deteriorates due to requiring programming expertise

Engineering Contradiction:
Improveprogramming precisionVSAvoidease of operation
Core Design Contradiction:
Measurement precisionVSEase of operation

Solution Approach 1:

The patent introduces a spreadsheet node as an intermediary between the user and the machine vision system's programming interface. This spreadsheet node accepts simple cell references and formulas from users without programming expertise, while internally translating these into the precise control commands needed by the machine vision system. The spreadsheet acts as a mediator that bridges the gap between user-friendly operation and precise system control.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces the traditional text-based programming interface (mechanical system requiring manual coding) with a spreadsheet-based interface that uses familiar spreadsheet operations. Instead of requiring users to write programming code, the system substitutes a spreadsheet environment where users can perform operations using cell references, formulas, and drag-and-drop functionality, thereby eliminating the need for programming expertise while maintaining operational precision.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Device complexity

If a limited node types visual program environment is used, then device complexity is reduced, but adaptability deteriorates due to inability to perform complex operations

Engineering Contradiction:
Improvedevice complexityVSAvoidadaptability
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent makes the spreadsheet node universal and multi-functional by enabling it to perform diverse operations beyond its traditional scope. The spreadsheet node can execute custom functions, perform complex data processing, manipulate image data, and interface with various machine vision operations. This universality allows a single node type to replace multiple specialized node types, thereby maintaining low device complexity while achieving high adaptability for complex operations.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent introduces dynamic capabilities to the spreadsheet node by allowing it to execute custom functions and adapt its behavior based on input data and user-defined formulas. The spreadsheet can dynamically process data, perform real-time calculations, and adjust operations based on changing conditions, enabling the system to handle complex and varying machine vision tasks without increasing the number of node types.

Inventive Principle:
Principle #15Dynamics

3Measurement precision

If scripting skills are required for visual programming, then programming precision is improved, but ease of operation deteriorates due to requiring programming knowledge

Engineering Contradiction:
Improveprogramming precisionVSAvoidease of operation
Core Design Contradiction:
Measurement precisionVSEase of operation

Solution Approach 1:

The spreadsheet node serves as an intermediary that translates simple spreadsheet operations into precise programming commands. Users interact with the spreadsheet using familiar cell references and formulas without needing to learn programming syntax, while the spreadsheet node internally generates the precise control logic required by the machine vision system, effectively mediating between user simplicity and system precision.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent substitutes the traditional scripting/programming interface with a spreadsheet-based interface. Instead of requiring users to write and debug programming code, the system uses spreadsheet operations that are inherently more accessible to non-programmers. The spreadsheet engine handles the translation of these operations into precise executable commands, replacing the need for manual scripting while maintaining programming precision.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS10902195B2Apparatuses, systems, and methods for providing a visual program for machine vision systems
Publication Date: 2021.01.26 COGNEX CORP
  • US10902195B2 patent drawing
  • US10902195B2 patent drawing
  • US10902195B2 patent drawing

AI summary

Techniques include systems, computerized methods, and computer readable media for creating a graphical program in a graphical program development environment. A spreadsheet node having an input terminal in the graphical program is instantiated. The spreadsheet node is associated with a spreadsheet that specifies a list of functions to be executed in a computing device, and the input terminal is connected to the first terminal of the first node, indicating a data connection between the first terminal of the first node and the input terminal of the spreadsheet node. The input terminal of the spreadsheet node is associated with a first cell in the spreadsheet, indicating that the first cell in the spreadsheet be populated with any data received by the input terminal. A human readable file is generated specifying the graphical program, including the spreadsheet node.