Robot control device and robot control system
By introducing an acquisition unit, a storage unit, and a distribution storage unit into the robot control device, the problem of low communication efficiency between the robot and CNC industrial machinery is solved, enabling the robot to efficiently read and write variable data of CNC industrial machinery, and supporting status monitoring and synchronous communication.
Patent Information
- Application Number
- CN202380095971.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-03-29
- Publication Date
- 2025-10-31
AI Technical Summary
In existing technologies, synchronous communication between robots and CNC industrial machinery requires a large amount of data transmission, which slows down the communication cycle and makes it difficult for robots to perform arbitrary timed monitoring and status access of CNC industrial machinery.
The robot control unit is equipped with an acquisition unit, a storage unit, and an allocation storage unit. The allocation storage unit stores the location or address of variables and periodically reads or writes the setting variables of the industrial machinery as variable data for the robot.
This enables the robot control device to periodically read or write variable data from industrial machinery, improving communication efficiency and supporting synchronous communication and status monitoring between the robot and CNC industrial machinery.
Smart Images

Figure CN120883155A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to a robot control device and a robot control system. Background Technology
[0002] There is a system that can control robots from industrial machinery such as machine tools. This system allows communication between the robot and the industrial machinery, enabling mutual status monitoring and requests.
[0003] In addition, the robot program's commands have the function of communicating with CNC (computerized numerical control) industrial machinery and accessing CNC-set variables. By obtaining or writing set variables in these commands, the robot or robot control device and the CNC industrial machinery can mutually confirm and request each other's status.
[0004] Existing technical documents
[0005] Patent documents
[0006] Patent Document 1: International Publication No. 2020 / 194752 Summary of the Invention
[0007] The problem that the invention aims to solve
[0008] Accessing CNC-configured variables requires the robot program to execute access commands. Therefore, the CNC machine cannot request access from the robot or robot controller at any given time; it must wait for the robot or robot controller to execute the access command. Furthermore, for the same reason, it is difficult for the robot or robot controller and the machine to monitor each other's status. To monitor both the robot and the CNC machine's status at any given time, synchronization between them can be considered. Synchronizing the robot and CNC machine requires multiple signals. However, CNC variables are typically 8-byte or 16-byte variables. Therefore, if the robot or robot controller needs to retrieve a variable to monitor a specific state of the CNC machine, the amount of communication data becomes enormous, and the communication cycle slows down.
[0009] The technical problem to be solved by the present invention is to provide a robot control device and a robot control system that can periodically read (acquire) or write the setting variables of industrial machinery as variable data for the robot.
[0010] Methods for solving problems
[0011] The robot control device of this embodiment includes an acquisition unit, a storage unit, and an allocation storage unit. The acquisition unit repeatedly acquires the values of variables from industrial machinery. The storage unit writes the values of the variables acquired by the acquisition unit into a storage area that stores the values of the variables. The allocation storage unit stores allocation data indicating the location or address of the storage area where the variables are written.
[0012] Invention Effects
[0013] This disclosure enables robot control devices to read (acquire) or write variables of industrial machinery, using them in the same way as the robot's variable data. Attached Figure Description
[0014] Figure 1 This is a block diagram illustrating an example of the main structural components of a control system and its constituent elements in an embodiment.
[0015] Figure 2 This is a block diagram illustrating an example of the main functions and main structure of the control system in an implementation method.
[0016] Figure 3 It means Figure 1 A flowchart illustrating an example of the processing performed by the processor of the control device in the first embodiment.
[0017] Figure 4 It means Figure 1 A flowchart illustrating an example of the processing performed by the processor of the industrial machinery in the first and second embodiments.
[0018] Figure 5 It means Figure 1 A flowchart illustrating an example of the processing performed by the processor of the control device in the first and second embodiments.
[0019] Figure 6 It means Figure 1 A flowchart illustrating an example of the processing performed by the processor of the teaching device in the first and second embodiments.
[0020] Figure 7 It means Figure 1 A flowchart illustrating an example of the processing performed by the processor of the control device in the first and second embodiments.
[0021] Figure 8 It means Figure 1 A flowchart illustrating an example of the processing performed by the processor of the industrial machinery in the first and second embodiments.
[0022] Figure 9 It means in Figure 1An example of a variable screen displayed on the display device of a teaching device.
[0023] Figure 10 This is a block diagram illustrating an example of the operation of the control device 100 and the industrial machinery 200.
[0024] Figure 11 It means Figure 1 A flowchart illustrating an example of the processing performed by the processor of the control device in the second embodiment.
[0025] Figure 12 It means in Figure 1 An example of a variable screen displayed on the display device of a teaching device.
[0026] Figure 13 It means Figure 1 A flowchart illustrating an example of the processing performed by the processor of the teaching device in the second embodiment.
[0027] Figure 14 It means in Figure 1 An example of an editing screen displayed on the display device of a teaching device. Detailed Implementation
[0028] Hereinafter, the control system of some embodiments of the present invention will be described using the accompanying drawings. Furthermore, in the following description of the embodiments, for illustrative purposes, the components are sometimes omitted to indicate their arrangement. Also, in the accompanying drawings and this specification, the same reference numerals denote the same elements.
[0029] [First Embodiment]
[0030] use Figure 1 and Figure 2 The control system 1 of the implementation method will be described.
[0031] Figure 1 This is a block diagram illustrating an example of the main component structure of the control system 1 and the constituent elements included in the control system 1 according to the implementation method. Figure 2 This is a block diagram illustrating an example of the main functions and main structure of the control system 1 in the implementation method.
[0032] Control system 1 is a system for controlling the robot 300, etc. As an example, control system 1 includes a control device 100, industrial machinery 200, robot 300, and teaching pendant 400. Control system 1 is an example of a robot control system.
[0033] The control device 100 is a device for controlling the robot 300. As an example, the control device 100 includes a processor 110, a ROM (read-only memory) 120, a RAM (random-access memory) 130, an auxiliary storage device 140, a control interface 150, and a communication interface 160. Furthermore, a bus 170 and the like connect these components. The control device 100 is an example of a robot control device.
[0034] The processor 110 is the central part of the computer that performs calculations and control processing required for the operation of the control device 100, and performs various calculations and processing. The processor 110 may be, for example, a CPU (central processing unit), MPU (microprocessor unit), SoC (system on a chip), DSP (digital signal processor), GPU (graphics processing unit), ASIC (application specific integrated circuit), PLD (programmable logic device), or FPGA (field-programmable gate array). Alternatively, the processor 110 may be a combination of several of these. Furthermore, the processor 110 may also be a processor that combines these components with hardware accelerators. The processor 110 controls each part to implement various functions of the control device 100 according to programs such as firmware, system software, and application software stored in the ROM 120 or auxiliary storage device 140. Furthermore, the processor 110 executes the processing described later according to the program. Additionally, part or all of the program may be integrated into the circuitry of the processor 110.
[0035] As an example, the processor 110 performs the functions of the allocation unit 111, data conversion unit 112, startup unit 113, stop unit 114, and object unit 115 by executing the above-mentioned program.
[0036] The allocation unit 111 determines where each set variable 241 is stored.
[0037] The data conversion unit 112 converts the setting variable 241 into I / O data. The setting variable 241 will be described later.
[0038] Start-up unit 113 starts robot 300.
[0039] Stop the robot 300 at stop unit 114.
[0040] The object section 115 determines which setting variable 241 is the object to which the value is to be stored.
[0041] ROM120 and RAM130 are the main storage devices of a computer with processor 110 as the central hub.
[0042] ROM 120 is a non-volatile memory specifically used for reading data. ROM 120 stores, for example, firmware from the aforementioned program. Furthermore, ROM 120 also stores data used by the processor 110 during various processing operations. Additionally, ROM 120 can be composed of multiple memory modules.
[0043] RAM130 is memory used for reading and writing data. RAM130 is used as a working area for storing data temporarily used during various processing operations performed by the processor 110. RAM130 is typically volatile memory. In addition, RAM130 can also be composed of multiple memory modules.
[0044] RAM 130 includes, for example, two storage areas: a storage area 131 and an I / O memory area 132. Storage area 131 is used to store data other than I / O data. I / O memory area 132 is used to store I / O data; it is a storage area capable of storing I / O data. I / O data will be described later. Furthermore, storage area 131 and I / O memory area 132 may physically reside on the same memory or on physically different memory locations. However, in the first embodiment, RAM 130 may not include I / O memory area 132.
[0045] Alternatively, a storage device other than RAM 130, such as RAM 130, ROM 120, or auxiliary storage device 140, may also have an I / O memory area 132.
[0046] In addition, RAM 130 is allocated a startup area 133 and an alarm area 134. The startup area 133 and the alarm area 134 will be described later.
[0047] Auxiliary storage device 140 is an auxiliary storage device for a computer with processor 110 as its central processing unit. Auxiliary storage device 140 may be, for example, EEPROM (electrically erasable programmable read-only memory), HDD (hard disk drive), or flash memory. Auxiliary storage device 140 stores, for example, system software and application software. Furthermore, auxiliary storage device 140 stores data used by processor 110 during various processing operations, data generated by processor 110's processing, and various setting values.
[0048] Additionally, auxiliary storage device 140 stores parameter information, allocation information (described later), and first execution information. The allocation information and first execution information may also be stored outside the control device 100.
[0049] The parameter information may include, for example, at least one of the following: settings related to the acquisition of setting variables 241 from industrial machinery 200, and settings related to the writing of setting variables 241 to industrial machinery 200. The values of each parameter setting may be set by, for example, the user, manager, or designer of the control system 1. Each parameter setting may also have a default value. The values of each parameter setting may be changed individually or may not be changed. Furthermore, the auxiliary storage device 140 may store multiple parameter information items.
[0050] The control interface is the interface used by the control device 100 to communicate with the robot 300. The control device 100 communicates with the robot 300 via the control interface 150 to control the robot 300.
[0051] Communication interface 160 is an interface for communication between control device 100 and industrial machinery 200, teaching pendant 400, etc. Communication interface 160 may communicate via a network, for example. Alternatively, communication interface 160 may communicate without a network. The network may be a communication network including a LAN (local area network) or the Internet. Control device 100 communicates with industrial machinery 200 and teaching pendant 400 via communication interface 160.
[0052] Bus 170 includes a control bus, an address bus, and a data bus, which transmit signals received and transmitted by various parts of the control device 100.
[0053] Industrial machinery 200 may be, for example, a machine tool or peripheral equipment of a machine tool. Alternatively, industrial machinery 200 may be other types of machinery. The control method of industrial machinery 200 is CNC. Alternatively, the control method of industrial machinery 200 may be NC or other methods. As an example, industrial machinery 200 includes a processor 210, ROM 220, RAM 230, auxiliary storage device 240, communication interface 250, input device 260, and display device 270. Furthermore, a bus 280 and the like connect these components.
[0054] Processor 210 is the central part of the computer that performs calculations and control processing required for the operation of industrial machinery 200, and performs various calculations and processing. Processor 210 may be, for example, a CPU, MPU, SoC, DSP, GPU, ASIC, PLD, or FPGA. Alternatively, processor 210 may be a combination of multiple of these. Furthermore, processor 210 may also be a processor that combines these components with hardware accelerators. Processor 210 controls each part to realize various functions of industrial machinery 200 according to programs such as firmware, system software, and application software stored in ROM 220 or auxiliary storage device 240. In addition, processor 210 executes the processing described later according to the program. Furthermore, part or all of the program may be integrated into the circuitry of processor 210.
[0055] ROM220 and RAM230 are the main storage devices of a computer with processor 210 as the central hub.
[0056] ROM 220 is a non-volatile memory specifically used for reading data. ROM 220 stores, for example, firmware from the aforementioned program. Additionally, ROM 220 also stores data used by the processor 210 during various processing operations.
[0057] RAM230 is memory used for reading and writing data. RAM230 is used as a working area for temporarily storing data used by the processor 210 during various processing operations. RAM230 is typically volatile memory.
[0058] Auxiliary storage device 240 is an auxiliary storage device for a computer with processor 210 as its central processing unit. Auxiliary storage device 240 may be, for example, EEPROM, HDD, or flash memory. Auxiliary storage device 240 stores, for example, system software and application software from the aforementioned programs. Furthermore, auxiliary storage device 240 stores data used by processor 210 during various processing operations, data generated by processor 210's processing, and various setting values.
[0059] Auxiliary storage device 240 or RAM 230, etc., stores setting variables 241. Setting variables 241 allow users of the industrial machine 200 to change their values. Setting variables 241 determine various settings of the industrial machine 200 or control system 1. Setting variables 241 operate, for example, like global variables or external variables. Furthermore, the auxiliary storage device 240 or RAM 230, etc., can store multiple setting variables 241. Additionally, a single setting variable 241 can contain multiple values. In this case, each value individually determines the setting. Furthermore, in... Figure 1 In this example, the variable to be stored in the auxiliary storage device 240 is the set variable 241.
[0060] Furthermore, the aforementioned programs include, for example, industrial machinery program 242 and ladder program 243. Additionally, in Figure 1 As an example, the industrial machine program 242 and the ladder program 243 are recorded as programs stored in the auxiliary storage device 240.
[0061] Industrial machinery program 242 is, for example, a program for processing industrial machinery 200, generated by the end user. Ladder program 245, for example, performs processing for cooperating with external equipment in order to operate industrial machinery 200.
[0062] Communication interface 250 is an interface used for communication between industrial machinery 200 and control device 100, etc. Communication interface 250 communicates, for example, via the aforementioned network. Alternatively, communication interface 250 may communicate without a network. Control device 100 communicates with other control devices via communication interface 250.
[0063] Input device 260 accepts operations performed by the operator of industrial machinery 200. Input device 260 may be, for example, a keyboard, keypad, touchpad, mouse, or controller. Alternatively, input device 260 may also be a device for voice input.
[0064] Display device 270 displays a screen for notifying operators of industrial machinery 200 of various information. Display device 270 is, for example, a liquid crystal display (LCD) or an organic EL display. Alternatively, a touch panel can be used as both input device 260 and display device 270. That is, the display panel of the touch panel can be used as display device 270, and the touch-based input indicator of the touch panel can be used as input device 260.
[0065] Bus 280 includes a control bus, an address bus, and a data bus, which transmit signals sent and received by various parts of the industrial machinery 200.
[0066] Robot 300 may be, for example, a robotic hand or robotic arm, or a robot equipped with such a hand or arm. Robot 300 may be, for example, a multi-joint robot. As an example, robot 300 includes one or more actuators. Robot 300 may also be other types of robots. Additionally, robot 300 may have a built-in control device 100.
[0067] The teaching pendant 400 is a device for generating robot programs. The robot program can be created using any of the following methods: online teaching, offline teaching, direct teaching, or other program creation methods. The teaching pendant 400 may be, for example, a teach pendant capable of online teaching. The teaching pendant 400 may also be, for example, a PC (personal computer) or similar device that executes offline teaching software. Furthermore, the control device 100 may possess some or all of the functions of the teaching pendant 400. Additionally, the robot 300 may also possess some or all of the functions of the teaching pendant 400. As an example, the teaching pendant 400 includes a processor 410, a ROM 420, a RAM 430, an auxiliary storage device 440, a communication interface 450, an input device 460, and a display device 470. Moreover, a bus 480 or the like connects these components. Additionally, the teaching pendant 400 may be an example of a display device.
[0068] The processor 410 is the central part of the computer that performs calculations and control processing required for the operation of the teaching pendant 400, and performs various calculations and processing. The processor 410 may be, for example, a CPU, MPU, SoC, DSP, GPU, ASIC, PLD, or FPGA. Alternatively, the processor 410 may be a combination of multiple of these. Furthermore, the processor 410 may also incorporate hardware accelerators. The processor 410 controls each component to implement various functions of the teaching pendant 400 according to programs such as firmware, system software, and application software stored in the ROM 420 or auxiliary storage device 440. Additionally, the processor 410 executes the processing described later according to the program. Furthermore, part or all of the program may be integrated into the circuitry of the processor 410.
[0069] ROM420 and RAM430 are the main storage devices of a computer with processor 410 as the central hub.
[0070] ROM 420 is a non-volatile memory specifically used for reading data. ROM 420 stores, for example, firmware from the aforementioned program. Additionally, ROM 420 also stores data used by the processor 410 during various processing operations.
[0071] RAM430 is memory used for reading and writing data. RAM430 is used as a working area for temporarily storing data used by the processor 410 during various processing operations. RAM430 is typically volatile memory.
[0072] Auxiliary storage device 440 is an auxiliary storage device for a computer with processor 410 as its central processing unit. Auxiliary storage device 440 may be, for example, EEPROM, HDD, or flash memory. Auxiliary storage device 440 stores, for example, system software and application software from the aforementioned programs. Furthermore, auxiliary storage device 440 stores data used by processor 410 during various processing operations, data generated by processor 410's processing, and various setting values.
[0073] The communication interface 450 is an interface for communication between the teaching pendant 400 and the control device 100, etc. The communication interface 450 may communicate via, for example, the aforementioned network. Alternatively, the communication interface 450 may communicate without a network. The teaching pendant 400 communicates with the control device 100, etc., via the communication interface 450.
[0074] Input device 460 accepts operations from the operator of teaching device 400. Input device 460 may be, for example, a keyboard, keypad, touchpad, mouse, or controller. Alternatively, input device 460 may also be a device for voice input.
[0075] Display device 470 displays a screen for notifying the operator of teaching device 400 of various information. Display device 470 is, for example, a liquid crystal display or an organic EL display. Alternatively, a touch panel can be used as both input device 460 and display device 470. That is, the display panel of the touch panel can be used as display device 470, and the touch-based input indicator of the touch panel can be used as input device 460.
[0076] Bus 480 includes a control bus, an address bus, and a data bus, which transmit signals sent and received by various parts of the teaching pendant 400.
[0077] The following is based on Figures 3-8 The operation of the control system 1 of the first embodiment will be described. Furthermore, the processing described below is just one example; various processing methods that can achieve the same result can be appropriately utilized. Figure 3 , Figure 5 and Figure 7 This is a flowchart illustrating an example of processing performed by the processor 110 of the control device 100. The processor 110 executes, for example, based on a program stored in the ROM 120 or auxiliary storage device 140, etc. Figure 3 , Figure 5 and Figure 7 The processing. Figure 4 and Figure 8 This is a flowchart illustrating an example of processing performed by the processor 210 of industrial machinery 200. The processor 210 executes, for example, based on a program stored in ROM 220 or auxiliary storage device 240, etc. Figure 4 The processing. Figure 6 This is a flowchart illustrating an example of the processing performed by the processor 410 of the teaching pendant 400. The processor 410 executes, for example, a program stored in the ROM 420 or auxiliary storage device 440. Figure 6 The processing.
[0078] The processor 110 of the control device 100 executes, for example, in parallel or concurrent manner. Figure 3 , Figure 5 as well as Figure 7 The processing.
[0079] The processor 210 of the industrial machine 200 executes, for example, in parallel or concurrent manner. Figure 4 and Figure 8 The processing.
[0080] exist Figure 3 In step ST101, the processor 110 of the control device 100 determines whether to acquire parameter information. For example, the processor 110 determines that parameter information is acquired every predetermined time interval TP. Alternatively, the processor 110 determines that parameter information is acquired after the current time becomes a predetermined time CT. Or, the processor 110 determines that parameter information is acquired upon receiving an input instructing it to acquire parameter information. The input instructing the acquisition of parameter information is, for example, input from a program executed by the control device 100. Alternatively, the input instructing the acquisition of parameter information may also be an input from outside the control device 100.
[0081] Furthermore, when multiple parameter information is available, the processor 110 may, for example, determine whether to acquire each parameter information. Alternatively, if the processor 110 determines that parameter information should be acquired, it may determine which parameter information to acquire.
[0082] When multiple parameter information is available, the processor 110 can use a different time TP for each acquired parameter information. The processor 110 determines that it has acquired the parameter information when the time TP corresponding to that parameter information has elapsed since its acquisition. Furthermore, the time PT corresponding to the parameter information is, for example, included in the parameter information itself.
[0083] As an example, suppose there are two parameter information: a first parameter information and a second parameter information. The time TP corresponding to the first parameter information is set as time TP1. The first parameter information includes time TP1. Similarly, the time TP corresponding to the second parameter information is set as time TP2. The second parameter information includes time TP2. In this case, if the processor 110 determines that it has acquired the first parameter information when the elapsed time since the last acquisition of the first parameter information is greater than or equal to time TP1, and if the processor 110 determines that it has acquired the second parameter information when the elapsed time since the last acquisition of the second parameter information is greater than or equal to time TP2, then it determines that it has acquired the second parameter information.
[0084] In addition, when there are multiple parameter information, the processor 110 can also use different time CTs for each acquired parameter information.
[0085] If the processor 110 does not determine that it needs to obtain parameter information, it determines "no" in step ST101 and repeats the processing of step ST101. Conversely, if the processor 110 determines that it needs to obtain parameter information, it determines "yes" in step ST101 and proceeds to step ST102.
[0086] In step ST102, the processor 110 obtains parameter information from the auxiliary storage device 140, etc. When there are multiple parameter information, the processor 110 obtains, for example, the parameter information that was determined to be obtained in step ST101.
[0087] In step ST103, processor 110 determines whether to obtain setting variable 241 from industrial machine 200. Parameter information includes, for example, information indicating whether setting variable 241 is obtained from industrial machine 200 or written to industrial machine 200 (hereinafter referred to as "setting information"). Processor 110 refers to the setting information to determine whether to obtain setting variable 241 from industrial machine 200. If processor 110 determines that setting variable 241 is obtained from industrial machine 200, it determines "yes" in step ST103 and proceeds to step ST104.
[0088] Furthermore, the parameter information includes setting information as described above. Therefore, determining whether parameter information indicating that setting variable 241 has been obtained from industrial machine 200 in step ST101 can also be described as determining whether setting variable 241 has been obtained from industrial machine 200. Additionally, determining whether parameter information indicating that setting variable 241 has been written to industrial machine 200 in step ST101 can also be described as determining whether setting variable 241 has been written to industrial machine 200.
[0089] In step ST104, processor 110 generates a variable request. The variable request requests industrial machinery 200 to send information about a set variable 241. Alternatively, the variable request may include specified information about the set variable 241 to which it is sent. Processor 110 obtains this specified information, for example, based on the parameter information obtained in step ST102. Then, processor 110 generates a variable request containing this specified information.
[0090] In step ST105, processor 110 instructs communication interface 160 to send a variable request to industrial machine 200. Upon receiving the instruction to send, communication interface 160 sends the variable request to industrial machine 200. The sent variable request is received by communication interface 250 of industrial machine 200.
[0091] On the other hand, Figure 4 In step ST121, the processor 210 of the industrial machine 200 determines whether a variable request has been received through the communication interface 250. If the processor 210 does not receive a variable request, it determines "no" in step ST121 and proceeds to step ST122.
[0092] In step ST122, processor 210 determines whether a write request has been received through communication interface 250. If processor 210 does not receive a write request, it determines "no" in step ST122 and returns to step ST121. Thus, processor 210 enters a waiting state that repeatedly performs steps ST121 and ST122 until a variable request or write request is received.
[0093] When processor 210 receives a variable request while it is in a waiting state that repeatedly performs steps ST121 and ST122, it determines "yes" in step ST121 and proceeds to step ST123.
[0094] In step ST123, processor 210 retrieves setting variables 241 from auxiliary storage device 240 or RAM 230, etc. For example, processor 210 retrieves setting variables 241 for which specified information is included in the variable request received in step ST121. Alternatively, processor 210 may retrieve all setting variables 241.
[0095] In step ST124, processor 210 generates a variable response. The variable response contains information about the set variable 241 obtained in step ST123.
[0096] In step ST125, processor 210 instructs communication interface 160 to send the variable response generated in step ST124 to the industrial machine 200, the source of the variable request. Upon receiving the instruction to send, communication interface 160 sends the variable response to the industrial machine 200. The sent variable response is received by communication interface 250 of the industrial machine 200. After processing in step ST124, processor 210 returns to step ST121.
[0097] On the other hand, Figure 3 In step ST106, the processor 110 of the control device 100 waits to receive a variable response through the communication interface 250. If the processor 110 receives a variable response, it determines "yes" in step ST106 and proceeds to step ST107.
[0098] In step ST107, the processor 110 retrieves allocation information from the auxiliary storage device 140, etc. The allocation information stores information about the monitoring variables. The monitoring variables are variables used to input or set the value of the setting variable 241. The monitoring variables are... Figure 5 The variables that become the objects to be monitored in the process shown. Processor 110, for example, at the beginning Figure 3 and Figure 5 During the processing shown, or upon activation of the accompanying control device 100, the monitored variables are allocated to RAM 130, etc. Alternatively, the auxiliary storage device 140 may also store the setting variables 241. Furthermore, the number of monitored variables may be one or more.
[0099] The allocation information includes information about which monitoring variable each setting variable 241 is stored in. Furthermore, if the allocation information can store multiple setting variables 241 in one monitoring variable, it includes information for each setting variable 241 indicating which monitoring variable is stored in which part. Additionally, the allocation information defines which monitoring variable is stored in, for example, by the address of a storage area such as RAM 130 where the monitoring variables are allocated or auxiliary storage device 140 where the monitoring variables are stored. That is, the allocation information includes information indicating which address in the storage area each setting variable 241 is stored in. Alternatively, the allocation information defines which monitoring variable is stored in by the variable name, etc. A variable name is an example of indicating the location of the storage area where the setting variable 241 is stored. Alternatively, the allocation information can also define the storage area for multiple monitoring variables by a single address. For example, the allocation information defines the storage area based on the address of the beginning of the multiple monitoring variables and the length from the beginning to the end of the multiple monitoring variables. Furthermore, the multiple monitoring variables are arranged consecutively in the storage area.
[0100] RAM 230 or auxiliary storage device 240 is an example of a storage area for storing variable values. Similarly, an area for storing monitor variables is an example of a storage area for storing variable values. Therefore, allocation information is an example of allocation data representing the location or address of the storage area storing variable values. Furthermore, when one monitor variable can store multiple setting variables 241, the allocation information is an example of allocation data storing the location or address of the storage area used to store the values of multiple variables. Additionally, allocation information where one address defines the storage area for multiple monitor variables is an example of allocation data storing one address representing the address of the storage area storing the values of multiple variables. Furthermore, auxiliary storage device 140, etc., storing allocation information is an example of an allocation storage unit storing this allocation data.
[0101] In step ST108, processor 110 inputs (stores) the setting variable 241 received in step ST106 into the monitoring variable indicated by the allocation information (writes). When the allocation information indicates which address the setting variable 241 will be stored at, processor 110 inputs (stores) the setting variable 241 into the address indicated by the allocation information. After processing in step ST108, processor 110 returns to step ST101. As described above, processor 110 repeatedly performs steps ST101 to ST108. Thus, processor 110 periodically or irregularly retrieves the setting variable 241 from industrial machinery 200 and inputs it into the monitoring variable.
[0102] Based on the above, the processor 110 performs the processing of step ST108 as an example of a storage unit that writes the value of the variable obtained by the acquisition unit into the storage area storing the value of the variable.
[0103] Alternatively, processor 110 may skip step ST101. In this case, processor 110 starts from step ST102. Figure 3 The process is shown. Then, after the processing in step ST108, the processor 110 returns to step ST102. At this time, the processor 110 repeatedly performs steps ST102 to ST108 without going through the determination in step ST101, thereby repeatedly obtaining the set variable 241 from the industrial machine 200.
[0104] Based on the above, processor 110 executes... Figure 3 The processing steps ST101 to ST108 function as an example of the acquisition unit that repeatedly obtains the values of variables from industrial machinery.
[0105] In addition, Figure 5 In step ST131, the processor 110 of the control device 100 confirms each monitored variable. That is, the processor 110 obtains the value of each monitored variable.
[0106] In step ST132, processor 110 determines whether the value of each monitored variable has changed since the last acquisition. If the value of any monitored variable has changed since the last acquisition, processor 110 determines "yes" in step ST132 and proceeds to step ST133. Conversely, if the value of any monitored variable has not changed since the last acquisition, processor 110 determines "no" in step ST132 and proceeds to step ST134.
[0107] In step ST133, processor 110 generates a display request. The display request includes a monitored variable or the value of the monitored variable. The display request is information requesting the teaching pendant 400 to display the value of the monitored variable. After generating the display request, processor 110 instructs communication interface 160 to send the display request to industrial machine 200. Upon receiving the instruction to send, communication interface 160 sends the display request to industrial machine 200. The sent display request is received by communication interface 450 of industrial machine 200.
[0108] Upon receiving a display request, the processor 410 of the teaching pendant 400 displays a monitoring variable screen on the display device 470. The monitoring variable screen may contain, for example, an image representing the value of the monitoring variable after it has been changed.
[0109] On the other hand, Figure 6 In step ST141, the processor 410 of the teaching pendant 400 determines whether a display request has been received through the communication interface 450. If the processor 410 has not received a display request, it determines "no" in step ST141 and proceeds to step ST142.
[0110] In step ST142, processor 410 determines whether to change the value of the variable. For example, if an operation input indicating a change in the value of a variable displayed on input device 460 is made, processor 410 determines that the value of the variable has been changed. If processor 410 does not determine that the value of the variable has been changed, it determines "no" in step ST142 and returns to step ST141. Thus, processor 410 enters a waiting state that repeatedly performs steps ST141 and ST142 until a display request is received or the value of the variable has been changed.
[0111] If the processor 410 receives a display request while it is in a waiting state that repeatedly performs steps ST141 and ST142, it determines "yes" in step ST141 and proceeds to step ST143.
[0112] In step ST143, processor 410 generates an image corresponding to the variable screen. Then, processor 410 instructs display device 470 to display the generated image. Display device 470 accepts the display instruction and displays the variable screen.
[0113] An example of a variable screen, using Figure 9 Please provide an explanation. Figure 9 This diagram illustrates an example of a variable screen SC1a displayed on display device 470. The variable screen displays the values of monitored variables included in the display request. The variable screen allows for instructions on changing the values of the displayed variables. Furthermore, the variable screen allows for instructions on how to change the values of the variables. The operator of the teaching pendant 400 can make these instructions, for example, by operating input device 460. As an example, the variable screen SC1a includes area AR1.
[0114] Region AR1 represents the numerical values of each variable. Data [1] to
[16] represent the numbers assigned to each variable. However, in Figure 9 In the state shown, only variables [1] and [2] exist. Variables [3] to
[16] are either not used or do not exist.
[0115] The variables displayed in area AR1 can be selected using input devices such as 460.
[0116] Furthermore, the variables displayed in area AR1 can be modified using input device 460, etc. When this operation is performed, processor 410... Figure 6 In step ST142, the value of the variable is determined to be changed. Furthermore, the change information described later includes details of the value change based on this operation.
[0117] After processing in step ST143, processor 410 returns to step ST141.
[0118] Based on the above, in step ST143, the processor 410 cooperates with the display device 470 to function as an example of a display unit for displaying the value of a display variable.
[0119] If the processor 410 changes the value of a variable while it is determined to be in a waiting state of repeatedly performing steps ST141 and ST142, then it determines "yes" in step ST142 and proceeds to step ST144.
[0120] In step ST144, processor 410 generates a change request. The change request contains change information indicating the content of the change to the variable. The change request instructs control device 100 to change the value of the monitored variable according to the change information. After generating the change request, processor 410 instructs communication interface 450 to send the change request to control device 100. Upon receiving the instruction to send, communication interface 450 sends the change request to control device 100. The sent change request is received by communication interface 160 of control device 100. After processing in step ST144, processor 410 returns to step ST141.
[0121] Based on the above, the processor 410 performs its function as an example of the value-changing unit for the variable by executing the processing of step ST144.
[0122] On the other hand, Figure 7 In step ST151, the processor 110 of the control device 100 waits to receive a change request through the communication interface 160. If the processor 110 receives the change request, it determines "yes" in step ST151 and proceeds to step ST152.
[0123] In step ST152, processor 110 changes the value of the monitored variable according to the change information in the change request received in step ST151. After processing in step ST152, processor 110 returns to step ST151.
[0124] On the other hand, Figure 5 In step ST134, the processor 110 retrieves first execution information from auxiliary storage device 140, etc. The first execution information stores, for each monitored variable, what processing should be performed if the value of the monitored variable becomes a certain value. The first execution information is stored, for example, in association with information determining the monitored variable, its value, and information indicating the processing to be performed. The first execution information indicates the processing associated with when the value of the monitored variable becomes the associated value.
[0125] As an example, the robot 300 is started when the monitoring variable stored in the start area 133 of the first execution information storage reaches a predetermined value. As another example, the robot 300 is stopped when the monitoring variable stored in the alarm area 134 of the first execution information storage reaches a predetermined value. Furthermore, the monitoring variable stored in the alarm area 134 indicates that an alarm was generated in the industrial machine 200 when its value reached the predetermined value.
[0126] In step ST135, processor 110 determines whether to execute the processing corresponding to the value of set variable 241. That is, for example, if the value of each monitored variable is a value associated with the first execution information, processor 110 determines whether to execute the processing associated with that monitored variable and that value in the first execution information. If processor 110 does not determine whether to execute the processing, it determines "No" in step ST135 and returns to step ST131. Conversely, if processor 110 determines whether to execute the processing, it determines "Yes" in step ST135 and proceeds to step ST136.
[0127] In step ST136, processor 110 executes the processing determined to be executed in step ST135. After processing in step ST136, processor 110 returns to step ST131. As described above, processor 110 monitors a monitored variable, and if the value of the monitored variable becomes a predetermined value, it executes a predetermined processing. As described above, processor 110... Figure 3 The processor 110 inputs the value of the setting variable 241 to the monitoring variable. Therefore, the processor 110... Figure 3 and Figure 5 The process monitors the set variable and executes a predetermined process when the value of the set variable becomes a predetermined value.
[0128] This example illustrates a combination of a monitoring variable, a predetermined value, and a predetermined process stored in the first execution information. In this example, the monitoring variable is a setting variable 241 that stores a setting variable indicating that an alarm has occurred in the industrial machine 200 and the content of the alarm. The predetermined value in this example is a value indicating that an alarm has occurred, for example, 1. The predetermined process in this example is stopping the robot 300. For example, the stopping unit 114 stops the robot 300. When it is determined in step ST134 that the value of the monitoring variable in this example is 1, the processor 110 stops the robot 300 in step ST135. The processor 110 stops the robot 300, for example, by stopping a robot program.
[0129] Other examples of predetermined processes include starting the robot 300, causing the robot 300 to perform predetermined actions, executing various robot programs, and the control device 100 performing predetermined processes. For example, the processor 110 starts the robot 300 by executing a robot program containing a start command. For instance, the start unit 113 starts the robot 300.
[0130] Alternatively, the predetermined value can be a range. For example, the predetermined value could be 1 to 3. In this case, the processor 110 performs the predetermined processing when the value of the monitored variable is 1 to 3.
[0131] Furthermore, there can be multiple predetermined values. Also, there can be multiple predetermined processes. For example, the predetermined values can be a first predetermined value and a second predetermined value. Furthermore, the predetermined processes can be a first predetermined process and a second predetermined process. Let the process corresponding to the first predetermined value be the first predetermined process, and the process corresponding to the second predetermined value be the second predetermined process. In this case, when the value of the monitored variable is the first predetermined value, the processor 110 executes the first predetermined process. And when the value of the monitored variable is the second predetermined value, the processor 110 executes the second predetermined process.
[0132] Furthermore, the values of the watch variables and the predefined values are not limited to numbers. The values of the watch variables and the predefined values can be, for example, strings, dates, booleans, pointers, objects, or structures. Additionally, the predefined value can also be null or nothing, representing an empty value.
[0133] use Figure 10 To further explain the predetermined processing, consider this example: a set variable 241 (hereinafter referred to as the "object variable") changes its value when the industrial machine 200 performs a certain action or operation (hereinafter referred to as the "value change trigger"). In this case, the control system 1 can cause the control device 100 to perform certain predetermined processing based on the value change trigger. Figure 10 Provide an example of this.
[0134] Figure 10 This is a block diagram illustrating an example of the operation of the control device 100 and the industrial machinery 200. The industrial machinery 200, for example, includes a start button 261 as an input device 260. The start button 261 is used to start and stop the industrial machinery 200. When the start button 261 is operated while the industrial machinery 200 is stopped, the industrial machinery 200 starts and begins operation. When the start button 261 is operated while the industrial machinery 200 is operating, the industrial machinery 200 stops. When the start button 261 is operated while the industrial machinery 200 is stopped, a start request signal is output. When the start button 261 is operated while the industrial machinery 200 is operating, a stop request signal is output. For example, the processor 210 receives the start request signal and the stop request signal as input.
[0135] When processor 210 receives a start request signal, it changes the value of setting variable 241 (object variable) to a value indicating that the industrial machine 200 is in operation. Conversely, when processor 210 receives a stop request signal, it changes the value of the object variable to a value indicating that the industrial machine 200 is stopped. Therefore, the operation of the start button 261 triggers a value change, causing the object variable to change. Alternatively, it can be stated that the input of either a start request signal or a stop request signal triggers a value change, causing the object variable to change.
[0136] Additionally, the processor 210 functions as an industrial start-up unit 211 by executing a program stored in the ROM 220 or the auxiliary storage device 240. When the industrial machinery 200 is stopped, the industrial start-up unit 211 starts the industrial machinery program 242 to start the industrial machinery 200 in order to operate, based on the operation of the start button 261.
[0137] like Figure 3 and Figure 4 As described, the processor 110 of the control device 100 acquires the object variable via the communication interface 160. The control device 100 stores the acquired object variable or its value as a monitoring variable in the start-up area 133. The processor 110 monitors changes in the value of the object variable by monitoring the start-up area 133. When the value of the object variable changes from a value indicating that the industrial machine 200 is stopped to a value indicating that the industrial machine 200 is in operation, the processor 110 performs a predetermined process, such as starting the robot 300. For example, the start-up unit 113 performs this start-up. Additionally, when the value of the object variable changes from a value indicating that the industrial machine 200 is in operation to a value indicating that the industrial machine 200 is stopped, the processor 110 performs a predetermined process, such as stopping the robot 300. The stop unit 114 performs this stop.
[0138] Thus, in Figure 10 In the example shown above, by operating the start button 261, not only the industrial machinery 200 but also the robot 300 can be started or stopped.
[0139] Based on the above, the processor 110, by executing steps ST135 and ST136, functions as an execution unit that performs predetermined processing corresponding to the predetermined value when the value of the variable written to the storage area is a predetermined value.
[0140] Furthermore, if the processor 110 does not determine that the set variable 241 is obtained from the industrial machine 200, but instead determines that the set variable 241 is written to the industrial machine 200, then in Figure 3 If the result in step ST103 is "No", proceed to step ST109.
[0141] In step ST109, processor 110 acquires an indicator variable. The indicator variable is a variable that represents the write content shown in the indicator information described later. Processor 110 uses the acquisition information from the parameter information acquired in step ST102 to determine which variable to acquire as the indicator variable. The acquisition information is the information that determines which variable to acquire as the indicator variable. Processor 110 acquires the indicator variable, for example, from the storage area of robot 300. Alternatively, processor 110 may acquire the indicator variable from RAM 130, auxiliary storage device 140, or an external device.
[0142] The value of the indicator variable is an example of the value stored in the storage area. Therefore, the processor 110 functions as an example of a robot variable acquisition unit that retrieves the value stored in the storage area by executing the process of step ST109.
[0143] In step ST110, processor 110 generates object information. Object information indicates the object to be written. For example, the object to be written to indicates which set variable 241 is to have its value written (stored). Object information may indicate the object to be written to or the location of the object to be written to, for example, through a variable name or address. Processor 110 uses object determination information from the parameter information obtained in step ST102 to determine the object to be written to. Object determination information determines which set variable 241 is to have its value written to. Object determination information may determine the set variable 241 through a variable name or address. Alternatively, object determination information may represent, for example, allocation data for the variables of industrial machinery 200 storing values obtained by the robot variable acquisition unit. Furthermore, auxiliary storage devices such as auxiliary storage devices 140 that store object determination information may be examples of allocation storage units that store this allocation data.
[0144] In step ST111, processor 110 generates instruction information. The instruction information indicates the content to be written to setting variable 241. The content to be written, as indicated by the instruction information, is, for example, the value of the instruction variable obtained in step ST109. Additionally, object information is an example of variable specification data indicating the variable of the industrial machinery whose value is to be written.
[0145] In step ST112, processor 110 generates a write request. The write request includes object information generated in step ST110 and instruction information generated in step ST111. The write request instructs industrial machinery 200 to write the content shown in the instruction information to the object shown in the object information.
[0146] In step ST113, processor 110 instructs communication interface 160 to send the write request generated in step ST112 to industrial machine 200. Upon receiving the instruction to send, communication interface 160 sends the write request to industrial machine 200. The sent write request is received by communication interface 250 of industrial machine 200.
[0147] On the other hand, if the processor 210 of the industrial machine 200 is in a state of repeated operation Figure 4 If a write request is received during the waiting state of steps ST121 and ST122, then the result is "yes" in step ST122, and the process proceeds to step ST126.
[0148] In step ST126, processor 210 writes the value indicated by the instruction information to the setting variable 241 of the write object stored in auxiliary storage device 240 or RAM 230, according to the write request received in step ST122. When the value indicated by the instruction information differs from the value of the setting variable 241 of the write object, processor 210 changes the value by rewriting it. However, when the value indicated by the instruction information is the same as the value of the setting variable 241 of the write object, processor 210 does not need to rewrite it.
[0149] In step ST127, processor 210 generates a completion response. A completion response is information indicating the end of the write operation based on the value requested in the write request.
[0150] In step ST128, processor 210 instructs communication interface 250 to send the completion response generated in step ST127 to control device 100, the source of the write request. Communication interface 250 accepts the instruction to send and sends the completion response to control device 100. The sent completion response is received by communication interface 160 of control device 100. After processing in step ST128, processor 210 returns to step ST121.
[0151] On the other hand, Figure 3 In step ST114, the processor 110 of the control device 100 waits to receive a write request through the communication interface 160. If the processor 110 receives a write request, it determines "yes" in step ST114 and returns to step ST101.
[0152] As described above, the processor 110 repeatedly performs steps ST101 to ST103 and steps ST109 to ST114. As a result, the processor 110 periodically or irregularly sends write requests to the industrial machine 200.
[0153] Based on the above, the processor 110, in cooperation with the communication interface 250, performs step ST112 to periodically and repeatedly send the value obtained by the robot variable acquisition unit and the variable specification data of the industrial machine representing the value to be written to the sending unit of the industrial machine. Alternatively, the processor 110 performs step ST112 as an example of a sending unit.
[0154] In addition, Figure 8 In step ST161, the processor 210 of the industrial machine 200 refers to the auxiliary storage device 240 or RAM 230, etc., to confirm the values of each set variable 241.
[0155] In step ST162, processor 210 determines whether to execute the processing corresponding to the values of each set variable 241. For example, if the value of each set variable 241 is a predetermined value determined in advance for each set variable 241, processor 210 determines to execute the processing. If processor 210 does not execute the processing, it determines "No" in step ST162 and returns to step ST161. Conversely, if processor 210 executes the processing, it determines "Yes" in step ST162 and proceeds to step ST163.
[0156] In step ST163, processor 210 performs predetermined processing corresponding to the predetermined value. After processing in step ST163, processor 210 returns to step ST161. As described above, processor 210... Figure 8 The processing monitors the setting variable 241, and performs predetermined processing when the value of the setting variable 241 becomes a predetermined value.
[0157] According to the control system 1 of the first embodiment, the control device 100 repeatedly reads (acquires) the setting variable 241 from the industrial machine 200. Thus, the control device 100 can monitor the setting variables of the industrial machine 200. Furthermore, by acquiring the setting variable 241, the control device 100 can use the setting variable 241 as a variable for the robot. Additionally, when adding a signal to an existing CNC industrial machine, processing of the added signal needs to be added to the ladder logic program. However, end users of CNC industrial machines typically cannot change the ladder logic program. Therefore, end users commission industrial machine manufacturers, etc., to modify the ladder logic program. Therefore, modifying the ladder logic program requires significant time. On the other hand, if it is the setting variable 241, it can be referenced within the machining program without modifying the ladder logic program.
[0158] According to the control system 1 of the first embodiment, the control device 100 uses allocation information of a location or address of an allocation storage area that represents the values of multiple variables. Thus, the control device 100 is able to centrally store multiple set variables 241.
[0159] Furthermore, according to the control system 1 of the first embodiment, the control device 100 performs a predetermined process corresponding to the case where the set variable 241 obtained from the industrial machine 200 is a predetermined value. Thus, the industrial machine 200 can use the set variable 241 to operate the control device 100 and the robot 300.
[0160] Furthermore, according to the control system 1 of the first embodiment, the predetermined process is the execution or cessation of the robot program. Therefore, in the control system 1 of the first embodiment, the industrial machine 200 is capable of executing or cessating the robot program.
[0161] Furthermore, according to the control system 1 of the first embodiment, the control device 100 stops the robot 300 based on the value of the set variable 241 indicating that an alarm has occurred. Therefore, the control device 100 of the first embodiment can stop the robot 300 in the event of an abnormality in the control device 100.
[0162] Furthermore, according to the control system 1 of the first embodiment, the control device 100 repeatedly acquires the indicator variable and sends a write request to the industrial machine 200. Therefore, the control device 100 can rewrite the set variable 241 of the industrial machine 200 when the value of the indicator variable changes. Thus, the control device 100 can operate the industrial machine 200 using the indicator variable.
[0163] Furthermore, according to the control system 1 of the first embodiment, the teaching device 400 changes the value of the setting variable 241. Thus, the control system 1 of the first embodiment can manually rewrite the setting variable 241.
[0164] [Second Implementation]
[0165] In the control system 1 of the second embodiment, unlike the first embodiment, the control device 100 transforms the setting variable 241 into IO (input / output) data and stores it in the IO memory area.
[0166] Furthermore, the control system 1 in the second embodiment differs from that in the first embodiment in that the indicator variable is I / O data. Additionally, the indicator variable is stored in the I / O memory area.
[0167] The structure of the control system 1 in the second embodiment is the same as that in the first embodiment, so the description is omitted.
[0168] In the second embodiment, the auxiliary storage device 140, etc., stores the I / O memory information (described later) instead of the allocation information. In the second embodiment, the auxiliary storage device 140, etc., stores the second execution information (described later) instead of the first execution information.
[0169] The following is based on Figures 4-8 , Figure 11 and Figure 13 The operation of the control system 1 in the second embodiment will be explained. Furthermore, the processing described below is just one example; various processing methods that can achieve the same result can be appropriately utilized. Figure 11 This is a flowchart illustrating an example of processing performed by the processor 210 of industrial machinery 200. The processor 210 executes, for example, based on a program stored in ROM 220 or auxiliary storage device 240, etc. Figure 11 The processing. Figure 13 This is a flowchart illustrating an example of the processing performed by the processor 410 of the teaching pendant 400. The processor 410 executes, for example, a program stored in the ROM 420 or auxiliary storage device 440. Figure 13 The processing.
[0170] In the second embodiment, the processor 110 of the control device 100 executes... Figure 5 , Figure 7 and Figure 11 The processing is shown. Processor 110 executes the process, for example, in parallel or concurrent manner. Figure 5 , Figure 7 as well as Figure 11 The processing. In the second embodiment, the processor 210 of the industrial machine 200 performs the same processing as in the first embodiment. Figure 4 and Figure 8 The processing is shown. In the second embodiment, the processor 410 of the teaching device 400 executes... Figure 6 and Figure 13 The processing is shown. For the second embodiment, the operations that are the same as those in the first embodiment are omitted.
[0171] In the second embodiment, the processor 210 of the industrial machine 200 is in Figure 4 In ST125, the setting variable 241 is sent as floating-point data. The processor 210, for example, converts the setting variable 241 into floating-point data before sending it. Alternatively, the processor 210 sends the setting variable 241 stored in floating-point mode. Furthermore, the industrial machine 200 uses either a 32-bit floating-point type or a 64-bit double-precision floating-point type as the floating-point type. If it is a double-precision floating-point type, it has a total of 64 bits arranged from the beginning in the order of 1 bit for the sign part, 11 bits for the exponent part, and 52 bits for the mantissa part.
[0172] Each setting variable 241 is typically 1 bit. By storing the value of each setting variable 241 in the bits of the floating-point data, 64 1-bit values of setting variables 241 can be stored if the data is double-precision floating-point. If the data is n-bit floating-point data, n 1-bit values of setting variables 241 can be stored. Furthermore, n is a positive number.
[0173] The industrial machine 200 can also use setting variables 241 with more than 2 bits. In this case, if the setting variable 241 is m bits, the floating-point data uses m bits to store the value of the setting variable 241. In addition, m is an integer greater than 2. When using setting variables 241 with more than 2 bits, if the floating-point data is n bits, it is possible to store the values of multiple setting variables 241 up to a total of n bits.
[0174] In addition, the auxiliary storage device 140 of the control device 100 and the auxiliary storage device 240 of the industrial machinery 200 store bit information. The bit information is data that determines which bit of the floating-point data stores the value of which set variable 241.
[0175] The processor 210 of the industrial machine 200 uses bit information to convert the setting variable 241 into floating-point data. Alternatively, the processor 210 uses bit information to store the setting variable 241 as floating-point data in an auxiliary storage device 240 or RAM 230, etc.
[0176] In the second embodiment, if in Figure 11 If the determination in step ST106 is "yes", then the processor 110 of the control device 100 will proceed to step ST201.
[0177] In step ST201, processor 110 converts the setting variable 241 received in step ST106 into I / O data. I / O data is data that is a permutation of multiple values such as "0" and "1", "ON" and "OFF", or "True" and "False". Therefore, I / O data is data like a permutation of Boolean variables. Data with two values can also be considered as 1-bit binary data. Processor 110 converts setting variable 241 into I / O data. Two methods for converting to I / O data are shown below: (i) and (ii).
[0178] (i) Conversion Method 1
[0179] In conversion method 1, each bit of the variable represented in binary is used as I / O. The received setting variable 241 is floating-point data represented in binary. Therefore, the processor 110 directly uses the value of each bit of the floating-point data as I / O data. For example, if the first 4 bits of the floating-point data are "0100", the first bit of the I / O data is "0", the second bit is "1", the third bit is "0", and the fourth bit is "0".
[0180] (ii) Conversion Method 2
[0181] Conversion method 2 involves taking the absolute value of a positive number after rounding the value of the set variable 241 to the nearest whole number (after rounding to the nearest whole number), converting it to binary for use as I / O. For example, the floating-point data before conversion can be represented in decimal as "-1234.567". In this case, processor 110 rounds "-1234.567" to the nearest whole number ("-1234"). Then, processor 110 calculates the absolute value of this value. Here, the absolute value is "1234". Furthermore, processor 110 converts this absolute value to binary integer data. For example, if the binary value is 16 bits, it would be "00000100 1101 0011". Processor 110 uses each bit of this value as I / O data. If this value is true, then the first IO data is "0", the second is "0", the third is "0", the fourth is "0", the fifth is "0", the sixth is "1", the seventh is "0", and so on.
[0182] Since variable 241 is a floating-point type, there are situations where it cannot be operated on bit by bit. In this case, when conversion method 1 is used only when the processor 210 operates on a specific I / O of the control device 100, the user needs to calculate the floating-point type for the specific bit operation, which becomes cumbersome. Conversion method 2 has the effect of reducing the amount of data to be communicated, thus alleviating this effort.
[0183] Based on the above, the processor 110 performs the processing of step ST201 as an example of an I / O conversion unit that converts the value of the variable obtained by the acquisition unit into I / O data.
[0184] In step ST202, processor 110 obtains I / O memory information. The I / O memory information stores information about I / O memory region 132. The I / O memory information includes information indicating where the value of each set variable 241 is stored in I / O memory region 132. For example, the I / O memory information indicates where the value of each set variable 241 is stored by storing which address in I / O memory region 132 the first converted I / O data is stored. For example, if the address where the first I / O data is stored is X, then the address where the second I / O data is stored is X+1. Alternatively, the I / O memory information may also include information indicating what kind of set variable 241 is stored at each address. Furthermore, the I / O memory information is an example of data allocation.
[0185] In step ST203, processor 110 stores the converted IO data from step ST201 at the address indicated by the IO memory information of IO memory region 132. Thus, IO memory region 132 stores the setting variable 241 in each bit. After processing in step ST203, processor 110 returns to step ST201.
[0186] Furthermore, IO memory region 132 is an example of a storage region for storing the values of variables. Additionally, within IO memory region 132, the area storing the value of setting variable 241 is another example of a storage region for storing the values of variables.
[0187] Based on the above, processor 110 executes... Figure 11 The processing functions as an example of a part that repeatedly obtains the values of variables from industrial machinery.
[0188] In the second embodiment, the processor 110 in Figure 5 In the processing, instead of the monitoring variable, the setting variable 241 stored in the IO memory area 132 is used.
[0189] In the second embodiment, the processor 110 uses second execution information instead of the first execution information in the processing of steps ST134 to ST136. The second execution information stores, for example, what kind of processing is performed when the address of each I / O memory region 132 becomes a certain value. The second execution information stores, for example, information representing the address, value, and processing to be performed of the I / O memory region 132 in association. The second execution information indicates a predetermined processing associated with the execution of a value associated with the address of the I / O memory region 132. Alternatively, the second execution information may store what kind of processing is performed when the addresses of multiple I / O memory regions 132 each become predetermined values determined for each address. For example, the second execution information may store that a predetermined processing is performed when the value of address Y1 is 1 and the value of address Y2 is 0.
[0190] In the second embodiment, in step ST135, for example, if the value stored at each address of the I / O memory region 132 is a value associated with the second execution information, the processor 110 determines to execute the processing associated with that address and that value in the second execution information. As described above, the processor 110 monitors the values stored at each address of the I / O memory region 132, and executes predetermined processing if the value becomes a predetermined value. As described above, the processor 110... Figure 11 The processor 110 inputs the value of the setting variable 241 to the I / O memory region 132. Therefore, the processor 110... Figure 11 and Figure 5 The processing monitors the setting variable 241, and performs predetermined processing when the value of the setting variable 241 becomes a predetermined value.
[0191] In the second embodiment, the change request is information instructing the control device 100 to change the value of the setting variable 241 stored in the IO memory area 132 according to the change information. The processor 110 of the control device 100 changes the value of the setting variable 241 stored in the IO memory area 132 according to the change information in the received change request.
[0192] use Figure 12 This illustrates an example of a variable screen in the second embodiment. Figure 12 This diagram illustrates an example of the variable screen SC1b displayed on the display device 470. Furthermore, the variable screen SC1b displays the setting variable 241 after conversion by conversion method (ii). As an example, the variable screen SC1b includes the area AR2.
[0193] Region AR2 represents the value of each bit of the variable in binary representation. Furthermore, the variable in binary representation shown in region AR2 is the variable in binary representation of data [1] after conversion using conversion method 2 (ii). Data [1] is used as a region for setting each bit. When data [1] is considered a 32-bit floating-point value, it becomes the value 21.123. Furthermore, the value after conversion using conversion method 2 (ii) is "21" in decimal and "00000000 0001 0101" in binary. However, only the lower 16 bits of the binary number are shown here. The upper 16 bits are all 0.
[0194] Furthermore, the bits displayed in area AR2 can be modified using input device 460, etc. When this operation is performed, processor 410... Figure 6 In step ST142, the value of the variable is determined to be changed. Additionally, the change information includes details of the value change based on this operation.
[0195] In the second embodiment, the processor 110 changes the setting variable 241 stored in the IO memory region 132 instead of the monitoring variable.
[0196] In the second embodiment, in step ST135, if the value of the setting variable 241 stored in the IO memory region 132 is a predetermined value, the processor 110 determines to perform processing corresponding to the value of the setting variable 241.
[0197] Additionally, the teach pendant 400 is a display screen (hereinafter referred to as the "editing screen") used for reviewing and editing the robot program. Figure 13 This describes the editing screen and related processing. The processor 410 of the teaching device 400, for example, begins processing upon receiving an instruction to display the editing screen. Figure 13 The processing shown.
[0198] exist Figure 13 In step ST211, the processor 410 of the teaching pendant 400 waits for the robot program to be edited. The operator of the teaching pendant 400 performs the operation of specifying the robot program to be edited. If the processor 410 receives the specification of the robot program to be edited, it determines "yes" in step ST211 and proceeds to step ST212.
[0199] In step ST212, the processor 410 of the teaching device 400 generates and Figure 14 The image corresponding to the edit screen SC2 shown is then displayed. The processor 410 then instructs the teaching pendant 400 to display the generated image. The processor 410 of the teaching pendant 400 receives the display instruction and causes the display device 470 to display the edit screen SC2.
[0200] Figure 14 This diagram illustrates an example of the editing screen SC2. Editing screen SC2 is used for editing robot programs. As an example, editing screen SC2 includes areas AR10 and AR20.
[0201] Area AR10 is the area for displaying the program that the editing object is in. Area AR10 uses one or more images IM11 to display the program. Each image IM1 represents a command in the program. The image IM1 represents the content of the command, for example, through a pictograph. Alternatively, area AR10 can also display commands through text. By using area AR10, commands can be added, modified, and deleted.
[0202] Additionally, area AR10 can perform operations on commands that specify the object to be edited. For example, each image IM1 becomes a button. By operating image IM1, the command corresponding to the operated image IM1 becomes the object to be edited. Furthermore, even when no command is specified as an object to be edited, for example, the initial command automatically becomes the object to be edited.
[0203] Region AR20 is used for editing commands on the object being edited. Commands for editing the object are displayed in region AR20. For example, region AR20 includes regions AR21 through AR25. Alternatively, region AR20 may also include different regions than AR21 through AR25, depending on the commands used to edit the object.
[0204] Area AR21 is the area that displays commands for editing objects. Figure 14 In the text, the command is displayed as "DO[1]". "DO[1]" is the output command. In addition, the part "1" is the number displayed in area AR22.
[0205] Area AR22 is used to specify setting variables 241 for objects whose values are changed, etc. Setting variables 241 for objects can be specified by inputting numbers, addresses, or variable names into area AR22. Hereinafter, "setting variables 241 for objects whose values are changed, etc." will be referred to as "specified variables". Area AR22 displays the numbers, addresses, or variable names that confirm the specified setting variables 241.
[0206] Area AR23 is used to change the value of a specified variable. By entering a value into area AR23, the value of the specified variable can be changed. Additionally, area AR23 displays the current value of the specified variable.
[0207] Zone AR24 displays the current value of data whose value has been changed (hereinafter referred to as "changed data") when a command displayed in zone AR21 is executed. Changed data is, for example, an indicator variable. Therefore, changed data is stored, for example, in the memory area of robot 300.
[0208] Area AR25 displays the values after the command was executed for the changed data.
[0209] In step ST213, processor 410 determines whether the command to modify the edit object has been performed. For example, if an operation has been performed that modifies the command indicating the edit object, processor 410 determines that the command to modify the edit object has been performed. If processor 410 does not determine that the command to modify the edit object has been performed, it determines "no" in step ST213 and proceeds to step ST214.
[0210] In step ST214, processor 410 determines whether an operation specifying a variable has been performed. For example, the input to region AR22 described above is an operation specifying a variable. If processor 410 does not perform an operation specifying a variable, it determines "no" in step ST214 and proceeds to step ST215.
[0211] In step ST215, processor 410 determines whether an operation indicating a change in the value of a specified variable has been performed. For example, the input of the value to region AR23 described above is an operation indicating a change in the value. If processor 410 does not perform an operation indicating a change in the value of a specified variable, then step ST215 determines "no" and returns to step ST214. Thus, processor 410 enters a waiting state that repeatedly executes steps ST213 to ST215 until a command to change the edited object is determined, an operation indicating a change in the specified variable is performed, or an operation indicating a change in the value of a specified variable is performed.
[0212] If the processor 410 determines that the command to change the edit object is in the waiting state of repeatedly performing steps ST213 to ST215, then it determines "yes" in step ST213 and returns to step ST212. Then, in the processing of step ST212, the processor 410 updates the display of the editing screen SC1 to the screen corresponding to the command of the changed edit object.
[0213] If the processor 410 performs an operation specifying a variable while in a waiting state that repeatedly performs steps ST213 to ST215, it determines "yes" in step ST214 and proceeds to step ST216.
[0214] In step ST216, the processor 410 obtains the value of the specified variable from the RAM 130 of the control device 100.
[0215] In step ST217, the processor 410 obtains the current value of the changed data.
[0216] In step ST218, processor 410 uses the current value of a specified variable to calculate the value of the changed data after executing the command to edit the object.
[0217] In step ST219, processor 410 causes region AR24 to display the value obtained in step ST217. Additionally, processor 410 displays the value calculated in step ST218 in region AR25. After processing in step ST219, processor 410 returns to step ST212.
[0218] If the processor 410 performs an operation that indicates a change in the value of a specified variable while in a waiting state that repeatedly performs steps ST213 to ST215, it determines "yes" in step ST215 and proceeds to step ST220.
[0219] In step ST220, processor 410 generates a change request. The change request contains change information indicating the content of the change to the variable. The change request instructs control device 100 to change the value of setting variable 241 stored in I / O memory area 132 according to the change information. The change information includes determining the number or address of the specified variable and the changed value of the specified variable. The changed value is the value indicated by the operation that instructs the change of the specified variable's value. The change request and... Figure 6 The steps are the same as ST144. After generating the change request, processor 410 instructs communication interface 450 to send the change request to industrial machine 200. Communication interface 450 receives the instruction to send the change request and sends it to industrial machine 200. The sent change request is received by communication interface 450 of industrial machine 200.
[0220] Based on the above, the processor 410 performs the processing of steps ST215 and ST220 as an example of a modification unit that changes the values of the above-mentioned variables according to the editing of the robot program.
[0221] In step ST221, the processor 410 uses the changed value of the specified variable to calculate the value of the changed data after executing the command to edit the object.
[0222] In step ST222, processor 410 displays the value calculated in step ST221 in region AR25. After processing in step ST222, processor 410 returns to step ST214.
[0223] Based on the above, processor 410 acts as a processor that executes... Figure 13 The process shown is an example of how the editing department functions to edit robot programs used to control the robot.
[0224] In addition, in the second embodiment, if the processor 110 of the control device 100 determines "no" in step ST103, it proceeds to step ST204.
[0225] In step ST204, processor 110 retrieves the value representing the written content of setting variable 241 from I / O memory region 132 of RAM 130. This value is, for example, an indicator variable in binary I / O data form. Furthermore, this value is converted to I / O data, for example, using the same method as in step ST201. Processor 110 converts the indicator variable to I / O data and stores it in I / O memory region 132 using the same method as in step ST201.
[0226] In step ST205, processor 110 converts the value obtained in step ST204 from binary I / O data into its original data form. The original data form is the same as the data form of the set variable 241. For example, the original data form is a decimal number.
[0227] The data format of variable 241 is typically not I / O data. Based on the above, processor 110 performs the processing of step ST205 as an example of a conversion unit that converts the value obtained by the robot variable acquisition unit into a data format other than I / O data.
[0228] In step ST206, processor 110 generates a write request. Similar to the second embodiment, the write request includes object information and indication information. However, the write content indicated by the indication information represents the value converted in step ST205. After generating the write request, processor 110 instructs communication interface 160 to send the write request to industrial machine 200. Upon receiving the instruction to send, communication interface 160 sends the write request to industrial machine 200. The sent write request is received by communication interface 250 of industrial machine 200. After processing in step ST206, processor 110 returns to step ST201.
[0229] Similar to the second embodiment, the processor 210 rewrites the setting variable 241 according to the write request.
[0230] The control system 1 of the second embodiment can achieve the same effect as the second embodiment.
[0231] Furthermore, according to the control system 1 of the second embodiment, the control device 100 converts the setting variable 241 into I / O data. For predetermined processes such as executing or stopping the robot's program from an external source, if a signal for allocation purposes is prepared in advance, operation can be performed using 1-bit data, resulting in a small data size and good system readability. Additionally, by using 1-bit data, the amount of data communication can be reduced compared to transmitting numerical data.
[0232] Furthermore, according to the control system 1 of the second embodiment, the control device 100 uses each bit of the binary-represented variable as I / O. Therefore, the control device 100 can contain multiple settings in a single value.
[0233] Furthermore, according to the control system 1 of the second embodiment, the control device 100 has an I / O memory region 132. Therefore, the control device 100 is able to store indicator variables as I / O data.
[0234] Furthermore, according to the control system 1 of the second embodiment, the teaching device 400 changes the value of the setting variable 241 according to the edited robot program. Therefore, the control system 1 of the second embodiment is capable of editing the robot program accompanying the change of the value of the setting variable 241.
[0235] The above-described embodiments can also be modified as follows.
[0236] The control system of the implementation may also include a display device that does not have the function of creating robot programs in place of the teaching pendant 400.
[0237] The control device 100 or the robot 300 may also perform some or all of the processes performed by the teaching device 400 in the above embodiments. In addition, the control device in the embodiments may also include some or all of the structure of the teaching device 400.
[0238] Processors 110, 210 and 410 can implement some or all of the processing implemented by the program in the above embodiments through the hardware structure of the circuit.
[0239] The program implementing the implementation method can be transferred, for example, in a state where it is stored in a non-transitory storage medium within the device. However, the device can also be transferred without the program being stored there. Furthermore, the program can also be transferred separately and written into the device. In this case, the transfer of the program can be achieved, for example, by recording on a removable non-transitory storage medium or by downloading it via a network such as the Internet or a LAN.
[0240] The embodiments of the present invention have been described above, but are shown as examples and are not intended to limit the scope of the invention. The embodiments of the present invention can be implemented in various ways without departing from the spirit of the invention.
[0241] Symbol Explanation
[0242] 1 Control System
[0243] 100 control device
[0244] 110, 210, 410 processors
[0245] 111 Distribution Department
[0246] 112 Data Conversion Department
[0247] 113 Start-up Department
[0248] 114 Stop Section
[0249] 115 Object Department
[0250] 120, 220, 420 ROM
[0251] 120, 220, 420 RAM
[0252] 131 storage area
[0253] 132IO memory area
[0254] 133 Startup Area
[0255] 134 Alert Zone
[0256] 140, 240, 440 auxiliary storage devices
[0257] 150 control interface
[0258] 160, 250, 450 communication interfaces
[0259] 170, 280, 480 bus
[0260] 200 Industrial Machinery
[0261] 211 Industrial Start-up Department
[0262] 241 Setting variables
[0263] 242 Industrial Machinery Program
[0264] 243 Ladder Program
[0265] 260, 460 input devices
[0266] 261 Start Button
[0267] 270, 470 display devices
[0268] 300 robots
[0269] 400 teaching device.
Claims
1. A robot control device, characterized in that, have: The acquisition department repeatedly obtains the values of variables from industrial machinery; The storage unit writes the value of the variable obtained by the acquisition unit into the storage area that stores the value of the variable; as well as An allocation storage unit stores allocation data representing the location or address of the storage area to be written to the variable.
2. The robot control device according to claim 1, characterized in that, The robot control device further includes an I / O conversion unit, which converts the value of the variable obtained by the acquisition unit into I / O data. The storage unit writes the value of the variable, after being converted by the I / O conversion unit, into the storage area. The storage area is located within the IO memory area.
3. The robot control device according to claim 2, characterized in that, The acquisition unit repeatedly acquires the values of multiple variables. The allocation storage unit stores allocation data, which represents a location or address of the storage area storing the values of the multiple variables. The storage unit writes the values of multiple variables into the storage area according to the allocated data.
4. The robot control device according to claim 1, characterized in that, The robot control device further includes an execution unit that, when the value of the variable written into the storage area is a predetermined value, performs a predetermined process corresponding to the predetermined value.
5. The robot control device according to claim 4, characterized in that, The predetermined process is the execution or cessation of the robot program.
6. The robot control device according to claim 4, characterized in that, The variable indicates that an alarm has been triggered. The predetermined process is to stop the robot.
7. A robot control device, characterized in that, have: The robot variable acquisition unit retrieves values stored in the storage area; A distribution storage unit stores distribution data, which represents variables of industrial machinery storing values obtained by the robot variable acquisition unit; and The sending unit periodically and repeatedly sends the value obtained by the robot variable acquisition unit and the variable specification data representing the industrial machine's variable written with the value to the industrial machine.
8. The robot control device according to claim 7, characterized in that, The storage area is an I / O memory area. The values stored in the storage area are I / O data. The robot variable acquisition unit acquires the IO data. The robot control device further includes a conversion unit that converts the values obtained by the robot variable acquisition unit into a data format other than IO data. The sending unit sends the value converted by the conversion unit to the industrial machinery.
9. A robot control system, characterized in that, The robot control system includes a robot control device and a display device. The robot control device includes: The acquisition department repeatedly obtains the values of variables from industrial machinery; The storage unit writes the value of the variable obtained by the acquisition unit into the storage area that stores the value of the variable; as well as An allocation storage unit stores allocation data representing the location or address of the storage area to be written to the variable. The display device includes a display section for displaying the value of the variable.
10. The robot control system according to claim 9, characterized in that, The display device also includes a modification unit for changing the value of the variable.
11. The robot control system according to claim 9, characterized in that, The display device also includes: The editorial department, whose editors write the robot programs used to control the robots; and The modification department changes the value of the variable based on the editing of the robot program.
Citation Information
Patent Citations
Numerical control device and numerical control method
WO2020194752A1