Robot control device and robot control system
The robot control device addresses synchronization issues by periodically acquiring and writing CNC configuration variables, enhancing data exchange efficiency and responsiveness between robots and CNC machines.
Patent Information
- Application Number
- DE112023005683
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-03-29
- Publication Date
- 2025-11-27
AI Technical Summary
Existing robot and CNC industrial machine systems face challenges in synchronizing status checks and data exchange due to large communication data volumes and slow communication cycles when accessing CNC configuration variables, which are typically 8-byte or 16-byte variables.
A robot control device with a sensing unit, storage unit, and allocation unit that periodically acquires and writes CNC configuration variables, using a memory area for storage and specifying memory locations for these variables.
Enables efficient and synchronized data exchange between robots and CNC industrial machines, allowing for periodic reading and writing of variables as needed, reducing communication latency and improving system responsiveness.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Technical field
[0001] The present disclosure relates to a robot control device and a robot control system. State of the art
[0002] There are systems capable of controlling robots from industrial machines such as machine tools. These systems enable communication between the robot and the industrial machine to monitor each other's status and exchange information. The commands of a robot program include functions for communicating with the computer numerical control (CNC) of an industrial machine and accessing variables for the CNC configuration. By using these commands to read or write configuration variables, the robot or robot control device and the CNC industrial machine can check each other's status and exchange information. Citation list patent document
[0003] Patent document 1: PCT International Publication No. WO 2020 / 194752 Disclosure of the invention Problems to be solved by the invention
[0004] Accessing variables for CNC configuration requires executing access commands within the robot program. Therefore, the CNC industrial machine cannot send requests to the robot or robot controller at arbitrary times and must wait for the robot or robot controller to execute the access commands. For the same reason, it is difficult for the robot or robot controller and the industrial machine to monitor each other's status. The robot and the CNC industrial machine can be synchronized to check each other's status and exchange requests at any given time. Synchronization of the robot and the CNC industrial machine requires a variety of signals. However, CNC variables are typically 8-byte or 16-byte variables.If the robot or robot control device captures a single variable to monitor the status of the CNC industrial machine, the volume of communication data consequently becomes massive and the communication cycle slows down.
[0005] One problem to be solved by the embodiments of the present disclosure is to provide a robot control device and a robot control system that can periodically read (acquire) or write variables for the configuration of industrial machines and use the variables as variable data for robots. Means to solve the problems
[0006] A robot control device according to one embodiment comprises a sensing unit, a storage unit, and an allocation unit. The sensing unit repeatedly acquires values of variables from an industrial machine. The storage unit writes the values of the variables acquired by the sensing unit to a memory area for storing the variable values. The allocation unit stores allocation data that specifies the location or address of the memory area into which the variables are to be written. Effects of the invention
[0007] The present disclosure enables the robot control device to read (capture) or write variables of the industrial machine, the variables being usable in the same way as the variable data for robots. Brief description of the drawings Fig. Figure 1 is a block diagram that shows an example of the configuration of a control system and its main components according to one embodiment; Fig. Figure 2 is a block diagram that illustrates an example of the main functions and main components of the control system according to one embodiment; Fig. 3 is a flowchart that shows an example of the processing by the processor of the control device in the Fig. The first embodiment shown in 1 is shown; Fig. 4 is a flowchart that shows an example of the processing by the processor of the industrial machine in the Fig. 1 represents the first and second embodiments shown; Fig. 5 is a flowchart that shows an example of the processing by the controller's processor in the first and second stages. Fig. 1 illustrated embodiment; Fig. 6 is a flowchart that shows an example of the processing by the teaching device's processor in the first and second stages. Fig. 1 illustrated embodiment; Fig. 7 is a flowchart that shows an example of the processing by the controller's processor in the first and second stages. Fig. 1 illustrated embodiment; Fig. Figure 8 is a flowchart that illustrates an example of the processing by the processor of the industrial machine in the first and second embodiments of Fig. 1 shows; Fig. Table 9 illustrates an example of a variable screen displayed on the teaching device's display unit in Fig. 1 is displayed; Fig. Figure 10 is a block diagram that illustrates an example of the operation of the control device 100 and the industrial machine 200; Fig. 11 is a flowchart that shows an example of the processing by the controller's processor in the second stage. Fig. 1 illustrated embodiment; Fig. Table 12 illustrates an example of a variable screen displayed on the teaching device's display unit in Fig. 1 is displayed; Fig. 13 is a flowchart that provides an example of the processing by the processor of the in Fig. 1 illustrates the second embodiment of the teaching device; and Fig. 14 is a diagram illustrating an example of an editing screen displayed on the teaching device's display unit in Fig. 1 is displayed. Preferred embodiment of the invention
[0008] Control systems according to several embodiments are described below with reference to the drawings. In the drawings used to describe the following embodiments, certain components may have been omitted for descriptive purposes. In the drawings and throughout this description, the same reference numerals denote identical or similar elements. [First embodiment]
[0009] The control system 1 according to one embodiment is described with reference to the Fig. 1 and Fig. 2 described. Fig. Figure 1 is a block diagram showing an example of the main configuration of the control system 1 and the components that the control system 1 comprises according to the embodiment. Fig. Figure 2 is a block diagram illustrating the main functions and configuration of control system 1 according to the embodiment. Control system 1 is a system that controls a robot 300. Control system 1 comprises, for example, a control device 100, an industrial machine 200, a robot 300, and a teaching device 400. Control system 1 is an example of a robot control system.
[0010] The control device 100 is a device that controls the robot 300. The control device 100 comprises, for example, a processor 110, a read-only memory (ROM) 120, a working memory (RAM) 130, an auxiliary storage device 140, a control interface 150, and a communication interface 160. These components are interconnected via a bus 170 or the like. The control device 100 is an example of a robot control device.
[0011] The processor 110, as the central component of the computer that performs the calculations and processing required for the operation of the control device 100, carries out various calculations and processing operations. The processor 110 can be, for example, a central processing unit (CPU), a microprocessor unit (MPU), a system-on-a-chip (SoC), a digital signal processor (DSP), a graphics processing unit (GPU), an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a field-programmable gate array (FPGA). Alternatively, the processor 110 can also be a combination of two or more of these elements. The processor 110 can also include a combination of these elements with hardware accelerators.The processor 110 controls the various components of the control device 100 to implement different application modes, based on programs such as firmware, system software, and application software stored in the ROM 120 or the additional storage device 140. Based on these programs, the processor 110 executes the processing operations described later. Some or all of the programs may be embedded in the circuitry of the processor 110.
[0012] By executing the above-mentioned programs, the processor 110 functions, for example, as an allocation unit 111, as a data conversion unit 112, as a start unit 113, as a stop unit 114 and as a destination unit 115.
[0013] The allocation unit 111 specifies where each configuration variable 241 should be stored. The data conversion unit 112 converts the configuration variables 241 into I / O data. The configuration variables 241 are described later.
[0014] The start unit 113 starts up the robot 300. The stop unit 114 stops the robot 300.
[0015] The target unit 115 specifies which configuration variable 241 is targeted for storing values.
[0016] The ROM 120 and the RAM 130 are the computer's main memory devices, centered around the processor 110. The ROM 120 is non-volatile memory used exclusively for reading data. For example, the ROM 120 stores firmware and the programs mentioned above. The ROM 120 also stores data used by the processor 110 for various processing tasks. The ROM 120 can contain multiple memory units.
[0017] RAM 130 is a memory used for reading and writing data. It serves as a workspace for temporarily storing data that the processor uses for various processing tasks. RAM 130 is typically volatile memory. RAM 130 can comprise multiple memory units.
[0018] The RAM 130, for example, comprises two types of memory areas: a memory area 131 and an I / O memory area 132. Memory area 131 is a memory area for storing data other than I / O data. The I / O memory area 132 is a memory area for storing I / O data and is capable of storing I / O data. The I / O data is described later. Memory area 131 and I / O memory area 132 can be physically located on the same memory or on different memory locations. In the first embodiment, however, the RAM 130 cannot include I / O memory area 132. I / O memory area 132 can be provided in other memory devices, such as the ROM 120 or the auxiliary memory device 140, instead of the RAM 130.
[0019] The RAM 130 is equipped with a start area 133 and an alarm area 134. The start area 133 and the alarm area 134 will be described later.
[0020] The auxiliary storage device 140 is an auxiliary storage device of the computer centered around the processor 110. Examples of the auxiliary storage device 140 include an electrically erasable programmable read-only memory (EEPROM), a hard disk drive (HDD), or flash memory. The auxiliary storage device 140 stores, for example, system software and application software among the programs mentioned above. The auxiliary storage device 140 stores data used by the processor 110 for various processing operations, data generated by processing operations in the processor 110, and various configuration values.
[0021] The additional storage device 140 or other devices store parameter information, assignment information, and initial execution information, which will be described later. The assignment information and the initial execution information can also be stored in devices other than the control device 100.
[0022] The parameter information stores at least one of the settings relating to acquiring configuration variable 241 from industrial machine 200, and the settings relating to writing configuration variable 241 to industrial machine 200. The values of the settings in the parameter information are configured, for example, by the user, administrator, or designer of control system 1. Default values can be set for each setting in the parameter information. The values for each setting in the parameter information may or may not be modifiable. The additional storage device 140 can store a variety of parameter information.
[0023] The control interface 150 is an interface for communication between the control device 100 and the robot 300. The control device 100 communicates with the robot 300 via the control interface 150 and thus controls the robot 300.
[0024] The communication interface 160 is an interface through which the control device 100 communicates with the industrial machine 200 and the teaching device 400, among other things. The communication interface 160 can communicate, for example, via a network. Alternatively, the communication interface 160 can also communicate without a network. The network can be a communication network that includes, for example, a local area network (LAN) or the internet. The control device 100 communicates with the industrial machine 200 and the teaching device 400, among other things, via the communication interface 160.
[0025] The bus 170 comprises a control bus, an address bus and a data bus and transmits the signals exchanged between the components of the control device 100.
[0026] The industrial machine 200 could, for example, be a machine tool or a peripheral device of a machine tool. Alternatively, the industrial machine 200 could also be another type of machine. The control scheme of the industrial machine 200 is a computerized numerical control (CNC). Alternatively, the control scheme of the industrial machine 200 could also be a numerical control (NC) or another type of scheme. The industrial machine 200 includes, for example, a processor 210, a ROM 220, a RAM 230, an additional storage device 240, a communication interface 250, an input device 260, and a display device 270. These components are interconnected via a bus 280 or the like.
[0027] The Processor 210, as the central component of the computer that performs the calculations and control processing required for the operation of the Industrial Machine 200, executes various calculations and processing operations. The Processor 210 can be, for example, a central processing unit (CPU), a microprocessor unit (MPU), a system-on-a-chip (SoC), a digital signal processor (DSP), a graphics processing unit (GPU), an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a field-programmable gate array (FPGA). Alternatively, the Processor 210 can also be a combination of two or more of these elements. The Processor 210 can also include a combination of these elements with hardware accelerators.The processor 210 controls various components of the industrial machine 200 to implement different functions, based on programs such as firmware, system software, and application software stored in the ROM 220 or the additional storage device 240. The processor 210 performs the processing operations described later based on these programs. Some or all of the programs may be embedded in the circuitry of the processor 210.
[0028] The ROM 220 and the RAM 230 are the computer's main memory devices, centered around the processor 210. The ROM 220 is non-volatile memory used exclusively for reading data. For example, the ROM 220 stores firmware under the programs mentioned above. The ROM 220 also stores data used by the processor 210 for various processing tasks. The RAM 230 is memory used for both reading and writing data. The RAM 230 serves as a workspace for temporarily storing data used by the processor 210 during various processing operations. The RAM 230 is typically volatile memory.
[0029] The auxiliary storage device 240 is the computer's auxiliary storage device centered around the processor 210. Examples of the auxiliary storage device 240 include an electrically erasable programmable read-only memory (EEPROM), a hard disk drive (HDD), or flash memory. The auxiliary storage device 240 stores, for example, system software and application software among the programs mentioned above. The auxiliary storage device 240 stores data used by the processor 210 for various processing operations, data generated by processing in the processor 210, and various configuration values.
[0030] The additional storage device 240, the RAM 230, or other devices store the configuration variables 241. The configuration variables 241 can be modified by the user of the industrial machine 200. The configuration variables 241 define various settings of the industrial machine 200 or the control system 1. The configuration variables 241 behave, for example, like global variables or external variables. The additional storage device 240, the RAM 230, or other devices can store multiple configuration variables 241. A configuration variable 241 can contain multiple values. In this case, each of the multiple values defines a setting. Fig. 1. For example, the configuration variables 241 are represented such that they are stored in the additional storage device 240.
[0031] The programs mentioned above include, for example, an industrial machine program 242 and a ladder program 243. In Fig. Figure 1 shows the industrial machine program 242 and the ladder logic program 243 as examples, which are stored in the auxiliary storage device 240. The industrial machine program 242 is a program for processing by the industrial machine 200, created by an end user. The ladder logic program 243 performs the processing for operating the industrial machine 200 and coordinating with external devices.
[0032] The communication interface 250 is an interface through which the industrial machine 200 communicates with the control device 100 or other devices. The communication interface 250 can communicate, for example, via the network mentioned above. Alternatively, the communication interface 250 can also communicate without a network. The control device 100 communicates with the industrial machine 200, among other things, via the communication interface 250.
[0033] The input device 260 receives operations performed by the operator of the industrial machine 200. The input device 260 can include, for example, a keyboard, a keypad, a touchpad, a mouse, or a controller. The input device 260 can also be a voice input device.
[0034] The display device 270 shows screens to inform the operator of the industrial machine 200 or others about various information. Examples of the display device 270 can include, for example, a liquid crystal display or an organic EL display. A touch panel can also serve as both an input device 260 and a display device 270. That is, a display area of the touch panel can serve as a display device 270, and a touch input pointer of the touch panel can serve as an input device 260.
[0035] The bus 280 comprises a control bus, an address bus and a data bus and transmits the signals exchanged between the components of the industrial machine 200.
[0036] The robot 300 can, for example, include a manipulator, a robot arm, or a robot equipped with these components. The robot 300 can, for example, be an articulated robot. The robot 300 includes, for example, one or more drive units. The robot 300 can also be another type of robot. The robot 300 can include a built-in control device 100.
[0037] The teaching device 400 is a device for creating robot programs. Robot programs can be created through online teaching, offline teaching, direct teaching, or other programming methods. The teaching device 400 can, for example, be a learning device capable of online instruction. Alternatively, the teaching device 400 can be a personal computer (PC) or similar device that runs the software for offline teaching. The control device 100 can include some or all of the functions of the teaching device 400. The robot 300 can include some or all of the functions of the teaching device 400. The teaching device 400 includes, for example, a processor 410, a ROM 420, a RAM 430, an additional storage device 440, a communication interface 450, an input device 460, and a display device 470.These components are interconnected via a 480 bus or similar. The 400 teaching device is an example of a display device.
[0038] The Processor 410, as the central component of the computer, performs various calculations and processing operations required for the operation of the Teaching Device 400. The Processor 410 can be, for example, a central processing unit (CPU), a microprocessor unit (MPU), a system-on-a-chip (SoC), a digital signal processor (DSP), a graphics processing unit (GPU), an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a field-programmable gate array (FPGA). Alternatively, the Processor 410 can be a combination of two or more of these elements. The Processor 410 can also include a combination of these elements with hardware accelerators.The processor 410 controls the various components of the teaching device 400 to implement its various functions, based on programs such as firmware, system software, and application software stored in the ROM 420 or the additional storage device 440. The processor 410 performs the processing operations described later based on these programs. The programs may be partially or completely embedded in the circuitry of the processor 410.
[0039] The ROM 420 and the RAM 430 are the main memory devices of the computer, centered around the processor 410. The ROM 420 is non-volatile memory used exclusively for reading data. For example, the ROM 420 stores the firmware of the programs mentioned above. The ROM 420 also stores data used by the processor 410 for various processing tasks. The RAM 430 is memory used for both reading and writing data. The RAM 430 serves as a workspace for the temporary storage of data used by the processor 410 during various processing operations. The RAM 430 is typically volatile memory.
[0040] The auxiliary storage device 440 is the computer's auxiliary storage device centered around the processor 410. Examples of auxiliary storage devices 440 include an electrically erasable programmable read-only memory (EEPROM), a hard disk drive (HDD), or flash memory. The auxiliary storage device 440 stores, for example, system software and application software among the programs mentioned above. The auxiliary storage device 440 stores data used by the processor 410 for various processing operations, data generated by processing operations in the processor 410, and various configuration values.
[0041] The communication interface 450 is an interface through which the teaching device 400 communicates with the control device 100 or other devices. The communication interface 450 can communicate, for example, via the network mentioned above. Alternatively, the communication interface 450 can also communicate without using a network. The teaching device 400 communicates with the control device 100 or other devices via the communication interface 450.
[0042] The input device 460 receives operations performed by the operator of the teaching device 400. The input device 460 can include, for example, a keyboard, a keypad, a touchpad, a mouse, or a controller. The input device 460 can also be a speech input device.
[0043] The display device 470 shows screens to inform the operator of the teaching device 400 or other persons about various information. The display device 470 can, for example, include a liquid crystal display or an organic EL display. A touch panel can also serve as both an input device 460 and a display device 470. That is, a display area of the touch panel can serve as a display device 470, and a touch input pointer of the touch panel can serve as an input device 460.
[0044] The bus 480 comprises a control bus, an address bus and a data bus and transmits signals that are exchanged between the components of the teaching device 400.
[0045] The operation of control system 1 according to the first embodiment is described below with reference to the Fig. Figures 3 to 8 and other drawings are described. The processing details described in the following operating instructions are merely an example, and various processing methods that achieve similar results may be used appropriately. Fig. 3, Fig. 5 and Fig. Figure 7 shows flowcharts illustrating examples of how processor 110 of control device 100 performs processing operations. For example, processor 110 performs the operations described in the Fig. 3, Fig. 5 and Fig. 7 processing operations are based on the programs stored in the ROM 120 or the additional storage device 140. Fig. 4 and Fig. Figure 8 shows flowcharts illustrating examples of how processor 210 of industrial machine 200 executes processes. For example, processor 210 performs the following tasks: Fig. 4 processing operations are based on the programs stored in the ROM 220 or in the additional storage device 240. Fig. Figure 6 is a flowchart showing an example of how processor 410 of the teaching device 400 performs the processing operations. For example, processor 410 performs the following tasks: Fig. 6 processing operations are performed based on the programs stored in the ROM 420 or in the additional storage device 440.
[0046] The processor 110 of the control device 100, for example, executes the commands in the Fig. 3, Fig. 5 and Fig. The 7 processes shown are executed simultaneously or in parallel. For example, processor 210 of industrial machine 200 performs the processes described in the Fig. 4 and Fig. The 8 processes shown are carried out simultaneously or in parallel.
[0047] In step ST101 of the Fig. 3. The processor 110 of the control device 100 determines whether parameter information should be acquired. For example, the processor 110 can determine that the parameter information should be acquired at predefined time intervals TP. Alternatively, the processor 110 can determine that the parameter information should be acquired when the current time reaches or exceeds a predefined time CT. Alternatively, the processor 110 can determine that the parameter information should be acquired when it receives an input of instructions for acquiring parameter information. The input of instructions for acquiring parameter information can, for example, be an input from a program executed by the control device 100. Alternatively, the input of instructions for acquiring parameter information can also be an input from outside the control device 100.
[0048] In a case where a large amount of parameter information is available, processor 110 can determine whether each parameter piece of information should be acquired individually. Alternatively, if processor 110 determines that the parameter information should be acquired, it can determine which part of the parameter information should be acquired.
[0049] In a case where a large number of parameter pieces of information are present, the processor 110 can use different time intervals TP for acquiring each individual parameter piece of information. When the time TP corresponding to the parameter piece of information has elapsed since the last acquisition of that parameter piece of information, the processor 110 determines that the parameter piece of information should be acquired. The time TP corresponding to each individual parameter piece of information is included in that parameter piece of information.
[0050] For example, suppose there are two parameter pieces of information: a first parameter piece of information and a second parameter piece of information. Suppose the time TP corresponding to the first parameter piece of information is TP1. The first parameter piece of information comprises TP1. Suppose the time TP corresponding to the second parameter piece of information is TP2. The second parameter piece of information comprises TP2. In this case, if the time elapsed since the last acquisition of the first parameter piece of information is equal to or greater than TP1, processor 110 determines that the first parameter piece of information should be acquired. Similarly, if the time elapsed since the last acquisition of the second parameter piece of information is equal to or greater than TP2, processor 110 determines that the second parameter piece of information should be acquired.
[0051] In a case where a large amount of parameter information is available, the processor can use 110 different CT times to acquire each piece of parameter information.
[0052] If it is not determined that parameter information should be captured, processor 110 determines "No" in step ST101 and repeats the processing of step ST101. However, if it is determined that the parameter information should be captured, processor 110 determines "Yes" in step ST101 and proceeds to step ST102.
[0053] In step ST102, the processor 110 acquires the parameter information from the auxiliary storage device 140 or another source. In a case where a large number of parameter information is available, the processor 110 acquires, for example, the parameter information that was determined to be acquired in step ST101.
[0054] In step ST103, processor 110 determines whether the configuration variables 241 should be acquired by industrial machine 200. The parameter information includes, for example, information (hereinafter referred to as "configuration information") indicating that the configuration variables 241 should be acquired by industrial machine 200 or that the configuration variables 241 should be written to industrial machine 200. Processor 110 refers to the configuration information to determine whether the configuration variables 241 should be acquired by industrial machine 200. If processor 110 determines that the configuration variables 241 should be acquired by industrial machine 200, it determines "Yes" in step ST103 and proceeds to step ST104.
[0055] As mentioned previously, the parameter information includes configuration information. Therefore, the determination in step ST101 of whether to capture the parameter information specifying the capture of configuration variable 241 by industrial machine 200 can be considered equivalent to determining whether configuration variable 241 should be captured by industrial machine 200. Similarly, the determination in step ST101 of whether to capture the parameter information specifying that configuration variable 241 should be written to industrial machine 200 can be considered equivalent to determining whether configuration variable 241 should be written to industrial machine 200.
[0056] In step ST104, processor 110 generates a variable request. The variable request is information that instructs industrial machine 200 to transfer the configuration variables 241. The variable request can include specification information that defines the configuration variables 241 to be transferred. Processor 110 retrieves the specification information, for example, from the parameter information acquired in step ST102. Processor 110 then generates a variable request that includes the specification information.
[0057] In step ST105, processor 110 instructs communication interface 160 to transmit the variable request to industrial machine 200. Upon receiving this transmission instruction, communication interface 160 transmits the variable request to industrial machine 200. The transmitted variable request is received via communication interface 250 of industrial machine 200.
[0058] Meanwhile, the processor 210 of the industrial machine 200 is in step ST121 of Fig. Step 4 determines whether a variable request has been received via communication interface 250. If no variable request is present, processor 210 determines "No" in step ST121 and proceeds to step ST122.
[0059] In step ST122, processor 210 determines whether a write request has been received via communication interface 250. If it determines that no write request has been received, processor 210 determines "No" in step ST122 and returns to step ST121. Processor 210 thus remains in a standby state, repeating steps ST121 and ST122 until a variable request or a write request is received.
[0060] If a variable request is received during the standby state of repeating steps ST121 and ST122, processor 210 determines "Yes" in step ST121 and proceeds to step ST123.
[0061] In step ST123, processor 210 retrieves the configuration variables 241 from the auxiliary storage device 240, RAM 230, or another source. For example, processor 210 retrieves the configuration variables 241 specified by the specification information contained in the variable request received in step ST121. Alternatively, processor 210 can retrieve all configuration variables 241.
[0062] In step ST124, the processor 210 generates a variable response. The variable response includes information contained in the configuration variables 241 acquired in step ST123.
[0063] In step ST125, processor 210 instructs communication interface 250 to transmit the variable response generated in step ST124 to industrial machine 200, which sent the variable request. Upon receiving this transmission instruction, communication interface 160 transmits the variable response to industrial machine 200. The transmitted variable response is received by industrial machine 200 via communication interface 250. After completion of processing in step ST124, processor 210 returns to step ST121.
[0064] Meanwhile, processor 110 of control device 100 is waiting in step ST106 of the Fig. 3. The processor checks for a variable response via communication interface 250. If a variable response is received, processor 110 determines "Yes" in step ST106 and proceeds to step ST107.
[0065] In step ST107, the processor 110 acquires allocation information from the auxiliary storage device 140 or another source. This allocation information contains details about the monitoring variables. The monitoring variables are variables used to input the values of the configuration variable 241 or the configuration variable 241 itself. The monitoring variables are variables that are used during the Fig. The processing shown in section 5 can be monitored. For example, processor 110 displays the following information when starting the process described in the following section: Fig. 3 and Fig. During the processing operations shown in Figure 5, or when the control device 100 is started, the monitoring variables are assigned to RAM 130 or another memory. Alternatively, the additional memory device 140 can store the configuration variables 241. The number of monitoring variables can be one or more.
[0066] The mapping information includes information that specifies which watch variable should store (record) each configuration variable 241. In a case where multiple configuration variables 241 can be stored in a watch variable, the mapping information includes information that specifies in which part of which watch variable each configuration variable 241 should be stored. For example, the mapping information defines in which watch variable each configuration variable should be stored by the address of the memory area, such as the RAM 130 to which the watch variable has been allocated, or the additional memory device 140 that has stored the watch variable. In other words, the mapping information includes information that specifies at which address of the memory area each configuration variable 241 should be stored.Alternatively, the assignment information can define which monitoring variable each configuration variable should store by means of a variable name or similar identifier. The variable name is an example of information that specifies where in the memory space the configuration variable 241 should be stored. The assignment information can define the memory space for a multitude of monitoring variables using a single address. For example, the assignment information defines the memory space by the first address of the multitude of monitoring variables and the length from the first to the last of the multitude. The multitude of monitoring variables are arranged sequentially in the memory space.
[0067] The RAM 230 or the auxiliary memory device 240 is an example of a memory area for storing variable values. The area for storing watch variables is also an example of a memory area for storing variable values. Accordingly, mapping data is an example of mapping data that specifies the location or address of a memory area for storing variable values. In a case where a single watch variable can store a plurality of configuration variables 241, the mapping data is an example of mapping data that specifies the location or address of a memory area for storing a plurality of variable values.Mapping data, which defines the memory area of a multitude of monitoring variables through a single address, is an example of mapping data that stores an address specifying a memory area for storing a multitude of variable values. The Auxiliary Storage Device 140, or a similar device that stores mapping data, is an example of a mapping storage unit that stores the mapping data.
[0068] In step ST108, processor 110 writes (stores / writes) the configuration variables 241 received in step ST106 to the monitoring variables specified by the mapping information. If the mapping information specifies the address at which configuration variables 241 should be stored, processor 110 writes (stores) the configuration variables 241 to the address configured by the mapping information. After completing the processing in step ST108, processor 110 returns to step ST101. As described above, processor 110 repeats steps ST101 through ST108. Consequently, processor 110 repeatedly receives the configuration variables 241 from industrial machine 200, either periodically or irregularly, and writes the configuration variables to the monitoring variables.
[0069] As described above, by performing the processing in step ST108, processor 110 acts as an example of a memory unit that writes the variable values captured by the acquisition unit into a memory area for storing variable values.
[0070] Processor 110 can skip processing in step ST101. In this case, processor 110 begins with the step in Fig. The processing shown in Figure 3 begins at step ST102. After completing the processing in step ST108, processor 110 returns to step ST102. In this case, processor 110 repeatedly executes steps ST102 to ST108 without performing the determination in step ST101, repeatedly acquiring the configuration variables 241 from industrial machine 200.
[0071] As described above, the processor 110 functions by executing the processing operations in steps ST101 to ST108 of the Fig. 3 as an example of a data acquisition unit that repeatedly captures variable values from the industrial machine.
[0072] In step ST131 of Fig. 5. The processor 110 of the control device 100 checks each monitoring variable. More precisely, the processor 110 records the values of the monitoring variables.
[0073] In step ST132, processor 110 determines whether the values of the monitoring variables have been modified since the last acquisition. If any value of the monitoring variable has been modified since the last acquisition, processor 110 determines "Yes" in step ST132 and proceeds to step ST133. Conversely, if no value of the monitoring variable has been modified since the last acquisition, processor 110 determines "No" in step ST132 and proceeds to step ST134.
[0074] In step ST133, processor 110 generates a display request. The display request includes the monitoring variables and their values. The display request is information that instructs display device 400 to display the values of the monitoring variables. After processor 110 generates the display request, it instructs communication interface 160 to transmit the display request to display device 400. Upon receiving this transmission instruction, communication interface 160 transmits the display request to display device 400. The transmitted display request is received by display device 400 via communication interface 450.
[0075] The processor 410 of the teaching device 400, which has received the display request, displays a monitoring variable screen on the display device 470. The monitoring variable screen includes, for example, an image indicating the values of the modified monitoring variables.
[0076] Meanwhile, processor 410 of the teaching device 400 in step ST141 of Fig. Step 6 determines whether a display request has been received via communication interface 450. If no display request has been received, processor 410 determines "No" in step ST141 and proceeds to step ST142.
[0077] In step ST142, processor 410 determines whether the variable values should be modified. For example, if an operation is performed that instructs a modification of the variable value displayed on input device 460, processor 410 determines that the variable value should be modified. If it does not determine that the variable value should be modified, processor 410 determines "No" in step ST142 and returns to step ST141. In this way, processor 410 remains in a standby state, repeating steps ST141 and ST142 until it receives a display request or determines that the variable value should be modified.
[0078] If a display request is received while the processor 410 is in the standby state of repeating steps ST141 and ST142, the processor 410 determines "Yes" in step ST141 and proceeds to step ST143.
[0079] In step ST143, processor 410 generates an image corresponding to the variable screen. Processor 410 then instructs display device 470 to display the generated image. Upon receiving the display instruction, display device 470 displays the variable screen.
[0080] An example of a variable screen is given with reference to Fig. 9 described. Fig. Table 9 shows an example of a variable screen SC1a displayed on the display device 470. The variable screen includes the values of the monitoring variables included in the display request. The variable screen allows an operation to instruct a modification of the displayed variable values. The variable screen also allows an operation to instruct how the variable values should be modified. For example, the operator of the teaching device 400 can execute such instructions by operating the input device 460. The variable screen SC1a includes, for example, an area AR1.
[0081] The AR1 range specifies the numerical values of the individual variables. Each of the entries [1] to
[16] represents the number assigned to the respective variable. In the Fig. However, in the state shown in Figure 9, only the variables for data [1] and data [2] exist. The variables for data [3] to data
[16] are either unused or not present.
[0082] Each variable displayed in area AR1 can be selected by operating the input device 460 of the same kind.
[0083] The value of each variable displayed in area AR1 can be modified by input device 460 or the like. When such an operation is performed, processor 410 determines the value in step ST142. Fig. 6. That the variable values are to be modified. The modification information described later includes the details of the value modification by the operation.
[0084] After completion of processing in step ST143, processor 410 returns to step ST141.
[0085] As described above, in step ST143, the processor 410 acts as an example of a display unit that works in conjunction with the display device 470 to display the variable values.
[0086] If the processor 410, in standby mode during the repetition of steps ST141 and ST142, determines that the variable values should be modified, it determines "Yes" in step ST142 and proceeds to step ST144.
[0087] In step ST144, processor 410 generates a modification request. The modification request includes modification information specifying the details of the variable modification. This request instructs control device 100 to modify the values of the monitored variables according to the modification information. After generating the modification request, processor 410 instructs communication interface 450 to transmit the modification request to control device 100. Upon receiving this transmission instruction, communication interface 450 transmits the modification request to control device 100. The transmitted modification request is received by control device 100 via communication interface 160. After completing processing in step ST144, processor 410 returns to step ST141.
[0088] As described above, the 410 processor acts as an example of a modification unit that modifies the variable values by performing the processing in step ST144.
[0089] Meanwhile, processor 110 of control device 100 is waiting in step ST151 of the Fig. 7 awaits the receipt of a modification request via communication interface 160. If a modification request is received, processor 110 determines "Yes" in step ST151 and proceeds to step ST152.
[0090] In step ST152, processor 110 modifies the values of the monitoring variables according to the modification information contained in the modification request received in step ST151. After completing the processing in step ST152, processor 110 returns to step ST151.
[0091] Meanwhile, the processor detects 110 in step ST134 of Fig. 5. First execution information from the auxiliary storage device 140 or another source. The first execution information stores which processing operations are to be performed when the value of each monitoring variable reaches a specific value. For example, the first execution information links and stores the information that specifies the monitoring variables and the information that indicates the values and the processing operations to be performed. The first execution information specifies that the associated processing operation is to be performed when the value of the monitoring variable reaches the corresponding value. For example, the first execution information stores that the robot 300 is to be started when the monitoring variable stored in the start area 133 reaches a predefined value.Another example: The first execution information states that robot 300 should be stopped when the monitoring variable stored in alarm area 134 reaches a predefined value. The monitoring variable stored in alarm area 134 indicates that an alarm has occurred in industrial machine 200 when its value matches the predefined value.
[0092] In step ST135, processor 110 determines whether the processing operations corresponding to the value of configuration variable 241 should be executed. Specifically, if the value of the watch variable matches the value assigned in the first execution information, processor 110 determines that the processing operations assigned to the watch variable and the value in the first execution information should be executed. If it is not determined that the processing operations should be executed, processor 110 determines "No" in step ST135 and returns to step ST131. Conversely, if it is determined that the processing operations should be executed, processor 110 determines "Yes" in step ST135 and proceeds to step ST136.
[0093] In step ST136, processor 110 executes the processing operations specified in step ST135. After completing the processing in step ST136, processor 110 returns to step ST131. As described above, processor 110 monitors the monitoring variables and executes the predetermined processing when the value of the monitoring variable reaches a predetermined value. As mentioned earlier, processor 110 outputs the values of configuration variable 241 through the processing in step ST136. Fig. 3 into the monitoring variables. Accordingly, processor 110 monitors the configuration variables through the processing in Fig. 3 and Fig. 5 and executes the predetermined processing when the value of the configuration variable reaches a predetermined value.
[0094] An example of the combination of a monitoring variable, a predetermined value, and a predetermined processing action stored in the initial execution information is described below. In this example, the monitoring variable is a variable that stores the configuration variable 241, which indicates the occurrence of an alarm in industrial machine 200 and the details of the alarm. The predetermined value is a value, such as "1," that indicates the occurrence of an alarm. The predetermined processing action in this example is to stop robot 300. For example, stop unit 114 stops robot 300. If, in step ST134, it is determined that the value of the monitoring variable in this example has become "1," processor 110 stops robot 300 in step ST135. Processor 110 stops robot 300, for example, by halting the robot program.
[0095] Other examples of predetermined processing include starting robot 300, causing robot 300 to perform a predetermined operation, executing various robot programs, and executing predetermined processing by the control device 100. For example, processor 110 starts robot 300 by executing a robot program that includes a start command. The start unit 113, for example, starts robot 300.
[0096] The specified value can encompass a range. For example, the specified value could be "1 to 3". In this case, processor 110 executes the specified operations when the value of the monitoring variable falls within the range of "1 to 3".
[0097] There can be a multitude of predetermined values. There can be a multitude of predetermined operations. For example, there can be two predetermined values: a first predetermined value and a second predetermined value. Likewise, there can be two predetermined operations: a first predetermined operation and a second predetermined operation. In this case, the first predetermined operation corresponds to the first predetermined value, and the second predetermined operation corresponds to the second predetermined value. In this case, when the value of the monitoring variable matches the first predetermined value, processor 110 executes the first predetermined operation. When the value of the monitoring variable matches the second predetermined value, processor 110 executes the second predetermined operation.
[0098] The values of the watch variables and the default values are not limited to numeric values. For example, the values of the watch variables and the default values can be strings, dates, Boolean types, pointers, objects, or structures. The default value can also be a value indicating the absence of a value, such as zero or nothing.
[0099] The predetermined processing is further described with reference to Fig. 10. For example, suppose that the value of a certain configuration variable 241 (hereinafter referred to as the “target variable”) is modified in a case where the industrial machine 200 performs a certain operation or a certain operation is performed on the industrial machine 200 (hereinafter referred to as the “value modification trigger”). In this case, the control system 1 can cause the control device 100 to perform predetermined processing in response to the value modification trigger. Such an example is described with reference to Fig. 10 described.
[0100] Fig. Figure 10 is a block diagram showing an example of the operation of the control device 100 and the industrial machine 200. The industrial machine 200 includes an input device 260, such as a start button 261. The start button 261 is used to start and stop the industrial machine 200. If the start button 261 is pressed while the industrial machine 200 is stopped, the industrial machine 200 begins operation. If the start button 261 is pressed while the industrial machine 200 is operating, the industrial machine 200 stops. If the start button 261 is pressed while the industrial machine 200 is stopped, a start request signal is output. If the start button 261 is pressed while the industrial machine 200 is operating, a stop request signal is output. For example, the processor 210 receives an input of the start request signal or the stop request signal.
[0101] When processor 210 receives a start request signal, it modifies the value of configuration variable 241 (target variable) to a value indicating that industrial machine 200 is running. Conversely, when processor 210 receives a stop request signal, it modifies the value of the target variable to a value indicating that industrial machine 200 is stopped. As explained above, pressing the start button 261 triggers the value change, thus modifying the value of the target variable. Alternatively, the input of either the start request signal or the stop request signal can also trigger a value modification, thus modifying the value of the target variable.
[0102] By executing programs stored in ROM 220 or in the additional storage device 240, the processor 210 functions as an industrial start unit 211. In response to the activation of the start button 261 while the industrial machine 200 is stopped, the industrial start unit 211 starts the industrial machine program 242 to operate the industrial machine 200.
[0103] As in Fig. 3 and Fig. As described in section 4, the processor 110 of the control device 100 acquires the target variable via the communication interface 160. The control device 100 stores the acquired target variable or its value in the start area 133 as a monitoring variable. By monitoring the start area 133, the processor 110 monitors changes in the value of the target variable. If the value of the target variable changes from the value indicating that the industrial machine 200 is stopped to the value indicating that the industrial machine 200 is in operation, the processor 110 performs predetermined processing actions, such as starting the robot 300. For example, the start unit 113 performs this start. Conversely, if the value of the target variable changes from the value indicating that the industrial machine 200 is in operation to the value indicating that the industrial machine 200 is stopped, the processor 110 performs predetermined processing actions, such as...The stopping of the robot 300. The stop unit 114 performs this stopping.
[0104] In the Fig. In the example shown, pressing the start button 261 therefore causes not only the industrial machine 200, but also the robot 300 to be started or stopped.
[0105] As described above, processor 110 acts as an example of an execution unit by performing the processing operations in steps ST135 and ST136, executing a predefined processing operation according to a predefined value when the value of the variable written to the memory area matches the predefined value.
[0106] In a case where it is not specified that the configuration variable 241 should be acquired by the industrial machine 200, i.e., in a case where it is specified that the configuration variable 241 should be written to the industrial machine 200, the processor 110 determines in step ST103 of Fig. 3 “No” and continues with step ST109.
[0107] In step ST109, processor 110 acquires an instruction variable. The instruction variable is a variable that specifies the write content defined by the instruction information described later. Based on the acquisition information in the parameter information acquired in step ST102, processor 110 determines which variable should be acquired as the instruction variable. The acquisition information specifies which variable should be acquired as the instruction variable. For example, processor 110 acquires the instruction variable from the memory area of robot 300. Alternatively, processor 110 can acquire an instruction variable from RAM 130, the auxiliary storage device 140, or an external device. The value of the instruction variable is an example of a value stored in the memory area.Accordingly, by performing the processing operations in step ST109, processor 110 acts as an example of a robot variable acquisition unit that acquires values stored in the memory area.
[0108] In step ST110, processor 110 generates target information. This target information specifies the write destination. For example, the write destination is a configuration variable 241, which is designated for writing (storing) a value. The target information specifies the write destination or its location, for example, by a variable name or address. Using the target determination information in the parameter information acquired in step ST102, processor 110 determines the write destination. The target determination information specifies which configuration variable 241 is the write destination. The target determination information specifies the configuration variable 241, for example, by a variable name or address. The target determination information is an example of mapping data that specifies the variable in the industrial machine 200 for storing the value acquired by the robot variable acquisition unit.The auxiliary storage device 140 or a similar device that stores the targeting information is an example of an allocation storage unit that stores the allocation data.
[0109] In step ST111, the processor generates instruction information 110. This instruction information specifies the write content of configuration variable 241. For example, the write content specified by the instruction information is the value of the instruction variable captured in step ST109. The target information is an example of variable specification data that identifies the variable in the industrial machine into which the value is to be written.
[0110] In step ST112, processor 110 generates a write request. This write request includes the destination information generated in step ST110 and the instruction information generated in step ST111. The write request is information that instructs industrial machine 200 to write the content specified by the instruction information to the destination specified by the destination information.
[0111] In step ST113, the processor 110 instructs the communication interface 160 to transmit the write request generated in step ST112 to the industrial machine 200.
[0112] Upon receiving this transmission instruction, communication interface 160 transmits the write request to industrial machine 200. The transmitted write request is received via communication interface 250 of industrial machine 200.
[0113] When a write request is received while the processor 210 of the industrial machine 200 is in standby mode, the repetition of steps ST121 and ST122 occurs. Fig. If the value is 4, he determines “Yes” in step ST122 and continues with step ST126.
[0114] In step ST126, processor 210 writes the value specified by the instruction information to the configuration variable 241, which is stored in the auxiliary storage device 240 or in RAM 230, according to the write request received in step ST122. If the value specified by the instruction information differs from the value of the configuration variable 241 to be written, processor 210 modifies the value by overwriting it. However, if the value specified in the instruction information is identical to the value of the configuration variable 241 to be written, processor 210 does not need to overwrite the value.
[0115] In step ST127, the processor 210 generates a completion response. The completion response is information indicating that the writing of the value based on the write request is complete.
[0116] In step ST128, processor 210 instructs communication interface 250 to transmit the completion response generated in step ST127 to control device 100, which contains the write request. Upon receiving this transmission instruction, communication interface 250 transmits the completion response to control device 100. The transmitted completion response is received via communication interface 160 of control device 100. After completing the processing in step ST128, processor 210 returns to step ST121.
[0117] Meanwhile, processor 110 of control device 100 is waiting in step ST114 of the Fig. 3 awaits the receipt of a write request via communication interface 160. If the write request is received, processor 110 determines "Yes" in step ST114 and returns to step ST101.
[0118] As described above, processor 110 repeats steps ST101 to ST103 and steps ST109 to ST114. As a result, processor 110 repeatedly transmits write requests to industrial machine 200, either periodically or irregularly.
[0119] By executing the processing operations in step ST112 in conjunction with the communication interface 250, processor 110 acts as an example of a transmission unit that repeatedly transmits the values acquired by the robot variable acquisition unit and the variable specification data that define the variables in the industrial machine into which the values are to be written. Alternatively, processor 110 acts as an example of a transmission unit by executing the processing operations in step ST112.
[0120] In step ST161 of Fig. 8 The processor 210 of the industrial machine 200 accesses the additional storage device 240 or the RAM 230 to confirm the values of each configuration variable 241.
[0121] In step ST162, processor 210 determines whether the operations corresponding to the value of each configuration variable 241 should be executed. For example, if the value of configuration variable 241 matches the specified value for that configuration variable 241, processor 210 determines that the operation should be performed. If it is determined that the operation should not be performed, processor 210 determines "No" in step ST162 and returns to step ST161. Conversely, if it is determined that the operation should be performed, processor 210 determines "Yes" in step ST162 and proceeds to step ST163.
[0122] In step ST163, processor 210 executes the processing according to the specified value. After completing the processing in step ST163, processor 210 returns to step ST161. As described above, processor 210 monitors the configuration variables 241 through the processing in Fig. 8 and performs the predetermined processing when the value of a configuration variable 241 reaches a predetermined value.
[0123] According to the control system 1 of the first embodiment, the control device 100 repeatedly reads (captures) the configuration variables 241 from the industrial machine 200. This allows the control device 100 to monitor the configuration variables of the industrial machine 200. By capturing the configuration variables 241, the control device 100 can use the configuration variables 241 as variables for the robot. When adding signals to conventional CNC industrial machines, the processing for the added signals must be included in the ladder logic program. However, end users of CNC industrial machines are generally unable to modify ladder logic programs. Therefore, end users must request that the industrial machine manufacturers modify the ladder logic program. Modifying the ladder logic program involves a significant amount of work.On the other hand, the configuration variables 241 can be referenced within the editing program without having to modify the ladder schedule program.
[0124] According to the control system 1 of the first embodiment, the control device 100 uses allocation information that stores a location or address specifying a memory area for a plurality of variable values. This enables the control device 100 to store a plurality of configuration variables 241 together.
[0125] According to the control system 1 of the first embodiment, the control device 100 performs a predetermined processing operation corresponding to a predetermined value when the configuration variable 241 detected by the industrial machine 200 matches the predetermined value. This enables the industrial machine 200 to operate the control device 100 and the robot 300 using the configuration variable 241.
[0126] According to the control system 1 of the first embodiment, the specified processing is the execution or termination of a robot program. Therefore, the industrial machine 200 in the control system 1 of the first embodiment can execute or terminate the robot program.
[0127] According to the control system 1 of the first embodiment, the control device 100 stops the robot 300 based on the value of the configuration variable 241, which indicates the occurrence of an alarm. Therefore, the control device 100 of the first embodiment can stop the robot 300 in cases such as the occurrence of an abnormality in the control device 100.
[0128] According to the control system 1 of the first embodiment, the control device 100 repeatedly detects command variables and transmits write requests to the industrial machine 200. This enables the control device 100 to rewrite the configuration variables 241 of the industrial machine 200 when the value of a command variable changes. Thus, the control device 100 can operate the industrial machine 200 using command variables.
[0129] According to the control system 1 of the first embodiment, the teaching device 400 modifies the values of the configuration variables 241. This enables the control system 1 of the first embodiment to manually modify the configuration variables 241. [Second embodiment]
[0130] In the second embodiment of control system 1, the control device 100, unlike in the first embodiment, converts the configuration variables 241 into input / output data (I / O data) and stores the data in an I / O memory area. In the second embodiment of control system 1, the command variables are I / O data, unlike in the first embodiment. The command variables are stored in the I / O memory area. The configuration of control system 1 in the second embodiment is similar to that of the first embodiment, so a description of it is omitted.
[0131] In the second embodiment, the additional storage device 140 and other components store the I / O memory information described later instead of the assignment information. Furthermore, in the second embodiment, the additional storage device 140 and other components store the second execution information described later instead of the first execution information.
[0132] The operation of the control system 1 in the second embodiment is described below with reference to the Fig. Sections 4 to 8, 11 and 13 describe the process. The details of the processing described in the following description of the operation are merely an example, and various processing methods capable of achieving similar results may be used appropriately. Fig. Figure 11 is a flowchart showing an example of how the processing is carried out by processor 210 of industrial machine 200. Processor 210 performs the tasks described in Fig. 11 processing operations shown, based on a program that is stored, for example, in the ROM 220 or in the additional storage device 240. Fig. Figure 13 is a flowchart showing an example of how processor 410 of the teaching device 400 performs the processing operations. Processor 410 performs the operations described in Fig. 13 processing operations are shown, based on a program that is stored, for example, in the ROM 420 or in the additional storage device 440.
[0133] In the second embodiment, the processor 110 of the control device 100 executes the commands in the Fig. 5, Fig. 7 and Fig. 11 processing operations are performed. For example, processor 110 performs the operations shown in the Fig. 5, Fig. 7 and Fig. The processes shown in Figure 11 are performed in parallel or simultaneously. In the second embodiment, the processor 210 of the industrial machine 200 performs the processes shown in Figure 11. Fig. 4 and Fig. The processing operations shown in the 8 are carried out similarly to the first embodiment. In the second embodiment, the processor 410 of the teaching device 400 performs the operations shown in the Fig. 6 and Fig. The description of the plants of the second embodiment, which are similar to those of the first embodiment, is omitted.
[0134] In the second embodiment, the processor 210 of the industrial machine 200 transfers in step ST125 the Fig. 4. The configuration variables 241 are stored as floating-point data. For example, the processor 210 converts the configuration variables 241 to floating-point data before transmission. Alternatively, the processor 210 transmits the configuration variables 241 already stored as floating-point data. The industrial machine 200 uses floating-point data such as 32-bit floating-point data or 64-bit double-precision floating-point data. In the case of double-precision floating-point data, the data consists of a total of 64 bits, comprising a 1-bit sign part, an 11-bit exponent part, and a 52-bit mantissa part, in that order starting with the first part.
[0135] Each configuration variable 241 is typically represented by 1 bit. By storing the value of each configuration variable 241 in the individual bits of the floating-point data, 64 configuration variables 241, each with 1 bit, can be stored in double-precision floating-point data. The floating-point data with n bits can store n configuration variables 241, each with 1 bit. Note that n is a positive integer.
[0136] The Industrial Machine 200 can also use configuration variables 241 with 2 or more bits each. In the case of configuration variables 241 with m bits, the floating-point data uses m bits to store the value of configuration variable 241. Note that m is an integer of 2 or greater. When using configuration variables 241 with 2 or more bits each, the floating-point data with n bits can store the values of multiple configuration variables 241 up to a total of n bits.
[0137] The auxiliary storage device 140 of the control device 100 and the auxiliary storage device 240 of the industrial machine 200 store bit information. The bit information specifies which bit of the floating-point data stores the value of which configuration variable 241.
[0138] The processor 210 of the industrial machine 200 uses the bit information to convert the configuration variables 241 into floating-point data. Alternatively, the processor 210 uses the bit information to store the configuration variables 241 in floating-point data format in the auxiliary storage device 240 or in RAM 230.
[0139] In the second embodiment, the processor 110 of the control device 100, in the case of a "Yes" finding, goes into step ST106 of the Fig. 11 to step ST201.
[0140] In step ST201, processor 110 converts the configuration variables 241 received in step ST106 into I / O data. The I / O data consists of a variety of coordinated binary values, such as "0" and "1", "ON" and "OFF", or "True" and "False". Therefore, the I / O data is comparable to an array of Boolean variables. Binary data can also be considered 1-bit binary data. Processor 110 converts the configuration variables 241 into I / O data. Two conversion methods (i) and (ii) for converting to I / O data are described below. (i) Conversion method 1
[0141] In conversion method 1, each bit of a binary representation variable is used as I / O. The received configuration variables 241 are floating-point data represented in binary format. Therefore, processor 110 uses the values of each bit of the floating-point data as I / O data without modification. For example, if the first four bits of the floating-point data are "0100", the first I / O data unit is "0", the second is "1", the third is "0", and the fourth is "0". (ii) Conversion method 2
[0142] Conversion method 2 consists of rounding the decimal value of configuration variable 241 to the nearest integer, extracting the absolute value of the integer, and converting the value to binary data for use as I / O data. For example, suppose the floating-point data is represented as the decimal number "-1234.567" before conversion. In this case, processor 110 rounds "-1234.567" including the decimal value to "-1234". Then, processor 110 calculates the absolute value. Here, the absolute value is "1234". Processor 110 also converts this absolute value to binary data of type integer. In the case of 16-bit binary data, the value converted to binary data might be, for example, "0000 0100 1101 0011". The Processor 110 uses each bit of this value as I / O data. With this value, the first I / O data unit is "0", the second "0", the third "0", the fourth "0", the fifth "0", the sixth "1", the seventh "0", and so on.
[0143] Since the configuration variables 241 are floating-point data, bit-level manipulation may not always be possible. In cases where only certain I / Os of the control device 100 are served by the processor 210, users employing conversion method 1 may have to calculate the floating-point data corresponding to the manipulated bits, which can be tedious. Conversion method 2 reduces this overhead and, in turn, results in a smaller amount of data being transmitted.
[0144] By performing the processing in step ST201, processor 110 acts as an example of an I / O conversion unit that converts the values of the variables captured by the acquisition unit into I / O data.
[0145] In step ST202, the processor acquires 110 I / O memory information. This I / O memory information contains details about I / O memory space 132. Specifically, it includes information indicating where within I / O memory space 132 the values of configuration variable 241 should be stored. For example, the I / O memory information stores the address within I / O memory space 132 at which the first converted I / O data should be stored, thus specifying where the values of configuration variable 241 should be stored. In a case where the address for storing the first I / O data is X, the address for storing the second I / O data is X+1. The I / O memory information may also include details indicating which configuration variable 241 is stored at each address. The I / O memory information is an example of mapping data.
[0146] In step ST203, processor 110 stores the I / O data converted in step ST201 at the addresses specified by the I / O memory information in I / O memory area 132. Consequently, I / O memory area 132 stores the configuration variables 241 as individual bits. After completing the processing in step ST203, processor 110 returns to step ST201. I / O memory area 132 is an example of a memory area for storing variable values. The I / O memory area 132, where the values of configuration variable 241 are stored, is an example of a memory area for storing variable values.
[0147] By carrying out the processing in Fig. 11. The processor 110 thus functions as an example of a data acquisition unit that repeatedly records the values of variables of the industrial machine.
[0148] In the second embodiment, the processor uses 110 during the in Fig. The processing operations shown in section 5 use the configuration variables 241 stored in the I / O memory area 132 instead of the monitoring variables.
[0149] In the second embodiment, the processor 110 uses second execution information instead of first execution information during the processing of steps ST134 to ST136. The second execution information stores, for example, which processing operations are to be performed for which values of addresses in I / O memory space 132. The second execution information associates and stores, for example, information about the addresses in I / O memory space 132, the corresponding values, and the processing operations to be performed. The second execution information specifies that a predetermined processing operation is executed when the value of a specific address in I / O memory space 132 reaches the value associated with that address. The second execution information can also store which processing operations are to be performed when the respective values of a multitude of addresses in I / O memory space 132 reach their respective predefined values.For example, the second execution information can store that a predefined processing action should be carried out if the value at address Y1 is equal to 1 and the value at address Y2 is equal to 0.
[0150] In the second embodiment, for example in step ST135, processor 110 determines, in a case where the value stored at address 132 in I / O memory space matches the value assigned in the second execution information, that the processing associated with that address and the value in the second execution information should be executed. Processor 110 thus monitors the values stored at the addresses of I / O memory space 132 and executes predetermined processing when the value reaches a predetermined level. As already described, processor 110 outputs the values of configuration variable 241 through the... Fig. The processing shown in section 11 is transferred to the I / O memory area 132. Therefore, the processor 110 monitors the configuration variables 241 through the in Fig. 11 and Fig. 5 processing operations shown and performs a predetermined processing operation when the value of the configuration variable 241 reaches the predetermined value.
[0151] In the second embodiment, the modification request instructs the control device 100 to modify the value of the configuration variable 241 stored in the I / O memory area 132 according to the modification information. The processor 110 of the control device 100 modifies the value of the configuration variable 241 stored in the I / O memory area 132 according to the modification information contained in the received modification request.
[0152] An example of a variable screen in the second embodiment is given with reference to Fig. 12 described. Fig. Table 12 shows an example of a variable screen SC1b displayed on the display device 470. Variable screen SC1b displays the configuration variables 241 that were converted using conversion method (ii). Variable screen SC1b includes, for example, an area AR2.
[0153] The AR2 range displays the values of individual bits of a variable in binary representation. The variable shown in the AR2 range in binary representation is the variable converted using conversion method 2 (ii) for the data [1]. The data [1] is used as a range for setting individual bits. The data [1] corresponds to the value 21.123 when viewed as a 32-bit floating-point number. When the value "21.123" is converted using conversion method 2 (ii), the resulting value is "21" in decimal and "0000 0000 0001 0101" in binary. In this case, only the lower 16 bits of the binary representation are shown. The upper 16 bits are all zeros.
[0154] Each bit displayed in area AR2 can be modified using input device 460 or the like. When such an operation is performed, processor 410 determines in step ST142 of Fig. 6. That the value of the variable is to be modified. The modification information includes the details of the value modification resulting from the operation.
[0155] In the second embodiment, the processor 110 modifies the configuration variables 241 stored in the I / O memory area 132 instead of the monitoring variables.
[0156] In the second embodiment, in step ST135, the processor 110 determines, in a case where the value of the configuration variable 241 stored in the I / O memory area 132 matches a predefined value, that the processing corresponding to the value of the configuration variable 241 should be executed.
[0157] The teaching device 400 is capable of displaying a screen (hereinafter referred to as the "edit screen") for checking and editing the robot programs. The edit screen and the associated processing functions are based on Fig. 13 described. For example, the processor 410 of the teaching device 400 starts in response to an instruction to display the editing screen described in Fig. 13 processing methods shown.
[0158] In step ST211 of Fig. In step 13, the processor 410 of the teaching device 400 waits for a target robot program to be specified for editing. The operator of the teaching device 400 performs an operation to specify the robot program to be edited. Upon receiving the specification of the robot program to be edited, the processor 410 determines "Yes" in step ST211 and proceeds to step ST212.
[0159] In step ST212, the processor 410 of the teaching device 400 generates an image that corresponds to the editing screen SC2, as shown in Fig. Figure 14 is shown. The processor 410 then instructs the teaching device 400 to display the generated image. In response to the display command, the processor 410 displays the editing screen SC2 on the display device 470 to the teaching device 400.
[0160] Fig. Figure 14 is a diagram showing an example of the SC2 editing screen. The SC2 editing screen is used for editing robot programs. For example, the SC2 editing screen includes an area AR10 and an area AR20.
[0161] The AR10 area displays the target program for editing. The AR10 area shows the program with one or more IM1 images. Each IM1 image represents a command within the program. The IM1 images provide details of the commands, for example, through pictograms. The AR10 area can also represent each command using text or other characters. The AR10 area can be used to add, modify, or delete commands.
[0162] The AR10 area allows you to specify the target command for editing. For example, each image IM1 acts as a button. When an image IM1 is clicked, the command corresponding to that image becomes the target for editing. If no command is specified as the target for editing, the first command, for example, is automatically set as the target.
[0163] Area AR20 is used to edit the target command. Area AR20 displays the target command for editing. Area AR20 includes, for example, areas AR21 through AR25. Depending on the target command being edited, area AR20 may include different areas than AR21 through AR25.
[0164] The AR21 area is where the target command is displayed for editing. Fig. 14 illustrates “DO [1]” as the command.
[0165] “DO [1]” is an output command. The part “1” of the command is a number that is displayed in the AR22 area.
[0166] Area AR22 is used to specify configuration variable 241, which is intended for operations such as value modifications. The target configuration variable 241 can be specified in area AR22 by entering a number, address, or variable name that identifies configuration variable 241. Hereinafter, the configuration variable 241, specified as the target for operations such as value modifications, is referred to as the "specified variable." Area AR22 displays digits, addresses, or variable names that identify the specified configuration variable 241.
[0167] The AR23 area is used to modify the value of the specified variable. The value of the specified variable can be modified by entering a value into the AR23 area. The AR23 area displays the current value of the specified variable.
[0168] Area AR24 displays the current value of data that will be modified when the command displayed in area AR21 is executed (hereinafter referred to as "modification data"). This modification data could be, for example, a command variable. Accordingly, the memory area of robot 300, for instance, stores the modification data.
[0169] The AR25 area displays the value of the modification data after the command has been executed.
[0170] In step ST213, processor 410 determines whether the target instruction should be modified for editing. For example, if an operation is performed to instruct a modification of the target instruction for editing, processor 410 determines that the target instruction should be modified for editing. In a case where it is not determined that the target instruction should be modified for editing, processor 410 determines "No" in step ST213 and proceeds to step ST214.
[0171] In step ST214, processor 410 determines whether an operation to specify a particular variable has been performed. For example, entering data into the area AR22 described above is an operation to specify a particular variable. If an operation to specify a particular variable has not been performed, processor 410 determines "No" in step ST214 and proceeds to step ST215.
[0172] In step ST215, the 410 processor determines whether an operation to modify the value of the specified variable has been executed. For example, modifying a value within the range AR23 described above is an operation to modify the value. If an operation ordering a modification of the specified variable's value has not been executed, the 410 processor determines "No" in step ST215 and returns to step ST214. The 410 processor thus remains in a standby state, repeating steps ST213 through ST215 until it determines that the target instruction should be modified to edit, or that an operation to specify a particular variable is being executed, or that an operation to modify the value of a particular variable is being executed.
[0173] If, while in standby mode during the repetition of steps ST213 to ST215, the 410 processor determines that the target instruction needs to be modified for editing, it selects "Yes" in step ST213 and returns to step ST212. During processing in step ST212, the 410 processor updates the display of the editing screen SC1 to a screen corresponding to the modified target instruction for editing.
[0174] If an operation to specify a particular variable is performed while you are in the standby state of repeating steps ST213 to ST215, processor 410 determines "Yes" in step ST214 and proceeds to step ST216.
[0175] In step ST216, the processor 410 captures the value of the specified variable from the RAM 130 of the control device 100 or another source. In step ST217, the processor 410 records the current value of the modification data.
[0176] In step ST218, the processor 410 calculates the value of the modification data after execution of the target instruction to edit, using the current value of the specified variable.
[0177] In step ST219, processor 410 displays the value acquired in step ST217 in area AR24. Processor 410 also displays the value calculated in step ST218 in area AR25. After completing the processing in step ST219, processor 410 returns to step ST212.
[0178] If an operation to instruct a modification of the value of the specified variable was performed during the standby state of repeating steps ST213 to ST215, the processor 410 determines "Yes" in step ST215 and proceeds to step ST220.
[0179] In step ST220, processor 410 generates a modification request. The modification request includes modification information that specifies the details of the variable modification. The modification request is information that instructs the control device 100 to modify the value of configuration variable 241, stored in I / O memory area 132, according to the modification information. The modification information includes the number or address that identifies the specified variable and the modified value of the specified variable. The modified value is the value instructed by the operation to modify the specified variable. The modification request is the same as the modification request in step ST144 of Fig. 6. After processor 410 has generated the modification request, it instructs communication interface 450 to transmit the modification request to industrial machine 200. Upon receiving this transmission instruction, communication interface 450 transmits the modification request to industrial machine 200. The transmitted modification request is received via communication interface 250 of industrial machine 200.
[0180] By performing the processing operations in steps ST215 and ST220, the processor 410 acts as an example of a modification unit that modifies the value of the variable based on editing the robot program.
[0181] In step ST221, after the execution of the target instruction to edit, processor 410 calculates the value of the modification data using the modified value of the specified variable.
[0182] In step ST222, processor 410 displays the value calculated in step ST221 in the AR25 range. After the processing in step ST222 is complete, processor 410 returns to step ST214.
[0183] By carrying out the in Fig. In the 13 processes shown, the processor 410 thus functions as an example of an editing unit that edits the robot program to control the robot.
[0184] In the second embodiment, if the result in step ST103 is "No", the processor 110 of the control device 100 goes to step ST204.
[0185] In step ST204, processor 110 retrieves the value from RAM 130 that specifies the content to be written to configuration variable 241. This value could be, for example, an instruction variable in the format of binary I / O data. This value could be, for instance, a value that was converted to I / O data using the same method as in step ST201. Processor 110 converts the instruction variable back into I / O data using the same method as in step ST201 and stores the data in memory area 132.
[0186] In step ST205, processor 110 converts the value of binary I / O data acquired in step ST204 into the data format prior to I / O data conversion. The data format prior to conversion is the same format as configuration variable 241. For example, the data format prior to conversion is a decimal number.
[0187] The data format of configuration variable 241 is typically not I / O data. Therefore, by performing the processing in step ST205, processor 110 acts as an example of a conversion unit that converts the value captured by the robot variable acquisition unit into a data format other than I / O data.
[0188] In step ST206, processor 110 generates a write request. As in the first embodiment, the write request includes the target information and the instruction information. However, the write content specified by the instruction information refers to the value converted in step ST205. After processor 110 generates the write request, it instructs communication interface 160 to transmit the write request to industrial machine 200. Upon receiving this transmission instruction, communication interface 160 transmits the write request to industrial machine 200. The transmitted write request is received via communication interface 250 of industrial machine 200. After executing the processing in step ST206, processor 110 returns to step ST201.
[0189] The processor 210 rewrites the configuration variable 241 according to the write request, as in the first embodiment.
[0190] The control system 1 of the second embodiment achieves the same effects as the first embodiment.
[0191] According to the control system 1 of the second embodiment, the control device 100 converts the configuration variable 241 into I / O data. By preparing signals that are pre-assigned to specific purposes, such as the external execution or stopping of a robot program, operations can be performed with 1-bit data, which reduces the amount of data and improves the readability of the system. The use of 1-bit data reduces the scope of data communication compared to the transmission of numerical data.
[0192] According to the control system 1 of the second embodiment, the control device 100 uses each bit of a variable in a binary representation as I / O. This allows the control device 100 to contain a multitude of settings in a single numerical value.
[0193] According to the control system 1 of the second embodiment, the control device 100 includes the I / O memory area 132. Thus, the control device 100 can store instruction variables as I / O data.
[0194] According to the control system 1 of the second embodiment, the teaching device 400 modifies the value of the configuration variable 241 based on the editing of the robot program. This enables the control system 1 of the second embodiment to edit robot programs that include changes to the value of the configuration variable 241.
[0195] The embodiments described above can also include the following variants. The control system of the embodiment can include a display device without the capability to create robot programs, instead of the teaching device 400.
[0196] In the above embodiments, some or all of the processing operations performed by the teaching device 400 can be performed by the control device 100 or the robot 300. The control device of the embodiment can include some or all of the configurations provided in the teaching device 400.
[0197] The 110, 210 and 410 processors can implement some or all of the processing operations implemented by programs in the embodiments using hardware circuit configurations.
[0198] The programs implementing the processing of the embodiments can be transferred in a state stored on a non-volatile storage medium within the device. However, the device can also be transferred without the stored programs. The programs can be transferred separately and written to the device. Such program transfer can be accomplished, for example, by recording the programs on a removable, non-volatile storage medium or by downloading them via the internet or LAN.
[0199] Although the embodiments of the present invention have been described above, these embodiments are presented merely as examples and do not limit the scope of the invention. The embodiments of the present invention can be implemented in various forms without deviating from the essence of the invention. Explanation of reference symbols 1 Control system 100 Control device 110, 210, 410 processor 111 Assignment unit 112 Data conversion unit 113 Starting unit 114 Stop unit 115 Target Unit 120, 220, 420 ROM 130, 230, 430 RAM 131 Memory area 132 I / O memory area 133 Starting area 134 Alarm area 140, 240, 440 Additional storage device 150 control interface 160, 250, 450 communication interface 170, 280, 480 Bus 200 industrial machines 211 Industrial starting unit 241 configuration variables 242 Industrial Machinery Program 243 ladder program 260, 460 Input device 261 Start button 270, 470 Display device 300 robots 400 teaching device QUOTES INCLUDED IN THE DESCRIPTION
[0000] This list of documents cited by the applicant was automatically generated and is included solely for the reader's convenience. The list is not part of the German patent or utility model application. The DPMA accepts no liability for any errors or omissions. Cited patent literature
[0000] WO 2020 / 194752
[0003]
Claims
[1] A robot control device comprising: a data acquisition unit configured to repeatedly acquire a value of a variable from an industrial machine; a storage unit configured to write the value of the variable captured by the capture unit to a memory area that stores the value of the variable; and an allocation storage unit configured to store allocation data, that specify a location or address in the memory area where the variable should be written. [2] The robot control device according to claim 1, further comprising: an I / O conversion unit configured to convert the variable value captured by the acquisition unit into I / O data, wherein The storage unit writes the value of the variables converted by the I / O conversion unit into the memory area, and the memory area is located within an I / O memory area. [3] The robot control device according to claim 2, wherein the acquisition unit is configured to repeatedly acquire values of a large number of variables, the allocation memory unit is configured to store the allocation data, which specifies either the location or the address in the memory area that stores the values of the multitude of variables, and The storage unit writes the values of the multitude of variables into the memory area based on the allocation data. [4] The robot control device according to claim 1, further comprising an execution unit configured to perform a predetermined processing in accordance with a predetermined value in a case where the value of the variables written to the memory area matches a predetermined value. [5] The robot control device according to claim 4, wherein the predetermined processing is the execution or termination of a robot program. [6] The robot control device according to claim 4, wherein the variable indicates the occurrence of an alarm, and The predetermined processing is the scheduling of the robot. [7] A robot control device comprising: a robot variable acquisition unit configured to acquire a value stored in a memory area; an allocation storage unit configured to store allocation data, specifying a variable of an industrial machine that stores the value captured by the robot variable acquisition unit; and a transmission unit configured to periodically and repeatedly transmit the value captured by the robot variable acquisition unit and variable specification data that indicate the industrial machine variable into which the value is to be written. [8] The robot control device according to claim 7, wherein the memory area is an I / O memory area, the value stored in the memory area is I / O data, the robot variable acquisition unit captures the I / O data, The robot control device further includes a conversion unit configured to convert the value acquired by the robot variable acquisition unit into a data format other than the I / O data, and The transmission unit transfers the value converted by the conversion unit to the industrial machine. [9] A robot control system comprising a robot control device and a display device, the robot control device comprises the following: a data acquisition unit configured to repeatedly acquire a value of a variable from an industrial machine; a storage unit configured to write the value of the variable captured by the capture unit to a memory area that stores the value of the variable; and an allocation storage unit configured to store allocation data, which specify a location or address in the memory area where the variable should be written, wherein the display device includes a display unit configured to display the value of the variable. [10] The robot control system according to claim 9, wherein the display device further comprises a modification unit configured to modify the value of the variable. [11] The robot control system according to claim 9, wherein the display device further comprises: an editing unit configured to edit a robot program for controlling a robot; and a modification unit configured to modify the value of the variable in accordance with editing the robot program.
Citation Information
Patent Citations
Numerical control device and numerical control method
WO2020194752A1