A robot control device that communicates with a programmable logic controller

The robot control device simplifies variable data type setup by using a memory unit, definition file generation, and periodic digital communication, addressing the time-consuming and model-limited issues in existing systems, thereby enhancing compatibility and efficiency.

JP7779939B2Active Publication Date: 2025-12-03FANUC LTD
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2023579924
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-02-09
Publication Date
2025-12-03
Estimated Expiration
2042-02-09

AI Technical Summary

Technical Problem

The manual setting of variable data types between a programmable logic controller (PLC) and a robot control device is time-consuming, and existing methods that use dedicated communication protocols limit the compatibility of robot and PLC models.

Method used

A robot control device with a memory unit that stores a basic file defining variable data types, a definition file generation unit that creates a readable format for the PLC, and a transmission unit for periodic digital communication, along with memory allocation for input and output areas, simplifying the setup process and enhancing compatibility.

Benefits of technology

Facilitates easy and efficient variable transmission between the PLC and robot control device, reducing setup time and expanding compatibility with various models.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007779939000001
    Figure 0007779939000001
  • Figure 0007779939000002
    Figure 0007779939000002
  • Figure 0007779939000003
    Figure 0007779939000003
Patent Text Reader

Abstract

A control device of a robot according to the present invention stores a basic file in which the data type of variables for communicating with a PLC is defined. The control device generates, on the basis of the basic file, a definition file in which the data type of the variables is defined in a file format which can be read by the PLC. The control device is formed so as to carry out periodic digital communication for transmitting information pertaining to the variables. The control device allocates, on the basis of the data type of the variables defined in the basic file, areas for variables in an input area and an output area of a memory that is included in a storage unit.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a robot control device that communicates with a programmable logic controller. [Background technology]

[0002] In an apparatus including a machine, switches, sensors, etc. are arranged to control the driving devices such as motors included in the apparatus. A programmable logic controller (PLC) is known as a device for controlling the order in which the driving devices included in the apparatus are operated in accordance with the output of a sensor or the operation of a peripheral machine, etc. (For example, Japanese Patent Application Laid-Open No. 2005-141435). A programmable logic controller controls the order of operations such as starting and stopping the driving devices and receiving signals from sensors or switches (For example, Japanese Patent Application Laid-Open No. 2002-269024).

[0003] When a programmable logic controller controls a device equipped with a robot, the programmable logic controller communicates data with the robot's control device (for example, JP 2019-159995 A). Variables used in communication between the robot's control device and the programmable logic controller have predetermined data types, such as integers and strings, for communication. To communicate variables of a predetermined data type, it is necessary to define the data type. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] Japanese Patent Application Laid-Open No. 2005-141435 [Patent Document 2] Japanese Patent Application Laid-Open No. 2002-269024 [Patent Document 3] Japanese Patent Application Laid-Open No. 2019-159995 Summary of the Invention [Problem to be solved by the invention]

[0005] When communicating variables of a specific data type between a programmable logic controller and a robot control device, the data type definition must be manually set in the programmable logic controller as a preparatory step, and then manually set in the robot control device. This requires time to set the variable data type. Alternatively, it is possible to transmit the variable data type definition by identifying the robot model and PLC model and communicating using a dedicated communication protocol. However, this method has the problem of limiting the robot model and PLC model that can be used. [Means for solving the problem]

[0006] One aspect of the present disclosure is a robot control device that communicates with a programmable logic controller. The control device includes a memory unit that stores a basic file that defines the data types of variables that are communicated between the programmable logic controller and the control device. The control device includes a definition file generation unit that generates, based on the basic file, a definition file that defines the data types of variables in a file format readable by the programmable logic controller. The control device includes a transmission unit configured to perform periodic digital communication to transmit variable information when driving the robot. The control device includes a memory allocation unit that allocates variable areas to an input area for inputting variables and an output area for outputting variables in a memory included in the memory unit, based on the data types of variables defined in the basic file. [Effects of the Invention]

[0007] According to an aspect of the present disclosure, a robot control device can be provided that can easily perform settings for transmitting variables to a programmable logic controller. [Brief explanation of the drawings]

[0008] [Figure 1]1 is a perspective view of a robot device according to an embodiment. [Figure 2] FIG. 2 is a block diagram of the robot device. [Figure 3] 10 is a flowchart of a preparatory operation performed by the robot device before the robot device performs an actual operation. [Figure 4] This is a schematic diagram when the control device main body outputs a definition file of a PLC data type. [Figure 5] This is a schematic diagram of when the PLC reads the definition file and sets the definition of the data type. [Figure 6] 10 is a schematic diagram showing how a processing unit of a control device main body allocates input and output areas of a memory. FIG. [Figure 7] 10 is a screen showing the allocation of indexes for input and output areas of memory. [Figure 8] FIG. 1 is a block diagram of a control device main body and a PLC for explaining the transmission of variables when the robot device performs an actual task. [Figure 9] 10 is a flowchart for transmitting variable information from the control device main body to the PLC. [Figure 10] 10 is a flowchart for transmitting variable information from a PLC to a control device main body. DETAILED DESCRIPTION OF THE INVENTION

[0009] A robot control device according to an embodiment will be described with reference to Figures 1 to 10. The robot device according to this embodiment includes a programmable logic controller (hereinafter referred to as "PLC"), a robot, and a robot control device. The robot control device is configured to transmit information on predetermined variables to and from the PLC.

[0010] FIG. 1 is a perspective view of a robot device according to this embodiment. The robot device 8 of this embodiment performs the task of transporting a workpiece based on an operating program. The robot device 8 comprises a work tool 2 as an end effector, and a robot 1 that moves the work tool 2. The work tool 2 is a hand that grasps the workpiece. The robot 1 is an articulated robot that includes multiple joints.

[0011] The robot 1 includes a swivel base 13 supported on a base unit 14. The swivel base 13 is configured to rotate relative to the base unit 14. The robot 1 includes an upper arm 11 and a lower arm 12 rotatably supported via a joint. The upper arm 11 rotates around a rotation axis parallel to the direction in which the upper arm 11 extends. The robot 1 includes a wrist 15 rotatably connected to the end of the upper arm 11. The wrist 15 includes a rotatably formed flange 16. The work tool 2 is fixed to the flange 16 of the wrist 15. The robot 1 in this embodiment has six drive shafts, but is not limited to this configuration. Any robot that can move a work tool can be used.

[0012] In this embodiment, the work tool 2 is a hand with two claws, but is not limited to this form. Any work tool can be attached to the robot 1 depending on the work to be performed by the robot device. For example, if the robot device is to perform arc welding, a welding torch can be attached to the robot.

[0013] Figure 2 shows a block diagram of a robot device according to this embodiment. Referring to Figures 1 and 2, the robot 1 includes a robot drive device that changes the position and posture of the robot 1. The robot drive device includes a motor as a drive machine that drives components such as the arm and wrist. The work tool 2 is equipped with a tool drive device that drives the work tool 2. The tool drive device includes a pressure pump or the like as a drive machine for driving the claws of the work tool 2.

[0014] The robot device 8 includes a robot control device 4. The control device 4 includes a control device main body 41 including an arithmetic processing device (computer) having a CPU (Central Processing Unit) as a processor.

[0015] The arithmetic processing unit of the control device main body 41 includes a memory unit 42 that stores predetermined information. The memory unit 42 stores information related to the control of the robot 1 and the work tool 2. The memory unit 42 can be configured with a non-transitory storage medium that is capable of storing information. For example, the memory unit 42 can be configured with a storage medium such as a volatile memory, a non-volatile memory, a magnetic storage medium, or an optical storage medium.

[0016] The storage unit 42 includes a memory as a storage device that communicates information with the processor. The memory in this embodiment is configured with SRAM (Static Random Access Memory), which is a volatile memory. The memory is connected to the processor via a bus. In addition to SRAM, the storage unit 42 may also include, for example, DRAM (Dynamic Random Access Memory) and FRAM (registered trademark) (Ferroelectric Random Access Memory) that stores backup data for operating programs. Alternatively, the storage unit 42 may include a register located inside the CPU.

[0017] The arithmetic processing unit of the control device 4 includes an operation control unit 43 that outputs operation commands. The operation control unit 43 corresponds to a processor that operates according to an operation program. The operation control unit 43 is configured to be able to read information stored in the storage unit 42. The operation program is stored, for example, in the memory of the storage unit 42. The operation control unit 43 outputs operation commands for driving the robot 1 based on the operation program to an electrical circuit that supplies electricity to the robot driving device. The operation control unit 43 outputs operation commands for driving the work tool 2 based on the operation program to an electrical circuit that supplies electricity to the tool driving device. The robot 1 and the work tool 2 are driven based on the operation program.

[0018] The control device 4 includes a teaching operation panel 21 that allows an operator to manually drive the robot 1, input information required for control, and confirm the information required for control. The teaching operation panel 21 includes a display unit 22 that displays information related to the control of the robot device 8, and an input unit 23 that is composed of input devices such as a keyboard and a dial. The display unit 22 can be composed of a display panel such as a liquid crystal display panel. The teaching operation panel 21 is electrically connected to the control device main body 41.

[0019] The robot device 8 includes a PLC 6 that controls the operation of the robot 1 and the work tool 2. The PLC 6 controls the operation of multiple drive machines in a predetermined sequence. The PLC 6 receives signals from sensors, switches, etc. The PLC 6 sends commands to the control device main body 41 to start and stop the operation of the drive machines, start and stop operation programs, and modify operations. Any input and output devices are connected to the PLC. Machines, sensors, etc. other than the robot control device 4 may also be connected to the PLC.

[0020] In this embodiment, the data types of variables communicated between the control device 4 and the PLC 6 are determined in advance. The data types of variables are determined to transmit information about variables related to the control of the robot. The definitions of the data types of variables determined by the control device 4 and the PLC are the same. In other words, data is communicated using variables of a common data type. Variable data types include integers, real numbers, and character strings. A basic file containing information about the data types of variables used to control the robot is generated by the operator and stored in the memory of the storage unit 42 of the control device main body 41, as will be described later.

[0021] The arithmetic processing unit of the control device main body 41 includes a processing unit 45 that processes information and performs calculations. The processing unit 45 includes a definition file generation unit 46 that generates a definition file in a file format readable by the PLC, in which the data types of variables are defined. The definition file generation unit 46 generates the definition file based on a basic file created by an operator, in which the data types of variables are defined. The processing unit 45 includes a memory allocation unit 47 that allocates variable areas in memory to an input area for inputting variables and an output area for outputting variables. The memory allocation unit 47 allocates indexes for each variable to the input area and the output area based on the data types of the variables defined in the basic file.

[0022] The processing unit 45 includes a conversion unit 50 that converts data when the robot device 8 communicates to perform an actual task. The processing unit 45 includes a program generation unit 48 that generates a conversion program that converts between variable information based on a data type and a periodic digital communication signal. The program generation unit 48 generates a conversion program for driving the conversion unit 50. The conversion unit 50 performs conversion between variable information based on a data type and a periodic digital communication signal based on the conversion program generated by the program generation unit 48.

[0023] The processing unit 45 includes a function generating unit 49 that generates a function file for generating a conversion program by the PLC 6. The conversion program generated by the PLC 6 is a program for converting variable information based on a data type and a periodic digital communication signal, similar to the conversion program of the control device main body 41.

[0024] The processing unit 45 includes a transmission unit 51 configured to perform periodic digital communication in order to transmit variable information when the robot device 8 is driven. The robot device 8 in this embodiment employs a method of periodic communication at a communication cycle time (RPI) as the communication method between the control device main body 41 and the PLC 6 when the robot device 8 is driven. For example, the Ethernet / IP (registered trademark) protocol supports a communication method called implicit communication. In communication between the robot control device main body 41 and the PLC 6, a digital signal consisting of a binary signal of ON or OFF is transmitted.

[0025] The processing unit 45, definition file generating unit 46, memory allocating unit 47, program generating unit 48, function generating unit 49, converting unit 50, and transmitting unit 51 of the control device main body 41 correspond to processors that operate according to a predetermined program. The processors read the program and perform the control defined in the program, thereby functioning as the respective units.

[0026] The PLC 6 of this embodiment includes an arithmetic processing unit having a CPU as a processor. The arithmetic processing unit includes a storage unit 62 that stores predetermined information. The storage unit 62 can be configured with a non-transitory storage medium that can store information. The storage unit 62 can include multiple storage media, similar to the storage unit 42 of the control device main body 41.

[0027] The storage unit 62 in this embodiment includes an SRAM, which is a memory connected to the processor via a bus. The PLC 6 may also include an auxiliary storage device (storage) that is located separately from the part where the processor and memory are located. The auxiliary storage device is connected to the processor via a communication interface. Any information can be stored in the auxiliary storage device. Examples of the auxiliary storage device include a hard disk drive (HDD), a solid state drive (SSD), a flash memory, and an optical storage device.

[0028] The PLC 6 includes a command unit 63 that receives signals from devices, sensors, switches, etc. connected to the PLC 6 and sends commands to devices connected to the PLC 6. The command unit 63 corresponds to a processor that operates according to a predetermined PLC program.

[0029] The arithmetic processing device of the PLC 6 includes a processing unit 65 that calculates and processes information. The processing unit 65 includes a definition setting unit 66 that acquires a definition file of the data type of a variable and sets the definition of the data type of the variable in the PLC 6. The processing unit 65 includes a program generation unit 67 that generates a conversion program for converting between variable information based on the data type and a periodic digital communication signal. The program generation unit 67 reads a function file generated by the function generation unit 49 of the control device main body 41. The program generation unit 67 generates a conversion program to be used in the PLC 6 based on the function file.

[0030] The processing unit 65 includes a conversion unit 68 that converts variable information based on a data type and periodic digital communication signals. The conversion unit 68 converts variable information and digital communication signals based on a conversion program generated by a program generation unit 67. The processing unit 65 includes a transmission unit 69 that is configured to perform periodic digital communication with the control device main body 41 in order to transmit variable information when the robot device 8 is driven.

[0031] The processing unit 65, definition setting unit 66, program generation unit 67, conversion unit 68, and transmission unit 69 of the PLC 6 correspond to processors that operate according to a predetermined program. The processors read the programs and perform the controls defined in the programs, thereby functioning as the respective units.

[0032] The PLC 6 in this embodiment includes an input unit 71 that allows an operator to directly input information to the PLC 6, and a display unit 70 that displays information related to the PLC 6. The input unit 71 is made up of input devices such as a keyboard, buttons, and dials. The display unit 70 is made up of a device that displays information, such as a display panel.

[0033] 3 shows a flowchart of the preparatory work for setting up the robot device in this embodiment. In this embodiment, settings are made to enable communication of variables between the control device main body 41 and the PLC 6. In steps 111 to 114, the PLC 6 sets definitions of the data types of variables. In step 115, the processing unit 45 of the control device main body 41 controls the allocation of DI areas and DO areas to the memory of the control device main body 41. The memory allocation unit 47 sets indexes to be used by each variable in the DI area for input signals and the DO area for output signals.

[0034] In steps 116 to 118, a conversion program for converting between digital communication signals and variable information is generated in the control device 4 and PLC 6. The conversion program is then stored in the storage unit 42 of the control device main body 41 and the storage unit 62 of the PLC 6. First, the control for setting the definition of the data type of the variable in the PLC 6 in steps 111 to 114 will be described.

[0035] 4 is a schematic diagram illustrating the generation of a definition file of variable data types for a PLC. Referring to FIGS. 3 and 4, in step 111, the operator sets variable definitions including the name of a structure, the names of variables included in the structure, and the data types of the variables in the control device 4. The operator sets the name of the structure, etc. by operating the input unit 23 while looking at the screen displayed on the display unit 22 of the teaching operation panel 21.

[0036] Images 24a and 24b are displayed on the display unit 22 of the teaching pendant 21. Image 24a is displayed on a screen listing structures containing multiple variables. Image 24a displays the names of three structures. The worker inputs the names of the structures by operating the input unit 23. The structure FRC_COORDSYS_T is a structure that includes, as variables, the coordinate system set in the robot device. The structure FRC_POS_T is a structure that includes, as variables, the coordinate values ​​of the coordinate system set in the robot device. The structure FRC_STRING_T is a structure that includes, as variables, an error message. In this way, the worker can set the names of the structures while viewing a list of the names of multiple structures. The names of the set structures are stored in the memory of the storage unit 42.

[0037] Next, the worker selects one structure from image 24a, which is a list of structure names. The worker switches the screen displayed on display unit 22 to a screen for defining the data type of variables. Image 24b, which shows the variable definitions, is displayed on display unit 22. On the screen for defining the data type of variables, the worker defines in the "IN / OUT" field whether the variables included in the structure are variables to be input to control device 4, variables to be output, or variables that are both input and output. The worker also inputs the names of the variables included in the structure and definitions of the data type of the variables. In the example of image 24b here, structure FRC_COORDSYS_T is selected.

[0038] In image 24b, "OUTPUT" is specified in the "IN / OUT" item on the second line. As a variable definition, it is set that the variables included in this structure are output from the control device 4. If the variable is input to the control device 4, it is set to "INPUT." Also, if the variable is a variable that is input to and output from the control device 4, it is set to "INOUT."

[0039] Next, the names of the variables included in the structure and the definitions of the data types of the variables are set. The worker can enter any name as the variable name. In this example, the variables UTOOLNUM, UFRAMENUM, and HEADER are set as variables included in the structure FRC_COORDSYS_T. The variable UTOOLNUM indicates the number of the tool coordinate system. The variable UFRAMENUM indicates the number of the user coordinate system. The variable HEADER indicates a numerical value related to the robot posture.

[0040] On the variable data type definition screen, the operator sets the data type definitions of the variables included in the structure. A data type is set for each variable. For example, the data type of the variable UTOOLNUM is USINT, which is a non-negative integer type. For the variable HEADER, an array of eight USINTs is defined. In other words, the variable HEADER is composed of eight integer variables. The data type definitions of the set variables are stored as basic file 28 in the memory of storage unit 42. In this way, the operator can set the name of each structure and the definition of the variables included in the structure by operating input unit 23 of teaching pendant 21.

[0041] Each structure can be selected depending on the control to be performed by the control device. For example, the control device may select structures 1 and 2 when executing one program, and may select structures 1 to 3 when executing another program. In addition, in this embodiment, a structure including multiple variables is defined, but the present invention is not limited to this, and the data type of a variable may be set without defining a structure.

[0042] Here, an organization's standard (international standard: IEC61131-3) called PLCopen (registered trademark) is known, which aims to improve the efficiency of PLC development. PLCs manufactured in accordance with this standard can read files in formats that comply with the standard and use variable definitions that comply with the standard. The PLC of this embodiment is manufactured in accordance with the PLCopen standard. In this example, the operator sets the data type of the variable to a data type defined in the PLCopen standard.

[0043] In this embodiment, the processing unit 45 generates a basic file 28 that includes definitions of data types of variables determined in response to an operator's operation. In this embodiment, a basic file 28 is generated for each structure, as shown in image 24b. The basic file 28 is stored in the memory of the storage unit 42. The basic file 28 is not limited to this format, and may be formed to include variable definitions for multiple structures. Alternatively, if no structure is set, the basic file 28 may include variable definitions without including the names of the structures.

[0044] Next, in step 112, the worker selects whether or not to output a definition file of the data type of the variables. For example, if the setting of some structures and variables has not been completed, the process returns to step 111, and the worker repeats the setting of the structures and variables. If the definition file of the data type of the variables is to be output, the process proceeds to step 113. In step 113, the definition file generation unit 46 of the processing unit 45 outputs the data type definition file 25. The PLC 6 reads the data type definition file 25.

[0045] The worker selects one structure on the structure list screen. The "OutPut XML file" button, which is located at the bottom of image 24a and outputs a definition file, is pressed. The definition file generation unit 46 of the processing unit 45 outputs a variable data type definition file 25 for setting the data type of the variable in the PLC 6. The definition file generation unit 46 outputs a file in a format that can be read by the processing unit 65 of the PLC 6. In this embodiment, the definition file generation unit 46 generates a data type definition file for each structure. In this example, a data type definition file 25 for the structure FRC_COORDSYS_T is generated.

[0046] Since the PLC 6 of this embodiment complies with the PLCopen standard, the definition file generation unit 46 generates the definition file 25 in a file format defined by the standard. In this example, the definition file generation unit 46 outputs the definition file 25 of the variable data type in XML format.

[0047] The definition file generation unit 46 generates a definition file 25 for variable data types based on the basic file 28 in which definitions of variable data types are set. The definition file generation unit 46 generates the data type definition file 25 by arranging items defined in the basic file 28, such as the structure name, variable name, and variable data type, in the template (format) of the XML file. In this example, the definition file generation unit 46 outputs the definition file 25 with the file name "FRC_COORDSYS_T.xml".

[0048] The variable data type definition file 25 defines the structure name, the name of each variable, and the data type of the variable in XML format. Here, the data type definitions of the variables UTOOLNUM, UFRAMENUM, and HEADER are defined. By generating a definition file in XML format that complies with PLCopen, the processing unit 65 of the PLC 6 can read the definition file 25 using pre-stored software.

[0049] The basic file 28 contains information (IN / OUT) that specifies whether a variable is input or output to the control device, and this input and output specification is used to allocate memory areas in the robot control device. In this embodiment, the input and output specification is not reflected in the data type definition file 25.

[0050] In this embodiment, the definition file generation unit 46 outputs a definition file of one data type for one structure, but this is not limited to this, and a definition file including multiple structures may be output.

[0051] 5 is an explanatory diagram illustrating the process of loading a definition file of a variable data type into a PLC. Referring to FIGS. 2, 3, and 5, in step 114, definition setting unit 66 of processing unit 65 of PLC 6 automatically sets the definition of the data type of the variable in PLC 6 based on data type definition file 25. PLC 6 can load definition file 25 generated by definition file generation unit 46 using any method. For example, PLC 6 acquires definition file 25 via a communication device. Definition setting unit 66 of processing unit 65 of PLC 6 acquires data type definition file 25.

[0052] Next, the definition setting unit 66 obtains the data type definition of each variable from the data type definition file 25 in XML format and sets the data type definition of the variable. The definition setting unit 66 stores the data type definition in the storage unit 62 of the PLC 6. Here, a list 26 of data type definitions of variables included in the structure FRC_COORDSYS_T is shown. A data type definition such as USINT is set for each variable such as the variable UTOOLNUM. Information on the data type definition of the variable can be stored, for example, in the memory of the storage unit 62. Here, if a data type definition of another variable has already been set in the PLC 6, it is added as a data type definition of the new variable.

[0053] In this way, when the operator sets variables and data types for communication with the PLC 6 in the basic file 28 in the robot control device 4, the control device 4 generates a variable data type definition file 25 based on the basic file 28. The PLC 6 can read the variable data type definition file 25 and set the variable data type definition. In conventional technology, it was necessary to manually set the variable data type definition in both the control device and the PLC. However, in this embodiment, the variable data type definition in the PLC can be automatically set based on the data type definition input to the control device. This makes it easy to set up the PLC.

[0054] 3, next, in step 115, the control device 4 automatically allocates memory areas. In this embodiment, periodic digital communication is performed as a method for communicating variable information between the control device main body 41 and the PLC 6. Periodic digital communication is a communication method in which input and output are checked at predetermined intervals.

[0055] In conventional technology, message communication using a predetermined communication protocol is used to communicate information such as character strings. Message communication is a communication method for transmitting data at specific times, and is called explicit communication in the Ethernet / IP protocol. Message communication requires dedicated parameters for each device and communication protocol, which poses a problem of difficulty in parameter setting. In contrast, periodic digital communication makes it easier to set parameters for communication than message communication. Periodic digital communication is a general-purpose communication method that is compatible with many communication protocols. This allows periodic digital communication to be implemented in devices from many manufacturers. Here, when implementing periodic digital communication, it is necessary to allocate input and output areas in the memory of the robot's control device 4.

[0056] Fig. 6 shows an explanatory diagram of the variables included in the structure and the memory of the robot's control device. Fig. 6 also shows a screen for defining the data type of the variables displayed on the display unit and a schematic diagram of the memory of the control device. On the screen for defining the data type of each variable, images 24b, 24c, and 24d are displayed that show the definitions of the variables included in the structure.

[0057] Images 24b and 24c show variables of the structure FRC_COORDSYS_T and variables of the structure FRC_POS_T that become the DO signal output from the control device main body 41. Image 24c shows variables of the structure FRC_STRING_T that become the DI signal input from the PLC 6 to the control device main body 41. The definitions of these variables are determined in the basic file 28 and stored in the memory of the storage unit 42.

[0058] Each variable requires a memory area in the control device main body 41 to be allocated according to its data type. The operator allocates the memory area 53 with a DO area 53a for storing the output variable signal and a DI area 53b for storing the input variable signal. Here, each bit in the DO area 53a is assigned an index, such as DO[1], DO[2], and DO[3]. One index can store a binary signal of "0" or "1," i.e., an "ON" or "OFF" signal. Furthermore, each bit in the DI area 53b is assigned an index, such as DI[1], DI[2], and DI[3].

[0059] FIG. 7 shows a screen listing the indexes assigned to the DO and DI areas displayed on the display unit. In FIG. 7, images 27a and 27b are shown indicating the allocation of memory areas to the variables of each structure. The operator can pre-allocate the input area DI for inputting variables and the output area DO for outputting variables in the memory 53. In this example, the display unit 22 of the teaching pendant 21 displays image 27a showing the allocation of the DO area 53a and image 27b showing the allocation of the DI area 53b. Images 27a and 27b show the indexes, such as DO[1], of the memory 53 allocated to the variables of the structure. The variable names are automatically displayed in the comment field so that the variables corresponding to each index can be identified. For example, DO[1] through DO[8] are assigned to the variable UTOOLNUM of the structure FRC_COORDSYS_T.

[0060] 6 and 7, the memory allocation unit 47 of the processing unit 45 sets bit strings of variables in the DO area 53a and the DI area 53b of the memory 53. A signal output from the control device 4 is allocated to the DO area 53a. For example, in the structure FRC_COORDSYS_T shown in image 24b, "OUTPUT" is specified in the item IN / OUT. The variables included in the structure FRC_COORDSYS_T are set in the DO area 53a. A signal input to the control device 4 is allocated to the DI area 53b. For example, in the structure FRC_STRING_T shown in image 24d, "INPUT" is specified in the item IN / OUT. The variable STRING included in the structure FRC_STRING_T is set in the DI area 53b.

[0061] The memory allocation unit 47 allocates a bit string according to the data type of the variable. For example, if the data type is USINT, a digital communication signal can be represented by eight bits. By using eight bits, 256 numerical values ​​from 0 to 255 can be used. The variable UTOOLNUM shown in image 24b is assigned indexes DO[1] to DO[8] in the DO area 53a, and the variable UFRAMENUM is assigned indexes DO[9] to DO

[16] .

[0062] The data type of the variable HEADER shown in image 24b is USINT[0-7], which has eight 8-bit arrays. In other words, 64 indexes are required in the DO area 53a. The variable HEADER is set with indexes DO

[17] to DO

[80] . The data type of the variable POSITION in image 24c is REAL, indicating that it is a real type. For example, real type variables use 32 bits. In this example, an array of nine real type variables from 0 to 8 is defined, so 32 x 9 = 288 indexes are required. The variable POSITION is set with indexes DO

[81] to DO

[0368] .

[0063] The data type STRING of the variable STRING displayed in image 24d indicates that it is a character string type. One variable of the data type STRING uses 8 bits. In this example, 36 such variables are defined, so 8 x 36 = 288 indexes are required. The variable STRING is assigned indexes from DI[1] to DI

[0288] in the DI area 53b.

[0064] In this way, the memory allocation unit 47 calculates the required bit string for each data type and automatically allocates it to the DO area 53a or the DI area 53b. The memory allocation unit 47 allocates the bit strings used for variables so that they are indexed with consecutive numbers. In addition, the indexes are set in order from the smallest index number so that there are no gaps in the index numbers. By performing this control, memory areas can be used efficiently without waste.

[0065] When a variable is designated as both an input and an output on the variable data type definition screen (see images 24b, 24c, and 24d in FIGS. 4 and 6), an area for transmitting the variable is reserved in both the DO area 53a and the DI area 53b. Then, on the index list screen, the name of the same variable is displayed in the comment fields of the DO area and the DI area. In this way, in this embodiment, the memory area of ​​the control device can be automatically allocated according to the data type of the variable. This eliminates the need for an operator to manually allocate memory, and allows for easy memory allocation.

[0066] Furthermore, in memory areas not used for communication of the above variables, arbitrary signals can be assigned as in the prior art. For example, referring to FIG. 7, in the indexes after DI

[0289] in the DI area, an operator can manually assign signals from the PLC 6. In this example, the operator assigns a command to start a specific robot program to DI

[0289] . The operator assigns a command to temporarily stop a specific robot program to DI

[0290] . The operator also assigns a command to interrupt a specific robot program to DI

[0291] .

[0067] In this embodiment, when the robot device actually performs work, communication takes place between the robot control device 4 and the PLC 6, where variable information (data) including numerical values ​​or character strings is converted into a digital signal (a bit string of 0 and 1), or the digital signal is converted into variable information.

[0068] Referring to FIG. 3, in steps 116 to 118, a conversion program is generated for converting variable information and digital communication signals so that control device main body 41 and PLC 6 can perform periodic digital communication.

[0069] 2 and 3, in step 116, program generation unit 48 of control device main body 41 generates a conversion program for control device 4. Referring to Fig. 2, program generation unit 48 of processing unit 45 generates a conversion program that converts between variable information and a digital communication signal made up of "1" and "0" in control device main body 41. Program generation unit 48 generates a conversion program that converts between decimal numeric data and a bit string of a binary digital communication signal, for example.

[0070] Furthermore, the program generation unit 48 generates a conversion program to include a command to convert the digital communication signal received from the PLC 6 into variable information and then store the variable information in the memory of the storage unit 42. In this embodiment, if the signal received from the PLC 6 is a character string, the program generation unit 48 generates a conversion program to store the character string in a character string area of ​​the memory. If the signal received from the PLC 6 is a numeric value, the program generation unit 48 generates a conversion program to store the character string in a numeric value area of ​​the memory.

[0071] Next, in step 117, the function generation unit 49 of the processing unit 45 of the control device 4 generates a function file (FRC_Read_IO.xml) for generating a conversion program in the PLC 6. The function generation unit 49 outputs the function file in a file format that can be read by the PLC 6. The PLC 6 reads this function file. Like the conversion program of the control device 4, the conversion program of the PLC 6 also includes instructions for converting between variable information (numeric values ​​or character strings) based on data types and digital communication signals (bit strings of 0 and 1).

[0072] The function file includes, for example, functions used in the conversion program of the PLC 6. The function generator 49 of this embodiment generates the function file in the XML format defined in the PLCopen standard. Therefore, the PLC 6 of this embodiment, which conforms to the PLCopen standard, can read the function file using software prepared in advance.

[0073] Next, in step 118, the program generation unit 67 of the processing unit 65 of the PLC 6 generates a conversion program for the PLC 6 based on the function file. The conversion program of the PLC 6 converts digital communication signals received from the control device main body 41 into variable information including numerical values ​​or character strings. Alternatively, variable information transmitted from the PLC 6 to the control device main body 41 is converted into digital communication signals.

[0074] The conversion unit 50 of the control device main body 41 and the conversion unit 68 of the PLC 6 convert variable information or digital communication signals based on their respective conversion programs. For example, numeric values ​​can be converted into bytes according to data types such as USINT, REAL, and DINT. Furthermore, character strings such as STRING can be converted into digital communication signals or digital communication signals into character strings based on, for example, ASCII conversion.

[0075] In this embodiment, the program generation unit 48 of the control device main body 41 generates a conversion program that converts between variable information and digital communication signals based on a basic file. The control device main body 41 also generates a function file for generating the conversion program in the PLC 6. The program generation unit 67 of the PLC 6 then generates the conversion program using the function file. In this way, the conversion program can be generated automatically, without the need for an operator to generate it. As a result, advance configuration of the robot control device and PLC can be easily performed.

[0076] Figure 8 shows a block diagram of the control device main body and the PLC, illustrating the communication of variables when the robot device performs actual work. Referring to Figures 2 and 8, the memory 53 of the storage unit 42 of the control device main body 41 is allocated with a DO area 53a and a DI area 53b, as described above. The memory 73 of the arithmetic processing unit of the PLC 6 also has an input area and an output area for inputting and outputting variables. The memory 73 of the storage unit 62 is allocated with an INPUT area 73b, which is an area for storing signals input to the PLC 6, and an OUTPUT area 73a, which is an area for storing signals output from the PLC 6.

[0077] In the memory 73 of the PLC 6, areas corresponding to the memory 53 of the control device main body 41 are allocated for variables to be communicated. The INPUT area 73b of the PLC 6 is allocated with the same variable indexes as the DO area 53a of the memory 53 of the control device main body 41. The OUTPUT area 73a of the PLC 6 is allocated with the same variable indexes as the DI area 53b of the memory 53 of the control device main body 41.

[0078] The transmission unit 51 of the control device main body 41 periodically transmits signal information stored in the DO area 53a to the PLC 6. The transmission unit 69 of the PLC 6 stores this information in the INPUT area 73b. The transmission unit 69 of the PLC 6 periodically transmits signal information stored in the OUTPUT area 73a to the control device main body 41. The transmission unit 51 of the control device main body 41 stores this information in the DI area 53b. An index corresponding to the variable in each area is fixed. By periodically repeating transmission of signals for the entire input area and signals for the entire output area, input and output communication for each variable can be performed.

[0079] 9 shows a flowchart of control when variable information is transmitted from the control device main body to the PLC. With reference to FIGS. 2, 8, and 9, program generation unit 48 of control device main body 41 generates conversion program 57 in advance. Memory 53 of storage unit 42 stores conversion program 57 for control device main body 41. Program generation unit 67 of PLC 6 generates conversion program 75 in advance based on the function file. Memory 73 of storage unit 62 stores conversion program 75 for PLC 6.

[0080] In step 121, the conversion unit 50 of the control device main body 41 acquires the input data 31. The input data 31 includes information (numeric values ​​or character strings) of each variable. For example, the conversion unit 50 acquires information in which the variable UTOOLNUM of the structure FRC_COORDSYS_T is 2.

[0081] In step 122, the conversion unit 50 of the processing unit 45 converts data including character strings or numerical values ​​into a DO signal, which is a digital communication signal, based on the conversion program 57. In step 123, the conversion unit 50 stores the digital communication signal in the DO area 53a of the memory 53. That is, a bit string consisting of 0s and 1s is stored in the DO area 53a of the memory 53.

[0082] Next, in step 124, the transmission unit 51 of the control device main body 41 transmits a DO signal to the PLC 6. In step 125, the transmission unit 69 of the PLC 6 receives the DO signal as an INPUT signal of the PLC 6. The transmission unit 69 stores the INPUT signal in the INPUT area 73b of the memory 73. That is, a bit string consisting of 0s and 1s is stored in the INPUT area 73b of the memory 73.

[0083] Next, in step 126, the conversion unit 68 of the PLC 6 obtains the conversion program 75 in the PLC from the memory 73. The conversion unit 68 converts the INPUT signal into data including a character string or a numerical value based on the conversion program 75. FIG. 8 shows received data 32 of variables of the structure FRC_COORDSYS_T. Information such as the variable UTOOLNUM being 2 and the variable UFRAMENUM being 1 is received from the control device main body 41.

[0084] In step 127, the processing unit 65 stores data including a character string or a numerical value in the storage unit 62 of the PLC 6. In this example, the data of each variable indicated in the received data 32 is stored in the memory 73 of the storage unit 62.

[0085] In this way, the control device main body 41 converts variable information including numerical values ​​or character strings into digital communication signals and sends them to the PLC 6. The PLC 6 can convert the digital notification signals into variable information.

[0086] 10 shows a flowchart of control when variable information is transmitted from the PLC to the control device main body. With reference to FIGS. 2, 8, and 10, the PLC 6 transmits the variables STRING[0] and STRING[1] of the structure FRC_STRING_T to the control device main body 41, as shown in the input data 33. The data types of the variables STRING[0] and STRING[1] are character strings, STRING. Here, the variable STRING[0] is the letter "A," and the variable STRING[1] is the letter "b."

[0087] In step 131, the conversion unit 68 of the processing unit 65 of the PLC 6 acquires character string or numeric data (variable information). In step 132, the conversion unit 68 converts the data including the character string or numeric value into an OUTPUT signal, which is an output signal of the digital communication of the PLC 6. The OUTPUT signal is composed of a bit string of 1 or 0. In step 133, the conversion unit 68 stores the bit string of the OUTPUT signal in the OUTPUT area 73a of the memory 73.

[0088] In step 134, the transmission unit 69 of the processing unit 65 of the PLC 6 transmits the OUTPUT signal to the control device main body 41. In step 135, the transmission unit 51 of the control device main body 41 receives the OUTPUT signal as a DI signal. The transmission unit 51 stores the bit string of the DI signal in the DI area 53b of the memory 53.

[0089] In step 136, the conversion unit 50 of the control device main body 41 converts the DI signal into data (variable information) including a character string or a numerical value based on the conversion program 57. In step 137, the conversion unit 50 stores the variable information in the memory 53 of the storage unit 42. Here, the conversion unit 50 stores character string variables in the character string area 54b. The conversion unit 50 stores numerical value variables in the numerical value area 54a. In this example, the character "A" and the character "b" are stored in the character string area 54b.

[0090] In this way, the PLC 6 converts variable information including numerical values ​​or character strings into digital communication signals and sends them to the control device main body 41. The control device main body 41 can convert the digital communication signals into variable information.

[0091] In the above embodiment, a bit string signal is used as the periodic digital communication signal, but the present invention is not limited to this and a byte string signal may also be used. In other words, digital communication including a signal of multiple byte strings may also be performed.

[0092] The above-described embodiments can be combined as appropriate. In each of the above-described controls, the order of steps can be changed as appropriate as long as the functions and actions are not changed. In addition, in each of the above-described figures, the same or equivalent parts are designated by the same reference numerals. Note that the above-described embodiments are merely examples and do not limit the invention. Furthermore, the embodiments include modifications of the embodiments as set forth in the claims. [Explanation of symbols]

[0093] 1. Robot 4. Control device 6 PLC 8 Robotic Devices 25 Definition File 28 Basic Files 41 Control device main body 42 Storage section 45 Processing section 46 Definition file generator 47 Memory Allocation Unit 48 Program Generation Unit 49 Function generator 50 Conversion unit 51 Transmission Unit 53 Memory 53a DO area 53b DI area 57 Conversion Program 62 Storage section 65 Processing section 66 Definition setting section 67 Program Generation Unit 68 Conversion Unit 69 Transmission Unit 73 memory 73a OUTPUT area 73b INPUT area 75 Conversion Program

Claims

1. A robot control device that communicates with a programmable logic controller, a storage unit that stores a basic file in which data types of variables that are communicated between the programmable logic controller and the control device are defined; a definition file generating unit that generates a definition file in a file format readable by a programmable logic controller based on the basic file, the definition file defining data types of variables; a transmission unit configured to perform periodic digital communication to transmit variable information when driving the robot; a memory allocation unit that allocates variable areas to an input area for inputting variables and an output area for outputting variables in a memory included in the storage unit based on the data type of the variables defined in the basic file.

2. The robot control device according to claim 1, further comprising a conversion unit that converts variable information based on a data type and periodic digital communication signals when communicating with the programmable logic controller.

3. a program generating unit that generates a conversion program for converting between variable information based on a data type and a periodic digital communication signal; 3. The robot control device according to claim 2, wherein the conversion unit converts between variable information based on a data type and a periodic digital communication signal based on the conversion program generated by the program generation unit.

4. 2. The robot control device according to claim 1, further comprising a function generating unit for generating a function file for generating a conversion program for converting between variable information based on a data type and a periodic digital communication signal in the programmable logic controller.

Citation Information

Patent Citations

  • Controller, extension board and communication unit

    JP2002269024A

  • tool

    JP2005141435A

  • Tool for converting PLC program

    JP2010176377A

  • Support device and support program

    JP2013161106A

  • Control system, controller, and control method

    JP2019159995A