Dual-OS Motion Control Using Shared Memory Command Channels
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Motion controllers with dedicated hardware provide high real-time performance but lack versatility and are expensive, while personal computers offer versatility and lower costs but struggle with real-time processing due to differences between non-real-time and real-time operating systems.
Innovation Solution
A motion control program that executes on a computer with both non-real-time and real-time OS, using a reception unit on the non-real-time OS, a storage unit on the real-time OS, and a fixed-cycle processing unit to absorb processing speed variations, allowing for smoother real-time motion control by storing and processing control commands in a shared memory.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a dedicated hardware motion controller is used, then real-time performance is improved, but cost and device complexity increase
Solution Approach 1:
The patent applies universality by enabling a general-purpose personal computer to function as a motion controller through dual OS installation. The system can handle both non-real-time user interface operations and real-time motion control tasks, eliminating the need for dedicated hardware while maintaining real-time performance requirements.
Solution Approach 2:
The patent segments the operating system functionality into two distinct layers: a non-real-time OS (Windows) for user interface and configuration, and a real-time OS for motion control execution. This segmentation allows each OS to specialize in its strength while working together through defined interfaces, achieving real-time performance without dedicated hardware.
2Adaptability or versatility
If a personal computer with dual OS is used, then versatility and cost are improved, but real-time performance deteriorates due to processing speed variations
Solution Approach 1:
The patent introduces an intermediary mechanism (inter-OS communication interface and timing synchronization protocol) between the non-real-time Windows OS and the real-time OS. This intermediary absorbs processing speed variations from the non-real-time OS and translates them into precise real-time commands, ensuring stable real-time performance while maintaining system versatility.
Solution Approach 2:
The system dynamically adjusts processing priorities and resource allocation between the two OS instances. The real-time OS can dynamically preempt resources when motion control precision is required, while allowing the non-real-time OS to handle user interface operations during less critical periods, maintaining real-time performance adaptability.
3Ease of operation
If a non-real-time OS is used for motion control, then ease of operation is improved, but real-time performance deteriorates
Solution Approach 1:
The intermediary layer provides a unified programming interface that allows users to write motion control programs using standard high-level languages without needing to understand real-time constraints. The intermediary automatically handles the translation of these programs into real-time executable code, maintaining ease of operation while ensuring real-time performance.
Solution Approach 2:
The system creates a virtual representation of the motion control environment within the non-real-time OS, allowing users to simulate and debug programs without affecting actual real-time execution. This copying approach enables easy programming and testing while maintaining strict real-time control during actual operation.
Data Source
AI summary
A motion control program that causes a computer to function as: a channel management unit on a real-time OS that creates an operation channel common to a plurality of reception units on a shared memory; the plurality of reception units on a non-real-time OS each of which instructs via the operation channel, when receiving a preparation instruction, a generation unit to generate a control command channel; the channel management unit that creates, on the shared memory, a control command channel associated with the user-created program that has provided the preparation instruction; the reception unit that receives a control command and stores control command information indicating a content of the received control command, in the control command channel; and a fixed-cycle processing unit that transmits an interpolation command to a control target device for each motion control cycle, based on the control command information obtained from the control command channel.


