Controller Synchronization via Buffer Memory for Parallel Motor Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing motor control systems face challenges in synchronizing short-cycle and long-cycle motion programs, leading to increased user burden in managing data transmission and reception between control programs, which affects computation time and efficiency.

Innovation Solution

A controller utilizing a multi-core processor with a scheduler program that executes multiple control programs in parallel, allowing for synchronization by storing motor control variables in a buffer memory and copying them into a work area at specific timing, enabling data transmission and reception between control programs in predetermined cycles.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple control programs are executed in parallel to control multiple motors, then motor control efficiency is improved, but synchronization between control programs becomes complex and burdensome for users

Engineering Contradiction:
Improvemotor control efficiencyVSAvoiduser burden for data synchronization
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent introduces a buffer memory as an intermediary data storage area between the first and second control programs. The buffer memory automatically stores output data from the first control program and makes it available to the second control program, eliminating the need for users to manually manage data transmission and reception timing between parallel-executed control programs.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If control programs are executed sequentially to ensure proper data synchronization, then data accuracy is improved, but computation time increases

Engineering Contradiction:
Improvedata synchronization accuracyVSAvoidcomputation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent divides the control system into multiple independent control programs that can execute simultaneously in parallel on different CPU cores. Each control program operates independently with its own execution cycle, eliminating the need for sequential execution while maintaining data synchronization through the buffer memory mechanism.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The buffer memory is prepared in advance as a shared data storage area. The first control program outputs data to the buffer memory during its execution cycle, and the second control program reads the required data from the buffer memory at its designated timing, ensuring proper synchronization without sequential execution delays.

Inventive Principle:
Principle #10Preliminary action

3Manufacturing precision

If control programs share data frequently to maintain synchronization, then control accuracy is improved, but system complexity increases

Engineering Contradiction:
Improvecontrol accuracyVSAvoiddata transmission and reception mechanism
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The buffer memory serves multiple functions: it acts as output storage for the first control program, input storage for the second control program, and a synchronization coordination mechanism. This single multi-functional component replaces what would otherwise require multiple separate data transmission channels and complex timing coordination mechanisms.

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

Data Source

PatentUS10579031B2Controller
Publication Date: 2020.03.03 OMRON CORP
  • US10579031B2 patent drawing
  • US10579031B2 patent drawing
  • US10579031B2 patent drawing

AI summary

A controller allows easy synchronization between a plurality of control programs executed in parallel to control a plurality of motors. The control programs are executed cyclically in parallel in predetermined execution cycles. Timing data for synchronizing the execution timing of the control programs is transmitted and received between the control programs. After control program 1 is executed, an axis variable to be referred to by the control program 2 is copied from an execution area of the memory for the control program 1 into a buffer area for the control program 2.