Motor control system, motor control device, motor control method

By allowing motor control devices to share and convert information into control commands, the system reduces host control device processing load and enhances synchronization accuracy.

JP7709496B2Active Publication Date: 2025-07-16YASKAWA DENKI KK
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2023143812
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2023-09-05
Publication Date
2025-07-16
Estimated Expiration
2041-10-07

AI Technical Summary

Technical Problem

Existing motor control systems place a significant processing load on the host control device, which can lead to decreased synchronization accuracy and increased processing cycles.

Method used

Implementing a system where motor control devices share information via data communication, convert this information into control commands, and operate autonomously, reducing the need for host control device intervention.

Benefits of technology

This approach reduces the processing load on the host control device, allows for finer command resolution, and improves synchronization accuracy by enabling independent operation of motor control devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007709496000001
    Figure 0007709496000001
  • Figure 0007709496000002
    Figure 0007709496000002
  • Figure 0007709496000003
    Figure 0007709496000003
Patent Text Reader

Abstract

To provide a motor control system, a motor control device, and a motor control method that can reduce the processing load on a host control device.SOLUTION: A motor control system 1 includes a host control device 3 that outputs control commands, multiple motor control devices 5A to 5D that control multiple motors 7A to 7D on the basis of the control commands and drive mechanical elements 15A to 15D, and an external sensor 17 for outputting information on the mechanical element 15D to the motor control device 5D. Each of the multiple motor control devices 5A to 5D includes an information sharing unit 23 for sharing information on the mechanical element 15D with each other through data communication among the multiple motor control devices 5A to 5D, a command conversion unit 25 for converting the shared information on the mechanical element 15D into a control command for autonomous operation by the motor control devices 5A to 5D themselves, and a motor control unit 27 for controlling a motor 7 on the basis of the converted control command.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The disclosed embodiments relate to a motor control system, a motor control device, and a motor control method.

Background Art

[0002] Patent Document 1 describes a distributed motor control system. In this distributed motor control system, each of at least two servo amplifiers included in a plurality of servo amplifiers connected to a host control device performs a sharing process for sharing cooperation control data necessary for cooperative driving of industrial equipment with each other via data communication between the at least two servo amplifiers, and a control unit that controls a corresponding motor using the shared cooperation control data.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] In a motor control system, it has been desired to reduce the processing load of a host control device.

[0005] The present invention has been made in view of such problems, and an object thereof is to provide a motor control system, a motor control device, and a motor control method capable of reducing the processing load of a host control device.

Means for Solving the Problems

[0006] To solve the above problems, according to one aspect of the present invention, there is provided a host control device that outputs a first control command, a plurality of motor control devices that control a plurality of motors based on the first control command to drive a mechanical element, and a sensor that outputs information related to the mechanical element to any one of the motor control devices. Each of the plurality of motor control devices includes an information sharing unit that shares information related to the mechanical element with each other via data communication between the plurality of motor control devices, a command conversion unit that converts the shared information related to the mechanical element into a second control command for autonomous operation by the motor control device itself, and a motor control unit that controls the motor based on the second control command. A motor control system is applied.

[0007] Further, according to another aspect of the present invention, there is provided a motor control device that controls one of a plurality of motors based on a first control command output from a host control device to drive a mechanical element, the motor control device including an information sharing unit that shares information related to the mechanical element with other motor control devices via data communication, a command conversion unit that converts the shared information related to the mechanical element into a second control command for autonomous operation by the motor control device itself, and a motor control unit that controls the motor based on the second control command. A motor control device is applied.

[0008] Further, according to another aspect of the present invention, there is provided a motor control method that controls one of a plurality of motors based on a first control command output from a host control device to drive a mechanical element, the motor control method including sharing information related to the mechanical element with other motor control devices via data communication, converting the shared information related to the mechanical element into a second control command for autonomous operation by the motor control device itself, and controlling the motor based on the second control command. A motor control method is applied.

Advantages of the Invention

[0009] According to the motor control system and the like of the present invention, the processing load of the host control device can be reduced.

Brief Description of the Drawings

[0010]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Embodiments for Carrying Out the Invention

[0011] Hereinafter, embodiments will be described with reference to the drawings.

[0012] <1. First Embodiment> The first embodiment is an embodiment when applied to a system that autonomously operates a motor control system using a reference signal.

[0013] (1-1. Overall Configuration of Motor Control System) With reference to FIG. 1, an example of the overall configuration of the motor control system 1 according to the first embodiment will be described.

[0014] As shown in FIG. 1, the motor control system 1 includes a host control device 3, a plurality (for example, four) of motor control devices 5A to 5D, and a plurality (for example, four) of motors 7A to 7D.

[0015] The host control device 3 is composed of a computer such as a general-purpose personal computer, a PLC (Programable Logic Controller), or a motion controller. The host control device 3 generates control commands (an example of the first control commands. For example, position commands, speed commands, torque commands, etc.) for controlling the motors 7A to 7D, and transmits them to the motor control devices 5A to 5D respectively.

[0016] The motor control devices 5A to 5D control the motors 7A to 7D respectively based on the control commands received from the host control device 3. The motors 7A to 7D may be rotary motors or linear motors. The motor control devices 5A to 5D are also called servo amplifiers. The motor control devices 5A to 5D are connected in series to the host control device 3 and can communicate with each other. Also, a specific one of the motor control devices 5A to 5D (for example, the motor control device 5A) is connected to the host control device 3 so as to be able to communicate with each other. Hereinafter, the communication path for data communication between the host control device 3 and the motor control device 5A is referred to as the first communication path 9, and the communication path for data communication between the motor control devices 5A to 5D is referred to as the second communication path 11 as appropriate.

[0017] The motor control device 5A supplies power to the motor 7A and controls the motor 7A based on the control command received from the upper control device 3 and the position information received from the encoder 13A. The motor 7A drives the mechanical element 15A. The encoder 13A detects the position information of the drive part (for example, the rotor or the mover) of the motor 7A and transmits it to the motor control device 5A.

[0018] The motor control device 5B supplies power to the motor 7B and controls the motor 7B based on the control command received from the upper control device 3 and the position information received from the encoder 13B. The motor 7B drives the mechanical element 15B. The encoder 13B detects the position information of the drive part of the motor 7B and transmits it to the motor control device 5B.

[0019] The motor control device 5C supplies power to the motor 7C and controls the motor 7C based on the control command received from the upper control device 3 and the position information received from the encoder 13C. The motor 7C drives the mechanical element 15C. The encoder 13C detects the position information of the drive part of the motor 7C and transmits it to the motor control device 5C.

[0020] The motor control device 5D supplies power to the motor 7D and controls the motor 7D based on the control command received from the upper control device 3 and the position information received from the encoder 13D. The motor 7D drives the mechanical element 15D. The encoder 13D detects the position information of the drive part of the motor 7D and transmits it to the motor control device 5D.

[0021] Of the motor control devices 5A to 5D, a specific one (for example, motor control device 5D) receives reference information related to the control of the motor. The type of "reference information" has a correlation with the control commands for each of the motors 7A to 7D, and is not particularly limited as long as it is information that can be converted into each control command using the correlation information. For example, an external sensor 17 (an example of a reference information output unit) for detecting the position information of the mechanical element 15D (an example of a drive unit) driven by the motor 7D is installed, and the motor control device 5D may receive the position information (an example of reference information) detected by the external sensor 17 as the reference information. The reference information received by the motor control device 5D is shared among the motor control devices 5A to 5D and is used for the autonomous operation of the motor control devices 5A to 5D that do not depend on the host control device 3.

[0022] Note that the type of the external sensor 17 is not particularly limited as long as it can detect the position information of the mechanical element 15 or the like. For example, an encoder, a potentiometer, an infrared sensor, a laser sensor, or the like may be used. When detecting the speed information or torque information of the mechanical element 15 as the reference information, the external sensor 17 may be, for example, a speed sensor or a torque sensor. Note that instead of the detection information of the external sensor 17, the position information of the drive unit of the motor 7D output by the encoder 13D may be used as the reference information. In this case, the encoder 13D becomes an example of a reference information output unit.

[0023] The mechanical elements 15A to 15D constitute, for example, an industrial machine system that performs predetermined processes such as processing and measurement on a workpiece. The type of each mechanical element is not particularly limited, but for example, when the motor 7 is a rotary type, a ball screw mechanism or the like may be used.

[0024] Note that the configuration of the motor control system 1 described above is an example and is not limited to the above description. For example, the number of motor control devices 5 and motors 7 (number of axes) may be a plurality other than 4, or any one of the motor control devices 5B to 5D may be connected to the host control device 3. Also, a configuration may be adopted in which any one of the motor control devices 5A to 5C receives the reference information.

[0025] Also, when not distinguishing each of the motor control devices 5A to 5D, the motors 7A to 7D, the encoders 13A to 13D, and the mechanical elements 15A to 15D in this embodiment, they are described as the motor control device 5, the motor 7, the encoder 13, and the mechanical element 15.

[0026] (1-2. Function configurations of the host controller and the motor control device) With reference to FIGS. 2 and 3, an example of the function configurations of the host controller 3 and the motor control devices 5A to 5D will be described.

[0027] As shown in FIG. 2, the host controller 3 includes a control command output unit 19 and a start command output unit 21. The control command output unit 19 generates control commands (for example, position commands, speed commands, torque commands, etc.) for controlling the operations of the motors 7A to 7D, and transmits them to the corresponding motor control devices 5A to 5D respectively. Since the motor control devices 5A to 5D are connected in series as described above, the control command for the motor control device 5A is transmitted via the first communication path 9, and the control commands for the motor control devices 5B to 5D are transmitted via the first communication path 9 and the second communication path 11 respectively.

[0028] The start command output unit 21 outputs start commands to the motor control devices 5A to 5D at a predetermined timing. The "start command" is a command for instructing the start of independent operation by the motor control devices 5A to 5D that do not depend on the host controller 3. The start command transmitted from the host controller 3 to the motor control device 5A is transmitted to each of the motor control devices 5B to 5D via the second communication path 11.

[0029] The motor control devices 5A to 5D each include an information sharing unit 23, a command conversion unit 25, and a motor control unit 27. The information sharing unit 23 shares reference information (in this embodiment, the position information of the component 15D received by the motor control device 5D from the external sensor 17) among the motor control devices 5A to 5D via data communication through the second communication path 11. Specifically, the information sharing unit 23 of the motor control device 5D shares the received position information and transmits it to the information sharing units 23 of the motor control devices 5A to 5C via the second communication path 11, respectively. Also, the shared position information is transmitted to the upper control device 3 via the first communication path 9.

[0030] The command conversion unit 25 converts the reference information shared by the information sharing unit 23 into a control command (an example of a second control command) corresponding to the motor 7 to be controlled. For example, the command conversion unit 25 converts the position information based on the correlation information between the position information detected by the external sensor 17 and the position command corresponding to the motor 7 to be controlled.

[0031] Specifically, the command conversion unit 25 of the motor control device 5A converts the shared position information into a position command for the motor 7A based on the correlation information between the position information detected by the external sensor 17 recorded in an appropriate recording means of the motor control device 5A and the position command for the motor 7A. Similarly, the command conversion unit 25 of the motor control device 5B converts the shared position information into a control command for the motor 7B based on the correlation information between the position information detected by the external sensor 17 recorded in an appropriate recording means of the motor control device 5B and the position command for the motor 7B. Similarly, the command conversion unit 25 of the motor control device 5C converts the shared position information into a control command for the motor 7C based on the correlation information between the position information detected by the external sensor 17 recorded in an appropriate recording means of the motor control device 5C and the position command for the motor 7C. Similarly, the command conversion unit 25 of the motor control device 5D converts the shared position information into a control command for the motor 7D based on the correlation information between the position information detected by the external sensor 17 recorded in an appropriate recording means of the motor control device 5D and the position command for the motor 7D.

[0032] Figure 3 shows an example of the correlation information between the position information detected by the external sensor 17 and the position command for the motor 7. As shown in Figure 3, in the correlation information, position commands C1, C2, C3... corresponding to the respective position information P1, P2, P3... detected by the external sensor 17 are defined. The correlation information is also referred to as an electronic camera table. Each of the motor control devices 5A to 5D records unique correlation information corresponding to the motor 7 to be controlled. The command conversion unit 25 of each of the motor control devices 5A to 5D converts the shared position information into unique position commands based on the above correlation information respectively.

[0033] Note that the control command converted from the reference information by the command conversion unit 25 is not limited to the position command, and may be, for example, a speed command or a torque command. In that case, the corresponding correlation information may be recorded in each of the motor control devices 5 in advance.

[0034] The motor control unit 27 controls the motor 7 to be controlled based on the control command converted by the command conversion unit 25 and the position information received from the corresponding encoder 13. Specifically, the motor control unit 27 has, for example, a position control unit, a speed control unit, a current control unit, etc. (not shown in the figure). The position control unit generates a speed command by, for example, PID control or the like based on the position deviation obtained by subtracting the feedback position based on the detection information of the encoder 13 from the position command converted by the command conversion unit 25. The speed control unit generates a torque command by, for example, PID control or the like based on the speed deviation obtained by subtracting the feedback speed based on the detection information of the encoder 13 from the speed command. The current control unit performs power conversion based on the torque command and supplies power to the motor 7.

[0035] The processing in the control command output unit 19, start command output unit 21, etc. of the above-described upper control device 3, and the processing in the information sharing unit 23, command conversion unit 25, motor control unit 27, etc. of the motor control devices 5A to 5D are not limited to the examples of the division of these processes. For example, the processing may be performed by an even smaller number of processing units (for example, one processing unit), or may be performed by further subdivided processing units. Further, in the motor control devices 5A to 5D, only the part that supplies power to the motors 7A to 7D (such as an inverter) is implemented by an actual device, and the functions of the other above-described processing units may be implemented by a program executed by the CPU 901 (see FIG. 13) described later, or a part or all of the functions may be implemented by an actual device such as an ASIC, FPGA, or other electric circuit.

[0036] (1-3. Processing Procedure of Motor Control Device) With reference to FIG. 4, an example of the processing procedure executed by the motor control device 5 will be described.

[0037] In step S10, the motor control device 5 controls the motor 7 to be controlled based on the control command received from the upper control device 3 and the position information received from the corresponding encoder 13 by the motor control unit 27.

[0038] In step S20, the motor control device 5 determines whether or not it has received a start command from the upper control device 3. If it has not received the start command (step S20: NO), it returns to step S10. On the other hand, if it has received the start command (step S20: YES), it proceeds to the next step S30.

[0039] In step S30, the motor control device 5 shares, via data communication through the second communication path 11, the position information of the mechanical element 15D received by the motor control device 5D from the external sensor 17 among the motor control devices 5A to 5D through the information sharing unit 23.

[0040] In step S40, the motor control device 5 converts, by the command conversion unit 25, the position information shared in step S30 into a position command corresponding to the motor 7 to be controlled based on the correlation information recorded in the recording means.

[0041] In step S50, the motor control device 5 controls the motor 7 to be controlled by the motor control unit 27 based on the position command converted in step S40 and the position information received from the corresponding encoder 13. As a result, the motor control devices 5A to 5D control the motors 7A to 7D based on the position information received from the encoder 13 even without a control command from the upper control device 3, and the independent operation by the motor control devices 5A to 5D is executed.

[0042] In step S60, the motor control device 5 determines whether to end the independent operation. The end of the independent operation is determined, for example, by whether an end command instructing the end of the independent operation is received from the upper control device 3, or whether the payout of the position command converted based on the correlation information has ended. If the independent operation is not ended (step S60: NO), the process returns to the previous step S30. On the other hand, if the independent operation is ended (step S60: YES), the process proceeds to the next step S70.

[0043] In step S70, the motor control device 5 determines whether to end the operation of the motor control system 1. If the operation of the system is to be continued (step S70: NO), the process returns to the previous step S10 and the same procedure is repeated. On the other hand, if the operation of the system is to be ended (step S70: YES), this flowchart is ended.

[0044] The processing procedure described above is an example, and at least a part of the above procedure may be deleted or changed, or procedures other than the above may be added. Also, the order of at least a part of the above procedures may be changed, or a plurality of procedures may be combined into a single procedure.

[0045] (1-4. Effects of the First Embodiment) As described above, the motor control system 1 of the first embodiment includes a host control device 3 that outputs a control command, a plurality of motor control devices 5A to 5D that control a plurality of motors 7A to 7D based on the control command, and an external sensor 17 that outputs reference information related to the control of the motor 7 to any one of the motor control devices 5 (for example, the motor control device 5D). Each of the plurality of motor control devices 5A to 5D includes an information sharing unit 23 that shares the reference information with each other via data communication between the plurality of motor control devices 5A to 5D, a command conversion unit 25 that converts the shared reference information into a control command corresponding to the motor 7 to be controlled, and a motor control unit 27 that controls the motor 7 to be controlled based on the converted control command.

[0046] In the motor control system 1, each of the plurality of motor control devices 5A to 5D shares the reference information with each other via data communication, converts the shared reference information into a control command for autonomous operation, and controls the motor 7 based on the control command. In this way, each of the motor control devices 5A to 5D can operate independently without a control command from the host control device 3. As a result, the host control device 3 does not need to generate and output a control command for each of the motor control devices 5A to 5D, so that the processing load on the host control device 3 can be reduced.

[0047] Also, when the plurality of motor control devices 5A to 5D are operated synchronously by a control command from the host control device 3, the command resolution is determined by the processing cycle of the host control device 3. For example, when the number of motor control devices to be controlled (number of connected axes) is large or there is processing for motor control devices not related to synchronization, the processing load on the host control device 3 increases and the processing cycle becomes long. As a result, the command resolution becomes coarse, which may lead to a decrease in synchronization accuracy.

[0048] In this embodiment, each of the motor control devices 5A to 5D performs autonomous driving based on reference information shared through data communication via the second communication path 11. For this reason, the reference information is updated, for example, for each transmission cycle of the second communication path 11 or for each processing cycle of the motor control devices 5A to 5D, and the control commands for autonomous driving are also updated for each such cycle. As a result, each of the motor control devices 5A to 5D can execute synchronous operation at the transmission cycle of the second communication path 11 or the processing cycle of the motor control devices 5A to 5D without depending on the processing cycle of the upper control device 3. Therefore, the command resolution can be made finer and the synchronization accuracy can be improved.

[0049] Also in this embodiment, the external sensor 17 may be a position sensor that detects the position information of the driving target of any one of the motors 7 (for example, the motor 7D) and outputs the position information to the corresponding motor control device 5 (for example, the motor control device 5D).

[0050] In this case, based on the position information of the driving target of the motor 7D detected by the external sensor 17, for example, the plurality of motor control devices 5A to 5D can be synchronized to perform autonomous driving. Also, when the position information is detected using, for example, the encoder 13D mounted on the motor 7D instead of the external sensor 17, a new device for generating and outputting the reference information becomes unnecessary, so an increase in cost can be suppressed.

[0051] Also in this embodiment, the command conversion unit 25 may convert the position information based on the correlation information between the position information detected by the external sensor 17 and the position command corresponding to the motor 7 that is the control target.

[0052] In this embodiment, each of the motor control devices 5A to 5D converts the common position information into individual position commands corresponding to the motors 7 that are its own control targets based on the correlation information. As a result, the plurality of motor control devices 5A to 5D can be accurately synchronized to perform autonomous driving. For example, it becomes possible to independently execute electronic cam control of multiple axes.

[0053] Also, in the present embodiment, the upper control device 3 may have a start command output unit 21 that outputs a start command to the plurality of motor control devices 5A to 5D at a predetermined timing. In this case, each of the plurality of motor control devices 5A to 5D, when receiving the start command, shares the reference information by the information sharing unit 23, converts the reference information into a control command for autonomous operation by the command conversion unit 25, and controls the motor 7 that is the control target by the motor control unit 27 based on the converted control command.

[0054] In this case, it is possible to switch from the normal operation based on the control command output from the upper control device 3 to the autonomous operation that does not depend on the upper control device 3 at an arbitrary timing. Thereby, for example, when the processing load of the upper control device 3 is small or when high synchronization accuracy is not required, normal operation is performed, and for example, when the processing load of the upper control device 3 increases or when high synchronization accuracy is required, etc., it is possible to switch to the autonomous operation only for the necessary period.

[0055] <2. Second Embodiment> The second embodiment is an embodiment when the motor control system is applied to a system that outputs a fixed-point passing signal.

[0056] (2-1. Overall Configuration of Motor Control System) With reference to FIGS. 5 and 6, an example of the overall configuration of the motor control system 100 according to the second embodiment will be described.

[0057] As shown in FIG. 5, the motor control system 100 includes an upper control device 103, a plurality (for example, three) of motor control devices 105A to 105C, and a plurality (for example, three) of motors 107A to 107C.

[0058] The upper control device 103 is composed of a computer such as a general-purpose personal computer, a PLC, a motion controller, etc., similar to the aforementioned upper control device 3. The upper control device 103 generates control commands (such as position commands, speed commands, torque commands, etc.) for controlling the motors 107A to 107C respectively, and transmits them to the motor control devices 105A to 105C respectively.

[0059] Each of the motor control devices 105A to 105C controls the motors 107A to 107C respectively based on the control commands received from the upper control device 103. The motor control devices 105A to 105C are connected in series to the upper control device 103 and can communicate with each other via the second communication path 11. Also, one specific motor control device (for example, the motor control device 105A) among the motor control devices 105A to 105C is connected to the upper control device 103 via the first communication path 9 so as to be able to communicate with each other.

[0060] The motor control device 105A supplies power to the motor 107A and controls the motor 107A based on the control command received from the upper control device 103 and the position information received from the encoder 113A. The motor 107A is a motor corresponding to the X-axis and drives the X-axis mechanism 115A of the stage device 115 that can be driven in the X-axis, Y-axis, and Z-axis directions in the three-dimensional orthogonal coordinate system shown in FIG. 6. The encoder 113A detects the position information in the X-axis direction of the driving part (for example, the Y-axis mechanism 115B) driven by the motor 107A and transmits it to the motor control device 105A.

[0061] The motor control device 105B supplies power to the motor 107B and controls the motor 107B based on the control command received from the upper control device 103 and the position information received from the encoder 113B. The motor 107B is a motor corresponding to the Y-axis and drives the Y-axis mechanism 115B of the stage device 115 shown in FIG. 6. The encoder 113B detects the position information in the Y-axis direction of the driving part (for example, the movable table 111) driven by the motor 107B and transmits it to the motor control device 105B.

[0062] The motor control device 105C supplies power to the motor 107C and controls the motor 107C based on the control command received from the host control device 103 and the position information received from the encoder 113C. The motor 107C is a motor corresponding to the Z-axis and drives the Z-axis mechanism 115C of the stage device 115 shown in FIG. 6. The encoder 113C detects the position information in the Z-axis direction of the drive unit (for example, the X-axis mechanism 115A) driven by the motor 107C and transmits it to the motor control device 105C.

[0063] As shown in FIG. 6, the stage device 115 (an example of a drive machine) includes an X-axis mechanism 115A arranged along the X-axis direction, a Y-axis mechanism 115B arranged along the Y-axis direction, a Z-axis mechanism 115C arranged along the Z-axis direction, and a movable table 111. The X-axis mechanism 115A, the Y-axis mechanism 115B, and the Z-axis mechanism 115C are arranged so as to be substantially orthogonal to each other and are mechanically connected. The X-axis mechanism 115A is connected to the drive unit of the Z-axis mechanism 115C and moves as a whole in the Z-axis direction by the drive of the motor 107C. The Y-axis mechanism 115B is connected to the drive unit of the X-axis mechanism 115A and moves as a whole in the X-axis direction by the drive of the motor 107A. The movable table 111 is connected to the drive unit of the Y-axis mechanism 115B and moves in the Y-axis direction by the drive of the motor 107B. The motors 107A, 107B, and 107C are controlled synchronously so that the movable table 111 moves to a desired position.

[0064] The X-axis mechanism 115A, the Y-axis mechanism 115B, and the Z-axis mechanism 115C each have motors 107A, 107B, 107C and encoders 113A, 113B, 113C for detecting the axial positions of their respective drive units. The motors 107A to 107C may be linear motors or rotary motors. In the case of a rotary motor, for example, rotation is converted into linear motion by a ball screw mechanism or the like. The encoders 113A, 113B, 113C (an example of sensors) are, for example, linear encoders. Note that when the motors 107A to 107C are rotary motors, they may be rotary encoders. The encoder 113A has a linear scale 113a1 and a scale head 113a2. The encoder 113B has a linear scale 113b1 and a scale head 113b2. The encoder 113C has a linear scale 113c1 and a scale head 113c2. The encoders 113A, 113B, 113C detect the positions of their respective drive units and transmit the position information to the corresponding motor control devices 105A, 105B, 105C respectively.

[0065] The host controller 103 transmits an X-axis position command to the motor control device 105A, a Y-axis position command to the motor control device 105B, and a Z-axis position command to the motor control device 105C. Each of the motor control devices 105A to 105C controls the motors 107A to 107C so that the positions of the drive units driven by the corresponding motors 107A to 107C match the position commands with reference to the position information received from the encoders 113A to 113C. With the above configuration, the stage device 115 moves the movable table 111 to positions corresponding to the X-axis, Y-axis, and Z-axis position commands transmitted by the host controller 103.

[0066] Note that the configuration of the motor control system 100 described above is an example and is not limited to the above description. For example, the number of motor control devices 105 and motors 107 (number of axes) may be a plurality other than 3. For example, when applying to a stage device or the like that can be driven in the X-axis and Y-axis directions in a two-dimensional orthogonal coordinate system, the number of axes may be 2. Also, when applying to a multi-axis drive machine or the like that can be driven in the rotation direction (θ-axis) in addition to the X-axis, Y-axis, and Z-axis, the number of axes may be 4 or more. Also, either of the motor control devices 105B and 105C may be connected to the host control device 103.

[0067] Also, in this embodiment, when not distinguishing each of the motor control devices 105A to 105C, motors 107A to 107C, and encoders 113A to 113C, they are described as the motor control device 105, motor 107, and encoder 113.

[0068] (2-2. Functional configurations of the host control device and the motor control device) With reference to FIG. 7, an example of the functional configurations of the host control device 103 and the motor control devices 105A to 105C will be described.

[0069] As shown in FIG. 7, the host control device 103 includes a control command output unit 119. The control command output unit 119 generates control commands (for example, position commands, speed commands, torque commands, etc.) for controlling the respective operations of the motors 107A to 107C, and transmits them to the corresponding motor control devices 105A to 105C, respectively. Since the motor control devices 105A to 105C are connected in series as described above, the control command for the motor control device 105A is transmitted via the first communication path 9, and the control commands for the motor control devices 105B and 105C are transmitted via the first communication path 9 and the second communication path 11, respectively.

[0070] The motor control devices 105A to 105C each have an information sharing unit 123 and a motor control unit 127. The information sharing unit 123 shares the position information detected by the encoders 113A, 113B, and 113C with each other among the motor control devices 105A to 105C via data communication through the second communication path 11. Specifically, the information sharing unit 123 of the motor control device 105A shares the position information of the X-axis received from the encoder 113A and transmits it to the information sharing units 123 of the motor control devices 105B and 105C via the second communication path 11, respectively. Similarly, the information sharing unit 123 of the motor control device 105B shares the position information of the Y-axis received from the encoder 113B and transmits it to the information sharing units 123 of the motor control devices 105A and 105C via the second communication path 11, respectively. Similarly, the information sharing unit 123 of the motor control device 105C shares the position information of the Z-axis received from the encoder 113C and transmits it to the information sharing units 123 of the motor control devices 105A and 105B via the second communication path 11, respectively. As a result, each of the motor control devices 105A to 105C shares all the position information of the X-axis, Y-axis, and Z-axis. In addition, the position information of each of the shared encoders 113A, 113B, and 113C is also transmitted to the host control device 103 via the first communication path 9.

[0071] The motor control unit 127 controls the motor 107 to be controlled based on the control command received from the host control device 103 and the position information received from the corresponding encoder 113. Specifically, the motor control unit 127 has, for example, a position control unit, a speed control unit, a current control unit, etc. (not shown). For example, when receiving a position command from the host control device 103, the position control unit generates a speed command by, for example, PID control or the like based on the position deviation obtained by subtracting the feedback position based on the detection information of the encoder 113 from the position command. The speed control unit generates a torque command by, for example, PID control or the like based on the speed deviation obtained by subtracting the feedback speed based on the detection information of the encoder 113 from the speed command. The current control unit performs power conversion based on the torque command and supplies power to the motor 107.

[0072] At least one of the motor control devices 105A to 105C (for example, the motor control device 105A) includes an arrival determination unit 125 and a trigger output unit 129. The arrival determination unit 125 determines whether a reference point of the stage device 115 driven by the plurality of motors 107A to 107C has reached a predetermined position (hereinafter also appropriately referred to as a "fixed point") based on the position information of the X-axis, Y-axis, and Z-axis shared by the information sharing unit 123. The "reference point" is a control point of the stage device 115, and is, for example, the center position of the movable table 111 or the like. The "predetermined position" is a predetermined coordinate position in a three-dimensional orthogonal coordinate system composed of the X-axis, Y-axis, and Z-axis (hereinafter also appropriately referred to as a "fixed point").

[0073] Note that the arrival determination unit 125 may determine whether the reference point of the stage device 115 has actually reached or passed through the fixed point, or may calculate an arrival time (for example, an estimated elapsed time from the current time until arrival) at which the reference point reaches or passes through the fixed point, and determine whether the arrival time has elapsed.

[0074] When the arrival determination unit 125 determines that the reference point of the stage device 115 has reached the fixed point, the trigger output unit 129 outputs a trigger signal to, for example, the upper control device 103. Further, when the arrival determination unit 125 estimates the arrival time as described above, the trigger output unit 129 outputs a trigger signal when it is determined that the arrival time has elapsed. The trigger signal is used for the operation of an external device such as imaging by a camera. Note that the trigger signal may be transmitted to an external device other than the upper control device 103, or may be transmitted to the motor control devices 105B and 105C via the information sharing unit 123.

[0075] Note that the functions of the arrival determination unit 125 and the trigger output unit 129 described above may be provided by at least one of the motor control devices 105B and 105C in addition to or instead of the motor control device 105A.

[0076] The processing in the control command output unit 119, etc. of the above-described upper control device 103, the processing in the information sharing unit 123 and the motor control unit 127, etc. of the motor control devices 105B and 105C, the information sharing unit 123, the arrival determination unit 125, the motor control unit 127, and the trigger output unit 129, etc. of the motor control device 105A are not limited to the example of the division of these processes. For example, the processing may be performed by an even smaller number of processing units (e.g., one processing unit), or may be performed by further subdivided processing units. Further, the motor control devices 105A to 105C may have only the parts (such as inverters) that supply power to the motors 107A to 107C actually implemented by devices, and the functions of the other above-described processing units may be implemented by a program executed by the CPU 901 (see FIG. 13) described later, or a part or all of the functions may be implemented by actual devices such as ASICs, FPGAs, and other electric circuits.

[0077] (2-3. Processing Procedure of Motor Control Device) With reference to FIG. 8, an example of the processing procedure executed by the motor control device 105A will be described.

[0078] In step S110, the motor control device 105A controls the motor 107A based on the control command received from the upper control device 103 and the position information received from the encoder 113A by the motor control unit 127.

[0079] In step S120, the motor control device 105A shares the position information received from the encoders 113A to 113C with each other among the motor control devices 105A to 105C via data communication through the second communication path 11 by the information sharing unit 123. Specifically, the motor control device 105A shares the position information of the X axis received from the encoder 113A by the information sharing unit 123 and transmits it to the other motor control devices 105B and 105C. Further, the position information of the Y axis by the encoder 113B shared by the information sharing unit 123 of the motor control device 105B and the position information of the Z axis by the encoder 113C shared by the information sharing unit 123 of the motor control device 105C are acquired via data communication through the second communication path 11.

[0080] In step S130, the motor control device 105A determines, by the arrival determination unit 125, whether the reference point of the stage device 115 driven by the plurality of motors 107A to 107C has reached a predetermined position (fixed point) based on the position information of the X-axis, Y-axis, and Z-axis shared by the information sharing unit 123. Note that the determination in step S130 also includes calculating the arrival time when the reference point reaches or passes through the fixed point as described above, and determining whether the arrival time has elapsed. If the reference point has not reached the fixed point (step S130: NO), the process returns to the previous step S110. On the other hand, if the reference point has reached the fixed point (step S130: YES), the process proceeds to the next step S140.

[0081] In step S140, the motor control device 105A outputs a trigger signal to, for example, the upper control device 103 by the trigger output unit 129.

[0082] In step S150, the motor control device 105A determines whether to end the operation of the motor control system 100. If the operation of the system is to be continued (step S150: NO), the process returns to the previous step S110 and the same procedure is repeated. On the other hand, if the operation of the system is to be ended (step S150: YES), this flowchart ends.

[0083] The processing procedures described above are merely examples, and at least a part of the above procedures may be deleted or changed, or procedures other than the above may be added. Also, the order of at least a part of the above procedures may be changed, or a plurality of procedures may be combined into a single procedure.

[0084] (2-4. Effects of the Second Embodiment) As described above, the motor control system 100 of the second embodiment includes a host control device 103 that outputs a control command, a plurality of motor control devices 105A to 105C that control a plurality of motors 107A to 107C based on the control command, and a plurality of encoders 113A to 113C that detect position information of drive units of the plurality of motors 107A to 107C and output the position information to the corresponding motor control devices 105A to 105C. Each of the plurality of motor control devices 105A to 105C includes an information sharing unit 123 that shares the position information detected by the encoders 113A to 113C with each other via data communication between the plurality of motor control devices 105A to 105C. At least one of the motor control devices 105A to 105C, i.e., the motor control device 105A, includes an arrival determination unit 125 that determines whether a reference point of a stage device 115 driven by the plurality of motors 107A to 107C has reached a predetermined position based on the shared position information, and a trigger output unit 129 that outputs a trigger signal when it is determined that the reference point has reached the predetermined position.

[0085] Generally, in a motor control system, when a trigger signal is output when a reference point reaches or passes a preset position, each motor control device performs a fixed-point passing determination using the position information of its own axis and outputs a signal. Therefore, when position information of a plurality of axes is required, such as a fixed-point passing determination in an XYZ coordinate system, for example, a single motor control device cannot handle it, and it is common for the host control device to monitor the position of each axis and perform a fixed-point passing determination. However, this increases the processing load of the host control device.

[0086] In the motor control system 100 of the present embodiment, on each axis, an encoder 113 detects position information of the drive unit of the motor 107 and outputs it to the corresponding motor control device 105. Each of the plurality of motor control devices 105A to 105C shares their position information with each other via data communication. At least one motor control device 105A among the plurality of motor control devices 105A to 105C determines whether or not the reference point of the stage device 115 has reached a predetermined position based on the shared position information, and outputs a trigger signal when it is determined that the reference point has reached. In this way, each of the motor control devices 105A to 105C can share not only the position information of the motor 107 that is its own control target but also the position information of other motors 107. Therefore, it is possible to independently determine whether or not the reference point of the stage device 115 has reached a predetermined position by a single motor control device (in this embodiment, a single motor control device 105A) without processing by the upper control device 103. Accordingly, a fixed-point output function can be realized by a single motor control device. As a result, since the upper control device 103 does not need to acquire position information from each of the motor control devices 105A to 105C and perform determination, the processing load on the upper control device 103 can be reduced.

[0087] Further, in the present embodiment, the determination by the arrival determination unit 125 may include a process of calculating an arrival time at which the reference point reaches a predetermined position based on the shared position information and determining whether or not the arrival time has elapsed. In that case, the trigger output unit 129 may output a trigger signal when it is determined that the arrival time has elapsed.

[0088] In the present embodiment, the arrival determination unit 125 of the motor control device 105A may determine whether or not the reference point of the stage device 115 has actually reached or passed a predetermined position based on the shared position information, or may calculate an arrival time at which the reference point reaches or passes the predetermined position and determine whether or not the arrival time has elapsed. When determining based on the prediction of the arrival time and the elapse of time, it is not necessary to continuously monitor the position information as in the case of determining whether or not the reference point has actually passed the fixed point, so the processing load on the motor control device 105A can be reduced.

[0089] Also, in the present embodiment, the plurality of motor control devices 105A to 105C may be three motor control devices that respectively control three motors 107A to 107C corresponding to the X-axis, Y-axis, and Z-axis in a three-dimensional orthogonal coordinate system. In this case, the information sharing unit 123 shares the position information of the X-axis, Y-axis, and Z-axis detected by the plurality of encoders 113A to 113C, and the arrival determination unit 125 determines whether or not the reference point has reached a predetermined position in the three-dimensional orthogonal coordinate system based on the shared position information of the X-axis, Y-axis, and Z-axis.

[0090] In this case, a fixed-point output function in a three-dimensional orthogonal coordinate system can be realized by a single motor control device (the single motor control device 105A in the present embodiment).

[0091] <3. Third Embodiment> The third embodiment is an embodiment when the motor control system is applied to a gantry mechanism having a control parameter compensation function.

[0092] (3-1. Overall Configuration of Motor Control System) With reference to FIGS. 9 and 10, an example of the overall configuration of a motor control system 200 according to the third embodiment will be described.

[0093] As shown in FIG. 9, the motor control system 200 includes a host control device 203, a plurality (for example, three) of motor control devices 205A to 205C, and a plurality (for example, three) of motors 207A to 207C.

[0094] The host control device 203 is composed of a computer such as a general-purpose personal computer, a PLC, or a motion controller, similar to the aforementioned host control device 3,103. The host control device 203 generates control commands (for example, position commands, speed commands, torque commands, etc.) for controlling the motors 207A to 207C, and transmits them to the motor control devices 205A to 205C respectively.

[0095] Each of the motor control devices 205A to 205C controls the motors 207A to 207C based on the control commands received from the upper control device 203. The motor control devices 205A to 205C are connected in series to the upper control device 203 and can communicate with each other via the second communication path 11. Also, a specific one of the motor control devices 205A to 205C (for example, the motor control device 205A) is connected to the upper control device 203 via the first communication path 9 so as to be able to communicate with each other.

[0096] The motor control device 205A (an example of the first motor control device) supplies power to the motor 207A and controls the motor 207A based on the control command received from the upper control device 203 and the position information received from the encoder 213A. The motor 207A (an example of the first motor) is a motor corresponding to the Y1 axis and drives the Y1 axis mechanism 215A that can be driven along the Y1 axis direction (an example of the first axis direction) in the gantry mechanism 215 shown in FIG. 10. The encoder 213A detects the position information in the Y1 axis direction of the drive unit (for example, the X axis mechanism 215C) driven by the motor 207A and transmits it to the motor control device 205A.

[0097] The motor control device 205B (an example of the second motor control device) supplies power to the motor 207B and controls the motor 207B based on the control command received from the upper control device 203 and the position information received from the encoder 213B. The motor 207B (an example of the second motor) is a motor corresponding to the Y2 axis and drives the Y2 axis mechanism 215B that can be driven along the Y2 axis direction (an example of the second axis direction) substantially parallel to the Y1 axis direction in the gantry mechanism 215 shown in FIG. 10. The encoder 213B detects the position information in the Y2 axis direction of the drive unit (for example, the X axis mechanism 215C) driven by the motor 207B and transmits it to the motor control device 205B.

[0098] The motor control device 205C (an example of the third motor control device) supplies power to the motor 207C and controls the motor 207C based on the control command received from the upper control device 203 and the position information received from the encoder 213C. The motor 207C (an example of the third motor) is a motor corresponding to the X-axis, and drives the X-axis mechanism 215C that can be driven along the X-axis direction (an example of the second axial direction) that is substantially perpendicular to the Y1-axis direction and the Y2-axis direction between the drive parts of the Y1-axis mechanism 215A and the Y2-axis mechanism 215B in the gantry mechanism 215 shown in FIG. 10. The encoder 213C detects the position information in the X-axis direction of the drive part (for example, the head 211) driven by the motor 207C and transmits it to the motor control device 205C.

[0099] As shown in FIG. 10, the gantry mechanism 215 includes a Y1-axis mechanism 215A and a Y2-axis mechanism 215B arranged substantially parallel to each other along the Y-axis direction (the directions of the Y1-axis and the Y2-axis), an X-axis mechanism 215C arranged along the X-axis direction substantially perpendicular to the Y-axis direction, and a head 211. The Y1-axis mechanism 215A and the Y2-axis mechanism 215B are arranged such that their linear movable ranges of substantially the same length are parallel and overlap in the Y-axis direction, and the drive parts are synchronously controlled by the motors 207A and 207B to move at the same position in the Y-axis direction. The X-axis mechanism 215C moves as a whole in the Y-axis direction by the drive of the motors 207A and 207B, and moves the drive part to which the head 211 is connected in the X-axis direction by the motor 207C.

[0100] The Y1-axis mechanism 215A, the Y2-axis mechanism 215B, and the X-axis mechanism 215C each have a motor 207A, 207B, 207C and an encoder 213A, 213B, 213C for detecting the axial position of each drive unit. The motors 207A to 207C may be linear motors or rotary motors. In the case of a rotary motor, for example, rotation is converted into linear motion by a ball screw mechanism or the like. The encoders 213A, 213B, 213C (an example of a sensor) are, for example, linear encoders. Note that when the motors 207A to 207C are rotary motors, they may be rotary encoders. The encoder 213A has a linear scale 213a1 and a scale head 213a2. The encoder 213B has a linear scale 213b1 and a scale head 213b2. The encoder 213C has a linear scale 213c1 and a scale head 213c2. The encoders 213A, 213B, 213C detect the positions of the respective drive units and transmit the position information to the corresponding motor control devices 205A, 205B, 205C respectively.

[0101] The upper control device 203 transmits a position command for the Y1 axis to the motor control device 205A, a position command for the Y2 axis to the motor control device 205B, and a position command for the X axis to the motor control device 205C. Each of the motor control devices 205A to 205C refers to the position information received from the encoders 213A to 213C and controls the motors 207A to 207C so that the position of the drive unit driven by the corresponding motor 207A to 207C matches the position command. With the above configuration, the gantry mechanism 215 moves the head 211 to a position corresponding to each of the position commands for the Y1 axis, Y2 axis, and X axis transmitted by the upper control device 203.

[0102] Note that the configuration of the motor control system 200 described above is an example and is not limited to the above description. For example, when the head 211 can be driven in the rotational direction (θ axis), the number of motor control devices 205 and motors 207 (the number of axes) may be 4 or more. Also, either one of the motor control devices 205B and 205C may be connected to the upper control device 203.

[0103] Also, when not distinguishing each of the motor control devices 205A to 205C, the motors 207A to 207C, and the encoders 213A to 213C in this embodiment, they are described as the motor control device 205, the motor 207, and the encoder 213.

[0104] (3-2. Functional configurations of the host controller and the motor control device) With reference to FIG. 11, an example of the functional configurations of the host controller 203 and the motor control devices 205A to 205C will be described.

[0105] As shown in FIG. 11, the host controller 203 has a control command output unit 219. The control command output unit 219 generates control commands (such as position commands, speed commands, torque commands, etc.) for controlling the respective operations of the motors 207A to 207C, and transmits them to the corresponding motor control devices 205A to 205C respectively. Since the motor control devices 205A to 205C are connected in series as described above, the control command for the motor control device 205A is transmitted via the first communication path 9, and the control commands for the motor control devices 205B and 205C are transmitted via the first communication path 9 and the second communication path 11 respectively.

[0106] Each of the motor control devices 205A to 205C has an information sharing unit 223 and a motor control unit 227. The information sharing unit 223 shares the position information of the X-axis (the position information of the head 211) detected by the encoder 213C among the motor control devices 205A to 205C through data communication via the second communication path 11. Specifically, the information sharing unit 223 of the motor control device 205C shares the position information of the X-axis received from the encoder 213C, and transmits it to the information sharing units 223 of the motor control devices 205A and 205B via the second communication path 11 respectively. As a result, each of the motor control devices 205A and 205B shares the position information of the X-axis of the motor control device 205C. Also, the shared position information of the encoder 213C is transmitted to the host controller 203 via the first communication path 9.

[0107] The motor control unit 227 controls the motor 207 to be controlled based on the control command received from the upper control device 203 and the position information received from the corresponding encoder 213. Specifically, the motor control unit 227 has, for example, a position control unit, a speed control unit, a current control unit, etc. (not shown in the figure). For example, when receiving a position command from the upper control device 203, the position control unit generates a speed command by, for example, PID control or the like based on the position deviation obtained by subtracting the feedback position based on the detection information of the encoder 213 from the position command. The speed control unit generates a torque command by, for example, PID control or the like based on the speed deviation obtained by subtracting the feedback speed based on the detection information of the encoder 213 from the speed command. The current control unit performs power conversion based on the torque command and supplies power to the motor 207.

[0108] At least one of the motor control devices 205A to 205C (for example, motor control devices 205A and 205B) has a parameter adjustment unit 225. The parameter adjustment unit 225 adjusts the control parameters related to the control of the motor 207 to be controlled based on the X-axis position information shared by the information sharing unit 223. The "control parameters" are parameters that vary according to the X-axis position information, and for example, are the set values of inertia related to the control of motors 207A and 207B. The parameter adjustment unit 225 increases the set value of inertia as the position of the head 211 approaches its own motor control device 205, and decreases the set value of inertia as the position of the head 211 moves away from its own motor control device 205.

[0109] The motor control unit 227 controls the motor 207 to be controlled based on the control command received from the upper control device 203 and the control parameters (set values of inertia) adjusted by the parameter adjustment unit 225.

[0110] The processing in the control command output unit 219 etc. of the above-described upper control device 203, the processing in the information sharing unit 223 and the motor control unit 227 etc. of the motor control devices 205A to 205C, the processing in the parameter adjustment unit 225 etc. of the motor control devices 205A and 205B, etc. are not limited to the examples of the division of these processes. For example, the processing may be performed by an even smaller number of processing units (e.g., one processing unit), or may be performed by further subdivided processing units. Also, the motor control devices 205A to 205C may have only the part (such as an inverter) that supplies power to the motors 207A to 207C implemented by an actual device, and the functions of the other above-described processing units may be implemented by a program executed by the CPU 901 (see FIG. 13) described later, or a part or all of the functions may be implemented by an actual device such as an ASIC, an FPGA, or other electric circuits.

[0111] (3-3. Processing Procedure of Motor Control Device) While referring to FIG. 12, an example of the processing procedure executed by the motor control devices 205A and 205B will be described.

[0112] In step S210, the motor control devices 205A and 205B control the motors 207A and 207B by the motor control unit 227 based on the control command received from the upper control device 203 and the position information received from the encoders 213A and 213B.

[0113] In step S220, the motor control devices 205A and 205B share with each other the X-axis position information received by the motor control device 205C from the encoder 213C via data communication through the second communication path 11 by the information sharing unit 223. Specifically, the information sharing unit 223 of the motor control device 205C shares the X-axis position information received from the encoder 213C and transmits it to the other motor control devices 205A and 205B respectively. The motor control devices 205A and 205B acquire the shared X-axis position information via data communication through the second communication path 11 by the information sharing unit 223.

[0114] In step S230, the motor control devices 205A and 205B respectively adjust the set values of the inertia related to the control of the motors 207A and 207B to be controlled based on the X-axis position information shared in step S220 by the parameter adjustment unit 225.

[0115] In step S240, the motor control devices 205A and 205B determine whether to end the operation of the motor control system 200. If the operation of the system is to be continued (step S240: NO), it returns to the previous step S210 and repeats the same procedure. On the other hand, if the operation of the system is to end (step S240: YES), this flowchart ends.

[0116] The processing procedures described above are just examples, and at least a part of the above procedures may be deleted or changed, or procedures other than the above may be added. Also, the order of at least a part of the above procedures may be changed, or a plurality of procedures may be combined into a single procedure.

[0117] (3-4. Effects of the Third Embodiment) As described above, the motor control system 200 of the third embodiment includes a host control device 203 that outputs a control command, a plurality of motor control devices 205A to 205C that control a plurality of motors 207A to 207C based on the control command, and encoders 213A to 213C that detect the position information of the drive units of the motors 207A to 207C and output it to the corresponding motor control devices 205A to 205C. Each of the plurality of motor control devices 205A to 205C has an information sharing unit 223 that shares the position information detected by the encoder 213C with each other via data communication between the plurality of motor control devices 205A to 205C. The motor control devices 205A and 205B have a parameter adjustment unit 225 that adjusts the control parameters related to the control of the motors 207A and 207B to be controlled based on the shared position information, and a motor control unit 227 that controls the motors 207A and 207B to be controlled based on the control command and the adjusted control parameters.

[0118] In a motor control system that generally controls a plurality of axes, depending on the structure of the drive mechanism, the control parameters of a certain axis may change under the influence of the positions of other axes. In this case, it is common for the host control device to monitor the positions of the respective axes and adjust the control parameters according to the positions, but this becomes a factor increasing the processing load of the host control device.

[0119] In the motor control system 200 of the present embodiment, the encoder 213C detects the position information of the drive unit of the motor 207C and outputs it to the corresponding motor control device 205C. Each of the motor control devices 205A and 205B shares the position information of the X axis detected by the encoder 213C via data communication. The motor control devices 205A and 205B adjust the control parameters related to the control of the motors 207A and 207B to be controlled based on the shared position information, and control the motors 207A and 207B to be controlled based on the control commands and the adjusted control parameters. In this way, each of the motor control devices 205A and 205B can share not only the position information of the motors 207A and 207B to be its own control targets but also the position information of the other motor 207C. Therefore, it becomes possible for each of the motor control devices 205A and 205B to independently adjust the control parameters without the processing by the host control device 203. As a result, control in which the control parameters are compensated by a single motor control device can be realized. As a result, since the host control device 203 does not need to acquire the position information from the motor control device 205C and adjust the control parameters of the motor control devices 205A and 205B, the processing load of the host control device 203 can be reduced.

[0120] Also, in the present embodiment, the plurality of motor control devices 205A to 205C include a motor control device 205A and a motor control device 205B that control each of the motors 207A and 207B arranged substantially parallel along the Y-axis direction, and a motor control device 205C that controls the motor 207C arranged along the X-axis direction substantially perpendicular to the Y-axis direction so as to span between the drive units of each of the motors 207A and 207B. The encoder 213C detects the position information of the drive unit of the motor 207C and outputs it to the motor control device 205C. Each of the motor control devices 205A and 205B may adjust the control parameters related to the control of the motors 207A and 207B based on the shared position information of the motor 207C by the parameter adjustment unit 225, and control the motors 207A and 207B based on the control command and the adjusted control parameters by the motor control unit 227.

[0121] Generally, in a gantry mechanism, the control parameters of the gantry axes (Y1, Y2 axes) change under the influence of the position of the head axis (X axis). In the present embodiment, each of the motor control devices 205A and 205B corresponding to the gantry axes (Y1, Y2 axes) shares the position information of the motor 207C corresponding to the head axis (X axis), and adjusts the control parameters related to the control of the motors 207A and 207B that are the control targets based on the shared position information. Thereby, in the motor control system 200 that controls the gantry mechanism, it is possible to realize control in which the control parameters are compensated by the head position of the gantry by the motor control devices 205A and 205B alone.

[0122] Also, in the present embodiment, the parameter adjustment unit 225 may adjust the set value of the inertia related to the control of the motors 207A and 207B based on the shared position information of the motor 207C, and the motor control unit 227 may control the motors 207A and 207B based on the adjusted set value of the inertia.

[0123] In this case, in the motor control system 200 that controls the gantry mechanism, it is possible to realize inertia compensation control by the head position of the gantry by the motor control devices 205A and 205B alone.

[0124] <4. Hardware Configuration Example of Motor Control Device> With reference to FIG. 13, a hardware configuration example of the motor control devices 5A to 5D (105A to 105C, 205A to 205C) described in each of the above embodiments will be described. In FIG. 13, the configuration related to the function of supplying power to the motor of the motor control device is appropriately omitted and illustrated.

[0125] As shown in FIG. 13, the motor control devices 5A to 5D (105A to 105C, 205A to 205C) include, for example, a CPU 901, a ROM 903, a RAM 905, a dedicated integrated circuit 907 constructed for a specific use such as an ASIC or an FPGA, an input device 913, an output device 915, a recording device 917, a drive 919, a connection port 921, and a communication device 923. These configurations are connected to be able to transmit signals to each other via a bus 909 and an input / output interface 911.

[0126] The program can be recorded, for example, in the ROM 903, the RAM 905, a recording device 917 such as a hard disk, etc.

[0127] The program can also be temporarily or non-temporarily (permanently) recorded on a removable recording medium 925 such as a magnetic disk such as a flexible disk, an optical disk such as various CD·MO disks·DVDs, or a semiconductor memory. Such a recording medium 925 can also be provided as so-called packaged software. In this case, the program recorded on these recording media 925 may be read by the drive 919 and recorded on the above recording device 917 via the input / output interface 911, the bus 909, etc.

[0128] The program can also be recorded, for example, on a download site, other computers, other recording devices, etc. (not shown). In this case, the program is transferred via a network NW such as a LAN or the Internet, and the communication device 923 receives this program. Then, the program received by the communication device 923 may be recorded in the recording device 917 via the input / output interface 911, the bus 909, etc.

[0129] The program can also be recorded, for example, in an appropriate external connection device 927. In this case, the program is transferred via an appropriate connection port 921 and may be recorded in the recording device 917 via the input / output interface 911, the bus 909, etc.

[0130] By the CPU 901 executing various processes according to the program recorded in the recording device 917, the processes by the above-described information sharing unit 23, command conversion unit 25, motor control unit 27, information sharing unit 123, arrival determination unit 125, motor control unit 127, trigger output unit 129, information sharing unit 223, parameter adjustment unit 225, and motor control unit 227, etc. are realized. The CPU 901 may, for example, directly read and execute the program from the recording device 917, or may execute it after once loading it into the RAM 905. When the CPU 901 receives a program via the communication device 923, the drive 919, or the connection port 921, for example, it may directly execute the received program without recording it in the recording device 917.

[0131] The CPU 901 may perform various processes based on signals and information input from an input device 913 such as a mouse, keyboard, microphone (not shown), etc. as necessary.

[0132] The CPU 901 may output the result of executing the above-described process from an output device 915 such as a display device or an audio output device. The CPU 901 may transmit the processing result via the communication device 923 or the connection port 921 as necessary. The CPU 901 may cause the processing result to be recorded in the recording device 917 or the recording medium 925.

[0133] In the above description, when there are descriptions such as "vertical", "parallel", "plane", etc., these descriptions do not have a strict meaning. These "vertical", "parallel", "plane" mean "substantially vertical", "substantially parallel", "substantially plane" in terms of design and manufacturing tolerances and errors being tolerated.

[0134] In the above description, when there are descriptions such as "identical", "the same", "equal", "different", etc. regarding the dimensions, sizes, shapes, positions, etc. in appearance, these descriptions do not have a strict meaning. These "identical", "the same", "equal", "different" mean "substantially identical", "substantially the same", "substantially equal", "substantially different" in terms of design and manufacturing tolerances and errors being tolerated.

[0135] Note that when there are descriptions of values or cut-off values that serve as predetermined judgment criteria, such as threshold values or reference values, etc., "identical", "equal", "different", etc. with respect to them have a strict meaning, different from the above.

[0136] In addition to what has been described above, the methods according to the above embodiments and each modification example may be appropriately combined and used. In addition, although not exemplified one by one, the above embodiments and each modification example may be implemented with various changes made within the scope not departing from the gist thereof.

[0137] The problems and effects to be solved by the above-described embodiments, modification examples, etc. are not limited to the above-described content. By the embodiments, modification examples, etc., it is also possible to solve problems not described above or to achieve effects not described above, or to solve only some of the described problems or to achieve only some of the described effects.

Explanation of Reference Numerals

[0138] 1 Motor control system 3 Higher-level control device 5A~5D Motor control device 7A~7D Motor 17 External sensor (reference information output unit) 19 Control command output unit 21 Start command output unit 23 Information sharing unit 25 Command conversion unit 27 Motor control unit 100 Motor control system 103 Higher-level control device 105A~105C Motor control devices 107A~107C Motors 113A~113C Encoders (sensors) 115 Stage device (drive mechanism) 119 Control command output unit 123 Information sharing unit 125 Arrival determination unit 127 Motor control unit 129 Trigger output unit 200 Motor control system 203 Higher-level control device 205A~205C Motor control devices 207A~207C Motors 213A~213C Encoders (sensors) 215 Gantry mechanism 219 Control command output unit 223 Information sharing unit 225 Parameter adjustment unit 227 Motor control unit

Claims

A host control device that outputs a first control command including a position command, a speed command, or a torque command, A plurality of motor control devices that control a plurality of motors based on the first control command to drive a mechanical element, A sensor that outputs information including position information, speed information, or torque information related to the mechanical element to any one of the motor control devices, and having, Each of the plurality of motor control devices, An information sharing unit that shares information including position information, speed information, or torque information related to the mechanical element with each other via data communication between the plurality of motor control devices, A command conversion unit that converts the shared information including the position information, speed information, or torque information related to the mechanical element into a second control command including a position command, a speed command, or a torque command different from the first control command output by the host control device, A motor control unit that controls the motor based on the second control command, A motor control system having.

2. The command conversion unit, Based on the correlation information between the information including the position information, speed information, or torque information related to the mechanical element detected by the sensor and the first control command corresponding to the motor to be controlled, the information including the position information, speed information, or torque information related to the mechanical element is converted into the second control command, The motor control system according to claim 1.

3. The host control device, Has a start command output unit that outputs a start command to the plurality of motor control devices at a predetermined timing, Each of the plurality of motor control devices, When the start command is received, the information sharing unit shares information including position information, speed information, or torque information related to the mechanical element, the command conversion unit converts the information including the position information, speed information, or torque information related to the mechanical element into the second control command, and the motor control unit controls the motor based on the second control command, The motor control system according to claim 1 or 2.

4. A motor control device that controls one of a plurality of motors based on a first control command including a position command, a speed command, or a torque command output from a host control device to drive a mechanical element, An information sharing unit that shares information including position information, speed information, or torque information related to the mechanical element with other motor control devices via data communication, A command conversion unit that converts information including position information, speed information, or torque information related to the shared mechanical element into a second control command including a position command, a speed command, or a torque command different from the first control command output by the host control device; A motor control unit that controls the motor based on the second control command; A motor control device having the above.

5. A motor control method for driving a mechanical element by controlling one of a plurality of motors based on a first control command including a position command, a speed command, or a torque command output from a host control device, sharing information including position information, speed information, or torque information related to the mechanical element with each other via data communication with other motor control devices; converting the shared information including position information, speed information, or torque information related to the mechanical element into a second control command including a position command, a speed command, or a torque command different from the first control command output by the host control device; controlling the motor based on the second control command; A motor control method having the above.

Citation Information

Patent Citations

  • Multiaxial motor control system, motor controller, and motor control method

    JP2018068094A

  • Distributed motor control system, motor control device, and distributed motor control method

    JP2021100350A

  • Distributed motor control system, motor control device, and distributed motor control method

    US20210191369A1

  • Motor control device, moving body, motor control method, and program

    WO2021024591A1