Intelligent motion control system based on multi-level extension and multi-type motor compatibility
By employing a multi-level extended hardware architecture and configuration file-driven software initialization, the hardware rigidity problem of motion control systems is solved, modular expansion and compatibility with multiple types of motors and encoders are achieved, improving system flexibility and accuracy while reducing costs and time.
Patent Information
- Application Number
- CN202511621899.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-11-07
- Publication Date
- 2026-02-06
- Estimated Expiration
- 2045-11-07
AI Technical Summary
The rigid hardware architecture of existing motion control systems results in a lack of flexibility in expanding the number of motor shafts, ensuring motor type compatibility, and supporting encoder modes. This increases equipment costs and extends the research and development and testing cycle, affecting project flexibility and market responsiveness.
Employing a multi-level extended hardware architecture and a configuration file-driven software initialization strategy, it enables modular expansion of motion control axes and adaptive compatibility control of multiple types of motors and encoders. Through the combination of the main controller, configuration memory, drive expansion interface, and motor control module, it supports flexible configuration and initialization of various motor and encoder types.
It achieves high system flexibility and scalability, reduces hardware replacement costs and time, improves deployment efficiency, ensures high-speed motor response and high-precision positioning, and adapts to changing application needs.
Smart Images

Figure CN121091765B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application belongs to the field of automation control technology, and particularly relates to a motor motion control system for industrial automation, robots, numerical control machine tools and the like, in particular to a programmable motion controller with modular expansion capability and multiple load compatibility. BACKGROUND
[0002] The motion control system is a core component in the fields of modern industrial automation, robotics and precision manufacturing. Generally, a motion control system is composed of a master controller, a driver and an execution motor. The master controller sends control signals downward according to preset instructions, and the driver amplifies the signals to drive the motor to complete precise position, speed or torque control.
[0003] In the prior art, most motion control systems have fixed hardware architecture after design and finalization. This means that the number of motor shafts that the controller can support is limited. At the same time, in order to simplify the design and reduce the cost, these systems are often optimized for specific types of motors (e.g., only supporting stepper motors) or specific types of feedback elements (e.g., only supporting incremental encoders). When the project enters the development or maintenance stage, if the number of control shafts needs to be increased due to functional upgrade, or other types of motors (such as servo motors, linear motors) or encoders (such as absolute value encoders) need to be replaced in order to improve accuracy, speed and optimize cost, developers often face great challenges. This rigid design in hardware results in the replacement of the entire motion control hardware, which not only significantly increases the cost of equipment and the pressure on spare parts inventory, but also prolongs the research and development, testing and deployment cycle, seriously affecting the flexibility of the project and the rapid response capability of the market. SUMMARY
[0004] The embodiments of the present application provide an intelligent motion control system based on multi-level expansion and multi-type motor compatibility, which aims to solve the problem of rigid hardware architecture of existing motion control systems, which leads to a lack of flexibility in motor shaft expansion, motor type compatibility and encoder mode support, and is difficult to adapt to changing application requirements.
[0005] The core technology of the present application mainly combines a hardware architecture based on multi-bus hierarchical expansion with a software initialization strategy based on configuration file driving, to realize modular expansion of motion control shafts and adaptive compatible control of multiple types of motors and encoders.
[0006] In a first aspect, the present application provides an intelligent motion control system based on multi-level expansion and multi-type motor compatibility, comprising:
[0007] a master controller;
[0008] a configuration memory connected with the main controller, configured to store preset configuration data;
[0009] at least one drive expansion interface, each drive expansion interface corresponding to one high-speed serial communication bus;
[0010] at least one motor control module, detachably connected to the drive expansion interface, each motor control module comprising a motion controller and a motor driver;
[0011] wherein the configuration data comprises shaft configuration parameters defined for each motor control module corresponding to a motor shaft, the shaft configuration parameters at least comprising a motor type parameter, the motor type parameter being used to indicate whether the motor connected to the motor shaft is of a first preset type or a second preset type;
[0012] and the main controller is configured to:
[0013] read the configuration data from the configuration memory when the system is initialized;
[0014] and execute a corresponding initialization strategy according to the motor type parameter read for each motor shaft:
[0015] when the motor type parameter indicates the first preset type, configure the motion controller and the motor driver in the motor control module to work cooperatively to drive the motor;
[0016] when the motor type parameter indicates the second preset type, only configure the motion controller in the motor control module to output standard pulse / direction control signals and disable the motor driver at the same time.
[0017] Further, the shaft configuration parameters further comprise a closed-loop mode parameter, used to indicate whether the encoder adopted by the motor shaft is an incremental encoder or an absolute value encoder;
[0018] the main controller is further configured to configure the motion controller with a corresponding closed-loop control mode according to the closed-loop mode parameter.
[0019] Further, when the closed-loop mode parameter indicates the absolute value encoder, the main controller is further configured to execute a zero-point drift compensation method, which comprises:
[0020] after a preset condition is triggered, read the real-time position of the absolute value encoder and compare it with a reference position to obtain a drift amount;
[0021] when the absolute value of the drift amount is greater than a preset compensation threshold, execute zero-point calibration, update the zero-point parameter of the absolute value encoder and save it to the configuration memory.
[0022] Further, the drive expansion interface is multiple;
[0023] The main controller is further configured to dynamically enable a corresponding number of high-speed serial communication buses according to the total number of motor shafts defined in the configuration data, and to perform parallel data read-write scheduling on the enabled high-speed serial communication buses through direct memory access.
[0024] Further, a low-speed serial communication bus and at least one I / O expander connected to the bus are further included for processing enable, alarm or reset signals of the motor control modules.
[0025] Further, a real-time operating system is run in the main controller, and the real-time operating system is used to schedule functions of the system into a plurality of tasks with different priorities, including state query, communication processing and instruction execution.
[0026] Further, the main controller further includes an external communication interface, and is configured to receive new configuration data through the external communication interface, and write the received new configuration data into the configuration memory to realize online reconstruction of the system functions.
[0027] Further, the motor control modules are multiple, and the multiple motor control modules are connected to the same high-speed serial communication bus.
[0028] The main controller is configured to realize time-sharing multiplexing access to the bus by controlling the unique chip select signal assigned to each motor control module.
[0029] Further, the multiple tasks at least include:
[0030] A bottom polling task for periodically reading the running state of each motor shaft;
[0031] A message in-queue task for adding instructions received by the external communication interface to the message queue after verification;
[0032] An instruction processing task for processing instructions in the message queue;
[0033] A software timer task for executing a periodic control algorithm.
[0034] Further, the main controller is further configured to communicate with only one I / O expander in a bottom polling cycle, and to perform synchronous processing on abnormal signals from the I / O expander after a preset plurality of polling cycles to avoid data errors caused by timing misalignment.
[0035] The main contributions and innovations of the present application are as follows:
[0036] 1. High flexibility and scalability: The application adopts modular design, users can easily increase the number of control axes (up to 22 axes have been verified) by connecting extension modules and updating configuration files. The whole process does not need to change the main control board hardware circuit or recompile the firmware, which fundamentally solves the poor scalability problem of the prior art.
[0037] 2. Wide device compatibility: The application is configured by software, and the motor type is intelligently judged during initialization. For non-step motors, the system only enables the controller (TMC4361) to output standard pulse / direction signals to the external driver; for step motors, the on-board driver (TMC2160) is enabled. At the same time, the system is compatible with incremental and absolute value encoders, and provides an automatic zero drift compensation algorithm for the latter. This makes a set of system can flexibly adapt to different performance, different cost of motor and sensor scheme, and has strong universality.
[0038] 2. Significantly improve deployment efficiency and reduce cost: When the project requirements change, the whole set of hardware does not need to be replaced. The parameter group can be burned into the Flash through the serial port, and the system reconstruction time is shortened from the traditional hour level to the minute level. After power failure and restart, the configuration and reconstruction of the new axis can be completed within 25 seconds. This greatly reduces the cost and time of development, debugging and maintenance. Excellent system performance and precision: The system uses multi-SPI bus and DMA concurrent scheduling technology, even when multiple axes are running at full load, the bottom layer communication period can be ensured within 1ms, ensuring the high-speed response of the motor. In addition, the dynamic zero drift detection and compensation strategy for absolute value encoders can ensure continuous high-precision positioning and solve the problem of precision loss after long-term operation.
[0039] The details of one or more embodiments of the application are presented in the following drawings and description to make other features, objects and advantages of the application more clear and easy to understand. BRIEF DESCRIPTION OF DRAWINGS
[0040] The drawings described herein are used to provide further understanding of the application, and form a part of the application. The illustrative embodiments of the application and their descriptions are used to explain the application, and do not constitute an improper limitation on the application. In the drawings:
[0041] Figure 1 is a schematic diagram of testing the bottom layer polling communication period and synchronization calibration period using a logic analyzer after all axes of the application are started according to an embodiment of the application;
[0042] Figure 2 is a system reconstruction flowchart according to an embodiment of the application. DETAILED DESCRIPTION
[0043] The exemplary embodiments will be described in detail herein with reference to the attached drawings. In the following description, like reference numerals refer to like elements, unless the context clearly dictates otherwise. The following description of exemplary embodiments is not representative of all possible embodiments consistent with one or more aspects of the present specification. Rather, it is merely an example of apparatus and methods consistent with some aspects of one or more embodiments of the present specification as detailed in the appended claims.
[0044] It should be noted that the steps of the methods in other embodiments are not necessarily performed in the order shown and described in the present specification. In some other embodiments, the steps included in the methods can be more or less than described in the present specification. Furthermore, a single step described in the present specification can be broken down into multiple steps in other embodiments; and multiple steps described in the present specification can be combined into a single step in other embodiments.
[0045] Embodiment One
[0046] The present embodiment provides a motion control system based on multi-level extension and multi-type motor compatibility. The system includes a main controller, a configuration memory, a plurality of drive extension interfaces, and motor control modules that can be mounted as needed in hardware.
[0047] I. Hardware Architecture
[0048] The present embodiment takes "modular hardware + adaptive software" as the core to solve the technical problems of fixed axis number, poor compatibility of multi-type motors / encoders, and high reconstruction cost of existing motion control systems. The system as a whole uses an STM32H743 chip as the main control unit, mounts motor control modules through 4 main SPI interfaces (SPI1, SPI3, SPI4, SPI5) and 1 standby SPI interface (SPI6), and realizes 22-axis precise control in cooperation with I2C cascaded GPIO extension modules; the software is based on the FreeRTOS real-time operating system, and through adaptive initialization and multi-priority task scheduling, it is compatible with step / non-step motors and incremental / absolute value encoders, and at the same time, through dynamic drift compensation, it guarantees long-term positioning accuracy.
[0049] Specifically, the hardware core of the present embodiment is a main control STM32H743, which is responsible for all data processing, task scheduling, and communication control. The chip has a high-performance ARM Cortex-M7 core, supports concurrent communication of multiple SPI and I2C interfaces, and meets the real-time data processing needs of 22-axis control. Its core pin distribution is as follows:
[0050] Power supply pin: 3.3V direct current power supply to ensure stable operation of the chip;
[0051] Reset pin: Connected via an external reset circuit to ensure forced reset in case of system malfunction;
[0052] Communication pins: The SPI and I2C interface pins are the primary focus of allocation; see Table 1 for the specific correspondence.
[0053] Table 1
[0054]
[0055] The configuration memory is preferably a single FLASH (w25q128) chip, which is connected to the host STM32H743 via an independent high-speed serial communication bus SPI2. The SPI2 clock line SCK is connected to the host's PB13 pin, the master-in / slave-out line MISO is connected to the PB14 pin, and the master-out / slave-in line MOSI is connected to the PB15 pin. The chip select signal CS of the FLASH (w25q128) is connected to the PB12 pin. This configuration memory is used to store the system's configuration file (e.g., an XML file) that defines the detailed parameters of all motor axes.
[0056] The system is equipped with multiple driver expansion interfaces for connecting to the baseboard or driver board expansion module that houses the motor control module. In this embodiment, the system utilizes multiple SPI peripherals of the STM32H743 main controller as a high-speed serial communication bus. Specifically:
[0057] The SPI1 bus is used to connect to the motor control module (e.g., axis 0 to axis 3) on the baseboard.
[0058] The SPI3 bus is used to connect motor control modules (e.g., 4-axis to 9-axis) on driver board expansion 1.
[0059] The SPI4 bus is used to connect motor control modules (e.g., 10-axis to 15-axis) on the driver board extension 2.
[0060] The SPI5 bus is used to connect motor control modules (e.g., 16-axis to 21-axis) on the driver board extension 3.
[0061] There is also an SPI6 bus for future expansion, such as connecting new driver board expansion modules, like driver board expansion 4. Each time a new expansion module is connected, the system can correspondingly increase its control capability over multiple motor axes (for example, adding 6 more axes), thereby realizing further functional expansion of the system.
[0062] Each motor control module is composed of a motion controller TMC4361 and a motor driver TMC2160. These modules are physically distributed on the bottom plate and each drive board expansion module. The main control STM32H743 realizes access to a specific motor control module by controlling the unique chip select (CS) signal of different motor shafts. For example, the CS signal of the 0 shaft is connected to the PG9 pin, the CS signal of the 5 shaft is connected to the PI1 pin, the CS signal of the 11 shaft is connected to the PD6 pin, and the CS signal of the 16 shaft is connected to the PH3 pin. This design realizes time-sharing multiplexing under a single SPI bus.
[0063] In addition, the system also contains a low-speed serial communication bus I2C, whose SCL clock line and SDA data line are connected to the PG7 and PG6 pins of the main control STM32H743. A plurality of I / O expanders, such as PCA9535 chips, are mounted on the I2C bus. These I / O expanders are distinguished by different addresses (such as ADD: 0x00, 0x01, 0x10, 0x11) and are used to expand the I / O capability of the system, process the enable, alarm, home, reset and other signals of each motor shaft, thereby reducing the burden of the high real-time main control.
[0064] II. System workflow and software implementation
[0065] The system workflow of the embodiment is as follows:
[0066] 1) System initialization: After the system is powered on, the main control STM32H743 first reads the preset configuration file from the FLASH (w25q128) through the SPI2 bus.
[0067] At this time, the Flash mounted by SPI2: reads out the pre-set onboard parameters, and determines the number of control modules used.
[0068] 2) Bus and module initialization: The main control STM32H743 initializes the I / O expander on the corresponding SPI bus and I2C bus according to the number of enabled modules defined in the configuration file. For example, if the configuration file indicates that the system uses 12 axes in total, the main control will dynamically initialize and enable the SPI1, SPI3 and SPI4 buses and their corresponding DMA channels, while the SPI5 remains inactive to save system resources.
[0069] At this time, the SPI-mounted driver / control chip: initializes the corresponding SPI according to the number of enabled modules (4 SPI1, SPI3, SPI4, SPI5 in total). The IIC-mounted IO expansion module: initializes the GPIO expansion module mounted by IIC according to the number of enabled modules.
[0070] 3) Axis initialization (core compatibility implementation) (module): this is the core step of the present application, the master STM32H743 initializes the motor shaft defined in the configuration file one by one. In this stage, the master reads the detailed shaft configuration parameters of each shaft, and performs the following judgment:
[0071] 1. Motor type compatibility: the master reads the "motor type parameter" of the shaft.
[0072] If the parameter is "stepping motor" (first preset type), the master performs complete parameter configuration on the motion controller TMC4361 and motor driver TMC2160 corresponding to the shaft, so that they work together to directly drive the stepping motor.
[0073] If the parameter is "servo motor" or "linear motor" (second preset type), the master only configures the motion controller TMC4361 to work in pulse / direction signal output mode, and disables or bypasses the on-board motor driver TMC2160 through specific instructions. At this time, the pulse / direction signal output by TMC4361 will be connected to the external corresponding servo or linear motor driver, thereby realizing compatible control of heterogeneous motors.
[0074] 2. Closed-loop mode compatibility: the master reads the "closed-loop mode parameter" of the shaft.
[0075] If the parameter is "incremental encoder", the master configures TMC4361 to enable the corresponding encoder interface, and after the motor is zeroed, real-time closed-loop position control is performed through the PID algorithm (prior art, not described again).
[0076] If the parameter is "absolute value encoder", the master configures TMC4361 to read the absolute position data of the encoder, and calculates the current coordinates in combination with the preset zero position, and then compensates the result again through the error sensitivity value to position.
[0077] Among them, the confirmation of PID coefficient is modified through the target (target position) and enc_pos (encoder position) following effect of the host computer monitoring during motor parameter setting, to improve the response while testing the motion repeatability with laser sensor, and the jitter effect. The error compensation of the absolute value encoder is determined according to whether the result is compensated by comparing the error sensitivity value with the real-time position-target position.
[0078] 3. According to the alarm feedback function (derived from the previous preset configuration requirements, such as the XML axis configuration file, the "abnormal state signal" obtained in real time through the hardware module (such as the TMC4361 control chip, the PCA9535 GPIO expander, and the ADC acquisition module) to trigger the alarm), it is decided whether to enable the stall overrun detection, alarm after disablement, and a series of functions. Specifically, these functions include:
[0079] ① Stall overrun detection:
[0080] Stall detection: The system will monitor in real time whether the motor is moving according to the instructions. If the motor receives a motion instruction but fails to rotate due to physical obstruction or other reasons (i.e., "stall"), the system can detect this state and trigger an alarm.
[0081] Overrun detection: In closed-loop control mode, the system will continuously compare the "target position" of the motor with the "actual position" feedback by the encoder. If the difference (i.e., error) between the two exceeds the pre-set allowed range (i.e., "tolerance"), the system will determine it as "overrun" and trigger an alarm.
[0082] ② Alarm after disablement: It is an optional response measure after the detection function triggers an alarm.
[0083] If this function is enabled for a certain axis in the configuration file, once the axis triggers an alarm such as "stall" or "overrun", the control system will automatically cut off the power supply of the axis motor driver (i.e., "disablement"), stopping the motor from working. This can effectively prevent the motor from overheating and burning out due to long-term stall, or avoid damaging the equipment or workpiece due to severe position deviation.
[0084] 4) Task scheduling: After all hardware and axis initialization is completed, the system starts the FreeRTOS real-time operating system pre-installed in the main control STM32H743, and begins multi-task scheduling. The system runs multiple tasks with different priorities, for example:
[0085] 1. Bottom polling task (priority 2, lowest): responsible for high-speed polling the real-time position and running state of each axis through the SPI bus, and performing sequential access to the I / O expander.
[0086] 2. Instruction processing task (priority 3): processes upper-layer instructions in the message queue that do not involve real-time reading and writing of underlying hardware.
[0087] 3. Message enqueueing task (priority 4): responsible for handling serial port interrupts, placing received external instructions (such as from the host computer) into the message queue after CRC verification, for consumption by the instruction processing task.
[0088] 4. Software timer task (priority 5, highest): executed at a fixed high frequency (e.g. every 2ms) for handling algorithms that require precise time intervals, such as position calculation and update for the auto-follow function.
[0089] These tasks work together to ensure high real-time performance and high reliability of the system. Different priorities between tasks preempt the same priority time slice rotation. 485 communication and serial port query use semaphores for synchronization to ensure message response.
[0090] Third, the special functions of the present application
[0091] 1. Absolute value encoder zero drift compensation: for shafts using absolute value encoders, the system can also create a timing task. This task triggers after the system has been running for 24 hours, reads the real-time position of the encoder once, and compares it with the reference position stored in FLASH (w25q128). If the absolute value of the deviation exceeds the preset threshold (e.g. 5um), the system will automatically perform a zero calibration program, and update the new zero point parameters and save them back to FLASH (w25q128), thereby ensuring the positioning accuracy of the system during long-term operation.
[0092] 2. I / O signal synchronization processing: to avoid timing conflicts and data dirty reads between high-speed SPI bus polling and slower I2C bus communication, the underlying polling task is designed to communicate with only one I / O expander in each polling cycle. And the system sets a synchronization period, for example, every 4 polling cycles, to collect alarm and other abnormal signals from the I / O expander for centralized synchronization processing, ensuring signal stability and reliability.
[0093] 3. System online reconfiguration: as shown in Figure 2 When a new motor shaft needs to be added to the system, the operator only needs to connect the new drive board expansion module to the reserved drive expansion interface, and then send a command through the host computer via the system's external communication interface (such as RS485 or serial port) to one-key burn the new configuration file containing the new shaft configuration information into FLASH (w25q128). Then restart the system, the main control STM32H743 will automatically load the new configuration, recognize and initialize the new motor shaft, the entire process does not need to modify the firmware code, achieving minute-level (e.g. 25s) system reconfiguration.
[0094] Example Two
[0095] This example is based on Example One and is implemented and verified as follows:
[0096] I. Implementation of SPI-DMA time-sharing multiplexing
[0097] To avoid bus conflict when multiple SPI interfaces communicate concurrently, the embodiment adopts a time-sharing multiplexing strategy of "axis number polling + DMA independent channel":
[0098] Axis number polling logic: STM32H743 polls axis numbers 0-21 in turn, enables SPI1 + DMA2_Stream0 / 1 when polling 0-4 axes, enables SPI4 + DMA1_Stream2 / 3 when polling 5-9 axes, enables SPI3 + DMA1_Stream4 / 5 when polling 10-15 axes, and enables SPI5 + DMA2_Stream4 / 5 when polling 16-21 axes;
[0099] DMA transmission control: The DMA channels of each SPI interface are independently configured, the SPI sends data using the DMA sending channel, the SPI receives data using the DMA receiving channel, and the data transmission is completed through the DMA interrupt for processing without CPU intervention;
[0100] Verification result: Using a logic analyzer test, Figure 1 ), when 22 axes are running at full load, the SPI bus has no conflict, the underlying communication cycle is 993.2μs (A1-A2=993.2μs, A1@7.2965798s, A2@7.297573s), which meets the demand of motor response <1ms.
[0101] II. Implementation of dynamic drift compensation for absolute value encoder
[0102] To solve the problem of zero drift of the absolute value encoder during long-term operation, the dynamic drift compensation logic of the embodiment is implemented as follows:
[0103] Drift detection timer creation: After system initialization, a 24h timer is created by FreeRTOS xTimerCreate, and after the timer expires, a "drift detection flag" (1 byte) is written to the 0x100000 address of W25Q128;
[0104] Drift amount calculation and calibration: the following steps are performed when the system is powered on next time or the axis is initialized:
[0105] Read the "drift detection flag" stored in the Flash, if the flag is 1 (needs to be detected), read the reference zero point position (stored at 0x200000 address) and the current encoder real-time position (read from TMC4361 through SPI);
[0106] Calculate the drift amount: drift amount = real-time position - reference zero point position;
[0107] Calibration decision: if the absolute value of the drift is greater than 5um (preset threshold), drive the motor to the new zero position, update the reference zero position and write it into the Flash, and clear the "drift detection flag"; if the absolute value of the drift is less than or equal to 5um, directly clear the "drift detection flag";
[0108] Verification result: using a laser interferometer test, after the absolute value encoder runs continuously for 72h, the positioning error is less than or equal to 3um, meeting the positioning accuracy requirements of precision equipment (such as numerical control machine tools).
[0109] In summary, the embodiment provides a highly flexible, scalable and compatible motion control system through the innovative design of software and hardware combination, which can effectively cope with complex and variable industrial application requirements.
[0110] Those skilled in the art should understand that the technical features of the above embodiments can be combined arbitrarily, and in order to make the description concise, all possible combinations of the technical features in the above embodiments are not described, however, as long as the combination of the technical features does not exist contradictory, it should be considered as the scope of the present application.
[0111] The above embodiments only express several embodiments of the present application, and the description is more specific and detailed, but it should not be understood as a limitation on the scope of the present application. It should be pointed out that for ordinary skilled in the art, without departing from the concept of the present application, a number of modifications and improvements can be made, which are all within the scope of the present application. Therefore, the protection scope of the present application should be subject to the appended claims.
Claims
1. An intelligent motion control system based on multi-level expansion and compatibility with multiple types of motors, characterized in that, include: Main controller; A configuration memory, connected to the main controller, is used to store preset configuration data; At least one driver expansion interface, and each driver expansion interface corresponds to a high-speed serial communication bus. At least one motor control module is detachably connected to the drive expansion interface, and each motor control module includes a motion controller and a motor driver; The configuration data includes shaft configuration parameters defined for the motor shaft corresponding to each motor control module. The shaft configuration parameters include at least a motor type parameter, which indicates whether the motor connected to the motor shaft is a first preset type or a second preset type. Furthermore, the main controller is configured as follows: During system initialization, configuration data is read from the configuration memory; And based on the motor type parameters read for each motor axis, the corresponding initialization strategy is executed: When the motor type parameter indicates the first preset type, the motion controller and motor driver in the motor control module are configured to work together to drive the motor. When the motor type parameter indicates the second preset type, only the motion controller in the motor control module is configured to output standard pulse / direction control signals and simultaneously disable the motor drive.
2. The intelligent motion control system as described in claim 1, characterized in that, The shaft configuration parameters also include closed-loop mode parameters, which indicate whether the encoder used on the motor shaft is an incremental encoder or an absolute encoder. The main controller is also configured to configure the motion controller with a corresponding closed-loop control mode based on the closed-loop mode parameters.
3. The intelligent motion control system as described in claim 2, characterized in that, When the closed-loop mode parameters indicate an absolute encoder, the main controller is also configured to execute a zero-point drift compensation method, which includes: After a preset condition is triggered, the real-time position of the absolute encoder is read and compared with a reference position to obtain the drift amount; When the absolute value of the drift is greater than the preset compensation threshold, zero-point calibration is performed, the zero-point parameters of the absolute encoder are updated and saved to the configuration memory.
4. The intelligent motion control system as described in claim 1, characterized in that, The driver expansion interface is multiple; The main controller is also configured to: dynamically enable a corresponding number of the high-speed serial communication buses according to the total number of motor shafts defined in the configuration data, and perform parallel data read and write scheduling on the multiple enabled high-speed serial communication buses through direct memory access.
5. The intelligent motion control system as described in claim 1, characterized in that, It also includes a low-speed serial communication bus and at least one I / O expander connected to the bus for processing enable, alarm, or reset signals of the motor control module.
6. The intelligent motion control system as described in claim 1, characterized in that, The main controller runs a real-time operating system, which schedules the system's functions into multiple tasks with different priorities. This scheduling includes status querying, communication processing, and instruction execution.
7. The intelligent motion control system as described in claim 1, characterized in that, The main controller also includes an external communication interface and is configured to receive new configuration data through the external communication interface and write the received new configuration data into the configuration memory to realize online reconfiguration of system functions.
8. The intelligent motion control system as described in claim 1, characterized in that, The motor control module is multiple, and these multiple motor control modules are connected to the same high-speed serial communication bus; The main controller is configured to enable time-division multiplexing access to the bus by controlling a unique chip select signal assigned to each motor control module.
9. The intelligent motion control system as described in claim 6, characterized in that, Multiple tasks include at least: A low-level polling task is used to periodically read the operating status of each motor shaft; A message enqueue task is used to verify the instructions received from the external communication interface and then add them to the message queue. An instruction processing task is used to process instructions in the message queue; A software timer task used to execute a periodic control algorithm.
10. The intelligent motion control system as described in claim 5, characterized in that, The main controller is also configured to: Within a single underlying polling cycle, communication and interaction occur only with one I / O expander. After multiple preset polling cycles, abnormal signals from the I / O expander are processed synchronously to avoid data errors caused by timing misalignment.
Citation Information
Patent Citations
Multi-motor motion control system and method for ring throwing machine
CN108803500A
Method and apparatus for controlling motors of different types
US20080084171A1