NC Program Conversion for Robot Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Robot controllers cannot execute numerical control (NC) programs written for CNC machine tools due to differences in programming languages and the special nature of robot control, limiting the use of robots in markets that demand NC programming, and vice versa, as NC controllers cannot control robots effectively.
Innovation Solution
A method to convert NC programming language into robot language, where M-codes are executed as sub-programs, allowing the robot controller to interpret and execute NC programs, enabling the use of robots in manufacturing processes with a less expensive mechanical structure.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Manufacturing precision
If a CNC machine tool is used to perform manufacturing processes with NC programming, then the desired functionality and precision are achieved, but the mechanical structure becomes more costly and complex
Solution Approach 1:
The patent introduces an NC program conversion system as an intermediary that translates NC programs into robot controller executable programs. This mediator enables robot controllers to understand and execute NC programs originally designed for CNC machine tools, allowing robots to perform manufacturing tasks without requiring expensive CNC-specific mechanical structures while maintaining the desired manufacturing precision through program-level compatibility
2Device complexity
If robot controllers are used to control manufacturing processes, then the mechanical structure cost is reduced, but the ability to execute NC programs is lost due to language differences
Solution Approach 1:
The conversion system acts as an intermediary layer between the NC program and robot controller, translating NC program instructions into robot controller executable code. This intermediary enables robot controllers to execute NC programs without requiring the controller itself to natively support NC programming languages, thus maintaining adaptability while using cost-effective robot hardware
Solution Approach 2:
The system changes the parameter of program language compatibility by converting programs from one language format (NC) to another (robot controller language). This parameter transformation allows the same manufacturing logic to be executed on different types of controllers, enabling robots to adopt NC program execution capability without requiring native NC language support in the robot controller firmware
3Ease of manufacture
If offline conversion systems are used to create robot programs from NC programs, then motion conversion is achieved, but M-code processing capability is lost
Solution Approach 1:
The conversion system serves as an intermediary that not only translates motion commands but also processes M-codes by converting them into robot controller executable instructions. This intermediary capability ensures that application-specific processing defined by M-codes in the original NC program is preserved in the converted robot program, maintaining full functional equivalence
Solution Approach 2:
The system performs preliminary conversion of M-codes during the offline program translation process, transforming miscellaneous codes and application-specific instructions into equivalent robot controller commands before execution. This preliminary action ensures that all non-motion functions are properly translated in advance, eliminating the need for runtime interpretation and ensuring full M-code processing capability in the converted program
Data Source
AI summary
A system and a method for converting a machine tool program in NC programming language to permit a robot controller to execute the program. A robot controller converts the NC program into robot language according to a conversion configuration table, and uses the converted language as pseudo program data internally stored in a data memory within the robot controller. Each M-code (Miscellaneous code) in the NC program is executed as a sub-program call using the robot language. The content of the sub-programs can be freely defined and programmed by the user and, therefore, can be customized for the specific application.


