Robot control system and control method
By designing a robot control system including a selection unit and a communication unit, it is possible to flexibly control the robot in the presence of multiple indicator sources, solving the problem of insufficient flexibility in controlling multi-source action instructions in the prior art, and achieving higher adaptability and control accuracy.
Patent Information
- Application Number
- CN202080097369.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-03-13
- Filing Date
- 2020-12-17
- Publication Date
- 2025-06-17
- Estimated Expiration
- 2040-12-17
AI Technical Summary
The prior art is difficult to effectively control in the presence of multiple sources indicating robot behavior, especially when multiple action commands need to be addressed.
A robot control system is designed, which includes a first control device and a second control device. The first control device makes any source of a plurality of information sources valid through the selection unit, and generates instructions to send to the second control device. The second control device receives instructions and generates command values for driving each axis of the robot.
It realizes flexible control of the robot in the presence of multiple indicator sources, and can control it according to the information of different sources, improving the adaptability and flexibility of the system.
Smart Images

Figure CN115151874B_ABST
Abstract
Description
Technical Field
[0001] The present technology relates to a robot control system and a control method. Background Art
[0002] Conventionally, in the field of FA (Factory Automation), robots have been used in various applications.
[0003] Generally, a program described in a prescribed programming language is used for controlling a robot. From the viewpoint of simplifying the control of the robot, for example, Japanese Unexamined Patent Application Publication No. 2018-196908 (Patent Document 1) discloses a configuration for constructing an automated device using a robot at low cost without learning a robot language.
[0004] Prior Art Documents
[0005] Patent Documents
[0006] Patent Document 1: Japanese Unexamined Patent Application Publication No. 2018-196908 Summary of the Invention
[0007] Problems to be Solved by the Invention
[0008] The configuration shown in the above prior art document does not simply create a program described in a robot language, but controls the operation of the robot by inputting parameters for a robot controller, thereby reducing the construction cost.
[0009] However, in an actual production facility, it is necessary not only to operate according to a program created in advance, but also to respond to user operations based on a teach pendant or the like. The configuration shown in the above prior art document does not assume a case where there are multiple such sources of operation instructions.
[0010] An object of the present technology is to provide a robot control system that can respond even when there are multiple sources instructing the behavior of a robot.
[0011] Means for Solving the Problems
[0012] The robot control system according to an embodiment of the present technology includes: a first control device; and a second control device that is network-connected to the first control device and is used to control the robot. The first control device includes: a selection unit that validates any one of a plurality of sources that provide information for generating a command for instructing the behavior of the robot; and a first communication unit that sends the command generated according to the information from the validated source among the plurality of sources to the second control device. The second control device includes: a second communication unit that receives the command sent from the first control device; and a command value generation unit that sequentially generates command values for driving each axis of the robot in a manner that realizes the behavior instructed by the command from the first control device.
[0013] According to this structure, the first control device can validate any arbitrarily selected source among the plurality of sources and generate a command according to the information from the validated source. Thus, the robot control system can be used flexibly.
[0014] The plurality of sources may include multiple sources among the following: a program interpretation unit that sequentially executes a robot program; an operation unit that is network-connected to the first control device and generates an operation instruction according to a user operation; a development assistance device that is connected to the first control device and provides information according to a user operation or program execution; and a program execution unit that executes an IEC program.
[0015] According to this structure, the robot can be controlled not only according to the original robot program, but also according to an operation instruction from the operation unit, an instruction from the development assistance device, an execution result of the IEC program, etc.
[0016] The selection unit may also validate a specific source according to an instruction provided to the first control device from the outside. According to this structure, the validated operation can be changed according to an instruction from an information processing device or the like located outside the first control device, so that more flexible use can be achieved.
[0017] The selection unit may also determine the validated source according to a preset setting. According to this structure, use such as giving priority to a specific source can be performed.
[0018] The preset setting may also include the priority order of the sources. The selection unit may also validate the source with a higher priority order when information is provided from each of the plurality of sources. According to this structure, the source as the command generation source can be automatically determined according to the priority order.
[0019] The first communication unit may also notify the second control device which source the selection unit has validated. According to this structure, in the second control device, the processing can also be different according to the validated source. Thus, the robot can be controlled corresponding to the validated source.
[0020] The command value generation unit can also generate different characteristics of the command values for driving the respective axes of the robot according to which source is made effective by the selection unit. With this configuration, the robot can be controlled with characteristics corresponding to the source.
[0021] According to another embodiment of the present technology, there is provided a control method in a robot control system, the robot control system including: a first control device; and a second control device that is network-connected to the first control device and is used to control the robot. The control method includes the following steps: the first control device makes any one of a plurality of sources that provide information for generating a command effective, the command indicating the behavior of the robot; the first control device sends the command generated according to the information from the source made effective among the plurality of sources to the second control device; the second control device receives the command sent from the first control device; and the second control device sequentially generates command values for driving the respective axes of the robot in such a manner as to achieve the behavior indicated by the command from the first control device.
[0022] Effects of the Invention
[0023] According to the present technology, it is also possible to handle a situation where there are multiple sources indicating the behavior of the robot. BRIEF DESCRIPTION OF THE DRAWINGS
[0024] Figure 1 It is a schematic diagram showing an overview of the robot control system of the present embodiment.
[0025] Figure 2 It is a schematic diagram showing a structural example of the robot control system of the present embodiment.
[0026] Figure 3 It is a schematic diagram showing a hardware structural example of the control device constituting the robot control system of the present embodiment.
[0027] Figure 4 It is a schematic diagram showing a hardware structural example of the robot constituting the robot control system of the present embodiment.
[0028] Figure 5 It is a schematic diagram showing another hardware structural example of the robot constituting the robot control system of the present embodiment.
[0029] Figure 6 It is a schematic diagram showing a hardware structural example of the teach pendant constituting the robot control system of the present embodiment.
[0030] Figure 7 It is a schematic diagram showing a hardware structural example of the support device constituting the robot control system of the present embodiment.
[0031] Figure 8 It is a schematic diagram showing an example of a functional structure for controlling the behavior of a robot in the robot control system of this embodiment.
[0032] Figure 9 It is a diagram showing an example of an IEC program and a robot program executed by a control device constituting the robot control system of this embodiment.
[0033] Figure 10 It is a timing chart showing an example of program execution in a control device constituting the robot control system of this embodiment.
[0034] Figure 11 It is a schematic diagram roughly showing data processing including a source selection function in the robot control system of this embodiment.
[0035] Figure 12 It is a schematic diagram showing an installation example of the source selection function in the robot control system of this embodiment.
[0036] Figure 13 It is a diagram showing an example of making the generation characteristics of command values different in the robot control system of this embodiment.
[0037] Figure 14 It is a schematic diagram showing a structural example of making the generation characteristics of command values different in a control device of the robot control system of this embodiment.
[0038] Figure 15 It is a schematic diagram showing another structural example of making the generation characteristics of command values different in a control device of the robot control system of this embodiment.
[0039] Figure 16 It is a flowchart showing the processing steps of an IEC program execution engine of a control device constituting the robot control system of this embodiment.
[0040] Figure 17 It is a flowchart showing the processing steps of a robot program execution engine of a control device constituting the robot control system of this embodiment.
[0041] Figure 18 It is a flowchart showing the processing steps in a robot controller constituting the robot control system of this embodiment. Specific Embodiments
[0042] The embodiments of the present technology will be described in detail with reference to the accompanying drawings. In addition, the same or corresponding parts in the drawings are denoted by the same reference numerals and their descriptions are not repeated.
[0043] <A. Application Example>
[0044] First, an example of the scenario where this technology is applied will be described. Figure 1 It is a schematic diagram showing the outline of the robot control system 1 of this embodiment.
[0045] Refer to Figure 1 , the robot control system 1 includes a control device 100 (first control device) and a robot controller 250 (second control device) that is network-connected to the control device 100 and is used to control the robot 200. In addition, multiple robot controllers 250 can also be connected to the control device 100.
[0046] In the following description, mainly a structural example of the robot control system 1 that controls the robot 200 is shown, but the control object of the robot control system 1 is not limited to the robot 200. For example, in addition to controlling the robot 200, the control device 100 can also control various devices and machines that make up the production equipment including the robot 200. Furthermore, the control device 100 can also cooperate with a safety controller that monitors the actions of the robot 200. That is, in this specification, the term "robot control system" is used to mean a system having the function of controlling a robot, and the case of controlling devices other than the robot is not excluded.
[0047] The control device 100 has: a command generation module 156 that generates a command 158 indicating the behavior of the robot 200; and a communication unit 50 (constituted by a field network controller 108, a communication control module 160, a communication driver 162, etc. to be described later), which sends the command 158 to the robot controller 250.
[0048] The command generation module 156 can be connected to multiple sources that provide information for generating the command 158.
[0049] In this specification, a "source" refers to a source that provides information for generating a command that indicates the behavior of the robot 200. As the information for generating the command, it includes internal commands and / or operation instructions indicated by the user as described later.
[0050] The source selection function 157 (selection unit) of the command generation module 156 validates any one of the multiple sources. The command generation module 156 generates the command 158 according to the information from the source validated by the source selection function 157.
[0051] The communication unit 50 sends the command 158 generated according to the information from the validated source among the multiple sources to the robot controller 250.
[0052] The robot controller 250 includes: a communication unit 60 (composed of a field network controller 252, a communication control module 280, a communication driver 282, etc. to be described later), which receives a command 158 sent from the control device 100; and a command value generation module 290 (command value generation unit), which sequentially generates command values for driving each axis of the robot 200 in such a way as to achieve the behavior indicated by the command 158 from the control device 100.
[0053] In addition, the axes of the robot 200 sometimes form joints, so in the following description, they are also referred to as the "axes or joints" of the robot 200. That is, in this specification, the term "axis" of the robot 200 is used to include both axes and joints.
[0054] In the robot control system 1 of this embodiment, multiple sources can be selectively activated, so that not only can it be controlled by the original robot program 1108, but the robot 200 can also be controlled according to information from other sources. As a result, the robot control system 1 can be flexibly utilized.
[0055] <B. Example of system structure>
[0056] Next, an example of the structure of the robot control system 1 of this embodiment will be described.
[0057] Figure 2 It is a schematic diagram showing an example of the structure of the robot control system 1 of this embodiment. Refer to Figure 2 , the robot control system 1 of this embodiment includes a control device 100 and one or more robots 200 connected to the control device 100 via a field network 20.
[0058] The behavior of each robot 200 is controlled by a robot controller 250. The robot controller 250 is network-connected to the control device 100 to control the robot 200. More specifically, the robot controller 250 outputs command values for controlling the robot 200 in accordance with the command 158 from the control device 100. As the robot 200, a customized robot 200A having one or more axes or joints arbitrarily created according to the application can also be used. Furthermore, as the robot 200, any general-purpose robot 200B such as a horizontal multi-joint (SCARA) robot, a vertical multi-joint robot, a parallel robot, or an orthogonal robot can also be used.
[0059] The field network 20 can also be connected to any device such as an I / O unit, a safety I / O unit, or a safety controller. In Figure 2 In the shown example of the structure, an operation teaching pendant 300 for operating the robot 200 is connected to the field network 20.
[0060] The on-site network 20 can use EtherCAT (registered trademark), EtherNet / IP, etc., which are protocols for industrial networks.
[0061] The control device 100 can also be connected to the support device 400, the display device 500, and the server device 600 via the upper-level network 12. The upper-level network 12 can use protocols for industrial networks or EtherNet / IP, etc.
[0062] <C. Example of Hardware Structure>
[0063] Next, an example of the hardware structure of the main devices constituting Figure 2 the robot control system 1 shown will be described.
[0064] (c1: Control Device 100)
[0065] Figure 3 It is a schematic diagram showing an example of the hardware structure of the control device 100 constituting the robot control system 1 of this embodiment. Referring to Figure 3 , the control device 100 includes a processor 102, a main memory 104, a storage 110, a memory card interface 112, an upper-level network controller 106, a field network controller 108, a local bus controller 116, and a USB controller 120 that provides a USB (Universal Serial Bus) interface. These components are connected via a processor bus 118.
[0066] The processor 102 corresponds to an arithmetic processing unit that performs control operations, and is composed of a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), etc. Specifically, the processor 102 reads the program stored in the storage 110, expands it in the main memory 104, and executes it, thereby realizing the control operation of the control object.
[0067] The main memory 104 is composed of a volatile storage device such as a DRAM (Dynamic Random Access Memory) or an SRAM (Static Random Access Memory). The storage 110 is composed of a non-volatile storage device such as an SSD (Solid State Drive) or an HDD (Hard Disk Drive), etc.
[0068] In the memory 110, a system program 1102 for implementing basic functions, an IEC program 1104 created according to the controlled object, etc. are stored. The IEC program 1104 may include sequence commands and / or motion commands.
[0069] In this specification, the "IEC program" is used to mean a program that defines the processing to be executed by a general PLC (programmable logic controller). Typically, the IEC program refers to a program described in any language specified by IEC 61131-3 determined by the International Electrotechnical Commission (IEC). However, the IEC program may include a program described in a manufacturer-specific language other than the language specified by IEC 61131-3.
[0070] The memory 110 may also store a robot program 1108 and setting information 1109 for controlling the behavior of the robot 200. As will be described later, the robot program 1108 may also be described in a specified programming language (e.g., a robot control programming language such as V+ language, a programming language related to NC control such as G code). The setting information 1109 includes various setting values for the robot 200 (e.g., speed limit value, acceleration limit value, jerk limit value, etc.).
[0071] The memory card interface 112 accepts a memory card 114 as an example of a removable storage medium. The memory card interface 112 can read and write arbitrary data to and from the memory card 114.
[0072] The upper network controller 106 exchanges data with any information processing device ( Figure 2 the support device 400, the display device 500, the server device 600, etc. shown) via the upper network.
[0073] The field network controller 108 exchanges data with any device such as the robot 200 via the field network 20. In Figure 2 the system configuration example shown, the field network controller 108 may also function as the communication master device of the field network 20.
[0074] The local bus controller 116 exchanges data with any functional unit 130 that constitutes the control device 100 via the local bus 122. The functional unit 130 is composed of, for example, an analog I / O unit responsible for input and / or output of analog signals, a digital I / O unit responsible for input and / or output of digital signals, a counter unit that receives pulses from an encoder, etc.
[0075] The USB controller 120 exchanges data with any information processing device via a USB connection.
[0076] The functions provided by the control device 100 related to the control of the robot 200 will be described later.
[0077] (c2: Robot 200 and Robot Controller 250)
[0078] Figure 4 is a schematic diagram showing a hardware structure example of the robot 200 constituting the robot control system 1 of the present embodiment. In Figure 4 a structural example in the case where the custom robot 200A is adopted as the robot 200 is shown.
[0079] Refer to Figure 4 , the custom robot 200A is connected to the robot controller 250. In addition, the custom robot 200A and the robot controller 250 may be integrally formed or separately formed.
[0080] The custom robot 200A includes drive circuits 220 corresponding to the number of axes or joints, and motors 230 driven by the drive circuits 220. Each drive circuit 220 includes a converter circuit, an inverter circuit, etc., generates electric power of a specified voltage, current, and phase according to an instruction value from the robot controller 250, and supplies it to the motor 230.
[0081] Each motor 230 is an actuator that is mechanically coupled to any axis or joint of the arm 210 constituting the custom robot 200A, and drives the corresponding axis or joint by the rotation of the motor 230.
[0082] As the motor 230, a motor having characteristics corresponding to the arm 210 to be driven can be adopted. For example, as the motor 230, any of an induction motor, a synchronous motor, a permanent magnet motor, and a reluctance motor can be adopted, and not only a rotary type but also a linear motor can be adopted. A drive circuit 220 corresponding to the drive target motor 230 is adopted.
[0083] The robot controller 250 includes a field network controller 252 and a control processing circuit 260.
[0084] The field network controller 252 exchanges data mainly with the control device 100 via the field network 20.
[0085] The control processing circuit 260 performs arithmetic processing required to drive the custom robot 200A. As an example, the control processing circuit 260 includes a processor 262, a main memory 266, a storage 270, and an interface circuit 268.
[0086] The processor 262 executes control operations for driving the custom robot 200A. The main memory 266 is constituted by a volatile storage device such as a DRAM or an SRAM, for example. The storage 270 is constituted by a non-volatile storage device such as an SSD or an HDD, for example.
[0087] Stored in the storage 270 are a robot system program 2702 for implementing control for driving the robot 200, and setting information 2704 including a set of setting parameters required for processing in the robot controller 250.
[0088] The interface circuit 268 supplies instruction values to each of the drive circuits 220. The interface circuit 268 and the drive circuit 220 may be electrically connected by hardwiring, or may be connected by a data link.
[0089] Figure 5 It is a schematic diagram showing another hardware configuration example of the robot 200 constituting the robot control system 1 of the present embodiment. In Figure 5 a configuration example is shown in the case where a general-purpose robot 200B is adopted as the robot 200.
[0090] Referring to Figure 5 , the general-purpose robot 200B is equipped with one or more motors and drive circuits (not shown), and when the target trajectory of the general-purpose robot 200B is indicated, one or more motors are driven according to the indicated target trajectory.
[0091] When driving Figure 4 the custom robot 200A shown, it is necessary to supply instruction values to the drive circuits 220 corresponding to the axes or joints respectively. In contrast, when driving Figure 5 the general-purpose robot 200B shown, it is only necessary to indicate the target trajectory of the general-purpose robot 200B.
[0092] Functions related to the control of the robot 200 provided by the robot controller 250 will be described later.
[0093] (c3: Teach Pendant 300)
[0094] Figure 6 It is a schematic diagram showing a hardware configuration example of the teach pendant 300 constituting the robot control system 1 of the present embodiment. Referring to Figure 6 , the teach pendant 300 includes a field network controller 352, a control processing circuit 360, and an operation key group 380.
[0095] The field network controller 352 exchanges data mainly with the control device 100 via the field network 20.
[0096] The control processing circuit 360 includes a processor 362, a main memory 366, firmware 370, and an interface circuit 368.
[0097] The processor 362 implements the processing required to operate the teaching pendant 300 by executing the firmware 370. The main memory 366 is constituted of a volatile storage device such as DRAM or SRAM, for example.
[0098] The interface circuit 368 exchanges signals with the operation key group 380.
[0099] The operation key group 380 is an input device that accepts user operations. The operation key group 380 may also include an indicator indicating the input state and the like.
[0100] (c4: Support device 400)
[0101] Figure 7 is a schematic diagram showing a hardware structure example of the support device 400 that constitutes the robot control system 1 of the present embodiment. The support device 400 is a development support device for developing programs and the like executed by the control device 100, and as an example, a general personal computer can also be used to implement it.
[0102] Refer to Figure 7 , the support device 400 includes a processor 402, a main memory 404, an input unit 406, a display unit 408, a storage device 410, an optical drive 412, a USB controller 420, and a communication controller 422. These components are connected via a processor bus 418.
[0103] The processor 402 is constituted of a CPU or a GPU, etc., and by reading out programs (as an example, the OS 4102 and the development program 4104) stored in the storage device 410, expanding and executing them in the main memory 404, various functions required for the support device 400 are thereby implemented.
[0104] The main memory 404 is constituted of a volatile storage device such as DRAM or SRAM, for example. The storage device 410 is constituted of a non-volatile storage device such as an HDD or an SSD, for example.
[0105] Stored in the storage device 410 are an OS 4102 for implementing basic functions, a development program 4104 for implementing a development environment, and the like. In the development environment, creation of programs executed by the control device 100, debugging of programs, setting related to the operation of the control device 100, setting related to the operation of devices connected to the control device 100, setting related to the field network 20, etc. can be performed.
[0106] The input unit 406 is constituted of a keyboard, a mouse, etc., and accepts user operations. The display unit 408 is constituted of a display, various indicators, etc., and displays the processing results of the processor 402 and the like.
[0107] The USB controller 420 exchanges data with the control device 100 and others via a USB connection. The communication controller 422 exchanges data with any information processing device via a higher-level network.
[0108] The support device 400 has an optical drive 412, reads a program stored in a storage medium 414 (such as an optical storage medium like a DVD (Digital Versatile Disc)) that non-volatilely stores a computer-readable program, and installs it in the storage 410 and others.
[0109] The development program 4104 and others executed by the support device 400 can be installed via a computer-readable storage medium 414, or can be installed in a form downloaded from a server device on a network. In addition, the functions provided by the support device 400 of the present embodiment may sometimes be implemented in a form that utilizes a part of the modules provided by the OS 4102.
[0110] In addition, during the operation of the robot control system 1, the support device 400 can also be detached from the control device 100.
[0111] (c5: Display device 500)
[0112] As an example, the display device 500 constituting the robot control system 1 of the present embodiment can also be implemented using a general-purpose personal computer. The basic hardware structure example of the display device 500 is the same as Figure 7 the hardware structure example of the support device 400 shown, and thus will not be described in detail here.
[0113] (c6: Server device 600)
[0114] As an example, the server device 600 constituting the robot control system 1 of the present embodiment can also be implemented using a general-purpose personal computer. The basic hardware structure example of the server device 600 is the same as Figure 7 the hardware structure example of the support device 400 shown, and thus will not be described in detail here.
[0115] (c7: Other methods)
[0116] In Figures 3 to 7In this case, a structural example of providing required functions by executing a program with one or more processors is shown. However, dedicated hardware circuits (e.g., ASIC (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array), etc.) can also be used to implement part or all of the provided functions.
[0117] Hardware conforming to a general architecture (e.g., an industrial personal computer based on a general personal computer) can also be used to implement the main part of the control device 100. In this case, virtualization technology can also be used to execute multiple OSs with different purposes in parallel, and execute required applications on each OS. Also, a structure in which functions such as the support device 400 and the display device 500 are integrated in the control device 100 can be adopted.
[0118] <D. Functional Structural Example>
[0119] An example of the functional structure for controlling the robot 200 will be described.
[0120] Figure 8 It is a schematic diagram showing an example of the functional structure for controlling the behavior of the robot 200 in the robot control system 1 of the present embodiment. Refer to Figure 8 , commands 158 for controlling the robot 200, etc. are exchanged between the control device 100 and one or more robot controllers 250.
[0121] The control device 100 includes an IEC program execution engine 150, a robot program execution engine 152, a communication control module 160, a communication driver 162, and an external communication interface 164. These components are typically also implemented by the processor 102 of the control device 100 executing the system program 1102.
[0122] The IEC program execution engine 150 periodically generates output values provided to the robot controller 250 by executing the IEC program 1104. More specifically, the IEC program execution engine 150 repeatedly executes the IEC program 1104 every prescribed control cycle. As the control cycle of the control device 100, typically several hundred μsec to several hundred msec or so is envisaged. Based on the execution of the IEC program 1104, the IEC program execution engine 150 outputs internal commands (e.g., start and stop of sending command 158, etc.) to the robot program execution engine 152, and / or obtains status values (e.g., the status of the robot program 1108 executed by the robot program execution engine 152) from the robot program execution engine 152.
[0123] The robot program execution engine 152 generates a command 158 indicating the behavior of the robot 200 by executing the robot program 1108. That is, the robot program execution engine 152 sequentially executes the robot program 1108 and sends the command 158 for controlling the robot 200 to one or more robot controllers 250, etc. More specifically, the robot program execution engine 152 includes a robot program interpretation module 154 and a command generation module 156.
[0124] The robot program interpretation module 154 sequentially reads and parses the robot program 1108, and outputs the internal command obtained by parsing to the command generation module 156. The robot program interpretation module 154 can interpret not only commands related to the behavior of the robot 200 described in the programming language included in the robot program 1108, but also commands related to signal input / output, file access, and communication.
[0125] The start, stop, etc. of the reading of the robot program 1108 by the robot program interpretation module 154 can also be controlled by the command generation module 156.
[0126] The command generation module 156 generates a command 158 for each robot controller 250 according to the internal command from the robot program interpretation module 154. In addition to the internal command from the robot program interpretation module 154, the command generation module 156 can also generate a command 158 for each robot controller 250 according to the operation instruction (internal command) from the teach pendant 300 and the internal command from the support device 400.
[0127] In this way, the command generation module 156 can receive internal commands from multiple sources and generate the command 158. Which source's internal command the command generation module 156 uses to generate the command 158 is executed by the source selection function 157 of the command generation module 156. That is, the source selection function 157 enables any one of the multiple sources to be valid. Details of the source selection function 157 will be described later.
[0128] The command generation module 156 functions as the host of one or more connected robot controllers 250. More specifically, the command generation module 156 controls the start and stop of the execution of the robot program 1108 in the robot program interpretation module 154 according to the internal command exchanged with the IEC program execution engine 150 and / or the internal command exchanged with the support device 400 via the external communication interface 164, and controls the start and stop of the generation of the command 158 for the robot controller 250.
[0129] The command generation module 156 can collect information such as status values and errors from the robot controller 250.
[0130] For ease of explanation, a structural example in which the robot program interpretation module 154 and the command generation module 156 are separated is shown, but these modules may also be integrally installed without being separated.
[0131] The communication control module 160 and the communication driver 162 correspond to the communication unit, and send the command 158 generated based on the information from the validated source among the multiple sources to the robot controller 250. In addition to the command 158, the communication control module 160 and the communication driver 162 also send the output value from the IEC program execution engine 150 to the robot controller 250.
[0132] The communication control module 160 manages the data exchange with one or more connected robot controllers 250. The communication control module 160 may also generate a communication instance for managing data communication for each connected robot controller 250, and use the generated communication instance to manage data communication.
[0133] The communication driver 162 is an internal interface for data communication with one or more connected robot controllers 250 by using the field network controller 108 (refer to Figure 3 ).
[0134] Each robot controller 250 includes a communication control module 280, a communication driver 282, a robot drive engine 284, and a signal output driver 292. These components can typically also be implemented by the processor 262 (control processing circuit 260) of the robot controller 250 executing the robot system program 2702.
[0135] The communication control module 280 manages the data exchange with the connected control device 100. The communication control module 280 may also generate a communication instance for managing data communication with the connected control device 100, and use the generated communication instance to manage data communication.
[0136] The communication driver 282 is an internal interface for data communication with the connected control device 100 by using the field network controller 252 (refer to Figure 4 ).
[0137] The communication control module 280 and the communication driver 282 correspond to the communication unit that receives the command 158 sent from the control device 100.
[0138] The robot drive engine 284 executes processing for driving the controlled robot 200 (including: the customized robot 200A and / or the general-purpose robot 200B) according to the command 158 from the control device 100, with reference to the setting information 2704 pre-transmitted from the control device 100. More specifically, the robot drive engine 284 includes a management module 286, a target trajectory generation module 288, and a command value generation module 290.
[0139] The management module 286 is equivalent to a processing execution unit that executes processing according to the output value from the control device 100. More specifically, the management module 286 manages the control mode, the start / end of generating the target trajectory according to the command 158, etc., according to the output value from the control device 100.
[0140] The target trajectory generation module 288 (target trajectory generation unit) generates the target trajectory of the controlled robot 200 (including: the customized robot 200A and / or the general-purpose robot 200B) according to the command 158 from the control device 100. Typically, the generated target trajectory includes the position of the end part of the robot 200 at each time (the change in position with respect to time) and / or the speed of the end part of the robot 200 at each time (the change in speed with respect to time), etc.
[0141] The target trajectory generation module 288 can output the generated target trajectory to the command value generation module 290 (typically, in the case of driving the Figure 4 shown customized robot 200A), or can directly output it to the robot 200 via the signal output driver 292 (typically, in the case of driving the Figure 5 shown general-purpose robot 200B).
[0142] The command value generation module 290 sequentially generates command values for driving each axis of the robot 200 in a manner that realizes the behavior indicated by the command 158 from the control device 100. More specifically, the command value generation module 290 sequentially generates command values for each motor 230 that constitutes the controlled robot 200 according to the target trajectory generated by the target trajectory generation module 288. The command value generation module 290 can also update the command values every prescribed control cycle or every prescribed event.
[0143] As the control cycle of the target trajectory generation module 288 of the robot controller 250, typically, it is envisioned to be several hundred μsec to several hundred msec of the same order as the control cycle of the control device 100. On the other hand, it is envisioned that the control cycle of the command value generation module 290 of the robot controller 250 is faster than the control cycle of the target trajectory generation module 288 (for example, about several to more than ten times).
[0144] More specifically, the command value generation module 290 calculates each command value provided to the motor 230 for driving the robot 200 along the target trajectory based on the kinematics of the controlled robot 200. The command value generation module 290 calculates the target position (change in position / angle with respect to time), target speed (change in speed / angular speed with respect to time), target acceleration (change in acceleration / anglular acceleration with respect to time), and / or jerk (change in jerk / anglular jerk with respect to time), etc., as the command values provided to the motor 230.
[0145] The robot drive engine 284 may also refer to the setting information 2704 (refer to Figure 4 ) to obtain the parameters required for calculating the target trajectory and / or command values.
[0146] For ease of explanation, a structural example in which the target trajectory generation module 288 and the command value generation module 290 are separated is shown, but these modules may also be integrally installed without being separated.
[0147] The signal output driver 292 is an internal interface for outputting the command value and / or the target trajectory to one or more connected drive circuits 220 and / or the robot 200 by using the interface circuit 268 (refer to Figure 4 ).
[0148] <E. Processes Executed by the Control Device 100>
[0149] As described above, the robot program 1108 is a program for controlling the behavior of the robot 200. However, in order to control the behavior of the robot 200, for example, it is also necessary to control the timing of starting / stopping the operation of the robot 200, the conditions for operating the robot 200 (e.g., cooperation with equipment in the previous or subsequent processes), the safety conditions of the robot 200, etc.
[0150] Therefore, in the control device 100, not only can the robot program 1108 be executed, but the IEC program 1104 can also be executed in parallel. The IEC program 1104 may also include logic for collecting status values related to the operation of the robot 200 and determining the timing of starting / stopping the operation of the robot 200.
[0151] Figure 9 is a diagram showing an example of the IEC program 1104 and the robot program 1108 executed by the control device 100 constituting the robot control system 1 of the present embodiment.
[0152] Figure 9 An example of the IEC program 1104 described in ladder diagram (LD language) is shown in (A) of Figure 9The example of the IEC program 1104 shown in (A) includes commands related to the process of turning on the power of the controlled robot 200 and the process of performing calibration of the controlled robot 200.
[0153] In addition, as Figure 9 shown in (A), the IEC program 1104 may also include function blocks as elements. Moreover, the IEC program 1104 may also include code described in structured text (ST language).
[0154] Figure 9 (B) shows an example of the robot program 1108 described in V+ language. As Figure 9 shown in (B), the V+ language is a high-level language for controlling the behavior of the robot 200.
[0155] Next, the parallel execution of the IEC program 1104 and the robot program 1108 in the control device 100 will be described.
[0156] Figure 10 is a timing chart showing an execution example of the program in the control device 100 constituting the robot control system 1 of the present embodiment. As Figure 10 shown, in the control device 100, the IEC program execution engine 150 and the robot program execution engine 152 (the robot program interpretation module 154 and the command generation module 156) execute processes independently.
[0157] The IEC program execution engine 150 repeatedly executes (loops) the IEC program 1104 every predetermined control cycle T1. The loop execution of the IEC program 1104 includes an output update process 1502 and an input update process 1504.
[0158] The output update process 1502 includes the process of reflecting the output value determined by the execution of the IEC program 1104 to internal variables and / or target devices. In particular, the output value for the devices connected via the field network 20 is saved in the communication frame and sent to the field network 20.
[0159] The input update process 1504 includes the process of obtaining the input values (status values) required for the execution of the IEC program 1104 from internal variables and / or target devices. In particular, the input values from the devices connected via the field network 20 are obtained from the communication frames propagated on the field network 20.
[0160] The communication control module 160 transmits communication frames on the field network 20 synchronously with the control period T1, and receives the communication frames that circulate and return on the field network 20. The communication control module 160 stores the output values generated by the IEC program execution engine 150 and / or the commands 158 generated by the command generation module 156 in the communication frames, and holds the input values (status values) included in the returned communication frames in a manner that can be referred to by the IEC program execution engine 150 and the command generation module 156.
[0161] The command generation module 156 generates a command 158 according to an internal command from the robot program interpretation module 154. Typically, the timing for the command generation module 156 to generate the command 158 is determined by the output value from the IEC program execution engine 150. In Figure 10 the example shown, an example is shown in which the command generation module 156 generates a command 158 in response to the output value from the IEC program execution engine 150. The generation of the command 158 by the command generation module 156 can also be synchronized with the timing of the output update process 1502 of the IEC program execution engine 150.
[0162] The robot program interpretation module 154 typically executes the robot program 1108 independently of the control period T1. The start / stop of the execution of the robot program 1108 by the robot program interpretation module 154 can also be controlled by the command generation module 156.
[0163] As Figure 10 shown, the robot program execution engine 152 sequentially executes the robot program 1108. Independently of the execution of the robot program 1108 by the robot program execution engine 152, the IEC program execution engine 150 cyclically executes the IEC program 1104.
[0164] <F. Source Selection Function>
[0165] Next, a specific example of the source selection function 157 will be described.
[0166] Figure 11 is a schematic diagram generally showing the data processing including the source selection function 157 in the robot control system 1 of the present embodiment. Referring to Figure 11 , the robot program execution engine 152 of the control device 100 is input with a robot program 1108 described in a specified programming language, an operation instruction (internal command) from the operation teaching pendant 300, and internal commands from the support device 400 and the IEC program execution engine 150.
[0167] The source selection function 157 of the command generation module 156 selects from which of the multiple sources to generate the command 158.
[0168] (1) Case of selecting the robot program 1108 as the source
[0169] In the case of selecting the robot program 1108 as the source, first, the robot program 1108 is input into the robot program interpretation module 154. Then, the robot program interpretation module 154 interprets the robot program 1108 and generates internal commands. In addition, the command generation module 156 generates a command 158 according to the generated internal commands.
[0170] That is, in the case of generating the command 158 according to the robot program 1108, the robot program interpretation module 154 (program interpretation unit) that sequentially executes the robot program 1108 becomes the source.
[0171] For example, in a production facility where multiple robots 200 are arranged on the same production line and each robot 200 performs different operations, different robot programs 1108 for each robot 200 are input into the robot program execution engine 152. In addition, in a production facility where multiple identical production lines are arranged in parallel and robots 200 performing the same operations are arranged on each production line, a common robot program 1108 can also be input into the robot program execution engine 152. However, the generated commands 158 can also be sent to the robot controller 250 independently.
[0172] In addition, multiple robot programs 1108 described in different programming languages (for example, V+ language and G code) can be input into the robot program execution engine 152. Even when the robot program execution engine 152 receives robot programs 1108 described in different programming languages, it can generate commands 158 described according to a common command system. In this way, the robot program execution engine 152 can be configured to be able to interpret multiple programming languages and generate commands 158 according to a predetermined command system without depending on the programming language.
[0173] (2) Case of selecting the teach pendant 300 as the source
[0174] In the case of selecting the teach pendant 300 as the source, operation instructions corresponding to the user operations on the teach pendant 300 are input into the control device 100 via the field network 20. Then, the operation instructions received from the teach pendant 300 are provided to the command generation module 156 as internal commands. The command generation module 156 generates a command 158 according to the operation instructions from the teach pendant 300.
[0175] That is, in the case of generating the command 158 according to the operation instructions from the teach pendant 300, the teach pendant 300 (operation unit) that is network-connected to the control device 100 and generates operation instructions according to user operations becomes the source.
[0176] Typically, the teach pendant 300 is used to perform operations (teaching operations) for determining the behavior of the robot 200, etc. Therefore, an operation instruction for moving the end effector of the robot 200 in an arbitrary direction is output from the teach pendant 300. The command generation module 156 generates a command 158 for moving the end effector of the robot 200 in a specified direction according to the operation instruction from the teach pendant 300.
[0177] (3) Case of selecting the support device 400 as the source
[0178] In the case of selecting the support device 400 as the source, the internal command generated by the support device 400 is input to the command generation module 156. The command generation module 156 generates a command 158 according to the internal command from the support device 400. The generation of the internal command of the support device 400 can be achieved by the processor 402 of the support device 400 executing the development program 4104, or can be generated by the user explicitly operating to generate the internal command.
[0179] That is, in the case of generating the command 158 according to the internal command from the support device 400, the support device 400 (development assistance device) connected to the control device 100 and providing information according to user operations or program execution becomes the source.
[0180] (4) Case of selecting the IEC program execution engine 150 as the source
[0181] In the case of selecting the IEC program execution engine 150 as the source, the output value determined by executing the IEC program 1104 by the IEC program execution engine 150 is input to the command generation module 156 as an internal command. For example, when a certain condition is satisfied, an output value for stopping the robot 200 can be input to the command generation module 156, and a command 158 corresponding to the output value is output to the robot controller 250.
[0182] As described above, through the source selection function 157, the source for generating the command 158 among the multiple sources is made valid. In addition, the source for generating the command 158 is not limited to the above 4. For example, the IEC program 1104 (or the IEC program execution engine 150) that directly outputs the internal command can also be used as the source. Furthermore, in the case of multiple teach pendants 300 or multiple support devices 400, they can be set as independent sources respectively. As the external device, it is not limited to the support device 400, and any information processing device such as an HMI (human machine interface) can also be used.
[0183] Command 158 may also be generated separately for one or more connected robot controllers 250.
[0184] The generated command 158 is sent to the corresponding robot controller 250 via the field network 20 (refer to Figure 2 ). When the control device 100 is network-connected to a plurality of robot controllers 250, command 158 is sent to each of the plurality of robot controllers 250.
[0185] The target trajectory generation module 288 of the robot controller 250 generates a target trajectory according to command 158 from the control device 100. The generated target trajectory may also be directly output to the general-purpose robot 200B. That is, the robot controller 250 may also output the target trajectory to the outside.
[0186] On the other hand, the command value generation module 290 of the robot controller 250 generates command values for each motor 230 constituting the controlled robot 200 according to the generated target trajectory.
[0187] In addition, as the command system for specifying command 158, any system may be adopted. From the viewpoint of reducing the processing related to the generation of command 158, it is preferable to adopt a command group that can be easily generated according to the commands described in the robot program 1108.
[0188] <G. Installation Examples and Application Examples of the Source Selection Function>
[0189] Next, installation examples and application examples of the source selection function 157 will be described.
[0190] Figure 12 is a schematic diagram showing an installation example of the source selection function 157 in the robot control system 1 of the present embodiment. Refer to Figure 12 , the source selection function 157 included in the command generation module 156 includes an internal selector 1572 and a selection flag 1574.
[0191] The internal selector 1572 selects one source corresponding to the value of the selection flag 1574 from the input plurality of sources and outputs it.
[0192] The value of the selection flag 1574 can be updated according to instructions from the IEC program execution engine 150 and / or the support device 400. The source selected by the internal selector 1572 is connected to the command generation engine 1562 that is the entity for generating command 158. The command generation engine 1562 generates command 158 according to internal commands and the like from the selected source.
[0193] In this way, it is possible to select or determine the source to be validated from multiple sources according to instructions from the IEC program execution engine 150 and / or the support device 400. In particular, when using the instructions from the support device 400, the source selection function 157 of the command generation module 156 validates a specific source according to the instructions externally provided to the control device 100.
[0194] Alternatively, the source selection function 157 of the command generation module 156 can determine the source to be validated according to a predetermined setting. In this case, for example, a priority order such as the teach pendant 300 > the support device 400 > the IEC program execution engine 150 > the robot program 1108 can also be predetermined. When internal commands and the like are input from multiple sources, the source with the highest priority order is validated.
[0195] For example, when the operation of the teach pendant 300 is set to the highest priority, even in a state where the command 158 is generated by the execution of the robot program 1108, by operating the teach pendant 300 by the user, the operation of the teach pendant 300 can be prioritized. Such processing corresponding to the priority order is suitable for the robot 200 etc. that require frequent user intervention.
[0196] As described above, depending on which source is validated by the source selection function 157 of the command generation module 156, the generation characteristics of the instruction values used to drive the respective axes of the robot 200 are different.
[0197] For example, when information such as internal commands is provided from multiple sources respectively, the source to be validated can also be determined according to a predetermined priority order. For example, in a state where the above-mentioned priority order is set, when the operation instruction from the teach pendant 300 conflicts with the internal command from the robot program execution engine 152, the operation instruction from the teach pendant 300 is prioritized.
[0198] In this way, the predetermined setting can also include the priority order regarding the sources. Moreover, the source selection function 157 can also validate the source with a higher priority order when information is provided from multiple sources respectively. According to this structure, it is possible to automatically determine the source as the generation source of the command according to the priority order.
[0199] Figure 13 It is a diagram showing an example of making the generation characteristics of the instruction values in the robot control system 1 of the present embodiment different. Refer to Figure 13 , it is also possible to make the allowable upper limit speed of each source different. It is also possible to apply the corresponding upper limit speed according to the validated source.
[0200] Figure 14This is a schematic diagram showing a structural example in the control device 100 of the robot control system 1 according to the present embodiment, where the generation characteristics of command values are made different. Refer to Figure 14 , in the storage 110 of the control device 100, as the setting information 1109, it includes Figure 13 a parameter set for each source corresponding to the generation characteristics of the command value as shown.
[0201] The command generation engine 1562 included in the command generation module 156 refers to the value of the selection flag 1574 and selects the parameter set corresponding to the selection flag 1574. The command generation engine 1562 refers to the selected parameters and generates a command 158 according to the internal command from the enabled source.
[0202] The generated command 158 corresponds to the selected parameters. For example, the generated command 158 includes an indication such as the upper limit speed specified by the corresponding parameters.
[0203] In this way, when selecting the source to be enabled according to the instruction from the IEC program execution engine 150 and / or the support device 400, a command 158 corresponding to the selected source is generated. By generating a command 158 whose characteristics vary according to the selected source, the generation characteristics of the command value output from the robot controller 250 can be made different according to the source.
[0204] Figure 15 This is a schematic diagram showing another structural example in the control device 100 of the robot control system 1 according to the present embodiment, where the generation characteristics of command values are made different. Refer to Figure 15 , the management module 286 of the control device 100 has a selection flag 2864.
[0205] The value of the selection flag 1574 of the command generation module 156 (control device 100) is notified to the robot controller 250, and the notified value is reflected in the selection flag 2864. The value of the selection flag 1574 is notified from the control device 100 to the robot controller 250 via the field network 20. In this way, the value of the selection flag 1574 of the control device 100 is reflected in the selection flag 2864 of the robot controller 250. That is, the communication unit 50 of the control device 100 notifies the robot controller 250 which source the source selection function 157 enables.
[0206] In addition, the management module 286 of the robot controller 250 includes Figure 13 a parameter set for each source corresponding to the generation characteristics of the command value as shown as the setting information 2704. The management module 286 selects the parameter set corresponding to the value of the selection flag 2864 from the parameter sets for each source. The target trajectory generation module 288 and / or the command value generation module 290 (refer to Figure 8)Perform processing with reference to the selected parameter set.
[0207] Thus, if the value of the selection flag 1574 of the control device 100 is updated by an instruction from the IEC program execution engine 150 and / or the support device 400, the updated value is reflected in the selection flag 2864. Moreover, by selecting and referring to the parameter set corresponding to the selection flag 2864, the generation characteristics of the instruction value output from the robot controller 250 can be made different according to the source.
[0208] <H. Processing Steps>
[0209] Next, the processing steps in the robot control system 1 of the present embodiment will be described.
[0210] (h1: Control Device 100)
[0211] In the control device 100, the processing of the IEC program execution engine 150 and the processing of the robot program execution engine 152 (robot program interpretation module 154 and command generation module 156) are executed in parallel.
[0212] Figure 16 It is a flowchart showing the processing steps of the IEC program execution engine 150 of the control device 100 constituting the robot control system 1 of the present embodiment. Figure 16 Typically, each of the steps shown can also be implemented by the processor 102 of the control device 100 executing the system program 1102.
[0213] As the processing of the IEC program execution engine 150, the control device 100 determines whether the next control cycle has arrived (step S100). If the next control cycle has not arrived (in step S100, "no"), the control device 100 waits for processing until the next control cycle arrives.
[0214] If the next control cycle arrives (in step S100, "yes"), the control device 100 outputs the output value determined by the execution of the IEC program 1104 in the previous control cycle (step S102). The processing of outputting the output value includes updating the value of the selection flag 1574 of the robot program execution engine 152 (refer to Figure 12 ).
[0215] Next, the control device 100 acquires the latest input value (step S104), and executes the IEC program 1104 using the acquired latest input value to determine the output value (step S106). Then, the processing below step S100 is repeated.
[0216] Figure 17It is a flowchart showing the processing steps of the robot program execution engine 152 of the control device 100 that constitutes the robot control system 1 of the present embodiment. Figure 17 Typically, each of the steps shown can also be implemented by the processor 102 of the control device 100 executing the system program 1102.
[0217] As processing related to the robot program execution engine 152, the control device 100 acquires the value of the selection flag 1574 (step S150). The value of the selection flag 1574 may sometimes be updated by the IEC program execution engine 150, and may sometimes be updated by an instruction from an external device such as the support device 400.
[0218] The control device 100 determines which source the value of the selection flag 1574 corresponds to (step S152). That is, the control device 100 validates any one of the multiple sources that provide information for generating the command 158.
[0219] When the selection flag 1574 indicates a value corresponding to the robot program 1108 (in step S152, it is "robot program"), the control device 100 sequentially reads in the target robot program 1108 (step S154), parses the read robot program 1108 to generate an internal command (step S156). Then, the control device 100 generates the command 158 according to the generated internal command (step S158).
[0220] When the selection flag 1574 indicates a value corresponding to the teach pendant 300 (in step S152, it is "teach pendant"), the control device 100 acquires an operation instruction (internal command) from the teach pendant 300 (step S160), and generates the command 158 according to the acquired operation instruction (step S162).
[0221] When the selection flag 1574 indicates a value corresponding to the support device 400 (in step S152, it is "support device"), the control device 100 acquires an internal command from the support device 400 (step S164), and generates the command 158 according to the internal command corresponding to the acquired operation instruction (step S166).
[0222] The control device 100 determines whether the output start condition of the command 158 is satisfied (step S168). The output start condition of the command 158 can also be specified by appropriately combining the output value from the IEC program execution engine 150, the input value from the robot controller 250, the instruction from the support device 400, and any other information.
[0223] If the output start condition of command 158 is satisfied (in the case of "Yes" in step S168), the control device 100 determines whether the next control cycle has arrived (step S170). If the next control cycle has not arrived (in the case of "No" in step S170), the control device 100 waits for processing until the next control cycle arrives.
[0224] If the next control cycle has arrived (in the case of "Yes" in step S170), the control device 100 outputs the pre-generated command 158 (step S172).
[0225] If the output start condition of command 158 is not satisfied (in the case of "No" in step S168), the control device 100 skips the processing of steps S170 and S172.
[0226] Then, the processing below step S150 is repeated.
[0227] Figure 18 FIG. is a flowchart showing the processing steps in the robot controller 250 that constitutes the robot control system 1 of the present embodiment. Figure 18 Each of the steps shown can also be implemented by the processor 262 (control processing circuit 260) of the robot controller 250 executing the robot system program 2702.
[0228] As Figure 18 shown, in the robot controller 250, the processing of the target trajectory generation module 288 and the processing of the command value generation module 290 are executed in parallel.
[0229] As processing related to the target trajectory generation module 288, the robot controller 250 determines whether it has received command 158 from the control device 100 (step S200). That is, the robot controller 250 executes the process of receiving command 158 sent from the control device 100.
[0230] If it has not received command 158 from the control device 100 (in the case of "No" in step S200), the robot controller 250 repeats the processing of step S200.
[0231] If it has received command 158 from the control device 100 (in the case of "Yes" in step S200), the robot controller 250 determines whether it has received all of command 158 (step S202). If it has received only a part of command 158 (in the case of "No" in step S202), the robot controller 250 repeats the processing below step S200.
[0232] If all commands 158 are received (in the case of "Yes" in step S202), the robot controller 250 generates a target trajectory in accordance with the received commands 158 (step S204). Then, the processes below step S200 are repeated.
[0233] On the other hand, as a process related to the command value generation module 290, the robot controller 250 determines whether the next control cycle has arrived (step S250). If the next control cycle has not arrived (in the case of "No" in step S250), the robot controller 250 waits for processing until the next control cycle arrives.
[0234] If the next control cycle has arrived (in the case of "Yes" in step S250), the robot controller 250 determines whether the output condition of the command value for the robot 200 is satisfied (step S252). The output condition of the command value for the robot 200 can also be defined by appropriately combining the latest output value sent from the control device 100, the status value held by the management module 286, the status value acquired by the robot controller 250, and any other information.
[0235] If the output condition of the command value for the robot 200 is not satisfied (in the case of "No" in step S252), the robot controller 250 skips the processes of steps S254 and S256.
[0236] If the output condition of the command value for the robot 200 is satisfied (in the case of "Yes" in step S252), the robot controller 250 sequentially generates command values for driving the respective axes of the robot 200 in such a manner as to achieve the behavior indicated by the command 158 from the control device 100 (steps S254 to S256). More specifically, the robot controller 250 generates command values for the respective motors 230 constituting the controlled robot 200 in accordance with the pre-generated target trajectory (step S254). Then, the robot controller 250 outputs the generated respective command values (step S256).
[0237] Then, the processes below step S250 are repeated.
[0238] <I. Remarks>
[0239] The present embodiment as described above includes the following technical ideas.
[0240] [Structure 1]
[0241] A robot control system (1), wherein the robot control system (1) has:
[0242] A first control device (100); and
[0243] The second control device (250), which is network-connected to the first control device and is configured to control the robot (200),
[0244] The first control device includes:
[0245] A selection unit (157) that validates any one of a plurality of sources that provide information for generating a command (158) for instructing the behavior of the robot; and
[0246] A first communication unit (50) that sends the command generated according to the information from the validated source among the plurality of sources to the second control device,
[0247] The second control device includes:
[0248] A second communication unit (60) that receives the command sent from the first control device; and
[0249] An instruction value generation unit (290) that sequentially generates instruction values for driving each axis of the robot in a manner that realizes the behavior indicated by the command from the first control device.
[0250] [Structure 2]
[0251] In the robot control system described in Structure 1,
[0252] The plurality of sources include multiple sources among the following sources:
[0253] A program interpretation unit (154) that sequentially executes a robot program (1108);
[0254] An operation unit (300) that is network-connected to the first control device and generates an operation instruction according to a user operation;
[0255] A development assistance device (400) that is connected to the first control device and provides information according to a user operation or program execution; and
[0256] A program execution unit (150) that executes an IEC program (1104).
[0257] [Structure 3]
[0258] In the robot control system described in Structure 1 or 2,
[0259] The selection unit validates a specific source according to an instruction provided to the first control device from the outside.
[0260] [Structure 4]
[0261] In the robot control system according to any one of Structures 1 to 3,
[0262] The selection unit determines a source to be validated according to a predetermined setting.
[0263] [Structure 5]
[0264] In the robot control system according to Structure 4,
[0265] The predetermined setting includes the priority order of sources.
[0266] When information is provided from multiple sources respectively, the selection unit validates the source with a higher priority order.
[0267] [Structure 6]
[0268] In the robot control system according to any one of Structures 1 to 5,
[0269] The first communication unit notifies the second control device of which source is validated by the selection unit.
[0270] [Structure 7]
[0271] In the robot control system according to Structure 6,
[0272] According to which source is validated by the selection unit, the command value generation unit makes the generation characteristics of the command values for driving the respective axes of the robot different.
[0273] [Structure 8]
[0274] A control method, which is a control method in a robot control system (1), the robot control system (1) having: a first control device (100); and a second control device (250), which is network-connected to the first control device and is used to control a robot (200), wherein the control method includes the following steps:
[0275] Step (S152), the first control device validates any one of a plurality of sources that provide information for generating a command for instructing the behavior of the robot;
[0276] Step (S172), the first control device sends a command generated according to the information from the validated source among the plurality of sources to the second control device;
[0277] Step (S200), the second control device receives the command sent from the first control device; and
[0278] Steps (S254 to S256), the second control device generates command values for driving each axis of the robot in sequence in such a manner as to achieve the behavior indicated by the command from the first control device.
[0279] <J. Advantages>
[0280] In the robot control system 1 of the present embodiment, multiple sources can be selectively validated. Therefore, not only can the control be performed according to the original robot program 1108, but also the robot 200 can be controlled according to information from other sources. As a result, the robot control system 1 can be utilized flexibly.
[0281] In addition, in the robot control system 1 of the present embodiment, the control device 100 and the robot controller 250 cooperate to control the behavior of the robot 200. By adopting such a configuration, the processing load can be dispersed. As a result, even if the processing capacity of the control device 100 is not high, the behavior of multiple robots 200 can be controlled.
[0282] The embodiments disclosed herein should be considered illustrative in all respects and not restrictive. The scope of the present invention is represented by the claims, not by the above description, and is intended to include meanings equivalent to the claims and all modifications within the scope.
[0283] Reference Numeral Explanation
[0284] 1: Robot control system; 12: Host network; 20: Field network; 50, 60: Communication unit; 100: Control device; 102, 262, 362, 402: Processor; 104, 266, 366, 404: Main memory; 106: Host network controller; 108, 252, 352: Field network controller; 110, 270, 410: Storage; 112: Memory card interface; 114: Memory card; 116: Local bus controller; 118, 418: Processor bus; 120, 420: USB controller; 122: Local bus; 130: Functional unit; 150: IEC program execution engine; 152: Robot program execution engine; 154: Robot program interpretation module; 156: Command generation module; 157: Source selection function; 158: Command; 160, 280: Communication control module; 162, 282: Communication driver; 164: External communication interface; 200: Robot; 200A: Customized robot; 200B: General-purpose robot; 210: Arm; 220: Drive circuit; 230: Motor; 250: Robot controller; 260, 360: Control processing circuit; 268, 368: Interface circuit; 284: Robot drive engine; 286: Management module; 288: Target trajectory generation module; 290: Command value generation module; 292: Signal output driver; 300: Teach pendant; 370: Firmware; 380: Operation key group; 400: Support device; 406: Input unit; 408: Display unit; 412: Optical drive; 414: Storage medium; 422: Communication controller; 500: Display device; 600: Server device; 1102: System program; 1104: IEC program; 1108: Robot program; 1109, 2704: Setting information; 1502: Output update process; 1504: Input update process; 1562: Command generation engine; 1572: Internal selector; 1574, 2864: Selection flag; 2702: Robot system program; 4104: Development program; T1: Control cycle.
Claims
1. A robot control system, wherein, The robot control system has: A first control device; and A second control device, which is network-connected to the first control device and is used to control the robot. The first control device has: A command generation unit, which includes a selection unit, generates a command for instructing the behavior of the robot, and multiple sources that provide information for generating the command can be connected to the command generation unit. The selection unit selects from which of the multiple sources to generate the command. And A first communication unit, which sends the command generated by the command generation unit according to the information from the selected source among the multiple sources to the second control device and notifies the second control device of which source has been selected. The second control device has: A second communication unit, which receives the command sent from the first control device; and An instruction value generation unit, which sequentially generates instruction values for driving each axis of the robot in a manner that realizes the behavior indicated by the command from the first control device. According to which source is selected, the generation characteristics of the instruction values for driving each axis of the robot are different.
2. The robot control system according to claim 1, wherein, The multiple sources include multiple sources among the following sources: A program interpretation unit, which sequentially executes a robot program; An operation unit, which is network-connected to the first control device and generates an operation instruction according to a user operation; A development assistance device, which is connected to the first control device and provides information according to a user operation or program execution; And A program execution unit, which executes an IEC program.
3. The robot control system according to claim 1, wherein, The selection unit selects a specific source according to an instruction provided to the first control device from the outside.
4. The robot control system according to any one of claims 1 to 3, wherein, The selection unit determines the source to be selected according to a preset setting.
5. The robot control system according to claim 4, wherein, The preset setting includes the priority order of the sources. The selection unit selects the source with a higher priority order when information is provided from multiple sources respectively.
6. A control method, which is a control method in a robot control system, the robot control system having: a first control device; and a second control device, which is network-connected to the first control device and is used to control the robot, wherein, This control method has the following steps: The first control device selects any one of the multiple sources that provide information for generating a command for instructing the behavior of the robot. Generate a command according to the information from the selected source among the multiple sources. The first control device sends the generated command to the second control device. The first control device notifies the second control device of which source has been selected. The second control device receives the command sent from the first control device. The second control device sequentially generates instruction values for driving each axis of the robot in a manner that realizes the behavior indicated by the command from the first control device; and The second control device, according to which source is selected, has different generation characteristics of the instruction values for driving each axis of the robot.
Citation Information
Patent Citations
Control system and mounting device
JP2018196908A
Robotics Systems
US20090254217A1
Robot control unit
US6208104B1