WO2022191218A1 - プログラム管理装置、ロボット制御システム、及びプログラム管理方法 - Google Patents

プログラム管理装置、ロボット制御システム、及びプログラム管理方法 Download PDF

Info

Publication number
WO2022191218A1
WO2022191218A1 PCT/JP2022/010146 JP2022010146W WO2022191218A1 WO 2022191218 A1 WO2022191218 A1 WO 2022191218A1 JP 2022010146 W JP2022010146 W JP 2022010146W WO 2022191218 A1 WO2022191218 A1 WO 2022191218A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
control unit
program
specific
plc
Prior art date
Application number
PCT/JP2022/010146
Other languages
English (en)
French (fr)
Inventor
則夫 冨家
Original Assignee
京セラ株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 京セラ株式会社 filed Critical 京セラ株式会社
Priority to US18/280,912 priority Critical patent/US20240149446A1/en
Priority to CN202280019612.8A priority patent/CN116940448A/zh
Priority to JP2023505592A priority patent/JPWO2022191218A1/ja
Priority to EP22767172.4A priority patent/EP4306270A1/en
Publication of WO2022191218A1 publication Critical patent/WO2022191218A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC

Definitions

  • the present disclosure relates to a program management device, a robot control system, and a program management method.
  • Patent Literature 1 describes a robot control system in which a plurality of robots can be operated by an operation panel via switching means.
  • Patent Literature 2 describes a configuration in which a sequencer controls a sequence to be executed by a robot.
  • a program management device includes a communication unit, a storage unit, and a control unit.
  • the communication unit is configured to communicate with at least one robot control unit.
  • the storage section stores a plurality of first programs that are executed by the at least one robot control section and that control the operation of the robot.
  • the control unit links at least one first program selected from the plurality of first programs based on a request from a link control unit capable of linking with the at least one robot control unit to the link control unit. Output to at least one specific robot controller scheduled for the system.
  • a program management device includes an interface that receives user input, a communication unit, a storage unit, and a control unit.
  • the communication unit is configured 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 controller controls a specific second program corresponding to at least one specific first program selected based on the input, and at least one specific robot scheduled to execute the at least one specific first program. Output to a specific link control unit scheduled to link with the control unit.
  • a program management device includes an interface that receives user input, a communication unit, a storage unit, and a control unit.
  • the communication unit is configured 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 selects at least one specific first program corresponding to a specific second program based on the input and is scheduled to be linked with a specific linkage control unit scheduled to execute the specific second program. Output to at least one specific robot controller.
  • a robot control system includes the program management device, the robot control section, and the linkage control section.
  • a program management method includes storing a plurality of first programs to be executed by at least one robot controller that controls motion of a robot.
  • at least one first program selected from the plurality of first programs is selected from the plurality of first programs by a linkage control section capable of linking with the at least one robot control section, and the at least one program is selected by the linkage control section. Outputting from a robot controller to the selected robot controller.
  • FIG. 1 is a schematic diagram showing a configuration example of a robot control system according to an embodiment
  • FIG. 1 is a block diagram showing a configuration example of a robot control system according to an embodiment
  • FIG. It is a schematic diagram which shows the structural example in which a robot and an external device interlock.
  • 10 is a flow chart showing an example of a pre-preparation procedure for a program
  • 4 is a table showing setting examples of input ports and output ports
  • FIG. 4 is a diagram showing an example of a user interface for setting relationships between input ports and output ports between a PLC and a robot controller or an external device;
  • FIG. 4 is a diagram showing an example of a user interface for setting relationships between input ports and output ports between a robot control device and an external device; 4 is a flow chart showing an example of a procedure for selecting a program and causing a robot to perform work; 4 is a flow chart showing an operation example based on a selected program; It is a figure which shows an example of the ladder diagram corresponding to a ladder program.
  • FIG. 4 is a diagram showing an example of data flow when a program is selected to cause a robot to perform a task;
  • the robot controller controls the motion of the robot by executing a pre-written program.
  • a robot controller needs to switch programs in order to cause the robot to perform multiple actions. There is a demand for improved convenience in managing programs corresponding to each action to be executed by a robot.
  • a robot control system 1 includes a server 10, a terminal device 20, a robot 40, a robot control device 41, and a programmable logic controller (PLC) 60. Prepare.
  • the robot controller 41 controls the robot 40 .
  • the robot control system 1 further comprises an external device 50, although this is not essential.
  • the robot control system 1 causes the PLC 60 to select the action to be executed by the robot 40 .
  • the operator who is the user of the robot control system 1 can select the action to be executed 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 action, and downloads the program to the robot control device 41 based on the action selected by the PLC 60 .
  • the robot control system 1 generates a ladder program for interlocking the PLC 60 with the robot controller 41 based on the program downloaded to the robot controller 41 and downloads it to the PLC 60 .
  • the PLC 60 instructs the external device 50 to operate.
  • the robot control system 1 generates a ladder program so that the PLC 60 interlocks the external device 50 with the robot 40 . By doing so, the robot control system 1 interlocks the robot 40 and the external device 50 .
  • a configuration in which an operator individually copies a program to a robot control device can be considered.
  • the robot control system 1 according to this embodiment copying work can be omitted.
  • the memory of the robot controller 41 can be saved by downloading the appropriate programs to the robot controller 41 .
  • the operation of copying the program to the robot control device can be executed by the operator operating the terminal device.
  • the program can be easily installed in the robot control device 41 by allowing the operator to select the program via the PLC 60, and the program for operating the robot 40 can be easily installed. management convenience can be improved.
  • the robot control system 1 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 only by operating the PLC 60 .
  • the robot 40 can be controlled by a simple operation via the PLC 60 different from the terminal device 20, so workability can be improved and the risk of unauthorized operation can be reduced. can be
  • Each component of the robot control system 1 is communicably connected to each other via a network 80 .
  • Each component of the robot control system 1 may be communicatively connected without going through the network 80 .
  • Each component of the robot control system 1 may be communicatively connected by wire or wirelessly.
  • Each component of the robot control system 1 may be communicably connected via a dedicated line.
  • Each component of the robot control system 1 is not limited to these examples, and may be communicably connected to each other in various other forms.
  • the server 10 and the robot controller 41 or PLC 60 are communicably connected via the access point 82 in FIG. They may be communicatively connected without going through a base station.
  • the access point 82 refers to a wireless device for connecting terminals equipped with a wireless connection function to each other or to other networks. It is a device that operates on layer (physical layer) and layer 2 (data link layer) communication protocols.
  • the robot control device 41, the PLC 60, and the external device 50 are communicably connected without the network 80 in FIG.
  • the number of servers 10 and terminal devices 20 is not limited to three as illustrated, but may be two or less, or may be four or more.
  • the number of combinations of the robot 40 and the robot control device 41 is not limited to two as illustrated, but may be one, three or more.
  • One robot controller 41 may control one robot 40 as illustrated, or may control two or more robots 40 .
  • the server 10 includes a server control section 11 , a storage section 12 and a server interface 13 .
  • the server control unit 11 is also simply called a control unit.
  • the server interface 13 is also called server I/F 13 .
  • Server 10 is communicably connected to network 80 via server I/F 13 .
  • the server 10 is also called a program management device.
  • the server control unit 11 may include at least one processor in order to implement various functions of the server 10 .
  • the processor may execute programs that implement various functions of the server 10 .
  • a processor may be implemented as a single integrated circuit.
  • An integrated circuit is also called an IC (Integrated Circuit).
  • a processor may be implemented as a plurality of communicatively coupled integrated and discrete circuits.
  • the processor may be configured including a CPU (Central Processing Unit).
  • the processor may be configured including a DSP (Digital Signal Processor) or a GPU (Graphics Processing Unit). Processors may be implemented based on various other known technologies.
  • the server 10 further comprises a storage unit 12.
  • the storage unit 12 may be configured including an electromagnetic storage medium such as a magnetic disk, or may be configured including 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, programs executed by the server control unit 11, and the like.
  • the storage unit 12 may function as a work memory for the server control unit 11 . At least part of the storage unit 12 may be included in the server control unit 11 .
  • the server I/F 13 may be configured including a communication device that is configured to enable wired or wireless communication.
  • the server I/F 13 is also called a communication unit.
  • a communication device may be configured to be able to communicate with communication schemes 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 is omitted.
  • the functions of the server I/F 13 may be realized by one interface, or may be realized by separate interfaces for each connection destination.
  • the server 10 may be configured as a server device.
  • the server device may be configured including at least one information processing device.
  • the server device may be configured to cause a plurality of information processing devices to execute parallel processing.
  • the server device does not need to be configured including a physical enclosure, and may be configured based on virtualization technology such as a virtual machine or container orchestration system.
  • the server device may be configured using a cloud service.
  • cloud services it can be configured by combining managed services. That is, the functions of the server 10 can be implemented as cloud services.
  • the server device may comprise 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 the storage unit 12 .
  • the number of server groups may be one or two or more. When the number of server groups is one, functions realized by one server group include functions realized by each server group.
  • Each server group is communicably connected to each other by wire or wirelessly.
  • 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 capacity of data managed by the server device and availability requirements for the server device.
  • the database group is communicably connected to each server group by wire or wirelessly.
  • the server 10 is described as one configuration in FIGS. 1 and 2, multiple configurations can be regarded as one system and operated as necessary. That is, the server 10 is configured as a platform with variable capacity. By using a plurality of configurations as the server 10, even if one configuration becomes inoperable in the event of an unforeseen event such as a natural disaster, the operation of the system can be continued using the other configurations.
  • each of the plurality of components is connected by a line, whether wired or wireless, and configured to be able to communicate with each other.
  • These multiple configurations may be built across cloud services and on-premises environments.
  • the server 10 is connected to each of 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 provided with interfaces using standard protocols, and are capable of two-way communication.
  • the terminal device 20 includes a terminal control section 21 , a terminal interface 22 and an input/output section 23 .
  • the terminal control unit 21 is also simply called a control unit.
  • the terminal interface 22 is also called terminal I/F 22 .
  • the terminal device 20 is communicably connected to the network 80 via the terminal I/F 22 .
  • the terminal control unit 21 may be configured including 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 the GUI by executing a GUI program distributed from another device such as the server 10 on the web browser.
  • the terminal control unit 21 receives a GUI program from another device such as the server 10 based on a request input to the web browser by the user, and renders it on the web browser.
  • the terminal device 20 may further include a storage unit.
  • the storage unit of the terminal device 20 may be configured the same as or similar to the storage unit 12 of the server 10 .
  • the terminal I/F 22 may be configured identically or similarly to the server I/F 13 of the server 10 .
  • the input/output unit 23 is configured to provide the user of the robot control system 1 with the GUI described above.
  • 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.
  • the output device may be configured including a display device.
  • the display device may include, for example, a liquid crystal display (LCD), an organic EL (Electro-Luminescence) display or an inorganic EL display, or a plasma display (PDP: Plasma Display Panel).
  • the display device is not limited to these displays, and may be configured to include other various types of displays.
  • the display device may include a light-emitting device such as an LED (Light Emitting Diode).
  • the display device may be configured including other various devices.
  • the output device may include an audio output device such as a speaker that outputs auditory information such as voice. Output devices are not limited to these examples, and may be configured to include other various devices.
  • 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 be configured including physical keys.
  • the input device may include an audio input device such as a microphone. Input devices are not limited to these examples, and may be configured to include other various devices.
  • the terminal device 20 may be configured including at least one information processing device.
  • the number of terminal devices 20 included in the robot control system 1 is not limited to one, and may be two or more.
  • each terminal device 20 may receive input from the 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 smart phone.
  • 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 capable of providing GUI and communication functions.
  • the terminal device 20 can execute more or advanced operations or requests than those performed via the PLC 60 among the operations or requests related to the control of the robot 40 . Moreover, 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 the user to store in the server 10 in advance a program that specifies actions to be performed by the robot 40 . Terminal device 20 may be used to monitor the status of robot 40 . The terminal device 20 is not limited to these examples and can provide various other functions.
  • the robot controller 41 includes a robot controller 45 .
  • the robot controller 45 may include at least one processor to implement various functions or controls of the robot controller 41 .
  • the robot control unit 45 is configured to be able to control at least one robot 40 .
  • the robot controller 45 may be configured identically or similarly to the server controller 11 of the server 10 .
  • the robot control device 41 may further include a storage unit.
  • the storage unit of the robot control device 41 may be configured the same as or similar to the storage unit 12 of the server 10 .
  • the robot control device 41 downloads from the server 10 a program specifying the work to be executed by the robot 40 .
  • the program specifying the work to be executed by the robot 40 is also called a first program.
  • the robot control device 41 outputs information for controlling the operation of the robot 40 to the robot 40 based on the downloaded program, and causes the robot 40 to perform the work specified by the program.
  • the work performed by the robot 40 may include, for example, moving a work object between two points.
  • the robot control device 41 may have an interface for downloading programs from the server 10 .
  • the interface of the robot control device 41 may be configured the same as or similar to the server I/F 13 of the server 10 .
  • the robot control device 41 may include a processor that generates information for controlling the motion of the robot 40 based on a program.
  • the processor of the robot control device 41 may be configured the same as or similar to the processor configuring the server control unit 11 of the server 10 .
  • one robot controller 41 is connected to one robot 40.
  • One robot controller 41 may be connected to two or more robots 40 .
  • One robot controller 41 may control only one robot 40 or may control two or more robots 40 .
  • the number of robot controllers 41 and robots 40 is not limited to two, and may be one or three or more.
  • Robot 40 may be configured as a robotic arm comprising an arm.
  • the arm may be configured as a 6-axis or 7-axis vertical articulated robot, for example.
  • 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 forming the arm is not limited to the illustrated one.
  • 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 work object.
  • the grasping hand may have multiple fingers. The number of fingers of the grasping hand may be two or more.
  • the fingers of the grasping hand may have one or more joints.
  • the end effector may include a suction hand configured to be able to suction the work target.
  • the end effector may include a scooping hand configured to scoop the work object.
  • the end effector includes a tool such as a drill, and may be configured to be able to perform various machining operations such as drilling a hole in a work object.
  • the end effector is not limited to these examples, and may be configured to perform various other operations.
  • 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 the work object. If the end effector has an axis, the robot 40 can control the orientation of the end effector axis by moving the arm.
  • the robot 40 controls the start and end of the motion of the end effector acting on the work piece.
  • the robot 40 can move or process a work object by controlling the position of the end effector or the direction of the axis of the end effector and controlling the motion of the end effector.
  • the robot 40 may be configured as an automated guided vehicle (AGV).
  • AGV automated guided vehicle
  • Robot 40 may be configured as a drone.
  • the robot 40 is not limited to a robot arm or AGV, and may be configured in various other forms such as a vehicle, an electronic device, or a control machine.
  • the robot 40 may further include sensors that detect the state of each component of the robot 40 .
  • the sensors may detect information regarding the actual position or orientation of each component of the robot 40 or the velocity 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 the motors that drive each component of the robot 40 or the torque of the motors.
  • the sensors can detect information resulting from the actual movement of robot 40 .
  • the robot control device 41 can grasp the actual operation result of the robot 40 by acquiring the detection result of the sensor.
  • the PLC 60 executes programs such as ladder programs.
  • a program such as a ladder program executed by the PLC 60 is also referred to as a second program.
  • the PLC 60 operates sequentially by downloading a ladder program from the server 10 and executing the downloaded ladder program.
  • the PLC 60 operates in conjunction with the operation of the robot 40 .
  • the PLC 60 is configured to be able to link with the robot 40 by being communicably connected to each robot control device 41, and is also called a linked control device.
  • PLC 60 may control the input of information at input ports and the output of information at output ports.
  • the PLC 60 may be communicably connected to the server 10 via a gateway device.
  • the PLC 60 can execute less or simpler operations or requests than those performed via the terminal device 20 among the operations or requests related to the control of the robot 40 .
  • the PLC 60 can perform simplified or generalized operations of facilities in the robot control system 1 including each robot 40 and/or the external device 50 compared to the terminal device 20 .
  • the PLC 60 can execute an operation, a request, an instruction, etc., such as starting or stopping equipment including the robot 40 and the external device 50 .
  • the PLC 60 includes a PLC control section 61.
  • the PLC control unit 61 may be configured including at least one processor to implement various functions or controls of the PLC 60 .
  • the PLC controller 61 may be configured identically or similarly to the server controller 11 of the server 10 .
  • the PLC 60 also includes an input device that receives 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 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 .
  • the external device 50 is a device different from the robot 40 .
  • the external device 50 may be equipment installed on a production line for manufacturing products, for example.
  • the external device 50 processes a part received from the robot 40 and delivers it to the robot 40 .
  • the external device 50 includes at least one of a device and a jig that work together with the robot 40 .
  • the robot 40 takes parts in and out of the external device 50 .
  • the external device 50 is communicably 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 for processing parts, or may include a jig for aligning or shaping parts.
  • the external device 50 is not limited to these examples, and may be configured including various devices or jigs.
  • the external device 50 may be configured to perform various types of work such as assembly work, painting work, or screw tightening work, without being limited to processing work of parts.
  • the robot control system 1 causes the robot 40 to perform work on the work target component 30 by interlocking the robot 40 and the external device 50 in the configuration shown in FIG. 3 .
  • 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 accommodated in the first tray 31 with the camera 43 , grips the work target component 30 with the robot hand 44 , and puts it into the external device 50 .
  • the external device 50 executes predetermined work on the work target component 30 .
  • the external device 50 executes machining work on the work target component 30 .
  • the robot 40 grips the work target component 30 that has been worked by the external device 50 with the robot hand 44 , takes it out of the external device 50 , and stores it in the second tray 32 .
  • the robot control device 41 causes the robot 40 to perform the above-described actions by downloading from the server 10 and executing a program that specifies the above-described actions.
  • the PLC 60 downloads from the server 10 and executes a ladder program generated based on the program specifying the above-described motion, thereby controlling the external device 50 or controlling the external device 50 based on the state of the robot 40 .
  • the robot controller 41 is caused to control the robot 40 based on the state of 50 . In other words, the PLC 60 interlocks the external device 50 with the operation of the robot 40 .
  • a program specifying the above-described motion is created in advance by, for example, a worker who is a user of the robot control system 1 .
  • the user uses the terminal device 20 to teach the robot 40 about the work he wants the robot 40 to perform, and creates a program that specifies the work he wants the robot 40 to perform.
  • the user wants a plurality of robots 40 to perform the same work, the user only has to perform teaching with one robot 40 .
  • a program created by executing teaching in one robot 40 can also be applied to other robots 40 .
  • a program including control for the external device 50 is created. For example, if the task to be performed by the robot 40 is loading and unloading of parts to and from the external device 50, it is necessary to perform teaching including the operation of the external device 50 and include the operation of the external device 50 in the program.
  • External device 50 is configured to start and stop based on control information from PLC 60 .
  • PLC60 transmits the signal of a start with respect to the external device 50, when a signal is received. At the same time, the robot controller 41 stops the robot 40 .
  • the external device 50 performs work such as processing on the work target component 30 that has been put in by the robot 40 .
  • the PLC 60 transmits a stop signal to the external device 50 when the external device 50 completes the execution of the predetermined work or when the predetermined work time has elapsed.
  • the external device 50 stops based on the stop signal.
  • the PLC 60 transmits to the robot control device 41 a signal indicating that the work in the external device 50 has ended.
  • the robot controller 41 causes the robot 40 to resume its operation.
  • the robot 40 takes out the work target component 30 from the external device 50 and places the component on the second tray 32 .
  • the robot control system 1 may perform teaching according to the procedure of the flowchart illustrated in FIG.
  • the terminal device 20 sets the input port and output port of each device (step S1). Specifically, the terminal device 20 sets the correspondence between the input ports and the 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 port or output port the PLC 60 communicates with the robot controller 41 and the external device 50, as shown in the table in FIG. 5, for example. According to the configuration illustrated in FIG. 5, the PLC 60 communicates with the robot controller 41's 1st and 2nd input ports on the 1st and 2nd output ports, and communicates with the robot controller 41 on the 3rd and 4th input ports.
  • the terminal device 20 receives an input regarding the setting of the input port and output port of each device from the user, and sets the input port and output port based on the user input.
  • the terminal device 20 may accept user input through the user interface illustrated in FIG.
  • the description "PLC.1" in the column corresponding to the PLC 60 indicates that the input port and output port of the first PLC 60 are set when the robot control system 1 has a plurality of PLCs 60.
  • FIG. The first PLC 60 is hereinafter simply referred to as the PLC 60 .
  • the description "Rob.1" in the column corresponding to the robot control device 41 indicates that the input port and output port of the first robot control device 41 are set when the robot control system 1 includes a plurality of robot control devices 41. represents.
  • the first robot controller 41 is hereinafter simply referred to as the robot controller 41 .
  • the description "Jig.1" in the column corresponding to the external device 50 indicates that the input port of the first external device 50 is set when the robot control system 1 has a plurality of external devices 50 .
  • the first external device 50 is hereinafter simply referred to as the external device 50 .
  • the terminal device 20 can set the input ports and output ports of a plurality of PLCs 60, robot control devices 41, or external devices 50.
  • 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 from a pulldown.
  • the terminal device 20 allows the number of the robot control device 41 and the number of its input port or output port to be selected by pull-down.
  • the input or output port numbers of the number of devices selected in the same row are associated with each other.
  • the first output port (“Out.1”) of the PLC 60 and the first input port (“In.1”) of the robot controller 41 are associated with each other.
  • the signal output from the No. 1 output port of the PLC 60 is input to the No. 1 input port of the robot controller 41 .
  • the second output port (“Out.2”) of the PLC 60 and the second input port (“In.2”) of the robot controller 41 are associated with each other.
  • the signal output from the No. 2 output port of the PLC 60 is input to the No. 2 input port of the robot controller 41 .
  • the 3rd input port (“In.3”) of the PLC 60 and the 3rd output port (“Out.3”) of the robot controller 41 are associated with each other. That is, the signal output from the No. 3 output port of the robot controller 41 is input to the No. 3 input port of the PLC 60 .
  • the 4th input port (“In.4”) of the PLC 60 and the 4th output port (“Out.4”) of the robot controller 41 are associated with each other.
  • the signal output from the No. 4 output port of the robot controller 41 is input to the No. 4 input port of the PLC 60 .
  • 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 No. 5 output port of the PLC 60 is input to the No. 1 input port of the external device 50 .
  • the terminal device 20 allows the user to select a blank instead of a number.
  • the No. 1 output port of the PLC 60 is associated with the No. 1 input port of the robot controller 41, but is not associated with the input and output ports of the external device 50.
  • the example of FIG. 6 the No. 1 output port of the PLC 60 is associated with the No. 1 input port of the robot controller 41, but is not associated with the input and output ports of the external device 50.
  • the terminal device 20 can increase the robot control device 41, the PLC 60, or the external device 50 to two or more units as necessary in the user interface illustrated in FIG. Also, the terminal device 20 can increase the number of input ports and output ports of each device. By doing so, the terminal device 20 can provide a user interface that can define all input ports and output ports of all devices included in the robot control system 1 .
  • the terminal device 20 associates an input port and an output port 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 through the user interface illustrated in FIG. In the example of FIG. 7, the number 4 output port (“Out.4”) of the robot control device 41 and the number 1 input port (“In.1”) of the external device 50 are associated.
  • a Hi signal (“H”) is output from the No. 4 output port (“Out. 1”) is input with a Hi signal (“H”).
  • the terminal device 20 outputs the setting of the input port and the output port to the server 10.
  • the server 10 stores the setting of the input port and output port in the storage unit 12 .
  • the terminal device 20 executes the logic of the operation (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. That is, the terminal device 20 associates the logic (Hi or Lo) of signals communicated at each input port or each output port with the operation of each device.
  • the terminal device 20 receives an input from the user regarding the action to be executed by the robot 40 when the robot control device 41 receives a Hi signal at a specific input port.
  • the terminal device 20 defines the operation of each device when a Hi or Lo signal is received at each input port based on user input.
  • the terminal device 20 outputs the action definition to the server 10 .
  • the server 10 stores the action definition in the storage unit 12 .
  • the terminal device 20 executes teaching of the robot 40 (step S3). Specifically, the terminal device 20 can allow the user to teach the robot 40 by operating as follows. It should be noted that the following operation example is simply described. In the operation examples below, processing when an error occurs is omitted.
  • the user operates the terminal device 20 to perform teaching.
  • the user instructs to start the robot 40 when the robot controller 41 receives a Lo signal at the input port No. 2.
  • the robot controller 41 outputs a Hi signal from the output port No. 3 to notify the PLC 60 that the robot 40 is ready for operation. to direct.
  • the user instructs to operate the robot 40 when the robot controller 41 receives a Hi signal at the first input port.
  • the terminal device 20 actually causes the robot controller 41 to operate the robot 40 by accepting an input designating the motion of the robot 40 from the user.
  • the user designates the motion of the robot 40 with the terminal device 20 while confirming the actual motion of the robot 40 .
  • the user operates the robot arm 42 of the robot 40 to move the robot arm 42 above the first tray 31 set at the determined coordinates.
  • the user allows the robot 40 to recognize the existence of the first tray 31 with the camera 43 installed on the robot arm 42 .
  • the user causes the camera 43 to recognize whether the work target component 30 exists in the first tray 31 .
  • the user causes the robot hand 44 set on the robot arm 42 to grip the work target component 30 . After that, the user moves the robot arm 42 and stops it in front of the external device 50 at the determined coordinates.
  • the user confirms whether the robot controller 41 has received a Lo signal at the second input port.
  • Receiving a Lo signal at the No. 2 input port means that the external device 50 is in a stopped state.
  • the user instructs the robot controller 41 to operate the robot 40 again when the robot controller 41 receives a Lo signal at the second input port.
  • the user causes the robot control device 41 to move the work target part 30 to the determined coordinates in the external device 50, release the robot hand 44, place the work target part 30 at the coordinates, and move the robot arm. 42 instructs to return to the front of the external device 50 .
  • the user instructs the robot controller 41 to output a Hi signal to the No. 4 output port.
  • the PLC 60 outputs a Hi signal to the No. 1 input port of the external device 50 .
  • the external device 50 starts work on the work target component 30 by receiving a Hi signal at the first input port.
  • the user confirms whether the robot control device 41 has received a Hi signal at the second input port.
  • Receiving a Hi signal at the No. 2 input port means that the external device 50 has finished its operation and entered a stopped state.
  • the user causes the robot control device 41 to operate the robot 40 after the robot control device 41 receives a signal of Hi at the input port No. 2 .
  • the robot control device 41 moves the robot arm 42 to the machined work target component 30 in the external device 50 , grips it with the robot hand 44 , moves it to the second tray 32 , and moves the robot arm 42 to the second tray 32 . By opening the hand 44 , the part to be worked 30 is placed in the second tray 32 .
  • the terminal device 20 can create a teaching program that causes the robot 40 to perform the series of operations described above based on user input.
  • the terminal device 20 outputs a program specifying the motion of the robot 40 to the server 10 (step S4).
  • Programs include teaching programs.
  • 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 a ladder program based on the content of the acquired teaching program.
  • the server 10 generates a ladder program based on the acquired teaching program, input port and output port setting data, and operation definition data.
  • the server 10 creates a ladder program in a format installable in the PLC 60 . By generating the ladder program by the server 10, the user does not have to input information to create the ladder program.
  • the PLC 60 can install the ladder program 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 .
  • the server 10 may use ladder program generation tool software prepared in advance to generate the ladder program from the teaching program.
  • a ladder program is defined in the international standard IEC61131-3.
  • a ladder program written according to international standards can be executed in any PLC 60 in principle. In this embodiment, it is assumed that the ladder program is described in the IEC61131-3 standard format.
  • the server 10 activates the ladder program generation tool software on the terminal device 20, allows the user to select a teaching program as a basis for generating the ladder program from a list of stored teaching programs, and generates the ladder program.
  • the server 10 describes the operation when the PLC 60 is activated in the ladder program as the first command based on the definitions of the input port and output port numbers of each device. Next, the server 10 describes a command for initializing the external device 50 in the ladder program.
  • the server 10 extracts commands for controlling input ports and output ports included in the teaching program.
  • the server 10 writes in the ladder program commands in which the relationship between signal transmission and reception at each input port or each output port is reversed.
  • the teaching program includes a command "activate the robot 40 when the robot controller 41 receives a Lo signal at the input port No. 2".
  • the server 10 describes a command "output a Lo signal from the second output port of the PLC 60" as a ladder program.
  • the server 10 writes a command for the PLC 60 to control the operation of the external device 50 in the ladder program based on the definition that associates the signal output by the robot control device 41 to the input port and the output port with the operation of the external device 50.
  • the server 10 may describe in the ladder program a command for maintaining the state of the signal for a predetermined period of time using a timer of the PLC 60 .
  • a ladder program can also be generated by compiling a ladder diagram. A ladder diagram that compiles into a ladder program is described below.
  • the server 10 stores the ladder program in the storage section 12 .
  • Server 10 exports the ladder program and imports it into PLC 60 .
  • the server 10 may export the ladder program to the terminal device 20 and have the terminal device 20 import it to the PLC 60 .
  • the robot control system 1 After completing the procedure of step S5 of FIG. 4, the robot control system 1 ends the execution of the procedure of the flowchart of FIG. As described above, the robot control system 1 can generate in advance a teaching program specifying the motion of the robot 40 and a ladder program corresponding to the teaching program by executing the procedure of the flowchart illustrated in FIG. .
  • the terminal device 20 created a program for specifying the motion of the robot 40, but it may be created by other configurations such as the server 10, for example. Also, in the above description, an example in which the ladder program is created by the server 10 has been described, but it may be created by another configuration such as the terminal device 20, for example.
  • the robot control system 1 stores programs in the server 10 in advance. As a normal operation, the robot control system 1 allows the user to select a program and causes the robot 40 to perform the work specified by the selected program. The data flow in normal operation is described below.
  • the user turns on the power of the robot 40 main body.
  • the task of turning on the power may be performed for each of the plurality of robots 40 .
  • the work of turning on the power of the plurality of robots 40 may be performed collectively.
  • the robot 40 By energizing the robot 40, it enters a standby state waiting for the download of the teaching program. In the standby state, the robot controller 41 that controls the robot 40 does not have a teaching program. Therefore, even if some kind of trouble occurs in the robot 40, the teaching program will not be unexpectedly executed. In other words, the robot 40 does not move unexpectedly. Note that the robot control device 41 may delete the once-downloaded program after the robot 40 completes the scheduled operation.
  • the PLC 60 accepts input from the user to select the robot 40 to perform the work.
  • the PLC 60 also receives an input from the user for selecting the work to be executed by the robot 40 .
  • PLC 60 provides a user interface to allow the user to enter selections. The user inputs selections from the operation panel of PLC 60 .
  • the PLC 60 may display the robot number as information specifying the robot 40 on the operation panel, and may display a nickname such as "Robot #1" or “Taro” as the robot name.
  • the PLC 60 may display a work number or a work name such as "work" on the operation panel as information specifying the work content of the robot 40 .
  • Information specifying the robot 40 and work 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 .
  • the PLC 60 may display an execution switch on the operation panel.
  • PLC 60 may have a run button implemented as hardware. The user causes the selected robot 40 to execute the selected work by pressing an execution switch displayed on the operation panel or an execution button implemented as hardware.
  • the PLC 60 transmits to the server 10 information about the robot 40 and work content specified by the user's selection, and information for the user to instruct the robot 40 to perform the work. Specifically, the PLC 60 transmits to the server 10 data including a work execution instruction for the robot 40 and the robot number and program number as arguments of the execution instruction.
  • the PLC 60 may transmit information to the server 10 via the gateway device, or may transmit information via the network 80 without the gateway device. Also, the robot control device 41 may be used as a gateway device.
  • the server 10 When the server 10 receives data from the PLC 60, it calls the 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 controller 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 work.
  • the robot control system 1 After creating a teaching program and a ladder program in advance, the robot control system 1 allows the user to select a program and operate the robot 40 as a normal operation.
  • the robot control system 1 may perform normal operations according to the procedure of the flowchart illustrated in FIG.
  • the PLC 60 selects the robot 40 and the work to be executed by the robot 40 (step S11). Specifically, the PLC 60 accepts user input specifying which robot 40 is to perform a 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 he wants to execute and the work that he wants the robot 40 to execute.
  • the PLC 60 receives an input from the user instructing activation (step S12). Specifically, the PLC 60 outputs information instructing the operation of the robot 40 to the server 10 when the user presses the activation switch.
  • the server 10 downloads the program to the robot controller 41 and PLC 60 (step S13). Specifically, the server 10 downloads to the robot controller 41 a teaching program that specifies the work selected by the user on the PLC 60 .
  • the downloaded teaching program is written in JSON format. The data size of the teaching program is several kilobytes. Therefore, the time spent downloading is short.
  • the server 10 also downloads to the PLC 60 a ladder program corresponding to the teaching program downloaded to the robot controller 41 .
  • the robot control device 41 starts the operation of the robot 40 based on the downloaded teaching program (step S14). Also, the PLC 60 operates based on the downloaded ladder program. PLC60 may control the external device 50 based on a ladder program.
  • the robot control system 1 After completing the procedure of step S14, the robot control system 1 ends the execution of the procedure of the flowchart of FIG. As described above, the robot control system 1 can cause the user to select a program and operate the robot 40 as a normal operation by executing the procedure of the flowchart illustrated in FIG.
  • the robot control system 1 When the robot control system 1 causes the robot 40 to perform a task based on the user's selection, it may specifically execute the procedure of the flowchart illustrated in FIG.
  • the robot controller 41 when a Hi signal is sent from the first output port of the PLC 60 to the first input port of the robot controller 41, the robot controller 41 causes the robot 40 to start operating. That is, the robot control device 41 makes the robot 40 work. Conversely, when a Lo signal is sent from the first output port of the PLC 60 to the first input port of the robot controller 41, the robot controller 41 stops the robot 40 from operating.
  • the robot control device 41 recognizes that the external device 50 is in operation. Conversely, when a Lo signal is transmitted from the No. 2 output port of the PLC 60 to the No. 2 input port of the robot controller 41, the robot controller 41 recognizes that the external device 50 is stopped.
  • the PLC 60 indicates that the robot controller 41 has completed preparation (preparation OK). recognize. Conversely, when a Lo signal is transmitted from the No. 3 output port of the robot controller 41 to the No. 3 input port of the PLC 60, the PLC 60 indicates that the robot controller 41 has not completed preparation (Preparation NG ).
  • the pre-preparation includes, for example, preparatory work for activating the robot 40 and putting it in a state ready for operation.
  • Post-preparation OK When a Hi signal is transmitted from the 4th output port of the robot controller 41 to the 4th input port of the PLC 60, the PLC 60 indicates that the robot controller 41 has completed post-preparation (post-preparation OK). recognize. Conversely, when a Lo signal is transmitted from the 4th output port of the robot controller 41 to the 4th input port of the PLC 60, the PLC 60 indicates that the robot controller 41 has not completed post-preparation (post-preparation NG). ). Post-preparation includes, for example, the work of moving the work target component 30 to the external device 50 by the robot 40 .
  • the external device 50 when a Hi signal is transmitted from the 5th output port of the PLC 60 to the 1st input port of the external device 50, the external device 50 starts operating. That is, the external device 50 works. Conversely, when a Lo signal is transmitted from the 5th output port of the PLC 60 to the 1st input port of the external device 50, the external device 50 stops operating.
  • the PLC 60 is activated based on the pressing of the activation switch by the user (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).
  • the external device 50 receives a Lo signal from the 5th output port of the PLC 60 to the 1st input port of the external device 50, the external device 50 itself stops operating (step S41).
  • the external device 50 prepares so that the robot 40 can put the workpiece 30 inside the external device 50 .
  • the external device 50 stops until it receives the next Hi signal.
  • the robot control device 41 When the robot control device 41 receives a Lo signal at the input port No. 2 (I/O#2), it activates the robot 40 (step S21). The robot control device 41 outputs a Hi signal to the third output port (I/O#3) (step S22). When the PLC 60 receives a Hi signal at the 3rd input port (I/O#3), it outputs a HI signal to the 1st output port (I/O#1) (step S33). When the robot controller 41 receives a Hi signal at the first input port (I/O#1), the robot controller 41 operates the robot 40 (step S23). The robot 40 moves the work target component 30 from the first tray 31 to the external device 50 (step S24).
  • the robot control device 41 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 output port No. 4 (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 input port No. 4 (I/O#4), the output port No. 2 (I/O#2) and the output port No. 5 (I/O#5) A Hi signal is output (step S34). When the external device 50 receives a Hi signal from the 5th output port of the PLC 60 to the 1st input port of the external device 50, it operates (step S42). The external device 50 specifically executes processing work and the like on the work target component 30 put in by the robot 40 .
  • the PLC 60 counts time with a timer, and outputs a Lo signal to the second output port (I/O#2) and the fifth output port (I/O#5) after a predetermined time has elapsed (step S35). . It is assumed that the predetermined time is enough time 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 the execution of the procedure of the flowchart of FIG.
  • the external device 50 When the external device 50 receives a Lo signal from the 5th output port of the PLC 60 to the 1st input port of the external device 50, it stops the operation of the external device 50 itself (step S43). The external device 50 prepares so that the robot 40 can pick up the workpiece 30 from the external device 50 . After executing the procedure of step S43, the external device 50 ends the execution of the procedure of the flowchart of FIG.
  • the robot control device 41 When the robot control device 41 receives a Lo signal at the second input port (I/O#2), it restarts 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 component 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 of FIG.
  • the PLC 60 receives work instructions from the user, downloads a program specifying the selected work to the controller, and causes the robot 40 to execute the work.
  • the convenience of program management can be improved.
  • the risk of the robot 40 operating at unintended timing can be reduced.
  • FIG. 10 shows an example of a ladder program expressed as a ladder diagram.
  • the first to third lines of the ladder diagram illustrated in FIG. 10 are turned ON by pressing the switch X0.
  • the PLC 60 outputs a Lo signal to Y1 when X0 is turned ON.
  • the output of the signal to Y1 corresponds to the PLC 60 outputting a Lo signal to the external device 50 from the 5th output port. In other words, outputting a signal to Y1 corresponds to an instruction to stop the external device 50 .
  • the PLC 60 outputs a Lo signal to Y2 when X0 is turned ON. Outputting the signal to Y2 corresponds to outputting a Lo signal from the second output port of the PLC 60 to the second input port of the robot controller 41 . In other words, outputting a signal to Y2 corresponds to informing the robot control device 41 that the external device is in a stopped state.
  • X1 turns ON when a Hi signal is received from the 3rd output port of the robot controller 41 to the 3rd input port of the PLC 60 .
  • the PLC 60 outputs a Hi signal to Y3 when X1 is turned ON.
  • the signal output to Y3 corresponds to outputting a Hi signal from the first output port of the PLC 60 to the first input port of the robot controller 41 . In other words, outputting a signal to Y3 corresponds to activating the robot 40 .
  • X2 turns ON when a Hi signal is received from the 4th output port of the robot controller 41 to the 4th input port of the PLC 60 .
  • the PLC 60 starts counting by the timer T0 when X2 is turned ON. T0 is turned ON for a predetermined period of time as counted by a timer.
  • PLC 60 outputs a signal to Y1 while T0 is ON.
  • the output of the signal to Y1 corresponds to the PLC 60 outputting a Hi signal to the external device 50 from the 5th output port. In other words, outputting a signal to Y1 corresponds to an instruction to operate the external device 50 .
  • the PLC 60 operates the external device 50 for a predetermined period of time based on the signal from the robot control device 41 based on the sixth to eighth lines of the ladder diagram.
  • the PLC 60 accepts input from the user to select the robot 40 to perform the work.
  • the PLC 60 also receives an input from the user for selecting the work to be executed by the robot 40 .
  • the data flow when the user selects the robot 40 on the PLC 60 is indicated by an arrow labeled "robot name selection”.
  • the data flow when the user selects the work content on the PLC 60 is represented by an arrow labeled "select work number”.
  • the PLC 60 accepts an input of an instruction to cause the robot 40 to execute the work by having the user press the execution switch or execution button.
  • the flow of data when the user presses the execution switch or execution button on the PLC 60 is indicated by the arrow labeled "execution button pressed" in FIG.
  • the PLC 60 transmits to the server 10 information about the robot 40 and work content specified by the user's selection, and information for the user to instruct the robot 40 to perform the work.
  • the data flow from the PLC 60 to the server 10 is represented by arrows labeled "robot number transmission”, “program number transmission”, and "execution instruction signal transmission” in FIG.
  • the server 10 downloads the teaching program to the robot controller 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 the arrow labeled "Program Download" in FIG.
  • the robot control system 1 includes a PLC 60 as a linkage control device that operates in linkage with the robot 40 .
  • the robot control system 1 is not limited to the PLC 60 as a linkage control device, and may include other various controllers such as a relay device or a production equipment control computer.
  • the linkage control device includes a linkage control section.
  • the link control unit may include at least one processor to implement various functions or controls of the link control device.
  • the linkage controller may be configured identically or similarly to the server controller 11 of the server 10 .
  • the robot control system 1 may have a configuration such as a facility management control system that operates on the cloud as a link control device. Even if the linkage control device operates on the cloud, at least the user interface may be configured to operate in an on-premises environment.
  • the robot control system 1 creates a first program that specifies the work to be executed by the robot 40 by teaching.
  • the first program is not limited to the teaching program, and may include other various programs.
  • 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 the ladder program, and may include other various programs.
  • the server control unit 11 may install the first program in the robot control device 41 at a predetermined timing.
  • the server control unit 11 may install the second program in the link control device at a predetermined timing so that the robot control device 41 in which the first program is installed and the link control device are linked.
  • the predetermined timing may be, for example, before the robot 40 performs normal movement for the first time.
  • the predetermined timing may be set based on the operation plan of the robot 40 . By installing at a predetermined timing, operation of the robot 40 can be started efficiently, simply and in a short time. Further, the server control unit 11, the robot control device 41, or the link control device may delete the first program or the second program that has been installed once, after the scheduled operation of the robot 40 or the external operation is completed.
  • 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.
  • the server control unit 11 extracts from the storage unit 12 specific second programs corresponding to at least one specific first program, and specifies that at least one specific first program is scheduled to be executed.
  • a specific second program is output to at least one robot control unit 45 and a specific linkage control unit scheduled to be linked.
  • the user may select an external device 50 communicatively connected to a specific linkage control device. That is, the linkage control device may receive an input from the user to select the external device 50 to execute the work, and download the teaching program according to the user's selection result.
  • 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.
  • the server control unit 11 selects a specific second program including control of the external device 50 selected by the user and at least one specific first program corresponding to the specific second program.
  • At least one specific first program is output to the specific link control unit scheduled to be executed and at least one specific robot control unit 45 scheduled to be linked.
  • at least one specific first program may be extracted based on user input.
  • the linkage control device, the robot control device 41, and the external device 50 are each provided with an input port for inputting signals and an output port for outputting signals.
  • Each device may have input/output ports that can function as both input and output ports.
  • each device may perform serial communication through an input/output port based on a communication standard such as LAN (Local Area Network) or RS-232C or RS485.
  • the terminal device 20 determines whether each input/output port is to function as an input port or an output port in the procedure of setting the input ports and output ports in step S1 of FIG. set further. Specifically, when each device communicates via a LAN, the terminal device 20 may specify an input/output port number as an input/output port setting using an address. In addition, the terminal device 20 may specify whether the input/output port with the specified number is to function as an input port or an output port by a bit represented by Hi or Lo data.
  • 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 section 21 , and the server control section 11 may function as part or all of the terminal control section 21 . In this case, some or all of terminal 20 may be integrated into server 10, and server 10 may perform the various functions and controls of terminal 20 described above.
  • the terminal device 20 in the above description can be read as the server 10, and the server control unit 11 or the terminal control unit 21 of the server 10 executes various functions and controls of the terminal device 20 described above.
  • various configurations of the server 10 may function as various configurations of the terminal device 20
  • the server 10 may have various configurations of the terminal device 20 .
  • 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 section 45 that controls the robot 40, or the server control section 11 may function as part or all of the robot control section 45. .
  • the robot controller 41 may be integrated into the server 10, and the server 10 may perform the various functions and controls of the robot controller 41 described above.
  • the robot control device 41 in the above description can be read as the server 10, and the server control unit 11 or the robot control unit 45 of the server 10 performs various functions and controls of the robot control device 41 described above.
  • various configurations of the server 10 may also function as various configurations of the robot control device 41 , and the server 10 may have various configurations of the robot control device 41 . In this case, it may be integrated with part or all of the terminal device 20 .
  • 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 controller 61 , and the server controller 11 may function as part or all of the PLC controller 61 .
  • PLC 60 may be integrated into server 10, and server 10 may perform the various functions and controls of PLC 60 described above.
  • the PLC 60 in the above description may be read as the server 10, and the server control unit 11 or the PLC control unit 61 of the server 10 may execute various functions and controls of the PLC 60 described above.
  • various configurations of the server 10 may function as various configurations of the PLC 60 , and the server 10 may have various configurations of the PLC 60 . In this case, it may be integrated with either or both of the terminal device 20 and the robot control device 41 .
  • each component of the robot control system 1 may be integrated as described above.
  • a storage medium on which the program is recorded for example, an optical disc, Magneto-optical disk, CD-ROM, CD-R, CD-RW, magnetic tape, hard disk, memory card, etc.
  • the program may be stored on a non-transitory computer-readable medium.
  • the implementation form of the program is not limited to an application program such as an object code compiled by a compiler or a program code executed by an interpreter. good.
  • the program may or may not be configured so that all processing is performed only in the CPU on the control board.
  • the program may be configured to be partially or wholly executed by another processing unit mounted on an expansion board or expansion unit added to the board as required.
  • Embodiments according to the present disclosure are not limited to any specific configuration of the embodiments described above. Embodiments of the present disclosure extend to any novel feature or combination thereof described in the present disclosure or any novel method or process step or combination thereof described. be able to.
  • Descriptions such as “first” and “second” in this disclosure are identifiers for distinguishing the configurations. Configurations that are differentiated in descriptions such as “first” and “second” in this disclosure may interchange the numbers in that configuration. For example, a first program can exchange identifiers “first” and “second” with a second program. The exchange of identifiers is done simultaneously. The configurations are still distinct after the exchange of identifiers. Identifiers may be deleted. Configurations from which identifiers have been deleted are distinguished by codes. The description of identifiers such as “first” and “second” in this disclosure should not be used as a basis for interpreting the order of the configuration or the existence of lower numbered identifiers.
  • the server 10 executes a program management method including the procedures shown in FIGS.
  • the program management method may be implemented as a program management program that is executed by a processor included in server 10 .
  • the program management program may be stored on a non-transitory computer readable medium.
  • robot control system 10 server (11: server control unit, 12: storage unit, 13: server I/F) 20 terminal device (21: terminal control unit, 22: terminal I/F, 23: input/output unit) 30 Parts to be Worked 31, 32 First Tray, Second Tray 40 Robot (42: Robot Arm, 43: Camera, 44: Robot Hand) 41 robot controller (45: robot controller) 50 external device 60 PLC (61: PLC control unit) 80 network (82: access point)

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Manipulator (AREA)

Abstract

プログラム管理装置は、通信部と、記憶部と、制御部とを備える。通信部は、少なくとも1つのロボット制御部と通信可能に構成される。記憶部は、少なくとも1つのロボット制御部によって実行され、ロボットの動作を制御する複数の第1プログラムを格納する。制御部は、少なくとも1つのロボット制御部と連係可能な連係制御部の要求に基づいて複数の第1プログラムの中から選択された少なくとも1つの第1プログラムを、連係制御部と連系予定の特定の少なくとも1つのロボット制御部に出力する。

Description

プログラム管理装置、ロボット制御システム、及びプログラム管理方法 関連出願へのクロスリファレンス
 本出願は、日本国特許出願2021-36686号(2021年3月8日出願)の優先権を主張するものであり、当該出願の開示全体を、ここに参照のために取り込む。
 本開示は、プログラム管理装置、ロボット制御システム、及びプログラム管理方法に関する。
 従来、複数のロボットの動作をPLC(Programmable Logic Controller)で制御する構成が知られている。例えば特許文献1には、複数のロボットを、切替手段を介して操作盤によって操作可能に構成されるロボット制御システムが記載されている。また、特許文献2には、ロボットに実行させるシーケンスをシーケンサによって制御する構成が記載されている。
特開平2-274483号公報 特開昭61-23201号公報
 本開示の一実施形態に係るプログラム管理装置は、通信部と、記憶部と、制御部とを備える。前記通信部は、少なくとも1つのロボット制御部と通信可能に構成される。前記記憶部は、前記少なくとも1つのロボット制御部によって実行され、ロボットの動作を制御する複数の第1プログラムを格納する。前記制御部は、前記少なくとも1つのロボット制御部と連係可能な連係制御部の要求に基づいて前記複数の第1プログラムの中から選択された少なくとも1つの第1プログラムを、前記連係制御部と連系予定の特定の少なくとも1つのロボット制御部に出力する。
 本開示の一実施形態に係るプログラム管理装置は、ユーザの入力を受け付けるインタフェースと、通信部と、記憶部と、制御部とを備える。前記通信部は、少なくとも1つのロボットを制御可能な少なくとも1つのロボット制御部及び前記少なくとも1つのロボット制御部と連係可能な少なくとも1つの連係制御部と通信可能に構成される。前記記憶部は、前記少なくとも1つのロボット制御部が実行可能な少なくとも1つの第1プログラム及び前記少なくとも1つの連係制御部が実行可能な少なくとも1つの第2プログラムを格納する。前記制御部は、前記インタフェース、前記通信部及び前記記憶部に接続される。前記制御部は、前記入力に基づき選択された、特定の少なくとも1つの第1プログラムに対応した特定の第2プログラムを、前記特定の少なくとも1つの第1プログラムを実行予定の特定の少なくとも1つのロボット制御部と連係予定の特定の連係制御部に対して出力する。
 本開示の一実施形態に係るプログラム管理装置は、ユーザの入力を受け付けるインタフェースと、通信部と、記憶部と、制御部とを備える。前記通信部は、少なくとも1つのロボットを制御可能な少なくとも1つのロボット制御部及び前記少なくとも1つのロボット制御部と連係可能な少なくとも1つの連係制御部と通信可能に構成される。前記記憶部は、前記少なくとも1つのロボット制御部が実行可能な少なくとも1つの第1プログラム及び前記少なくとも1つの連係制御部が実行可能な少なくとも1つの第2プログラムを格納する。前記制御部は、前記インタフェース、前記通信部及び前記記憶部に接続される。前記制御部は、前記入力に基づき選択された、特定の第2プログラムに対応した特定の少なくとも1つの第1プログラムを、前記特定の第2プログラムを実行予定の特定の連係制御部と連係予定の特定の少なくとも1つのロボット制御部に対して出力する。
 本開示の一実施形態に係るロボット制御システムは、前記プログラム管理装置と、前記ロボット制御部と、前記連係制御部とを備える。
 本開示の一実施形態に係るプログラム管理方法は、ロボットの動作を制御する少なくとも1つのロボット制御部によって実行される複数の第1プログラムを格納することを含む。前記プログラム管理方法は、前記少なくとも1つのロボット制御部と連係可能な連係制御部によって前記複数の第1プログラムの中から選択された少なくとも1つの第1プログラムを、前記連係制御部によって前記少なくとも1つのロボット制御部から選択された前記ロボット制御部に出力することを含む。
一実施形態に係るロボット制御システムの構成例を示す模式図である。 一実施形態に係るロボット制御システムの構成例を示すブロック図である。 ロボットと外部装置とが連動する構成例を示す模式図である。 プログラムの前準備の手順例を示すフローチャートである。 入力ポート及び出力ポートの設定例を示す表である。 PLCとロボット制御装置又は外部装置との間の入力ポート及び出力ポートの関係を設定するユーザインタフェースの一例を示す図である。 ロボット制御装置と外部装置との間の入力ポート及び出力ポートの関係を設定するユーザインタフェースの一例を示す図である。 プログラムを選択してロボットに作業を動作させる手順例を示すフローチャートである。 選択したプログラムに基づく動作例を示すフローチャートである。 ラダープログラムに対応するラダー図の一例を示す図である。 プログラムを選択してロボットに作業を動作させる場合におけるデータの流れの一例を示す図である。
 ロボット制御装置は、あらかじめ作成されたプログラムを実行することによってロボットの動作を制御する。ロボット制御装置は、ロボットに複数の動作を実行させるためにプログラムを切り替える必要がある。ロボットに実行させる各動作に対応するプログラムの管理の利便性の向上が求められる。
(ロボット制御システム1の概要)
 図1及び図2に示されるように、一実施形態に係るロボット制御システム1は、サーバ10と、端末装置20と、ロボット40と、ロボット制御装置41と、プログラマブルロジックコントローラ(PLC)60とを備える。ロボット制御装置41は、ロボット40を制御する。ロボット制御システム1は、必須ではないが外部装置50を更に備える。
 本実施形態に係るロボット制御システム1は、ロボット40に実行させる動作をPLC60に選択させる。つまり、ロボット制御システム1のユーザである作業者は、PLC60を操作することによってロボット40に実行させる動作を選択できる。ロボット制御システム1は、ロボット40に動作を実行させるためのプログラムをあらかじめ格納しておき、PLC60による動作の選択に基づいて、プログラムをロボット制御装置41にダウンロードする。ロボット制御システム1は、PLC60をロボット制御装置41に連動させるラダープログラムを、ロボット制御装置41にダウンロードしたプログラムに基づいて生成し、PLC60にダウンロードする。
 ロボット制御システム1が外部装置50を備える場合、PLC60は、外部装置50に動作を指示する。ロボット制御システム1は、PLC60が外部装置50をロボット40に連動させるようにラダープログラムを生成する。このようにすることで、ロボット制御システム1は、ロボット40と外部装置50とを連動させる。
 比較例に係るシステムとして、作業者がロボット制御装置に個別にプログラムをコピーする構成が考えられる。一方で、本実施形態に係るロボット制御システム1によれば、コピーの作業が省略され得る。また、ロボット制御装置41に適宜プログラムをダウンロードすることによってロボット制御装置41のメモリが節約され得る。また、ロボット40を動作させたいときだけロボット制御装置41にプログラムをダウンロードすることによって、ロボット40が意図しないタイミングで動作するリスクが低減され得る。
 また、比較例に係るシステムにおいて、ロボット制御装置にプログラムをコピーする作業は、作業者による端末装置の操作によって実行され得る。一方で、本実施形態に係るロボット制御システム1では、PLC60を介して、作業者にプログラムを選択させることによって、簡易にロボット制御装置41にプログラムをインストールすることができ、ロボット40を動作させるプログラムの管理の利便性が向上され得る。
 また、比較例に係るシステムにおいて、ロボット制御装置にプログラムをコピーしたとしても、PLCのラダープログラムがプログラムに対応していない場合、作業者がPLCだけでロボットの動作を制御できない。一方で、本実施形態に係るロボット制御システム1は、選択したプログラムに対応するラダープログラムを生成してPLC60にダウンロードできる。したがって、作業者がPLC60を操作するだけでロボット40を動作させることができる。
 また、本実施形態に係るロボット制御システム1では、端末装置20とは異なるPLC60を介して、簡易な操作によってロボット40の制御が可能なため、作業性の向上又は不正操作のリスクの低減が実現され得る。
 以下、本実施形態に係るロボット制御システム1の構成例が説明される。
(ロボット制御システム1の構成例)
 ロボット制御システム1の各構成部は、ネットワーク80を介して互いに通信可能に接続される。ロボット制御システム1の各構成部は、ネットワーク80を介さずに通信可能に接続されてもよい。ロボット制御システム1の各構成部は、有線又は無線で通信可能に接続されてもよい。ロボット制御システム1の各構成部は、専用回線を介して通信可能に接続されてもよい。ロボット制御システム1の各構成部は、これらの例に限られず他の種々の形態で互いに通信可能に接続されてもよい。
 サーバ10とロボット制御装置41又はPLC60とは、図1においてアクセスポイント82を介して通信可能に接続されるが、無線基地局を介して通信可能に接続されてもよいし、アクセスポイント82又は無線基地局を介さずに通信可能に接続されてもよい。アクセスポイント82は、無線接続機能を備えた端末を相互に接続したり、他のネットワークに接続させたりするための無線機を指し、典型的には、OSI(Open System Interconnect)参照モデルにおける第1層(物理層)及び、第2層(データリンク層)の通信プロトコルで作動するデバイスである。ロボット制御装置41とPLC60と外部装置50とは、図1において互いにネットワーク80を介さずに通信可能に接続されるが、ネットワーク80を介して通信可能に接続されてもよい。
 サーバ10及び端末装置20の数は、例示されるように3台に限られず、2台以下であってもよいし、4台以上であってもよい。ロボット40とロボット制御装置41との組み合わせの数は、例示されるように2組に限られず、1組であってもよいし、3組以上であってもよい。1台のロボット制御装置41は、例示されるように1台のロボット40を制御してもよいし、2台以上のロボット40を制御してもよい。
 以下、各構成部が具体的に説明される。
<サーバ10>
 サーバ10は、サーバ制御部11と、記憶部12と、サーバインタフェース13とを備える。サーバ制御部11は、単に制御部とも称される。サーバインタフェース13は、サーバI/F13とも称される。サーバ10は、サーバI/F13を介してネットワーク80に通信可能に接続される。サーバ10は、プログラム管理装置とも称される。
 サーバ制御部11は、サーバ10の種々の機能を実現するために、少なくとも1つのプロセッサを含んで構成されてよい。プロセッサは、サーバ10の種々の機能を実現するプログラムを実行しうる。プロセッサは、単一の集積回路として実現されてよい。集積回路は、IC(Integrated Circuit)とも称される。プロセッサは、複数の通信可能に接続された集積回路及びディスクリート回路として実現されてよい。プロセッサは、CPU(Central Processing Unit)を含んで構成されてよい。プロセッサは、DSP(Digital Signal Processor)又はGPU(Graphics Processing Unit)を含んで構成されてもよい。プロセッサは、他の種々の既知の技術に基づいて実現されてよい。
 サーバ10は、記憶部12を更に備える。記憶部12は、磁気ディスク等の電磁記憶媒体を含んで構成されてよいし、半導体メモリ又は磁気メモリ等のメモリを含んで構成されてもよい。記憶部12は、HDD(Hard Disk Drive)として構成されてもよいしSSD(Solid State Drive)として構成されてもよい。記憶部12は、各種情報及びサーバ制御部11で実行されるプログラム等を格納する。記憶部12は、サーバ制御部11のワークメモリとして機能してよい。記憶部12の少なくとも一部は、サーバ制御部11に含まれてもよい。
 サーバI/F13は、有線又は無線で通信可能に構成される通信デバイスを含んで構成されてよい。サーバI/F13は、通信部とも称される。通信デバイスは、種々の通信規格に基づく通信方式で通信可能に構成されてよい。サーバI/F13は、既知の通信技術により構成することができる。サーバI/F13のハードウェアなどの詳細な説明は省略する。サーバI/F13の機能は、1つのインタフェースによって実現されてもよいし、接続先別にそれぞれ別体のインタフェースによって実現されてもよい。
 ロボット制御システム1において、サーバ10は、サーバ装置として構成されてもよい。サーバ装置は、少なくとも1台の情報処理装置を含んで構成されてよい。サーバ装置は、複数の情報処理装置に並列処理を実行させるように構成されてよい。サーバ装置は、物理的な筐体を含んで構成される必要はなく、ヴァーチャルマシン又はコンテナオーケストレーションシステムなどの仮想化技術に基づいて構成されてもよい。サーバ装置は、クラウドサービスを用いて構成されてもよい。サーバ装置がクラウドサービスを用いて構成される場合、マネージドサービスを組み合わせることで構成され得る。つまり、サーバ10の機能は、クラウドサービスとして実現され得る。
 サーバ装置は、少なくとも1つのサーバ群と、少なくとも1つのデータベース群とを備えてよい。サーバ群は、サーバ制御部11として機能する。データベース群は、記憶部12として機能する。サーバ群の数は、1つであってもよいし2つ以上であってもよい。サーバ群の数が1つである場合、1つのサーバ群で実現される機能が各サーバ群で実現される機能を包含する。各サーバ群は、互いに有線又は無線で通信可能に接続される。データベース群の数は、1つであってもよいし2つ以上であってもよい。データベース群の数は、サーバ装置で管理するデータの容量とサーバ装置に求められる可用性要件とに基づいて適宜増減されてよい。データベース群は、各サーバ群と有線又は無線で通信可能に接続される。
 サーバ10は、図1及び図2において1つの構成として記載されているが、必要に応じて複数の構成を1つのシステムとみなして運用され得る。つまり、サーバ10は、容量可変なプラットフォームとして構成される。サーバ10として複数の構成が用いられることによって、1つの構成が天災等の不測の事態の発生時に運用できなくなった場合も、その他の構成を用いてシステムの運用が継続される。この場合、複数の構成それぞれは、有線又は無線を問わない回線によって接続され、相互に通信可能に構成されている。この複数の構成は、クラウドサービスとオンプレミス環境とに跨って構築されてもよい。
 また、サーバ10は、有線又は無線を問わない回線によって端末装置20、ロボット制御装置41及びPLC60それぞれと接続される。サーバ10と、端末装置20と、ロボット制御装置41と、PLC60とは、相互に標準的なプロトコルを用いたインタフェースを具備しており、双方向のコミュニケーションをとることができる。
<端末装置20>
 端末装置20は、端末制御部21と、端末インタフェース22と、入出力部23とを備える。端末制御部21は、単に制御部とも称される。端末インタフェース22は、端末I/F22とも称される。端末装置20は、端末I/F22を介してネットワーク80に通信可能に接続される。
 端末制御部21は、少なくとも1つのプロセッサを含んで構成されてよい。端末制御部21は、サーバ10のサーバ制御部11と同一又は類似に構成されてよい。端末制御部21は、入出力部23にGUI(Graphical User Interface)を提供させるアプリケーションを実行してよい。端末制御部21は、ウェブブラウザ上において、サーバ10等の他の装置から配信されるGUIのプログラムを実行することによってGUIを提供してもよい。端末制御部21は、GUIをウェブブラウザ上で提供する場合、ユーザがウェブブラウザに対して入力した要求に基づいてサーバ10等の他の装置からGUIのプログラムを受信し、ウェブブラウザ上で描画するように構成されてよい。端末装置20は、記憶部を更に含んで構成されてもよい。端末装置20の記憶部は、サーバ10の記憶部12と同一又は類似に構成されてよい。
 端末I/F22は、サーバ10のサーバI/F13と同一又は類似に構成されてよい。
 入出力部23は、上述のGUIをロボット制御システム1のユーザに提供するように構成される。入出力部23は、ユーザに対して情報を出力する出力デバイスと、ユーザからの入力を受け付ける入力デバイスとを含んで構成される。
 出力デバイスは、表示デバイスを含んで構成されてよい。表示デバイスは、例えば、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機EL(Electro-Luminescence)ディスプレイ若しくは無機ELディスプレイ、又は、プラズマディスプレイ(PDP:Plasma Display Panel)等を含んで構成されてよい。表示デバイスは、これらのディスプレイに限られず、他の種々の方式のディスプレイを含んで構成されてよい。表示デバイスは、LED(Light Emitting Diode)等の発光デバイスを含んで構成されてよい。表示デバイスは、他の種々のデバイスを含んで構成されてよい。出力デバイスは、音声等の聴覚情報を出力するスピーカ等の音声出力デバイスを含んで構成されてもよい。出力デバイスは、これらの例に限られず、他の種々のデバイスを含んで構成されてよい。
 入力デバイスは、例えば、タッチパネル若しくはタッチセンサ、又はマウス等のポインティングデバイスを含んで構成されてよい。入力デバイスは、物理キーを含んで構成されてもよい。入力デバイスは、マイク等の音声入力デバイスを含んで構成されてもよい。入力デバイスは、これらの例に限られず、他の種々のデバイスを含んで構成されてよい。
 端末装置20は、少なくとも1台の情報処理装置を含んで構成されてよい。ロボット制御システム1が備える端末装置20の数は、1台に限られず、2台以上であってよい。ロボット制御システム1が複数の端末装置20を備える場合、各端末装置20がユーザからの入力を受け付けてよい。端末装置20は、タブレット端末として構成されてよい。端末装置20は、フィーチャフォン又はスマートフォン等の携帯電話端末として構成されてよい。端末装置20は、デスクトップPC(Personal Computer)又はノートPC等のPC端末として構成されてよい。端末装置20は、これらの例に限られず、GUI及び通信機能を提供できる種々のデバイスとして構成されてよい。
 端末装置20は、ロボット40に係る制御に関する操作又は要求等のうち、PLC60を介して行なう操作又は要求等よりも多くの又は高度な操作又は要求等を実行可能である。また、端末装置20は、PLC60と比較して、ロボット40に特化した仕様を有している。例えば、端末装置20は、ロボット40に実行させる動作を特定するプログラムをサーバ10にあらかじめ格納する作業をユーザが実行するために使用されてよい。端末装置20は、ロボット40の状態を監視するために使用されてもよい。端末装置20は、これらの例に限られず、他の種々の機能を提供できる。
<ロボット制御装置41>
 ロボット制御装置41は、ロボット制御部45を備える。ロボット制御部45は、ロボット制御装置41の種々の機能又は制御を実現するために、少なくとも1つのプロセッサを含んで構成されてよい。ロボット制御部45は、少なくとも1つのロボット40を制御可能に構成される。ロボット制御部45は、サーバ10のサーバ制御部11と同一又は類似に構成されてよい。ロボット制御装置41は、記憶部を更に含んで構成されてもよい。ロボット制御装置41の記憶部は、サーバ10の記憶部12と同一又は類似に構成されてよい。
 ロボット制御装置41は、サーバ10から、ロボット40に実行させる作業を特定するプログラムをダウンロードする。ロボット40に実行させる作業を特定するプログラムは、第1プログラムとも称される。ロボット制御装置41は、ダウンロードしたプログラムに基づいてロボット40の動作を制御する情報をロボット40に出力し、プログラムで特定される作業をロボット40に実行させる。ロボット40に実行させる作業は、例えば、作業対象物を2つの地点の間で移動させる作業を含んでよい。
 ロボット制御装置41は、プログラムをサーバ10からダウンロードするインタフェースを備えてよい。ロボット制御装置41のインタフェースは、サーバ10のサーバI/F13と同一又は類似に構成されてよい。ロボット制御装置41は、プログラムに基づいてロボット40の動作を制御する情報を生成するプロセッサを備えてよい。ロボット制御装置41のプロセッサは、サーバ10のサーバ制御部11を構成するプロセッサと同一又は類似に構成されてよい。
 図1に例示される構成において、1台のロボット制御装置41が1台のロボット40に接続されている。1台のロボット制御装置41が2台以上のロボット40に接続されてもよい。1台のロボット制御装置41は、1台のロボット40だけを制御してもよいし、2台以上のロボット40を制御してもよい。ロボット制御装置41及びロボット40の数は、2台に限られず、1台であってもよいし、3台以上であってもよい。
<ロボット40>
 ロボット40は、アームを備えるロボットアームとして構成されてよい。アームは、例えば、6軸又は7軸の垂直多関節ロボットとして構成されてよい。アームは、3軸又は4軸の水平多関節ロボット又はスカラロボットとして構成されてもよい。アームは、2軸又は3軸の直交ロボットとして構成されてもよい。アームは、パラレルリンクロボット等として構成されてもよい。アームを構成する軸の数は、例示したものに限られない。
 ロボット40は、アームに取り付けられるエンドエフェクタを備えてよい。エンドエフェクタは、例えば、作業対象物を把持できるように構成される把持ハンドを含んでよい。把持ハンドは、複数の指を有してよい。把持ハンドの指の数は、2つ以上であってよい。把持ハンドの指は、1つ以上の関節を有してよい。エンドエフェクタは、作業対象物を吸着できるように構成される吸着ハンドを含んでもよい。エンドエフェクタは、作業対象物を掬うことができるように構成される掬いハンドを含んでもよい。エンドエフェクタは、ドリル等の工具を含み、作業対象物に穴を開ける作業等の種々の加工を実施できるように構成されてもよい。エンドエフェクタは、これらの例に限られず、他の種々の動作ができるように構成されてよい。
 ロボット40は、アームを動作させることによって、エンドエフェクタの位置を制御できる。エンドエフェクタは、作業対象物に対して作用する方向の基準となる軸を有してもよい。エンドエフェクタが軸を有する場合、ロボット40は、アームを動作させることによって、エンドエフェクタの軸の方向を制御できる。ロボット40は、エンドエフェクタが作業対象物に作用する動作の開始及び終了を制御する。ロボット40は、エンドエフェクタの位置、又は、エンドエフェクタの軸の方向を制御しつつ、エンドエフェクタの動作を制御することによって、作業対象物を動かしたり加工したりすることができる。
 ロボット40は、無人搬送車(AGV:Automated Guided Vehicle)として構成されてもよい。ロボット40は、ドローンとして構成されてもよい。ロボット40は、ロボットアーム又はAGVに限られず、乗り物、電子機器又は制御機械等の他の種々の形態で構成されてもよい。
 ロボット40は、ロボット40の各構成部の状態を検出するセンサを更に備えてよい。センサは、ロボット40の各構成部の現実の位置若しくは姿勢、又は、ロボット40の各構成部の速度若しくは加速度に関する情報を検出してよい。センサは、ロボット40の各構成部に作用する力を検出してもよい。センサは、ロボット40の各構成部を駆動するモータに流れる電流又はモータのトルクを検出してもよい。センサは、ロボット40の実際の動作の結果として得られる情報を検出できる。ロボット制御装置41は、センサの検出結果を取得することによって、ロボット40の実際の動作の結果を把握することができる。
<PLC60>
 PLC60は、ラダープログラム等のプログラムを実行する。PLC60が実行するラダープログラム等のプログラムは、第2プログラムとも称される。本実施形態において、PLC60は、サーバ10からラダープログラムをダウンロードし、ダウンロードしたラダープログラムを実行することによってシーケンシャルに動作する。また、PLC60は、ロボット40の動作と連係して動作する。つまり、PLC60は、各ロボット制御装置41と通信可能に接続されることによってロボット40と連係可能に構成され、連係制御装置とも称される。PLC60は、入力ポートにおける情報の入力、及び、出力ポートにおける情報の出力を制御してよい。PLC60は、ゲートウェイ装置を介してサーバ10と通信可能に接続されてもよい。
 また、PLC60は、ロボット40に係る制御に関する操作又は要求等のうち、端末装置20を介して行なう操作又は要求等よりも少ない又は簡易な操作又は要求等を実行可能である。また、PLC60は、端末装置20と比較して、各ロボット40及び/又は外部装置50を含むロボット制御システム1内の設備等の簡素化又は汎用化された操作を実行可能である。例えば、PLC60は、ロボット40及び外部装置50を含む設備の稼働又は停止等の操作、要求又は指示等を実行可能である。
 PLC60は、PLC制御部61を備える。PLC制御部61は、PLC60の種々の機能又は制御を実現するために、少なくとも1つのプロセッサを含んで構成されてよい。PLC制御部61は、サーバ10のサーバ制御部11と同一又は類似に構成されてよい。
 また、PLC60は、ユーザからの入力を受け付ける入力デバイスと、ユーザに通知する情報を表示する出力デバイスとを備える。PLC60の入力デバイス及び出力デバイスは、端末装置20の入出力部23が備える入力デバイス及び出力デバイスと同一又は類似に構成されてよい。PLC60は、記憶部を更に含んで構成されてもよい。PLC60の記憶部は、サーバ10の記憶部12と同一又は類似に構成されてよい。
<外部装置50>
 外部装置50とは、ロボット40とは異なる装置である。外部装置50は、例えば、製品を製造するための生産ライン上に設置された設備であってもよい。外部装置50は、例えば、ロボット40から入れられた部品を加工して、ロボット40に払い出す。外部装置50は、ロボット40と連動する装置及び治具の少なくとも一方を含んで構成される。ロボット40は、外部装置50に部品を出し入れする。外部装置50は、PLC60に通信可能に接続され、PLC60からの制御情報に基づいて動作する。外部装置50は、例えば部品を加工する装置を含んで構成されてよいし、部品を整列させたり整形したりする治具を含んで構成されてよい。外部装置50は、これらの例に限られず、種々の装置又は治具を含んで構成されてよい。外部装置50は、部品の加工作業に限られず、組み立て作業、塗装作業又はネジ締め作業等の種々の作業を実行するように構成されてよい。
(ロボット制御システム1の動作例)
 本実施形態に係るロボット制御システム1は、図3に示される構成においてロボット40と外部装置50とを連動させることによって、作業対象部品30に対する作業をロボット40に実行させるとする。具体的に、ロボット40は、ロボットアーム42と、カメラ43と、ロボットハンド44とを備える。カメラ43及びロボットハンド44は、ロボットアーム42の先端又は先端付近に設置されている。ロボット40は、ロボットアーム42を動かすことによって、カメラ43及びロボットハンド44を移動させる。ロボット40は、第1トレイ31に収容されている作業対象部品30をカメラ43で検出し、作業対象部品30をロボットハンド44で把持して外部装置50に入れる。外部装置50は、作業対象部品30に対してあらかじめ定められた作業を実行する。本実施形態では、外部装置50は、作業対象部品30に対して加工作業を実行する。ロボット40は、外部装置50で作業後の作業対象部品30をロボットハンド44で把持して外部装置50から取り出し、第2トレイ32に収容する。
 ロボット制御装置41は、上述の動作を特定するプログラムをサーバ10からダウンロードして実行することによって、ロボット40に上述の動作を実行させる。また、PLC60は、上述の動作を特定するプログラムに基づいて生成されたラダープログラムをサーバ10からダウンロードして実行することによって、ロボット40の状態に基づいて外部装置50を制御したり、または外部装置50の状態に基づいてロボット制御装置41にロボット40を制御させたりする。つまり、PLC60は、ロボット40の動作に外部装置50を連動させる。
<プログラム作成>
 上述の動作を特定するプログラムは、例えば、ロボット制御システム1のユーザである作業者によってあらかじめ作成される。具体的に、ユーザは、端末装置20を用いて、ロボット40に実行させたい作業についてティーチングを実行し、ロボット40に実行させたい作業を特定するプログラムを作成する。ユーザは、複数台のロボット40に同じ作業を実行させる場合、1台のロボット40でティーチングを実行すればよい。1台のロボット40でティーチングを実行することによって作成したプログラムは、他のロボット40にも適用できる。
 ロボット40と外部装置50が連動する場合、外部装置50に関する制御を含んだプログラムが作成される。例えば、ロボット40に実行させたい作業が外部装置50への部品の出し入れ作業である場合、外部装置50の操作も含めてティーチングを実行して外部装置50の操作をプログラムに盛り込む必要がある。外部装置50は、PLC60からの制御情報に基づいて始動したり停止したりするように構成される。ロボット40が作業対象部品30を第1トレイ31から外部装置50に入れた場合、例えばロボット制御装置41からPLC60に信号が送信される。PLC60は、信号を受信した場合、外部装置50に対して始動の信号を送信する。同時にロボット制御装置41は、ロボット40を停止させる。外部装置50は、ロボット40によって入れられた作業対象部品30に加工等の作業を実行する。外部装置50があらかじめ定められた作業の実行を完了した場合、又は、あらかじめ定められた作業時間が経過した場合、PLC60は外部装置50に停止信号を送信する。外部装置50は、停止信号に基づいて停止する。PLC60は、ロボット制御装置41に対して、外部装置50における作業が終了したことを表す信号を送信する。ロボット制御装置41は、ロボット40に動作を再開させる。ロボット40は、外部装置50から作業対象部品30を取り出して第2トレイ32に部品を置く。
 ロボット制御システム1は、図4に例示するフローチャートの手順に沿ってティーチングを実行してよい。
 端末装置20は、各装置の入力ポート及び出力ポートを設定する(ステップS1)。具体的に、端末装置20は、ロボット制御装置41とPLC60と外部装置50との間の通信に用いられる入力ポート及び出力ポートの対応関係を設定する。端末装置20は、例えば図5に表として示されるように、PLC60がどの入力ポート又は出力ポートでロボット制御装置41及び外部装置50と通信するか設定する。図5に例示される設定によれば、PLC60は、1番及び2番の出力ポートでロボット制御装置41の1番及び2番の入力ポートと通信し、3番及び4番の入力ポートでロボット制御装置41の3番及び4番の出力ポートと通信し、5番の出力ポートで外部装置50の1番の入力ポートと通信する。端末装置20は、ユーザから各装置の入力ポート及び出力ポートの設定に関する入力を受け付け、ユーザ入力に基づいて入力ポート及び出力ポートを設定する。
 端末装置20は、図6に例示されるユーザインタフェースによって、ユーザ入力を受け付けてよい。PLC60に対応する列の「PLC.1」という記載は、ロボット制御システム1が複数のPLC60を備える場合、1番のPLC60の入力ポート及び出力ポートを設定することを表している。以下、1番のPLC60は、単にPLC60と称される。ロボット制御装置41に対応する列の「Rob.1」という記載は、ロボット制御システム1が複数のロボット制御装置41を備える場合、1番のロボット制御装置41の入力ポート及び出力ポートを設定することを表している。以下、1番のロボット制御装置41は、単にロボット制御装置41と称される。外部装置50に対応する列の「Jig.1」という記載は、ロボット制御システム1が複数の外部装置50を備える場合、1番の外部装置50の入力ポートを設定することを表している。以下、1番の外部装置50は、単に外部装置50と称される。このように、端末装置20は、複数のPLC60、ロボット制御装置41又は外部装置50の入力ポート及び出力ポートを設定できる。
 端末装置20は、ユーザに、PLC60の番号とその入力ポート又は出力ポートの番号とをプルダウンにて選択させる。また、端末装置20は、ロボット制御装置41の番号とその入力ポート又は出力ポートの番号とをプルダウンで選択させる。同じ行で選択された装置の番号の入力ポート又は出力ポートの番号は、互いに関連づけられる。図6の例において、PLC60の1番の出力ポート(「Out.1」)と、ロボット制御装置41の1番の入力ポート(「In.1」)とが互いに関連づけられる。つまり、PLC60の1番の出力ポートが出力した信号は、ロボット制御装置41の1番の入力ポートに入力される。また、PLC60の2番の出力ポート(「Out.2」)と、ロボット制御装置41の2番の入力ポート(「In.2」)とが互いに関連づけられる。つまり、PLC60の2番の出力ポートが出力した信号は、ロボット制御装置41の2番の入力ポートに入力される。また、PLC60の3番の入力ポート(「In.3」)と、ロボット制御装置41の3番の出力ポート(「Out.3」)とが互いに関連づけられる。つまり、ロボット制御装置41の3番の出力ポートが出力した信号は、PLC60の3番の入力ポートに入力される。また、PLC60の4番の入力ポート(「In.4」)と、ロボット制御装置41の4番の出力ポート(「Out.4」)とが互いに関連づけられる。つまり、ロボット制御装置41の4番の出力ポートが出力した信号は、PLC60の4番の入力ポートに入力される。また、PLC60の5番の出力ポート(「Out.5」)と、外部装置50の1番の入力ポート(「In.1」)とが互いに関連づけられる。つまり、PLC60の5番の出力ポートが出力した信号は、外部装置50の1番の入力ポートに入力される。
 また、どの入力ポート及び出力ポートも関連づけない場合、端末装置20は、ユーザに、番号ではなく空白を選択させる。図6の例において、PLC60の1番の出力ポートは、ロボット制御装置41の1番の入力ポートと関連づけられているものの、外部装置50の入力ポート及び出力ポートと関連づけられていない。
 端末装置20は、図6に例示したユーザインタフェースにおいて、必要に応じて、ロボット制御装置41、PLC60又は外部装置50を2台以上に増やすことができる。また、端末装置20は、各装置の入力ポート及び出力ポートの数を増やすことができる。このようにすることで、端末装置20は、ロボット制御システム1が備える全ての装置の全ての入力ポート及び出力ポートを定義できるユーザインタフェースを提供できる。
 また、端末装置20は、PLC60を介した、ロボット制御装置41と外部装置50との間の通信を実現できるように、入力ポート及び出力ポートを関連づける。端末装置20は、図7に例示されるユーザインタフェースによって、ユーザ入力を受け付けてよい。図7の例において、ロボット制御装置41の4番の出力ポート(「Out.4」)と外部装置50の1番の入力ポート(「In.1」)とが関連づけられている。ロボット制御装置41の4番の出力ポート(「Out.4」)からHiの信号(「H」)が出力された場合、PLC60を介して、外部装置50の1番の入力ポート(「In.1」)にHiの信号(「H」)が入力される。
 端末装置20は、入力ポート及び出力ポートの設定をサーバ10に出力する。サーバ10は、入力ポート及び出力ポートの設定を記憶部12に格納する。
 図4に戻って、端末装置20は、動作の論理づけを実行する(ステップS2)。具体的に、端末装置20は、各入力ポート又は各出力ポートで通信される信号がHiである場合の各装置の動作、及び、信号がLoである場合の各装置の動作を定義する。つまり、端末装置20は、各入力ポート又は各出力ポートで通信される信号の論理(Hi又はLo)を各装置の動作に関連づける。端末装置20は、ロボット制御装置41が特定の入力ポートでHiの信号を受信した場合にロボット40に実行させる動作についてユーザからの入力を受け付ける。端末装置20は、ユーザ入力に基づいて、各入力ポートでHi又はLoの信号を受信した場合の各装置の動作を定義する。端末装置20は、動作の定義をサーバ10に出力する。サーバ10は、動作の定義を記憶部12に格納する。
 端末装置20は、ロボット40のティーチングを実行する(ステップS3)。具体的に、端末装置20は、以下のように動作することによって、ユーザにロボット40のティーチングを実行させ得る。なお、以下の動作例は、簡易的に説明されるものである。以下の動作例においてエラー発生時の処理等は省略される。
 ユーザは、端末装置20を操作してティーチングを実行する。まず、ユーザは、ロボット制御装置41が2番の入力ポートでLoの信号を受信する場合にロボット40を起動させることを指示する。次に、ユーザは、ロボット40が動作する準備を完了した場合にロボット制御装置41が3番の出力ポートからHiの信号を出力してPLC60にロボット40の動作準備が完了したことを通知することを指示する。次に、ユーザは、ロボット制御装置41が1番の入力ポートにHiの信号を受信する場合にロボット40を動作させることを指示する。
 端末装置20は、ユーザからロボット40の動作を指定する入力を受け付けることによって、実際にロボット制御装置41によってロボット40を動作させる。ユーザは、ロボット40の実際の動作を確認しながら端末装置20でロボット40の動作を指定する。ユーザは、ロボット40のロボットアーム42を動作させ、決められた座標にセットされている第1トレイ31の上空までロボットアーム42を移動させる。ユーザは、ロボットアーム42に設置されているカメラ43にて第1トレイ31が存在するかロボット40に認識させる。また、ユーザは、第1トレイ31内に作業対象部品30が存在するかカメラ43に認識させる。ユーザは、カメラ43が作業対象部品30の存在を認識した場合、ロボットアーム42に設定されているロボットハンド44によって作業対象部品30を把持させる。その後、ユーザは、ロボットアーム42を移動させ、決められた座標である外部装置50の手前で停止させる。
 続いて、ユーザは、ロボット制御装置41が2番の入力ポートにLoの信号を受信しているか確認する。2番の入力ポートにLoの信号を受信することは、外部装置50が停止状態であることを意味する。ユーザは、ロボット制御装置41が2番の入力ポートにLoの信号を受信している場合にロボット制御装置41にロボット40を再度動作させることを指示する。また、ユーザは、ロボット制御装置41に、外部装置50の中の決められた座標まで作業対象部品30を移動させ、ロボットハンド44を開放して作業対象部品30をその座標に置かせてロボットアーム42が外部装置50の手前まで戻ることを指示する。その後、ユーザは、ロボット制御装置41が4番の出力ポートにHiの信号を出力することを指示する。ロボット制御装置41が4番の出力ポートにHiの信号を出力することによって、PLC60は、外部装置50の1番の入力ポートにHiの信号を出力する。外部装置50は、1番の入力ポートにHiの信号を受信することによって、作業対象部品30に対する作業を開始する。
 ユーザは、ロボット制御装置41が2番の入力ポートにHiの信号を受信したか確認する。2番の入力ポートにHiの信号を受信することは、外部装置50が動作を終了して停止状態になったことを意味する。ユーザは、ロボット制御装置41が2番の入力ポートにHiの信号を受信した後に、ロボット制御装置41にロボット40を動作させる。ロボット制御装置41は、ロボットアーム42を外部装置50の中で加工済みの作業対象部品30まで移動させ、ロボットハンド44で把持させ、第2トレイ32まで移動させて第2トレイ32の中でロボットハンド44を開放させることによって、第2トレイ32の中に作業対象部品30を置かせる。
 端末装置20は、ユーザの入力に基づいて、以上説明してきた一連の動作をロボット40に実行させるティーチングプログラムを作成できる。
 図4に戻って、端末装置20は、ロボット40の動作を特定するプログラムをサーバ10に出力する(ステップS4)。プログラムは、ティーチングプログラムを含む。
 サーバ10は、取得したプログラムを記憶部12に格納するとともに、取得したプログラムに基づいてPLC60のラダープログラムを生成する(ステップS5)。サーバ10は、取得したティーチングプログラムの内容に基づいてラダープログラムを生成する。サーバ10は、取得したティーチングプログラムと、入力ポート及び出力ポートの設定データ及び動作の定義データとに基づいて、ラダープログラムを生成する。サーバ10は、PLC60にインストール可能な形式でラダープログラムを生成する。サーバ10がラダープログラムを生成することによって、ユーザは、ラダープログラムを作成するために情報を入力しなくてもよい。PLC60は、サーバ10からダウンロードしたり、端末装置20において可搬メモリ等を用いてラダープログラムをインポートしたりすることによって、ラダープログラムをインストールできる。
 サーバ10は、あらかじめ準備されたラダープログラム生成ツールソフトウエアを用いて、ティーチングプログラムからラダープログラムを生成してよい。ラダープログラムは、国際規格IEC61131-3で定義される。国際規格に基づいて記述されているラダープログラムは、原則としてどのPLC60でも実行され得る。本実施形態において、ラダープログラムはIEC61131-3標準の形式で記述されるとする。サーバ10は、ラダープログラム生成ツールソフトウエアを端末装置20で起動し、保存されているティーチングプログラムの一覧から、ラダープログラムを生成する基となるティーチングプログラムをユーザに選択させてラダープログラムを生成する。
 具体的に、サーバ10は、各装置の入力ポート及び出力ポートの番号の定義に基づいて、PLC60が起動するときの動作を最初のコマンドとしてラダープログラムに記述する。次に、サーバ10は、外部装置50を初期化するコマンドをラダープログラムに記述する。
 次に、サーバ10は、ティーチングプログラムに含まれる入力ポート及び出力ポートを制御するコマンドを抽出する。サーバ10は、各入力ポート又は各出力ポートにおける信号の送信及び受信の関係を逆の関係に置き換えたコマンドをラダープログラムに記述する。上述してきたティーチングの例において、ティーチングプログラムが「ロボット制御装置41が2番の入力ポートにLoの信号を受信する場合にロボット40を起動する」というコマンドを含むとする。この場合、サーバ10は、ラダープログラムとして「PLC60の2番の出力ポートからLoの信号を出力する」というコマンドを記述する。また、サーバ10は、ロボット制御装置41が入力ポート及び出力ポートに出力する信号と外部装置50の動作とを関連づける定義に基づいて、PLC60が外部装置50の動作を制御するコマンドをラダープログラムに記述する。また、サーバ10は、PLC60が有するタイマによって所定時間にわたって信号の状態を維持するコマンドをラダープログラムに記述してもよい。ラダープログラムは、ラダー図をコンパイルすることによっても生成され得る。ラダープログラムにコンパイルするラダー図は、後述される。サーバ10は、ラダープログラムを記憶部12に格納する。サーバ10は、ラダープログラムをエクスポートして、PLC60にインポートする。サーバ10は、ラダープログラムを端末装置20にエクスポートして、端末装置20によってPLC60にインポートさせてもよい。
 ロボット制御システム1は、図4のステップS5の手順の終了後、図4のフローチャートの手順の実行を終了する。以上説明してきたように、ロボット制御システム1は、図4に例示したフローチャートの手順を実行することによって、ロボット40の動作を特定するティーチングプログラムと、ティーチングプログラムに対応するラダープログラムとをあらかじめ生成できる。
 なお、上記の説明では、ロボット40の動作を特定するプログラムを端末装置20で作成する例を説明したが、例えばサーバ10などの他の構成によって作成されてもよい。また、上記の説明では、ラダープログラムがサーバ10で作成される例を説明したが、例えば端末装置20などの他の構成によって作成されてもよい。
<ロボット40の通常の動作>
 上述してきたように、ロボット制御システム1は、サーバ10にプログラムをあらかじめ格納する。ロボット制御システム1は、通常の動作として、ユーザにプログラムを選択させて、選択されたプログラムで特定される作業をロボット40に実行させる。以下、通常の動作におけるデータの流れが説明される。
 まず、ユーザは、ロボット40本体の電源を入れる。電源を入れる作業は、複数のロボット40それぞれに対して実行されてよい。配電盤等において複数のロボット40の電源が一元的に管理されている場合、複数のロボット40に電源を入れる作業が一括で実行されてよい。
 ロボット40は、通電されることによって、ティーチングプログラムのダウンロードを待つスタンバイ状態になる。スタンバイ状態において、ロボット40を制御するロボット制御装置41は、ティーチングプログラムを有していない。したがって、仮にロボット40に何らかのトラブルが生じたとしても、ティーチングプログラムが予期せず実行される事態が生じない。つまり、ロボット40が予期せず動作する事態が生じない。なお、ロボット制御装置41は、一度ダウンロードされたプログラムを、ロボット40に予定の動作が完了した後に削除してもよい。
 PLC60は、ユーザから、作業を実行させるロボット40を選択する入力を受け付ける。また、PLC60は、ユーザから、ロボット40に実行させる作業を選択する入力を受け付ける。具体的に、PLC60は、ユーザが選択を入力できるようにユーザインタフェースを提供する。ユーザは、PLC60の操作パネルから選択を入力する。
 PLC60は、操作パネルに、ロボット40を特定する情報として、ロボット番号を表示してよいし、ロボット名称として「ロボット#1」又は「タロウ」等の愛称を表示してよい。
 PLC60は、操作パネルに、ロボット40の作業内容を特定する情報として、作業番号を表示してよいし、「カコウショリ」等の作業名称を表示してよい。操作パネル上に表示されるロボット40及び作業内容を特定する情報は、PLC60の内部処理によって、それぞれロボット番号及びプログラム番号として、PLC60の内部に格納されている。
 PLC60は、操作パネルに、実行スイッチを表示してよい。PLC60は、ハードウェアとして実装される実行ボタンを有してもよい。ユーザは、操作パネルに表示される実行スイッチ、又は、ハードウェアとして実装される実行ボタンを押すことによって、選択したロボット40に選択した作業を実行させる。
 PLC60は、ユーザの選択によって指定されたロボット40及び作業内容の情報、並びに、ユーザがロボット40に作業の実行を指示する情報をサーバ10に送信する。具体的に、PLC60は、サーバ10に、ロボット40に対する作業の実行指示と、実行指示の引数としてのロボット番号及びプログラム番号とを含むデータを送信する。PLC60は、サーバ10に対ししてゲートウェイ装置を介して情報を送信してよいし、ゲートウェイ装置を介さずにネットワーク80を介して情報を送信してもよい。また、ロボット制御装置41がゲートウェイ装置として使用されてもよい。
 サーバ10は、PLC60からデータを受信した場合、サーバ10内に格納しているティーチングプログラムの中から、受信したプログラム番号に対応するティーチングプログラムを呼び出す。サーバ10は、呼び出したティーチングプログラムを、受信したロボット番号に対応するロボット40のロボット制御装置41にダウンロードする。ロボット制御装置41は、ダウンロードしたティーチングプログラムに基づいてロボット40の動作を制御する制御情報を生成し、ロボット40に作業を実行させる。
 ロボット制御システム1は、ティーチングプログラム及びラダープログラムをあらかじめ作成した後で、通常の動作としてユーザにプログラムを選択させてロボット40を動作させることができる。ロボット制御システム1は、図8に例示するフローチャートの手順に沿って通常の動作を実行してよい。
 PLC60は、ロボット40及びロボット40に実行させたい作業を選択する(ステップS11)。具体的に、PLC60は、どのロボット40に作業を実行させるか、及び、ロボット40にどの作業を実行させるかについて指定する、ユーザの入力を受け付ける。つまり、ユーザは、PLC60を操作して作業を実行させたいロボット40と、そのロボット40に実行させたい作業とを選択する。
 PLC60は、ユーザから起動を指示する入力を受け付ける(ステップS12)。具体的に、PLC60は、ユーザが起動スイッチを押した場合に、ロボット40の動作を指示する情報をサーバ10に出力する。
 サーバ10は、プログラムをロボット制御装置41及びPLC60にダウンロードする(ステップS13)。具体的に、サーバ10は、PLC60でユーザが選択した作業を特定するティーチングプログラムをロボット制御装置41にダウンロードする。ダウンロードされるティーチングプログラムはJSON形式で記載されている。ティーチングプログラムのデータサイズは、数キロバイトである。したがって、ダウンロードに費やされる時間は短い。また、サーバ10は、ロボット制御装置41にダウンロードしたティーチングプログラムに対応するラダープログラムをPLC60にダウンロードする。
 ロボット制御装置41は、ダウンロードしたティーチングプログラムに基づいてロボット40の動作を開始させる(ステップS14)。また、PLC60は、ダウンロードしたラダープログラムに基づいて動作する。PLC60は、ラダープログラムに基づいて外部装置50を制御してもよい。
 ロボット制御システム1は、ステップS14の手順の終了後、図8のフローチャートの手順の実行を終了する。以上説明してきたように、ロボット制御システム1は、図8に例示したフローチャートの手順を実行することによって、通常の動作としてユーザにプログラムを選択させてロボット40を動作させることができる。
 ロボット制御システム1は、ユーザの選択に基づいてロボット40に作業を実行させる場合、具体的に図9に例示したフローチャートの手順を実行してもよい。
 図9に例示される手順において、各入力ポート又は各出力ポートで通信される信号がHiである場合の各装置の動作、及び、信号がLoである場合の各装置の動作は、図5に例示されているテーブルで定義されるように関連づけられているとする。
 例えば、PLC60の1番の出力ポートからロボット制御装置41の1番の入力ポートにHiの信号が送信された場合、ロボット制御装置41は、ロボット40の動作を開始させる。つまり、ロボット制御装置41は、ロボット40を稼働させる。逆に、PLC60の1番の出力ポートからロボット制御装置41の1番の入力ポートにLoの信号が送信された場合、ロボット制御装置41は、ロボット40の動作を停止させる。
 また、PLC60の2番の出力ポートからロボット制御装置41の2番の入力ポートにHiの信号が送信された場合、ロボット制御装置41は、外部装置50が稼働中であることを認識する。逆に、PLC60の2番の出力ポートからロボット制御装置41の2番の入力ポートにLoの信号が送信された場合、ロボット制御装置41は、外部装置50が停止中であることを認識する。
 また、ロボット制御装置41の3番の出力ポートからPLC60の3番の入力ポートにHiの信号が送信された場合、PLC60は、ロボット制御装置41が前準備を完了した(前準備OK)ことを認識する。逆に、ロボット制御装置41の3番の出力ポートからPLC60の3番の入力ポートにLoの信号が送信された場合、PLC60は、ロボット制御装置41が前準備を完了していない(前準備NG)ことを認識する。前準備は、例えば、ロボット40を起動して動作を開始できる状態にする準備作業を含む。
 また、ロボット制御装置41の4番の出力ポートからPLC60の4番の入力ポートにHiの信号が送信された場合、PLC60は、ロボット制御装置41が後準備を完了した(後準備OK)ことを認識する。逆に、ロボット制御装置41の4番の出力ポートからPLC60の4番の入力ポートにLoの信号が送信された場合、PLC60は、ロボット制御装置41が後準備を完了していない(後準備NG)ことを認識する。後準備は、例えば、ロボット40が作業対象部品30を外部装置50に移動する作業を含む。
 また、PLC60の5番の出力ポートから外部装置50の1番の入力ポートにHiの信号が送信された場合、外部装置50は、動作を開始する。つまり、外部装置50は、稼働する。逆に、PLC60の5番の出力ポートから外部装置50の1番の入力ポートにLoの信号が送信された場合、外部装置50は、動作を停止する。
 以下、図9に例示されるフローチャートの手順が説明される。
 PLC60は、ユーザによる起動スイッチの押下に基づいて起動する(ステップS31)。PLC60は、2番の出力ポート(I/O#2)及び5番の出力ポート(I/O#5)にLoの信号を出力する(ステップS32)。外部装置50は、PLC60の5番の出力ポートから外部装置50の1番の入力ポートにLoの信号を受信した場合、外部装置50自身の動作を停止する(ステップS41)。外部装置50は、ロボット40が作業対象部品30を外部装置50の内部に入れることができるように準備する。外部装置50は、次にHiの信号を受信するまで停止する。
 ロボット制御装置41は、2番の入力ポート(I/O#2)にLoの信号を受信した場合、ロボット40を起動させる(ステップS21)。ロボット制御装置41は、3番の出力ポート(I/O#3)にHiの信号を出力する(ステップS22)。PLC60は、3番の入力ポート(I/O#3)にHiの信号を受信した場合、1番の出力ポート(I/O#1)にHiの信号を出力する(ステップS33)。ロボット制御装置41は、1番の入力ポート(I/O#1)にHiの信号を受信した場合、ロボット40を動作させる(ステップS23)。ロボット40は、作業対象部品30を第1トレイ31から外部装置50に移動させる(ステップS24)。
 ロボット制御装置41は、ロボット40が作業対象部品30を外部装置50に移動させた後、4番の出力ポート(I/O#4)にHiの信号を出力する(ステップS25)。ロボット制御装置41は、ロボット40を一時停止させる(ステップS26)。PLC60は、4番の入力ポート(I/O#4)にHiの信号を受信した場合、2番の出力ポート(I/O#2)及び5番の出力ポート(I/O#5)にHiの信号を出力する(ステップS34)。外部装置50は、PLC60の5番の出力ポートから外部装置50の1番の入力ポートにHiの信号を受信した場合、動作する(ステップS42)。外部装置50は、具体的に、ロボット40が入れた作業対象部品30に対して加工作業等を実行する。
 PLC60は、タイマで時間をカウントし、所定時間経過後に2番の出力ポート(I/O#2)及び5番の出力ポート(I/O#5)にLoの信号を出力する(ステップS35)。所定時間は、外部装置50が作業対象部品30に対する作業を完了するために十分な時間であるとする。PLC60は、ステップS35の手順の実行後、図9のフローチャートの手順の実行を終了する。
 外部装置50は、PLC60の5番の出力ポートから外部装置50の1番の入力ポートにLoの信号を受信した場合、外部装置50自身の動作を停止する(ステップS43)。外部装置50は、ロボット40が作業対象部品30を外部装置50から取り出すことができるように準備する。外部装置50は、ステップS43の手順の実行後、図9のフローチャートの手順の実行を終了する。
 ロボット制御装置41は、2番の入力ポート(I/O#2)にLoの信号を受信した場合、ロボット40の動作を再開させる(ステップS27)。具体的に、ロボット制御装置41は、ロボット40が外部装置50の中から作業対象部品30を取り出して第2トレイ32に置くようにロボット40を制御する。ロボット制御装置41は、ステップS27の手順の実行後、図9のフローチャートの手順の実行を終了する。
<小括>
 以上説明してきたように、本実施形態に係るロボット制御システム1は、PLC60でユーザからの作業指示を受け付け、選択された作業を特定するプログラムをコントローラにダウンロードして作業をロボット40に実行させる。このようにすることで、プログラムの管理の利便性が向上され得る。また、ロボット40が意図しないタイミングで動作するリスクが低減され得る。また、ユーザに端末装置20を操作させずPLC60だけを操作させることによって、作業性の向上又は不正操作のリスクの低減が実現され得る。
(他の具体例)
 以下、他の具体例が説明される。
<ラダー図の具体例>
 図10に、ラダー図として表したラダープログラムの一例が示される。図10に例示されるラダー図の1行目から3行目までにおいて、スイッチX0が押されることによってONになる。PLC60は、X0がONになった場合、Y1にLo信号を出力する。Y1への信号の出力は、PLC60が5番の出力ポートから外部装置50にLoの信号を出力することに対応する。つまり、Y1への信号の出力は、外部装置50を停止させる指示に対応する。
 PLC60は、X0がONになった場合、Y2にLo信号を出力する。Y2への信号の出力は、PLC60が2番の出力ポートからロボット制御装置41の2番の入力ポートにLoの信号を出力することに対応する。つまり、Y2への信号の出力は、ロボット制御装置41に外部装置が停止状態であることを知らせることに対応する。
 ラダー図の4行目及び5行目において、X1は、ロボット制御装置41の3番の出力ポートからPLC60の3番の入力ポートにHiの信号を受信した場合にONになる。PLC60は、X1がONになった場合、Y3へHi信号を出力する。Y3への信号出力は、PLC60が1番の出力ポートからロボット制御装置41の1番の入力ポートにHiの信号を出力することに対応する。つまり、Y3への信号の出力はロボット40を起動することに対応する。
 ラダー図の6行目から8行目までにおいて、X2は、ロボット制御装置41の4番の出力ポートからPLC60の4番の入力ポートにHiの信号を受信した場合にONになる。PLC60は、X2がONになった場合にタイマT0によるカウントを開始する。T0は、タイマによるカウントで所定時間中ONになる。PLC60は、T0がONになっている間、Y1に信号を出力する。Y1への信号の出力は、PLC60が5番の出力ポートから外部装置50にHiの信号を出力することに対応する。つまり、Y1への信号の出力は、外部装置50を動作させる指示に対応する。PLC60は、ラダー図の6行目から8行目までの記載に基づいて、ロボット制御装置41からの信号に基づいて外部装置50を所定時間だけ動作させる。
<通常の動作におけるデータの流れの具体例>
 以下、図11を参照して、通常の動作におけるデータの流れの具体例が説明される。
 PLC60は、ユーザから、作業を実行させるロボット40を選択する入力を受け付ける。また、PLC60は、ユーザから、ロボット40に実行させる作業を選択する入力を受け付ける。ユーザがPLC60でロボット40を選択する場合のデータの流れは、「ロボット名称選択」と記載した矢印で表されている。ユーザがPLC60で作業内容を選択する場合のデータの流れは、「作業番号選択」と記載した矢印で表されている。
 PLC60は、実行スイッチ又は実行ボタンをユーザに押下させることによって、ロボット40の作業を実行させる指示の入力を受け付ける。ユーザがPLC60で実行スイッチ又は実行ボタンを押した場合のデータの流れは、図11において「実行ボタン押下」と記載した矢印で表されている。
 PLC60は、ユーザの選択によって指定されたロボット40及び作業内容の情報、並びに、ユーザがロボット40に作業の実行を指示する情報をサーバ10に送信する。PLC60からサーバ10へのデータの流れは、図11において「ロボット番号送信」、「プログラム番号送信」及び「実行指示信号送信」と記載した矢印で表されている。
 サーバ10は、PLC60から受信した情報に基づいて、ロボット制御装置41にティーチングプログラムをダウンロードする。サーバ10からロボット40へのデータの流れは、図11において「プログラムのダウンロード」と記載した矢印で表されている。
(他の実施形態)
 本実施形態に係るロボット制御システム1は、ロボット40に連係して動作する連係制御装置として、PLC60を備える。ロボット制御システム1は、連係制御装置として、PLC60に限られず、例えばリレー装置又は生産設備制御コンピュータ等の他の種々のコントローラを備えてよい。なお、連係制御装置は、連係制御部を備える。連係制御部は、連係制御装置の種々の機能又は制御を実現するために、少なくとも1つのプロセッサを含んで構成されてよい。連係制御部は、サーバ10のサーバ制御部11と同一又は類似に構成されてよい。また、ロボット制御システム1は、連係制御装置として、クラウド上で動作する設備管理制御システム等の構成を備えてもよい。連係制御装置がクラウド上で動作する場合であっても、少なくともユーザインタフェースは、オンプレミス環境で動作するように構成されてよい。
 また、ロボット制御システム1は、ロボット40に実行させる作業を特定する第1プログラムをティーチングによって作成する。第1プログラムは、ティーチングプログラムに限られず、他の種々のプログラムを含んで構成されてよい。
 また、ロボット制御システム1は、連係制御装置に実行させる第2プログラムとしてラダープログラムを生成する。第2プログラムは、ラダープログラムに限られず、他の種々のプログラムを含んで構成されてよい。
 サーバ制御部11は、第1プログラムを所定のタイミングでロボット制御装置41にインストールしてよい。サーバ制御部11は、第1プログラムをインストールされたロボット制御装置41と、連係制御装置とが連係するように、第2プログラムを所定のタイミングで連係制御装置にインストールしてよい。所定のタイミングは、例えばロボット40を初めて通常動作を行う前であってよい。所定のタイミングは、ロボット40の運用計画に基づいて設定されてよい。所定のタイミングでインストールすることによって、ロボット40の運用が、効率的に、簡単かつ短時間で開始される。また、サーバ制御部11、ロボット制御装置41又は連係制御装置は、一度インストールされた第1プログラム又は第2プログラムを、ロボット40又は外部動作の予定された動作が完了した後に削除してもよい。
 ロボット制御システム1において、ユーザが連係制御装置を介して特定の作業を選択した場合に、ユーザの選択結果に対応する連係制御装置用のラダープログラムがダウンロードされてよい。この場合、記憶部12は、少なくとも1つのロボット制御部45が実行可能な少なくとも1つの第1プログラム及び少なくとも1つの連係制御部が実行可能な少なくとも1つの第2プログラムを格納する。サーバ制御部11は、ユーザの入力に基づき、特定の少なくとも1つの第1プログラムに対応した特定の第2プログラムを記憶部12から抽出するとともに、特定の少なくとも1つの第1プログラムを実行予定の特定の少なくとも1つのロボット制御部45と連係予定の特定の連係制御部に対して、特定の第2プログラムを出力する。
 ロボット制御システム1において、ユーザに特定の連係制御装置に通信可能に接続された外部装置50を選択させてもよい。すなわち、連係制御装置は、ユーザから、作業を実行させる外部装置50を選択する入力を受け付け、ユーザの選択結果に応じたティーチングプログラムがダウンロードされてよい。具体的には、記憶部12は、少なくとも1つのロボット制御部45が実行可能な少なくとも1つの第1プログラム及び少なくとも1つの連係制御部が実行可能な少なくとも1つの第2プログラムを格納する。サーバ制御部11は、ユーザの入力に基づき、ユーザが選択した外部装置50の制御が含まれた特定の第2プログラムと、その特定の第2プログラムに対応した特定の少なくとも1つの第1プログラムを記憶部12から抽出するとともに、特定の第2プログラムを実行予定の特定の連係制御部と連係予定の特定の少なくとも1つのロボット制御部45に対して、特定の少なくとも1つの第1プログラムを出力してもよい。なお、特定の第2プログラムに対応した少なくとも1つの第1プログラムが複数の第1プログラムを有する場合、ユーザの入力に基づいて、特定の少なくとも1つの第1プログラムを抽出してもよい。
 上述の実施形態において、連係制御装置、ロボット制御装置41、及び外部装置50はそれぞれ、信号を入力する入力ポートと信号を出力する出力ポートを備えるとした。各装置は、入力ポート及び出力ポートのどちらとしても機能できる入出力ポートを備えてもよい。具体的に、各装置は、LAN(Local Area Network)又はRS-232C若しくはRS485等の通信規格に基づいて、入出力ポートによってシリアル通信を行ってよい。
 各装置が入出力ポートを備える場合、端末装置20は、図4のステップS1の入力ポート及び出力ポートの設定の手順において、各入出力ポートを入力ポートとして機能させるか出力ポートとして機能させるかを更に設定する。具体的に、各装置がLANで通信する場合、端末装置20は、入出力ポートの設定として、入出力ポートの番号をアドレスによって指定してよい。また、端末装置20は、指定した番号の入出力ポートを入力ポートとして機能させるか出力ポートとして機能させるかをHi又はLoのデータで表すビットによって指定してよい。
<端末装置20とサーバ10との一体化>
 上記で説明した実施形態では、サーバ10の他に端末装置20を有する例を説明したが、サーバ10は、端末装置20の一部又は全部として機能してもよい。すなわち、例えば、サーバ10は、端末制御部21の一部又は全部を有していてもよいし、サーバ制御部11が端末制御部21の一部又は全部として機能してもよい。この場合、端末装置20の一部又は全部はサーバ10へ統合され、サーバ10が、上記で説明した端末装置20の種々の機能及び制御を実行してもよい。具体的には、上記の説明における端末装置20はサーバ10と読み替えられ、サーバ10のサーバ制御部11又は端末制御部21にて、上記で説明した端末装置20の種々の機能及び制御を実行してもよい。また、この場合、サーバ10の種々の構成が端末装置20の種々の構成としても機能してよいし、サーバ10が、端末装置20の種々の構成を有していてもよい。
<ロボット制御装置41とサーバ10との一体化>
 上記で説明した実施形態では、サーバ10の他にロボット制御装置41を有する例を説明したが、サーバ10は、ロボット制御装置41の一部又は全部として機能してもよい。すなわち、例えば、サーバ10はロボット40を制御するロボット制御部45の一部又は全部を有していてもよいし、サーバ制御部11がロボット制御部45の一部又は全部として機能してもよい。この場合、ロボット制御装置41はサーバ10へ統合され、サーバ10が、上記で説明したロボット制御装置41の種々の機能及び制御を実行してもよい。具体的には、上記の説明におけるロボット制御装置41はサーバ10と読み替えられ、サーバ10のサーバ制御部11又はロボット制御部45にて、上記で説明したロボット制御装置41の種々の機能及び制御を実行してもよい。また、この場合、サーバ10の種々の構成がロボット制御装置41の種々の構成としても機能してよいし、サーバ10が、ロボット制御装置41の種々の構成を有していてもよい。なお、この場合、端末装置20の一部又は全部と併せて一体化されてもよい。
<PLC60とサーバ10との一体化>
 上記で説明した実施形態では、サーバ10の他にPLC60を有する例を説明したが、サーバ10は、PLC60の一部又は全部として機能してもよい。すなわち、例えば、サーバ10はPLC制御部61の一部又は全部を有していてもよいし、サーバ制御部11がPLC制御部61の一部又は全部として機能してもよい。この場合、PLC60はサーバ10へ統合され、サーバ10が、上記で説明したPLC60の種々の機能及び制御を実行してもよい。具体的には、上記の説明におけるPLC60はサーバ10と読み替えられ、サーバ10のサーバ制御部11又はPLC制御部61にて、上記で説明したPLC60の種々の機能及び制御を実行してもよい。また、この場合、サーバ10の種々の構成がPLC60の種々の構成としても機能してよいし、サーバ10が、PLC60の種々の構成を有していてもよい。なお、この場合、端末装置20又はロボット制御装置41のいずれかあるいは双方と併せて一体化されてもよい。
 また、ロボット制御システム1の各構成要件の一部又は全部は、上記のように一体化されてもよい。
 以上、ロボット制御システム1の実施形態を説明してきたが、本開示の実施形態としては、システム又は装置を実施するための方法又はプログラムの他、プログラムが記録された記憶媒体(一例として、光ディスク、光磁気ディスク、CD-ROM、CD-R、CD-RW、磁気テープ、ハードディスク、又はメモリカード等)としての実施態様をとることも可能である。プログラムは、非一時的なコンピュータ読み取り可能な媒体に格納されてよい。
 また、プログラムの実装形態としては、コンパイラによってコンパイルされるオブジェクトコード、インタプリタにより実行されるプログラムコード等のアプリケーションプログラムに限定されることはなく、オペレーティングシステムに組み込まれるプログラムモジュール等の形態であっても良い。さらに、プログラムは、制御基板上のCPUにおいてのみ全ての処理が実施されるように構成されてもされなくてもよい。プログラムは、必要に応じて基板に付加された拡張ボード又は拡張ユニットに実装された別の処理ユニットによってその一部又は全部が実施されるように構成されてもよい。
 本開示に係る実施形態について、諸図面及び実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形又は改変を行うことが可能であることに注意されたい。従って、これらの変形又は改変は本開示の範囲に含まれることに留意されたい。例えば、各構成部等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の構成部等を1つに組み合わせたり、或いは分割したりすることが可能である。
 本開示に記載された構成要件の全て、及び/又は、開示された全ての方法、又は、処理の全てのステップについては、これらの特徴が相互に排他的である組合せを除き、任意の組合せで組み合わせることができる。また、本開示に記載された特徴の各々は、明示的に否定されない限り、同一の目的、同等の目的、または類似する目的のために働く代替の特徴に置換することができる。したがって、明示的に否定されない限り、開示された特徴の各々は、包括的な一連の同一、又は、均等となる特徴の一例にすぎない。
 さらに、本開示に係る実施形態は、上述した実施形態のいずれの具体的構成にも制限されるものではない。本開示に係る実施形態は、本開示に記載された全ての新規な特徴、又は、それらの組合せ、あるいは記載された全ての新規な方法、又は、処理のステップ、又は、それらの組合せに拡張することができる。
 本開示において「第1」及び「第2」等の記載は、当該構成を区別するための識別子である。本開示における「第1」及び「第2」等の記載で区別された構成は、当該構成における番号を交換することができる。例えば、第1プログラムは、第2プログラムと識別子である「第1」と「第2」とを交換することができる。識別子の交換は同時に行われる。識別子の交換後も当該構成は区別される。識別子は削除してよい。識別子を削除した構成は、符号で区別される。本開示における「第1」及び「第2」等の識別子の記載のみに基づいて、当該構成の順序の解釈、小さい番号の識別子が存在することの根拠に利用してはならない。
 本実施形態に係るサーバ10(プログラム管理装置)は、図4及び図8に示される手順を含むプログラム管理方法を実行するともいえる。プログラム管理方法は、サーバ10に含まれるプロセッサに実行させるプログラム管理プログラムとして実現されてもよい。プログラム管理プログラムは、非一時的なコンピュータ読み取り可能媒体に格納されてよい。
 1 ロボット制御システム
 10 サーバ(11:サーバ制御部、12:記憶部、13:サーバI/F)
 20 端末装置(21:端末制御部、22:端末I/F、23:入出力部)
 30 作業対象部品
 31、32 第1トレイ、第2トレイ
 40 ロボット(42:ロボットアーム、43:カメラ、44:ロボットハンド)
 41 ロボット制御装置(45:ロボット制御部)
 50 外部装置
 60 PLC(61:PLC制御部)
 80 ネットワーク(82:アクセスポイント)

Claims (13)

  1.  少なくとも1つのロボット制御部と通信可能に構成される通信部と、
     前記少なくとも1つのロボット制御部によって実行され、ロボットの動作を制御する複数の第1プログラムを格納する記憶部と、
     前記少なくとも1つのロボット制御部と連係可能な連係制御部の要求に基づいて前記複数の第1プログラムの中から選択された少なくとも1つの第1プログラムを、前記連係制御部と連係予定の特定の少なくとも1つのロボット制御部に出力する制御部と
    を備える、プログラム管理装置。
  2.  前記制御部は、前記連係制御部が前記特定の少なくとも1つのロボット制御部と連係するように前記連係制御部に実行させる第2プログラムを、前記第1プログラムに基づいて生成する、請求項1に記載のプログラム管理装置。
  3.  前記制御部は、前記第2プログラムが前記ロボットと連動する装置及び治具の少なくとも一方を制御するコマンドを含むように、前記第2プログラムを生成する、請求項2に記載のプログラム管理装置。
  4.  前記制御部は、前記特定の連係制御部の入出力ポートと前記特定の少なくとも1つのロボット制御部の入出力ポートとの間の対応関係を端末装置から取得し、前記対応関係に基づいて前記第2プログラムを生成する、請求項2又は3に記載のプログラム管理装置。
  5.  前記制御部は、前記第1プログラムがインストールされた前記特定の少なくとも1つのロボット制御部と前記連係制御部とが連係するように、前記第2プログラムを所定のタイミングで前記連係制御部にインストールする、請求項2から4までのいずれか一項に記載のプログラム管理装置。
  6.  ユーザの入力を受け付けるインタフェースと、
     少なくとも1つのロボットを制御可能な少なくとも1つのロボット制御部及び前記少なくとも1つのロボット制御部と連係可能な少なくとも1つの連係制御部と通信可能に構成される通信部と、
     前記少なくとも1つのロボット制御部が実行可能な少なくとも1つの第1プログラム及び前記少なくとも1つの連係制御部が実行可能な少なくとも1つの第2プログラムを格納する記憶部と、
     前記インタフェース、前記通信部及び前記記憶部に接続された制御部と
    を備え、
     前記制御部は、前記入力に基づき選択された、特定の少なくとも1つの第1プログラムに対応した特定の第2プログラムを、前記特定の少なくとも1つの第1プログラムを実行予定の特定の少なくとも1つのロボット制御部と連係予定の特定の連係制御部に対して出力する、
    プログラム管理装置。
  7.  ユーザの入力を受け付けるインタフェースと、
     少なくとも1つのロボットを制御可能な少なくとも1つのロボット制御部及び前記少なくとも1つのロボット制御部と連係可能な少なくとも1つの連係制御部と通信可能に構成される通信部と、
     前記少なくとも1つのロボット制御部が実行可能な少なくとも1つの第1プログラム及び前記少なくとも1つの連係制御部が実行可能な少なくとも1つの第2プログラムを格納する記憶部と、
     前記インタフェース、前記通信部及び前記記憶部に接続された制御部と
    を備え、
     前記制御部は、前記入力に基づき選択された、特定の第2プログラムに対応した特定の少なくとも1つの第1プログラムを、前記特定の第2プログラムを実行予定の特定の連係制御部と連係予定の特定の少なくとも1つのロボット制御部に対して出力する、
    プログラム管理装置。
  8.  前記制御部は、前記特定の連係制御部が前記特定の少なくとも1つのロボット制御部と連係するように前記特定の連係制御部に実行させる第2プログラムを、前記第1プログラムに基づいて生成する、請求項6又は7に記載のプログラム管理装置。
  9.  前記制御部は、前記第2プログラムが前記ロボットと連動する装置及び治具の少なくとも一方を制御するコマンドを含むように、前記第2プログラムを生成する、請求項8に記載のプログラム管理装置。
  10.  前記制御部は、前記特定の連係制御部の入出力ポートと前記特定の少なくとも1つのロボット制御部の入出力ポートとの間の対応関係を端末装置から取得し、前記対応関係に基づいて前記第2プログラムを生成する、請求項8又は9に記載のプログラム管理装置。
  11.  前記制御部は、前記第1プログラムがインストールされた前記特定の少なくとも1つのロボット制御部と前記特定の連係制御部とが連係するように、前記第2プログラムを所定のタイミングで前記特定の連係制御部にインストールする、請求項8から10までのいずれか一項に記載のプログラム管理装置。
  12.  請求項1から11までのいずれか一項に記載のプログラム管理装置と、前記ロボット制御部と、前記連係制御部とを備えるロボット制御システム。
  13.  ロボットの動作を制御する少なくとも1つのロボット制御部によって実行される複数の第1プログラムを格納することと、
     前記少なくとも1つのロボット制御部と連係可能な連係制御部によって前記複数の第1プログラムの中から選択された少なくとも1つの第1プログラムを、前記連係制御部によって前記少なくとも1つのロボット制御部から選択された前記ロボット制御部に出力することと
    を含むプログラム管理方法。
PCT/JP2022/010146 2021-03-08 2022-03-08 プログラム管理装置、ロボット制御システム、及びプログラム管理方法 WO2022191218A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US18/280,912 US20240149446A1 (en) 2021-03-08 2022-03-08 Program management apparatus, robot control system, and method for managing program
CN202280019612.8A CN116940448A (zh) 2021-03-08 2022-03-08 程序管理装置、机器人控制系统和用于管理程序的方法
JP2023505592A JPWO2022191218A1 (ja) 2021-03-08 2022-03-08
EP22767172.4A EP4306270A1 (en) 2021-03-08 2022-03-08 Program management device, robot control system, and program management method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-036686 2021-03-08
JP2021036686 2021-03-08

Publications (1)

Publication Number Publication Date
WO2022191218A1 true WO2022191218A1 (ja) 2022-09-15

Family

ID=83226830

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/010146 WO2022191218A1 (ja) 2021-03-08 2022-03-08 プログラム管理装置、ロボット制御システム、及びプログラム管理方法

Country Status (5)

Country Link
US (1) US20240149446A1 (ja)
EP (1) EP4306270A1 (ja)
JP (1) JPWO2022191218A1 (ja)
CN (1) CN116940448A (ja)
WO (1) WO2022191218A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220203545A1 (en) * 2020-12-31 2022-06-30 Sarcos Corp. Smart Control System for a Robotic Device

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6123201A (ja) 1984-07-11 1986-01-31 Toyota Motor Corp ロボツトの制御方法
JPH02274483A (ja) 1989-04-14 1990-11-08 Honda Motor Co Ltd ロボット制御システム
JPH0772920A (ja) * 1993-09-03 1995-03-17 Hitachi Ltd Faシステムの制御方法及び装置
JPH07160623A (ja) * 1993-12-03 1995-06-23 Daikin Ind Ltd 周辺機器制御方法およびロボット制御方法
JPH0981218A (ja) * 1995-09-12 1997-03-28 Ricoh Co Ltd ロボット制御装置
JP2017134722A (ja) * 2016-01-29 2017-08-03 ファナック株式会社 共通の言語仕様のプログラムにて複数の種類の製造装置を駆動する製造システム
JP2018195055A (ja) * 2017-05-17 2018-12-06 ファナック株式会社 工作機械制御装置及び生産システム
JP2019036014A (ja) * 2017-08-10 2019-03-07 オムロン株式会社 情報処理装置、情報処理方法およびプログラム
WO2020144772A1 (ja) * 2019-01-09 2020-07-16 三菱電機株式会社 数値制御装置および数値制御方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6123201A (ja) 1984-07-11 1986-01-31 Toyota Motor Corp ロボツトの制御方法
JPH02274483A (ja) 1989-04-14 1990-11-08 Honda Motor Co Ltd ロボット制御システム
JPH0772920A (ja) * 1993-09-03 1995-03-17 Hitachi Ltd Faシステムの制御方法及び装置
JPH07160623A (ja) * 1993-12-03 1995-06-23 Daikin Ind Ltd 周辺機器制御方法およびロボット制御方法
JPH0981218A (ja) * 1995-09-12 1997-03-28 Ricoh Co Ltd ロボット制御装置
JP2017134722A (ja) * 2016-01-29 2017-08-03 ファナック株式会社 共通の言語仕様のプログラムにて複数の種類の製造装置を駆動する製造システム
JP2018195055A (ja) * 2017-05-17 2018-12-06 ファナック株式会社 工作機械制御装置及び生産システム
JP2019036014A (ja) * 2017-08-10 2019-03-07 オムロン株式会社 情報処理装置、情報処理方法およびプログラム
WO2020144772A1 (ja) * 2019-01-09 2020-07-16 三菱電機株式会社 数値制御装置および数値制御方法

Also Published As

Publication number Publication date
US20240149446A1 (en) 2024-05-09
JPWO2022191218A1 (ja) 2022-09-15
CN116940448A (zh) 2023-10-24
EP4306270A1 (en) 2024-01-17

Similar Documents

Publication Publication Date Title
CN104699122B (zh) 一种机器人运动控制系统
CN100408277C (zh) 机器人的待机位置复位程序生成装置
US20100241260A1 (en) Industrial communication system and method
JP7478862B2 (ja) ロボット制御装置、ロボットコントローラ、ロボット制御方法、端末装置、及び端末制御方法
US11854379B2 (en) Method, device, and computer-readable medium for mobile device management of collaborative industrial robot
JP7184595B2 (ja) 工作機械システム
WO2022191218A1 (ja) プログラム管理装置、ロボット制御システム、及びプログラム管理方法
Rückert et al. Augmented Reality for teaching collaborative robots based on a physical simulation
CN113043250A (zh) 一种机器人示教系统及方法、机器人控制系统及方法
CN115997182A (zh) 模拟装置及模拟系统
US20240149448A1 (en) System control device, robot control method, terminal device, terminal control method, and robot control system
CN202318311U (zh) 工业机器人控制系统
WO2023068341A1 (ja) 情報処理装置、ロボットコントローラ、ロボット制御システム、及び情報処理方法
Prasanth Implementation of ROS-I on industrial robot simulation environment “
EP4227044A1 (en) Robot system and control method
Tlach et al. Possibilities of a robotic end of arm tooling control within the software platform ROS
CN103846916A (zh) 智能机器人控制系统
WO2024033695A1 (en) Simulation system and method
JPH07200046A (ja) 入出力用制御装置

Legal Events

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

Ref document number: 22767172

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023505592

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 202280019612.8

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 18280912

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2022767172

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2022767172

Country of ref document: EP

Effective date: 20231009