Deterministic Data Exchange Between Distributed Graphical Programs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional text-based programming environments require users to possess advanced programming skills, creating a barrier for non-technical users in efficiently utilizing computers, and graphical programming environments, while intuitive, often struggle with deterministic data exchange between distributed systems, which is crucial for real-time applications.

Innovation Solution

A system and method for synchronizing the execution of graphical programs across different computer systems by assigning variables to time slots in a network cycle, allowing data to be exchanged deterministically, ensuring data arrives at predetermined times with minimal jitter.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If traditional text-based programming environments are used, then programming precision and control are improved, but ease of operation deteriorates due to requiring advanced programming skills

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

Solution Approach 1:

The programming task is segmented into graphical blocks representing discrete functions or operations. Each block can be independently selected, configured, and connected, allowing users to build complex programs through composition of simple, intuitive elements rather than writing text code

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A graphical programming environment serves as an intermediary between the user's conceptual understanding and the actual program execution. This environment translates high-level graphical representations into executable code, eliminating the need for users to directly write and debug text-based programming syntax

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If graphical programming environments are used, then ease of operation is improved, but communication reliability deteriorates due to timing uncertainties in data exchange between distributed systems

Engineering Contradiction:
Improveease of operationVSAvoidcommunication reliability
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

Data exchange between distributed graphical programs is organized into periodic cycles with predetermined time slots. Each cycle allocates specific time windows for communication, creating regular, predictable patterns that eliminate timing uncertainties and ensure deterministic data transfer

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

Communication parameters, time slots, and data exchange schedules are predetermined and configured before execution. This preliminary setup ensures that all distributed systems know in advance when and how to communicate, eliminating runtime timing uncertainties

Inventive Principle:
Principle #10Preliminary action

3Reliability

If time slot assignment for data exchange is implemented, then communication reliability is improved through deterministic timing, but device complexity increases due to synchronization requirements

Engineering Contradiction:
Improvecommunication reliabilityVSAvoiddevice complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The synchronization mechanism is implemented as a universal timing system that all distributed graphical programs adhere to. A common cycle structure and time slot allocation scheme serves multiple communication purposes simultaneously, reducing the need for separate synchronization mechanisms for different data exchange scenarios

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

Data Source

PatentUS7831680B2Deterministic communication between graphical programs executing on different computer systems
Publication Date: 2010.11.09 NATIONAL INSTRUMENTS CORP
  • US7831680B2 patent drawing
  • US7831680B2 patent drawing
  • US7831680B2 patent drawing

AI summary

A system and method for enabling deterministic or time-triggered data exchange between a first graphical program and a second graphical program. A first variable is assigned to a first time slot in a network cycle. A first graphical program may be configured to write data to the first variable. A second graphical program may be configured to read data from the first variable. The first graphical program may be executed on a first computer system, where executing the first graphical program comprises writing data to the first variable. Writing data to the first variable may cause the data to be delivered over a network to a second computer system when the first time slot occurs. The second graphical program may be executed on the second computer system, where executing the second graphical program comprises reading from the first variable the data sent from the first computer system.