Program management device, robot control system, and program management method
The program management device and method streamline robot operation management by facilitating automated program selection and distribution, improving convenience and reducing risks in robot control systems.
Patent Information
- Application Number
- JP2023505592
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-03-08
- Filing Date
- 2022-03-08
- Publication Date
- 2025-09-17
- Estimated Expiration
- 2042-03-08
AI Technical Summary
Existing robot control systems face challenges in managing multiple robot operations efficiently, particularly in switching between programs and ensuring timely and authorized program execution, which can lead to inefficiencies and increased risk of unintended operations.
A program management device and method that includes a communication unit, storage unit, and control unit, enabling seamless communication and program management between robot control units and linkage control units, allowing for automated program selection and distribution based on user input, thereby simplifying the installation and execution of programs.
Enhances convenience and reduces the risk of unauthorized operations by automating program management, ensuring timely and appropriate program execution, and optimizing resource usage in robot control systems.
Smart Images

Figure 0007741166000001 
Figure 0007741166000002 
Figure 0007741166000003
Abstract
Description
Cross-reference to related applications
[0001] This application claims priority to Japanese Patent Application No. 2021-36686 (filed March 8, 2021), the entire disclosure of which is incorporated herein by reference. [Technical Field]
[0002] The present disclosure relates to a program management device, a robot control system, and a program management method. [Background technology]
[0003] Conventionally, a configuration in which the operations of multiple robots are controlled by a programmable logic controller (PLC) has been known. For example, Patent Document 1 describes a robot control system configured to enable multiple robots to be operated by an operation panel via a switching means. Furthermore, Patent Document 2 describes a configuration in which a sequence to be executed by the robots is controlled by a sequencer. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] Japanese Patent Application Publication No. 2-274483 [Patent Document 2] Japanese Patent Application Publication No. 61-23201 Summary of the Invention
[0005] A program management device according to an embodiment of the present disclosure includes a communication unit, a storage unit, and a control unit. The communication unit is configured to be able to communicate with at least one robot control unit. The storage unit stores a plurality of first programs that are executed by the at least one robot control unit and control the operation of the robot. The control unit outputs at least one first program selected from the plurality of first programs based on a request from a linkage control unit that can link with the at least one robot control unit to at least one specific robot control unit that is scheduled to link with the linkage control unit.
[0006] A program management device according to an embodiment of the present disclosure includes an interface that accepts user input, a communication unit, a storage unit, and a control unit. The communication unit is configured to be able to communicate with at least one robot control unit capable of controlling at least one robot and at least one linkage control unit capable of linking with the at least one robot control unit. The storage unit stores at least one first program executable by the at least one robot control unit and at least one second program executable by the at least one linkage control unit. The control unit is connected to the interface, the communication unit, and the storage unit. The control unit outputs a specific second program corresponding to the specific at least one first program selected based on the input to a specific linkage control unit that is to link with the specific at least one robot control unit that is to execute the specific at least one first program.
[0007] A program management device according to an embodiment of the present disclosure includes an interface that accepts user input, a communication unit, a storage unit, and a control unit. The communication unit is configured to be able to communicate with at least one robot control unit capable of controlling at least one robot and at least one linkage control unit capable of linking with the at least one robot control unit. The storage unit stores at least one first program executable by the at least one robot control unit and at least one second program executable by the at least one linkage control unit. The control unit is connected to the interface, the communication unit, and the storage unit. The control unit outputs the at least one specific first program corresponding to the specific second program selected based on the input to a specific linkage control unit that is scheduled to execute the specific second program and to at least one specific robot control unit that is scheduled to link with the specific linkage control unit.
[0008] A robot control system according to an embodiment of the present disclosure includes the program management device, the robot control unit, and the linkage control unit.
[0009] A program management method according to an embodiment of the present disclosure includes storing a plurality of first programs to be executed by at least one robot control unit that controls the operation of a robot, and outputting at least one first program selected from the plurality of first programs by a linkage control unit that can link with the at least one robot control unit to the robot control unit selected from the at least one robot control unit by the linkage control unit. [Brief explanation of the drawings]
[0010] [Figure 1] FIG. 1 is a schematic diagram illustrating an example of the configuration of a robot control system according to an embodiment. [Figure 2] 1 is a block diagram illustrating an example of the configuration of a robot control system according to an embodiment. [Figure 3] FIG. 1 is a schematic diagram showing an example of a configuration in which a robot and an external device work together. [Figure 4] 10 is a flowchart showing an example of a procedure for preparatory preparation for a program. [Figure 5] 10 is a table showing an example of input port and output port settings. [Figure 6] FIG. 10 is a diagram showing an example of a user interface for setting the relationship between input ports and output ports between a PLC and a robot control device or an external device. [Figure 7] FIG. 10 is a diagram showing an example of a user interface for setting the relationship between input ports and output ports between the robot control device and an external device. [Figure 8] 10 is a flowchart showing an example of a procedure for selecting a program and causing a robot to perform a task. [Figure 9] 10 is a flowchart showing an example of an operation based on a selected program. [Figure 10] FIG. 2 is a diagram showing an example of a ladder diagram corresponding to a ladder program. [Figure 11] FIG. 10 is a diagram showing an example of a data flow when a program is selected and a robot is caused to perform a task. DETAILED DESCRIPTION OF THE INVENTION
[0011] A robot controller controls the robot's movements by executing pre-written programs. The robot controller must switch between programs to make the robot perform multiple movements. There is a demand for improved convenience in managing the programs that correspond to each movement the robot is to perform.
[0012] (Overview of Robot Control System 1) 1 and 2, a robot control system 1 according to one embodiment includes a server 10, a terminal device 20, a robot 40, a robot control device 41, and a programmable logic controller (PLC) 60. The robot control device 41 controls the robot 40. The robot control system 1 further includes an external device 50, although this is not essential.
[0013] The robot control system 1 according to this embodiment has the PLC 60 select an operation to be performed by the robot 40. That is, an operator, who is a user of the robot control system 1, can select an operation to be performed by the robot 40 by operating the PLC 60. The robot control system 1 stores in advance a program for causing the robot 40 to perform an operation, and downloads the program to the robot control device 41 based on the operation selected by the PLC 60. The robot control system 1 generates a ladder program for linking the PLC 60 with the robot control device 41 based on the program downloaded to the robot control device 41, and downloads the ladder program to the PLC 60.
[0014] When the robot control system 1 includes an external device 50, the PLC 60 instructs the external device 50 to operate. The robot control system 1 generates a ladder program so that the PLC 60 links the external device 50 with the robot 40. In this way, the robot control system 1 links the robot 40 with the external device 50.
[0015] A system according to a comparative example may have a configuration in which an operator individually copies a program to the robot control device. On the other hand, according to the robot control system 1 according to the present embodiment, the copying process can be omitted. Furthermore, by downloading a program to the robot control device 41 as needed, memory in the robot control device 41 can be saved. Furthermore, by downloading a program to the robot control device 41 only when it is desired to operate the robot 40, the risk of the robot 40 operating at an unintended timing can be reduced. In the system according to the comparative example, the task of copying a program to the robot control device can be performed by an operator operating a terminal device. On the other hand, in the robot control system 1 according to the present embodiment, the operator can select a program via the PLC 60, which allows the program to be easily installed in the robot control device 41, thereby improving the convenience of managing the program that operates the robot 40.
[0016] Furthermore, in the system according to the comparative example, even if a program is copied to the robot control device, if the ladder program of the PLC does not correspond to the program, the operator cannot control the operation of the robot using only the PLC. On the other hand, the robot control system 1 according to this embodiment can generate a ladder program corresponding to the selected program and download it to the PLC 60. Therefore, the operator can operate the robot 40 simply by operating the PLC 60.
[0017] Furthermore, in the robot control system 1 according to this embodiment, the robot 40 can be controlled by simple operations via the PLC 60, which is different from the terminal device 20, and this can improve workability or reduce the risk of unauthorized operations.
[0018] An example of the configuration of the robot control system 1 according to this embodiment will be described below.
[0019] (Configuration example of robot control system 1) The components of the robot control system 1 are communicatively connected to one another via a network 80. The components of the robot control system 1 may also be communicatively connected without using the network 80. The components of the robot control system 1 may also be communicatively connected by wire or wirelessly. The components of the robot control system 1 may also be communicatively connected via a dedicated line. The components of the robot control system 1 are not limited to these examples and may also be communicatively connected to one another in various other forms.
[0020] 1, the server 10 and the robot control device 41 or the PLC 60 are connected to each other so as to be able to communicate via an access point 82, but they may also be connected to each other so as to be able to communicate via a wireless base station, or they may be connected to each other so as to be able to communicate without the access point 82 or the wireless base station. The access point 82 refers to a wireless device for connecting terminals equipped with wireless connection capabilities to each other or to other networks, and is typically a device that operates according to the communication protocols of the first layer (physical layer) and the second layer (data link layer) of the OSI (Open System Interconnect) reference model. The robot control device 41, the PLC 60, and the external device 50 are connected to each other so as to be able to communicate without the network 80 in FIG. 1, but they may also be connected to each other so as to be able to communicate via the network 80.
[0021] The number of servers 10 and terminal devices 20 is not limited to three as illustrated, but may be two or less, or four or more. The number of combinations of robots 40 and robot control devices 41 is not limited to two as illustrated, but may be one, or three or more. One robot control device 41 may control one robot 40 as illustrated, or two or more robots 40.
[0022] Each component will be specifically described below.
[0023] <Server 10> The server 10 includes a server control unit 11, a storage unit 12, and a server interface 13. The server control unit 11 is also simply referred to as a control unit. The server interface 13 is also referred to as a server I / F 13. The server 10 is communicatively connected to a network 80 via the server I / F 13. The server 10 is also referred to as a program management device.
[0024] The server control unit 11 may be configured to include at least one processor to realize various functions of the server 10. The processor may execute programs that realize various functions of the server 10. The processor may be realized as a single integrated circuit. An integrated circuit is also called an IC (Integrated Circuit). The processor may be realized as multiple integrated circuits and discrete circuits that are connected to each other in a communicative manner. The processor may be configured to include a CPU (Central Processing Unit). The processor may be configured to include a DSP (Digital Signal Processor) or a GPU (Graphics Processing Unit). The processor may be realized based on various other known technologies.
[0025] The server 10 further includes a storage unit 12. The storage unit 12 may include an electromagnetic storage medium such as a magnetic disk, or may include a memory such as a semiconductor memory or a magnetic memory. The storage unit 12 may be configured as an HDD (Hard Disk Drive) or an SSD (Solid State Drive). The storage unit 12 stores various information and programs executed by the server control unit 11. The storage unit 12 may function as a work memory for the server control unit 11. At least a part of the storage unit 12 may be included in the server control unit 11.
[0026] The server I / F 13 may be configured to include a communication device configured to be able to communicate via wired or wireless communication. The server I / F 13 is also referred to as a communication unit. The communication device may be configured to be able to communicate using a communication method based on various communication standards. The server I / F 13 can be configured using known communication technology. A detailed description of the hardware of the server I / F 13 will be omitted. The functions of the server I / F 13 may be realized by a single interface, or may be realized by separate interfaces for each connection destination.
[0027] In the robot control system 1, the server 10 may be configured as a server device. The server device may be configured to include at least one information processing device. The server device may be configured to cause multiple information processing devices to execute parallel processing. The server device does not need to be configured to include a physical housing, and may be configured based on virtualization technology such as a virtual machine or a container orchestration system. The server device may be configured using a cloud service. When the server device is configured using a cloud service, it may be configured by combining managed services. In other words, the functions of the server 10 may be realized as a cloud service.
[0028] The server device may include at least one server group and at least one database group. The server group functions as a server control unit 11. The database group functions as a storage unit 12. The number of server groups may be one or two or more. When there is one server group, the functions realized by one server group include the functions realized by each server group. The server groups are connected to each other so as to be able to communicate with each other via wired or wireless communication. The number of database groups may be one or two or more. The number of database groups may be increased or decreased as appropriate based on the amount of data managed by the server device and the availability requirements required of the server device. The database groups are connected to each server group so as to be able to communicate with each other via wired or wireless communication.
[0029] Although the server 10 is depicted as a single configuration in FIGS. 1 and 2, multiple configurations can be operated as a single system as needed. In other words, the server 10 is configured as a platform with variable capacity. By using multiple configurations as the server 10, even if one configuration becomes inoperable due to an unforeseen event such as a natural disaster, the system can continue to operate using the other configurations. In this case, each of the multiple configurations is connected by a line, whether wired or wireless, and is configured to be able to communicate with each other. The multiple configurations may be configured across cloud services and on-premises environments.
[0030] The server 10 is also connected to the terminal device 20, the robot control device 41, and the PLC 60 via lines that may be wired or wireless. The server 10, the terminal device 20, the robot control device 41, and the PLC 60 are each provided with an interface that uses a standard protocol, allowing two-way communication.
[0031] <Terminal device 20> The terminal device 20 includes a terminal control unit 21, a terminal interface 22, and an input / output unit 23. The terminal control unit 21 is also simply referred to as a control unit. The terminal interface 22 is also referred to as a terminal I / F 22. The terminal device 20 is communicably connected to a network 80 via the terminal I / F 22.
[0032] The terminal control unit 21 may be configured to include at least one processor. The terminal control unit 21 may be configured identically or similarly to the server control unit 11 of the server 10. The terminal control unit 21 may execute an application that causes the input / output unit 23 to provide a GUI (Graphical User Interface). The terminal control unit 21 may provide a GUI by executing a GUI program distributed from another device, such as the server 10, on a web browser. When providing a GUI on a web browser, the terminal control unit 21 may be configured to receive the GUI program from another device, such as the server 10, based on a request input by a user to the web browser, and to render the GUI on the web browser. The terminal device 20 may be configured to further include a storage unit. The storage unit of the terminal device 20 may be configured identically or similarly to the storage unit 12 of the server 10.
[0033] The terminal I / F 22 may be configured in the same manner as or similar to the server I / F 13 of the server 10 .
[0034] The input / output unit 23 is configured to provide the above-described GUI to the user of the robot control system 1. The input / output unit 23 includes an output device that outputs information to the user, and an input device that receives input from the user.
[0035] The output device may be configured to include a display device. The display device may be configured to include, for example, a liquid crystal display (LCD), an organic electroluminescence (EL) display, an inorganic electroluminescence (EL) display, or a plasma display panel (PDP). The display device is not limited to these displays and may be configured to include displays of various other types. The display device may be configured to include a light-emitting device such as an LED (light-emitting diode). The display device may be configured to include various other devices. The output device may be configured to include an audio output device such as a speaker that outputs auditory information such as sound. The output device is not limited to these examples and may be configured to include various other devices.
[0036] The input device may include, for example, a touch panel or touch sensor, or a pointing device such as a mouse. The input device may include physical keys. The input device may include an audio input device such as a microphone. The input device is not limited to these examples and may include various other devices.
[0037] The terminal device 20 may be configured to include at least one information processing device. The number of terminal devices 20 provided in the robot control system 1 is not limited to one, and may be two or more. When the robot control system 1 is provided with multiple terminal devices 20, each terminal device 20 may accept input from a user. The terminal device 20 may be configured as a tablet terminal. The terminal device 20 may be configured as a mobile phone terminal such as a feature phone or a smartphone. The terminal device 20 may be configured as a PC terminal such as a desktop PC (Personal Computer) or a notebook PC. The terminal device 20 is not limited to these examples, and may be configured as various devices that can provide a GUI and communication functions.
[0038] The terminal device 20 can execute more or more advanced operations or requests, etc., among operations or requests, etc. related to the control of the robot 40, than operations or requests, etc., executed via the PLC 60. Furthermore, the terminal device 20 has specifications specialized for the robot 40, compared to the PLC 60. For example, the terminal device 20 may be used by a user to execute the task of storing in advance in the server 10 a program that specifies the operations to be executed by the robot 40. The terminal device 20 may also be used to monitor the status of the robot 40. The terminal device 20 is not limited to these examples and can provide various other functions.
[0039] <Robot control device 41> The robot control device 41 includes a robot control unit 45. The robot control unit 45 may include at least one processor to realize various functions or controls of the robot control device 41. The robot control unit 45 is configured to be able to control at least one robot 40. The robot control unit 45 may be configured identically to or similarly to the server control unit 11 of the server 10. The robot control device 41 may be configured to further include a storage unit. The storage unit of the robot control device 41 may be configured identically to or similarly to the storage unit 12 of the server 10.
[0040] The robot control device 41 downloads a program that specifies the task to be performed by the robot 40 from the server 10. The program that specifies the task to be performed by the robot 40 is also referred to as a first program. The robot control device 41 outputs information that controls the operation of the robot 40 based on the downloaded program to the robot 40, and causes the robot 40 to perform the task specified by the program. The task to be performed by the robot 40 may include, for example, the task of moving a work object between two points.
[0041] The robot control device 41 may have an interface for downloading a program from the server 10. The interface of the robot control device 41 may be configured identically or similarly to the server I / F 13 of the server 10. The robot control device 41 may have a processor that generates information for controlling the operation of the robot 40 based on the program. The processor of the robot control device 41 may be configured identically or similarly to the processor that constitutes the server control unit 11 of the server 10.
[0042] In the configuration illustrated in Fig. 1, one robot control device 41 is connected to one robot 40. One robot control device 41 may be connected to two or more robots 40. One robot control device 41 may control only one robot 40, or may control two or more robots 40. The number of robot control devices 41 and robots 40 is not limited to two, and may be one, or three or more.
[0043] <Robot 40> The robot 40 may be configured as a robot arm having an arm. The arm may be configured as, for example, a 6-axis or 7-axis vertical articulated robot. The arm may be configured as a 3-axis or 4-axis horizontal articulated robot or a SCARA robot. The arm may be configured as a 2-axis or 3-axis Cartesian robot. The arm may be configured as a parallel link robot or the like. The number of axes configuring the arm is not limited to those exemplified.
[0044] The robot 40 may have an end effector attached to the arm. The end effector may include, for example, a gripping hand configured to grip a workpiece. The gripping hand may have multiple fingers. The gripping hand may have two or more fingers. The fingers of the gripping hand may have one or more joints. The end effector may include a suction hand configured to pick up the workpiece by suction. The end effector may include a scooping hand configured to scoop up the workpiece. The end effector may include a tool such as a drill and be configured to perform various processes, such as drilling a hole in the workpiece. The end effector is not limited to these examples and may be configured to perform various other operations.
[0045] The robot 40 can control the position of the end effector by operating the arm. The end effector may have an axis that serves as a reference for the direction in which it acts on a workpiece. If the end effector has an axis, the robot 40 can control the direction of the axis of the end effector by operating the arm. The robot 40 controls the start and end of the operation of the end effector acting on the workpiece. The robot 40 can move or process a workpiece by controlling the operation of the end effector while controlling the position of the end effector or the direction of the axis of the end effector.
[0046] The robot 40 may be configured as an automated guided vehicle (AGV). The robot 40 may be configured as a drone. The robot 40 is not limited to a robot arm or an AGV, and may be configured in various other forms such as a vehicle, an electronic device, or a controlled machine.
[0047] The robot 40 may further include sensors that detect the state of each component of the robot 40. The sensors may detect information about the actual position or posture of each component of the robot 40, or about the speed or acceleration of each component of the robot 40. The sensors may detect forces acting on each component of the robot 40. The sensors may detect the current flowing through or the torque of a motor that drives each component of the robot 40. The sensors can detect information obtained as a result of the actual operation of the robot 40. The robot control device 41 can grasp the results of the actual operation of the robot 40 by obtaining the detection results of the sensors.
[0048] <plc60> The PLC 60 executes a program such as a ladder program. The program such as a ladder program executed by the PLC 60 is also referred to as a second program. In this embodiment, the PLC 60 downloads a ladder program from the server 10 and executes the downloaded ladder program to operate sequentially. The PLC 60 also operates in coordination with the operation of the robot 40. In other words, the PLC 60 is configured to be communicatively connected to each robot control device 41 and thereby be communicatively connected to the robot 40, and is also referred to as a coordination control device. The PLC 60 may control the input of information at an input port and the output of information at an output port. The PLC 60 may be communicatively connected to the server 10 via a gateway device.
[0049] Furthermore, the PLC 60 can execute fewer or simpler operations or requests, etc., related to the control of the robot 40 than operations or requests, etc., executed via the terminal device 20. Furthermore, the PLC 60 can execute simplified or generalized operations of the equipment, etc., in the robot control system 1, including each robot 40 and / or the external device 50, compared to the terminal device 20. For example, the PLC 60 can execute operations, requests, instructions, etc., such as operating or stopping the equipment, including the robot 40 and the external device 50.
[0050] The PLC 60 includes a PLC control unit 61. The PLC control unit 61 may include at least one processor to implement various functions or controls of the PLC 60. The PLC control unit 61 may be configured identically to or similarly to the server control unit 11 of the server 10.
[0051] The PLC 60 also includes an input device that accepts input from the user and an output device that displays information to be notified to the user. The input device and output device of the PLC 60 may be configured identically or similarly to the input device and output device of the input / output unit 23 of the terminal device 20. The PLC 60 may also be configured to further include a storage unit. The storage unit of the PLC 60 may be configured identically or similarly to the storage unit 12 of the server 10.
[0052] <External device 50> The external device 50 is a device different from the robot 40. The external device 50 may be, for example, equipment installed on a production line for manufacturing products. The external device 50 processes parts received from the robot 40 and delivers them to the robot 40. The external device 50 includes at least one of a device and a jig that are linked with the robot 40. The robot 40 loads and unloads parts into and from the external device 50. The external device 50 is communicatively connected to the PLC 60 and operates based on control information from the PLC 60. The external device 50 may include, for example, a device that processes parts, or a jig that aligns and shapes parts. The external device 50 is not limited to these examples and may include various devices or jigs. The external device 50 may be configured to perform various tasks other than part processing, such as assembly, painting, or screw tightening.
[0053] (Example of operation of robot control system 1) The robot control system 1 according to this embodiment is configured as shown in FIG. 3 , and links the robot 40 with an external device 50 to cause the robot 40 to perform a task on a work target component 30. Specifically, the robot 40 includes a robot arm 42, a camera 43, and a robot hand 44. The camera 43 and the robot hand 44 are installed at or near the tip of the robot arm 42. The robot 40 moves the camera 43 and the robot hand 44 by moving the robot arm 42. The robot 40 detects the work target component 30 stored in the first tray 31 with the camera 43, grasps the work target component 30 with the robot hand 44, and places it in the external device 50. The external device 50 performs a predetermined task on the work target component 30. In this embodiment, the external device 50 performs a machining task on the work target component 30. The robot 40 grasps the work target part 30 after the work has been performed by the external device 50 with the robot hand 44 , removes it from the external device 50 , and stores it in the second tray 32 .
[0054] The robot control device 41 downloads a program specifying the above-mentioned operations from the server 10 and executes it, thereby causing the robot 40 to perform the above-mentioned operations. The PLC 60 also downloads a ladder program generated based on the program specifying the above-mentioned operations from the server 10 and executes it, thereby controlling the external device 50 based on the state of the robot 40, or causing the robot control device 41 to control the robot 40 based on the state of the external device 50. In other words, the PLC 60 links the external device 50 with the operations of the robot 40.
[0055] <Program Creation> The program specifying the above-described operations is created in advance, for example, by a worker who is a user of the robot control system 1. Specifically, the user uses the terminal device 20 to teach the robot 40 about the task that the user wants the robot 40 to perform, and creates a program that specifies the task that the user wants the robot 40 to perform. When the user wants multiple robots 40 to perform the same task, the user only needs to teach one robot 40. The program created by teaching one robot 40 can also be applied to the other robots 40.
[0056] When the robot 40 and the external device 50 are linked, a program including control for the external device 50 is created. For example, if the task to be performed by the robot 40 is to load and unload parts from the external device 50, teaching including the operation of the external device 50 must be performed to incorporate the operation of the external device 50 into the program. The external device 50 is configured to start and stop based on control information from the PLC 60. When the robot 40 loads the work target part 30 from the first tray 31 into the external device 50, for example, a signal is sent from the robot control device 41 to the PLC 60. Upon receiving the signal, the PLC 60 sends a start signal to the external device 50. At the same time, the robot control device 41 stops the robot 40. The external device 50 performs an operation, such as machining, on the work target part 30 loaded by the robot 40. When the external device 50 completes a predetermined operation or when a predetermined operation time has elapsed, the PLC 60 sends a stop signal to the external device 50. The external device 50 stops based on the stop signal. The PLC 60 sends a signal to the robot control device 41 indicating that the work in the external device 50 has been completed. The robot control device 41 causes the robot 40 to resume operation. The robot 40 then picks up the work target component 30 from the external device 50 and places the component on the second tray 32.
[0057] The robot control system 1 may perform teaching in accordance with the procedure of the flowchart shown in FIG.
[0058] The terminal device 20 sets the input and output ports of each device (step S1). Specifically, the terminal device 20 sets the correspondence between the input and output ports used for communication between the robot control device 41, the PLC 60, and the external device 50. The terminal device 20 sets which input or output ports the PLC 60 will use to communicate with the robot control device 41 and the external device 50, as shown in the table of FIG. 5, for example. According to the setting example shown in FIG. 5, the PLC 60 communicates with the input ports No. 1 and No. 2 of the robot control device 41 using output ports No. 1 and No. 2, with the output ports No. 3 and No. 4 of the robot control device 41 using input ports No. 3 and No. 4, and with the input port No. 1 of the external device 50 using output port No. 5. The terminal device 20 receives input from the user regarding the setting of the input and output ports of each device and sets the input and output ports based on the user input.
[0059] The terminal device 20 may accept user input via a user interface exemplified in FIG. 6 . The entry “PLC.1” in the column corresponding to a PLC 60 indicates that, if the robot control system 1 includes multiple PLCs 60, the input and output ports of the first PLC 60 are set. Hereinafter, the first PLC 60 is simply referred to as the PLC 60. The entry “Rob.1” in the column corresponding to a robot control device 41 indicates that, if the robot control system 1 includes multiple robot control devices 41, the input and output ports of the first robot control device 41 are set. Hereinafter, the first robot control device 41 is simply referred to as the robot control device 41. The entry “Jig.1” in the column corresponding to an external device 50 indicates that, if the robot control system 1 includes multiple external devices 50, the input port of the first external device 50 is set. Hereinafter, the first external device 50 is simply referred to as the external device 50. In this way, the terminal device 20 can set the input and output ports of multiple PLCs 60, robot control devices 41, or external devices 50.
[0060] The terminal device 20 allows the user to select the number of the PLC 60 and the number of its input port or output port using a pull-down menu. The terminal device 20 also allows the user to select the number of the robot control device 41 and the number of its input port or output port using a pull-down menu. The input port or output port numbers of devices selected in the same row are associated with each other. In the example of FIG. 6, the first output port ("Out.1") of the PLC 60 and the first input port ("In.1") of the robot control device 41 are associated with each other. That is, a signal output from the first output port of the PLC 60 is input to the first input port of the robot control device 41. The second output port ("Out.2") of the PLC 60 and the second input port ("In.2") of the robot control device 41 are associated with each other. That is, a signal output from the second output port of the PLC 60 is input to the second input port of the robot control device 41. Furthermore, the third input port ("In.3") of the PLC 60 and the third output port ("Out.3") of the robot control device 41 are associated with each other. That is, the signal output from the third output port of the robot control device 41 is input to the third input port of the PLC 60. Furthermore, the fourth input port ("In.4") of the PLC 60 and the fourth output port ("Out.4") of the robot control device 41 are associated with each other. That is, the signal output from the fourth output port of the robot control device 41 is input to the fourth input port of the PLC 60. Furthermore, the fifth output port ("Out.5") of the PLC 60 and the first input port ("In.1") of the external device 50 are associated with each other. That is, the signal output from the fifth output port of the PLC 60 is input to the first input port of the external device 50.
[0061] 6, the first output port of the PLC 60 is associated with the first input port of the robot control device 41, but is not associated with any input or output port of the external device 50.
[0062] 6, the terminal device 20 can increase the number of robot control devices 41, PLCs 60, or external devices 50 to two or more as needed. The terminal device 20 can also increase the number of input ports and output ports of each device. In this way, the terminal device 20 can provide a user interface that allows definition of all input ports and output ports of all devices included in the robot control system 1.
[0063] Furthermore, the terminal device 20 associates input ports and output ports so as to realize communication between the robot control device 41 and the external device 50 via the PLC 60. The terminal device 20 may accept user input via a user interface exemplified in FIG. 7. In the example of FIG. 7, the fourth output port ("Out.4") of the robot control device 41 and the first input port ("In.1") of the external device 50 are associated with each other. When a Hi signal ("H") is output from the fourth output port ("Out.4") of the robot control device 41, the Hi signal ("H") is input to the first input port ("In.1") of the external device 50 via the PLC 60.
[0064] The terminal device 20 outputs the settings of the input port and the output port to the server 10. The server 10 stores the settings of the input port and the output port in the storage unit 12.
[0065] Returning to FIG. 4, the terminal device 20 performs logic analysis of the operations (step S2). Specifically, the terminal device 20 defines the operation of each device when the signal communicated at each input port or each output port is Hi, and the operation of each device when the signal is Lo. In other words, the terminal device 20 associates the logic (Hi or Lo) of the signal communicated at each input port or each output port with the operation of each device. The terminal device 20 accepts input from the user regarding the operation to be performed by the robot 40 when the robot control device 41 receives a Hi signal at a specific input port. Based on the user input, the terminal device 20 defines the operation of each device when a Hi or Lo signal is received at each input port. The terminal device 20 outputs the definition of the operation to the server 10. The server 10 stores the definition of the operation in the storage unit 12.
[0066] The terminal device 20 performs teaching of the robot 40 (step S3). Specifically, the terminal device 20 operates as follows to allow the user to perform teaching of the robot 40. Note that the following operation example is a simplified explanation. In the following operation example, processing when an error occurs is omitted.
[0067] The user operates the terminal device 20 to perform teaching. First, the user instructs the robot control device 41 to start the robot 40 when it receives a Lo signal at input port No. 2. Next, the user instructs the robot control device 41 to output a Hi signal from output port No. 3 when the robot 40 is ready to operate, thereby notifying the PLC 60 that the robot 40 is ready to operate. Next, the user instructs the robot control device 41 to operate the robot 40 when it receives a Hi signal at input port No. 1.
[0068] The terminal device 20 receives input from the user specifying the operation of the robot 40, and then actually operates the robot 40 using the robot control device 41. The user specifies the operation of the robot 40 on the terminal device 20 while checking the actual operation of the robot 40. The user operates the robot arm 42 of the robot 40 and moves the robot arm 42 above the first tray 31, which is set at predetermined coordinates. The user causes the robot 40 to recognize the presence of the first tray 31 using a camera 43 attached to the robot arm 42. The user also causes the camera 43 to recognize the presence of the work target component 30 in the first tray 31. When the camera 43 recognizes the presence of the work target component 30, the user causes the robot hand 44 attached to the robot arm 42 to grasp the work target component 30. The user then moves the robot arm 42 and stops it just before the external device 50, which is the predetermined coordinate.
[0069] Next, the user checks whether the robot control device 41 is receiving a Lo signal at input port 2. Receiving a Lo signal at input port 2 means that the external device 50 is stopped. If the robot control device 41 is receiving a Lo signal at input port 2, the user instructs the robot control device 41 to operate the robot 40 again. The user also instructs the robot control device 41 to move the work target component 30 to predetermined coordinates in the external device 50, release the robot hand 44, place the work target component 30 at the coordinates, and return the robot arm 42 to the front of the external device 50. Then, the user instructs the robot control device 41 to output a Hi signal at output port 4. When the robot control device 41 outputs a Hi signal at output port 4, the PLC 60 outputs a Hi signal to input port 1 of the external device 50. When the external device 50 receives a Hi signal at input port 1, it starts working on the work target component 30.
[0070] The user checks whether the robot control device 41 has received a Hi signal at input port 2. Receiving a Hi signal at input port 2 means that the external device 50 has finished operating and is in a stopped state. After the robot control device 41 receives a Hi signal at input port 2, the user causes the robot control device 41 to operate the robot 40. The robot control device 41 moves the robot arm 42 to the processed work target part 30 in the external device 50, has the robot hand 44 grasp the work target part 30, moves the robot arm 42 to the second tray 32, and releases the robot hand 44 inside the second tray 32, thereby placing the work target part 30 in the second tray 32.
[0071] The terminal device 20 can create a teaching program that causes the robot 40 to perform the series of operations described above, based on the user's input.
[0072] Returning to Fig. 4, the terminal device 20 outputs a program that specifies the operation of the robot 40 to the server 10 (step S4). The program includes a teaching program.
[0073] The server 10 stores the acquired program in the storage unit 12 and generates a ladder program for the PLC 60 based on the acquired program (step S5). The server 10 generates the ladder program based on the contents of the acquired teaching program. The server 10 generates the ladder program based on the acquired teaching program, input port and output port setting data, and operation definition data. The server 10 generates the ladder program in a format that can be installed in the PLC 60. Since the server 10 generates the ladder program, the user does not need to input information to create the ladder program. The ladder program can be installed in the PLC 60 by downloading it from the server 10 or by importing the ladder program using a portable memory or the like in the terminal device 20.
[0074] The server 10 may generate a ladder program from a teaching program using ladder program generation tool software prepared in advance. Ladder programs are defined in the international standard IEC 61131-3. A ladder program written based on this international standard can, in principle, be executed by any PLC 60. In this embodiment, the ladder program is written in the IEC 61131-3 standard format. The server 10 starts the ladder program generation tool software on the terminal device 20 and generates the ladder program by having the user select a teaching program that will be the basis for generating the ladder program from a list of saved teaching programs.
[0075] Specifically, the server 10 writes the operation to be performed when the PLC 60 starts up as the first command in the ladder program based on the definition of the input port and output port numbers of each device. Next, the server 10 writes a command to initialize the external device 50 in the ladder program.
[0076] Next, the server 10 extracts commands for controlling the input and output ports included in the teaching program. The server 10 writes commands into the ladder program that reverse the signal transmission and reception relationships at each input or output port. In the teaching example described above, assume that the teaching program includes a command such as "activate the robot 40 when the robot control device 41 receives a Lo signal at input port No. 2." In this case, the server 10 writes a command such as "output a Lo signal from output port No. 2 of the PLC 60" into the ladder program. The server 10 also writes commands into the ladder program that cause the PLC 60 to control the operation of the external device 50 based on a definition that associates the signals output by the robot control device 41 to the input and output ports with the operation of the external device 50. The server 10 may also write commands into the ladder program that cause the PLC 60 to maintain a signal state for a predetermined period of time using a timer included in the PLC 60. A ladder program can also be generated by compiling a ladder diagram. The ladder diagram to be compiled into a ladder program will be described later. The server 10 stores the ladder program in the storage unit 12. The server 10 exports the ladder program and imports it into the PLC 60. The server 10 may export the ladder program to the terminal device 20 and have the terminal device 20 import it into the PLC 60.
[0077] After completing the procedure of step S5 in Fig. 4, the robot control system 1 completes the execution of the procedure of the flowchart in Fig. 4. As described above, by executing the procedure of the flowchart illustrated in Fig. 4, the robot control system 1 can generate in advance a teaching program that specifies the operation of the robot 40 and a ladder program that corresponds to the teaching program.
[0078] In the above description, an example has been described in which a program that specifies the operation of the robot 40 is created by the terminal device 20, but it may be created by other components, such as the server 10. In the above description, an example has been described in which a ladder program is created by the server 10, but it may be created by other components, such as the terminal device 20.
[0079] <Normal operation of robot 40> As described above, the robot control system 1 stores programs in advance in the server 10. In normal operation, the robot control system 1 prompts the user to select a program and causes the robot 40 to perform the task specified by the selected program. The flow of data during normal operation will be described below.
[0080] First, the user turns on the power to the robot 40. The power-on operation may be performed for each of the multiple robots 40. If the power supplies for the multiple robots 40 are centrally managed by a switchboard or the like, the power-on operation for the multiple robots 40 may be performed all at once.
[0081] When power is applied, the robot 40 enters a standby state where it waits for the teaching program to be downloaded. In the standby state, the robot control device 41 that controls the robot 40 does not have the teaching program. Therefore, even if some kind of trouble occurs with the robot 40, the teaching program will not be executed unexpectedly. In other words, the robot 40 will not operate unexpectedly. Note that the robot control device 41 may delete the program once it has been downloaded after the robot 40 has completed its scheduled operation.
[0082] The PLC 60 receives an input from the user to select the robot 40 to be made to perform a task. The PLC 60 also receives an input from the user to select the task to be performed by the robot 40. Specifically, the PLC 60 provides a user interface that allows the user to input the selection. The user inputs the selection from an operation panel of the PLC 60.
[0083] The PLC 60 may display the robot number as information for identifying the robot 40 on the operation panel, or may display a nickname such as "Robot #1" or "Taro" as the robot name.
[0084] The PLC 60 may display a task number or a task name such as "rework" on the operation panel as information specifying the task content of the robot 40. The information specifying the robot 40 and the task content displayed on the operation panel is stored inside the PLC 60 as a robot number and a program number, respectively, by internal processing of the PLC 60.
[0085] The PLC 60 may display an execution switch on the operation panel. The PLC 60 may have an execution button implemented as hardware. The user causes the selected robot 40 to execute the selected task by pressing the execution switch displayed on the operation panel or the execution button implemented as hardware.
[0086] The PLC 60 transmits to the server 10 information on the robot 40 and the work content selected by the user, as well as information instructing the robot 40 to perform the work. Specifically, the PLC 60 transmits to the server 10 data including an instruction to the robot 40 to perform the work, and a robot number and a program number as arguments of the instruction. The PLC 60 may transmit information to the server 10 via a gateway device, or may transmit information via the network 80 without via a gateway device. The robot control device 41 may also be used as the gateway device.
[0087] When the server 10 receives data from the PLC 60, it calls up a teaching program corresponding to the received program number from among the teaching programs stored in the server 10. The server 10 downloads the called teaching program to the robot control device 41 of the robot 40 corresponding to the received robot number. The robot control device 41 generates control information for controlling the operation of the robot 40 based on the downloaded teaching program, and causes the robot 40 to perform a task.
[0088] After creating a teaching program and a ladder program in advance, the robot control system 1 can have the user select a program as a normal operation to operate the robot 40. The robot control system 1 may execute the normal operation in accordance with the procedure of the flowchart illustrated in FIG.
[0089] The PLC 60 selects a robot 40 and a task that the robot 40 is to perform (step S11). Specifically, the PLC 60 receives a user input specifying which robot 40 is to perform the task and which task the robot 40 is to perform. In other words, the user operates the PLC 60 to select the robot 40 that is to perform the task and the task that the robot 40 is to perform.
[0090] The PLC 60 receives an input from the user instructing activation (step S12). Specifically, when the user presses the activation switch, the PLC 60 outputs information instructing the operation of the robot 40 to the server 10.
[0091] The server 10 downloads the program to the robot control device 41 and the PLC 60 (step S13). Specifically, the server 10 downloads a teaching program that specifies the task selected by the user on the PLC 60 to the robot control device 41. The downloaded teaching program is written in JSON format. The data size of the teaching program is several kilobytes. Therefore, the time required for downloading is short. The server 10 also downloads a ladder program that corresponds to the teaching program downloaded to the robot control device 41 to the PLC 60.
[0092] The robot control device 41 starts the operation of the robot 40 based on the downloaded teaching program (step S14). The PLC 60 also operates based on the downloaded ladder program. The PLC 60 may also control the external device 50 based on the ladder program.
[0093] After completing the procedure of step S14, the robot control system 1 completes the execution of the procedure of the flowchart in Fig. 8. As described above, by executing the procedure of the flowchart illustrated in Fig. 8, the robot control system 1 can have the user select a program and operate the robot 40 as a normal operation.
[0094] When causing the robot 40 to perform a task based on a user's selection, the robot control system 1 may specifically execute the procedure of the flowchart illustrated in FIG.
[0095] In the procedure illustrated in FIG. 9, the operation of each device when the signal communicated at each input port or each output port is Hi, and the operation of each device when the signal is Lo, are related as defined in the table illustrated in FIG. 5.
[0096] For example, when a Hi signal is sent from output port No. 1 of PLC 60 to input port No. 1 of robot control device 41, robot control device 41 starts the operation of robot 40. In other words, robot control device 41 operates robot 40. Conversely, when a Lo signal is sent from output port No. 1 of PLC 60 to input port No. 1 of robot control device 41, robot control device 41 stops the operation of robot 40.
[0097] Furthermore, when a Hi signal is sent from the second output port of the PLC 60 to the second input port of the robot control device 41, the robot control device 41 recognizes that the external device 50 is in operation. Conversely, when a Lo signal is sent from the second output port of the PLC 60 to the second input port of the robot control device 41, the robot control device 41 recognizes that the external device 50 is stopped.
[0098] Furthermore, when a Hi signal is sent from the third output port of the robot control device 41 to the third input port of the PLC 60, the PLC 60 recognizes that the robot control device 41 has completed pre-preparation (pre-preparation OK). Conversely, when a Lo signal is sent from the third output port of the robot control device 41 to the third input port of the PLC 60, the PLC 60 recognizes that the robot control device 41 has not completed pre-preparation (pre-preparation NG). The pre-preparation includes, for example, the preparatory work of starting the robot 40 and bringing it into a state where it can begin operating.
[0099] Furthermore, when a Hi signal is sent from the fourth output port of the robot control device 41 to the fourth input port of the PLC 60, the PLC 60 recognizes that the robot control device 41 has completed post-preparation (post-preparation OK). Conversely, when a Lo signal is sent from the fourth output port of the robot control device 41 to the fourth input port of the PLC 60, the PLC 60 recognizes that the robot control device 41 has not completed post-preparation (post-preparation NG). Post-preparation includes, for example, the robot 40 moving the work target component 30 to the external device 50.
[0100] Furthermore, when a Hi signal is transmitted from output port No. 5 of PLC 60 to input port No. 1 of external device 50, external device 50 starts operating. In other words, external device 50 operates. Conversely, when a Lo signal is transmitted from output port No. 5 of PLC 60 to input port No. 1 of external device 50, external device 50 stops operating.
[0101] The procedure of the flowchart illustrated in FIG. 9 will be described below.
[0102] The PLC 60 starts up when the user presses the start switch (step S31). The PLC 60 outputs a Lo signal to the second output port (I / O#2) and the fifth output port (I / O#5) (step S32). When the external device 50 receives a Lo signal from the fifth output port of the PLC 60 to the first input port of the external device 50, the external device 50 stops its own operation (step S41). The external device 50 prepares so that the robot 40 can place the work target part 30 inside the external device 50. The external device 50 stops operation until it receives the next Hi signal.
[0103] When the robot controller 41 receives a Lo signal at the second input port (I / O#2), it activates the robot 40 (step S21). The robot controller 41 outputs a Hi signal at the third output port (I / O#3) (step S22). When the PLC 60 receives a Hi signal at the third input port (I / O#3), it outputs a Hi signal at the first output port (I / O#1) (step S33). When the robot controller 41 receives a Hi signal at the first input port (I / O#1), it operates the robot 40 (step S23). The robot 40 moves the work target part 30 from the first tray 31 to the external device 50 (step S24).
[0104] After the robot 40 moves the work target component 30 to the external device 50, the robot control device 41 outputs a Hi signal to the fourth output port (I / O#4) (step S25). The robot control device 41 temporarily stops the robot 40 (step S26). When the PLC 60 receives a Hi signal at the fourth input port (I / O#4), it outputs Hi signals to the second output port (I / O#2) and the fifth output port (I / O#5) (step S34). When the external device 50 receives a Hi signal from the fifth output port of the PLC 60 to the first input port of the external device 50, it operates (step S42). Specifically, the external device 50 performs a machining operation or the like on the work target component 30 placed by the robot 40.
[0105] The PLC 60 counts time using a timer, and after a predetermined time has elapsed, outputs a Lo signal to the second output port (I / O #2) and the fifth output port (I / O #5) (step S35). The predetermined time is assumed to be a time sufficient for the external device 50 to complete the work on the work target component 30. After executing the procedure of step S35, the PLC 60 ends execution of the procedure of the flowchart in FIG. 9.
[0106] When the external device 50 receives a Lo signal from the No. 5 output port of the PLC 60 to the No. 1 input port of the external device 50, the external device 50 stops its own operation (step S43). The external device 50 prepares so that the robot 40 can take out the work target component 30 from the external device 50. After executing the procedure of step S43, the external device 50 ends execution of the procedure of the flowchart in FIG. 9.
[0107] When the robot control device 41 receives a Lo signal at the second input port (I / O#2), it resumes the operation of the robot 40 (step S27). Specifically, the robot control device 41 controls the robot 40 so that the robot 40 picks up the work target part 30 from the external device 50 and places it on the second tray 32. After executing the procedure of step S27, the robot control device 41 ends the execution of the procedure of the flowchart in FIG. 9.
[0108] <Summary> As described above, the robot control system 1 according to this embodiment receives a work instruction from a user via the PLC 60, downloads a program specifying the selected work to the controller, and causes the robot 40 to execute the work. This can improve the convenience of program management. It can also reduce the risk of the robot 40 operating at an unintended timing. Furthermore, by having the user operate only the PLC 60 and not the terminal device 20, it can improve workability and reduce the risk of unauthorized operation.
[0109] (Other examples) Other specific examples will be described below.
[0110] <Example of ladder diagram> An example of a ladder program represented as a ladder diagram is shown in Figure 10. In the first to third lines of the ladder diagram shown in Figure 10, switch X0 is turned ON when pressed. When X0 is turned ON, PLC 60 outputs a Lo signal to Y1. The output of the signal to Y1 corresponds to PLC 60 outputting a Lo signal from output port No. 5 to external device 50. In other words, the output of the signal to Y1 corresponds to an instruction to stop external device 50.
[0111] When X0 is turned ON, the PLC 60 outputs a Lo signal to Y2. The output of the signal to Y2 corresponds to the PLC 60 outputting a Lo signal from output port No. 2 to input port No. 2 of the robot control device 41. In other words, the output of the signal to Y2 corresponds to notifying the robot control device 41 that the external device is in a stopped state.
[0112] In the fourth and fifth lines of the ladder diagram, X1 turns ON when a Hi signal is received from output port No. 3 of the robot control device 41 to input port No. 3 of the PLC 60. When X1 turns ON, the PLC 60 outputs a Hi signal to Y3. The signal output to Y3 corresponds to the PLC 60 outputting a Hi signal from output port No. 1 to input port No. 1 of the robot control device 41. In other words, the signal output to Y3 corresponds to starting up the robot 40.
[0113] In lines 6 to 8 of the ladder diagram, X2 turns ON when a Hi signal is received from output port 4 of the robot control device 41 to input port 4 of the PLC 60. When X2 turns ON, the PLC 60 starts counting using timer T0. T0 turns ON for a predetermined time as counted by the timer. The PLC 60 outputs a signal to Y1 while T0 is ON. The output of a signal to Y1 corresponds to the PLC 60 outputting a Hi signal from output port 5 to the external device 50. In other words, the output of a signal to Y1 corresponds to an instruction to operate the external device 50. Based on the description in lines 6 to 8 of the ladder diagram, the PLC 60 operates the external device 50 for a predetermined time based on the signal from the robot control device 41.
[0114] <Example of data flow during normal operation> A specific example of data flow during normal operation will now be described with reference to FIG.
[0115] The PLC 60 accepts an input from the user to select the robot 40 to be made to perform a task. The PLC 60 also accepts an input from the user to select the task to be performed by the robot 40. The data flow when the user selects the robot 40 on the PLC 60 is represented by an arrow labeled "ROBOT NAME SELECTION." The data flow when the user selects the task content on the PLC 60 is represented by an arrow labeled "TASK NUMBER SELECTION."
[0116] The PLC 60 receives input of instructions to cause the robot 40 to perform a task by having the user press an execution switch or execution button. The flow of data when the user presses the execution switch or execution button on the PLC 60 is represented by an arrow labeled "Execution button pressed" in FIG.
[0117] The PLC 60 transmits information about the robot 40 and the work content selected by the user, as well as information instructing the robot 40 to perform the work, to the server 10. The flow of data from the PLC 60 to the server 10 is represented in Figure 11 by arrows labeled "transmit robot number," "transmit program number," and "transmit execution instruction signal."
[0118] The server 10 downloads the teaching program to the robot control device 41 based on the information received from the PLC 60. The flow of data from the server 10 to the robot 40 is represented by an arrow labeled "download program" in Figure 11.
[0119] (Other embodiments) The robot control system 1 according to this embodiment includes a PLC 60 as a linkage control device that operates in linkage with the robot 40. The linkage control device of the robot control system 1 is not limited to the PLC 60, and may include various other controllers, such as a relay device or a production equipment control computer. The linkage control device includes a linkage control unit. The linkage control unit may include at least one processor to realize various functions or controls of the linkage control device. The linkage control unit may be configured identically or similarly to the server control unit 11 of the server 10. The robot control system 1 may also include, as the linkage control device, a facility management control system or the like that operates on the cloud. Even when the linkage control device operates on the cloud, at least the user interface may be configured to operate in an on-premise environment.
[0120] Furthermore, the robot control system 1 creates, by teaching, a first program that specifies the work to be performed by the robot 40. The first program is not limited to a teaching program, and may be configured to include various other programs.
[0121] Furthermore, the robot control system 1 generates a ladder program as a second program to be executed by the linkage control device. The second program is not limited to a ladder program, and may include various other programs.
[0122] The server control unit 11 may install the first program into the robot control device 41 at a predetermined timing. The server control unit 11 may install the second program into the linkage control device at a predetermined timing so that the robot control device 41 in which the first program is installed and the linkage control device link together. The predetermined timing may be, for example, before the robot 40 performs normal operation for the first time. The predetermined timing may be set based on an operation plan for the robot 40. By installing the program at a predetermined timing, operation of the robot 40 can be started efficiently, simply, and in a short time. Furthermore, the server control unit 11, the robot control device 41, or the linkage control device may delete the first program or the second program once installed after the scheduled operation of the robot 40 or the external operation is completed.
[0123] In the robot control system 1, when a user selects a specific task via a linkage control device, a ladder program for the linkage control device corresponding to the user's selection may be downloaded. In this case, the storage unit 12 stores at least one first program executable by at least one robot control unit 45 and at least one second program executable by at least one linkage control unit. Based on the user's input, the server control unit 11 extracts a specific second program corresponding to the specific at least one first program from the storage unit 12 and outputs the specific second program to a specific linkage control unit that is to link with the specific at least one robot control unit 45 that is to execute the specific at least one first program.
[0124] In the robot control system 1, the user may select an external device 50 communicatively connected to a specific linkage control device. That is, the linkage control device may receive input from the user selecting an external device 50 to be used to perform a task, and a teaching program may be downloaded based on the user's selection. Specifically, the storage unit 12 stores at least one first program executable by at least one robot control unit 45 and at least one second program executable by at least one linkage control unit. Based on the user's input, the server control unit 11 may extract from the storage unit 12 a specific second program that includes control of the external device 50 selected by the user and at least one specific first program corresponding to the specific second program, and output the at least one specific first program to a specific linkage control unit that is scheduled to execute the specific second program and at least one specific robot control unit 45 that is scheduled to link with the specific linkage control unit. Note that if the at least one first program corresponding to the specific second program includes multiple first programs, the at least one specific first program may be extracted based on the user's input.
[0125] In the above-described embodiment, the linkage control device, the robot control device 41, and the external device 50 each have an input port for inputting a signal and an output port for outputting a signal. Each device may have an input / output port that can function as both an input port and an output port. Specifically, each device may perform serial communication through the input / output port based on a communication standard such as a LAN (Local Area Network), RS-232C, or RS485.
[0126] If each device has an input / output port, the terminal device 20 further sets whether each input / output port functions as an input port or an output port in the input and output port setting procedure of step S1 in Fig. 4. Specifically, if each device communicates over a LAN, the terminal device 20 may specify the input / output port number by address as the input / output port setting. Furthermore, the terminal device 20 may specify whether the input / output port with the specified number functions as an input port or an output port by a bit representing Hi or Lo data.
[0127] <Integration of the terminal device 20 and the server 10> In the above-described embodiment, an example has been described in which the server 10 is provided with the terminal device 20. However, the server 10 may function as part or all of the terminal device 20. That is, for example, the server 10 may have part or all of the terminal control unit 21, or the server control unit 11 may function as part or all of the terminal control unit 21. In this case, part or all of the terminal device 20 may be integrated into the server 10, and the server 10 may execute the various functions and control of the terminal device 20 described above. Specifically, the terminal device 20 in the above description may be read as the server 10, and the server control unit 11 or the terminal control unit 21 of the server 10 may execute the various functions and control of the terminal device 20 described above. Furthermore, in this case, various components of the server 10 may function as various components of the terminal device 20, or the server 10 may have various components of the terminal device 20.
[0128] <Integration of Robot Control Device 41 and Server 10> In the embodiment described above, an example having the robot control device 41 in addition to the server 10 has been described. However, the server 10 may function as part or all of the robot control device 41. That is, for example, the server 10 may have part or all of the robot control unit 45 that controls the robot 40, or the server control unit 11 may function as part or all of the robot control unit 45. In this case, the robot control device 41 is integrated into the server 10, and the server 10 may execute various functions and controls of the robot control device 41 described above. Specifically, the robot control device 41 in the above description may be read as the server 10, and various functions and controls of the robot control device 41 described above may be executed by the server control unit 11 or the robot control unit 45 of the server 10. Also, in this case, various configurations of the server 10 may function as various configurations of the robot control device 41, or the server 10 may have various configurations of the robot control device 41. Note that in this case, it may be integrated together with part or all of the terminal device 20.
[0129] <Integration of PLC 60 and Server 10> In the embodiment described above, an example having the PLC 60 in addition to the server 10 has been described. However, the server 10 may function as part or all of the PLC 60. That is, for example, the server 10 may have part or all of the PLC control unit 61, or the server control unit 11 may function as part or all of the PLC control unit 61. In this case, the PLC 60 is integrated into the server 10, and the server 10 may execute various functions and controls of the PLC 60 described above. Specifically, the PLC 60 in the above description may be read as the server 10, and various functions and controls of the PLC 60 described above may be executed by the server control unit 11 or the PLC control unit 61 of the server 10. Also, in this case, various configurations of the server 10 may function as various configurations of the PLC 60, or the server 10 may have various configurations of the PLC 60. Note that in this case, it may be integrated together with either or both of the terminal device 20 or the robot control device 41.
[0130] Furthermore, some or all of the components of the robot control system 1 may be integrated as described above.
[0131] The above has described an embodiment of the robot control system 1, but the present disclosure can also be embodied as a method or program for implementing the system or device, or as a storage medium on which a program is recorded (for example, an optical disk, a magneto-optical disk, a CD-ROM, a CD-R, a CD-RW, a magnetic tape, a hard disk, or a memory card). The program may be stored in a non-transitory computer-readable medium.
[0132] Furthermore, the implementation form of the program is not limited to application programs such as object code compiled by a compiler or program code executed by an interpreter, but may also be in the form of a program module incorporated into an operating system. Furthermore, the program may or may not be configured so that all processing is performed solely by the CPU on the control board. The program may also be configured so that part or all of it is executed by another processing unit mounted on an expansion board or expansion unit added to the board as needed.
[0133] Although the embodiments of the present disclosure have been described based on the drawings and examples, it should be noted that those skilled in the art could make various modifications or alterations based on the present disclosure. Therefore, it should be noted that these modifications or alterations are included in the scope of the present disclosure. For example, the functions included in each component can be rearranged so as not to cause logical inconsistencies, and multiple components can be combined or divided into one.
[0134] All of the features described in this disclosure and / or all steps of all of the disclosed methods or processes may be combined in any combination except combinations in which these features are mutually exclusive. Furthermore, each feature described in this disclosure may be replaced by an alternative feature serving the same, equivalent, or similar purpose, unless expressly denied. Thus, unless expressly denied, each disclosed feature is only one example of a generic series of identical or equivalent features.
[0135] Furthermore, embodiments of the present disclosure are not limited to the specific configurations of any of the above-described embodiments, but rather extend to any novel feature or combination thereof described herein, or any novel method or process step or combination thereof described herein.
[0136] In this disclosure, descriptions such as "first" and "second" are identifiers for distinguishing the configuration. Configurations distinguished by descriptions such as "first" and "second" in this disclosure may have their numbers exchanged. For example, a first program may exchange the identifiers "first" and "second" with a second program. The exchange of identifiers is performed simultaneously. The configurations remain distinguished even after the identifier exchange. Identifiers may be deleted. Configurations from which identifiers have been deleted are distinguished by symbols. The descriptions of identifiers such as "first" and "second" in this disclosure should not be used solely to interpret the order of the configurations or to justify the existence of identifiers with smaller numbers.
[0137] It can also be said that the server 10 (program management device) according to this embodiment executes a program management method including the procedures shown in Figures 4 and 8. The program management method may be realized as a program management program executed by a processor included in the server 10. The program management program may be stored on a non-transitory computer-readable medium. [Explanation of symbols]
[0138] 1. Robot Control System 10 Server (11: Server control unit, 12: Memory unit, 13: Server I / F) 20 terminal device (21: terminal control unit, 22: terminal I / F, 23: input / output unit) 30 Work Parts 31, 32 Tray 1, Tray 2 40 Robot (42: Robot arm, 43: Camera, 44: Robot hand) 41 Robot control device (45: Robot control unit) 50 External device 60 PLC (61: PLC control unit) 80 Network (82: Access Point)
Claims
1. a communication unit configured to be able to communicate with at least one robot control unit; a storage unit that stores a plurality of first programs that are executed by the at least one robot control unit, each of which is capable of controlling the operation of the robot and identifies tasks that the robot can perform; a control unit that outputs at least one first program selected from the plurality of first programs to a specific robot control unit that is to be linked with the link control unit, based on a request from a link control unit that can be linked with the at least one robot control unit; Equipped with the control unit generates, based on the at least one first program, a second program that the control unit causes to be executed by the linkage control unit so that the linkage control unit links with the at least one specific robot control unit; the first program includes commands for controlling input ports and output ports of the robot control unit, A program management device in which the second program includes commands written or generated based on a definition that associates signals received by the robot control unit at the input port and signals output by the robot control unit at the output port with the operation of an external device, and the commands cause the coordination control unit to control the operation of the external device in accordance with the control of the operation of the robot by the robot control unit.
2. The program management device according to claim 1 , wherein the control unit generates the second program so that the second program includes a command for controlling at least one of a device and a jig that are linked with the robot.
3. 3. The program management device according to claim 1, wherein the control unit acquires a correspondence relationship between the input ports and output ports of the linkage control unit and the input ports and output ports of the at least one specific robot control unit from a terminal device, and generates the second program based on the correspondence relationship.
4. 4. The program management device according to claim 1, wherein the control unit installs the second program into the linkage control unit at a predetermined timing so that the linkage control unit links with the specific at least one robot control unit in which the first program is installed.
5. an interface for accepting user input; a communication unit configured to be able to communicate with at least one robot control unit capable of controlling at least one robot and at least one linkage control unit capable of linking with the at least one robot control unit; a storage unit that stores at least one first program executable by the at least one robot control unit and at least one second program executable by the at least one linkage control unit; a control unit connected to the interface, the communication unit, and the storage unit; Equipped with The control unit generating, based on the at least one specific first program, the at least one specific second program that is executed by the at least one specific linkage control unit so that the at least one specific linkage control unit links with the at least one specific robot control unit that is scheduled to execute the at least one specific first program; outputting the at least one specific second program corresponding to the at least one specific first program selected based on the input to the at least one specific linkage control unit that is to be linked with the at least one specific robot control unit; the first program includes commands for controlling input ports and output ports of the robot control unit, A program management device in which the second program includes commands written or generated based on a definition that associates signals received by the robot control unit at the input port and signals output by the robot control unit at the output port with the operation of an external device, and the commands cause the coordination control unit to control the operation of the external device in accordance with the control of the operation of the robot by the robot control unit.
6. an interface for accepting user input; a communication unit configured to be able to communicate with at least one robot control unit capable of controlling at least one robot and at least one linkage control unit capable of linking with the at least one robot control unit; a storage unit that stores at least one first program executable by the at least one robot control unit and at least one second program executable by the at least one linkage control unit; a control unit connected to the interface, the communication unit, and the storage unit; Equipped with The control unit generating, based on the at least one first program, a specific second program to be executed by the at least one linkage control unit so that the at least one linkage control unit links with the at least one robot control unit; outputting the at least one specific first program corresponding to the at least one specific second program selected based on the input to the at least one specific robot control unit that is to be linked with the at least one specific linkage control unit that is to execute the at least one specific second program; the first program includes commands for controlling input ports and output ports of the robot control unit, A program management device in which the second program includes commands written or generated based on a definition that associates signals received by the robot control unit at the input port and signals output by the robot control unit at the output port with the operation of an external device, and the commands cause the coordination control unit to control the operation of the external device in accordance with the control of the operation of the robot by the robot control unit.
7. The program management device according to claim 5 or 6, wherein the control unit generates the second program so that the second program includes a command for controlling at least one of a device and a jig that are linked with the robot.
8. 8. The program management device according to claim 5, wherein the control unit acquires a correspondence relationship between the input ports and output ports of the specific coordination control unit and the input ports and output ports of the specific at least one robot control unit from a terminal device, and generates the second program based on the correspondence relationship.
9. 9. The program management device according to claim 5, wherein the control unit installs the second program into the specific linkage control unit at a predetermined timing so that the specific at least one robot control unit in which the first program is installed and the specific linkage control unit link with each other.
10. A robot control system comprising: the program management device according to claim 1 ; the robot control unit; and the linkage control unit.
11. storing a plurality of first programs executed by at least one robot controller that controls the operation of the robot, each of which is capable of controlling the operation of the robot and which specifies tasks that the robot can perform; outputting at least one first program selected from the plurality of first programs by a linkage control unit capable of linking with the at least one robot control unit to the robot control unit selected from the at least one robot control unit by the linkage control unit; generating a second program based on the first program to be executed by the linkage control unit so that the linkage control unit cooperates with the robot control unit selected by the linkage control unit; Including, the first program includes commands for controlling input ports and output ports of the robot control unit, A program management method in which the second program includes commands written or generated based on a definition that associates signals received by the robot control unit at the input port and signals output to the output port with the operation of an external device, and the commands cause the coordination control unit to control the operation of the external device in accordance with the control of the robot operation by the robot control unit.
Citation Information
Patent Citations
Robot control method
JP1986023201A
Control system for robot
JP1990274483A
Method and device for controlling FA system
JP1995072920A
Controlling method for peripheral device and controlling method for robot
JP1995160623A
Robot controller
JP1997081218A