WO2023145410A1 - 機器の制御装置、制御システム、及び制御方法 - Google Patents

機器の制御装置、制御システム、及び制御方法 Download PDF

Info

Publication number
WO2023145410A1
WO2023145410A1 PCT/JP2023/000249 JP2023000249W WO2023145410A1 WO 2023145410 A1 WO2023145410 A1 WO 2023145410A1 JP 2023000249 W JP2023000249 W JP 2023000249W WO 2023145410 A1 WO2023145410 A1 WO 2023145410A1
Authority
WO
WIPO (PCT)
Prior art keywords
command
command execution
time difference
control device
cycle
Prior art date
Application number
PCT/JP2023/000249
Other languages
English (en)
French (fr)
Inventor
勇気 田中
学 佐々本
俊晴 菅原
輝昭 酒田
光太郎 島村
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Publication of WO2023145410A1 publication Critical patent/WO2023145410A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/41Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by interpolation, e.g. the computation of intermediate points between programmed end points to define the path to be followed and the rate of travel along that path
    • G05B19/4103Digital interpolation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]

Definitions

  • the present invention relates to a control device, control system, and control method for equipment used in industry.
  • Patent Document 1 An example of conventional technology for synchronizing multiple devices is described in Patent Document 1.
  • the control system described in Patent Literature 1 performs synchronous control by correcting the phase difference and period difference of timing signals generated by respective control devices that are connected by a communication path and constitute a master unit and a slave unit.
  • Synchronization is necessary between multiple types of equipment, especially when multiple types of equipment are in use, such as equipment of different types or manufactured by different manufacturers.
  • the timing at which the controllers and devices that control the devices execute the received control commands are different from each other. Therefore, even if the same control command is input to the controllers and devices, the command execution timings (command execution timings) are different from each other, causing a deviation in operation. Therefore, in the control of a plurality of devices, it is necessary to absorb the difference in command execution timing and perform the operations in synchronization with each device. For example, by adjusting the period and phase of generating the timing signal of each device and synchronizing the command execution timing of each device, synchronized operations can be executed.
  • An object of the present invention is to provide a device control device, a device control system, and a device control method capable of synchronizing the operations of one or more devices.
  • a device control device comprises a communication unit capable of communicating with one or more devices, a command generation unit generating a command for the device, and transmitting the command from the communication unit to the device.
  • a command execution time difference acquisition unit that acquires a command execution time difference that is the time difference until the device executes the command, and a command execution cycle that is the cycle in which the device executes the command is calculated using the command execution time difference.
  • a cycle calculation unit, a phase calculation unit that calculates a phase that is a reference point of the command execution cycle of the device using the command execution time difference, and the device executes the command from the command execution cycle and the phase.
  • a command correcting unit that calculates a command execution timing, which is the timing at which the command is executed, and obtains the value of the command at the next command execution timing, thereby correcting the command.
  • a device control system is characterized by comprising a control device according to the present invention, and one or more devices controlled by the control device and capable of communicating with the communication unit included in the control device.
  • a device control method is executed by a control device comprising a communication unit capable of communicating with one or more devices, a command generation step of generating a command to the device, and a command generation step of generating the command to the device from the communication unit and a command execution time difference obtaining step for obtaining a command execution time difference, which is the time difference from when the command is transmitted until the device executes the command; a cycle calculation step of calculating a command execution cycle; a phase calculation step of calculating a phase that is a reference point of the command execution cycle of the device using the command execution time difference; and a command correction step of calculating a command execution timing, which is the timing at which the device executes the command, and obtaining the value of the command at the next command execution timing, thereby correcting the command.
  • a device control device capable of synchronizing the operations of one or more devices.
  • FIG. 1 is a functional block diagram of a control device according to Example 1 of the present invention
  • FIG. It is a figure which shows the example of the operation
  • 4 is a diagram showing a time chart showing a command execution cycle T and a phase ⁇ of a robot calculated by a cycle calculator and a phase calculator;
  • FIG. 4 is a time chart showing elements used when calculating command execution time difference ⁇ t, command execution period T, and phase ⁇ ; It is a figure which shows the example of the operation
  • FIG. 5 is a functional block diagram of a control device according to Example 2 of the present invention; It is a functional block diagram of the control device by Example 3 of this invention. It is a functional block diagram of the control device by Example 4 of this invention. It is a functional block diagram of a calculated value updating unit.
  • a plurality of devices can absorb differences in the timing of executing commands, It is possible to synchronously control the operation of a plurality of devices.
  • the operation of the device can be adjusted by correcting the trajectory command taking into account the difference between the timing of sending the command and the timing of executing the command. It is possible to eliminate the deviation of the operation of
  • the operations of the devices can be synchronized and adjusted. It is possible to realize complex production processes and high-precision and high-efficiency production.
  • devices to be controlled include devices such as robots (eg, industrial robots), autonomous vehicles, and belt conveyors.
  • robots eg, industrial robots
  • autonomous vehicles e.g., autonomous vehicles
  • belt conveyors e.g., belt conveyors
  • a plurality of robots are exemplified as devices to be controlled.
  • the present invention can also be applied to the case where there is only one device to be controlled (a robot in the following embodiments).
  • FIG. 1 A device control device, a device control system, and a device control method according to Embodiment 1 of the present invention will be described with reference to FIGS. 1 to 7.
  • FIG. 1 A device control device, a device control system, and a device control method according to Embodiment 1 of the present invention will be described with reference to FIGS. 1 to 7.
  • FIG. 1 A device control device, a device control system, and a device control method according to Embodiment 1 of the present invention will be described with reference to FIGS. 1 to 7.
  • FIG. 1 A device control device, a device control system, and a device control method according to Embodiment 1 of the present invention will be described with reference to FIGS. 1 to 7.
  • FIG. 1 is a functional block diagram of the control device 101 according to this embodiment.
  • the control device 101 mainly includes a command generation unit 102, a command correction unit 103, a cycle calculation unit 104, a phase calculation unit 105, a command execution time difference acquisition unit 106, and communication units 107a to 107a. 107c and controls a plurality of robots 109a-109c via robot controllers 108a-108c.
  • FIG. 1 shows an example in which the control device 101 controls three robots 109a to 109c.
  • the robot controllers 108a to 108c are connected to the control device 101 and to the robots 109a to 109c, respectively, and control the robots 109a to 109c according to commands from the control device 101.
  • Robot controllers 108a-108c transmit commands from control device 101 to robots 109a-109c, respectively.
  • the robots 109a to 109c are devices to be controlled by the control device 101, and periodically execute commands sent from the control device 101 via the robot controllers 108a to 108c, respectively.
  • the robots 109a to 109c drive joints (axes) of the robots 109a to 109c according to commands from the control device 101, respectively.
  • robot 109a, robot 109b, and robot 109c may also be referred to as robot A, robot B, and robot C, respectively.
  • the command generation unit 102 generates commands for the robots 109a to 109c.
  • the command generator 102 generates commands based on actions to be performed by the robots 109a-109c. Actions to be executed by the robots 109a to 109c are, for example, actions instructed by the user, input from the outside, and stored in the control device 101. FIG.
  • the command correction unit 103 corrects the commands generated by the command generation unit 102 according to the cycles and phases of the robots 109a to 109c.
  • the cycles and phases of the robots 109a-109c are the cycles and phases at which the robots 109a-109c respectively execute commands.
  • the cycle calculation unit 104 calculates the command execution cycle T, which is the cycle in which the robots 109a to 109c execute commands.
  • the command execution period T is calculated using the time difference (command execution time difference ⁇ t described later) from when the controller 101 transmits a command to each robot 109a to 109c until each robot 109a to 109c executes the command.
  • the phase calculation unit 105 calculates the phase ⁇ , which is the reference point (start point) of the command execution period T of each of the robots 109a to 109c.
  • a command execution time difference ⁇ t which will be described later, is used to calculate the phase ⁇ .
  • the phase ⁇ defines when the robots 109a-109c start executing commands.
  • the command execution time difference acquisition unit 106 acquires the command execution time difference ⁇ t, which is the time difference from when the control device 101 transmits the command to the robots 109a to 109c until each robot 109a to 109c executes the command.
  • the communication units 107a-107c can communicate with the robots 109a-109c via the robot controllers 108a-108c.
  • the communication units 107a to 107c are connected to the robot controllers 108a to 108c, respectively, and transmit commands to the robots 109a to 109c and receive information from the robots 109a to 109c by communicating with the robot controllers 108a to 108c.
  • the communication units 107a-107c can transmit and receive commands and information to and from arbitrary external devices other than the robots 109a-109c.
  • the number of communication units 107a to 107c is determined according to the number of devices and devices with which the control device 101 communicates. Also, the number of robot controllers 108a to 108c is determined according to the number of robots controlled by the control device 101. FIG.
  • the device control system includes a control device 101, robot controllers 108a to 108c, and robots 109a to 109c.
  • the robots 109a-109c can communicate with the communication units 107a-107c of the control device 101 via the robot controllers 108a-108c, and are controlled by the control device 101.
  • FIG. 2 is a diagram showing an example of the operation flow of the command generation unit 102. As shown in FIG. The operation of the command generator 102 will be described with reference to FIG.
  • the command generation unit 102 selects a robot for which a command (trajectory command) is to be generated and an axis (joint) of the robot.
  • the command generator 102 can select any robot from the robots 109a to 109c, and can select any axis of the selected robot.
  • the target robot robot selected in S201
  • the target robot for which commands are generated will be referred to as a "target robot”.
  • the command generation unit 102 generates a trajectory command for the axis of the selected robot at the current time according to the next motion to be executed by the target robot.
  • the command generation unit 102 confirms whether generation of trajectory commands for all axes of the target robot has been completed. If the trajectory commands have not been generated for all the axes of the target robot, the process of S204 is executed. If the trajectory commands have been generated, the process of S205 is executed.
  • the command generation unit 102 selects the axis of the target robot for which the trajectory command will be generated next. After executing the process of S204, the process returns to S202.
  • the command generation unit 102 confirms whether the generation of trajectory commands for all the robots 109a to 109c has been completed. If the trajectory commands have not been generated for all the robots 109a to 109c, the process of S206 is executed.
  • the command generation unit 102 selects a target robot (next target robot) for which a trajectory command is to be generated next. After executing the process of S206, the process returns to S202.
  • FIG. 3 is a diagram showing an example of the operational flow of the command correction unit 103. As shown in FIG. The operation of command correction unit 103 will be described with reference to FIG.
  • the command correction unit 103 selects a target robot and an axis (joint) of the robot whose command (trajectory command) is to be corrected.
  • the command correction unit 103 can select any robot from the robots 109a to 109c, and can select any axis of the selected robot.
  • the target robot robot selected in S301
  • the target robot whose command is to be corrected will be referred to as a "target robot”.
  • the command correction unit 103 acquires the command execution period T and the phase ⁇ for the target robot.
  • the command execution period T and the phase ⁇ are calculated by the period calculator 104 and the phase calculator 105, respectively.
  • the command correction unit 103 corrects the trajectory command in accordance with the timing (command execution timing) when the target robot executes the command. For example, the command correction unit 103 interpolates the value of the trajectory command for the time, and obtains the value of the trajectory command at the next command execution timing. Then, the command correction unit 103 corrects the trajectory command by setting the obtained value of the trajectory command at the next command execution timing as the trajectory command (trajectory command after correction).
  • the target robot's next command execution timing can be obtained from the target robot's command execution cycle T and phase ⁇ . Therefore, the command correction unit 103 can calculate the next command execution timing when the command execution cycle T, which is the cycle for executing the command, and the phase ⁇ , which is the reference point (start point) for executing the command, are known for the target robot. can be done.
  • the command correction unit 103 confirms whether or not the trajectory command correction has been completed for all axes of the target robot. If the trajectory commands have not been corrected for all the axes of the target robot, the process of S305 is executed. If the correction has been completed, the process of S306 is executed.
  • the command correction unit 103 selects the axis of the target robot whose trajectory command is to be corrected next. After executing the process of S305, the process returns to S303.
  • the command correction unit 103 confirms whether the correction of the trajectory commands for all the robots 109a to 109c has been completed. If the trajectory commands have not been corrected for all the robots 109a to 109c, the process of S307 is executed.
  • the command correction unit 103 selects a robot (next target robot) whose trajectory command is to be corrected next. After executing the process of S307, the process returns to S302.
  • FIG. 4 is a time chart showing the command execution period T and the phase ⁇ of the robots 109a to 109c calculated by the period calculation unit 104 and the phase calculation unit 105.
  • FIG. The command execution period T and the phase ⁇ will be described with reference to FIG.
  • FIG. 4 shows the timing (command transmission timing ts) at which the control device 101 transmits commands to the robots 109a to 109c, and the timing (command execution timing te) at which the robots 109a to 109c (robots A to C) respectively execute commands. is shown.
  • the control device 101 transmits commands to each of the robots 109a to 109c at the same timing (command transmission timing ts).
  • the robot 109a executes the command at the command execution timing teA
  • the robot 109b executes the command at the command execution timing teB
  • the robot 109c executes the command at the command execution timing teC.
  • FIG. 4 shows, as an example, the command execution cycles Tb and Tc of the robots 109b and 109c (robots B and C) and the phases ⁇ a and ⁇ b of the robots 109a and 109b (robots A and B) respectively.
  • the command execution period T is a time interval during which the robots 109a to 109c execute two consecutive commands.
  • the phase ⁇ is the reference point (start point) of the command execution cycle T of the robots 109a-109c.
  • the robots 109a to 109c receive commands from the control device 101 and execute trajectory commands at regular intervals. This fixed period of time (time interval) is the command execution cycle T.
  • T This fixed period of time (time interval) is the command execution cycle T.
  • the command execution timings te may differ from each other. This is because the robots 109a to 109c have different command execution cycles T starting points. The starting point of this command execution cycle T is the phase ⁇ .
  • the command correction unit 103 calculates the next command execution timing te for each of the robots 109a to 109c using the command execution period T and the phase ⁇ , and the trajectory command generated by the command generation unit 102 is calculated next. is corrected to the trajectory command to be executed at the command execution timing te of .
  • the command correction unit 103 can calculate the next command execution timing te from the command execution cycle T, which is the time interval for executing commands, and the phase ⁇ , which is the starting point of the command execution cycle T.
  • the cycle calculation unit 104 and the phase calculation unit 105 acquire the command execution cycle T and the phase ⁇ of each of the robots 109a to 109c (robots A to C) during the calibration period of the control device 101.
  • the command correction unit 103 corrects the commands generated by the command generation unit 102 during the robot control period in which the control device 101 controls the robots 109a to 109c.
  • FIG. 5 is a diagram showing an example of the trajectory command corrected by the command correction unit 103 and the trajectory command corrected by the command correction unit 103.
  • FIG. Processing for correcting a command by the command correction unit 103 will be described with reference to FIG.
  • the command correction unit 103 corrects the command in accordance with the next command execution timing of the target robot in the process of S303 in FIG.
  • the table on the left in FIG. 5 shows an example of the trajectory command corrected by the command correction unit 103.
  • This trajectory command is a command generated by the command generation unit 102, and is represented by, for example, a value indicating the position of the axis with respect to time (time from the reference time t0).
  • FIG. 5 shows angular positions (angles from a predetermined reference position) at respective times for axis 1 and axis 2 of robot 109a (robot A) and axis 10 of robot 109c (robot C). showing.
  • the table on the left in FIG. 5 shows an example of trajectory commands in which axis 1 of robot A is at a position of 20 degrees at time 10 ms and at a position of 10 degrees at time 20 ms.
  • the table on the right in FIG. 5 shows an example of the trajectory command corrected by the command correction unit 103.
  • FIG. 5 shows the angular positions of the axes 1, 2, and 10 of the robot A at time 12 ms.
  • the table on the right of FIG. 5 shows an example of trajectory commands corrected such that axis 1 of robot A is at a position of 18 degrees at time 12 ms.
  • the command correction unit 103 corrects the command generated by the command generation unit 102 by, for example, interpolating the value of the command generated by the command generation unit 102 with respect to time.
  • the command correction unit 103 uses the command execution period T and the phase ⁇ to calculate the next command execution timing te as described above.
  • Command correction unit 103 interpolates commands at any two times (time 10 ms and 20 ms in the example of FIG. In the example of , it is possible to decide whether to obtain the command (angular position) at time 12 ms). That is, the command correction unit 103 derives the command execution timing te of the command for the next operation to be executed using the command execution period T and the phase ⁇ , and determines which two times the command is executed from the command execution timing te. The command is corrected by interpolating the time between the two time commands thus obtained.
  • the command correction unit 103 can correct the command by interpolating the value of the command with respect to time using any interpolation method such as linear interpolation or spline interpolation, and obtain the corrected command.
  • the robots 109a to 109c have the same command transmission timing ts, but different command execution timings teA to teC. In the robots 109a-109c, it is generally difficult to synchronize (match) the command execution timings teA-teC.
  • the operations of the robots 109a to 109c are synchronized instead of synchronizing the command execution timings teA to teC. Therefore, the robots 109a to 109c can execute the motions that match each other even if the command execution timings teA to teC are different from each other, and the motions can be synchronized. Since this command correction is based on the command execution timings teA-teC of the robots 109a-109c, the differences in the command execution timings teA-teC of the robots 109a-109c are considered. It is a correction that can synchronize the actions.
  • FIG. 6 is a time chart showing elements used when calculating the command execution time difference ⁇ t, the command execution cycle T, and the phase ⁇ .
  • a method of calculating the command execution time difference ⁇ t, the command execution period T, and the phase ⁇ will be described with reference to FIG.
  • Command execution time difference ⁇ t is calculated by command execution time difference acquisition section 106
  • command execution period T is calculated by period calculation section 104
  • phase ⁇ is calculated by phase calculation section 105 .
  • FIG. 6 shows, as an example, the command execution period Ta, the phase ⁇ a, the command execution timing teA, and the command execution time difference ⁇ tA for the robot 109a (robot A).
  • the controller 101 periodically sends commands to the robots 109a-109c.
  • the time difference from when the control device 101 transmits the command for the first time until the robots 109a to 109c execute the command is represented as a command execution time difference ⁇ t_1, and the time difference between when the control device 101 transmits the command for the second time and on the robots 109a to 109c.
  • a command execution time difference ⁇ t_2 is the time difference until the command is executed.
  • the command execution time difference ⁇ t_1 and command execution time difference ⁇ t_2 for the robot 109a are represented as command execution time difference ⁇ tA_1 and command execution time difference ⁇ tA_2, respectively.
  • FIG. 6 shows the period (command_period) in which the control device 101 transmits commands to the robots 109a to 109c, and the difference between the arbitrarily predetermined reference time t0 and the command transmission timing ts of the control device 101 ( command transmission time difference (command_diff).
  • the period calculation unit 104 calculates the command execution period T of each of the robots 109a to 109c according to the following equation (1) using, for example, the command transmission period command_period, the command execution time difference ⁇ t_1, and the command execution time difference ⁇ t_2.
  • Command execution period T command_period - ( ⁇ t_1% (command_period x ( ⁇ t_1/command_period))) + ⁇ t_2 (1)
  • the expression (1) is an example when variables are represented by integers (when operations are performed using integer type variables), and the operator "/" represents a division that truncates the quotient after the decimal point, and the operator " %” represents an operation to find the remainder of division.
  • Equation (1) is constructed taking into account the case where the command execution period T differs by at least twice the command transmission period command_period used for sampling, and the remainder obtained by dividing the command execution time difference ⁇ t_1 by the command transmission period command_period is used to there is Note that the control device 101 transmits the second command according to the command execution cycle T after the command execution timing te is returned.
  • expression (1) if the denominator value of the calculation represented by the operators "/" and "%" is 0, in order to avoid the occurrence of an error, this calculation should be deleted or the denominator should be Calculate with the formula in which the value of is replaced with 1.
  • the phase calculation unit 105 calculates the phase ⁇ of each of the robots 109a to 109c according to the following equation (2) using, for example, the command transmission time difference command_diff, the command execution time difference ⁇ t_1, and the command execution cycle T.
  • Equation (2) is an example in which variables are represented by integers, as in Equation (1), and the operator "%" represents an operation for obtaining the remainder of division.
  • the phase ⁇ is calculated using the command execution cycle T.
  • the phase calculator 105 may input the command execution period T calculated by the period calculator 104 to calculate the phase ⁇ .
  • equation (2) if the denominator value of the calculation represented by the operator "%" is 0, the calculation is performed by deleting this calculation or replacing the denominator value with 1.
  • the corrected trajectory command (trajectory command at time 12 ms) shown in the right table of FIG. 5 is an example when command_diff is 0 ms and command_period is 10 ms. is the sum of the phase ⁇ (4 ms) and the command execution period T (8 ms). That is, the command execution timing te after 10 ms is 12 ms. Therefore, the next command execution timing te is the timing (12 ms) 2 ms after the timing (10 ms) at which the controller 101 transmits the command to the robot 109a (robot A).
  • FIG. 7 is a diagram showing an example of the operational flow of the communication units 107a to 107c shown in FIG. Operations of the communication units 107a to 107c will be described with reference to FIG.
  • the communication units 107a to 107c can communicate with the robots 109a to 109c via the robot controllers 108a to 108c. It has a function of receiving information such as the responses of the robots 109a-109c from the robot controllers 108a-108c.
  • the communication units 107a to 107c determine whether or not the communication is transmission of a command from the control device 101. If it is a command transmission, the process of S702 is executed. When receiving a response instead of sending a command, the process of S704 is executed.
  • the communication units 107a to 107c generate packets based on the command to be transmitted.
  • the communication units 107a to 107c transmit the packets generated at S702.
  • the communication units 107a-107c acquire packets received from the robots 109a-109c via the robot controllers 108a-108c.
  • the communication units 107a to 107c analyze the packets acquired in S704 and output the information obtained by analyzing the packets to the instruction execution time difference acquisition unit .
  • the command execution time difference obtaining unit 106 can obtain the command execution time difference ⁇ t using the information obtained by the communication units 107a to 107c from the robots 109a to 109c.
  • the command execution time difference acquisition unit 106 can obtain the time (time) at which the robots 109a to 109c executed the command by any method such as the method described below.
  • the time at which the robots 109a-109c executed the commands can be obtained, for example, by obtaining messages from the robots 109a-109c without the robots 109a-109c acting.
  • This method is performed when the communication units 107a to 107c transmit commands to the robots 109a to 109c and receive responses (messages) indicating that the robots 109a to 109c have recognized the commands during the calibration period of the control device 101. is regarded as the time when the robots 109a to 109c executed the commands.
  • the robots 109a to 109c receive commands from the communication units 107a to 107c, the robots 109a to 109c transmit responses (messages) indicating recognition of the commands to the communication units 107a to 107c.
  • the time at which the robots 109a to 109c executed the commands can be obtained, for example, by a method in which the robots 109a to 109c return a message about the current situation before they operate.
  • the robots 109a to 109c before the robots 109a to 109c execute an action, arbitrary information such as information that the action will be executed and the current time are transmitted as the current situation, and the communication units 107a to 107c transmit such information.
  • the robots 109a to 109c regard the time when the message containing the command is received as the time when the robot 109a-109c executes the command.
  • the time at which the robots 109a to 109c executed the commands can be determined by, for example, a method in which the robot controllers 108a to 108c store the time difference from when the robots 109a to 109c receive the commands to when the commands are executed, or a method in which the robots 109a to 109c It is also possible to find the time at which the robot controllers 108a to 108c record the time when 109c executes the command.
  • the command execution time difference acquisition unit 106 acquires the time differences saved by the robot controllers 108a to 108c and command execution times recorded by the robot controllers 108a to 108c, thereby obtaining the times when the robots 109a to 109c executed commands. can.
  • the command correction unit 103 may calculate the command execution timing te after one command execution cycle T, or may calculate the command execution timing te after a plurality of command execution cycles T. That is, the command correction unit 103 calculates the command execution timing te after one or more command execution cycles T, and corrects the command by obtaining the value of the command at the calculated command execution timing te. can be done. It is preferable that the robot controllers 108a to 108c have buffers capable of storing a plurality of commands so that commands can be received at a plurality of command execution timings te.
  • control device 101 absorbs the difference in command execution timing te between the robots 109a to 109c with respect to the plurality of robots 109a to 109c having different command execution timings te.
  • the motion of each robot 109a-109c can be synchronized.
  • control device 101 can also be applied when there is only one robot to be controlled.
  • the difference between the ideal motion and the actual motion can be corrected by correcting the trajectory command in consideration of the command execution time difference ⁇ t, which is the difference between the command transmission timing ts and the command execution timing te. can be eliminated.
  • a control device 101 according to Embodiment 2 of the present invention will be described with reference to FIG.
  • FIG. 8 is a functional block diagram of the control device 101 according to this embodiment.
  • the control device 101 according to the present embodiment has the same configuration as the control device 101 (FIG. 1) according to the first embodiment, but is different from the control device 101 according to the first embodiment in that it includes a sensor communication unit 802 and a sensor value analysis unit 803. different.
  • the control device 101 according to the present embodiment will be mainly described in terms of differences from the control device 101 according to the first embodiment.
  • the robots 109a to 109c which are devices to be controlled by the control device 101, are provided with sensors 801.
  • the sensors 801 are installed on each axis of the robots 109a-109c, and can consist of any sensor that records the movement of each axis.
  • the sensor communication unit 802 is connected to the sensors 801 provided in the robots 109a to 109c.
  • a sensor communication unit 802 communicates with the sensor 801 and acquires sensor values recorded by the sensor 801 .
  • the sensor value analysis unit 803 obtains sensor values from the sensor communication unit 802, analyzes and obtains the time (time) when each robot 109a to 109c executes the command from the sensor value, and calculates the obtained time as the command execution time difference. Output to acquisition unit 106 .
  • the sensor value analysis unit 803 obtains the time when the axes of the robots 109a to 109c move from the sensor values, and uses this time as the time when the robots 109a to 109c executed the commands.
  • the control device 101 allows the robots 109a to 109c to more accurately execute commands even when the robots 109a to 109c do not return the command execution times or when the methods for obtaining the command execution times differ depending on the robots 109a to 109c. You can get the time (time) when the robots 109a to 109c do not return the command execution times or when the methods for obtaining the command execution times differ depending on the robots 109a to 109c. You can get the time (time) when
  • a control device 101 according to Embodiment 3 of the present invention will be described with reference to FIG.
  • FIG. 9 is a functional block diagram of the control device 101 according to this embodiment.
  • the control device 101 according to the present embodiment has the same configuration as the control device 101 (FIG. 1) according to the first embodiment, but differs from the control device 101 according to the first embodiment in that it includes a camera communication unit 902 and an image analysis unit 903. .
  • the control device 101 according to the present embodiment will be mainly described in terms of differences from the control device 101 according to the first embodiment.
  • the robots 109a to 109c which are devices to be controlled by the control device 101, are photographed by the camera 901.
  • a camera 901 is installed to photograph the robots 109a-109c.
  • the camera 901 can consist of any camera that records the motion of each axis of the robot 109a-109c, eg, a high frame rate camera such as 1000 fps.
  • a device control system according to this embodiment may comprise a camera 901 .
  • a camera communication unit 902 is connected to the camera 901 .
  • a camera communication unit 902 communicates with the camera 901 and acquires information on the image captured by the camera 901 .
  • the image analysis unit 903 acquires image information from the camera communication unit 902, analyzes and obtains the time (time) when each robot 109a to 109c executes the command from this image information, and calculates the command execution time difference. Output to acquisition unit 106 .
  • the image analysis unit 903 can obtain the time when the axes of the robots 109a to 109c move from the image information, and use this time as the time when the robots 109a to 109c executed the commands.
  • the control device 101 allows the robots 109a to 109c to more accurately execute commands even when the robots 109a to 109c do not return the command execution times or when the methods for obtaining the command execution times differ depending on the robots 109a to 109c. You can get the time (time) when Moreover, since there is no need to attach sensors to the robots 109a to 109c in order to obtain the times when the axes move, the robots 109a to 109c can be easily replaced or repaired.
  • a control device 101 according to Embodiment 4 of the present invention will be described with reference to FIGS.
  • FIG. 10 is a functional block diagram of the control device 101 according to this embodiment.
  • the control device 101 according to the present embodiment has the same configuration as the control device 101 ( FIG. 1 ) according to the first embodiment, but differs from the control device 101 according to the first embodiment in that it includes a calculated value updating unit 1001 .
  • the control device 101 according to the present embodiment will be mainly described in terms of differences from the control device 101 according to the first embodiment.
  • FIG. 11 is a functional block diagram of the calculated value updating unit 1001.
  • FIG. Calculated value updating section 1001 includes period holding section 1101 , phase holding section 1102 , counter 1103 , and median value calculating section 1104 .
  • the period holding unit 1101 holds the command execution period T of each of the robots 109a to 109c calculated by the period calculating unit 104.
  • the cycle calculation unit 104 calculates the command execution cycle T each time the control device 101 transmits a command.
  • the cycle holding unit 1101 holds the command execution cycles T calculated multiple times by the cycle calculation unit 104 in this manner, that is, multiple command execution cycles T.
  • the phase holding unit 1102 holds the phase ⁇ of each of the robots 109a to 109c calculated by the phase calculating unit 105.
  • Phase calculator 105 calculates phase ⁇ each time controller 101 transmits a command.
  • the phase holding unit 1102 holds the phase ⁇ calculated multiple times by the phase calculating unit 105 in this way, that is, holds a plurality of phases ⁇ .
  • the counter 1103 records the number of times the cycle calculation unit 104 calculates the command execution cycle T and the number of times the phase calculation unit 105 calculates the phase ⁇ . That is, the counter 1103 records the number of command execution cycles T held by the cycle holding unit 1101 and the number of phases ⁇ held by the phase holding unit 1102 .
  • the counter 1103 calculates the median value of notification to that effect. Clear the command execution period T and the number of phases ⁇ that have been sent to the unit 1104 and recorded.
  • the counter 1103 notifies the median calculation unit 1104 of the above every time the command execution cycle T and the number of phases ⁇ reach a certain number of times, that is, each time the control device 101 communicates with the robots 109a to 109c a certain number of times. Send.
  • the median value calculation unit 1104 calculates the median value of the command execution period T and the phase ⁇ . That is, upon receiving the notification from the counter 1103, the median calculation unit 1104 receives from the period holding unit 1101 a plurality of command execution periods T held by the period holding unit 1101, and also receives a plurality of phases ⁇ held by the phase holding unit 1102. is received from the phase holding unit 1102, and the median value of a plurality of command execution cycles T and the median value of a plurality of phases ⁇ are calculated. Median value calculation section 1104 outputs the calculated median value of command execution period T and the median value of phase ⁇ to command correction portion 103 .
  • the median value calculation unit 1104 may calculate the median value of either one of the command execution period T and the phase ⁇ , instead of the median value of both, and output it to the command correction unit 103 .
  • Median value calculation section 1104 may calculate an average value of command execution period T and phase ⁇ instead of the median value of command execution period T and phase ⁇ , and output to command correction section 103 .
  • the calculated value update unit 1001 updates the median value (or the average value) of the command execution period T and the phase ⁇ each time the control device 101 communicates with the robots 109a to 109c a predetermined number of times. ) is calculated.
  • the command correction unit 103 corrects the command generated by the command generation unit 102 using the command execution period T and the phase ⁇ received from the calculated value update unit 1001 . That is, every time the control device 101 communicates with the robots 109a to 109c a predetermined number of times, the command correction unit 103 updates the command execution cycle T and the phase ⁇ used for correction, thereby periodically adjusting the command correction value. updated accordingly.
  • control device 101 updates the correction of the command every predetermined number of times of communication. Also, the robots 109a to 109c can continuously perform ideal motions.
  • the present invention is not limited to the above embodiments, and various modifications are possible.
  • the above embodiments have been described in detail in order to facilitate understanding of the present invention, and the present invention is not necessarily limited to aspects having all the described configurations.
  • part of the configuration of one embodiment can be replaced with the configuration of another embodiment.
  • add the configuration of another embodiment to the configuration of one embodiment.
  • Reference numerals 101 control device, 102: command generation unit, 103: command correction unit, 104: period calculation unit, 105: phase calculation unit, 106: command execution time difference acquisition unit, 107a to 107c: communication unit, 108a to 108c: robot controller , 109a to 109c... Robot 801... Sensor 802... Sensor communication unit 803... Sensor value analysis unit 901... Camera 902... Camera communication unit 903... Image analysis unit 1001... Calculated value update unit 1101...
  • Cycle holding unit 1102 phase holding unit 1103 counter 1104 median calculation unit t0 reference time ts command transmission timing te, teA to teC command execution timing T, Ta, Tb, Tc command Execution period, ⁇ t, ⁇ t_1, ⁇ t_2, ⁇ tA, ⁇ tA_1, ⁇ tA_2, ⁇ tB, ⁇ tC... Command execution time difference, ⁇ , ⁇ a, ⁇ b... Phase, command_period... Command transmission period, command_diff... Command transmission time difference.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Manufacturing & Machinery (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Manipulator (AREA)
  • Programmable Controllers (AREA)

Abstract

本発明は、1つ以上の機器の動作を同期させることができる、機器の制御装置を提供する。本発明による制御装置は、機器(109a)と通信可能な通信部(107a)と、機器(109a)に対する指令を生成する指令生成部(102)と、通信部(107a)から機器(109a)へ指令を送信してから機器(109a)が指令を実行するまでの時間差である指令実行時間差Δtを取得する指令実行時間差取得部(106)と、指令実行時間差Δtを用いて、機器(109a)が指令を実行する周期である指令実行周期Tを算出する周期計算部(104)と、指令実行時間差Δtを用いて、機器(109a)の指令実行周期Tの基準点である位相αを算出する位相計算部(105)と、指令実行周期Tと位相αから、機器(109a)が指令を実行するタイミングである指令実行タイミングteを算出し、次の指令実行タイミングteでの指令の値を求めることで、指令を補正する指令補正部(103)とを備える。

Description

機器の制御装置、制御システム、及び制御方法
 本発明は、産業に用いられる機器の制御装置、制御システム、及び制御方法に関する。
 各業界で顧客要求が多様化し、製造業においては開発サイクルの短期化とともに、大量生産や複雑な製品製造への対応が急務となっている。このため、産業用ロボットなどの機器の制御においては、生産性向上のために、同時に多数の機器を制御することが求められている。同時に複数の機器を制御する際には、制御対象である機器間での同期が必要である。例えば、複数のロボットで1つの製品を作るためには、各ロボットが動作タイミングを高精度に合わせる必要がある。
 複数の機器を同期させる従来の技術の例は、特許文献1に記載されている。特許文献1に記載された制御システムは、通信路で接続されマスタユニットとスレーブユニットを構成する各制御装置で生成するタイミング信号の位相差及び周期差を補正し、同期制御を行う。
特開2007-219642号公報
 上述したように、産業用ロボットなどの複数の機器を制御する際には、複数の機器間で同期した制御が必要である。特に、異なる型の機器や異なるメーカで製造された機器などの、複数種類の機器が用いられている場合には、このような複数の機器間で同期が必要である。
 複数の機器の制御において、機器を制御するコントローラや機器のそれぞれが、受信した制御指令を実行するタイミングは、互いに異なっている。このため、コントローラや機器は、同じ制御指令を入力しても、指令を実行するタイミング(指令実行タイミング)が互いに異なり、動作にずれが生じる。そこで、複数の機器の制御においては、指令実行タイミングの差を吸収して、各機器で同期した動作を実行させる制御が必要である。例えば、機器のタイミング信号を発生する周期と位相を調整して、各機器で指令実行タイミングを同期させることで、同期した動作を実行させることができる。
 しかし、例えば互いに異なるメーカの機器などの複数種類の機器を制御する場合には、必ずしも全ての機器とコントローラのタイミング信号や指令実行タイミングを期待通りに調整できるわけではない。このため、特許文献1に記載された技術などの従来の技術では、内部動作や設定の変更が容易に行えないこのような機器が制御対象として存在していると、機器間で同期した動作を実行させることが困難である。
 本発明の目的は、1つ以上の機器の動作を同期させることができる、機器の制御装置、機器の制御システム、及び機器の制御方法を提供することである。
 本発明による、機器の制御装置は、1つ以上の機器と通信可能な通信部と、前記機器に対する指令を生成する指令生成部と、前記通信部から前記機器へ前記指令を送信してから前記機器が前記指令を実行するまでの時間差である指令実行時間差を取得する指令実行時間差取得部と、前記指令実行時間差を用いて、前記機器が前記指令を実行する周期である指令実行周期を算出する周期計算部と、前記指令実行時間差を用いて、前記機器の前記指令実行周期の基準点である位相を算出する位相計算部と、前記指令実行周期と前記位相から、前記機器が前記指令を実行するタイミングである指令実行タイミングを算出し、次の前記指令実行タイミングでの指令の値を求めることで、前記指令を補正する指令補正部とを備える。
 本発明による、機器の制御システムは、本発明による制御装置と、前記制御装置に制御され、前記制御装置が備える前記通信部と通信可能な1つ以上の機器とを備えることを特徴とする。
 本発明による、機器の制御方法は、1つ以上の機器と通信可能な通信部を備える制御装置に実行され、前記機器に対する指令を生成する指令生成ステップと、前記通信部から前記機器へ前記指令を送信してから前記機器が前記指令を実行するまでの時間差である指令実行時間差を取得する指令実行時間差取得ステップと、前記指令実行時間差を用いて、前記機器が前記指令を実行する周期である指令実行周期を算出する周期計算ステップと、前記指令実行時間差を用いて、前記機器の前記指令実行周期の基準点である位相を算出する位相計算ステップと、前記指令実行周期と前記位相から、前記機器が前記指令を実行するタイミングである指令実行タイミングを算出し、次の前記指令実行タイミングでの指令の値を求めることで、前記指令を補正する指令補正ステップとを有する。
 本発明によると、1つ以上の機器の動作を同期させることができる、機器の制御装置、機器の制御システム、及び機器の制御方法を提供することができる。
本発明の実施例1による制御装置の機能ブロック図である。 指令生成部の動作フローの例を示す図である。 指令補正部の動作フローの例を示す図である。 周期計算部と位相計算部が計算するロボットの指令実行周期Tと位相αを示すタイムチャートを示す図である。 指令補正部により補正される軌道指令と、指令補正部が補正した軌道指令の一例を示す図である。 指令実行時間差Δtと指令実行周期Tと位相αを計算する際に用いる要素を示すタイムチャートを示す図である。 通信部の動作フローの例を示す図である。 本発明の実施例2による制御装置の機能ブロック図である。 本発明の実施例3による制御装置の機能ブロック図である。 本発明の実施例4による制御装置の機能ブロック図である。 算出値更新部の機能ブロック図である。
 本発明による、機器の制御装置、制御システム、及び制御方法では、複数の機器(例えば、型や製造メーカが互いに異なる複数種類の機器)が指令を実行するタイミングの差異を吸収することができ、複数の機器の動作を同期して制御することができる。また、制御対象の機器が1台の場合では、指令を送信するタイミングと指令を実行するタイミングの差を加味して軌道指令を補正することにより機器の動作を調整して、理想の動作と実際の動作の乖離を無くすことができる。
 本発明によると、例えば1つ以上の機器を制御する生産ラインや産業システムにおいて、内部動作や設定を変更できず調整が困難な機器が存在していても、機器の動作を同期させたり調整したりすることができ、複雑な生産工程や、高精度かつ高効率な生産を実現させることができる。
 以下、本発明の実施例による、機器の制御装置、機器の制御システム、及び機器の制御方法を、図面を用いて説明する。本発明において、制御対象の機器には、ロボット(例えば、産業用ロボット)、自律走行車両、及びベルトコンベアなどの装置が含まれる。以下の実施例では、制御対象の機器として、複数のロボットを例示する。但し、本発明は、制御対象の機器(以下の実施例ではロボット)が1つの場合にも適用することができる。
 なお、本明細書で用いる図面において、同一のまたは対応する構成要素には同一の符号を付け、これらの構成要素については繰り返しの説明を省略する場合がある。
 本発明の実施例1による、機器の制御装置、機器の制御システム、及び機器の制御方法を、図1から図7を参照して説明する。
 図1は、本実施例による制御装置101の機能ブロック図である。本実施例による制御装置101は、主要な構成として、指令生成部102と、指令補正部103と、周期計算部104と、位相計算部105と、指令実行時間差取得部106と、通信部107a~107cを備え、ロボットコントローラ108a~108cを介して複数のロボット109a~109cを制御する。図1には、一例として、制御装置101が、3台のロボット109a~109cを制御する例を示している。
 ロボットコントローラ108a~108cは、制御装置101に接続されるとともに、それぞれロボット109a~109cに接続され、制御装置101からの指令に従ってロボット109a~109cを制御する。ロボットコントローラ108a~108cは、制御装置101からの指令を、それぞれロボット109a~109cに送信する。
 ロボット109a~109cは、制御装置101の制御対象の機器であり、それぞれロボットコントローラ108a~108cを介して制御装置101から送信された指令を周期的に実行する。例えば、ロボット109a~109cは、制御装置101からの指令に従って、それぞれロボット109a~109cが備える関節(軸)を駆動させる。なお、以下の説明では、ロボット109a、ロボット109b、及びロボット109cを、それぞれロボットA、ロボットB、及びロボットCと呼ぶこともある。
 指令生成部102は、ロボット109a~109cに対する指令を生成する。指令生成部102は、ロボット109a~109cが実行すべき動作に基づいて、指令を生成する。ロボット109a~109cが実行すべき動作は、例えば、ユーザに指示された動作であり、外部から入力され、制御装置101に保存されている。
 指令補正部103は、指令生成部102が生成した指令を、ロボット109a~109cの周期と位相に応じて補正する。ロボット109a~109cの周期と位相とは、ロボット109a~109cがそれぞれ指令を実行する周期と位相のことである。
 周期計算部104は、各ロボット109a~109cが指令を実行する周期である指令実行周期Tを算出する。指令実行周期Tの算出には、制御装置101が各ロボット109a~109cへ指令を送信してから各ロボット109a~109cが指令を実行するまでの時間差(後述する指令実行時間差Δt)を用いる。
 位相計算部105は、各ロボット109a~109cの指令実行周期Tの基準点(始点)である位相αを算出する。位相αの算出には、後述する指令実行時間差Δtを用いる。位相αは、ロボット109a~109cが指令を実行する開始時点を定める。
 指令実行時間差取得部106は、制御装置101がロボット109a~109cへ指令を送信してから各ロボット109a~109cが指令を実行するまでの時間差である指令実行時間差Δtを取得する。
 通信部107a~107cは、ロボットコントローラ108a~108cを介してロボット109a~109cと通信可能である。通信部107a~107cは、それぞれロボットコントローラ108a~108cに接続され、ロボットコントローラ108a~108cと通信することで、ロボット109a~109cへ指令を送信したり、ロボット109a~109cから情報を受信したりする。通信部107a~107cは、ロボット109a~109c以外の任意の外部装置に対しても、指令や情報を送受信することができる。
 通信部107a~107cの数は、制御装置101が通信する機器や装置の数に応じて定められる。また、ロボットコントローラ108a~108cの数は、制御装置101が制御するロボットの数に応じて定められる。
 本実施例による、機器の制御システムは、制御装置101と、ロボットコントローラ108a~108cと、ロボット109a~109cを備える。ロボット109a~109cは、ロボットコントローラ108a~108cを介して、制御装置101の通信部107a~107cと通信可能であり、制御装置101に制御される。
 図2は、指令生成部102の動作フローの例を示す図である。図2を用いて、指令生成部102の動作を説明する。
 S201で、指令生成部102は、指令(軌道指令)を生成する対象のロボットとロボットの軸(関節)を選択する。指令生成部102は、ロボット109a~109cのうち、任意のロボットを選択することができ、選択したロボットの任意の軸を選択することができる。以下では、指令を生成する対象のロボット(S201で選択したロボット)を「対象ロボット」と呼ぶ。
 S202で、指令生成部102は、選択したロボットの軸について、対象ロボットの次に実行すべき動作に従い、現在時刻における軸の軌道指令を生成する。
 S203で、指令生成部102は、対象ロボットの全ての軸について、軌道指令の生成が完了したか確認する。対象ロボットの全ての軸について軌道指令の生成が完了していない場合には、S204の処理を実行し、完了している場合には、S205の処理を実行する。
 S204で、指令生成部102は、対象ロボットの、次に軌道指令を生成する軸を選択する。S204の処理を実行したら、S202の処理に戻る。
 S205で、指令生成部102は、全てのロボット109a~109cについて、軌道指令の生成が完了したか確認する。全てのロボット109a~109cについて、軌道指令の生成が完了していない場合には、S206の処理を実行する。
 S206で、指令生成部102は、次に軌道指令を生成する対象のロボット(次の対象ロボット)を選択する。S206の処理を実行したら、S202の処理に戻る。
 S205で、指令生成部102は、全てのロボット109a~109cについて軌道指令の生成が完了していると判断した場合には、動作を終了する。
 図3は、指令補正部103の動作フローの例を示す図である。図3を用いて、指令補正部103の動作を説明する。
 S301で、指令補正部103は、指令(軌道指令)を補正する対象のロボットとロボットの軸(関節)を選択する。指令補正部103は、ロボット109a~109cのうち、任意のロボットを選択することができ、選択したロボットの任意の軸を選択することができる。以下では、指令を補正する対象のロボット(S301で選択したロボット)を「対象ロボット」と呼ぶ。
 S302で、指令補正部103は、対象ロボットについて指令実行周期Tと位相αを取得する。指令実行周期Tと位相αは、それぞれ周期計算部104と位相計算部105が算出する。
 S303で、指令補正部103は、対象ロボットが指令を実行するタイミング(指令実行タイミング)に合わせて軌道指令を補正する。指令補正部103は、例えば、時刻についての軌道指令の値を時刻について補間して、次の指令実行タイミングでの軌道指令の値を求める。そして、指令補正部103は、求めた、次の指令実行タイミングでの軌道指令の値を軌道指令(補正後の軌道指令)とすることで、軌道指令を補正する。
 対象ロボットの次の指令実行タイミングは、対象ロボットの指令実行周期Tと位相αから求めることができる。従って、指令補正部103は、対象ロボットについて、指令を実行する周期である指令実行周期Tと指令を実行する基準点(始点)である位相αがわかると、次の指令実行タイミングを算出することができる。
 S304で、指令補正部103は、対象ロボットの全ての軸について、軌道指令の補正が完了したか確認する。対象ロボットの全ての軸について軌道指令の補正が完了していない場合には、S305の処理を実行し、完了している場合には、S306の処理を実行する。
 S305で、指令補正部103は、対象ロボットの、次に軌道指令を補正する軸を選択する。S305の処理を実行したら、S303の処理に戻る。
 S306で、指令補正部103は、全てのロボット109a~109cについて、軌道指令の補正が完了したか確認する。全てのロボット109a~109cについて、軌道指令の補正が完了していない場合には、S307の処理を実行する。
 S307で、指令補正部103は、次に軌道指令を補正するロボット(次の対象ロボット)を選択する。S307の処理を実行したら、S302の処理に戻る。
 S306で、指令補正部103は、全てのロボット109a~109cについて軌道指令の補正が完了していると判断した場合には、動作を終了する。
 図4は、周期計算部104と位相計算部105が計算するロボット109a~109cの指令実行周期Tと位相αを示すタイムチャートを示す図である。図4を用いて、指令実行周期Tと位相αについて説明する。
 図4には、制御装置101がロボット109a~109cに指令を送信するタイミング(指令送信タイミングts)と、ロボット109a~109c(ロボットA~C)がそれぞれ指令を実行するタイミング(指令実行タイミングte)を示している。制御装置101は、ロボット109a~109cのそれぞれに同じタイミング(指令送信タイミングts)で指令を送信する。ロボット109aは、指令実行タイミングteAで指令を実行し、ロボット109bは、指令実行タイミングteBで指令を実行し、ロボット109cは、指令実行タイミングteCで指令を実行する。
 通信部107a~107cからロボット109a~109cへ指令を送信してから、すなわち制御装置101が指令を送信してから、ロボット109a~109cがそれぞれ指令を実行するまでの時間差(te-ts)を、指令実行時間差Δtと呼ぶ。図4では、ロボット109aの指令実行時間差ΔtをΔtA(=teA-ts)で示し、ロボット109bの指令実行時間差ΔtをΔtB(=teB-ts)で示し、ロボット109cの指令実行時間差ΔtをΔtC(=teC-ts)で示している。
 図4には、一例として、ロボット109b、109c(ロボットB、C)のそれぞれの指令実行周期Tb、Tcと、ロボット109a、109b(ロボットA、B)のそれぞれの位相αa、αbを示している。指令実行周期Tは、ロボット109a~109cが連続する2つの指令を実行する時間間隔である。位相αは、ロボット109a~109cの指令実行周期Tの基準点(始点)である。
 図4に示すように、制御装置101がロボット109a~109cのそれぞれに同じタイミング(指令送信タイミングts)で軌道指令を送信しても、ロボット109a~109cは、受信した指令を実行するタイミング(指令実行タイミングteA~teC)が互いに異なっている。
 ロボット109a~109cは、制御装置101からの指令を受信し、一定時間ごとに軌道指令を実行する。この一定時間(時間間隔)が指令実行周期Tである。
 また、ロボット109a~109cは、指令実行周期Tが互いに同じでも、指令実行タイミングteが互いに異なっていることがある。これは、ロボット109a~109cにおいて、それぞれの指令実行周期Tの始点が互いに異なっているためである。この指令実行周期Tの始点が位相αである。
 指令補正部103は、ロボット109a~109cのそれぞれに対して、指令実行周期Tと位相αを用いて次の指令実行タイミングteを算出し、指令生成部102が生成した軌道指令を、算出した次の指令実行タイミングteにおいて実行すべき軌道指令に補正する。指令補正部103は、指令を実行する時間間隔である指令実行周期Tと、指令実行周期Tの始点である位相αとから、次の指令実行タイミングteを算出することができる。
 なお、周期計算部104と位相計算部105は、制御装置101のキャリブレーションの期間で、各ロボット109a~109c(ロボットA~C)の指令実行周期Tと位相αを取得する。指令補正部103は、制御装置101がロボット109a~109cを制御するロボット制御の期間で、指令生成部102が生成した指令を補正する。
 図5は、指令補正部103により補正される軌道指令と、指令補正部103が補正した軌道指令の一例を示す図である。図5を用いて、指令補正部103が指令を補正する処理を説明する。指令補正部103は、図3のS303の処理で、対象ロボットの次の指令実行タイミングに合わせて、指令を補正する。
 図5の左の表は、指令補正部103により補正される軌道指令の例を示している。この軌道指令は、指令生成部102が生成した指令であり、例えば、時刻(基準時刻t0からの時刻)についての軸の位置を示す値で表される。図5には、一例として、ロボット109a(ロボットA)の軸1と軸2と、ロボット109c(ロボットC)の軸10について、それぞれの時刻における角度位置(予め定めた基準位置からの角度)を示している。例えば、ロボットAの軸1は、時刻10msでは20度の位置にあり、時刻20msでは10度の位置にあるという軌道指令の例を、図5の左の表に示している。
 図5の右の表は、指令補正部103が補正した軌道指令の例を示している。図5には、一例として、ロボットAの軸1と軸2と軸10について、時刻12msにおける角度位置を示している。例えば、ロボットAの軸1は、時刻12msでは18度の位置にあるというように補正された軌道指令の例を、図5の右の表に示している。なお、時刻12msは、次の指令実行タイミングteの例であり、例えば、位相αが基準時刻t0から4msであり、指令実行周期Tが8msである場合に、位相αと指令実行周期Tの和(=4ms+8ms)として得られる。
 指令補正部103は、例えば、指令生成部102が生成した指令の値を時刻について補間することで、指令生成部102が生成した指令を補正する。指令補正部103は、上述したように、指令実行周期Tと位相αを用いて、次の指令実行タイミングteを算出する。指令補正部103は、次の指令実行タイミングteから、指令生成部102が生成した指令のうちどの2つの時刻(図5の例では時刻10msと20ms)の指令を補間し、どの時刻(図5の例では時刻12ms)における指令(角度位置)を求めるかを決めることができる。すなわち、指令補正部103は、次に実行する動作の指令について、その指令の指令実行タイミングteを指令実行周期Tと位相αを用いて導出し、指令実行タイミングteからその指令がどの2つの時刻の間にあるかを求め、求めた2つの時刻の指令を時刻について補間することで、指令を補正する。
 指令補正部103は、例えば線形補間やスプライン補間などの任意の補間方法を用いて、指令の値を時刻について補間することで指令を補正し、補正された指令を求めることができる。
 既に述べたように、ロボット109a~109cは、指令送信タイミングtsが同じでも、指令実行タイミングteA~teCが互いに異なる。ロボット109a~109cにおいて、指令実行タイミングteA~teCを同期させること(一致させること)は、一般に困難である。
 本実施例では、次の指令実行タイミングteA~teCに合わせて指令を補正することで、指令実行タイミングteA~teCを同期させるのではなく、ロボット109a~109cの動作を同期させる。このため、ロボット109a~109cは、指令実行タイミングteA~teCが互いに異なっていても、互いに一致した動作を実行することができ、動作を同期させることができる。この指令の補正は、ロボット109a~109cの指令実行タイミングteA~teCを基にした補正であるので、ロボット109a~109cの指令実行タイミングteA~teCの差が考慮されており、ロボット109a~109cの動作を同期させることができる補正である。
 図6は、指令実行時間差Δtと指令実行周期Tと位相αを計算する際に用いる要素を示すタイムチャートを示す図である。図6を用いて、指令実行時間差Δtと、指令実行周期Tと位相αの算出方法について説明する。指令実行時間差Δtは、指令実行時間差取得部106が算出し、指令実行周期Tは、周期計算部104が算出し、位相αは、位相計算部105が算出する。
 図6には、一例として、ロボット109a(ロボットA)について、指令実行周期Ta、位相αa、指令実行タイミングteA、及び指令実行時間差ΔtAを示している。制御装置101は、ロボット109a~109cに周期的に指令を送信する。制御装置101が1回目に指令を送信してからロボット109a~109cが指令を実行するまでの時間差を指令実行時間差Δt_1と表し、制御装置101が2回目に指令を送信してからロボット109a~109cが指令を実行するまでの時間差を指令実行時間差Δt_2と表す。図6では、ロボット109aについての指令実行時間差Δt_1と指令実行時間差Δt_2が、指令実行時間差ΔtA_1と指令実行時間差ΔtA_2としてそれぞれ表されている。
 指令実行時間差取得部106は、制御装置101がロボット109a~109cへ指令を送信してから、ロボット109a~109cがそれぞれ指令を実行するまでの時間を取得する。具体的には、指令実行時間差取得部106は、通信部107a~107cから、制御装置101が指令を送信した時刻(指令送信タイミングts)と、ロボット109a~109cが指令を実行した時刻(指令実行タイミングte)を受信し記録する。そして、指令実行時間差取得部106は、これらの時刻の差から指令実行時間差Δt(=te-ts)を算出し、指令実行時間差Δtを周期計算部104と位相計算部105へ出力する。
 さらに、図6には、制御装置101がロボット109a~109cに指令を送信する周期(指令送信周期command_period)と、予め任意に定めた基準時刻t0と制御装置101の指令送信タイミングtsとの差(指令送信時間差command_diff)を示している。
 周期計算部104は、例えば、指令送信周期command_periodと指令実行時間差Δt_1と指令実行時間差Δt_2を用いて下記の式(1)に従い、各ロボット109a~109cの指令実行周期Tを算出する。
 指令実行周期T= command_period
         -(Δt_1%(command_period×(Δt_1/command_period)))
         +Δt_2   (1)
なお、式(1)は、変数を整数で表した場合(整数型変数で演算をする場合)の例であり、演算子「/」は、商の小数点以下を切り捨てる除算を表し、演算子「%」は、除算の剰余を求める演算を表している。
 式(1)は、サンプリングに用いる指令送信周期command_periodに対して指令実行周期Tが倍以上異なる場合を加味して構成されており、指令実行時間差Δt_1を指令送信周期command_periodで割った剰余を用いている。なお、制御装置101は、2回目の指令を、指令実行タイミングteが返ってきてから、指令実行周期Tに従って送信する。なお、式(1)において、演算子「/」と「%」で表される演算の分母となる値が0になる場合には、エラーの発生を避けるため、この演算を削除するか分母となる値を1に置き換えた式で計算する。
 位相計算部105は、例えば指令送信時間差command_diffと指令実行時間差Δt_1と指令実行周期Tを用いて下記の式(2)に従い、各ロボット109a~109cの位相αを算出する。
 位相α=(command_diff+Δt_1)%T   (2)
式(2)は、式(1)と同様に、変数を整数で表した場合の例であり、演算子「%」は、除算の剰余を求める演算を表している。
 位相αは、指令実行周期Tを用いて算出される。位相計算部105は、周期計算部104が算出した指令実行周期Tを入力して、位相αを算出してもよい。式(2)において、演算子「%」で表される演算の分母となる値が0になる場合には、この演算を削除するか分母となる値を1に置き換えた式で計算する。
 なお、図5の右の表に示した、補正された軌道指令(時刻12msでの軌道指令)は、command_diffが0msであってcommand_periodが10msである場合の例であり、時刻が(command_diff+command_period)以降の指令実行タイミングteは、位相α(4ms)と指令実行周期T(8ms)の和となる。すなわち、時刻が10ms以降の指令実行タイミングteは、時刻12msである。従って、次の指令実行タイミングteは、制御装置101がロボット109a(ロボットA)に指令を送信するタイミング(10ms)から2ms後のタイミング(12ms)である。
 図7は、図1に示した通信部107a~107cの動作フローの例を示す図である。図7を用いて、通信部107a~107cの動作を説明する。
 通信部107a~107cは、ロボットコントローラ108a~108cを介してロボット109a~109cと通信可能であり、ロボット109a~109cへの指令を制御装置101からロボットコントローラ108a~108cに送信する機能と、指令に対するロボット109a~109cの応答などの情報をロボットコントローラ108a~108cから受信する機能を備える。
 S701で、通信部107a~107cは、通信が制御装置101からの指令の送信か否かを判断する。指令の送信である場合には、S702の処理を実行する。指令の送信でなく、応答を受信する場合には、S704の処理を実行する。
 S702で、通信部107a~107cは、送信する指令を基にパケットを生成する。
 S703で、通信部107a~107cは、S702で生成したパケットを送信する。
 S704で、通信部107a~107cは、ロボットコントローラ108a~108cを介してロボット109a~109cから受信したパケットを取得する。
 S705で、通信部107a~107cは、S704で取得したパケットを解析し、パケットを解析して得られた情報を指令実行時間差取得部106へ出力する。指令実行時間差取得部106は、通信部107a~107cがロボット109a~109cから得た情報を用いて指令実行時間差Δtを求めることができる。
 指令実行時間差取得部106は、指令実行時間差Δtを求めるときに、ロボット109a~109cが指令を実行した時間(時刻)を、以下に示す方法などの任意の方法で求めることができる。
 ロボット109a~109cが指令を実行した時間は、例えば、ロボット109a~109cの動作を伴わずに、ロボット109a~109cからのメッセージを求める方法で求めることができる。この方法は、制御装置101のキャリブレーションの期間において、通信部107a~107cが、ロボット109a~109cに指令を送信してロボット109a~109cが指令を認識したことの応答(メッセージ)を受信したときを、ロボット109a~109cが指令を実行した時間とみなす方法である。ロボット109a~109cは、通信部107a~107cから指令を受信したら、指令を認識したことの応答(メッセージ)を通信部107a~107cに送信する。
 また、ロボット109a~109cが指令を実行した時間は、例えば、ロボット109a~109cが動作の前に現在の状況をメッセージで返す方法で求めることができる。この方法は、ロボット109a~109cが動作を実行する前に、これから動作を実行するという情報や現在時刻などの任意の情報を現在の状況として送信し、通信部107a~107cがこのような情報を含むメッセージを受信したときを、ロボット109a~109cが指令を実行した時間とみなす方法である。
 また、ロボット109a~109cが指令を実行した時間は、例えば、ロボット109a~109cが指令を受け取ってから指令を実行するまでの時間差をロボットコントローラ108a~108cが保存しておく方法や、ロボット109a~109cが指令を実行した時刻をロボットコントローラ108a~108cが記録しておく方法でも求めることができる。指令実行時間差取得部106は、ロボットコントローラ108a~108cから、ロボットコントローラ108a~108cが保存した時間差や記録した指令実行時刻を取得することで、ロボット109a~109cが指令を実行した時間を求めることができる。
 また、指令補正部103は、1回の指令実行周期Tだけ後の指令実行タイミングteを算出してもよく、複数回の指令実行周期Tだけ後の指令実行タイミングteを算出してもよい。すなわち、指令補正部103は、1回または複数回の指令実行周期Tだけ後の指令実行タイミングteを算出し、算出したこの指令実行タイミングteでの指令の値を求めることで指令を補正することができる。なお、ロボットコントローラ108a~108cは、複数の指令実行タイミングteでの指令を受信できるように、複数の指令を保存することができるバッファを備えるのが好ましい。
 以上説明したように、本実施例による制御装置101は、指令実行タイミングteが互いに異なる複数のロボット109a~109cに対して、ロボット109a~109cの間の指令実行タイミングteの差を吸収して、それぞれのロボット109a~109cの動作を同期させることができる。
 また、本実施例による制御装置101は、制御対象のロボットが1台の場合にも適用可能である。制御対象のロボットが1台の場合では、指令送信タイミングtsと指令実行タイミングteの差である指令実行時間差Δtを加味して軌道指令を補正することにより、理想の動作と実際の動作の乖離を無くすことができる。
 図8を参照して、本発明の実施例2による制御装置101について説明する。
 図8は、本実施例による制御装置101の機能ブロック図である。本実施例による制御装置101は、実施例1による制御装置101(図1)と同様の構成を備えるが、センサ通信部802とセンサ値解析部803を備える点が実施例1による制御装置101と異なる。以下では、本実施例による制御装置101について、実施例1による制御装置101と異なる点を主に説明する。
 制御装置101の制御対象の機器であるロボット109a~109cは、センサ801を備える。センサ801は、ロボット109a~109cの各軸に設置されており、各軸の動きを記録する任意のセンサで構成することができる。
 センサ通信部802は、ロボット109a~109cが備えるセンサ801と接続されている。センサ通信部802は、センサ801と通信し、センサ801が記録したセンサ値を取得する。
 センサ値解析部803は、センサ通信部802からセンサ値を取得し、このセンサ値から、各ロボット109a~109cが指令を実行した時間(時刻)を解析して求め、求めた時間を指令実行時間差取得部106へ出力する。例えば、センサ値解析部803は、センサ値からロボット109a~109cの軸が動いた時刻を求め、この時刻をロボット109a~109cが指令を実行した時間とすることができる。
 本実施例による制御装置101は、ロボット109a~109cが指令実行時刻を返さない場合や、指令実行時刻の取得方法がロボット109a~109cにより異なる場合でも、より正確にロボット109a~109cが指令を実行した時間(時刻)を取得することができる。
 図9を参照して、本発明の実施例3による制御装置101について説明する。
 図9は、本実施例による制御装置101の機能ブロック図である。本実施例による制御装置101は、実施例1による制御装置101(図1)と同様の構成を備えるが、カメラ通信部902と画像解析部903を備える点が実施例1による制御装置101と異なる。以下では、本実施例による制御装置101について、実施例1による制御装置101と異なる点を主に説明する。
 制御装置101の制御対象の機器であるロボット109a~109cは、カメラ901により撮影される。カメラ901は、ロボット109a~109cを撮影するように設置されている。カメラ901は、ロボット109a~109cの各軸の動きを記録する任意のカメラ、例えば、1000fpsなどの高フレームレートのカメラで構成することができる。本実施例による、機器の制御システムは、カメラ901を備えることができる。
 カメラ通信部902は、カメラ901と接続されている。カメラ通信部902は、カメラ901と通信し、カメラ901が撮影した画像の情報を取得する。
 画像解析部903は、カメラ通信部902から画像の情報を取得し、この画像情報から、各ロボット109a~109cが指令を実行した時間(時刻)を解析して求め、求めた時間を指令実行時間差取得部106へ出力する。例えば、画像解析部903は、画像情報からロボット109a~109cの軸が動いた時刻を求め、この時刻をロボット109a~109cが指令を実行した時間とすることができる。
 本実施例による制御装置101は、ロボット109a~109cが指令実行時刻を返さない場合や、指令実行時刻の取得方法がロボット109a~109cにより異なる場合でも、より正確にロボット109a~109cが指令を実行した時間(時刻)を取得することができる。また、軸が動いた時刻を求めるためにロボット109a~109cにセンサを取り付ける必要がないので、ロボット109a~109cの交換や修理を容易に実施できる。
 図10と図11を参照して、本発明の実施例4による制御装置101について説明する。
 図10は、本実施例による制御装置101の機能ブロック図である。本実施例による制御装置101は、実施例1による制御装置101(図1)と同様の構成を備えるが、算出値更新部1001を備える点が実施例1による制御装置101と異なる。以下では、本実施例による制御装置101について、実施例1による制御装置101と異なる点を主に説明する。
 図11は、算出値更新部1001の機能ブロック図である。算出値更新部1001は、周期保持部1101と、位相保持部1102と、カウンタ1103と、中央値計算部1104を備える。
 周期保持部1101は、周期計算部104が算出した、各ロボット109a~109cの指令実行周期Tを保持する。周期計算部104は、制御装置101が指令を送信するたびに指令実行周期Tを算出する。周期保持部1101は、このようにして周期計算部104が複数回算出した指令実行周期T、すなわち複数の指令実行周期Tを保持している。
 位相保持部1102は、位相計算部105が算出した、各ロボット109a~109cの位相αを保持する。位相計算部105は、制御装置101が指令を送信するたびに位相αを算出する。位相保持部1102は、このようにして位相計算部105が複数回算出した位相α、すなわち複数の位相αを保持している。
 カウンタ1103は、周期計算部104が指令実行周期Tを算出した回数と、位相計算部105が位相αを算出した回数を記録する。すなわち、カウンタ1103は、周期保持部1101が保持する指令実行周期Tの数と、位相保持部1102が保持する位相αの数を記録する。カウンタ1103は、指令実行周期Tと位相αの数が予め定めた一定回数に到達したら、すなわち制御装置101がロボット109a~109cと予め定めた一定回数だけ通信したら、この旨の通知を中央値計算部1104へ送信し、記録した指令実行周期Tと位相αの数をクリアする。カウンタ1103は、指令実行周期Tと位相αの数が一定回数に到達するごとに、すなわち制御装置101がロボット109a~109cと一定回数だけ通信するごとに、中央値計算部1104へ上記の通知を送信する。
 中央値計算部1104は、カウンタ1103から通知を受けたら、指令実行周期Tと位相αの中央値を算出する。すなわち、中央値計算部1104は、カウンタ1103から通知を受けたら、周期保持部1101が保持する複数の指令実行周期Tを周期保持部1101から受け取るとともに、位相保持部1102が保持する複数の位相αを位相保持部1102から受け取り、複数の指令実行周期Tの中央値と複数の位相αの中央値を算出する。そして、中央値計算部1104は、算出した指令実行周期Tの中央値と位相αの中央値を指令補正部103へ出力する。
 中央値計算部1104は、指令実行周期Tと位相αの両方の中央値ではなく、いずれかう一方の中央値を算出し、指令補正部103へ出力してもよい。また、中央値計算部1104は、指令実行周期Tと位相αの中央値ではなく、指令実行周期Tと位相αの平均値を算出し、指令補正部103へ出力してもよい。
 本実施例による制御装置101では、算出値更新部1001は、制御装置101がロボット109a~109cと予め定めた一定回数だけ通信するごとに、指令実行周期Tと位相αの中央値(または平均値)を算出する。指令補正部103は、算出値更新部1001から受け取った指令実行周期Tと位相αを用いて、指令生成部102が生成した指令を補正する。すなわち、指令補正部103は、制御装置101がロボット109a~109cと予め定めた一定回数だけ通信するごとに、補正に用いる指令実行周期Tと位相αを更新することで、指令の補正値を定期的に更新する。
 本実施例による制御装置101は、以上説明したように指令の補正を一定の通信回数ごとに更新することで、ロボット109a~109c(またはロボットコントローラ108a~108c)のタイマに時刻のずれが生じても、ロボット109a~109cに理想通りの動作を継続的に実施させることができる。
 なお、本発明は、上記の実施例に限定されるものではなく、様々な変形が可能である。例えば、上記の実施例は、本発明を分かりやすく説明するために詳細に説明したものであり、本発明は、必ずしも説明した全ての構成を備える態様に限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能である。また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、削除したり、他の構成を追加・置換したりすることが可能である。
 101…制御装置、102…指令生成部、103…指令補正部、104…周期計算部、105…位相計算部、106…指令実行時間差取得部、107a~107c…通信部、108a~108c…ロボットコントローラ、109a~109c…ロボット、801…センサ、802…センサ通信部、803…センサ値解析部、901…カメラ、902…カメラ通信部、903…画像解析部、1001…算出値更新部、1101…周期保持部、1102…位相保持部、1103…カウンタ、1104…中央値計算部、t0…基準時刻、ts…指令送信タイミング、te、teA~teC…指令実行タイミング、T、Ta、Tb、Tc…指令実行周期、Δt、Δt_1、Δt_2、ΔtA、ΔtA_1、ΔtA_2、ΔtB、ΔtC…指令実行時間差、α、αa、αb…位相、command_period…指令送信周期、command_diff…指令送信時間差。

Claims (12)

  1.  1つ以上の機器と通信可能な通信部と、
     前記機器に対する指令を生成する指令生成部と、
     前記通信部から前記機器へ前記指令を送信してから前記機器が前記指令を実行するまでの時間差である指令実行時間差を取得する指令実行時間差取得部と、
     前記指令実行時間差を用いて、前記機器が前記指令を実行する周期である指令実行周期を算出する周期計算部と、
     前記指令実行時間差を用いて、前記機器の前記指令実行周期の基準点である位相を算出する位相計算部と、
     前記指令実行周期と前記位相から、前記機器が前記指令を実行するタイミングである指令実行タイミングを算出し、次の前記指令実行タイミングでの指令の値を求めることで、前記指令を補正する指令補正部と、
    を備えることを特徴とする、機器の制御装置。
  2.  前記周期計算部は、前記機器に前記指令を送信する周期である指令送信周期と、前記指令実行時間差を用いて、前記指令実行周期を算出する、
    請求項1に記載の、機器の制御装置。
  3.  前記位相計算部は、予め定めた基準時刻と指令を送信した時刻との差である指令送信時間差と、前記指令実行時間差と、前記指令実行周期を用いて、前記位相を算出する、
    請求項1に記載の、機器の制御装置。
  4.  前記指令実行時間差取得部は、前記指令実行時間差を取得するときに、前記機器からのメッセージを受信したときを、前記機器が前記指令を実行した時間とみなす、
    請求項1に記載の、機器の制御装置。
  5.  前記指令実行時間差取得部は、前記指令実行時間差を取得するときに、前記機器が前記指令を受け取ってから前記指令を実行するまでの時間差を前記機器から取得することで、前記機器が前記指令を実行した時間を求める、
    請求項1に記載の、機器の制御装置。
  6.  前記指令実行時間差取得部は、前記指令実行時間差を取得するときに、前記機器が前記指令を実行した時刻を前記機器から取得することで、前記機器が前記指令を実行した時間を求める、
    請求項1に記載の、機器の制御装置。
  7.  前記指令実行時間差取得部は、前記指令実行時間差を取得するときに、前記機器に設置されたセンサが記録した値を取得することで、前記機器が前記指令を実行した時間を求める、
    請求項1に記載の、機器の制御装置。
  8.  前記指令実行時間差取得部は、前記指令実行時間差を取得するときに、前記機器を撮影するカメラが撮影した画像の情報を取得することで、前記機器が前記指令を実行した時間を求める、
    請求項1に記載の、機器の制御装置。
  9.  前記指令補正部は、前記制御装置が前記機器と予め定めた一定回数だけ通信するごとに、前記指令実行周期と前記位相を更新する、
    請求項1に記載の、機器の制御装置。
  10.  前記指令補正部は、複数回の前記指令実行周期だけ後の前記指令実行タイミングを算出し、この指令実行タイミングでの指令の値を求めて前記指令を補正する、
    請求項1に記載の、機器の制御装置。
  11.  請求項1に記載の制御装置と、
     前記制御装置に制御され、前記制御装置が備える前記通信部と通信可能な1つ以上の機器と、
    を備えることを特徴とする、機器の制御システム。
  12.  1つ以上の機器と通信可能な通信部を備える制御装置に実行され、
     前記機器に対する指令を生成する指令生成ステップと、
     前記通信部から前記機器へ前記指令を送信してから前記機器が前記指令を実行するまでの時間差である指令実行時間差を取得する指令実行時間差取得ステップと、
     前記指令実行時間差を用いて、前記機器が前記指令を実行する周期である指令実行周期を算出する周期計算ステップと、
     前記指令実行時間差を用いて、前記機器の前記指令実行周期の基準点である位相を算出する位相計算ステップと、
     前記指令実行周期と前記位相から、前記機器が前記指令を実行するタイミングである指令実行タイミングを算出し、次の前記指令実行タイミングでの指令の値を求めることで、前記指令を補正する指令補正ステップと、
    を有することを特徴とする、機器の制御方法。
PCT/JP2023/000249 2022-01-25 2023-01-10 機器の制御装置、制御システム、及び制御方法 WO2023145410A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022009403A JP2023108339A (ja) 2022-01-25 2022-01-25 機器の制御装置、制御システム、及び制御方法
JP2022-009403 2022-01-25

Publications (1)

Publication Number Publication Date
WO2023145410A1 true WO2023145410A1 (ja) 2023-08-03

Family

ID=87471222

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/000249 WO2023145410A1 (ja) 2022-01-25 2023-01-10 機器の制御装置、制御システム、及び制御方法

Country Status (2)

Country Link
JP (1) JP2023108339A (ja)
WO (1) WO2023145410A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003145462A (ja) * 2001-11-07 2003-05-20 Kawasaki Heavy Ind Ltd ロボットの協調制御システム
JP2005269879A (ja) * 2004-02-19 2005-09-29 Toshiba Corp 制御システム
JP2007219642A (ja) * 2006-02-14 2007-08-30 Fanuc Ltd 制御システム
JP2010140372A (ja) * 2008-12-15 2010-06-24 Mitsubishi Electric Corp スレーブ装置及びプログラム
JP2018153881A (ja) * 2017-03-16 2018-10-04 株式会社安川電機 コントロールシステム、コントローラ及び制御方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003145462A (ja) * 2001-11-07 2003-05-20 Kawasaki Heavy Ind Ltd ロボットの協調制御システム
JP2005269879A (ja) * 2004-02-19 2005-09-29 Toshiba Corp 制御システム
JP2007219642A (ja) * 2006-02-14 2007-08-30 Fanuc Ltd 制御システム
JP2010140372A (ja) * 2008-12-15 2010-06-24 Mitsubishi Electric Corp スレーブ装置及びプログラム
JP2018153881A (ja) * 2017-03-16 2018-10-04 株式会社安川電機 コントロールシステム、コントローラ及び制御方法

Also Published As

Publication number Publication date
JP2023108339A (ja) 2023-08-04

Similar Documents

Publication Publication Date Title
US11082197B2 (en) Control system and control device
US7525263B2 (en) Control system
US20070050085A1 (en) Robot coordinated control method and system
JP2008531318A (ja) 通信ネットワークによってリンクされた同期コントローラ
EP3065012B1 (en) Control device and method of synchronizing control
CN107229246B (zh) 光学测量装置
KR20160125942A (ko) 프로그래머블 컨트롤러 시스템, 그 컨트롤러
EP3361635B1 (en) Control system and pulse output device
EP3267148B1 (en) Optical measurement apparatus
US20220080601A1 (en) Machine control via wireless communication
WO2019107022A1 (ja) 制御装置および制御方法
WO2023145410A1 (ja) 機器の制御装置、制御システム、及び制御方法
EP4020104A1 (en) Control system, control device, and program
US10222786B2 (en) Numerical control system having synchronous control function between units
JP2021132279A (ja) 生産システム、通信方法、及びプログラム
US20220278820A1 (en) Time synchronization of local device
WO2024018900A1 (ja) 機器の制御装置、制御システム、及び制御方法
WO2021024523A1 (ja) 制御装置
US20160259311A1 (en) Control device and method of synchronizing control
JP6915759B1 (ja) マシン制御システム、プログラム、マシン、システム及びデバイス
WO2023276401A1 (ja) 制御システム
KR20230006582A (ko) 머신 제어 시스템, 프로그램, 머신, 시스템 및 디바이스
JP2011108208A (ja) 分散制御システムおよび分散制御方法
CN114978392A (zh) 控制器、设备控制系统和时间同步方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23746627

Country of ref document: EP

Kind code of ref document: A1